SlideShare a Scribd company logo
1 of 50
Download to read offline
OSGi &
                       Modularity

                              2011-06-23 IBM Montpellier

                              by Peter Kriens




dinsdag 28 juni 2011                                       1
dinsdag 28 juni 2011   2
dinsdag 28 juni 2011   2
dinsdag 28 juni 2011   2
Productivity




                       Application Complexity


dinsdag 28 juni 2011                            3
Productivity




                       Assembly




                       Application Complexity


dinsdag 28 juni 2011                            3
Productivity




                                   Structured
                                  Programming


                       Assembly




                       Application Complexity


dinsdag 28 juni 2011                            3
Productivity




                                   Structured   Object Oriented Programming
                                  Programming


                       Assembly




                       Application Complexity


dinsdag 28 juni 2011                                                          3
Productivity




                                  Service Oriented Programming?



                                   Structured   Object Oriented Programming
                                  Programming


                       Assembly




                       Application Complexity


dinsdag 28 juni 2011                                                          3
dinsdag 28 juni 2011   4
Application




dinsdag 28 juni 2011                 4
Extensions

                                      Application

                                    Application
                                              Convenience
                       Foundation     Basic         Something
                                                    Core
                                          Java VM




dinsdag 28 juni 2011                                            4
minilang      party        pos.           product         workeffort     workflow           …

                       accounting   assetmaint   content   Extensionsbi              ebay        ecommerce     googlebase

                        guiapp      hhfacility   manufact.       marketing          minerva         oagis         order



                                                           Application
                                                              Application layer

                        common       catalina      base           datafile           entity        widget           …




                                                 Application
                                                           Convenience
                        resolver      rome       serializer       servlets          tomcat          xalan          bsf

                          mail        mx4j        naming            jetty             poi          wsdl4j          bsh


                       Foundation                         Basic                               Something
                         jenks        jpos18      jython           looks            lucene         xerces        velocity

                        jakarta         jcl        json            jdbm              jdom         xmlapis      ws-commons


                                                                                            Core                Libs
                         log4j      barcode4j      axis            batik           commons         xmlrpc       geronimo

                        httpunit    freemarker   ezmorph            fop              derby       xmlgraphics        ..

                                                                  Java VM
                                                                  Java VM
                           rt          jce         jsse            plugin         sunjce_prov.     dnsns            ..




dinsdag 28 juni 2011                                                                                                        4
minilang      party        pos.           product         workeffort     workflow           …

                       accounting   assetmaint   content   Extensionsbi              ebay        ecommerce     googlebase

                        guiapp      hhfacility   manufact.       marketing          minerva         oagis         order



                                                           Application
                                                              Application layer

                        common       catalina      base           datafile           entity        widget           …




                                                 Application
                                                           Convenience
                        resolver      rome       serializer       servlets          tomcat          xalan          bsf

                          mail        mx4j        naming            jetty             poi          wsdl4j          bsh


                       Foundation                         Basic                               Something
                         jenks        jpos18      jython           looks            lucene         xerces        velocity

                        jakarta         jcl        json            jdbm              jdom         xmlapis      ws-commons


                                                                                            Core                Libs
                         log4j      barcode4j      axis            batik           commons         xmlrpc       geronimo

                        httpunit    freemarker   ezmorph            fop              derby       xmlgraphics        ..

                                                                  Java VM
                                                                  Java VM
                           rt          jce         jsse            plugin         sunjce_prov.     dnsns            ..




dinsdag 28 juni 2011                                                                                                        4
Java VM         party      common       resolver      axis        xerces

 Begin                      rt        assetmaint     catalina      mail      ezmorph       xmlapis

                           jce         hhfacility     base        jenks       servlets     xmlrpc
 Here                      jsse          pos.        datafile     jakarta      jetty     xmlgraphics

                          plugin       content        entity      log4j        looks

                       sunjce_prov.   manufact.      widget      httpunit      jdbm

                          dnsns        product          …          mx4j         bsf

                            ..            bi          rome        batik         bsh

                        marketing      workflow      jpos18        fop        velocity

                        workeffort    ecommerce        jcl        tomcat    ws-commons

                          ebay           oagis      barcode4j      poi       geronimo

                         minerva          …         freemarker    lucene         ..

                        minilang      googlebase    serializer    jdom         json

                       accounting        order       naming      commons       xalan

                         guiapp          ofbiz        jython      derby       wsdl4j




