SlideShare una empresa de Scribd logo
1 de 46
Descargar para leer sin conexión
Platform O.N.E.
Deutsche Telekom‘s OSGi based
Application Platform for Third Party Enabling
Elmar Brauch and Christian Baranowski

Deutsche Telekom AG, Products & Innovation and SEITENBAU GmbH

20.09.2011




                                                                Page 1
COPYRIGHT © 2008-2011 OSGi Alliance. All Rights Reserved
Welcome

• Christian Baranowski
• Software Quality Assurance @ Seitenbau GmbH
  Konstanz (DE)
  •    Custom Software Solutions
  •    E-Government Solutions
  •    Identity Management and SSO Solutions
  • www.seitenbau.com




  Page 2   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Agenda

• Overview Platform O.N.E
   •    Platform features
   •    Architecture context
• OSGi relevant architecture concepts
   •    Design goals
   •    Overview of platform architecture
   •    Design of OSGi related core services (REST exporter, logging, ...)
• Design of Platform modules
   •    Bundle structure for a module (bundle structure blueprint)
   •    Advantages of the module structure
• Live demo
• Summary




   Page 3    OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Welcome

• Elmar Brauch
• Technical Product Manager @
  Deutsche Telekom, Products & Innovation
  • Study of computer science at university of
    Koblenz-Landau.
  • Worked as Software Engineer at Capgemini and
    United Internet




   Page 4   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Overview Platform O.N.E
What is the Platform O.N.E?




   Page 5   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Overview

• Platform O.N.E. is an OSGi based application platform.
• Platform O.N.E. connects mobile apps or third party
  clients with internal services of Deutsche Telekom.
• Internal services are exported as REST or SOAP
  services.
                               • Developer Garden uses SMS module.
                                        • http://www.developergarden.com
                               • Mediencenter uses DLS module.
                                        • http://medien-center.t-online.de

   Page 6   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Architecture Context

Devices
                                                                                                    TV   Laptop/PC
Edge P&I

                                                    DLS
Exp. Layer                                DLSi          SMS …                    …      …   …   …
                                                    n
                                                    Core
                                    Platform O.N.E.




Service Layer
                                                          SMS            DLSn        DLSi   …

   Page 7   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Idea

• Platform O.N.E. offers features as services:
   • Authentication, authorization,
   • Security, billing(quota handling), logging
• Features are implemented as components which
  provides the features as OSGi services.
• Platform modules exporting backend services can
  easily use these features.




   Page 8   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Motivation

• Pros
  • Faster module development,
    because technical issues are solved in the platform.
  • Cheaper modules,
    because all features and services are reusable in
    other modules.
  • Save hardware,
    because different modules
    can use the same servers.


  Page 9   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
OSGi Relevant Architecture Concepts




  Page 10   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Design Goals
                                                          Design Goals



                                                                             Module
              Goals from                   Operational
                                                                            developers             Other goals
               P3GW                          goals
                                                                              goals


                Dependency                                                              Easy         No dependency
               management at                       Monitoring                       programming        on OSGi in
                 Runtime                                                               model          Platform code


                 Dependency                                                    Technical details
                                                 Configuration
               injection instead                                                  should be
                                                 management
                 of inheritance                                                    hidden


                                                 Packaging as                   Blueprints for
                   Testability
                                                    RPM                         module design

 P3GW = Predecessor of Platform O.N.E


    Page 11    OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Architecture Overview




  Page 12   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
OSGi
Technologies                                                              HTTP
                                                                         Service   Jetty




                              SLF4J
                               and
                             Logback


                                                                         Eclipse
                                                                         Equinox               Spring




                                 SOAP -                                                     Spring
                                  Axis                                                     Dynamic
                                                                                           Modules
                                                         JAX-RS –
                                                          Jersey



  Page 13   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Design of Platform O.N.E
OSGi related core services




  Page 14   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Logging and Log Service

• The platform logger provides an abstraction layer for
  the actual logging implementation (Logback)
• The logger will be accessed in a static way, not as
  OSGi service
