Spring Dynamic Modules for OSGi Service Platforms

Ähnliche Dokumente
Spring Dynamic Modules for OSGi Service Platforms

Gerd Wütherich Nils Hartmann. OSGi Service Platform by example

Mit OSGi Webanwendungen entwickeln Was geht, was nicht?

Gerd Wütherich Martin Lippert. OSGi Service Platform by example

Spring & OSGi: Plattform der Zukunft. Bernd Kolb (Kolbware) Martin Lippert (akquinet agile GmbH) Gerd Wütherich (comdirect bank AG)

OSGi: Anwendungsszenarien, Auswahlkriterien und Ausblick

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, Java Forum Stuttgart 2007

Die OSGi Service Plattform

OSGi-basierte Webapplikationen Ein Erfahrungsbericht

Andreas Mösching Senior IT Architekt Hewlett-Packard (Schweiz) GmbH HP Banking Service Center Bern

Das Interceptor Muster

OSGi. The Next Generation Java Service Platform. SOA - The Java Way or My classpath is killing me. Michael Greifeneder

Java Entwicklung für Embedded Devices Best & Worst Practices!

Eignet sich Eclipse RCP als Enterprise Plattform? 2. Mai 2006 Lars Stucki & Edwin Steiner

SpringSource Enterprise & Application Platform: Wo geht die Reise hin?

Eclipse, Spring und OSGi 1

Übersicht. Eclipse Foundation. Eclipse Plugins & Projects. Eclipse Ganymede Simultaneous Release. Web Tools Platform Projekt. WSDL Editor.

Anwendungen zur Raumautomation auf Basis der OSGi- und LON-Technologie

Konfiguration von Igel ThinClients fu r den Zugriff via Netscaler Gateway auf eine Storefront/ XenDesktop 7 Umgebung

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

euz Zusammenführung der Anwendungen Ursprungszeugnis IHK Gesellschaft für Informationsverarbeitung mbh Hörder Hafenstr Dortmund Version 1.

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Etablierung serviceorientierter Architekturen mit Web Services

ATHOS Benutzertreffen

NetMan Desktop Manager Vorbereitung und Konfiguration des Terminalservers

Einleitung. Funktion. Panzenböck Phillipp. Download Installation. Testen. Konfiguration

WinVetpro im Betriebsmodus Laptop

Dynamische Plug-ins mit Eclipse 3. Martin Lippert Tammo Freese

Architektur des agimatec-validation Frameworks

ECO-Manager - Funktionsbeschreibung

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

Software Release Notes

Virtueller Campus. Virtueller Campus Horw mit interaktiver Steuerung. HowTo: Externe Bibliotheken

Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool

Inhaltsverzeichnis. TeiM. V E E.l E.2 E.3 E.4. Vorwort von Stefan Tilkov Einleitung Zielgruppe Über dieses Buch Konventionen Dank

Der lokale und verteilte Fall

Installation OMNIKEY 3121 USB

Inhalt. 1 Übersicht. 2 Anwendungsbeispiele. 3 Einsatzgebiete. 4 Systemanforderungen. 5 Lizenzierung. 6 Installation.

Fachapplikationen in heterogenen IT Landschaften

AutoCAD Dienstprogramm zur Lizenzübertragung

FastViewer v3 bei der TechniData IT-Service GmbH

teamsync Kurzanleitung

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

[DvBROWSER] Offline-Viewer für [DvARCHIV] und [DvARCHIVpersonal] Version 2.2

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

ADDISON Aktenlösung Automatischer Rewe-Import. Technische Beschreibung

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Windows Vista Security

News RSS-Export. mit tt_news und pmk_rssnewsexport. Alexander Mürb, Arthur Palmer TYPO3 User Group Stuttgart

Funktionserweiterungen, behobene Funktionseinschränkungen und Funktionseinschränkungen, EASY Starter V1.5

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

Update / Inbetriebnahme domovea Server. Update/Inbetriebnahme domovea Server Technische Änderungen vorbehalten

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

CADEMIA: Einrichtung Ihres Computers unter Mac OS X

Print2CAD 2017, 8th Generation. Netzwerkversionen

Updateseite_BuV-PlugIn-NERZ-Gesamt

Was ist das Tekla Warehouse

