Modulare Java-Anwendungen mit OSGi

Keine JAR Hell mehr. Nicht mehr wundern müssen, an welcher Version des Codes man gerade arbeitet.

Modularität mit Equinox OSGi

Equinox OSGi ist ein leichtgewichtiges, extrem leistungsstarkes Modulsystem für Java. Es ist die Referenzimplementierung der modularen OSGi-Framework-Spezifikation.

Wendet man Equinox als Laufzeitumgebung an, so erhält man volle Kontrolle über den ausgeführten Code. Das beinhaltet auch die Möglichkeit, das System dynamisch zu rekonfigurieren sowie eine stabile Performance, die viele der größten kommerziellen Systeme antreibt. Denken Sie einmal darüber nach, Equinox als Erweiterung Ihrer JRE zu nutzen!
Das Equinox-Projekt beinhaltet eine breite Palette von Standard-Implementierungen und weiteren Service-Implementierungen zur Unterstützung von Szenarien wie eingebetteten Systemen, über Desktop bis hin zu Servern.

Equinox ist Standard

Die Equinox-Technologie basiert auf einem Spezifikationsset der OSGi Alliance. Die Kernspezifizierung für das modulare Framework ist die Basis von JSR-291, Equinox ist die Referenzimplementierung für beide. Mit Equinox nutzen Sie nicht nur den Vorteil von Standards – Sie nutzen die Implementierung des höchsten Standards.

Equinox führt Ihren Code überall aus

Mobile Computernutzung, Rich Clients, Web 2.0, JEE, Cloud-Computing, Virtualisierung. Die Anzahl der Computerplattformen explodiert. Equinox macht in jeder dieser Umgebungen Modularität möglich. Und nicht nur das – in vielen Fällen können Bundles innerhalb dieser Computerplattformen wiederverwendet werden.

Equinox skaliert

Equinox skaliert tausende kollaborierender Komponenten. Die aggressive Verwendung von lazy activation und lazy loading bedeutet, dass Ihre Anwendung nur auf die erforderlichen Ressourcen zugreift. Andererseits ist Equinox klein genug, um auf eingebetteten tragbaren Computern, Telematikeinheiten und Prozessleitsystemen zu laufen.

Modularität == Agilität

Hochmodulare Systeme sind agiler als andere. Betrachten Sie einmal Eclipse selbst. Equinox ist die allen Eclipse-Anwendungen zugrunde liegende Plattform. Durch den Einsatz von Equinox können Sie Ihr Projekt und Ihren Geschäftsbereich um ein hohes Maß an Flexibilität und Agilität bereichern. Kreieren Sie neue Produktkonfigurationen, ohne Code schreiben zu müssen. Betten Sie vorhandene Geschäftslogik in neue Anwendungen ein. Erhalten Sie die benötigte Lösung genau dann, wenn Sie sie brauchen.

Equinox verändert sich mit Ihnen

Anforderungen verändern sich. Das steht fest. Mit Equinox können Sie hochdynamische Systeme kreieren, die sich an Anwender und Anforderungen anpassen lassen. Sie möchten eine neue Anwendung deployen, die zusätzliche Funktionen benötigt? Fügen Sie diese Funktion hinzu, ohne das System herunterfahren zu müssen. Gibt es etwas, das Sie nicht mehr benötigen? Dann deinstallieren Sie es und sparen Ressourcen ein.

Provisioning mit Equinox p2

Equinox p2 ist eine umfangreiche Provisioning-Plattform für die Bereitstellung und das Verwalten von RCP-Anwendungen, OSGi-Laufzeitumgebungen, Tools, Servern und eingebetteten Systemen.

Durch die Verwendung von integriertem multi-threaded Download, Bundle Pooling und hochmoderner Constraint-Resolution-Technologie bietet p2 aus einer Hand alles für die Definition, Installation und Verwaltung komplexer Software-Systeme.

Verwalten Sie Ihre komplette Installation

