SlideShare a Scribd company logo
1 of 44
Download to read offline
Using OSGi to Build Better Software
Lessons from a Telemedicine Software for Smartphones and
Desktop Systems
Doreen Seider (DLR - German Aerospace Center)
ApacheCon NA 2011 (Vancouver, 11/11/2011)


                                                                                                                 Slide 1
                                          ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
Outline


  What software did we want to have?
  How did we develop it with OSGi?
  What did we learn?




                                                                                                              Slide 2
                                       ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
Slide 3
ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
What kind of software did we want to have?




                                                                                                       Slide 4
                                ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
Telemonitoring Software


  Supports remote monitoring of patients (e.g. in rural areas)
  Captures vital sign of patients from medical devices
  Sends measurements to doctors sitting in a medical service center
  Executable on mobile devices and desktop systems
  Supports any kind of medical device and medical service center




                                                                                                                    Slide 5
                                             ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
In Comparison to That: Flexible Telemonitoring
Software




                                                                                                       Slide 8
                                ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
Flexible Telemonitoring Software Technology



              Plug&Care Connector




                                                                                                      Slide 9
                               ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
Plug&Care Connector
Requirements

1.   Both on smartphones (like Android or Windows Mobile) and on desktop
     system executable

2.   Support of any device and service center – even later on – without
     modification of the Plug&Care Connector




                                                                                                                     Slide 10
                                                ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
How did we develop it with OSGi?




                                                                                                    Slide 11
                               ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
Plug&Care Connector‘s Architecture




                                                                                                    Slide 12
                               ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
OSGi Principles: Bundles and Services


  OSGi is specification of a modular service platform written in Java


  „modular“
      It is a module layer above the Java package layer
      Classes are assembled to packages  packages are assembled to
      bundles (modules)  bundles are assembled to applications




                                                                                                                   Slide 13
                                              ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
OSGi Principles: Bundles and Services


  By default bundles are totally encapsulated
  Bundles can make use of each other by explicit exports and imports of
  packages




                                                                                                                  Slide 14
                                             ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
OSGi Principles: Bundles and Services


  OSGi is specification of a modular service platform written in Java


  „service“
        In a perfect world bundles make use of each other via services
        Eliminates direct dependencies to each others implementation




                                                                                                                   Slide 15
                                              ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
OSGi Principles: Bundles and Services




                                                                                                    Slide 16
                               ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
OSGi Principles: Bundles and Services


  Service definition and implementation are separated to each other
  No direct implementation dependencies
  Enables loose coupling
  Important for assembling bundles (jars) to applications




                                                                                                                  Slide 17
                                             ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
OSGi Principles: Bundles and Services




                                                                                                    Slide 18
                               ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
OSGi Principles: Declarative Services (DS)


  OSGi Runtime calls the bundle and not other way around




                                                                                                                Slide 19
                                           ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
OSGi Principles: Declarative Services (DS)


  Bundles provide a set of so called component descriptions
  A component is a Java class
  Each describes which services a component provides and consumes
  OSGi runtime injects all required services at start up




                                                                                                               Slide 20
                                          ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
OSGi Principles: Declarative Services (DS)


  Benefits of Declarative Services
       Less complexity in own code
       Better testing (no mock up of OSGi runtime needed)




                                                                                                                Slide 21
                                           ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
Fulfilling Requirements with the help of OSGi


1.   Both on smartphones (like Android or Windows Mobile) and on desktop
     system executable
          Platform independency by realizating it as OSGi application
          OSGi serves as an abstraction layer of underlying diversity
          Using different implementations of OSGi for different platforms
          Assembling bundles to the Plug&Care Connector application
          according to its deployment platform




                                                                                                                    Slide 22
                                               ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
Used OSGi Implementations: Equinox


  For desktop
  Eclipse Software Foundation
  OSGi implementation under Eclipse


  Decision was made due to experiences from other software we develop




                                                                                                                Slide 23
                                           ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