Die Backup-Voreinstellungen finden Sie in M-System Server unter dem Reiter "Wartung".

Synchronisations- Assistent

WebService in Java SE und EE

Anforderungen an die HIS

Web-basierte Benutzerschnittstellen für Embedded Systeme: Eine Benutzerschnittstelle drei Sichtweisen

Fujitsu BeanConnect TM V3.0 Software 0 FUJITSU LIMITED 2013

3 Installation von Exchange

Weblogic Server: Administration für Umsteiger

Historical Viewer. zu ETC5000 Benutzerhandbuch 312/15

KeyGateway incadea.engine DMS KeyReport Schlüsselmanagement auf höchstem Niveau

Automatisiertes Testen von Java EE-Applikationen mit Arquillian

Installation von NetBeans inkl. Glassfish Anwendungs-Server

PRODUKTINFORMATION LOCKING SYSTEM MANAGEMENT 3.3 SERVICE PACK 1 BASIC BASIC ONLINE BUSINESS PROFESSIONAL STAND: JUNI 2016

Installation der SAS Foundation Software auf Windows

ecaros-update 8.2 Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Eschenweg Weiterstadt

Anwenderhandbuch logiware IO-Stick in go1984

Flashfragen in ILIAS Test & Assessment. Helmut Schottmüller

Anton Ochsenkühn. amac BUCH VERLAG. Ecxel für Mac. amac-buch Verlag

Eclipse Plugins für die komfortablere Verwendung von ibatis SQLMaps

IBM SPSS Statistics Version 23. Einführung in Installation und Lizenzierung

Arbeiten mit UMLed und Delphi

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Lokale Installation von DotNetNuke 4 ohne IIS

Netzwerkversion PVG.view

UMSTELLUNG DER RÖNTGEN-SCHNITTSTELLE DÜRR-DBSWIN AUF DÜRR-VDDS

Zum Lesen von News-Feeds unter Windows bieten sich diverse kostenlose bzw. kostenpflichtige Feed-Reader an:

SAP NetWeaver Gateway. 2013

FastViewer Remote Edition 2.X

Step by Step Webserver unter Windows Server von Christian Bartl

MOBILE ON POWER MACHEN SIE IHRE ANWENDUNGEN MOBIL?!

MS Outlook Integration

Reporting Services und SharePoint 2010 Teil 1

SUB-ID- VERWALTUNG MIT GPP SETUP-GUIDE FÜR PUBLISHER

Abb. 1: Schematische Architektur WebLogic-Server

Wie Sie mit Mastern arbeiten

Gruppenrichtlinien und Softwareverteilung

Transkript:

Gerd Wütherich freiberuflicher Softwarearchitekt Spring Dynamic Modules for OSGi Service Platforms Server Anwendungen mit Spring und Eclipse Equinox

Agenda OSGi Technologie: OSGi Technologie im Überblick Ein praktisches Beispiel Spring Dynamic Modules: Spring Dynamic Modules im Überblick Ein praktisches Beispiel Ausblick auf Release 1.1 Web Support: Web Support imüberblick Ein praktisches Beispiel

OSG was? Die OSGi Service Platform: Java basierte Software Plattform, die dynamische Integration und (Fern ) Management von Modulen (Bundles) und Diensten (Services) ermöglicht. A dynamic module system for Java Besteht aus: OSGi Framework (Container für Bundles und Services) OSGi Standard Services (verschiedene, horizontale Dienste)

Woher kommt OSGi Service Platform? OSGi Alliance: http://www.osgi.org/ Wird seit 1999 mit Fokus auf Leichtgewichtigkeit und Dynamik entwickelt: Ursprünglich für Embedded Systeme Inzwischen verbreitet für Server und Client Systeme

Wo wird OSGi Service Platform heute verwendet? Die Eclipse Plattform Eclipse SDK (IDEs), Server Side Eclipse, ercp, IBM Websphere App Server 6.1 (basiert auf OSGi) Lotus (basiert auf Eclipse RCP, damit auch OSGi) Jazz (basiert auf Server Side Eclipse) BEA/Oracle, Adobe, JBoss prototypt OSGi Umstellung...