• Backend implementation (Logback) is pluggable
• Logger works in other environments, e.g. Java SE for
  debugging unit tests
• One platform exposure module is associated with one
  Logback instance
• Design is inspired by the Pax logging project

   Page 15   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Logging and Log Service

Logger Client API




   Page 16   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Logging and Log Service
• 3rd party logging framework integration




  Page 17   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Logging and Log Service




  Page 18   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Logging and Log Service

• Pros
  • Logger API for the client classes
  • Pluggable logging implementation (e.g. logger
    implementation can be changed at runtime)
  • Common log frameworks are integrated over SLF4
    bridges
  • The OSGi log service is integrated
  • There is always a log, even when the log service is not
    active, e.g. at startup
  • One Logback (log) instance per exposure module
  • A log message is associated with request


  Page 19   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Logging and Log Service

• Cons
  • Performance overhead delegation the logging call
    through the abstraction layer to the log backend
    service implementation
  • Not OSGi Standard (but you could use the OSGi
    log service as backend log service)




  Page 20   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Web Extender

• SOAP and REST web services must be registered as
  servlets at the HTTP Service
• The module implementation should not depend on the
  Servlet API or on the OSGi HTTP Service API
• To this end the platform provides a platform specific
  extender which registers the servlets for the SOAP and
  REST modules
• Design is motivated by Neil Bartlett - jaxrs-osgi-
  extender project

   Page 21   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Web Extender
Register a REST Web Service




  Page 22   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Web Extender

• Pros
  • The OSGi dependency on the HTTP Service and the BundleContext
    API is contained locally in a single class in the web extender
  • There are no OSGi dependencies in the modules
  • The web extender implements a proxy servlet for generic platform
    logic which should be invoked for each request, e.g. Token Handling
  • Modules do not depend on the JAX-RS Implementation, but only on
    the JAX-RS API




  Page 23   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Web Extender

• Cons
  • Implementation depends on the BundleContext API
  • Implementation using whiteboard pattern preferable
  • The BundleTracker API was not used in the implementation




  Page 24   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Design Platform O.N.E. Modules




  Page 25   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Design of exposure modules

• Main task of Platform O.N.E.
  exposure modules:
  build an exposure layer for




                                                                                  Commen
                                                                                  Commen
                                                                                  Commen
                                                                                  Common
                                                                                  Commen
  backend services.                                                                        Rest    Soap
   • apps are kept independent of
     backend changes.
                                                                                             Core
• Exposure modules have no
  business logic –                                                                           BSP
  cheap and simple.
• Features are added to
  modules by the platform.

   Page 26   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Design of exposure modules

• Each exposure module has
  a standard bundle structure:




                                                                                  Commen
                                                                                  Commen
                                                                                  Commen
                                                                                  Common
                                                                                  Commen
   • BSP connection to backend                                                             Rest    Soap
   • CORE adds platform features
   • COMMON functions required                                                               Core
     in all bundles
   • REST or SOAP connection to                                                              BSP
     clients




   Page 27   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Design of extension modules
• Extension modules can be
  imported by Platform O.N.E.




                                                                                    Commen
  modules.                                                                                    Rest Soap
                                                                                               Interface
• Extension modules have
  business logic, they represent                                                                 Core
  the Platform O.N.E. features.                                                              Implementation
• Extension modules consist of                                                                   BSP
  two bundle types:
  • Interface describes feature’s API.
  • Implementation implements the
    feature.


     Page 28   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Example:
DLS exposure modules
• Digital Life Storage -
  Mediencenter
• Two different systems
• Target: Only one
  system to save costs
• First step get rid of
  German App
• Migration needs only
  new DLSn exposure
  module
   Page 29   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Example:
DLS exposure modules
• Only new BSP bundle
  must be developed
• DLSi and DLSn have
  same REST, CORE and
  COMMON bundles.
• Minimal development
  costs - no App or
  Backend changes
• App developement is
  focused

  Page 30   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Platform O.N.E - Live Demo




  Page 31   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Summary