dinsdag 28 juni 2011                                                                                   5
Java VM         party      common       resolver      axis         xerces

 Begin                      rt        assetmaint     catalina      mail      ezmorph        xmlapis

                           jce         hhfacility     base        jenks       servlets      xmlrpc
 Here                      jsse          pos.        datafile     jakarta      jetty      xmlgraphics

                          plugin       content        entity      log4j        looks

                       sunjce_prov.   manufact.      widget      httpunit      jdbm

                          dnsns        product          …          mx4j         bsf

                            ..            bi          rome        batik         bsh
                                                                                           Class
                        marketing      workflow      jpos18        fop        velocity
                                                                                            Not
                        workeffort    ecommerce        jcl        tomcat    ws-commons
                                                                                          Found
                          ebay           oagis      barcode4j      poi       geronimo
                                                                                         Exception
                         minerva          …         freemarker    lucene         ..

                        minilang      googlebase    serializer    jdom         json

                       accounting        order       naming      commons       xalan

                         guiapp          ofbiz        jython      derby       wsdl4j




dinsdag 28 juni 2011                                                                                    5
dinsdag 28 juni 2011   6
dinsdag 28 juni 2011   7
dinsdag 28 juni 2011   8
dinsdag 28 juni 2011   8
dinsdag 28 juni 2011   9
low coupling,



dinsdag 28 juni 2011                   9
low coupling,
                   high cohesion &


dinsdag 28 juni 2011                 9
low coupling,
                   high cohesion &
                    encapsulation
dinsdag 28 juni 2011                 9
dinsdag 28 juni 2011   10
Applications                   S
                  (bundles)                     E
                                     Service
                                                C
                                                U
                                   Life Cycle
                                                R
                                                I
                                     Module     T
                                                Y
                       Execution Environment

                                    OS + Hardware
dinsdag 28 juni 2011                                11
Code

                       protected boolean report(Reporter reporter) {
                            if (reporter.getWarnings().size() > 0) {
                                System.err.println("Warnings");
                                for (Iterator<String> e = reporter.
                                 getWarnings().iterator(); e.hasNext();) {
                                    System.err.println(" " + e.next());
                                }
                            }
                            return false;
                        }




dinsdag 28 juni 2011                                                         12
Functions

                       protected boolean report(Reporter reporter) {
                            if (reporter.getWarnings().size() > 0) {
                                System.err.println("Warnings");
                                for (Iterator<String> e = reporter.
                                 getWarnings().iterator(); e.hasNext();) {
                                    System.err.println(" " + e.next());
                                }
                            }
                            return false;
                        }




dinsdag 28 juni 2011                                                         13
Classes

                       protected boolean report(Reporter reporter) {
                            if (reporter.getWarnings().size() > 0) {
                                System.err.println("Warnings");
                                for (Iterator<String> e = reporter.
                                 getWarnings().iterator(); e.hasNext();) {
                                    System.err.println(" " + e.next());
                                }
                            }
                            return false;
                        }




dinsdag 28 juni 2011                                                         14
Classes
                                                     Class D
                       Class C

                                                 Class B

                                 Class A




dinsdag 28 juni 2011                                           14
Packages
                                                     Class D
                       Class C

                                                 Class B

                                 Class A




dinsdag 28 juni 2011                                           15
Packages

                                       Class D
                       Class C




dinsdag 28 juni 2011                             15
Bundles
                       Bundle A         Bundle B




                                            p

                        q-1.4
                       Bundle A




                                            .




dinsdag 28 juni 2011                               16
Bundles
                       Bundle A                 Bundle B




                           p                      p

                        q-1.4                 q-[1.2,1.8)
                       Bundle A
                           r                       r




                                                       .

                        import      private     export




dinsdag 28 juni 2011                                        17
Bundles
                       Bundle A                  Bundle B




                                    imports
                           p                       p

                        q-1.4                  q-[1.2,1.8)
                       Bundle A
                           r                        r




                                                        .

                        import       private     export




dinsdag 28 juni 2011                                         17
Bundles
                       Bundle A                  Bundle B




                                    imports
                           p                       p

                        q-1.4       exports    q-[1.2,1.8)
                       Bundle A
                           r                        r




                                                        .

                        import       private     export




dinsdag 28 juni 2011                                         17
MANAGE-
                                         System
                                                            MENT
                                         bundle
                                                           BUNDLE




                       Bundle
                        X-v2
                         X




                                                  Bundle
                                Bundle              B
                                  A




dinsdag 28 juni 2011                                                 18
Services

                                       interface Foo {
                                          void foo();
                                       }
                       void foo() {                      …
                       …                                 s.foo()
                       }                                 …