Das OSGi Framework: Überblick Kern der OSGi Service Platform Ermöglicht die Installation und Administration von Bundles und Services Verwaltet (Klassen )Abhängigkeiten zwischen Bundles Kann von außen administriert werden

Das OSGi Framework: Bundles Das Framework erlaubt die Definition von Modulen (genannt Bundles ), Sichtbarkeiten von Modul Bestandteilen (public API vs. private API) Abhängigkeiten zwischen Modulen, sowie Versionen von Modulen.

Das OSGi Framework: Lebenszyklus von Bundles Das OSGi Framework ist dynamisch: Bundles können dynamisch zur Laufzeit installiert, gestartet, gestoppt, deinstalliert und aktualisiert werden. Bei Start und Stopp können Bundles über den Bundle Activator Code ausführen.

Das OSGi Framework: Services Das OSGi Framework ist service orientiert: Services können zur Laufzeit über die Service Registry veröffentlichen und wieder entfernen Bundles können über die Service Registry Services finden und verwenden

Das OSGi Framework: Management Agents I Management Agents ermöglichen die Administration eines OSGi Frameworks. Breites Spektrum verfügbar: Kommandobasierte Konsole (Equinox Konsole) Grafisch interaktive Anwendungen (Knopflerfish Desktop, Prosyst mconsole) Web basierte Oberfläche (Knopflerfish Web Konsole) Nicht standardisiert, aber Zugriff auf das Framework über definierte Schnittstellen.

Das OSGi Framework: Management Agents II Eclipse Equinox Konsole Prosyst mconsole Knopferfish Desktop

