SlideShare uma empresa Scribd logo
1 de 44
Baixar para ler offline
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

                                                                                         Folie 1
                                                  Plug&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




                                                                                Folie 2
                                         Plug&Care Connector > Doreen Seider > 07.04.2011
Das DLR
Deutsches Zentrum für Luft- und Raumfahrt




   Forschungseinrichtung
   Raumfahrt-Agentur
   Projektträger




                                                                                   Folie 3
                                            Plug&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 Finnland
  Laufzeit: Juli 2009 – Juli 2012
  DLR: Simulations- und Softwaretechnologie, Institut für
  Raumfahrtmedizin




                                                                                                 Folie 4
                                                          Plug&Care Connector > Doreen Seider > 07.04.2011
Hintergrund: EU-Projekt „EmotionAAL“


  Eines der Ziele: Flexibles Telemonitoring-Setup




                                                                                           Folie 5
                                                    Plug&Care Connector > Doreen Seider > 07.04.2011
Unflexible Telemonitoring-Setups




                                                                          Folie 6
                                   Plug&Care Connector > Doreen Seider > 07.04.2011
Unflexible Telemonitoring-Setups
Connector-Technologien




                                                                          Folie 7
                                   Plug&Care Connector > Doreen Seider > 07.04.2011
Flexibles Telemonitoring-Setup




                                                                        Folie 8
                                 Plug&Care Connector > Doreen Seider > 07.04.2011
Flexibles Telemonitoring-Setup
Connector-Technologie: Plug&Care Connector




                                                                                    Folie 9
                                             Plug&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




                                                                                               Folie 10
                                                         Plug&Care Connector > Doreen Seider > 07.04.2011
Plug&Care Connector
Erfüllen der Anforderungen

1.   Plugin-Konzept auf Basis von
          Modularität von OSGi
          Dependency Injection durch OSGi Declarative Services


2.   Plattformunabhängigkeit durch Realisierung als OSGi-Applikation
           Equinox auf Desktop
           mBS Mobile auf Smartphone




                                                                                                Folie 11
                                                          Plug&Care Connector > Doreen Seider > 07.04.2011
Plug&Care Connector
Architektur




                                                            Folie 12
                      Plug&Care Connector > Doreen Seider > 07.04.2011
OSGi-Stack: Equinox


  Eclipse Software Foundation
  R4 Core und Service Compendium und optionale OSGi Services
  OSGi-Implementierung für Eclipse




                                                                                         Folie 13
                                                   Plug&Care Connector > Doreen Seider > 07.04.2011