dinsdag 28 juni 2011                                               19
dinsdag 28 juni 2011   20
dinsdag 28 juni 2011   20
dinsdag 28 juni 2011   20
dinsdag 28 juni 2011   21
dinsdag 28 juni 2011   21
bundle
                                     A-1.2




                                c                b




                                                     bundle
                                                      C-1.0
                       bundle                a
                        B-4.1




dinsdag 28 juni 2011                                          21
dinsdag 28 juni 2011   22
dinsdag 28 juni 2011   22
The Component
             Framework
dinsdag 28 juni 2011       22
dinsdag 28 juni 2011   23
Q&A
dinsdag 28 juni 2011         24
Thanks!

dinsdag 28 juni 2011             25

More Related Content

What's hot

Interoperability With RabbitMq
Interoperability With RabbitMqInteroperability With RabbitMq
Interoperability With RabbitMqAlvaro Videla
 
Overview of JPA (Java Persistence API) v2.0
Overview of JPA (Java Persistence API) v2.0Overview of JPA (Java Persistence API) v2.0
Overview of JPA (Java Persistence API) v2.0Bryan Basham
 
From Distributed to Pervasive OSGi
From Distributed to Pervasive OSGiFrom Distributed to Pervasive OSGi
From Distributed to Pervasive OSGiJan S. Rellermeyer
 
Distributed Services - OSGi 4.2 and possible future enhancements
Distributed Services - OSGi 4.2 and possible future enhancementsDistributed Services - OSGi 4.2 and possible future enhancements
Distributed Services - OSGi 4.2 and possible future enhancementsDavid Bosschaert
 
Java interview-questions-and-answers
Java interview-questions-and-answersJava interview-questions-and-answers
Java interview-questions-and-answersbestonlinetrainers
 
Java 7 Dolphin manjula kollipara
Java 7 Dolphin manjula kolliparaJava 7 Dolphin manjula kollipara
Java 7 Dolphin manjula kolliparaManjula Kollipara
 
Java questions with answers
Java questions with answersJava questions with answers
Java questions with answersKuntal Bhowmick
 

What's hot (7)

Interoperability With RabbitMq
Interoperability With RabbitMqInteroperability With RabbitMq
Interoperability With RabbitMq
 
Overview of JPA (Java Persistence API) v2.0
Overview of JPA (Java Persistence API) v2.0Overview of JPA (Java Persistence API) v2.0
Overview of JPA (Java Persistence API) v2.0
 
From Distributed to Pervasive OSGi
From Distributed to Pervasive OSGiFrom Distributed to Pervasive OSGi
From Distributed to Pervasive OSGi
 
Distributed Services - OSGi 4.2 and possible future enhancements
Distributed Services - OSGi 4.2 and possible future enhancementsDistributed Services - OSGi 4.2 and possible future enhancements
Distributed Services - OSGi 4.2 and possible future enhancements
 
Java interview-questions-and-answers
Java interview-questions-and-answersJava interview-questions-and-answers
Java interview-questions-and-answers
 
Java 7 Dolphin manjula kollipara
Java 7 Dolphin manjula kolliparaJava 7 Dolphin manjula kollipara
Java 7 Dolphin manjula kollipara
 
Java questions with answers
Java questions with answersJava questions with answers
Java questions with answers
 

Viewers also liked

Application Developer Days 2011 - Teamlead - Писать плагины проще простого!
Application Developer Days 2011 - Teamlead - Писать плагины проще простого!Application Developer Days 2011 - Teamlead - Писать плагины проще простого!
Application Developer Days 2011 - Teamlead - Писать плагины проще простого!Teamlead
 
Prologue 2012 SDF
Prologue   2012 SDFPrologue   2012 SDF
Prologue 2012 SDFSoko Guree
 
Concierge - Bringing OSGi (back) to Embedded Devices
Concierge - Bringing OSGi (back) to Embedded DevicesConcierge - Bringing OSGi (back) to Embedded Devices
Concierge - Bringing OSGi (back) to Embedded DevicesJan S. Rellermeyer
 
Introduction into OSGi
Introduction into OSGiIntroduction into OSGi
Introduction into OSGiPeter Kriens
 
Системы работы с информацией . Инструменты? Протезы? Тренажеры? Компьютерные ...
Системы работы с информацией. Инструменты? Протезы? Тренажеры? Компьютерные ...Системы работы с информацией. Инструменты? Протезы? Тренажеры? Компьютерные ...
Системы работы с информацией . Инструменты? Протезы? Тренажеры? Компьютерные ...aivanoff
 