Herkömmliche Installer kennen keine Eclipse-Bundles und -Features, sie kopieren Dateien lediglich und setzen Parameter. Sie schrecken auch vor dem Update installierter Funktionen zurück. p2 kennt die Funktionsweise von Eclipse und ermöglicht volle Kontrolle über alle Aspekte Ihrer Eclipse-Installation, angefangen bei Programm- und VM-Argumenten, über Start Levels bis hin zur Konfiguration von Bundles. Sie müssen keine unterschiedlichen Tools für die Installation, das Updaten und die Verwaltung Ihres Systems einsetzen.

Bündeln Sie Ihre Ressourcen

Haben Ihre Anwender viele Eclipse-basierte Systeme auf einem Rechner installiert, so kann das Bundle Pooling von p2 Speicherplatz, die für den Download benötigte Zeit und Bandbreite sparen. Bundles, die für ein bestimmtes Profil installiert wurden, können gebündelt und für andere Profile genutzt werden. Jegliches Bundle muss nur ein Mal heruntergeladen und installiert werden, um für alle p2-Profile nutzbar zu sein.

Erweiterbare API und offenes Format

Heutige Systeme setzen sich aus vielen unterschiedlichen Technologien zusammen. Jede Laufzeitumgebung hat eigene Anforderungen und Besonderheiten bei der Konfiguration. WARs, JARs, RPMs, MSI, ausführbare Programme etc. – alle funktionieren unterschiedlich und werden anders integriert. Der erweiterbare Touchpoint-Mechanismus von p2 passt sich an, indem er für die Interaktion mit den Laufzeitumgebungen und die Installation von Komponenten plattformspezifischen Code verwendet.

Vereinfachte Workflows

Die Installation und Verwaltung komplexer Systeme kann mitunter eine Herausforderung darstellen. Die vereinfachten Workflows von p2 bieten dem Anwender für die Verwaltung seiner Software vertraute Metaphern an, wie beispielsweise Drag-and-Drop. Bei der Entwicklung von Anwendungen können neue Provisioning-Interfaces zusammengesetzt und integriert werden, indem GUI-Komponenten von p2 wiederverwendet werden. Alternativ können auch vollkommen neue Workflows konzipiert werden, die auf der soliden API von p2 basieren.

Keine bösen Überraschungen während der Laufzeit

Im Unterschied zur früheren Technologie für die Verwaltung von Eclipse erkennt p2 genau, was Sie ausführen bzw. ausführen wollen. Durch die Trennung der Beschreibung Ihres Systems vom System selbst, ermöglicht p2 es Ihnen, über Installationsänderungen nachzudenken, bevor Sie diese ausführen. Keine bösen Überraschungen mehr während der Laufzeit und kein langes Nachdenken darüber, was Sie eigentlich gerade ausführen. Wenn p2 es installieren kann, kann Eclipse es ausführen.

Runtime Packages aus dem Eclipse RTP

Das Eclipse RTP-Projekt liefert vorkonfigurierte Eclipse-RT-Pakete, die es ermöglichen, mit dem Einsatz der Eclipse Laufzeitumgebung rasch mit dem Entwickeln zu beginnen – ohne erst noch den Weg durch den Dschungel der p2-Repositories finden zu müssen.

Equinox und p2 liefern die Basis für alle Packages. Das bedeutet, dass ein Paket durch die Verwendung aller standardmäßigen Eclipse-Tools erweitert und konfiguriert werden kann. Die Pakete können zusätzlich als Zielplattform genutzt werden durch die Verwendung der bereitgestellten p2-Repositories oder durch das Downloaden und Ausführen der Packages an sich.

Lizenzierung & Auslieferung

Die RTP-Packages unterliegen der Eclipse Public License und können wie alle Eclipse Tools und Frameworks für die Entwicklung von sowohl Open-Source-Software als auch kommerzieller Software genutzt werden. Die Pakete werden von Eclipse-Committern gewartet und während der regulären Eclipse-Release-Zyklen ausgeliefert und aktualisiert.

Laufzeitumgebung

Während alle EclipseRT-Technologien mit Java implementiert werden, können RTP-Packages fast auf jeder Laufzeitumgebung ausgeführt werden. Um dies zu demonstrieren bietet das Projekt auch einige Cloud Images, bei denen die RTP-Packages vorinstalliert sind.