Your SlideShare is downloading. ×
0
Michael Greifeneder


                           OSGi
  The Next Generation Java Service Platform


                 SOA -...
Inhalt

    Problem
●


    OSGi
●


    SOA
●


    Tools
●
Warum OSGi?
Im besten Fall:




Aber auch dieses Verhalten möglich:
Was fehlt?                Application


    Sinnvoller Name für Jar
●
                                Lib A              L...
OSGi
    Ursprünglich “Open Service Gateway
●

    Initiative” für Embedded Systems
    Heute: Dynamic Module System For J...
Implementierungen
    Equinox
●


        Unterbau für Eclipse, Common Public License
    –
        http://www.eclipse.org...
Framework
    L0: Execution Environment
●


        Profile definieren Minimum: Mobile, J2SE, EE
    –

    L1: Modules
●
...
Modules
    Modularisierung
●

    durch
    Bundles
    Eigene
●

    Classloader
    Schutz von
●

    Packages
    Vers...
Lifecycle
    Jedes Bundle
●

    hat Lifecycle          INSTALLED            STARTING

    Bundle Manager
●

    ist Teil...
Metadaten
    META-INF/MANIFEST.MF
●


        Bundle-Name: test.movieservice
    –
        Bundle-SymbolicName: test.movi...
Probleme
    Jars müssen angepasst werden
●


        Metadaten
    –

    Libraries, die eigene Classloader
●

    verwen...
Services - SOA?
    “SOA ist doch was mit Webservices,
●

    oder?”
SOA
  mit Webservices
  und XML




http://www.flickr.com/photos/psd/114552560/in/set-72057594085366895/
Services - SOA?
    Webservices bieten Dienste im Netz an
●

    und greifen über das Netz auf andere
    Services zurück....
Services
    System Services
●


        Log Service, Preferences Service,
    –
        Configuration Admin Service, User...
Services
    Manuelle Registrierung
●