Компонентная среда разработки инструментария нагрузочного тестирования
Компонентная среда разработки инструментария нагрузочного тестированияКомпонентная среда разработки инструментария нагрузочного тестирования
Компонентная среда разработки инструментария нагрузочного тестированияSQALab
 
Liferay & Big Data Dev Con 2014
Liferay & Big Data Dev Con 2014Liferay & Big Data Dev Con 2014
Liferay & Big Data Dev Con 2014Miguel Pastor
 
Field injection, type safe configuration, and more new goodies in Declarative...
Field injection, type safe configuration, and more new goodies in Declarative...Field injection, type safe configuration, and more new goodies in Declarative...
Field injection, type safe configuration, and more new goodies in Declarative...bjhargrave
 
How to manage software complexity with OSGi
How to manage software complexity with OSGiHow to manage software complexity with OSGi
How to manage software complexity with OSGiPeter Kriens
 
Dynamically assembled REST Microservices using JAX-RS and... Microservices? -...
Dynamically assembled REST Microservices using JAX-RS and... Microservices? -...Dynamically assembled REST Microservices using JAX-RS and... Microservices? -...
Dynamically assembled REST Microservices using JAX-RS and... Microservices? -...mfrancis
 
OSGi toolchain from the ground up - Matteo Rulli
OSGi toolchain from the ground up - Matteo RulliOSGi toolchain from the ground up - Matteo Rulli
OSGi toolchain from the ground up - Matteo Rullimfrancis
 
Moved to https://slidr.io/azzazzel/software-craftsmanship-in-the-era-of-softw...
Moved to https://slidr.io/azzazzel/software-craftsmanship-in-the-era-of-softw...Moved to https://slidr.io/azzazzel/software-craftsmanship-in-the-era-of-softw...
Moved to https://slidr.io/azzazzel/software-craftsmanship-in-the-era-of-softw...Milen Dyankov
 
Eclipse + Maven + OSGi has never been so easy - Atllia Kiss
Eclipse + Maven + OSGi has never been so easy - Atllia KissEclipse + Maven + OSGi has never been so easy - Atllia Kiss
Eclipse + Maven + OSGi has never been so easy - Atllia Kissmfrancis
 
WebSockets and Equinox OSGi in a Servlet Container - Nedelcho Delchev
WebSockets and Equinox OSGi in a Servlet Container - Nedelcho DelchevWebSockets and Equinox OSGi in a Servlet Container - Nedelcho Delchev
WebSockets and Equinox OSGi in a Servlet Container - Nedelcho Delchevmfrancis
 
It's beautiful enRoute - Paul Fraser
It's beautiful enRoute - Paul FraserIt's beautiful enRoute - Paul Fraser
It's beautiful enRoute - Paul Frasermfrancis
 
Microservices and OSGi: Better together?
Microservices and OSGi: Better together?Microservices and OSGi: Better together?
Microservices and OSGi: Better together?Graham Charters
 
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...mfrancis
 
Use Case: Building OSGi Enterprise Applications (QCon 14)
Use Case: Building OSGi Enterprise Applications (QCon 14)Use Case: Building OSGi Enterprise Applications (QCon 14)
Use Case: Building OSGi Enterprise Applications (QCon 14)Carsten Ziegeler
 
Евгений Бова: "Modularity in Java: introduction to Jigsaw through the prism o...
Евгений Бова: "Modularity in Java: introduction to Jigsaw through the prism o...Евгений Бова: "Modularity in Java: introduction to Jigsaw through the prism o...
Евгений Бова: "Modularity in Java: introduction to Jigsaw through the prism o...Anna Shymchenko
 
Moved to https://slidr.io/azzazzel/osgi-for-outsiders
Moved to https://slidr.io/azzazzel/osgi-for-outsidersMoved to https://slidr.io/azzazzel/osgi-for-outsiders
Moved to https://slidr.io/azzazzel/osgi-for-outsidersMilen Dyankov
 

Viewers also liked (20)

Application Developer Days 2011 - Teamlead - Писать плагины проще простого!
Application Developer Days 2011 - Teamlead - Писать плагины проще простого!Application Developer Days 2011 - Teamlead - Писать плагины проще простого!
Application Developer Days 2011 - Teamlead - Писать плагины проще простого!
 
Prologue 2012 SDF
Prologue   2012 SDFPrologue   2012 SDF
Prologue 2012 SDF
 
Concierge - Bringing OSGi (back) to Embedded Devices
Concierge - Bringing OSGi (back) to Embedded DevicesConcierge - Bringing OSGi (back) to Embedded Devices
Concierge - Bringing OSGi (back) to Embedded Devices
 