Implementierungen der OSGi Service Platform Open Source Implementierungen: Eclipse Equinox (http://www.eclipse.org/equinox/) Apache Felix (http://felix.apache.org/) Knopflerfish (http://www.knopflerfish.org/) ProSyst mbedded Server Equinox Edition (http://www.prosyst.com/products/osgi_se_equi_ed.html) Kommerzielle Implementierungen: ProSyst (http://www.prosyst.com/) Knopflerfish Pro (http://www.gatespacetelematics.com/) (kein Anspruch auf Vollständigkeit)

Die OSGi Service Platform : Ein praktisches Beispiel Der OrderService ermöglicht die Order von Aktien für einen Kunden ist Remote über RMI verfügbar Der CustomerService liefert dem OrderService die passenden Kundendaten

Zwischenbilanz OSGi Service Platform ermöglicht Modularisierung von Anwendungen. Module können zur Laufzeit installiert, gestartet, gestoppt, deinstalliert werden. Aber: Abhängigkeit zu OSGi Framework Bibliotheken Services müssen programmtisch verwaltet werden Keine Unterstützung für Enterprise Technologien

Spring Dynamic Modules for OSGi Service Platforms Formerly known as Spring OSGi Ein neues Mitglied der Spring Familie http://www.springframework.org/osgi Keine eigene OSGi Implementierung, sondern eine Brücke zwischen Spring und OSGi Implementierung Erlaubt es, Spring Anwendungen mit OSGi zu implementieren Ist kompatibel zu Equinox, Felix und Knopflerfish

Die Ausgangsbasis Das Spring Framework Einfaches Programmiermodell (POJOs) Dependency Injection AOP Viele Technologie Vereinfachungen und Abstraktionen Inzwischen ein de facto Standard für JEE Systeme

Das Ziel Die Möglichkeiten von OSGi nutzen! Modularisierung inkl. Dependency Management Sichtbarkeits Definitionen Versions Management Dynamic Management Spring selbst steht in Form von Bundles zur Verfügung

Randbedingungen Komplexität Darf nicht erhöht werden, weiterhin POJO Programmiermodell OSGi Service Modell integrieren OSGi Services als Beans und umgekehrt Testing muss auch außerhalb eines OSGi Containers möglich sein Möglichst keine Abhängigkeiten zu OSGi APIs Alle Enterprise Features von Spring müssen weiterhin nutzbar sein

Das Spring OSGi Modell

Bundles und Spring Ein Application Context pro Bundle: Spring DM erzeugt und zerstört den Context automatisch, wenn das Bundle aktiviert bzw. deaktiviert wird Definition über XML Dateien unterhalb von META INF/spring

Beans als OSGi Services Spring Beans können als OSGi Services exportiert werden OSGi Service sind bundle übergreifend sichtbar <beans> <bean name="customerservice" class="com.wuetherich.osgi.customerservice.impl.customerserviceimpl"/> <osgi:service id="customerserviceosgi" ref="customerservice" interface="com.wuetherich.osgi.customerservice.customerservice"/> </beans>

OSGi Services als Beans Existierende OSGi Services können als Beans in den Spring Context integriert werden <beans> <osgi:reference id="customerserviceosgi" interface="com.wuetherich.osgi.customerservice.customerservice"/> <bean id="orderservice" class="com.wuetherich.osgi.orderservice.internal.orderserviceimpl"> <property name="customerservice"> <ref local="customerserviceosgi"/> </property> </bean> </beans>

Weitere Möglichkeiten Cardinality Beziehungen zwischen importierten OSGi Services und der repräsentierenden Bean (1..1, 0..1, 1..n, 0..n) Service Listener Information einer Bean über Service Änderungen <osgi:property placeholder> Liest Properties aus einer Properties Datei <osgi:bundle> Stellt ein Bundle Objekt als Bean bereit <osgi:virtual bundle> erlaubt die Installation eines JARs als Bundle "on the fly"

Spring DM in Action: Ein praktisches Beispiel

Resultat Keine OSGi API nötig (ganz im Spring Sinne) Bean Sichtbarkeiten zwischen Bundles können definiert werden nur was für andere Bundles sichtbar sein soll, wird als OSGi Service exportiert Dependency Injection über Bundle Grenzen hinweg

Spring DM Web Unterstützung Fokus in Spring DM 1.1 Derzeit Version 1.1.0.M1 verfügbar Integration von Spring DM mit der vorhandenen Spring Web Unterstützung Web Anwendungen in OSGi Generell unterschiedliche Deployment Szenarien möglich

OSGi basierte Web Anwendungen 1 Szenario 1: OSGi Framework innerhalb einer Web Anwendung OSGi Framework wird innerhalb einer Web Anwendung ausgeführt Anwendungs Bundles können über das OSGi Framework in der Web Anwendung installiert und gestartet werden

OSGi basierte Web Anwendungen 2 Szenario 2: Web Container eingebettet in OSGi Framework Web Container wird innerhalb des OSGi Frameworks als Bundle installiert und gestartet Anwendungs Bundles können Web Anwendungen programmatisch deployen

Web Unterstützung in Spring DM Web Anwendungen werden als Bundles in OSGi Framework installiert und gestartet ( bundle-fiziertes WAR) Spring DM Web Extender installiert die Web Anwendung im Web Container, wenn das WAR Bundle gestartet wird Native Unterstützung verschiedener Web Container Volle Unterstützung des OSGi Class Loadings

Web Anwendungen als Bundles Reguläre WAR Dateien Zusätzlich: Bundle Manifest Spring Anbindung über OsgiBundleXmlWebApplication- Context und ContextLoaderListener Spezifikation erfolgt in der Datei web.xml: <context-param> <param-name>contextclass</param-name> <param-value>org.springframework.osgi.web.context. support.osgibundlexmlwebapplicationcontext</param-value> </context-param> <listener> <listener-class> org.springframework.web.context.contextloaderlistener </listener-class> </listener>

Spring DM Web in Action: Ein praktisches Beispiel

Ausblick Weitere Informationen: http://www.springframework.org/osgi http://groups.google.com/group/spring osgi http://www.springframework.org/osgi/specification Spring OSGi Vortrag http://www.eclipsecon.org/2008/?page=sub/&id=495

Ausblick: Noch mehr Spring Auch für Clients kann Spring verwendet werden: Dependency Injection für Eclipse RCP Anwendungen Server Kommunikation mit Spring Weiter interessant: Dependency Injection für Extension Points (z.b. Views in Eclipse RCP über Spring erzeugen und mit Dependencies versorgen

Die OSGi Service Platform Eine Einführung mit Eclipse Equinox Detaillierte Einführung in OSGi Technologie April 2008, dpunkt.verlag ISBN 978-3-89864-457-0 Ab sofort erhältlich

Vielen Dank!!! für die Aufmerksamkeit! Fragen jederzeit gerne gerd@gerd wuetherich.de