• OSGi benefits in the Platform O.N.E
   • Dependency management at runtime
   • OSGi provides a dynamic plugin framework out of the box
   • A platform exposure module can be used with different BSP bundles
     (Composition)
   • Dynamic component system,
     e.g. start and stop REST or SOAP endpoint at runtime
   • SOA at very low level
   • Sharing classes and logic between modules in form of
     OSGi services
   • …


   Page 32   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Summary

• OSGi disadvantages
  • Build process and build tools (Maven, …)
  • Integration of 3rd party frameworks and libraries can be difficult
  • Maven dependency management and OSGi do not always fit together
  • OSGi is simple in concept but not as easy to learn, classloader
    problems etc.
  • IDE and tooling (PDE, STS, BndTools …)
  • Dynamic approach brings more complexity to the system
  • Testing – In-container testing (Pax Exam, BND, …)




  Page 33   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Summary

• Lessons learned
   • Modularization does not come for free
   • XML libraries in Java are hell
   • Use Bundle Tracker OSGi util class to implement an extender
     pattern
   • In some cases a whiteboard pattern is a better solution than an
     extender pattern
   • …




  Page 34   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Summary

• Technology radar
   •    JAX-WS and Apache CXF Implementation
   •    Spring Version 3.0.0
   •    BNDTools as IDE
   •    Web Bundles (WAR) - RFC66
   •    Apache Felix
   •    Jersey Version 1.8
   •    Jetty 7
   •    Apache Karaf
   •    Eclipse Virgo
   •    …



  Page 35   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Discussion and Q&A




  Page 36   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
References Ressources and Links
• Richard S. Hall et al. - OSGi in Action
• Pax Logging -
  http://team.ops4j.org/wiki/display/paxlogging/Pax+Logging
• Ekke - Logging in OSGi Applications -
  http://ekkescorner.wordpress.com/blog-series/osgi-apps/
• Neil Bartlett - jaxrs-osgi-extender -
  https://github.com/njbartlett/jaxrs-osgi-extender
• Spring Dynamic Modules - http://www.springsource.org/osgi
• Gemini Blueprint - http://www.eclipse.org/gemini/blueprint/
• Jersey and OSGi -
  http://jersey.java.net/nonav/documentation/latest/osgi.html



   Page 37   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Appendix




  Page 38   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Logging and Log Service




  Page 39   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Logging and Log Service
Web Extender




  Page 41   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Web Extender




  Page 42   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Request Context Service

• Idea from the Spring Framework where Spring Beans
  can be in the Request scope
• There is one RequestContext which contains data that
  are associated with the actual request
• The RequestContext instance is bound to the local
  thread
• The Client obtains the RequestContext via the
  RequestContextService



   Page 43   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Request Context Service




  Page 44   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Request Context Service

• Pros
  • Simple generic way to pass parameters through the request
    processing
  • Makes implemention of e.g. the Token Service simple: the Client does
    not have to know anything about the token and where it comes from




  Page 45   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
Request Context Service

• Cons
  • Only works in an application where you have one thread per request




  Page 46   OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved

Más contenido relacionado

Destacado

OSGi Web Development in Action
OSGi Web Development in Action	OSGi Web Development in Action
OSGi Web Development in Action OSGiUsers
 
OSGi als App-Plattform - Ein Ausflug durch den Security-Layer
OSGi als App-Plattform - Ein Ausflug durch den Security-Layer	OSGi als App-Plattform - Ein Ausflug durch den Security-Layer
OSGi als App-Plattform - Ein Ausflug durch den Security-Layer OSGiUsers
 
OSGi IoT Demo & Contest 2015
OSGi IoT Demo & Contest 2015OSGi IoT Demo & Contest 2015
OSGi IoT Demo & Contest 2015mfrancis
 
Gfk Smart Home Studie
Gfk Smart Home StudieGfk Smart Home Studie
Gfk Smart Home StudiemyDLS
 