Introduction into OSGi
Introduction into OSGiIntroduction into OSGi
Introduction into OSGi
 
Системы работы с информацией . Инструменты? Протезы? Тренажеры? Компьютерные ...
Системы работы с информацией. Инструменты? Протезы? Тренажеры? Компьютерные ...Системы работы с информацией. Инструменты? Протезы? Тренажеры? Компьютерные ...
Системы работы с информацией . Инструменты? Протезы? Тренажеры? Компьютерные ...
 
Компонентная среда разработки инструментария нагрузочного тестирования
Компонентная среда разработки инструментария нагрузочного тестированияКомпонентная среда разработки инструментария нагрузочного тестирования
Компонентная среда разработки инструментария нагрузочного тестирования
 
Liferay & Big Data Dev Con 2014
Liferay & Big Data Dev Con 2014Liferay & Big Data Dev Con 2014
Liferay & Big Data Dev Con 2014
 
Field injection, type safe configuration, and more new goodies in Declarative...
Field injection, type safe configuration, and more new goodies in Declarative...Field injection, type safe configuration, and more new goodies in Declarative...
Field injection, type safe configuration, and more new goodies in Declarative...
 
How to manage software complexity with OSGi
How to manage software complexity with OSGiHow to manage software complexity with OSGi
How to manage software complexity with OSGi
 
Dynamically assembled REST Microservices using JAX-RS and... Microservices? -...
Dynamically assembled REST Microservices using JAX-RS and... Microservices? -...Dynamically assembled REST Microservices using JAX-RS and... Microservices? -...
Dynamically assembled REST Microservices using JAX-RS and... Microservices? -...
 
OSGi toolchain from the ground up - Matteo Rulli
OSGi toolchain from the ground up - Matteo RulliOSGi toolchain from the ground up - Matteo Rulli
OSGi toolchain from the ground up - Matteo Rulli
 
Moved to https://slidr.io/azzazzel/software-craftsmanship-in-the-era-of-softw...
Moved to https://slidr.io/azzazzel/software-craftsmanship-in-the-era-of-softw...Moved to https://slidr.io/azzazzel/software-craftsmanship-in-the-era-of-softw...
Moved to https://slidr.io/azzazzel/software-craftsmanship-in-the-era-of-softw...
 
Eclipse + Maven + OSGi has never been so easy - Atllia Kiss
Eclipse + Maven + OSGi has never been so easy - Atllia KissEclipse + Maven + OSGi has never been so easy - Atllia Kiss
Eclipse + Maven + OSGi has never been so easy - Atllia Kiss
 
WebSockets and Equinox OSGi in a Servlet Container - Nedelcho Delchev
WebSockets and Equinox OSGi in a Servlet Container - Nedelcho DelchevWebSockets and Equinox OSGi in a Servlet Container - Nedelcho Delchev
WebSockets and Equinox OSGi in a Servlet Container - Nedelcho Delchev
 
It's beautiful enRoute - Paul Fraser
It's beautiful enRoute - Paul FraserIt's beautiful enRoute - Paul Fraser
It's beautiful enRoute - Paul Fraser
 
Microservices and OSGi: Better together?
Microservices and OSGi: Better together?Microservices and OSGi: Better together?
Microservices and OSGi: Better together?
 
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
 
Use Case: Building OSGi Enterprise Applications (QCon 14)
Use Case: Building OSGi Enterprise Applications (QCon 14)Use Case: Building OSGi Enterprise Applications (QCon 14)
Use Case: Building OSGi Enterprise Applications (QCon 14)
 
Евгений Бова: "Modularity in Java: introduction to Jigsaw through the prism o...
Евгений Бова: "Modularity in Java: introduction to Jigsaw through the prism o...Евгений Бова: "Modularity in Java: introduction to Jigsaw through the prism o...
Евгений Бова: "Modularity in Java: introduction to Jigsaw through the prism o...
 
Moved to https://slidr.io/azzazzel/osgi-for-outsiders
Moved to https://slidr.io/azzazzel/osgi-for-outsidersMoved to https://slidr.io/azzazzel/osgi-for-outsiders
Moved to https://slidr.io/azzazzel/osgi-for-outsiders
 

Similar to Modularity with OSGi

OSGi Service Platform 4.2
OSGi Service Platform 4.2OSGi Service Platform 4.2
OSGi Service Platform 4.2Ilya Katsov
 
An introduction to OSGi
An introduction to OSGi An introduction to OSGi
An introduction to OSGi Andrea Chiodoni
 
