Slide 1 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 11.11.2011 Using OSGi to Build Better Software Lessons from a Telemedicine.

Slides:



Advertisements
Similar presentations
MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
Advertisements

When Applications can Roam Freely OSGi Service Platform R4 Peter Kriens Technical Director OSGi
SelfCon Foil no 1 Dynamic component systems 1. SelfCon Foil no 2 Pre-structured systems vs. dynamic component systems Pre-structured – emphasis on content.
OSGi Technology Hsin-Han Yang, Cheng-Yi Chien, Po-Cheng Huang.
Introduce OSGi BlueDavy
MITK Diffusion (under the hood)
Component Models and Technologies Case Study: OSGI.
Why OSGi matters for Enterprise Java Infrastructures
Apache Axis2 - OSGi Integration in WSO2 Carbon Platform
Technical Architectures
Notes to the presenter. I would like to thank Jim Waldo, Jon Bostrom, and Dennis Govoni. They helped me put this presentation together for the field.
What is an object? Your dog, your desk, your television set, your bicycle. Real-world objects share two characteristics: They all have state and behavior;
D-OSDi + Android Progress Presentation Xinyi Dong Long Qiu.
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Spring Dynamic Modules. Startlocation: Documentation: /1.2.1/reference/html/
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
UML and Object Oriented Concepts
OSGi.
Lesley Bross, August 29, 2010 ArcGIS 10 add-in glossary.
Introduction to the Atlas Platform Mobile & Pervasive Computing Laboratory Department of Computer and Information Sciences and Engineering University of.
1/19 Component Design On-demand Learning Series Software Engineering of Web Application - Principles of Good Component Design Hunan University, Software.
Choon Oh Lee OSGi Service Platform. About OSGi Service Platform What it is, Where it is used, What features it provides are Today’s Content.
CPSC 872 John D. McGregor Session 16 Design operators.
Adaptability for flexible mobile service provision in 3G and beyond Nikos Houssos
An Introduction to Software Architecture
CSE 303 – Software Design and Architecture
Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
Copyright © 2011 EMC Corporation. All Rights Reserved. MODULE – 6 VIRTUALIZED DATA CENTER – DESKTOP AND APPLICATION 1.
Chapter 2: Operating-System Structures. 2.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005 Operating System.
CPSC 875 John D. McGregor C9 - Tactics. Everything is a plugin.
CPSC 875 John D. McGregor C9 - Tactics. Tactics A tactic is a transformation Given that the pre-condition of the tactic is true The tactic defines changes.
1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services.
Jan Hatje, DESY CSS ITER March 2009: Technology and Interfaces XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser 1 CSS – Control.
Migrating Desktop The graphical framework for running grid applications Bartek Palak Poznan Supercomputing and Networking Center The.
Webservice versioning using osgi Allard Buijze, Jettro Coenradie.
Open Service Gateway Initiative (OSGi) Reporter : 林學灝 侯承育 1.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Migrating Desktop Marcin Płóciennik Marcin Płóciennik Kick-off Meeting, Santander, Graphical.
Service Oriented Architecture CCT355H5 Professor Michael Jones Suezan Makkar.
ICT Strategy Intelligent Highways: Endpoint Adapters.
07/09/04 Johan Muskens ( TU/e Computer Science, System Architecture and Networking.
Processes Introduction to Operating Systems: Module 3.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
CPSC 875 John D. McGregor C9 - Tactics. Tactics A tactic is a transformation Given that the pre-condition of the tactic is true The tactic defines changes.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
Migrating Desktop Bartek Palak Bartek Palak Poznan Supercomputing and Networking Center The Graphical Framework.
Component based Progress Programming VALENTIN DURICU
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
Introduction 1 Lars Vogel 4/22/2009.  Who am I?  Eclipse as a platform  What is Eclipse RCP?  Extension Points / Extensions  Equinox  SWT & JFace.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
EUFORIA FP7-INFRASTRUCTURES , Grant Migrating Desktop Uniform Access to the Grid Marcin Płóciennik Poznan Supercomputing and Networking Center.
Introduction to business component technologies. Component definitions Szyperski: A software component is a unit of composition with contractually specified.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
ETICS All Hands meeting B ologna, October , 2006 WP4 Test and Metrics Plugin Framework (WP4) (WP4) Eva TAKACS.
OOPS CONCEPT.  OOPS  Benefits of OOPs  OOPs Principles  Class  Object Objectives.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
Introduction to OSGi +ActorFrame Surya Bahadur Kathayat
Intro to the Atlas Platform Raja Bose Dr. Abdelsalam (Sumi) Helal January 23, 2007.
ECLIPSE RICH CLIENT PLATFORM Part 1 Introduction.
CPSC 875 John D. McGregor C8 - Tactics. Everything is a plugin.
Project Topic 2: Migration to Java 9
Introduction to J2EE Architecture
John D. McGregor C8 - Tactics
ESIS Consulting LLC (C) ESIS Consulting LLC. All rights reserved
MySQL Migration Toolkit
An Introduction to Software Architecture
Outline Chapter 2 (cont) OS Design OS structure
Presentation transcript:

Slide 1 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 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 2 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > Outline What software did we want to have? How did we develop it with OSGi? What did we learn?

Slide 3 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software >

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

Slide 5 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 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 6 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > Already Exist: Unflexible Telemonitoring Software

Slide 7 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > Unflexible Telemonitoring Software Technologies

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

Slide 9 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > Flexible Telemonitoring Software Technology Plug&Care Connector

Slide 10 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 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

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

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

Slide 13 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 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 14 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 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 15 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 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 16 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > OSGi Principles: Bundles and Services

Slide 17 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 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 18 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > OSGi Principles: Bundles and Services

Slide 19 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > OSGi Principles: Declarative Services (DS) OSGi Runtime calls the bundle and not other way around

Slide 20 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 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 21 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > OSGi Principles: Declarative Services (DS) Benefits of Declarative Services Less complexity in own code Better testing (no mock up of OSGi runtime needed)

Slide 22 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 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 23 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 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 24 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > Used OSGi Implementations: mBS Mobile For Smartphones ProSyst company ( Android, Windows Mobile, Nokia S60 Decision was made due to supported platforms at that time and due to development status

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

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

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

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

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

Slide 30 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 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 31 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > Designing Plug&Care Connector Abstraction with the use of Console Layered architecture of affected bundles

Slide 32 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 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 33 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > Designing Plug&Care Connector Abstraction with the use of Device Communication Layered architecture of affected bundles

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

Slide 35 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 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 36 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > Designing Plug&Care Connector Driver and Transmitter Plugins and its Registration Requirements Self-sufficient deployment OSGi as transparent as possible to thrid party developer Use as much OSGi as possible to reduce own amount of code

Slide 37 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > Designing Plug&Care Connector Plugin and Registry Concept using the Example of Driver How did we realize it?

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

Slide 39 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 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:

Slide 40 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 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 Implements bind and unbind method to e.g., store the driver in a list

Slide 41 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 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 42 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > Designing Plug&Care Connector Plugin and Registry Concept using the Example of Driver In a nutshell: Driver installation

Slide 43 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > Designing Plug&Care Connector Plugin and Registry Concept using the Example of Driver In a nutshell: Driver deinstallation

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

Slide 45 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > What did We Learn? Living out OSGi principles is a good base for building better software (in terms of maintance and deployment).

Slide 46 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 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 47 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 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 48 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > 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 49 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software >