- 1. inovex BrownBag OSGi (+ Spring MVC)
- Pforzheim, 21. September 2009
2. Agenda Was ist OSGi? Probleme klassischer Java Anwendungen
Probleme in JEE Anwendungen Wiederverwendbare Module in JEE
Anwendungen Probleme bei Portal Anwendungen Lsungen von OSGi
Beispiel mit Spring DM und Spring MVC (ggf. Abgrenzungen) 25.
August 2009 Copyright: inovex GmbH, 2009 3.
- OSGi (Open Service Gateway initiative)
- Ein normales jar, das im META-INF/MANIFEST.MF weitere Infos
enthlt.
- Ein Singleton. In einer Version kann es nur einmal
existieren.
- Ein beliebiges Java Interface.
- Kann instantiiert werden.
Was ist OSGi? 25. August 2009 Copyright: inovex GmbH, 2009
4.
- Alle public Klassen von allen Jars sind sichtbar
- Gefahr ungewollter Abhngigkeiten
- Definition der Abhngigkeiten
- Es gibt keine explizite Definition ausser mit Maven.
- Gefahr frClassNotFoundException, NoClassDefFoundError,...
- Zwei Versionen des selben jar's nicht mglich
Probleme klassischer Java Anwendungen 25. August 2009 Copyright:
inovex GmbH, 2009 5. Probleme in JEE Anwendungen 25. August 2009
Copyright: inovex GmbH, 2009 6. Probleme in JEE Anwendungen
- WAR's, EAR's knnen unabhngig deployed werden
- Sichtbarkeit entsprechend der Ebene im Baum
- Sichtbarkeit entsprechend Descriptor
- Definition der Abhngigkeiten
- Teilweise in Deployment Descriptoren.
- Man kann die Abhngigkeiten zwischen Jars zur Entwicklungszeit
nicht eindeutig auflsen.
- Gefahr fr ClassNotFoundException, NoClassDefFoundError,...
25. August 2009 Copyright: inovex GmbH, 2009 7.
Wiederverwendbare Module in JEE Anwendungen
- Jars in den Server ClassPath legen
-
- Nicht mehr unabhngig deploybar
-
- Versionskonflikte mit anderen jars
- Jars tiefer in die Hierarchie legen
-
- Verbraucht mehr PermGen Space
25. August 2009 Copyright: inovex GmbH, 2009 8. Probleme bei
Portal Anwendungen
- Austauschbare Schnipsel einer Webseite
- Portlet wird oft als WAR deployed
- Unabhngige Frameworks pro WAR erzeugen redundante jars und
damit zu viel PermGen Space
- Ein Framework fr alle Portlets
- Bei Zeitgeist: meistens Struts Portlets
- Fhrt aber eigentlich die Portlet-Idee ad absurdum
25. August 2009 Copyright: inovex GmbH, 2009 9.
- Keine redundanten jars ntig
- Abhngigkeiten sind graphbasiert
- Abhngigkeiten bercksichtigen Versionen der jars/bundles
- Explizite Definition der ffentlichen API
- Ein Bundle (jar) gibt im manifest File die exportierten
Packages an
- Andere Packages sind nicht sichtbar
- Explizite Definition der Abhngigkeiten
- Im Manifest File werden die importierten Packages inkl. Version
angegeben
- Zur Entwicklungszeit gibt es Fehlermeldungen, wenn andere
Packages verwendet werden
- Austauschbarkeit zur Laufzeit
- Bundles (und dessen Services) knnen zur Laufzeit hinzugefgt,
entfernt, oder aktualisiert werden. (das macht das System aber auch
komplexer)
Lsungen mit OSGi 25. August 2009 Copyright: inovex GmbH, 2009
10. Beispielanwendung: Trinkgeldkasse 25. August 2009 Copyright:
inovex GmbH, 2009 11. Beispielanwendung: Trinkgeldkasse 25. August
2009 Copyright: inovex GmbH, 2009 12. 25. August 2009 Copyright:
inovex GmbH, 2009 Vielen Dank fr eure Aufmerksamkeit!