Florian adler minute project
Florian adler   minute projectFlorian adler   minute project
Florian adler minute projectDmitry Buzdin
 
Entity Framework Today (May 2012)
Entity Framework Today (May 2012)Entity Framework Today (May 2012)
Entity Framework Today (May 2012)Julie Lerman
 
Workshop OSGI PPT
Workshop OSGI PPTWorkshop OSGI PPT
Workshop OSGI PPTSummer Lu
 
XEO Framework - TDose 2011
XEO Framework - TDose 2011XEO Framework - TDose 2011
XEO Framework - TDose 2011Pedro
 
Ese2008 Swordfish
Ese2008 SwordfishEse2008 Swordfish
Ese2008 Swordfishwwtyler
 
SnapLogic corporate presentation
SnapLogic corporate presentationSnapLogic corporate presentation
SnapLogic corporate presentationpbridges
 
What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009Stefane Fermigier
 
Java EE Technical Keynote - JavaOne India 2011
Java EE Technical Keynote - JavaOne India 2011Java EE Technical Keynote - JavaOne India 2011
Java EE Technical Keynote - JavaOne India 2011Arun Gupta
 
Windows Phone and Open Source 1
Windows Phone and Open Source 1Windows Phone and Open Source 1
Windows Phone and Open Source 1Igor Ralic
 
Grameen Solutions Technology Skills
Grameen Solutions   Technology SkillsGrameen Solutions   Technology Skills
Grameen Solutions Technology SkillsGrameen Solutions
 
Live Integration Framework
Live Integration FrameworkLive Integration Framework
Live Integration Frameworktmra
 
Nuxeo Summer Seminar 2007 - Nuxeo Platform 5.1 (EN)
Nuxeo  Summer Seminar 2007 -  Nuxeo Platform 5.1 (EN)Nuxeo  Summer Seminar 2007 -  Nuxeo Platform 5.1 (EN)
Nuxeo Summer Seminar 2007 - Nuxeo Platform 5.1 (EN)Stefane Fermigier
 
03.egovFrame Runtime Environment Training Book
03.egovFrame Runtime Environment Training Book03.egovFrame Runtime Environment Training Book
03.egovFrame Runtime Environment Training BookChuong Nguyen
 
Visual Studio 2010 IDE Enhancements - Alex Mackey, Readify
Visual Studio 2010 IDE Enhancements - Alex Mackey, ReadifyVisual Studio 2010 IDE Enhancements - Alex Mackey, Readify
Visual Studio 2010 IDE Enhancements - Alex Mackey, ReadifyREADIFY
 
Overview Of .Net 4.0 Sanjay Vyas
Overview Of .Net 4.0   Sanjay VyasOverview Of .Net 4.0   Sanjay Vyas
Overview Of .Net 4.0 Sanjay Vyasrsnarayanan
 
Leadership Symposium on Digital Media in Healthcare
Leadership Symposium on Digital Media in HealthcareLeadership Symposium on Digital Media in Healthcare
Leadership Symposium on Digital Media in Healthcaresetstanford
 

Similar to Modularity with OSGi (20)

OSGi Service Platform 4.2
OSGi Service Platform 4.2OSGi Service Platform 4.2
OSGi Service Platform 4.2
 
An introduction to OSGi
An introduction to OSGi An introduction to OSGi
An introduction to OSGi
 
Florian adler minute project
Florian adler   minute projectFlorian adler   minute project
Florian adler minute project
 
What's New in GWT 2.2
What's New in GWT 2.2What's New in GWT 2.2
What's New in GWT 2.2
 
Entity Framework Today (May 2012)
Entity Framework Today (May 2012)Entity Framework Today (May 2012)
Entity Framework Today (May 2012)
 
Anarchist guide to titanium ui
Anarchist guide to titanium uiAnarchist guide to titanium ui
Anarchist guide to titanium ui
 
Workshop OSGI PPT
Workshop OSGI PPTWorkshop OSGI PPT
Workshop OSGI PPT
 
XEO Framework - TDose 2011
XEO Framework - TDose 2011XEO Framework - TDose 2011
XEO Framework - TDose 2011
 
Ese2008 Swordfish
Ese2008 SwordfishEse2008 Swordfish
Ese2008 Swordfish
 
SnapLogic corporate presentation
SnapLogic corporate presentationSnapLogic corporate presentation
SnapLogic corporate presentation
 
What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009
 
Java EE Technical Keynote - JavaOne India 2011
Java EE Technical Keynote - JavaOne India 2011Java EE Technical Keynote - JavaOne India 2011
Java EE Technical Keynote - JavaOne India 2011
 