Vorstellung des Riena Patform Framework am Beispiel einer OSGi-ServerAdminist...
Vorstellung des Riena Patform Framework am Beispiel einer OSGi-ServerAdminist...Vorstellung des Riena Patform Framework am Beispiel einer OSGi-ServerAdminist...
Vorstellung des Riena Patform Framework am Beispiel einer OSGi-ServerAdminist...OSGiUsers
 
Deutsche Telekom Smarthome - Eine Einführung
Deutsche Telekom Smarthome - Eine EinführungDeutsche Telekom Smarthome - Eine Einführung
Deutsche Telekom Smarthome - Eine EinführungOSGiUsers
 
n-pat: Modulare Anwendungsplattform mit Smartcards
n-pat: Modulare Anwendungsplattform mit Smartcardsn-pat: Modulare Anwendungsplattform mit Smartcards
n-pat: Modulare Anwendungsplattform mit SmartcardsOSGiUsers
 
SXSW 2016 takeaways
SXSW 2016 takeawaysSXSW 2016 takeaways
SXSW 2016 takeawaysHavas
 

Destacado (8)

OSGi Web Development in Action
OSGi Web Development in Action	OSGi Web Development in Action
OSGi Web Development in Action
 
OSGi als App-Plattform - Ein Ausflug durch den Security-Layer
OSGi als App-Plattform - Ein Ausflug durch den Security-Layer	OSGi als App-Plattform - Ein Ausflug durch den Security-Layer
OSGi als App-Plattform - Ein Ausflug durch den Security-Layer
 
OSGi IoT Demo & Contest 2015
OSGi IoT Demo & Contest 2015OSGi IoT Demo & Contest 2015
OSGi IoT Demo & Contest 2015
 
Gfk Smart Home Studie
Gfk Smart Home StudieGfk Smart Home Studie
Gfk Smart Home Studie
 
Vorstellung des Riena Patform Framework am Beispiel einer OSGi-ServerAdminist...
Vorstellung des Riena Patform Framework am Beispiel einer OSGi-ServerAdminist...Vorstellung des Riena Patform Framework am Beispiel einer OSGi-ServerAdminist...
Vorstellung des Riena Patform Framework am Beispiel einer OSGi-ServerAdminist...
 
Deutsche Telekom Smarthome - Eine Einführung
Deutsche Telekom Smarthome - Eine EinführungDeutsche Telekom Smarthome - Eine Einführung
Deutsche Telekom Smarthome - Eine Einführung
 
n-pat: Modulare Anwendungsplattform mit Smartcards
n-pat: Modulare Anwendungsplattform mit Smartcardsn-pat: Modulare Anwendungsplattform mit Smartcards
n-pat: Modulare Anwendungsplattform mit Smartcards
 
SXSW 2016 takeaways
SXSW 2016 takeawaysSXSW 2016 takeaways
SXSW 2016 takeaways
 

Más de mfrancis

Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...mfrancis
 
OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)mfrancis
 
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)mfrancis
 
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank LyaruuOSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruumfrancis
 
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...mfrancis
 
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...mfrancis
 
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...mfrancis
 
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)mfrancis
 
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...mfrancis
 
OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)mfrancis
 
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...mfrancis
 
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...mfrancis
 
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...mfrancis
 
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)mfrancis
 
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)mfrancis
 
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)mfrancis
 
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...mfrancis
 
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)mfrancis
 
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...mfrancis
 
How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)mfrancis
 

Más de mfrancis (20)

Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
 
OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)
 
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
 
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank LyaruuOSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
 
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
 
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
 
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
 
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
 
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
 
OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)
 
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
 
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
 
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
 
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
 
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
 
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
 
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
 
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
 
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
 
How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)
 

Último

How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?IES VE
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXTarek Kalaji
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsSafe Software
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7DianaGray10
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Brian Pichman
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
UiPath Studio Web workshop series - Day 5
UiPath Studio Web workshop series - Day 5UiPath Studio Web workshop series - Day 5
UiPath Studio Web workshop series - Day 5DianaGray10
 
