44
Folie 1 Plug&Care Connector > Doreen Seider > 07.04.2011 Plug & Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme Doreen Seider Deutsches Zentrum für Luft- und Raumfahrt (DLR) BerlinExpertDays Berlin, 07.04.2011

Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

  • Upload
    yocaba

  • View
    1.958

  • Download
    2

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 1Plug&Care Connector > Doreen Seider > 07.04.2011

Plug & Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Doreen SeiderDeutsches Zentrum für Luft- und Raumfahrt (DLR)

BerlinExpertDaysBerlin, 07.04.2011

Page 2: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 2Plug&Care Connector > Doreen Seider > 07.04.2011

Roter Faden

Hintergrund: EU-Projekt „EmotionAAL“

Idee des Plug&Care Connectors

Realisierung mit OSGi

Best Practices, Probleme, Ausblick

Page 3: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 3Plug&Care Connector > Doreen Seider > 07.04.2011

Das DLRDeutsches Zentrum für Luft- und Raumfahrt

ForschungseinrichtungRaumfahrt-Agentur Projektträger

Page 4: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 4Plug&Care Connector > Doreen Seider > 07.04.2011

Hintergrund: EU-Projekt „EmotionAAL“

„Support of people with chronical diseases in rural regions“

Ambient Assistent Living (AAL)10 Projektpartner aus Deutschland, Österreich und FinnlandLaufzeit: Juli 2009 – Juli 2012DLR: Simulations- und Softwaretechnologie, Institut für Raumfahrtmedizin

Page 5: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 5Plug&Care Connector > Doreen Seider > 07.04.2011

Hintergrund: EU-Projekt „EmotionAAL“

Eines der Ziele: Flexibles Telemonitoring-Setup

Page 6: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 6Plug&Care Connector > Doreen Seider > 07.04.2011

Unflexible Telemonitoring-Setups

Page 7: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 7Plug&Care Connector > Doreen Seider > 07.04.2011

Unflexible Telemonitoring-Setups Connector-Technologien

Page 8: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 8Plug&Care Connector > Doreen Seider > 07.04.2011

Flexibles Telemonitoring-Setup

Page 9: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 9Plug&Care Connector > Doreen Seider > 07.04.2011

Flexibles Telemonitoring-Setup Connector-Technologie: Plug&Care Connector

Page 10: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 10Plug&Care Connector > Doreen Seider > 07.04.2011

Plug&Care Connector Anforderungen

1. Unterstützung beliebiger Messgeräte und Expertenzentren (auch im Nachhinein) ohne Plug&Care Connector anzupassen

2. Sowohl auf Smartphones (wie Android oder Windows Mobile) als auch auf Desktop-Betriebssystemen lauffähig

Page 11: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 11Plug&Care Connector > Doreen Seider > 07.04.2011

Plug&Care Connector Erfüllen der Anforderungen

1. Plugin-Konzept auf Basis vonModularität von OSGiDependency Injection durch OSGi Declarative Services

2. Plattformunabhängigkeit durch Realisierung als OSGi-ApplikationEquinox auf DesktopmBS Mobile auf Smartphone

Page 12: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 12Plug&Care Connector > Doreen Seider > 07.04.2011

Plug&Care Connector Architektur

Page 13: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 13Plug&Care Connector > Doreen Seider > 07.04.2011

OSGi-Stack: Equinox

Eclipse Software FoundationR4 Core und Service Compendium und optionale OSGi ServicesOSGi-Implementierung für Eclipse

Page 14: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 14Plug&Care Connector > Doreen Seider > 07.04.2011

OSGi-Stack: mBS Mobile

