Sie sind hier
E-Book

OSGi für Praktiker

Prinzipien, Werkzeuge und praktische Anleitungen auf dem Weg zur `kleinen SOA`

AutorBernd Weber
VerlagCarl Hanser Fachbuchverlag
Erscheinungsjahr2010
Seitenanzahl274 Seiten
ISBN9783446424371
FormatPDF
KopierschutzWasserzeichen/DRM
GerätePC/MAC/eReader/Tablet
Preis31,99 EUR

Dieses Praxisbuch führt Sie in die Welt von OSGi ein und vermittelt Ihnen alles, was Sie wissen müssen, um OSGi erfolgreich in Ihrem Projekt einzusetzen. Es unterstützt Sie bei der Auswahl der Werkzeuge und der geeigneten Realisierungsvarianten und nicht zuletzt bei der Migration bestehender Applikationen. Die Themen reichen von der Beschreibung des zentralen bnd-Tools von Peter Kriens über die Kollaboration von Spring und OSGi bis zu Betriebsüberwachung mittels JMX, von verteilten OSGi-Systemen bis zum dynamischen Rich Client. Der Build-Prozess wird ausführlich beschreiben, da er eine zentrale Rolle in der Software-Erstellung einnimmt und enormes Effektivitäts-Potential hat. Und natürlich kommt auch das Testen nicht zu kurz. Die Test-getriebene Entwicklung ist wie überall auch für OSGi-Bundles Pflicht. Egal, ob Sie OSGi erst kennen lernen wollen oder Ihr OSGi-Know-how vertiefen wollen, Sie finden in diesem Buch aktuelle und kompetente Informationen, die Sie direkt in Ihrem Projekt anwenden können.

Kaufen Sie hier:

Horizontale Tabs

Leseprobe

Kapitel 4 GateKeeper – OSGi-Projekt aufsetzen (S. 67-68)

In diesem Kapitel werden die Grundlagen für die Einrichtung von OSGi-Projekten vermittelt. Das Resultat dieses Kapitels ist ein Gesamtprojekt namens GossipMonger sowie ein darin enthaltenes Bundle, welches als OSGi EventHandler auf das Taktsignal des JobTimers hört und zum Anlass nimmt, in einem Verzeichnis nach Dateien zu sehen. Sind solche vorhanden, gibt es eine entsprechende Meldung aus. Dieses Pförtner-Bundle soll auf den Namen „GateKeeper“ hören.

Alle Bundles sollen automatisch per Maven erstellt und in einer Laufzeitumgebung gestartet werden. Zunächst wird ein Maven Super-POM erstellt, um dieses und die noch kommenden GossipMonger-Module vernünftig verwalten zu können. Das JobTimer- Bundle wird als Abhängigkeit importiert, um anschließend mit PAX Provision einen sehr bequemen Weg zur Bestückung der OSGi-Plattform mit allen notwendigen Bundles gehen zu können. Das neue GossipMonger-Modul namens Gate- Keeper wird per pax-create-bundle generiert und als Maven-Projekt in Eclipse importiert. Schließlich wird der GateKeeper als EventHandler implementiert, am Framework registriert und mit PAX Provision samt der übrigen beteiligten Bundles gestartet.

4.1 Voraussetzungen

Kapitel 3 hat gezeigt, dass einige Eigenschaften und auch manches Verhalten des JobTimer-Teilprojekts für andere Teile des GossipMonger-Projekts nützlich sein dürften. Zudem ist der Automatisierungsgrad des Erstellungsprozesses noch verbesserungsfähig, vor allem im Hinblick auf das eigentliche Ziel der automatisierten Bundle-Erstellung und dessen Installation in das lokale Maven-Repository. Die manuelle Erweiterung der JobTimer JAR-Datei um OSGi-Header mittels des bnd-Werkzeugs sollte folglich in den Maven-Erstellungslauf integriert werden.

4.1.1 PAX-Werkzeuge