Windows Phone and Open Source 1
Windows Phone and Open Source 1Windows Phone and Open Source 1
Windows Phone and Open Source 1
 
Grameen Solutions Technology Skills
Grameen Solutions   Technology SkillsGrameen Solutions   Technology Skills
Grameen Solutions Technology Skills
 
Live Integration Framework
Live Integration FrameworkLive Integration Framework
Live Integration Framework
 
Nuxeo Summer Seminar 2007 - Nuxeo Platform 5.1 (EN)
Nuxeo  Summer Seminar 2007 -  Nuxeo Platform 5.1 (EN)Nuxeo  Summer Seminar 2007 -  Nuxeo Platform 5.1 (EN)
Nuxeo Summer Seminar 2007 - Nuxeo Platform 5.1 (EN)
 
03.egovFrame Runtime Environment Training Book
03.egovFrame Runtime Environment Training Book03.egovFrame Runtime Environment Training Book
03.egovFrame Runtime Environment Training Book
 
Visual Studio 2010 IDE Enhancements - Alex Mackey, Readify
Visual Studio 2010 IDE Enhancements - Alex Mackey, ReadifyVisual Studio 2010 IDE Enhancements - Alex Mackey, Readify
Visual Studio 2010 IDE Enhancements - Alex Mackey, Readify
 
Overview Of .Net 4.0 Sanjay Vyas
Overview Of .Net 4.0   Sanjay VyasOverview Of .Net 4.0   Sanjay Vyas
Overview Of .Net 4.0 Sanjay Vyas
 
Leadership Symposium on Digital Media in Healthcare
Leadership Symposium on Digital Media in HealthcareLeadership Symposium on Digital Media in Healthcare
Leadership Symposium on Digital Media in Healthcare
 

Recently uploaded

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
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
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
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
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
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 

Recently uploaded (20)

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
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
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
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
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
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 