OSGi-Stack: mBS Mobile


  Firma ProSyst (http://prosyst.com)
  Android, Windows Mobile, Nokia S60
  Leicht unterschiedlicher Funktionsumfang pro Plattform
  Allen 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/




                                                                                                 Folie 14
                                                           Plug&Care Connector > Doreen Seider > 07.04.2011
OSGi-Stack: mBS Mobile
OSGi Management




                                                               Folie 15
                         Plug&Care Connector > Doreen Seider > 07.04.2011
OSGi-Stack: mBS Mobile
OSGi Applications




                                                               Folie 16
                         Plug&Care Connector > Doreen Seider > 07.04.2011
OSGi-Stack: mBS Mobile
Web-Widgets

  Allgemein
       Clientseitige Applikationen
       Eigenständig oder Web-Browser-basiert
       GUI in HTML
       GUI- und Geschäftslogik in JavaScript


  Konzept in mBS Mobile
      GUI für OSGi-Applikationen
      Web-Browser-basiert
      GUI in HTML
      GUI-Logik in JavaScript
      Geschäftslogik in Java (OSGi-Services)

                                                                                     Folie 17
                                               Plug&Care Connector > Doreen Seider > 07.04.2011
OSGi-Stack: mBS Mobile
Web-Widgets

  Bereitstellen von OSGi-Services
        Angelehnt an Distributed-OSGi-Konzept
        Deklarieren von OSGi-Services als „exported“


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




                                                                                             Folie 18
                                                       Plug&Care Connector > Doreen Seider > 07.04.2011
Exkurs: Declarative Services (DS)


  Beschreiben der Service-Abhängigkeiten zwischen Bundles
  Handling der Abhängigkeiten durch DS Runtime
  Vorteile
       Geringere Komplexität (Dynamik)
       Geringere Start-up-Zeiten




                                                                                           Folie 19
                                                     Plug&Care Connector > Doreen Seider > 07.04.2011
Exkurs: Declarative Services (DS)




    Quelle: Heiko Seeberger

                                                                          Folie 20
                                    Plug&Care Connector > Doreen Seider > 07.04.2011
Exkurs: Declarative Services (DS)




    Quelle: Heiko Seeberger

                                                                          Folie 21
                                    Plug&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>

                                                                                                 Folie 22
                                                           Plug&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>




                                                                                               Folie 23
                                                         Plug&Care Connector > Doreen Seider > 07.04.2011
OSGi-Stack: mBS Mobile
Web-Widgets

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



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


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




                                                                                               Folie 24
                                                         Plug&Care Connector > Doreen Seider > 07.04.2011
OSGi-Stack: mBS Mobile
SDK




                                                               Folie 25
                         Plug&Care Connector > Doreen Seider > 07.04.2011
Architektur Plug&Care Connector
Treiber- und Transmitter-Plugins

   Anforderungen
        Autarkes Deployment
        Driver/Transmitter als OSGi Services
        Mehrere Instanzen auf Grund verschiedener Konfigurationen
        OSGi so transparent wie möglich


   Konzepte
       OSGi Declarative Services (DS)
       DS Component Factory




                                                                                            Folie 26
                                                      Plug&Care Connector > Doreen Seider > 07.04.2011
Architektur Plug&Care Connector
Plugin-Konzept am Beispiel von Treiber-Plugins

   Jeder Treiber als DS Component Factory deklariert
   DS 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>




                                                                                               Folie 27
                                                         Plug&Care Connector > Doreen Seider > 07.04.2011
Architektur Plug&Care Connector
Plugin-Konzept am Beispiel von Treiber-Plugins

   Verwalten von installierten Treibern: Driver Registry
   DS Component
   Injezieren 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>


                                                                                             Folie 28
                                                       Plug&Care Connector > Doreen Seider > 07.04.2011
Architektur Plug&Care Connector
Plugin-Konzept am Beispiel von Treiber-Plugins

   OSGi-Mechanismen bei Installation (Deployment)




                                                                                          Folie 29
                                                    Plug&Care Connector > Doreen Seider > 07.04.2011
Architektur Plug&Care Connector
Plugin-Konzept am Beispiel von Treiber-Plugins

   OSGi-Mechanismen bei Deinstallation




                                                                                       Folie 30
                                                 Plug&Care Connector > Doreen Seider > 07.04.2011
Architektur Plug&Care Connector
Datenhandling

   Anforderungen
        Speichern von Messungen
        Speichern von konfigurierten Treibern und Transmittern


   Konzepte
       NeoDatis ODB
             Von ProSyst als angepasstes OSGi-Bundle bereitgestellt
             GNU Lesser General Public License (LGPL)
       Alle Messtypen als Object im Plug&Care Connector gehandelt
       Konkrete Typen nur in Treiber- und Transmitter-Plugins
       Satz an Standardtypen bereitgestellt (Kompatibilität)



                                                                                              Folie 31
                                                        Plug&Care Connector > Doreen Seider > 07.04.2011
Architektur Plug&Care Connector
Abstraktionen am Beispiel von Console

   Schichtenarchitektur beteiligter Bundles




                                                                                    Folie 32
                                              Plug&Care Connector > Doreen Seider > 07.04.2011
Architektur Plug&Care Connector
Abstraktionen am Beispiel von Bluetooth

   Schichtenarchitektur beteiligter Bundles




                                                                                    Folie 33
                                              Plug&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>




                                                                                              Folie 34
                                                        Plug&Care Connector > Doreen Seider > 07.04.2011
Architektur Plug&Care Connector
Abstraktionen am Beispiel von Bluetooth und Console

   Deployment




                                                                                        Folie 35
                                                  Plug&Care Connector > Doreen Seider > 07.04.2011
Architektur Plug&Care Connector
Third-Party-Libraries

   Plattform-unabhängig
         Mitgeliefert in Bundle
         Eventuell Probleme beim Classloading bei Android


   Plattform-abhängig
         Als eigenständige Bundles bereitgestellt
         Exportieren der gleichen Packages
         Deployen jeweils eines Bundles pro Plattform




                                                                                              Folie 36
                                                        Plug&Care Connector > Doreen Seider > 07.04.2011
Plug & Care Connector
Screenshots: Settings Widget




                                                                     Folie 37
                               Plug&Care Connector > Doreen Seider > 07.04.2011
Plug & Care Connector
Screenshots: Chart Widget




                                                                  Folie 38
                            Plug&Care Connector > Doreen Seider > 07.04.2011
Plug & Care Connector
Screenshots: RCP GUI




                                                              Folie 39
                        Plug&Care Connector > Doreen Seider > 07.04.2011
Best-Practices


  OSGi-Konzepte „ausleben“
      Modularität
      Lose Kopplung


  Beispiele
       Funktionalität von Bundles als OSGi-Services bereitgestellt
       Individuelles Bundle-Setup beim Deployen
       DS Component Model für Transparenz da Drittentwickler
       vorhanden
       Third-Party-Libraries als OSGi-Bundles zwecks individuellem
       Setups




                                                                                              Folie 40
                                                        Plug&Care Connector > Doreen Seider > 07.04.2011
Probleme


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




                                                                                           Folie 41
                                                     Plug&Care Connector > Doreen Seider > 07.04.2011
Ausblick
Architektur




                                                    Folie 42
              Plug&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 Raumfahrt
       Neutralisieren von Harn
       Überwachung des Experiments
       Durchführung des Experiments nach Model SETI@Home




                                                                                             Folie 43
                                                       Plug&Care Connector > Doreen Seider > 07.04.2011
Kontakt

          Doreen Seider
          Abteilung Verteilte Systeme und
          Komponentensoftware (SC-VK)
          DLR Simulations- und Softwaretechnik
          Köln-Porz / Braunschweig / Berlin
          E-Mail: Doreen.Seider@dlr.de
          www.dlr.de/sc/abteilung/verteiltesysteme




                                                                       Folie 44
                                 Plug&Care Connector > Doreen Seider > 07.04.2011

Mais conteúdo relacionado

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

Mobile Device Management mit Windows Intune und SCMM, Part 2
Mobile Device Management mit Windows Intune und SCMM, Part 2Mobile Device Management mit Windows Intune und SCMM, Part 2
Mobile Device Management mit Windows Intune und SCMM, Part 2Digicomp Academy AG
 
Mehrwert aus CAD Daten und wo diese noch überall verwendet werden können
Mehrwert aus CAD Daten und wo diese noch überall verwendet werden könnenMehrwert aus CAD Daten und wo diese noch überall verwendet werden können
Mehrwert aus CAD Daten und wo diese noch überall verwendet werden könnenIntelliact AG
 
Linked Open Data Pilot Österreich - Beta Launch
Linked Open Data Pilot Österreich - Beta LaunchLinked Open Data Pilot Österreich - Beta Launch
Linked Open Data Pilot Österreich - Beta LaunchMartin Kaltenböck
 
Jakarta EE 10: Was gibt es Neues?
Jakarta EE 10: Was gibt es Neues?Jakarta EE 10: Was gibt es Neues?
Jakarta EE 10: Was gibt es Neues?gedoplan
 
Marktübersicht ERP Systeme
Marktübersicht ERP SystemeMarktübersicht ERP Systeme
Marktübersicht ERP SystemeChrRoe
 
SaaS-EcoSystem: Cloud Integration
SaaS-EcoSystem: Cloud IntegrationSaaS-EcoSystem: Cloud Integration
SaaS-EcoSystem: Cloud IntegrationWolfgang Schmidt
 
Weptun Unternehmenspräsentation
Weptun UnternehmenspräsentationWeptun Unternehmenspräsentation
Weptun UnternehmenspräsentationDominik Ueblacker
 
Unterstützung und Abbildung mobiler Prozesse in anspruchsvollen Anwendungsumg...
Unterstützung und Abbildung mobiler Prozesse in anspruchsvollen Anwendungsumg...Unterstützung und Abbildung mobiler Prozesse in anspruchsvollen Anwendungsumg...
Unterstützung und Abbildung mobiler Prozesse in anspruchsvollen Anwendungsumg...MFG Innovationsagentur
 
Keynote Mittheisz, CIO Stadt Wien; "Wien-Win-Win"
Keynote Mittheisz, CIO Stadt Wien; "Wien-Win-Win"Keynote Mittheisz, CIO Stadt Wien; "Wien-Win-Win"
Keynote Mittheisz, CIO Stadt Wien; "Wien-Win-Win"Brigitte Lutz
 
Meister Training Professionelle Entwicklung: Alles rund um (mobile) App Entwi...
Meister Training Professionelle Entwicklung: Alles rund um (mobile) App Entwi...Meister Training Professionelle Entwicklung: Alles rund um (mobile) App Entwi...
Meister Training Professionelle Entwicklung: Alles rund um (mobile) App Entwi...Romano Roth
 
DOAG SIG Security 2014 in Hamburg: Enterprise User Security for DBAs #eus4dbas
DOAG SIG Security 2014 in Hamburg: Enterprise User Security for DBAs #eus4dbasDOAG SIG Security 2014 in Hamburg: Enterprise User Security for DBAs #eus4dbas
DOAG SIG Security 2014 in Hamburg: Enterprise User Security for DBAs #eus4dbasCarsten Muetzlitz
 

Semelhante a Plug&Care Connector: OSGi-basierte Applikation für Smartphones und Desktop-Systeme (20)

Windows 8 im Unternehmen
Windows 8 im UnternehmenWindows 8 im Unternehmen
Windows 8 im Unternehmen
 
Mobile Device Management mit Windows Intune und SCMM, Part 2
Mobile Device Management mit Windows Intune und SCMM, Part 2Mobile Device Management mit Windows Intune und SCMM, Part 2
Mobile Device Management mit Windows Intune und SCMM, Part 2
 
Governance
GovernanceGovernance
Governance
 
Mehrwert aus CAD Daten und wo diese noch überall verwendet werden können
Mehrwert aus CAD Daten und wo diese noch überall verwendet werden könnenMehrwert aus CAD Daten und wo diese noch überall verwendet werden können
Mehrwert aus CAD Daten und wo diese noch überall verwendet werden können
 
Linked Open Data Pilot Österreich - Beta Launch
Linked Open Data Pilot Österreich - Beta LaunchLinked Open Data Pilot Österreich - Beta Launch
Linked Open Data Pilot Österreich - Beta Launch
 
OSGi
OSGiOSGi
OSGi
 
Jakarta EE 10: Was gibt es Neues?
Jakarta EE 10: Was gibt es Neues?Jakarta EE 10: Was gibt es Neues?
Jakarta EE 10: Was gibt es Neues?
 
Marktübersicht ERP Systeme
Marktübersicht ERP SystemeMarktübersicht ERP Systeme
Marktübersicht ERP Systeme
 
SaaS-EcoSystem: Cloud Integration
SaaS-EcoSystem: Cloud IntegrationSaaS-EcoSystem: Cloud Integration
SaaS-EcoSystem: Cloud Integration
 
SQLTXPLAIN - Oder: Warum performt mein SQL nicht?
SQLTXPLAIN - Oder: Warum performt mein SQL nicht?SQLTXPLAIN - Oder: Warum performt mein SQL nicht?
SQLTXPLAIN - Oder: Warum performt mein SQL nicht?
 
Weptun Unternehmenspräsentation
Weptun UnternehmenspräsentationWeptun Unternehmenspräsentation
Weptun Unternehmenspräsentation
 
Unterstützung und Abbildung mobiler Prozesse in anspruchsvollen Anwendungsumg...
Unterstützung und Abbildung mobiler Prozesse in anspruchsvollen Anwendungsumg...Unterstützung und Abbildung mobiler Prozesse in anspruchsvollen Anwendungsumg...
Unterstützung und Abbildung mobiler Prozesse in anspruchsvollen Anwendungsumg...
 
Android in 2012
Android in 2012Android in 2012
Android in 2012
 
Android in 2012
Android in 2012Android in 2012
Android in 2012
 
DOAG 2010: ADF Faces RC Best Practice
DOAG 2010: ADF Faces RC Best PracticeDOAG 2010: ADF Faces RC Best Practice
DOAG 2010: ADF Faces RC Best Practice
 
Mittheisz, CIO Stadt Wien, "Wien-Win-Win"
Mittheisz, CIO Stadt Wien, "Wien-Win-Win"Mittheisz, CIO Stadt Wien, "Wien-Win-Win"
Mittheisz, CIO Stadt Wien, "Wien-Win-Win"
 
Keynote Mittheisz, CIO Stadt Wien; "Wien-Win-Win"
Keynote Mittheisz, CIO Stadt Wien; "Wien-Win-Win"Keynote Mittheisz, CIO Stadt Wien; "Wien-Win-Win"
Keynote Mittheisz, CIO Stadt Wien; "Wien-Win-Win"
 
Meister Training Professionelle Entwicklung: Alles rund um (mobile) App Entwi...
Meister Training Professionelle Entwicklung: Alles rund um (mobile) App Entwi...Meister Training Professionelle Entwicklung: Alles rund um (mobile) App Entwi...
Meister Training Professionelle Entwicklung: Alles rund um (mobile) App Entwi...
 
DOAG SIG Security 2014 in Hamburg: Enterprise User Security for DBAs #eus4dbas
DOAG SIG Security 2014 in Hamburg: Enterprise User Security for DBAs #eus4dbasDOAG SIG Security 2014 in Hamburg: Enterprise User Security for DBAs #eus4dbas
DOAG SIG Security 2014 in Hamburg: Enterprise User Security for DBAs #eus4dbas
 
2020 oracle lizenznews
2020 oracle lizenznews2020 oracle lizenznews
2020 oracle lizenznews
 

Mais de yocaba

Designing Future Aircraft with Eclipse RCP
Designing Future Aircraft with Eclipse RCPDesigning Future Aircraft with Eclipse RCP
Designing Future Aircraft with Eclipse RCPyocaba
 
Ad hoc Collaborative Design with Focus on Iterative Multidisciplinary Process...
Ad hoc Collaborative Design with Focus on Iterative Multidisciplinary Process...Ad hoc Collaborative Design with Focus on Iterative Multidisciplinary Process...
Ad hoc Collaborative Design with Focus on Iterative Multidisciplinary Process...yocaba
 
Using OSGi to Build Better Software
Using OSGi to Build Better SoftwareUsing OSGi to Build Better Software
Using OSGi to Build Better Softwareyocaba
 
Scientific Data and Knowledge Management in Aerospace Engineering
Scientific Data and Knowledge Management in Aerospace EngineeringScientific Data and Knowledge Management in Aerospace Engineering
Scientific Data and Knowledge Management in Aerospace Engineeringyocaba
 
Embedding Existing Heterogeneous Monitoring Techniques into a Lightweight, Di...
Embedding Existing Heterogeneous Monitoring Techniques into a Lightweight, Di...Embedding Existing Heterogeneous Monitoring Techniques into a Lightweight, Di...
Embedding Existing Heterogeneous Monitoring Techniques into a Lightweight, Di...yocaba
 
Tool support for semi-automatic modularization of existing code bases
Tool support for semi-automatic modularization of existing code basesTool support for semi-automatic modularization of existing code bases
Tool support for semi-automatic modularization of existing code basesyocaba
 
OSGi-based Workflow Engine
OSGi-based Workflow EngineOSGi-based Workflow Engine
OSGi-based Workflow Engineyocaba
 

Mais de yocaba (7)

Designing Future Aircraft with Eclipse RCP
Designing Future Aircraft with Eclipse RCPDesigning Future Aircraft with Eclipse RCP
Designing Future Aircraft with Eclipse RCP
 
Ad hoc Collaborative Design with Focus on Iterative Multidisciplinary Process...
Ad hoc Collaborative Design with Focus on Iterative Multidisciplinary Process...Ad hoc Collaborative Design with Focus on Iterative Multidisciplinary Process...
Ad hoc Collaborative Design with Focus on Iterative Multidisciplinary Process...
 
Using OSGi to Build Better Software
Using OSGi to Build Better SoftwareUsing OSGi to Build Better Software
Using OSGi to Build Better Software
 
Scientific Data and Knowledge Management in Aerospace Engineering
Scientific Data and Knowledge Management in Aerospace EngineeringScientific Data and Knowledge Management in Aerospace Engineering
Scientific Data and Knowledge Management in Aerospace Engineering
 
Embedding Existing Heterogeneous Monitoring Techniques into a Lightweight, Di...
Embedding Existing Heterogeneous Monitoring Techniques into a Lightweight, Di...Embedding Existing Heterogeneous Monitoring Techniques into a Lightweight, Di...
Embedding Existing Heterogeneous Monitoring Techniques into a Lightweight, Di...
 
Tool support for semi-automatic modularization of existing code bases
Tool support for semi-automatic modularization of existing code basesTool support for semi-automatic modularization of existing code bases
Tool support for semi-automatic modularization of existing code bases
 
OSGi-based Workflow Engine
OSGi-based Workflow EngineOSGi-based Workflow Engine
OSGi-based Workflow Engine
 

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

  • 1. 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 Folie 1 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 2. Roter Faden Hintergrund: EU-Projekt „EmotionAAL“ Idee des Plug&Care Connectors Realisierung mit OSGi Best Practices, Probleme, Ausblick Folie 2 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 3. Das DLR Deutsches Zentrum für Luft- und Raumfahrt Forschungseinrichtung Raumfahrt-Agentur Projektträger Folie 3 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 4. Hintergrund: EU-Projekt „EmotionAAL“ „Support of people with chronical diseases in rural regions“ Ambient Assistent Living (AAL) 10 Projektpartner aus Deutschland, Österreich und Finnland Laufzeit: Juli 2009 – Juli 2012 DLR: Simulations- und Softwaretechnologie, Institut für Raumfahrtmedizin Folie 4 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 5. Hintergrund: EU-Projekt „EmotionAAL“ Eines der Ziele: Flexibles Telemonitoring-Setup Folie 5 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 6. Unflexible Telemonitoring-Setups Folie 6 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 7. Unflexible Telemonitoring-Setups Connector-Technologien Folie 7 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 8. Flexibles Telemonitoring-Setup Folie 8 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 9. Flexibles Telemonitoring-Setup Connector-Technologie: Plug&Care Connector Folie 9 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 10. 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 Folie 10 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 11. Plug&Care Connector Erfüllen der Anforderungen 1. Plugin-Konzept auf Basis von Modularität von OSGi Dependency Injection durch OSGi Declarative Services 2. Plattformunabhängigkeit durch Realisierung als OSGi-Applikation Equinox auf Desktop mBS Mobile auf Smartphone Folie 11 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 12. Plug&Care Connector Architektur Folie 12 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 13. OSGi-Stack: Equinox Eclipse Software Foundation R4 Core und Service Compendium und optionale OSGi Services OSGi-Implementierung für Eclipse Folie 13 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 14. OSGi-Stack: mBS Mobile Firma ProSyst (http://prosyst.com) Android, Windows Mobile, Nokia S60 Leicht unterschiedlicher Funktionsumfang pro Plattform Allen 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/ Folie 14 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 15. OSGi-Stack: mBS Mobile OSGi Management Folie 15 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 16. OSGi-Stack: mBS Mobile OSGi Applications Folie 16 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 17. OSGi-Stack: mBS Mobile Web-Widgets Allgemein Clientseitige Applikationen Eigenständig oder Web-Browser-basiert GUI in HTML GUI- und Geschäftslogik in JavaScript Konzept in mBS Mobile GUI für OSGi-Applikationen Web-Browser-basiert GUI in HTML GUI-Logik in JavaScript Geschäftslogik in Java (OSGi-Services) Folie 17 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 18. OSGi-Stack: mBS Mobile Web-Widgets Bereitstellen von OSGi-Services Angelehnt an Distributed-OSGi-Konzept Deklarieren von OSGi-Services als „exported“ JavaScript-Bibliothek RSR (mBS Mobile) Finden und Binden von exportierten OSGi-Services Verwenden der OSGi-Services als JavaScript-Objekte Folie 18 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 19. Exkurs: Declarative Services (DS) Beschreiben der Service-Abhängigkeiten zwischen Bundles Handling der Abhängigkeiten durch DS Runtime Vorteile Geringere Komplexität (Dynamik) Geringere Start-up-Zeiten Folie 19 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 20. Exkurs: Declarative Services (DS) Quelle: Heiko Seeberger Folie 20 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 21. Exkurs: Declarative Services (DS) Quelle: Heiko Seeberger Folie 21 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 22. 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> Folie 22 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 23. 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> Folie 23 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 24. OSGi-Stack: mBS Mobile Web-Widgets Verwenden der OSGi-Services als JavaScript-Objekte JavaScript-Code in einem Widget: var widgetService = RSR.bind(„de.pncc.application.WidgetService“); if (widgetService.isLoggedIn()) { // do something } Folie 24 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 25. OSGi-Stack: mBS Mobile SDK Folie 25 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 26. Architektur Plug&Care Connector Treiber- und Transmitter-Plugins Anforderungen Autarkes Deployment Driver/Transmitter als OSGi Services Mehrere Instanzen auf Grund verschiedener Konfigurationen OSGi so transparent wie möglich Konzepte OSGi Declarative Services (DS) DS Component Factory Folie 26 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 27. Architektur Plug&Care Connector Plugin-Konzept am Beispiel von Treiber-Plugins Jeder Treiber als DS Component Factory deklariert DS 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> Folie 27 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 28. Architektur Plug&Care Connector Plugin-Konzept am Beispiel von Treiber-Plugins Verwalten von installierten Treibern: Driver Registry DS Component Injezieren 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> Folie 28 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 29. Architektur Plug&Care Connector Plugin-Konzept am Beispiel von Treiber-Plugins OSGi-Mechanismen bei Installation (Deployment) Folie 29 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 30. Architektur Plug&Care Connector Plugin-Konzept am Beispiel von Treiber-Plugins OSGi-Mechanismen bei Deinstallation Folie 30 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 31. Architektur Plug&Care Connector Datenhandling Anforderungen Speichern von Messungen Speichern von konfigurierten Treibern und Transmittern Konzepte NeoDatis ODB Von ProSyst als angepasstes OSGi-Bundle bereitgestellt GNU Lesser General Public License (LGPL) Alle Messtypen als Object im Plug&Care Connector gehandelt Konkrete Typen nur in Treiber- und Transmitter-Plugins Satz an Standardtypen bereitgestellt (Kompatibilität) Folie 31 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 32. Architektur Plug&Care Connector Abstraktionen am Beispiel von Console Schichtenarchitektur beteiligter Bundles Folie 32 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 33. Architektur Plug&Care Connector Abstraktionen am Beispiel von Bluetooth Schichtenarchitektur beteiligter Bundles Folie 33 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 34. 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> Folie 34 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 35. Architektur Plug&Care Connector Abstraktionen am Beispiel von Bluetooth und Console Deployment Folie 35 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 36. Architektur Plug&Care Connector Third-Party-Libraries Plattform-unabhängig Mitgeliefert in Bundle Eventuell Probleme beim Classloading bei Android Plattform-abhängig Als eigenständige Bundles bereitgestellt Exportieren der gleichen Packages Deployen jeweils eines Bundles pro Plattform Folie 36 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 37. Plug & Care Connector Screenshots: Settings Widget Folie 37 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 38. Plug & Care Connector Screenshots: Chart Widget Folie 38 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 39. Plug & Care Connector Screenshots: RCP GUI Folie 39 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 40. Best-Practices OSGi-Konzepte „ausleben“ Modularität Lose Kopplung Beispiele Funktionalität von Bundles als OSGi-Services bereitgestellt Individuelles Bundle-Setup beim Deployen DS Component Model für Transparenz da Drittentwickler vorhanden Third-Party-Libraries als OSGi-Bundles zwecks individuellem Setups Folie 40 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 41. Probleme Platformunabhängigkeit „Classloader-Hölle“ (Write once, run anywhere.)  Testen! Performanz von Widgets  Native GUIs Abhängig von Weiterentwicklung der OSGi-Stacks (z.B. momentan keine Unterstützung für Windows Phone 7) Folie 41 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 42. Ausblick Architektur Folie 42 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 43. Ausblick Anwendungsgebiete Sportmedizinischer Sektor Überwachung von Puls, etc. Kein zusätzliches Gerät zur Aufzeichnung durch (steigende) Verbreitung des Smartphones Experiment aus der Raumfahrt Neutralisieren von Harn Überwachung des Experiments Durchführung des Experiments nach Model SETI@Home Folie 43 Plug&Care Connector > Doreen Seider > 07.04.2011
  • 44. Kontakt Doreen Seider Abteilung Verteilte Systeme und Komponentensoftware (SC-VK) DLR Simulations- und Softwaretechnik Köln-Porz / Braunschweig / Berlin E-Mail: Doreen.Seider@dlr.de www.dlr.de/sc/abteilung/verteiltesysteme Folie 44 Plug&Care Connector > Doreen Seider > 07.04.2011