Diese Aufgaben werden gelöst durch die Verwendung des maven-bundle-plugin von Apache Felix1, welches das bnd-Werkzeug zur Ergänzung von JARs um OSGi-Header nutzt, und durch die Generalisierung der Standardvorgaben für die Projektmodule in einem GossipMonger Master POM. Für dieses und die weiteren Module des GossipMonger-Projekts werden Teile des PAX-Werkzeugkastens verwendet, insbesondere PAX Construct2 zum Generieren und Einbinden von Bundles sowie das ebenfalls darin befindliche PAX Provision zur Bestückung der OSGi-Plattform. Die PAX-Werkzeuge werden von der OPS4JCommunity3 zur Verfügung gestellt, die auf den etwas sperrigen Namen „Open Participation Software for Java“ hört und sich nicht nur die Bereitstellung offener und freier Software auf die Fahnen geschrieben hat, sondern auch das Mitarbeiten daran ebenso offen nach dem Vorbild der Wikipedia gestalten möchte.

Inhaltsverzeichnis
Foreword12
Vorwort der Autoren14
Die Autoren16
1 Einleitung18
1.1 Die OSGi-Service-Plattform19
1.1.1 Bundles19
1.1.2 Das OSGi-Framework21
1.2 Geschichte35
1.3 OSGi Enterprise Design36
1.3.1 Distributed OSGi37
1.3.2 JMX-Management39
1.4 OSGi vs. SOA40
1.5 Über dieses Buch41
2 OSGi-Implementierungen46
2.1 Die OSGi Alliance47
2.1.1 Vollmitglieder47
2.1.2 Assoziierte Unternehmen48
2.1.3 Unterstützer48
2.2 Zertifizierte Produkte48
2.3 Open Source-Implementierungen49
2.3.1 Eclipse Equinox49
2.3.2 Knopflerfish52
2.3.3 Apache Felix54
2.4 OSGi und das Spring-Framework57
2.5 Fazit59
3 JobTimer – Bundle-Grundlagen62
3.1 Voraussetzungen63
3.1.1 Projekt aufsetzen mit Maven63
3.1.2 Verwenden als Eclipse-Projekt65
3.1.3 POM-Datei anpassen66
3.2 JobTimer implementieren68
3.3 Verpacken als Bundle71
3.3.1 Verwendung von bnd wrap72
3.3.2 Verwendung von bnd build73
3.4 Bundles installieren und starten76
3.4.1 Starten der Plattform76
3.4.2 Installieren von Bundles77
3.4.3 Bundle Repositories79
3.4.4 Starten von Bundles80
3.4.5 Auflösen von Abhängigkeiten80
3.4.6 Herunterfahren der Plattform82
3.5 Fazit82
4 GateKeeper – OSGi-Projekt aufsetzen84
4.1 Voraussetzungen84
4.1.1 PAX-Werkzeuge85
4.1.2 Bundle-Automatik85
4.1.3 Master POM erstellen86
4.1.4 Bereitstellen der Bundles88
4.1.5 Startreihenfolge92
4.2 Erstellen des GateKeeper-Bundles93
4.2.1 Erstellen des Maven-Moduls93
4.2.2 Verwenden der Eclipse IDE94
4.2.3 GateKeeper implementieren96
4.2.4 Metadaten definieren98
4.3 Fazit99
5 Enunciator – Declarative Services102
5.1 Voraussetzungen102
5.1.1 Tücken optionaler Auflösung103
5.2 Erstellen des Enunciator-Bundles104
5.2.1 Erstellen des Maven-Moduls104
5.2.2 Enunciator implementieren105
5.2.3 Dienst deklarieren108
5.2.4 Installieren des Bundles110
5.3 Deklaration einer Komponente111
5.3.1 Attribute einer Komponente111
5.3.2 Kind-Elemente einer Komponente112
5.4 GateKeeper erweitern114
5.4.1 Zugriff auf das Enunciator-Package114
5.4.2 Lifecycle-Methoden erweitern115
5.4.3 Dynamischer Aufruf116
5.4.4 Exkurs: ServiceTrackerCustomizer117
5.4.5 Installieren des erweiterten Bundles119
5.5 Ausführen der Bundles120
5.5.1 Ausführen mit PAX Provision120
5.5.2 Ausführen mit dem PAX Runner Plugin121
5.6 Fazit123
6 Migration – Java-Archive zu Bundles erweitern124
6.1 Analyse des Java-Archivs124
6.1.1 Ermitteln von Abhängigkeiten mit Hilfe von bnd125
6.1.2 Analyse der Abhängigkeiten126
6.1.3 Laufzeitumgebung126
6.2 Standardmigration128
6.2.1 Festlegen der Metadaten128
6.2.2 Durchführen der Migration130
6.2.3 Bereitstellung131
6.3 Beistellungsmigration131
6.3.1 Aufnahme von Ressourcen132
6.3.2 Festlegen der Metadaten134
6.3.3 Durchführen der Migration134
6.3.4 Bereitstellung135
6.4 Transitive Migration136
6.4.1 Festlegen der Metadaten136
6.4.2 Migration der BouncyCastle-Archive137
6.4.3 Gemeinsame Migration aller BouncyCastle-Archive139
6.4.4 Festlegen der Metadaten140
6.4.5 Durchführen der Migration140
6.4.6 Bereitstellung141
6.5 Versionen und Versionsbereiche141
6.5.1 Referenzierung über Versionen142
6.5.2 Konventionen142
6.6 Fazit143
7 Worker – Fragmente und Integrationstests144
7.1 Voraussetzungen144
7.2 Die WorkerService-API145
7.2.1 Schnittstellendefinition145
7.2.2 POM-Datei146
7.3 WorkerService implementieren147
7.3.1 Vorüberlegungen147
7.3.2 Der Quellcode147
7.3.3 Komponente deklarieren153
7.3.4 POM-Datei anpassen154
7.4 GateKeeper erweitern155
7.5 Laufzeitverhalten158
7.5.1 Bundle stop159
7.5.2 Bundle start160
7.5.3 Bundle update160
7.5.4 Bundle refresh161
7.6 Fragmente162
7.6.1 Verwendung im Projekt162
7.6.2 Erstellung des Bundles163
7.6.3 Festlegen der Metadaten163
7.6.4 Test des Fragments163
7.7 Integrationstest mit PAX Exam164
7.7.1 Test-Bundle erstellen165
7.7.2 POM-Datei anpassen165
7.7.3 Generierter Integrationstest168
7.7.4 Einfacher Integrationstest168
7.7.5 Erweiterter Integrationstest171
7.8 Fazit177
8 SkilledWorker – Blueprint Services178
8.1 Voraussetzungen179
8.2 Erstellen des SkilledWorker-Bundles179
8.2.1 Erstellen des Maven-Moduls179
8.2.2 Verwenden der Eclipse IDE180
8.2.3 SkilledWorker implementieren180
8.3 Blueprint Services186
8.4 Spring Dynamic Modules for OSGi189
8.4.1 GateKeeper erweitern192
8.4.2 Services filtern193
8.5 Fazit195
9 WebMonitor – Webapplikationen mit OSGi198
9.1 Voraussetzungen198
9.2 Erstellen des WebMonitor-Webbundles199
9.2.1 Anpassen des POMs199
9.2.2 Services und Controller bereitstellen201
9.2.3 JSP View erzeugen205
9.2.4 Manifest anpassen206
9.2.5 OSGi-spezifisches web.xml207
9.3 Fazit209
10 Remote Services – Informationen über Distanz austauschen210
10.1 Voraussetzungen210
10.2 Erstellen des RemoteLogServer-Bundles211
10.2.1 Erstellen des Maven-Moduls211
10.2.2 Implementierung des RemoteLogServices211
10.3 Bundles starten mit PAX Runner213
10.3.1 Installation von PAX Runner214
10.3.2 Starten des RemoteLogServer mit PAX Runner214
10.4 Webservice testen215
10.5 Remote Service konsumieren216
10.6 Enunciator mit Fragment erweitern216
10.7 GossipMonger starten217
10.8 Fazit220
11 Police – System-Monitoring im laufenden Betrieb222
11.1 Installation der Apache Felix Web Console222
11.2 Konfiguration der Web Console225
11.2.1 Benutzer/Passwort ändern225
11.2.2 HTTP-Ports anpassen226
11.3 Fazit227
12 Big Brother – Überwachung und Steuerung von außen228
12.1 JobTimer-Intervall über JMX verändern228
12.2 JobTimer-Interval im Bundle-Cache persistieren232
12.3 Fazit235
13 Launcher – Starten von OSGi-Anwendungen236
13.1 Framework Launching API236
13.1.1 Schnittstellen237
13.1.2 Framework Eigenschaften237
13.2 Erstellen des Launchers239
13.2.1 Maven-Projekt erstellen239
13.2.2 Der Launcher im Quelltext239
13.2.3 Framework starten244
13.2.4 FrameworkFactory definieren244
13.2.5 Framework konfigurieren245
13.2.6 Infrastrukturmaßnahmen245
13.2.7 Applikations-Bundles250
13.3 Launcher bereitstellen251
13.3.1 Abhängigkeiten kopieren251
13.3.2 Manifest erweitern252
13.3.3 Assembly erstellen252
13.3.4 Launcher testen253
13.3.5 Bereitgestellte ApplicationBundles254
13.4 Fazit254
14 Aliens – Bundles from Outer (Java) Space256
14.1 Scala256
14.2 ScalaModules258
14.3 Das Chirp-Bundle260
14.4 Fazit265
Stichwortverzeichnis266

