inovex BrownBag OSGi (+ Spring MVC) <ul><li>Pforzheim, 21. September 2009 </li></ul><ul><li>Sandro Böhme </li></ul><ul><li...
Agenda Was ist OSGi? Probleme klassischer Java Anwendungen Probleme in JEE Anwendungen Wiederverwendbare Module in JEE Anw...
<ul><li>OSGi (Open Service Gateway initiative) </li></ul><ul><li>Laufzeitumgebung </li></ul><ul><li>Bundle </li></ul><ul><...
<ul><li>Deployment </li></ul><ul><li>Alles oder Nichts </li></ul><ul><li>Öffentliche API </li></ul><ul><li>Alle public Kla...
Probleme in JEE Anwendungen 25. August 2009 Copyright: inovex GmbH, 2009
Probleme in JEE Anwendungen <ul><li>Deployment </li></ul><ul><li>WAR's, EAR's können unabhängig deployed werden </li></ul>...
Wiederverwendbare Module in JEE Anwendungen <ul><li>Lösung 1 </li></ul><ul><li>Jars in den Server ClassPath legen </li></u...
Probleme bei Portal Anwendungen <ul><li>Ziel </li></ul><ul><li>Austauschbare Schnipsel einer Webseite </li></ul><ul><li>Po...
<ul><li>Keine redundanten jars nötig </li></ul><ul><li>Abhängigkeiten sind graphbasiert </li></ul><ul><li>Abhängigkeiten b...
Beispielanwendung: Trinkgeldkasse 25. August 2009 Copyright: inovex GmbH, 2009
Beispielanwendung: Trinkgeldkasse 25. August 2009 Copyright: inovex GmbH, 2009
25. August 2009 Copyright: inovex GmbH, 2009 Vielen Dank für eure Aufmerksamkeit!
Nächste SlideShare
Wird geladen in …5
×

OSGi und Spring MVC - inovex BrownBag

1.260 Aufrufe

Veröffentlicht am

Übersichtspräsentation zu OSGi