class X implements BundleActivator {
  public void start(BundleContext context) {
...
Services
    Manuelle Verwendung
●

    ServiceReference ref =
      context.getServiceReference(
         DbService.class...
Equinox-
Extensions
     Extensions sind
    ●

    Deklarationen
    ●Lazy Loading

    ●z.B. Menüpunkte




Declarative
...
Spring Dynamic Modules
                      for OSGi(tm) Service Platforms
      Wie Spring Framework unter Apache
  ●

 ...
Spring DM
    META-INF/spring/*-context.xml
●



    <osgi:reference id=quot;db4oOsgiServicequot;
●

    interface=quot;co...
Open Participation Software for Java


                          PAX
    Projekte von OPS4J
●


    Pax-Construct:
●


   ...
again...
http://i9.photobucket.com/albums/a59/Heynowrcp/spring.jpg
SpringSource Application Server
    Basiert auf OSGI. Verwendet Equinox als
●

    Unterbau.
    Alle Komponenten des Spri...
Summary
    Modularität
●


    Versionierung
●


    Dynamik
●


    Services
●


        Spring DM
    –

        Equino...
ENDE

Danke für die Aufmerksamkeit!


    ??? Fragen ???
         Diskussion
Links
    http://www.osgi.org/Specifications/HomePage
●



    http://www.aqute.biz/OSGi/Presentations
●



    http://www...
JSUG - OSGi by Michael Greifeneder
JSUG - OSGi by Michael Greifeneder
JSUG - OSGi by Michael Greifeneder
JSUG - OSGi by Michael Greifeneder
JSUG - OSGi by Michael Greifeneder
JSUG - OSGi by Michael Greifeneder
JSUG - OSGi by Michael Greifeneder
JSUG - OSGi by Michael Greifeneder
JSUG - OSGi by Michael Greifeneder
Upcoming SlideShare
Loading in...5
×

JSUG - OSGi by Michael Greifeneder

1,285

Published on

visit http://jsug.fsinf.at

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,285
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
29
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "JSUG - OSGi by Michael Greifeneder"

  1. 1. Michael Greifeneder OSGi The Next Generation Java Service Platform SOA - The Java Way or My classpath is killing me Bilder von Peter Kriens “W-JAX Keynote 2007” und Neil Bartletts “Getting Started with OSGi”
  2. 2. Inhalt Problem ● OSGi ● SOA ● Tools ●
  3. 3. Warum OSGi?
  4. 4. Im besten Fall: Aber auch dieses Verhalten möglich:
  5. 5. Was fehlt? Application Sinnvoller Name für Jar ● Lib A Lib B Version ● Abhängigkeiten ● Lib C v1 Lib C v2 Verstecken von internen Klassen ● Late Binding, Dynamics ●
  6. 6. OSGi Ursprünglich “Open Service Gateway ● Initiative” für Embedded Systems Heute: Dynamic Module System For Java ● Eclipse basiert seit Version 3.0 auf OSGi. ● OSGi Alliance definiert Spezifikation seit ● '99 Mitglieder: Nokia, IBM,... – Aktuelles Release 4.1 – http://www.osgi.org
  7. 7. Implementierungen Equinox ● Unterbau für Eclipse, Common Public License – http://www.eclipse.org/equinox/ Apache Felix ● Apache License, http://felix.apache.org – Makewave Knopflerfish ● BSD style license, http://www.knopflerfish.org/ – GUI und Web-Console –
  8. 8. Framework L0: Execution Environment ● Profile definieren Minimum: Mobile, J2SE, EE – L1: Modules ● L2: Life Cycle ● S Applications Management E Services (bundles) C U L3: Service Registry ● Life Cycle R I T Module Y Java Execution Env OS + Hardware
  9. 9. Modules Modularisierung ● durch Bundles Eigene ● Classloader Schutz von ● Packages Versionierung ●
  10. 10. Lifecycle Jedes Bundle ● hat Lifecycle INSTALLED STARTING Bundle Manager ● ist Teil der start Spezifikation RESOLVED ACTIVE stop UNINSTALLED STOPPING
  11. 11. Metadaten META-INF/MANIFEST.MF ● Bundle-Name: test.movieservice – Bundle-SymbolicName: test.movieservice Bundle-Version: 1.0.0.SNAPSHOT – Export-Package: test.movieservice – Import-Package: test.dto – BundleActivator: – test.movieservice.BundleActivator
  12. 12. Probleme Jars müssen angepasst werden ● Metadaten – Libraries, die eigene Classloader ● verwenden z.B.: Hibernate – Dynamik der Bundles und Services ● schwerer zu handhaben
  13. 13. Services - SOA? “SOA ist doch was mit Webservices, ● oder?”
  14. 14. SOA mit Webservices und XML http://www.flickr.com/photos/psd/114552560/in/set-72057594085366895/
  15. 15. Services - SOA? Webservices bieten Dienste im Netz an ● und greifen über das Netz auf andere Services zurück. XML dient als Lingua Franka zwischen verschiedenen Plattformen Die OSGi Service Platform stellt Services ● innerhalb einer Java VM zur Verfügung
  16. 16. Services System Services ● Log Service, Preferences Service, – Configuration Admin Service, User Admin Service, ... Protocol Services ● HTTP Service , UPnP Service, ... – Other ● XML Parser Service, ... –
  17. 17. Services Manuelle Registrierung ● class X implements BundleActivator { public void start(BundleContext context) { DbService s = new MyDbService(); context.registerService( DbService.class.getName(), s); } }
  18. 18. Services Manuelle Verwendung ● ServiceReference ref = context.getServiceReference( DbService.class.getName()); if (ref != null) { DbService s = context.lookup(ref); if (s != null) { s.callDbService(); } } Flexibel, aber mühsam ●
  19. 19. Equinox- Extensions Extensions sind ● Deklarationen ●Lazy Loading ●z.B. Menüpunkte Declarative Services Deklaration in XML ● ●Kein Lazy Loading http://www.eclipsezone.com/articles/extensions-vs-services/images/extensions.png
  20. 20. Spring Dynamic Modules for OSGi(tm) Service Platforms Wie Spring Framework unter Apache ● Lizenz Spring konfiguriert Anwendungen und ● kümmert sich um Injektion und Deklaration von Services – Transaktionen – Logging – Datenbankabstraktion – http://www.springframework.org/osgi
  21. 21. Spring DM META-INF/spring/*-context.xml ● <osgi:reference id=quot;db4oOsgiServicequot; ● interface=quot;com.db4o.osgi.Db4oServicequot;/> <bean name=quot;MovieServiceDb4oquot; ● class=quot;test.movieservice.db4o.MovieServiceImplquot; init-method=quot;startquot; destroy-method=quot;stopquot;> <property name=quot;db4oServicequot; ref=quot;db4oOsgiServicequot;></property> </bean> <osgi:service id=quot;db4oMovieServicequot; ● ref=quot;MovieServiceDb4oquot; interface=quot;test.movieservice.MovieServicequot;> </osgi:service>
  22. 22. Open Participation Software for Java PAX Projekte von OPS4J ● Pax-Construct: ● Maven Plugins zum Erstellen, Builden, – Verwalten und Deployen von OSGI Komponenten. Eclipse-Konfiguration Verwendet Bnd - Bundle Tool – Pax-runner ● Erleichtert das Testen mit mehrere – Implementierungen: Equinox, Felix,... Pax-Logging,... ●
  23. 23. again... http://i9.photobucket.com/albums/a59/Heynowrcp/spring.jpg
  24. 24. SpringSource Application Server Basiert auf OSGI. Verwendet Equinox als ● Unterbau. Alle Komponenten des Spring-Frameworks ● sind bereits OSGI-ready Basiert auf Spring Dynamic Modules ● Erweiterungen für Webentwicklung ● Bietet spezielles Bundle-Repository – Deploymenthilfen (zB War File oder PAR) – Lizensiert unter GPL ●
  25. 25. Summary Modularität ● Versionierung ● Dynamik ● Services ● Spring DM – Equinox Extensions – Achtung bei noch nicht OSGi-ready ● Bibliotheken
  26. 26. ENDE Danke für die Aufmerksamkeit! ??? Fragen ??? Diskussion
  27. 27. Links http://www.osgi.org/Specifications/HomePage ● http://www.aqute.biz/OSGi/Presentations ● http://www.eclipse.org/equinox-portal/getstarted.php ● http://www.eclipsecon.org/ ● http://developers.sun.com/learning/javaoneonline ● http://neilbartlett.name/blog/osgibook/ ● http://www.springframework.org/osgi ● http://www.infoq.com/presentations/colyer-server-side-osgi ● ●
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×