UiPath Clipboard AI: "A TIME Magazine Best Invention of 2023 Unveiled"
UiPath Clipboard AI: "A TIME Magazine Best Invention of 2023 Unveiled"UiPath Clipboard AI: "A TIME Magazine Best Invention of 2023 Unveiled"
UiPath Clipboard AI: "A TIME Magazine Best Invention of 2023 Unveiled"DianaGray10
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UbiTrack UK
 
100+ ChatGPT Prompts for SEO Optimization
100+ ChatGPT Prompts for SEO Optimization100+ ChatGPT Prompts for SEO Optimization
100+ ChatGPT Prompts for SEO Optimizationarrow10202532yuvraj
 
99.99% of Your Traces Are (Probably) Trash (SRECon NA 2024).pdf
99.99% of Your Traces  Are (Probably) Trash (SRECon NA 2024).pdf99.99% of Your Traces  Are (Probably) Trash (SRECon NA 2024).pdf
99.99% of Your Traces Are (Probably) Trash (SRECon NA 2024).pdfPaige Cruz
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfJamie (Taka) Wang
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024D Cloud Solutions
 
Valere | Digital Solutions & AI Transformation Portfolio | 2024
Valere | Digital Solutions & AI Transformation Portfolio | 2024Valere | Digital Solutions & AI Transformation Portfolio | 2024
Valere | Digital Solutions & AI Transformation Portfolio | 2024Alexander Turgeon
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 

Último (20)

How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBX
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
UiPath Studio Web workshop series - Day 5
UiPath Studio Web workshop series - Day 5UiPath Studio Web workshop series - Day 5
UiPath Studio Web workshop series - Day 5
 
UiPath Clipboard AI: "A TIME Magazine Best Invention of 2023 Unveiled"
UiPath Clipboard AI: "A TIME Magazine Best Invention of 2023 Unveiled"UiPath Clipboard AI: "A TIME Magazine Best Invention of 2023 Unveiled"
UiPath Clipboard AI: "A TIME Magazine Best Invention of 2023 Unveiled"
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
 
100+ ChatGPT Prompts for SEO Optimization
100+ ChatGPT Prompts for SEO Optimization100+ ChatGPT Prompts for SEO Optimization
100+ ChatGPT Prompts for SEO Optimization
 
99.99% of Your Traces Are (Probably) Trash (SRECon NA 2024).pdf
99.99% of Your Traces  Are (Probably) Trash (SRECon NA 2024).pdf99.99% of Your Traces  Are (Probably) Trash (SRECon NA 2024).pdf
99.99% of Your Traces Are (Probably) Trash (SRECon NA 2024).pdf
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024
 
Valere | Digital Solutions & AI Transformation Portfolio | 2024
Valere | Digital Solutions & AI Transformation Portfolio | 2024Valere | Digital Solutions & AI Transformation Portfolio | 2024
Valere | Digital Solutions & AI Transformation Portfolio | 2024
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 