Weitere E-Books zum Thema: Programmiersprachen - Softwareentwicklung

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

Programmieren lernen in PHP 5

E-Book Programmieren lernen in PHP 5
Format: PDF

Mit der Version 5 erreicht PHP einen bemerkenswerten Reifegrad, der PHP zu einer festen Größe in der Welt der Webprogrammierung macht. Gerade die leichte Erlernbarkeit macht PHP zur idealen…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Weitere Zeitschriften

arznei-telegramm

arznei-telegramm

Das arznei-telegramm® informiert bereits im 53. Jahrgang Ärzte, Apotheker und andere Heilberufe über Nutzen und Risiken von Arzneimitteln. Das arznei-telegramm®  ist neutral und ...

BMW Magazin

BMW Magazin

Unter dem Motto „DRIVEN" steht das BMW Magazin für Antrieb, Leidenschaft und Energie − und die Haltung, im Leben niemals stehen zu bleiben.Das Kundenmagazin der BMW AG inszeniert die neuesten ...

Card Forum International

Card Forum International

Card Forum International, Magazine for Card Technologies and Applications, is a leading source for information in the field of card-based payment systems, related technologies, and required reading ...

EineWelt

EineWelt

Lebendige Reportagen, spannende Interviews, interessante Meldungen, informative Hintergrundberichte. Lesen Sie in der Zeitschrift „EineWelt“, was Menschen in Mission und Kirche bewegt Man kann ...

VideoMarkt

VideoMarkt

VideoMarkt – besser unterhalten. VideoMarkt deckt die gesamte Videobranche ab: Videoverkauf, Videoverleih und digitale Distribution. Das komplette Serviceangebot von VideoMarkt unterstützt die ...

Evangelische Theologie

Evangelische Theologie

Über »Evangelische Theologie« In interdisziplinären Themenheften gibt die Evangelische Theologie entscheidende Impulse, die komplexe Einheit der Theologie wahrzunehmen. Neben den Themenheften ...