1 / 27

Service components and distribution with OSGi Seminar : Multimedia- und Internetsysteme

Service components and distribution with OSGi Seminar : Multimedia- und Internetsysteme. Paul Hübner | 10.01.2011. Bildquellen : [1 ] http:// www.osgi.org/wiki/uploads/Main/logo1.jpg [2] http:// www.flickr.com/photos/jurvetson/916142. Inhalt. OSGi Einführung Service Component Models

rane
Download Presentation

Service components and distribution with OSGi Seminar : Multimedia- und Internetsysteme

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Service components and distribution with OSGiSeminar: Multimedia- und Internetsysteme Paul Hübner | 10.01.2011 Bildquellen : [1] http://www.osgi.org/wiki/uploads/Main/logo1.jpg [2] http://www.flickr.com/photos/jurvetson/916142

  2. Inhalt • OSGi Einführung • Service Component Models • OSGi für Verteilte Systeme • Zusammenfassung

  3. OSGi Architektur Quelle: OSGi 4.2 Core Spezifikation, Seite 1-332, Abbildung 1

  4. OSGiBundle Lebenszyklus Quelle: OSGi 4.2 Core Spezifikation, Seite 97-332, Abbildung 4.28

  5. OSGiServicelayer , SOA Pattern : Publish-Find-Bind Service Registry Publish Find Service Requestor Service Provider Bind

  6. OSGi Serviceorientierung • Service Implementierung = POJO • Beschrieben durch Java Interface • Unabhängig von der Implementierung • Veröffentlichen von Bundle Funktionalität • Zentrale Service Registry durch OSGi Framework

  7. Inhalt • OSGi Einführung • Service Component Models • OSGi für Verteilte Systeme • Zusammenfassung

  8. Service Orientierte Entwicklung mit OSGi • Probleme: • Kopplung an das OSGi Framework Wiederverwendbarkeit • Komplexe Implementierung eines nicht Anwendungsspezifischen Aspektes • Einfachheit , Fehleranfälligkeit, …

  9. Lösung : Service Component Models (SCM) • Service Component Model: • Service Vertrag zwischen OSGiBundles • Was muss ein Service Component Model leisten: • Keine OSGi APIs im Quellcode der eigenen Anwendung • d.h. auch keine Activator Klasse • Definition von Services nicht im Quellcode sondern: • In XML Dateien oder mit Java Annotationen • Service = Java Interface, Service Impl. = Java Bean • Service Referenzen werden durch SCM verwaltet • Einschließlich der Reaktionsmöglichkeiten auf Service Dynamik

  10. Service Component Models - Übersicht • Declarative Services Specification • Blueprint Container Specification (Spring DM) • Apache iPOJO (inject POJO) • Google Guice & Peaberry

  11. Declarative Services (DS) • Seit Version 4.1 Teil der OSGiCompendiumSpec. • XML Definition für Services & Service Referenzen • Definiert durch Service-Component Manifest Eintrag • Default Ordner im Bundle: OSGI-INF/*.xml • Bestandteile: Service ComponetRuntime Implementiert als OSGiBundle provide Service Vertrag Service Definitionen Service Referencen … consume Bundels werden um Service XML Definition erweitert OSGi Framework Instanz Bundle Bundle Bundle

  12. Blueprint Container (Spring DM) • Seit Version 4.2 Teil der OSGiCompendiumSpec. • Entstanden aus Spring Dynamic Modules (V. 2.0) • Definiert durch Bundle-Blueprint Manifest Eintrag • Default Ordner im Bundle: OSGI-INF/blueprint/ Implementiert in 3 OSGiBundles, weitere Bundles für Spring erforderlich! Blueprint Container BlueprintBundle … BlueprintBundle service reference componentinstances … Blueprint XML service Blueprint Container Impl Blueprint Container Listener BlueprintExtender

  13. Apache iPOJO (inject POJO) • Vorreiter in Sachen OSGi SCM • Beeinflusste Declarative Services & Blueprint Container • Ähnlich Blueprint (Spring DM): • Trennung von Service Impl. & SCM Aspekten • Apache Projekt, nicht im OSGi Standard • Schnellere Entwicklungs- und Release-Zyklen • Unterschiede: • Konfiguration auch über ConfigureAdmin Service • Verbindung zwischen Metadaten und POJO zur Build-Zeit

  14. Google Guice & Peaberry • Google Guice als DependencyInjection Framework • Guice Basierend auf Java Annotationen • Peaberry ist eine Erweiterung für Guice • Ermöglicht mit speziellen Annotation : • Das erstellen von OSGi Service Objekten • Das referenzieren von OSGi Services • Das interagieren mit dem Service/ Bundle Lebenszyklus, d.h. umgang mit OSGi Service Dynamic

  15. Service Component Models Review

  16. Inhalt • OSGi Einführung • Service Component Models • OSGi für Verteilte Systeme • Zusammenfassung

  17. OSGi für Verteilte Systeme: Anforderungen • Aus der SOA im kleinen wird eine „echte“ SOA • Betreiben von OSGiBundles ohne Anpassung • Veröffentlichen & Nutzen von Service VerteiltesOSGiFamework Verteiltes System Peers

  18. Arten der Verteilung (1): Bundle Verteilung • Bundles zur Serviceumsetzung werden Verteilt • Keine Netzwerk Kommunikation bei Service Aufruf Verteiltes OSGi System BundleDaten Austausch Service Bundle • Kopie Service Bundle Netz-werk Bundle Peer 1 Peer 2

  19. Arten der Verteilung (2): Automatische Proxy Generierung • Bei 1. Service Aufruf wird ein Proxy Bundle erzeugt • Netzwerk Kommunikation bei Service Aufruf Verteiltes OSGi System Nachrichtenaustausch Proxy Service Bundle Service Bundle Netz- werk Peer 1 Peer 2

  20. R-OSGi, Architektur DistributedR-OSGi: • Durch Verwendung von jSLP(Service Location Protocol) • binäres Java Bytecode basiertes Kommunikationsprotokoll • Automatic Proxy BundleGeneration • Distributed Service Registry Verteiltes OSGi System R-OSGi Bundle R-OSGi R-OSGi R-OSGi Lokales OSGi Framework Peer 1 Peer 2 … Peer n

  21. Remote Services & Distributed OSGi, Architektur Distributed OSGi Distribution ProviderImpl. service. imported service. exported.interface toendpoint endpoint Lokale OSGi Frameworks export service import service ServiceProducer Impl. ServiceConsumer Impl. Quelle: OSGi 4.2 Compemdium Spezifikation, Seite 5-850, Abbildung 13.1, Überarbeitet

  22. Remote Services - Distribution Provider • Kern von Remote Services • Abstrakte Impl. Unabhängige Spezifikation • Referenz Impl. : Apache CXF • Basiert auf WS Standards: • SOAP & WSDL, JAX-WS &-RS, Spring Integration, …

  23. OSGi als Middleware Plattform • Lokales OSGi Framework • Standardisiertes Komponenten Laufzeitsystem • Service Plattform, einschließlich Standard Services (http, logging, …) • Distributed OSGi (R-OSGi, Remote Services, …) • Schafft Ortstransparenz • Verteilte Service Registry • Verteilt lokale Komponenten  Eignung Verteilter OSGi Systeme als Middleware Plattform

  24. Inhalt • OSGi Einführung • Service Component Models • OSGi für Verteilte Systeme • Zusammenfassung

  25. Evaluation: Service Component Models & Remoting Konzepte

  26. Zusammenfassung • OSGiunterstützt Serviceorientierung • OSGiEntwicklung „ohne“ OSGi durch Service ComponentModels • Declarative Services, Blueprint, iPOJO, Peaberry • OSGi als Middleware Plattform für Verteilte Systeme • R-OSGi: einfach& performant Embedded • Remote Services: komplex, Anbindung an Enterprise Welt, SOA

  27. Ende • Vielen Dank für die Aufmerksamkeit  • Fragen ?

More Related