Firma ProSyst (http://prosyst.com)Android, Windows Mobile, Nokia S60Leicht unterschiedlicher Funktionsumfang pro PlattformAllen gleich: alle OSGi-Services und Framework-Features spezifiziert in JSR 232 und einige nicht spezifizierte OSGi-Services (HTTP mit JSP 2.0, User Admin, …)Übersicht der Stacks: http://dz.prosyst.com/mbsmobile/

Page 15: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 15Plug&Care Connector > Doreen Seider > 07.04.2011

OSGi-Stack: mBS Mobile OSGi Management

Page 16: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 16Plug&Care Connector > Doreen Seider > 07.04.2011

OSGi-Stack: mBS Mobile OSGi Applications

Page 17: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 17Plug&Care Connector > Doreen Seider > 07.04.2011

OSGi-Stack: mBS Mobile Web-Widgets

AllgemeinClientseitige ApplikationenEigenständig oder Web-Browser-basiertGUI in HTMLGUI- und Geschäftslogik in JavaScript

Konzept in mBS MobileGUI für OSGi-ApplikationenWeb-Browser-basiertGUI in HTMLGUI-Logik in JavaScriptGeschäftslogik in Java (OSGi-Services)

Page 18: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 18Plug&Care Connector > Doreen Seider > 07.04.2011

OSGi-Stack: mBS Mobile Web-Widgets

Bereitstellen von OSGi-ServicesAngelehnt an Distributed-OSGi-KonzeptDeklarieren von OSGi-Services als „exported“

JavaScript-Bibliothek RSR (mBS Mobile)Finden und Binden von exportierten OSGi-ServicesVerwenden der OSGi-Services als JavaScript-Objekte

Page 19: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 19Plug&Care Connector > Doreen Seider > 07.04.2011

Exkurs: Declarative Services (DS)

Beschreiben der Service-Abhängigkeiten zwischen BundlesHandling der Abhängigkeiten durch DS RuntimeVorteile

Geringere Komplexität (Dynamik)Geringere Start-up-Zeiten

Page 20: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 20Plug&Care Connector > Doreen Seider > 07.04.2011

Exkurs: Declarative Services (DS)

Quelle: Heiko Seeberger

Page 21: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 21Plug&Care Connector > Doreen Seider > 07.04.2011

Exkurs: Declarative Services (DS)

Quelle: Heiko Seeberger

Page 22: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 22Plug&Care Connector > Doreen Seider > 07.04.2011

Exkurs: Declarative Services (DS)

DS Component Description (minimal)

<component name=„Spitzen Tool"><implementation class=„de.dlr.tool.internal.SpitzenImpl"/>

</component>

Beispiele zusätzlicher Eigenschaften:<service>

<provide interface="de.dlr.tool.Spitzen"/></service>

<property name=„de.dlr.tool.unit">meter</property>

Page 23: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 23Plug&Care Connector > Doreen Seider > 07.04.2011

OSGi-Stack: mBS Mobile Web-Widgets

Deklarieren von OSGi-Services als „exported“DS Component Description (vom Widget-Service):

<component name=„Widget Service><implementation class="de.pncc.application.internal.WidgetServiceImpl"/><service>

<provide interface="de.pncc.application.InternalWidgetService"/></service><property name="org.osgi.remote.publish">true</property>

</component>

Page 24: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 24Plug&Care Connector > Doreen Seider > 07.04.2011

OSGi-Stack: mBS Mobile Web-Widgets

Verwenden der OSGi-Services als JavaScript-ObjekteJavaScript-Code in einem Widget:

var widgetService = RSR.bind(„de.pncc.application.WidgetService“);

if (widgetService.isLoggedIn()) {// do something

}

Page 25: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 25Plug&Care Connector > Doreen Seider > 07.04.2011

OSGi-Stack: mBS Mobile SDK

Page 26: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 26Plug&Care Connector > Doreen Seider > 07.04.2011

Architektur Plug&Care Connector Treiber- und Transmitter-Plugins

AnforderungenAutarkes DeploymentDriver/Transmitter als OSGi ServicesMehrere Instanzen auf Grund verschiedener KonfigurationenOSGi so transparent wie möglich

KonzepteOSGi Declarative Services (DS)DS Component Factory

Page 27: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 27Plug&Care Connector > Doreen Seider > 07.04.2011

Architektur Plug&Care Connector Plugin-Konzept am Beispiel von Treiber-Plugins

Jeder Treiber als DS Component Factory deklariertDS Component Description (von Driver B):

<component name=„Driver B“ factory="de.pncc.driver"><implementation class="de.pncc.plugins.drivers.DriverB"/><service>

<provide interface="de.pncc.drivers.Driver"/></service>

</component>

Page 28: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 28Plug&Care Connector > Doreen Seider > 07.04.2011

Architektur Plug&Care Connector Plugin-Konzept am Beispiel von Treiber-Plugins

Verwalten von installierten Treibern: Driver RegistryDS ComponentInjezieren von Component Factorys vom Typ: „de.pncc.driver“

<component name=„Driver Registry„<reference

name="de.pncc.driver„interface="org.osgi.service.component.ComponentFactory„bind="addDriver„unbind="removeDriver„target="(component.factory=de.pncc.driver)"/>

</component>

Page 29: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 29Plug&Care Connector > Doreen Seider > 07.04.2011

Architektur Plug&Care Connector Plugin-Konzept am Beispiel von Treiber-Plugins

OSGi-Mechanismen bei Installation (Deployment)

Page 30: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 30Plug&Care Connector > Doreen Seider > 07.04.2011

Architektur Plug&Care Connector Plugin-Konzept am Beispiel von Treiber-Plugins

OSGi-Mechanismen bei Deinstallation

Page 31: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 31Plug&Care Connector > Doreen Seider > 07.04.2011

Architektur Plug&Care Connector Datenhandling

AnforderungenSpeichern von MessungenSpeichern von konfigurierten Treibern und Transmittern

KonzepteNeoDatis ODB

Von ProSyst als angepasstes OSGi-Bundle bereitgestelltGNU Lesser General Public License (LGPL)

Alle Messtypen als Object im Plug&Care Connector gehandeltKonkrete Typen nur in Treiber- und Transmitter-PluginsSatz an Standardtypen bereitgestellt (Kompatibilität)

Page 32: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 32Plug&Care Connector > Doreen Seider > 07.04.2011

Architektur Plug&Care Connector Abstraktionen am Beispiel von Console

Schichtenarchitektur beteiligter Bundles

Page 33: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 33Plug&Care Connector > Doreen Seider > 07.04.2011

Architektur Plug&Care Connector Abstraktionen am Beispiel von Bluetooth

Schichtenarchitektur beteiligter Bundles

Page 34: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 34Plug&Care Connector > Doreen Seider > 07.04.2011

Architektur Plug&Care Connector Abstraktionen am Beispiel von Bluetooth

DS Component Description von dal.bluetooth.jsr82

<component name=„de.pncc.dal.bluetooth.JSR82“><implementation class="de.pncc.dal.bluetooth.jsr82.internal.JSR82BluetoothCommunicator"/><service>

<provide interface="de.pncc.dal.Communicator"/></service>

</component>

Page 35: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 35Plug&Care Connector > Doreen Seider > 07.04.2011

Architektur Plug&Care Connector Abstraktionen am Beispiel von Bluetooth und Console

Deployment

Page 36: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 36Plug&Care Connector > Doreen Seider > 07.04.2011

Architektur Plug&Care Connector Third-Party-Libraries

Plattform-unabhängigMitgeliefert in BundleEventuell Probleme beim Classloading bei Android

Plattform-abhängigAls eigenständige Bundles bereitgestelltExportieren der gleichen PackagesDeployen jeweils eines Bundles pro Plattform

Page 37: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 37Plug&Care Connector > Doreen Seider > 07.04.2011

Plug & Care Connector Screenshots: Settings Widget

Page 38: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 38Plug&Care Connector > Doreen Seider > 07.04.2011

Plug & Care Connector Screenshots: Chart Widget

Page 39: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 39Plug&Care Connector > Doreen Seider > 07.04.2011

Plug & Care Connector Screenshots: RCP GUI

Page 40: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 40Plug&Care Connector > Doreen Seider > 07.04.2011

Best-Practices

OSGi-Konzepte „ausleben“ModularitätLose Kopplung

BeispieleFunktionalität von Bundles als OSGi-Services bereitgestelltIndividuelles Bundle-Setup beim DeployenDS Component Model für Transparenz da Drittentwickler vorhandenThird-Party-Libraries als OSGi-Bundles zwecks individuellem Setups

Page 41: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 41Plug&Care Connector > Doreen Seider > 07.04.2011

Probleme

Platformunabhängigkeit„Classloader-Hölle“ (Write once, run anywhere.) Testen!Performanz von Widgets Native GUIsAbhängig von Weiterentwicklung der OSGi-Stacks (z.B. momentan keine Unterstützung für Windows Phone 7)

Page 42: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 42Plug&Care Connector > Doreen Seider > 07.04.2011

Ausblick Architektur

Page 43: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 43Plug&Care Connector > Doreen Seider > 07.04.2011

Ausblick Anwendungsgebiete

Sportmedizinischer SektorÜberwachung von Puls, etc.Kein zusätzliches Gerät zur Aufzeichnung durch (steigende) Verbreitung des Smartphones

Experiment aus der RaumfahrtNeutralisieren von HarnÜberwachung des ExperimentsDurchführung des Experiments nach Model SETI@Home

Page 44: Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme

Folie 44Plug&Care Connector > Doreen Seider > 07.04.2011

Kontakt

Doreen SeiderAbteilung Verteilte Systeme undKomponentensoftware (SC-VK)DLR Simulations- und SoftwaretechnikKöln-Porz / Braunschweig / BerlinE-Mail: [email protected]/sc/abteilung/verteiltesysteme