Used OSGi Implementations: mBS Mobile


  For Smartphones
  ProSyst company (http://prosyst.com)
  Android, Windows Mobile, Nokia S60
  http://dz.prosyst.com/mbsmobile/

  Decision was made due to supported platforms at that time and due to
  development status




                                                                                                                 Slide 24
                                            ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
Used OSGi Implementations: mBS Mobile
Integration in Android




                                                                                                  Slide 25
                             ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
Used OSGi Implementations: mBS Mobile
OSGi Management on Android




                                                                                                  Slide 26
                             ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
Used OSGi Implementations: mBS Mobile
OSGi Applications on Android




                                                                                                    Slide 27
                               ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
OSGi-Stack: mBS Mobile
Development Environment in Eclipse




                                                                                                          Slide 28
                                     ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
OSGi-Stack: mBS Mobile
Development Environment in Eclipse




                                                                                                          Slide 29
                                     ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
Designing Plug&Care Connector
Abstraction with the use of Console

   OSGi comes with a console for management purposes
   It is useful for testing i.e. interacting with the application if no GUI is
   available yet
   Own commands can be provided
   Different OSGi implementations might have different console APIs
   Abstraction of console APIs is needed to hide them for the underlying
   application layers writing to the console




                                                                                                                       Slide 30
                                                  ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
Designing Plug&Care Connector
Abstraction with the use of Console

   Layered architecture of affected bundles




                                                                                                                   Slide 31
                                              ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
Designing Plug&Care Connector
Abstraction with the use of Device Communication

   Measurements are captured via Bluetooth
   There are different bluetooth implementations on different devices
   Later on not only Bluetooth, but USB should be supported as well
   Abstraction of communication layer and Bluetooth implementations is
   needed to ensure driver implemenentation must not be changed




                                                                                                                  Slide 32
                                             ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
Designing Plug&Care Connector
Abstraction with the use of Device Communication

   Layered architecture of affected bundles




                                                                                                                   Slide 33
                                              ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
Designing Plug&Care Connector
Abstraction with the use of Console and Device Communication

   Deployment




                                                                                                             Slide 34
                                        ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
Fulfilling Requirements with the help of OSGi


1.   Both on smartphones (like Android or Windows Mobile) and on desktop
     system executable
          Platform independency by realizating it as OSGi application
          OSGi serves as an abstraction layer of underlying diversity
          Using different implementations for different platforms


2.   Support of any device and service center – even later on – without
     modification of the Plug&Care Connector
          Establish plugin concept
          Get plugins with help of modularity of OSGi
          Handle plugins (registration) by the use of dependency injection
          provided by OSGi (Declarative Services)


                                                                                                                     Slide 35
                                                ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
Designing Plug&Care Connector
Plugin and Registry Concept using the Example of Driver

   How did we realize it?




                                                                                                              Slide 37
                                         ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
Designing Plug&Care Connector
Plugin and Registry Concept using the Example of Driver




                                                                                                              Slide 38
                                         ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
Designing Plug&Care Connector
Plugin and Registry Concept using the Example of Driver

   What does a driver developer need to do?


   Implement the driver interfaces provided by Plug&Care Connector
   Provide a component description like that:


<component name=„Driver A“>
    <implementation class="de.pncc.plugins.drivers.DriverA"/>
    <service>
         <provide interface="de.pncc.drivers.Driver"/>
    </service>
</component>



                                                                                                                   Slide 39
                                              ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
Designing Plug&Care Connector
Plugin and Registry Concept using the Example of Driver

   What does the Plug&Care Connecor do?

   Provides component description like that:

<component name=„Driver Registry„
    <reference name="de.pncc.driver„
         interface="de.pncc.drivers.Driver„
         bind="addDriver„
         unbind="removeDriver
</component>

   Implements bind and unbind method to e.g., store the driver in a list



                                                                                                                     Slide 40
                                                ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
Designing Plug&Care Connector
Plugin and Registry Concept using the Example of Driver

   What does OSGi do?

   Everything else
        like listen to new driver bundles, retrieving there provided driver
        services, inject them to the right place, handles uninstalled driver
        bundles, …




                                                                                                                     Slide 41
                                                ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
What did we learn?




                                                                                          Slide 44
                     ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
What did We Learn?


Living out OSGi principles is a good base for building better software (in
terms of maintance and deployment).




                                                                                                                      Slide 45
                                                 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
Living out OSGi Principles
Services

   Use services
   Seperate service interface and service implementation
   Allows abstraction and loose coupling
   Makes application
        More robust against changes
        Deployable in different environments just by assempling different
        kind of jar files




                                                                                                                   Slide 46
                                              ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
Living out OSGi Principles
Declarative Services

   Prerequisite is usage of services
   Make use of dependency injection
   Let other maintain the code for dependency handling
   Get your code free from OSGi API
   Makes application
         Easier to test by injecting stub or mock objects
         More robust because fewer lines of code (every reduced line of
         code, reduces the chance for a bug)
         Easier to understand and use by third party developers knowing
         nothing about OSGi




                                                                                                                   Slide 47
                                              ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
Living out OSGi Principles
Encapsulation

   Make only those code public which is really intended to be public
   Hide as much as possible from the outer world
   In perfect word only the (service) interfaces are public
   Makes application
         More robust against changes because third party code can only be
         depend on a little part of your applications‘s implementation
         Architecture smarter, because you need to think about it in more
         detail




                                                                                                                  Slide 48
                                             ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
Slide 49
ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011

More Related Content

What's hot

Quality on Submit
Quality on SubmitQuality on Submit
Quality on SubmitAgileSparks
 
Revisiting Silent: Installs Are they still useful?
Revisiting Silent: Installs Are they still useful?Revisiting Silent: Installs Are they still useful?
Revisiting Silent: Installs Are they still useful?Revelation Technologies
 
分会场九Altiris终端管理套件和服务器管理套件现在及远景
分会场九Altiris终端管理套件和服务器管理套件现在及远景分会场九Altiris终端管理套件和服务器管理套件现在及远景
分会场九Altiris终端管理套件和服务器管理套件现在及远景ITband
 
Comp tia a+_session_14
Comp tia a+_session_14Comp tia a+_session_14
Comp tia a+_session_14Niit Care
 
Comp tia a+_session_05
Comp tia a+_session_05Comp tia a+_session_05
Comp tia a+_session_05Niit Care
 
Comp tia a+_session_13
Comp tia a+_session_13Comp tia a+_session_13
Comp tia a+_session_13Niit Care
 
Fusion Middleware 11g Keynote Foundation For Innovation
Fusion Middleware 11g Keynote Foundation For InnovationFusion Middleware 11g Keynote Foundation For Innovation
Fusion Middleware 11g Keynote Foundation For InnovationMark Rabne
 
Open source communities and business eco system strategy - OW2 Consortium fro...
Open source communities and business eco system strategy - OW2 Consortium fro...Open source communities and business eco system strategy - OW2 Consortium fro...
Open source communities and business eco system strategy - OW2 Consortium fro...SpagoWorld
 
Using OSGi as a Cloud Platform - Jan Rellermeyer
Using OSGi as a Cloud Platform - Jan RellermeyerUsing OSGi as a Cloud Platform - Jan Rellermeyer
Using OSGi as a Cloud Platform - Jan Rellermeyermfrancis
 
Comp tia a+_session_11
Comp tia a+_session_11Comp tia a+_session_11
Comp tia a+_session_11Niit Care
 
Comp tia a+_session_02
Comp tia a+_session_02Comp tia a+_session_02
Comp tia a+_session_02Niit Care
 
InstallAnywhere Infragistics Success Story
InstallAnywhere Infragistics Success StoryInstallAnywhere Infragistics Success Story
InstallAnywhere Infragistics Success StoryFlexera
 

What's hot (16)

Quality on Submit
Quality on SubmitQuality on Submit
Quality on Submit
 
Introduction to OSGi
Introduction to OSGiIntroduction to OSGi
Introduction to OSGi
 
Puppet for Junos
Puppet for JunosPuppet for Junos
Puppet for Junos
 
Revisiting Silent: Installs Are they still useful?
Revisiting Silent: Installs Are they still useful?Revisiting Silent: Installs Are they still useful?
Revisiting Silent: Installs Are they still useful?
 
分会场九Altiris终端管理套件和服务器管理套件现在及远景
分会场九Altiris终端管理套件和服务器管理套件现在及远景分会场九Altiris终端管理套件和服务器管理套件现在及远景
分会场九Altiris终端管理套件和服务器管理套件现在及远景
 
Comp tia a+_session_14
Comp tia a+_session_14Comp tia a+_session_14
Comp tia a+_session_14
 
Comp tia a+_session_05
Comp tia a+_session_05Comp tia a+_session_05
Comp tia a+_session_05
 
Objectif cloud
Objectif cloudObjectif cloud
Objectif cloud
 
Comp tia a+_session_13
Comp tia a+_session_13Comp tia a+_session_13
Comp tia a+_session_13
 
Fusion Middleware 11g Keynote Foundation For Innovation
Fusion Middleware 11g Keynote Foundation For InnovationFusion Middleware 11g Keynote Foundation For Innovation
Fusion Middleware 11g Keynote Foundation For Innovation
 
Open source communities and business eco system strategy - OW2 Consortium fro...
Open source communities and business eco system strategy - OW2 Consortium fro...Open source communities and business eco system strategy - OW2 Consortium fro...
Open source communities and business eco system strategy - OW2 Consortium fro...
 
Day 2 p3 - automation
Day 2   p3 - automationDay 2   p3 - automation
Day 2 p3 - automation
 
Using OSGi as a Cloud Platform - Jan Rellermeyer
Using OSGi as a Cloud Platform - Jan RellermeyerUsing OSGi as a Cloud Platform - Jan Rellermeyer
Using OSGi as a Cloud Platform - Jan Rellermeyer
 
Comp tia a+_session_11
Comp tia a+_session_11Comp tia a+_session_11
Comp tia a+_session_11
 
Comp tia a+_session_02
Comp tia a+_session_02Comp tia a+_session_02
Comp tia a+_session_02
 
InstallAnywhere Infragistics Success Story
InstallAnywhere Infragistics Success StoryInstallAnywhere Infragistics Success Story
InstallAnywhere Infragistics Success Story
 

Similar to Building Flexible Telemonitoring Software with OSGi

Customize and control connected devices
Customize and control connected devicesCustomize and control connected devices
Customize and control connected devicesCodemotion
 
Cutomize and Control Connected Devices
Cutomize and Control Connected DevicesCutomize and Control Connected Devices
Cutomize and Control Connected DevicesMirco Vanini
 
Plug&Care Connector - SOSMD 2011
Plug&Care Connector - SOSMD 2011Plug&Care Connector - SOSMD 2011
Plug&Care Connector - SOSMD 2011StevenMohr
 
Android presentation
Android presentationAndroid presentation
Android presentationImam Raza
 
What is os gi and what does osgi
What is os gi and what does osgiWhat is os gi and what does osgi
What is os gi and what does osgiYunChang Lee
 
Wolters Kluwer Tech. Conference: Disrupting Mobile Development
Wolters Kluwer Tech. Conference: Disrupting Mobile DevelopmentWolters Kluwer Tech. Conference: Disrupting Mobile Development
Wolters Kluwer Tech. Conference: Disrupting Mobile DevelopmentMax Katz
 
Java enterprise paradise
Java enterprise paradiseJava enterprise paradise
Java enterprise paradiseAmr Salah
 
Android introduction&hello world
Android introduction&hello worldAndroid introduction&hello world
Android introduction&hello world葵慶 李
 
Eok bo ppt
Eok bo pptEok bo ppt
Eok bo pptvijayeok
 
Forrester reviews the KonyOne platform
Forrester reviews the KonyOne platformForrester reviews the KonyOne platform
Forrester reviews the KonyOne platformKony, Inc.
 
OSGi DevCon 2009 Review
OSGi DevCon 2009 ReviewOSGi DevCon 2009 Review
OSGi DevCon 2009 Reviewnjbartlett
 
Top 10 DevOps Tools For Every Software Development Company | WeblineIndia
Top 10 DevOps Tools For Every Software Development Company | WeblineIndiaTop 10 DevOps Tools For Every Software Development Company | WeblineIndia
Top 10 DevOps Tools For Every Software Development Company | WeblineIndiaWeblineIndia
 
splitX app.pptx
splitX app.pptxsplitX app.pptx
splitX app.pptxChintan79
 
OSGi Overview TomTom DevDay May 2009
OSGi Overview TomTom DevDay May 2009OSGi Overview TomTom DevDay May 2009
OSGi Overview TomTom DevDay May 2009Toralf Richter
 
ANDROID presentation prabal
ANDROID presentation prabalANDROID presentation prabal
ANDROID presentation prabalPrabal Tyagi
 
Top 10 Best DevOps tools in 2020
Top 10 Best DevOps tools in 2020Top 10 Best DevOps tools in 2020
Top 10 Best DevOps tools in 2020prafulIQBusiness
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android DevelopmentSander Alberink
 

Similar to Building Flexible Telemonitoring Software with OSGi (20)

Customize and control connected devices
Customize and control connected devicesCustomize and control connected devices
Customize and control connected devices
 
Cutomize and Control Connected Devices
Cutomize and Control Connected DevicesCutomize and Control Connected Devices
Cutomize and Control Connected Devices
 
Plug&Care Connector - SOSMD 2011
Plug&Care Connector - SOSMD 2011Plug&Care Connector - SOSMD 2011
Plug&Care Connector - SOSMD 2011
 
Android presentation
Android presentationAndroid presentation
Android presentation
 
What is os gi and what does osgi
What is os gi and what does osgiWhat is os gi and what does osgi
What is os gi and what does osgi
 
Wolters Kluwer Tech. Conference: Disrupting Mobile Development
Wolters Kluwer Tech. Conference: Disrupting Mobile DevelopmentWolters Kluwer Tech. Conference: Disrupting Mobile Development
Wolters Kluwer Tech. Conference: Disrupting Mobile Development
 
Java enterprise paradise
Java enterprise paradiseJava enterprise paradise
Java enterprise paradise
 
Android introduction&hello world
Android introduction&hello worldAndroid introduction&hello world
Android introduction&hello world
 
Eok bo ppt
Eok bo pptEok bo ppt
Eok bo ppt
 
Forrester reviews the KonyOne platform
Forrester reviews the KonyOne platformForrester reviews the KonyOne platform
Forrester reviews the KonyOne platform
 
GDG School Android Workshop
GDG School Android WorkshopGDG School Android Workshop
GDG School Android Workshop
 
Jax 2011 keynote
Jax 2011 keynoteJax 2011 keynote
Jax 2011 keynote
 
OSGi DevCon 2009 Review
OSGi DevCon 2009 ReviewOSGi DevCon 2009 Review
OSGi DevCon 2009 Review
 
Top 10 DevOps Tools For Every Software Development Company | WeblineIndia
Top 10 DevOps Tools For Every Software Development Company | WeblineIndiaTop 10 DevOps Tools For Every Software Development Company | WeblineIndia
Top 10 DevOps Tools For Every Software Development Company | WeblineIndia
 
splitX.pptx
splitX.pptxsplitX.pptx
splitX.pptx
 
splitX app.pptx
splitX app.pptxsplitX app.pptx
splitX app.pptx
 
OSGi Overview TomTom DevDay May 2009
OSGi Overview TomTom DevDay May 2009OSGi Overview TomTom DevDay May 2009
OSGi Overview TomTom DevDay May 2009
 
ANDROID presentation prabal
ANDROID presentation prabalANDROID presentation prabal
ANDROID presentation prabal
 
Top 10 Best DevOps tools in 2020
Top 10 Best DevOps tools in 2020Top 10 Best DevOps tools in 2020
Top 10 Best DevOps tools in 2020
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Development
 

Recently uploaded

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 

Building Flexible Telemonitoring Software with OSGi

  • 1. Using OSGi to Build Better Software Lessons from a Telemedicine Software for Smartphones and Desktop Systems Doreen Seider (DLR - German Aerospace Center) ApacheCon NA 2011 (Vancouver, 11/11/2011) Slide 1 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 2. Outline What software did we want to have? How did we develop it with OSGi? What did we learn? Slide 2 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 3. Slide 3 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 4. What kind of software did we want to have? Slide 4 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 5. Telemonitoring Software Supports remote monitoring of patients (e.g. in rural areas) Captures vital sign of patients from medical devices Sends measurements to doctors sitting in a medical service center Executable on mobile devices and desktop systems Supports any kind of medical device and medical service center Slide 5 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 6. In Comparison to That: Flexible Telemonitoring Software Slide 8 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 7. Flexible Telemonitoring Software Technology Plug&Care Connector Slide 9 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 8. Plug&Care Connector Requirements 1. Both on smartphones (like Android or Windows Mobile) and on desktop system executable 2. Support of any device and service center – even later on – without modification of the Plug&Care Connector Slide 10 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 9. How did we develop it with OSGi? Slide 11 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 10. Plug&Care Connector‘s Architecture Slide 12 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 11. OSGi Principles: Bundles and Services OSGi is specification of a modular service platform written in Java „modular“ It is a module layer above the Java package layer Classes are assembled to packages  packages are assembled to bundles (modules)  bundles are assembled to applications Slide 13 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 12. OSGi Principles: Bundles and Services By default bundles are totally encapsulated Bundles can make use of each other by explicit exports and imports of packages Slide 14 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 13. OSGi Principles: Bundles and Services OSGi is specification of a modular service platform written in Java „service“ In a perfect world bundles make use of each other via services Eliminates direct dependencies to each others implementation Slide 15 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 14. OSGi Principles: Bundles and Services Slide 16 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 15. OSGi Principles: Bundles and Services Service definition and implementation are separated to each other No direct implementation dependencies Enables loose coupling Important for assembling bundles (jars) to applications Slide 17 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 16. OSGi Principles: Bundles and Services Slide 18 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 17. OSGi Principles: Declarative Services (DS) OSGi Runtime calls the bundle and not other way around Slide 19 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 18. OSGi Principles: Declarative Services (DS) Bundles provide a set of so called component descriptions A component is a Java class Each describes which services a component provides and consumes OSGi runtime injects all required services at start up Slide 20 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 19. OSGi Principles: Declarative Services (DS) Benefits of Declarative Services Less complexity in own code Better testing (no mock up of OSGi runtime needed) Slide 21 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 20. Fulfilling Requirements with the help of OSGi 1. Both on smartphones (like Android or Windows Mobile) and on desktop system executable Platform independency by realizating it as OSGi application OSGi serves as an abstraction layer of underlying diversity Using different implementations of OSGi for different platforms Assembling bundles to the Plug&Care Connector application according to its deployment platform Slide 22 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 21. Used OSGi Implementations: Equinox For desktop Eclipse Software Foundation OSGi implementation under Eclipse Decision was made due to experiences from other software we develop Slide 23 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 22. Used OSGi Implementations: mBS Mobile For Smartphones ProSyst company (http://prosyst.com) Android, Windows Mobile, Nokia S60 http://dz.prosyst.com/mbsmobile/ Decision was made due to supported platforms at that time and due to development status Slide 24 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 23. Used OSGi Implementations: mBS Mobile Integration in Android Slide 25 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 24. Used OSGi Implementations: mBS Mobile OSGi Management on Android Slide 26 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 25. Used OSGi Implementations: mBS Mobile OSGi Applications on Android Slide 27 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 26. OSGi-Stack: mBS Mobile Development Environment in Eclipse Slide 28 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 27. OSGi-Stack: mBS Mobile Development Environment in Eclipse Slide 29 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 28. Designing Plug&Care Connector Abstraction with the use of Console OSGi comes with a console for management purposes It is useful for testing i.e. interacting with the application if no GUI is available yet Own commands can be provided Different OSGi implementations might have different console APIs Abstraction of console APIs is needed to hide them for the underlying application layers writing to the console Slide 30 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 29. Designing Plug&Care Connector Abstraction with the use of Console Layered architecture of affected bundles Slide 31 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 30. Designing Plug&Care Connector Abstraction with the use of Device Communication Measurements are captured via Bluetooth There are different bluetooth implementations on different devices Later on not only Bluetooth, but USB should be supported as well Abstraction of communication layer and Bluetooth implementations is needed to ensure driver implemenentation must not be changed Slide 32 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 31. Designing Plug&Care Connector Abstraction with the use of Device Communication Layered architecture of affected bundles Slide 33 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 32. Designing Plug&Care Connector Abstraction with the use of Console and Device Communication Deployment Slide 34 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 33. Fulfilling Requirements with the help of OSGi 1. Both on smartphones (like Android or Windows Mobile) and on desktop system executable Platform independency by realizating it as OSGi application OSGi serves as an abstraction layer of underlying diversity Using different implementations for different platforms 2. Support of any device and service center – even later on – without modification of the Plug&Care Connector Establish plugin concept Get plugins with help of modularity of OSGi Handle plugins (registration) by the use of dependency injection provided by OSGi (Declarative Services) Slide 35 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 34. Designing Plug&Care Connector Plugin and Registry Concept using the Example of Driver How did we realize it? Slide 37 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 35. Designing Plug&Care Connector Plugin and Registry Concept using the Example of Driver Slide 38 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 36. Designing Plug&Care Connector Plugin and Registry Concept using the Example of Driver What does a driver developer need to do? Implement the driver interfaces provided by Plug&Care Connector Provide a component description like that: <component name=„Driver A“> <implementation class="de.pncc.plugins.drivers.DriverA"/> <service> <provide interface="de.pncc.drivers.Driver"/> </service> </component> Slide 39 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 37. Designing Plug&Care Connector Plugin and Registry Concept using the Example of Driver What does the Plug&Care Connecor do? Provides component description like that: <component name=„Driver Registry„ <reference name="de.pncc.driver„ interface="de.pncc.drivers.Driver„ bind="addDriver„ unbind="removeDriver </component> Implements bind and unbind method to e.g., store the driver in a list Slide 40 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 38. Designing Plug&Care Connector Plugin and Registry Concept using the Example of Driver What does OSGi do? Everything else like listen to new driver bundles, retrieving there provided driver services, inject them to the right place, handles uninstalled driver bundles, … Slide 41 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 39. What did we learn? Slide 44 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 40. What did We Learn? Living out OSGi principles is a good base for building better software (in terms of maintance and deployment). Slide 45 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 41. Living out OSGi Principles Services Use services Seperate service interface and service implementation Allows abstraction and loose coupling Makes application More robust against changes Deployable in different environments just by assempling different kind of jar files Slide 46 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 42. Living out OSGi Principles Declarative Services Prerequisite is usage of services Make use of dependency injection Let other maintain the code for dependency handling Get your code free from OSGi API Makes application Easier to test by injecting stub or mock objects More robust because fewer lines of code (every reduced line of code, reduces the chance for a bug) Easier to understand and use by third party developers knowing nothing about OSGi Slide 47 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 43. Living out OSGi Principles Encapsulation Make only those code public which is really intended to be public Hide as much as possible from the outer world In perfect word only the (service) interfaces are public Makes application More robust against changes because third party code can only be depend on a little part of your applications‘s implementation Architecture smarter, because you need to think about it in more detail Slide 48 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011
  • 44. Slide 49 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011