Modularity with OSGi

  • 1. OSGi & Modularity 2011-06-23 IBM Montpellier by Peter Kriens dinsdag 28 juni 2011 1
  • 5. Productivity Application Complexity dinsdag 28 juni 2011 3
  • 6. Productivity Assembly Application Complexity dinsdag 28 juni 2011 3
  • 7. Productivity Structured Programming Assembly Application Complexity dinsdag 28 juni 2011 3
  • 8. Productivity Structured Object Oriented Programming Programming Assembly Application Complexity dinsdag 28 juni 2011 3
  • 9. Productivity Service Oriented Programming? Structured Object Oriented Programming Programming Assembly Application Complexity dinsdag 28 juni 2011 3
  • 10. dinsdag 28 juni 2011 4
  • 12. Extensions Application Application Convenience Foundation Basic Something Core Java VM dinsdag 28 juni 2011 4
  • 13. minilang party pos. product workeffort workflow … accounting assetmaint content Extensionsbi ebay ecommerce googlebase guiapp hhfacility manufact. marketing minerva oagis order Application Application layer common catalina base datafile entity widget … Application Convenience resolver rome serializer servlets tomcat xalan bsf mail mx4j naming jetty poi wsdl4j bsh Foundation Basic Something jenks jpos18 jython looks lucene xerces velocity jakarta jcl json jdbm jdom xmlapis ws-commons Core Libs log4j barcode4j axis batik commons xmlrpc geronimo httpunit freemarker ezmorph fop derby xmlgraphics .. Java VM Java VM rt jce jsse plugin sunjce_prov. dnsns .. dinsdag 28 juni 2011 4
  • 14. minilang party pos. product workeffort workflow … accounting assetmaint content Extensionsbi ebay ecommerce googlebase guiapp hhfacility manufact. marketing minerva oagis order Application Application layer common catalina base datafile entity widget … Application Convenience resolver rome serializer servlets tomcat xalan bsf mail mx4j naming jetty poi wsdl4j bsh Foundation Basic Something jenks jpos18 jython looks lucene xerces velocity jakarta jcl json jdbm jdom xmlapis ws-commons Core Libs log4j barcode4j axis batik commons xmlrpc geronimo httpunit freemarker ezmorph fop derby xmlgraphics .. Java VM Java VM rt jce jsse plugin sunjce_prov. dnsns .. dinsdag 28 juni 2011 4
  • 15. Java VM party common resolver axis xerces Begin rt assetmaint catalina mail ezmorph xmlapis jce hhfacility base jenks servlets xmlrpc Here jsse pos. datafile jakarta jetty xmlgraphics plugin content entity log4j looks sunjce_prov. manufact. widget httpunit jdbm dnsns product … mx4j bsf .. bi rome batik bsh marketing workflow jpos18 fop velocity workeffort ecommerce jcl tomcat ws-commons ebay oagis barcode4j poi geronimo minerva … freemarker lucene .. minilang googlebase serializer jdom json accounting order naming commons xalan guiapp ofbiz jython derby wsdl4j dinsdag 28 juni 2011 5
  • 16. Java VM party common resolver axis xerces Begin rt assetmaint catalina mail ezmorph xmlapis jce hhfacility base jenks servlets xmlrpc Here jsse pos. datafile jakarta jetty xmlgraphics plugin content entity log4j looks sunjce_prov. manufact. widget httpunit jdbm dnsns product … mx4j bsf .. bi rome batik bsh Class marketing workflow jpos18 fop velocity Not workeffort ecommerce jcl tomcat ws-commons Found ebay oagis barcode4j poi geronimo Exception minerva … freemarker lucene .. minilang googlebase serializer jdom json accounting order naming commons xalan guiapp ofbiz jython derby wsdl4j dinsdag 28 juni 2011 5
  • 17. dinsdag 28 juni 2011 6
  • 18. dinsdag 28 juni 2011 7
  • 19. dinsdag 28 juni 2011 8
  • 20. dinsdag 28 juni 2011 8
  • 21. dinsdag 28 juni 2011 9
  • 23. low coupling, high cohesion & dinsdag 28 juni 2011 9
  • 24. low coupling, high cohesion & encapsulation dinsdag 28 juni 2011 9
  • 25. dinsdag 28 juni 2011 10
  • 26. Applications S (bundles) E Service C U Life Cycle R I Module T Y Execution Environment OS + Hardware dinsdag 28 juni 2011 11
  • 27. Code protected boolean report(Reporter reporter) { if (reporter.getWarnings().size() > 0) { System.err.println("Warnings"); for (Iterator<String> e = reporter. getWarnings().iterator(); e.hasNext();) { System.err.println(" " + e.next()); } } return false; } dinsdag 28 juni 2011 12
  • 28. Functions protected boolean report(Reporter reporter) { if (reporter.getWarnings().size() > 0) { System.err.println("Warnings"); for (Iterator<String> e = reporter. getWarnings().iterator(); e.hasNext();) { System.err.println(" " + e.next()); } } return false; } dinsdag 28 juni 2011 13
  • 29. Classes protected boolean report(Reporter reporter) { if (reporter.getWarnings().size() > 0) { System.err.println("Warnings"); for (Iterator<String> e = reporter. getWarnings().iterator(); e.hasNext();) { System.err.println(" " + e.next()); } } return false; } dinsdag 28 juni 2011 14
  • 30. Classes Class D Class C Class B Class A dinsdag 28 juni 2011 14
  • 31. Packages Class D Class C Class B Class A dinsdag 28 juni 2011 15
  • 32. Packages Class D Class C dinsdag 28 juni 2011 15
  • 33. Bundles Bundle A Bundle B p q-1.4 Bundle A . dinsdag 28 juni 2011 16
  • 34. Bundles Bundle A Bundle B p p q-1.4 q-[1.2,1.8) Bundle A r r . import private export dinsdag 28 juni 2011 17
  • 35. Bundles Bundle A Bundle B imports p p q-1.4 q-[1.2,1.8) Bundle A r r . import private export dinsdag 28 juni 2011 17
  • 36. Bundles Bundle A Bundle B imports p p q-1.4 exports q-[1.2,1.8) Bundle A r r . import private export dinsdag 28 juni 2011 17
  • 37. MANAGE- System MENT bundle BUNDLE Bundle X-v2 X Bundle Bundle B A dinsdag 28 juni 2011 18
  • 38. Services interface Foo { void foo(); } void foo() { … … s.foo() } … dinsdag 28 juni 2011 19
  • 39. dinsdag 28 juni 2011 20
  • 40. dinsdag 28 juni 2011 20
  • 41. dinsdag 28 juni 2011 20
  • 42. dinsdag 28 juni 2011 21
  • 43. dinsdag 28 juni 2011 21
  • 44. bundle A-1.2 c b bundle C-1.0 bundle a B-4.1 dinsdag 28 juni 2011 21
  • 45. dinsdag 28 juni 2011 22
  • 46. dinsdag 28 juni 2011 22
  • 47. The Component Framework dinsdag 28 juni 2011 22
  • 48. dinsdag 28 juni 2011 23