Veröffentlicht in: Technologie, Bildung
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.260
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
39
Aktionen
Geteilt
0
Downloads
12
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie
  • 25/08/09
  • 25/08/09
  • 25/08/09
  • 25/08/09
  • OSGi und Spring MVC - inovex BrownBag

    1. 1. inovex BrownBag OSGi (+ Spring MVC) <ul><li>Pforzheim, 21. September 2009 </li></ul><ul><li>Sandro Böhme </li></ul><ul><li>[email_address] </li></ul><ul><li>Eingetütet von: </li></ul>
    2. 2. Agenda Was ist OSGi? Probleme klassischer Java Anwendungen Probleme in JEE Anwendungen Wiederverwendbare Module in JEE Anwendungen Probleme bei Portal Anwendungen Lösungen von OSGi Beispiel mit Spring DM und Spring MVC (ggf. Abgrenzungen) 25. August 2009 Copyright: inovex GmbH, 2009
    3. 3. <ul><li>OSGi (Open Service Gateway initiative) </li></ul><ul><li>Laufzeitumgebung </li></ul><ul><li>Bundle </li></ul><ul><li>Ein normales jar, das im META-INF/MANIFEST.MF weitere Infos enthält. </li></ul><ul><li>Ein Singleton. In einer Version kann es nur einmal existieren. </li></ul><ul><li>Service </li></ul><ul><li>Ein beliebiges Java Interface. </li></ul><ul><li>Kann instantiiert werden. </li></ul><ul><li>Gehört zu einem Bundle </li></ul><ul><li>...es gibt noch mehr... </li></ul>Was ist OSGi? 25. August 2009 Copyright: inovex GmbH, 2009
    4. 4. <ul><li>Deployment </li></ul><ul><li>Alles oder Nichts </li></ul><ul><li>Öffentliche API </li></ul><ul><li>Alle public Klassen von allen Jars sind sichtbar </li></ul><ul><li>Gefahr ungewollter Abhängigkeiten </li></ul><ul><li>Definition der Abhängigkeiten </li></ul><ul><li>Es gibt keine explizite Definition ausser mit Maven. </li></ul><ul><li>Gefahr für ClassNotFoundException, NoClassDefFoundError,... </li></ul><ul><li>Zwei Versionen des selben jar's nicht möglich </li></ul>Probleme klassischer Java Anwendungen 25. August 2009 Copyright: inovex GmbH, 2009
    5. 5. Probleme in JEE Anwendungen 25. August 2009 Copyright: inovex GmbH, 2009
    6. 6. Probleme in JEE Anwendungen <ul><li>Deployment </li></ul><ul><li>WAR's, EAR's können unabhängig deployed werden </li></ul><ul><li>Öffentliche API </li></ul><ul><li>Sichtbarkeit entsprechend der Ebene im Baum </li></ul><ul><li>Sichtbarkeit entsprechend Descriptor </li></ul><ul><li>Definition der Abhängigkeiten </li></ul><ul><li>Nicht komplett explizit. </li></ul><ul><li>Teilweise in Deployment Descriptoren. </li></ul><ul><li>Man kann die Abhängigkeiten zwischen Jars zur Entwicklungszeit nicht eindeutig auflösen. </li></ul><ul><li>Doku und testen </li></ul><ul><li>Gefahr für ClassNotFoundException, NoClassDefFoundError,... </li></ul>25. August 2009 Copyright: inovex GmbH, 2009
    7. 7. Wiederverwendbare Module in JEE Anwendungen <ul><li>Lösung 1 </li></ul><ul><li>Jars in den Server ClassPath legen </li></ul><ul><li>-> Probleme: </li></ul><ul><ul><li>Nicht mehr unabhängig deploybar </li></ul></ul><ul><ul><li>Scope kann zu groß sein </li></ul></ul><ul><ul><li>Versionskonflikte mit anderen jars </li></ul></ul><ul><li>Lösung 2 </li></ul><ul><li>Jars tiefer in die Hierarchie legen </li></ul><ul><li>-->Problem: </li></ul><ul><ul><li>Verbraucht mehr PermGen Space </li></ul></ul>25. August 2009 Copyright: inovex GmbH, 2009
    8. 8. Probleme bei Portal Anwendungen <ul><li>Ziel </li></ul><ul><li>Austauschbare Schnipsel einer Webseite </li></ul><ul><li>Portlet wird oft als WAR deployed </li></ul><ul><li>Problem </li></ul><ul><li>Unabhängige Frameworks pro WAR erzeugen redundante jars und damit zu viel PermGen Space </li></ul><ul><li>Lösungen </li></ul><ul><li>Pures JSTL verwenden </li></ul><ul><li>Ein Framework für alle Portlets </li></ul><ul><li>Bei Zeitgeist: meistens Struts Portlets </li></ul><ul><li>Führt aber eigentlich die Portlet-Idee ad absurdum </li></ul>25. August 2009 Copyright: inovex GmbH, 2009
    9. 9. <ul><li>Keine redundanten jars nötig </li></ul><ul><li>Abhängigkeiten sind graphbasiert </li></ul><ul><li>Abhängigkeiten berücksichtigen Versionen der jars/bundles </li></ul><ul><li>Explizite Definition der öffentlichen API </li></ul><ul><li>Ein Bundle (jar) gibt im manifest File die exportierten Packages an </li></ul><ul><li>Andere Packages sind nicht sichtbar </li></ul><ul><li>Explizite Definition der Abhängigkeiten </li></ul><ul><li>Im Manifest File werden die importierten Packages inkl. Version angegeben </li></ul><ul><li>Zur Entwicklungszeit gibt es Fehlermeldungen, wenn andere Packages verwendet werden </li></ul><ul><li>Austauschbarkeit zur Laufzeit </li></ul><ul><li>Bundles (und dessen Services) können zur Laufzeit hinzugefügt, entfernt, oder aktualisiert werden. (das macht das System aber auch komplexer) </li></ul>Lösungen mit OSGi 25. August 2009 Copyright: inovex GmbH, 2009
    10. 10. Beispielanwendung: Trinkgeldkasse 25. August 2009 Copyright: inovex GmbH, 2009
    11. 11. Beispielanwendung: Trinkgeldkasse 25. August 2009 Copyright: inovex GmbH, 2009
    12. 12. 25. August 2009 Copyright: inovex GmbH, 2009 Vielen Dank für eure Aufmerksamkeit!

    ×