Anfang Januar 2010 gab SpringSource bekannt, dass dm Server dem Eclipse-Projekt beitreten wird und eröffnete damit das erste Kapitel des neuen Jahres der Java-Modularisierung. OSGi verzeichnete im vergangenen Monat weiterhin Erfolge, was darauf hindeutet, dass 2010 das Jahr der Java-Modularität sein wird.
Neuigkeiten von InfoQ: Neueste Fortschritte bei der Java-Modularisierung im Januar 2010. (Originaltitel: „Bundle.update: A Year of Modularity“ http://www.infoq.com/cn/news/2010/01/year-of-modularity )
Empfehlung des 51CTO-Editors: Erste Schritte mit OSGi
dm Server auf Eclipse migriert
Die größte Neuigkeit ist zweifellos der Projektvorschlag Eclipse Virgo (siehe 51CTO-bezogene Berichte hier). Die aktuelle dm-Server-Version ist 2.0.0, was bedeutet, dass die nächste Version 2.1 unter Eclipse entwickelt und veröffentlicht wird.
Ein wesentlicher Unterschied zwischen dem bestehenden Projekt und dem neuen Vorschlag ist das Protokoll. Das bedeutet, dass dm Server künftig auf EPL statt auf der aktuellen GPL basieren wird, was eine geschäftsfreundlichere Vereinbarung darstellt. Ziel ist es, die Beiträge der Community zu steigern und gleichzeitig diesen Ansatz bei der Softwareentwicklung zu fördern.
Das aktuelle Unternehmens-OSGi und der dm-Server haben das Interesse vieler Menschen geweckt, und die Innovation rund um sie hat nie aufgehört. Besonders groß ist dieses Interesse bei Early Adopters und Projekten, die die Einhaltung der dynamischen Modulfunktionen der OSGi Service Platform erfordern. Aber für Mainstream-Entwicklungsteams (die einfach nur so schnell wie möglich und mit immer weniger Aufwand Unternehmensanwendungen erstellen möchten) können die aktuellen Kosten für die Einführung von Enterprise OSGi die kurzfristigen Vorteile übersteigen. Dieses Problem muss berücksichtigt werden, bevor Enterprise OSGi zum De-facto-Standard für gängige Entwicklungsmethoden für Unternehmensanwendungen wird.
Neues Buch zur Einführung in OSGi und Equinox veröffentlicht
Diese Woche wurde ein neues Buch veröffentlicht, das OSGi und Equinox vorstellt. Dies ist auch das erste Buch in der Eclipse RunTime-Reihe. Dieses Buch stellt vor, wie man modulare Java-Anwendungen über OSGi erstellt. Obwohl die Beispiele im Buch auf Equinox basieren, ist das Buch auch für Entwickler wertvoll, die auf anderen OSGi-Plattformen entwickeln möchten.
Das Buch implementiert außerdem von Anfang bis Ende ein Toast-Beispielprojekt mit dem Ziel, durch spezifischen Beispielcode den Weg für nachfolgende Bücher der Reihe zu ebnen (so dass Entwickler, die dieses Buch gelesen haben, schnell mit anderen Büchern beginnen können). Dieses Buch ist in vier Teile gegliedert: Der erste Teil ist ein Überblick über OSGi, gefolgt von einer Anleitung zum Erstellen eines Toast-Beispiels, der dritte Teil befasst sich eingehend mit den Details von OSGi und schließlich die Bibliographie.
Die Entwicklung der ECF-Remote-Services ist abgeschlossen
Kürzlich hat das Eclipse Communications Framework-Projekt die OSGi Remote Services-Spezifikation implementiert, die OSGi-Dienste über VMs hinweg über eine Vielzahl heterogener Protokolle verbinden kann, darunter REST, WS-*, JMS, XMPP, Skype und eine generische ECF-Implementierung.
Darüber hinaus gibt es eine Vielzahl unterschiedlicher Erkennungsmechanismen wie ZeroConf, SLP und statische, dateibasierte Erkennung.
Außerdem wurde die Apache Felix-Implementierung von OSGi Remote Services veröffentlicht (Apache CXF), die gleichzeitig die Referenzimplementierung von OSGi ist. Diese Implementierung konzentriert sich jedoch auf den Zugriff über die WS-*-Transportschicht, während ECF unabhängig von der Transportschicht ist. Unabhängig von der Implementierung ist die von Endbenutzern und Entwicklern verwendete API dieselbe. Dadurch können Benutzer die Implementierung zur Laufzeit ersetzen.
Die Arbeiten der Enterprise Expert Group stehen kurz vor dem Abschluss
Kürzlich gab Peter Kriens bekannt, dass die OSGi Enterprise Expert Group kurz vor der Fertigstellung steht, und vor kurzem wurde auch der Enterprise Expert Group-Entwurf 4 veröffentlicht, der eine große Anzahl von Java EE-Funktionen bereitstellt. Wir haben Grund zu der Annahme, dass die endgültige Version im März dieses Jahres veröffentlicht wird, wenn die OSGi DevCon und die EclipseCon stattfinden.
EEG wird neue Abfragemechanismen für Suchvorgänge im JNDI-Stil über OSGi bereitstellen, JMX zur Verwaltung der OSGi-Laufzeit, Datenbankzugriff über JTA, JPA und DataSources verwenden und außerdem die Verwaltung von Remote Services und Service Component Architecture ermöglichen. Darüber hinaus wird ein neues Bereitstellungspaket: WAB veröffentlicht, sodass Webanwendungspakete in Containern wie WARs installiert werden können. InfoQ wird ausführlich über die EEG-Ergebnisse berichten, sobald diese veröffentlicht werden.
WebSphere veröffentlicht Alpha-Version
IBM WebSphere wird seit einiger Zeit auf Basis von OSGi entwickelt und hat kürzlich eine Alpha-Version von OSGi-Anwendungen veröffentlicht. Die Anwendung basiert auf Apache Aries und enthält einen OSGi Blueprint-Container (ähnlich dem von SpringSource vorgeschlagenen Eclipse Gemini). Diese Projekte hoffen alle, einige der Probleme von JNDI und JTA zu lösen, die auch im Fokus der Enterprise Expert Group stehen.
Diese Container erweitern die Grenzen der OSGi-Laufzeit, um mehrere Anwendungen zu unterstützen. In Zukunft werden Anwendungen über OSGi Nested Frameworks aufgeteilt (ähnlich wie Webanwendungsserver WAR aufteilen). Aber im Gegensatz zu Webanwendungsservern (WAR ist vollständig getrennt und kann keinen Code teilen) kann WAB die OSGi-Laufzeit integrieren, und dann können Sie Code und Dienste genauso einfach teilen wie private Bundles und Dienste.
Tycho erstellt OSGi mit Maven
Kürzlich hat Sonatype Tycho 0.6.0 veröffentlicht, das die neue Version von Maven 3 verwendet. Tycho ist eine Reihe von Maven-Buildern, die Abhängigkeiten basierend auf OSGi Manifest.MF ableiten können, anstatt davon auszugehen, dass Abhängigkeiten im Maven-POM vorhanden sind. Dadurch können Sie OSGi-Bundles entweder POM-zuerst (wenn das Manifest automatisch generiert wird) oder Manifest-zuerst erstellen.
Obwohl die meisten OSGi-Entwickler, die Maven verwenden (z. B. Entwickler unter Apache Felix), eher mit der POM-First-Entwicklungsmethode vertraut sind, stellt die Manifest-First-Entwicklungsmethode eine Ergänzung dazu dar und kann durch Eclipse PDE (Plug-in Development) weiter entwickelt werden Umgebung). Entwickeln Sie OSGi-Bundles bequem.
Unter vielen Eclipse-Projekten werden EGit und das Inkubationsprojekt Tigerstripe mit Maven anstelle von Ant erstellt.
Das Maven-Projekt bewegt sich in Richtung Maven 3, das einem umfassenden Refactoring unterzogen wurde und Google Guice verwendet. Darüber hinaus beweist der Erfolg des Maven-Repositorys (verwaltet von Sonatype), dass die Java-Entwicklung mit mehreren Abhängigkeiten nicht schwierig ist. Es gibt auch immer mehr Leute, die OSGi-Bundle-Repositorys (wie OBR- und SpringSource-Repositorys) verwenden, und diese können über verschiedene Anbieter verteilt sein. Derzeit läuft eine explorative Studie zum Thema der Bereitstellung eines einheitlichen Satzes von OSGi-Repositories (von Tycho mit Hilfe von Nexus verwendet). Experimentelle Repositories finden Sie unter bundles.sonatype.org und osgi.sonatype.org. Das zukünftige Ziel besteht darin, Zugriff auf mehrere Formate (OBR, P2 usw.) bereitzustellen, sodass die Verwendung von OSGi-Bundles genauso einfach sein kann wie Maven-JARs.
Flink und POSH
Wenn Sie nur OSGi-Bundles erhalten, ist die Verwendung des OSGi-Bundle-Parsers die bessere Wahl. Kürzlich veröffentlichte Paremus Nimble, einen Parser zum Abrufen und Herunterladen von OSGi-Bundles.
Paremus bindet POSH (Paremus OSGi Shell) an den Nimble-Parser. Auf diese Weise können Sie denselben Befehlssatz zum Initialisieren und Verwalten des allgemeinen OSGi-Frameworks verwenden (dies vereinfacht das Testen von Felix, Equinox und Knopflerfish) und mit Hilfe von Nimble können Sie die OSGi-Laufzeitumgebung wie Dave schnell starten Savage sagte, erzähle. Sie können Spring-basierte OSGi-Webanwendungen über die folgenden zwei Befehlszeilen installieren und ausführen:
posh -kc "repos -l springdm;add org.springframework.osgi.samples.simplewebapp@active " open http://localhost:8080/simple-web-app/ Interessierte Leser können auf DZone mehr über Nimble erfahren Weitere Informationen.
OSGi UK User Group und OSGi DevCon London
Die OSGi UK User Group floriert und hat über 100 Mitglieder. Der jüngste Vortrag stammt von Marcel Offerman (von Luminis) und Graham Charters (von IBM). Videos und Materialien zur Vorlesung werden in einigen Tagen auf der Website veröffentlicht.
Der erste Teil des Vortrags war eine Einführung in das Inkubationsprojekt Apache ACE, das darauf abzielt, die Nutzung von OSGi auf mehreren Geräten, auch aus der Ferne, zu vereinfachen.
Beim Zusammenstellen von Software aus wiederverwendbaren Komponenten besteht das am schwierigsten zu lösende Problem darin, wie die Software auf der wachsenden Zahl angeschlossener Geräte bereitgestellt werden kann. Die Situation wird noch schlimmer, wenn der Software-Stack auf dem Gerät heterogen ist und gleichzeitig unterschiedliche Komponenten benötigt. In dieser Vorlesung lernen wir, wie wir Softwarekomponenten auf Basis von Apache ACE (einer Open-Source-OSGi-basierten Lösung) auf verschiedene Gerätetypen verteilen und alles von Mobiltelefonen bis hin zu Knoten in der Cloud abdecken.
Das Apache Ace-Projekt basiert auf Software, die Luminis Anfang letzten Jahres gespendet hat. Die Software wurde in vielen realen Projekten eingesetzt, beispielsweise in Bordradarsystemen, Feld-Röntgengeräten, CMS-Software-Updates und Protokollmanagement sowie der Gepäckabfertigung am Flughafen Systeme.
In der zweiten Vorlesung wurden OSGi Remote Services (bereits in OSGi 4.2 enthalten) und deren Interaktion mit der Service Component Architecture (SCA) am Beispiel von Apache Tuscany vorgestellt.
Java-Modularisierungskonzepte und Zusammenfassung der aktuellen Situation
Umfassende Zusammenfassung von OSGi- und WebSphere-Anwendungsbeispielen
Suns JSR 294 wurde gestoppt, da Anwendungsserver auf OSGi setzten
Ein Überblick über die Vorteile und Implementierungsprinzipien der modularen Programmierung zur Beantwortung von Fragen: JSR 294, Sichtbarkeit und Benutzerfreundlichkeit.
OASIS hat an der Entwicklung der Service Component Architecture (SCA)-Spezifikation gearbeitet. SCA bietet ein heterogenes SOA-Programmiermodell, das zahlreiche Implementierungstechnologien (EJB, BPEL, C++, COBOL usw.), Bindungen (Webdienste, JMS, IIOP usw.) und Richtlinien (WS-Policy usw.) umfasst.
Der Vortrag gab eine kurze Einführung in die Technologien OSGi Remote Services und Service Component Architecture und sprach dann darüber, wie man beide integriert, damit OSGi-Anwendungen über Remote Services auf mehrere SCA-Implementierungstechnologien, Bindungen und Richtlinien-Frameworks zugreifen können.
Die bevorstehenden Konferenzpläne der OSGi DevCon London und JAX London wurden bekannt gegeben. Das Angebot endet heute, aber Mitglieder der OSGi UK User Group können zusätzliche Rabatte erhalten.
Zusammenfassen
Es ist offensichtlich, dass immer mehr große Serversysteme OSGi übernehmen werden und gleichzeitig OSGi auch in kleinen und mittleren Systemen Einzug halten wird. Da sich die Build-Tools ständig weiterentwickeln, können Entwickler OSGi-Bundles gleichzeitig in einer Vielzahl von IDEs entwickeln. Außerdem entstehen neue Repositorys für die gemeinsame Nutzung von OSGi-Bundles und die Entwicklung modularer Java-Anwendungen wird immer einfacher. Darauf aufbauend behauptet Kirk Knoernschild: 2010 wird das Jahr der Java-Modularität sein.