Platform O.N.E. - Deutsche Telekom’s OSGi based Application Platform for Third Party Enabling - Elmar Brauch & Christian Baranowski

  • 1. Platform O.N.E. Deutsche Telekom‘s OSGi based Application Platform for Third Party Enabling Elmar Brauch and Christian Baranowski Deutsche Telekom AG, Products & Innovation and SEITENBAU GmbH 20.09.2011 Page 1 COPYRIGHT © 2008-2011 OSGi Alliance. All Rights Reserved
  • 2. Welcome • Christian Baranowski • Software Quality Assurance @ Seitenbau GmbH Konstanz (DE) • Custom Software Solutions • E-Government Solutions • Identity Management and SSO Solutions • www.seitenbau.com Page 2 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 3. Agenda • Overview Platform O.N.E • Platform features • Architecture context • OSGi relevant architecture concepts • Design goals • Overview of platform architecture • Design of OSGi related core services (REST exporter, logging, ...) • Design of Platform modules • Bundle structure for a module (bundle structure blueprint) • Advantages of the module structure • Live demo • Summary Page 3 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 4. Welcome • Elmar Brauch • Technical Product Manager @ Deutsche Telekom, Products & Innovation • Study of computer science at university of Koblenz-Landau. • Worked as Software Engineer at Capgemini and United Internet Page 4 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 5. Overview Platform O.N.E What is the Platform O.N.E? Page 5 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 6. Overview • Platform O.N.E. is an OSGi based application platform. • Platform O.N.E. connects mobile apps or third party clients with internal services of Deutsche Telekom. • Internal services are exported as REST or SOAP services. • Developer Garden uses SMS module. • http://www.developergarden.com • Mediencenter uses DLS module. • http://medien-center.t-online.de Page 6 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 7. Architecture Context Devices TV Laptop/PC Edge P&I DLS Exp. Layer DLSi SMS … … … … … n Core Platform O.N.E. Service Layer SMS DLSn DLSi … Page 7 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 8. Idea • Platform O.N.E. offers features as services: • Authentication, authorization, • Security, billing(quota handling), logging • Features are implemented as components which provides the features as OSGi services. • Platform modules exporting backend services can easily use these features. Page 8 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 9. Motivation • Pros • Faster module development, because technical issues are solved in the platform. • Cheaper modules, because all features and services are reusable in other modules. • Save hardware, because different modules can use the same servers. Page 9 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 10. OSGi Relevant Architecture Concepts Page 10 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 11. Design Goals Design Goals Module Goals from Operational developers Other goals P3GW goals goals Dependency Easy No dependency management at Monitoring programming on OSGi in Runtime model Platform code Dependency Technical details Configuration injection instead should be management of inheritance hidden Packaging as Blueprints for Testability RPM module design P3GW = Predecessor of Platform O.N.E Page 11 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 12. Architecture Overview Page 12 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 13. OSGi Technologies HTTP Service Jetty SLF4J and Logback Eclipse Equinox Spring SOAP - Spring Axis Dynamic Modules JAX-RS – Jersey Page 13 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 14. Design of Platform O.N.E OSGi related core services Page 14 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 15. Logging and Log Service • The platform logger provides an abstraction layer for the actual logging implementation (Logback) • The logger will be accessed in a static way, not as OSGi service • Backend implementation (Logback) is pluggable • Logger works in other environments, e.g. Java SE for debugging unit tests • One platform exposure module is associated with one Logback instance • Design is inspired by the Pax logging project Page 15 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 16. Logging and Log Service Logger Client API Page 16 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 17. Logging and Log Service • 3rd party logging framework integration Page 17 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 18. Logging and Log Service Page 18 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 19. Logging and Log Service • Pros • Logger API for the client classes • Pluggable logging implementation (e.g. logger implementation can be changed at runtime) • Common log frameworks are integrated over SLF4 bridges • The OSGi log service is integrated • There is always a log, even when the log service is not active, e.g. at startup • One Logback (log) instance per exposure module • A log message is associated with request Page 19 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 20. Logging and Log Service • Cons • Performance overhead delegation the logging call through the abstraction layer to the log backend service implementation • Not OSGi Standard (but you could use the OSGi log service as backend log service) Page 20 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 21. Web Extender • SOAP and REST web services must be registered as servlets at the HTTP Service • The module implementation should not depend on the Servlet API or on the OSGi HTTP Service API • To this end the platform provides a platform specific extender which registers the servlets for the SOAP and REST modules • Design is motivated by Neil Bartlett - jaxrs-osgi- extender project Page 21 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 22. Web Extender Register a REST Web Service Page 22 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 23. Web Extender • Pros • The OSGi dependency on the HTTP Service and the BundleContext API is contained locally in a single class in the web extender • There are no OSGi dependencies in the modules • The web extender implements a proxy servlet for generic platform logic which should be invoked for each request, e.g. Token Handling • Modules do not depend on the JAX-RS Implementation, but only on the JAX-RS API Page 23 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 24. Web Extender • Cons • Implementation depends on the BundleContext API • Implementation using whiteboard pattern preferable • The BundleTracker API was not used in the implementation Page 24 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 25. Design Platform O.N.E. Modules Page 25 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 26. Design of exposure modules • Main task of Platform O.N.E. exposure modules: build an exposure layer for Commen Commen Commen Common Commen backend services. Rest Soap • apps are kept independent of backend changes. Core • Exposure modules have no business logic – BSP cheap and simple. • Features are added to modules by the platform. Page 26 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 27. Design of exposure modules • Each exposure module has a standard bundle structure: Commen Commen Commen Common Commen • BSP connection to backend Rest Soap • CORE adds platform features • COMMON functions required Core in all bundles • REST or SOAP connection to BSP clients Page 27 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 28. Design of extension modules • Extension modules can be imported by Platform O.N.E. Commen modules. Rest Soap Interface • Extension modules have business logic, they represent Core the Platform O.N.E. features. Implementation • Extension modules consist of BSP two bundle types: • Interface describes feature’s API. • Implementation implements the feature. Page 28 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 29. Example: DLS exposure modules • Digital Life Storage - Mediencenter • Two different systems • Target: Only one system to save costs • First step get rid of German App • Migration needs only new DLSn exposure module Page 29 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 30. Example: DLS exposure modules • Only new BSP bundle must be developed • DLSi and DLSn have same REST, CORE and COMMON bundles. • Minimal development costs - no App or Backend changes • App developement is focused Page 30 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 31. Platform O.N.E - Live Demo Page 31 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 32. Summary • OSGi benefits in the Platform O.N.E • Dependency management at runtime • OSGi provides a dynamic plugin framework out of the box • A platform exposure module can be used with different BSP bundles (Composition) • Dynamic component system, e.g. start and stop REST or SOAP endpoint at runtime • SOA at very low level • Sharing classes and logic between modules in form of OSGi services • … Page 32 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 33. Summary • OSGi disadvantages • Build process and build tools (Maven, …) • Integration of 3rd party frameworks and libraries can be difficult • Maven dependency management and OSGi do not always fit together • OSGi is simple in concept but not as easy to learn, classloader problems etc. • IDE and tooling (PDE, STS, BndTools …) • Dynamic approach brings more complexity to the system • Testing – In-container testing (Pax Exam, BND, …) Page 33 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 34. Summary • Lessons learned • Modularization does not come for free • XML libraries in Java are hell • Use Bundle Tracker OSGi util class to implement an extender pattern • In some cases a whiteboard pattern is a better solution than an extender pattern • … Page 34 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 35. Summary • Technology radar • JAX-WS and Apache CXF Implementation • Spring Version 3.0.0 • BNDTools as IDE • Web Bundles (WAR) - RFC66 • Apache Felix • Jersey Version 1.8 • Jetty 7 • Apache Karaf • Eclipse Virgo • … Page 35 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 36. Discussion and Q&A Page 36 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 37. References Ressources and Links • Richard S. Hall et al. - OSGi in Action • Pax Logging - http://team.ops4j.org/wiki/display/paxlogging/Pax+Logging • Ekke - Logging in OSGi Applications - http://ekkescorner.wordpress.com/blog-series/osgi-apps/ • Neil Bartlett - jaxrs-osgi-extender - https://github.com/njbartlett/jaxrs-osgi-extender • Spring Dynamic Modules - http://www.springsource.org/osgi • Gemini Blueprint - http://www.eclipse.org/gemini/blueprint/ • Jersey and OSGi - http://jersey.java.net/nonav/documentation/latest/osgi.html Page 37 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 38. Appendix Page 38 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 39. Logging and Log Service Page 39 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 40. Logging and Log Service
  • 41. Web Extender Page 41 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 42. Web Extender Page 42 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 43. Request Context Service • Idea from the Spring Framework where Spring Beans can be in the Request scope • There is one RequestContext which contains data that are associated with the actual request • The RequestContext instance is bound to the local thread • The Client obtains the RequestContext via the RequestContextService Page 43 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 44. Request Context Service Page 44 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 45. Request Context Service • Pros • Simple generic way to pass parameters through the request processing • Makes implemention of e.g. the Token Service simple: the Client does not have to know anything about the token and where it comes from Page 45 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved
  • 46. Request Context Service • Cons • Only works in an application where you have one thread per request Page 46 OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved