SlideShare una empresa de Scribd logo
1 de 127
Descargar para leer sin conexión
OSGi &
                         Java Modularity

                                Jazoon 2009, Zürich

                                by Peter Kriens




donderdag 25 juni 2009
donderdag 25 juni 2009
donderdag 25 juni 2009
donderdag 25 juni 2009
Productivity




                         Application Complexity


donderdag 25 juni 2009
Productivity




                         Assembly




                         Application Complexity


donderdag 25 juni 2009
Productivity




                                     Structured
                                    Programming


                         Assembly




                         Application Complexity


donderdag 25 juni 2009
Productivity




                                     Structured   Object Oriented Programming
                                    Programming


                         Assembly




                         Application Complexity


donderdag 25 juni 2009
Productivity




                                    Service Oriented Programming?



                                     Structured   Object Oriented Programming
                                    Programming


                         Assembly




                         Application Complexity


donderdag 25 juni 2009
donderdag 25 juni 2009
Application




donderdag 25 juni 2009
Extensions

                                        Application

                                      Application
                                                Convenience
                         Foundation     Basic         Something
                                                      Core
                                            Java VM




donderdag 25 juni 2009
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
                           log4j      barcode4j      axis            batik           commons         xmlrpc       geronimo

                          httpunit    freemarker   ezmorph            fop              derby       xmlgraphics
                                                                                                                  Libs..

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




donderdag 25 juni 2009
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
                           log4j      barcode4j      axis            batik           commons         xmlrpc       geronimo

                          httpunit    freemarker   ezmorph            fop              derby       xmlgraphics
                                                                                                                  Libs..

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




donderdag 25 juni 2009
by Damoiselle de Pique
donderdag 25 juni 2009
Was Pollock
                         an Early OO
                         Programmer?

                                       by Damoiselle de Pique
donderdag 25 juni 2009
donderdag 25 juni 2009
modularity

donderdag 25 juni 2009
donderdag 25 juni 2009
donderdag 25 juni 2009
donderdag 25 juni 2009
donderdag 25 juni 2009
donderdag 25 juni 2009
low coupling,



donderdag 25 juni 2009
low coupling,
                   high cohesion &


donderdag 25 juni 2009
low coupling,
                   high cohesion &
                    encapsulation
donderdag 25 juni 2009
donderdag 25 juni 2009
How Do We
             Handle This
             Complexity
               in Java?


donderdag 25 juni 2009
donderdag 25 juni 2009
Visibility
                              vs
                         Accessibility



donderdag 25 juni 2009
Visibility



                         Class   Class
                           S      T




donderdag 25 juni 2009
Visibility



                         Class   Class
                           S      T




donderdag 25 juni 2009
Visibility



                         Class   Class
                           S      T




donderdag 25 juni 2009
Visibility



                         Class   Class
                           S      T




donderdag 25 juni 2009
Visibility


                                 Module
                                 System
                         Class            Class
                           S               T




donderdag 25 juni 2009
Hierarchical Class
                Loaders
                                boot

                                ext


                         app           app

                         cust

donderdag 25 juni 2009
Hierarchical Class
                Loaders
                                boot

                                ext


                         app           app
                                             visibility

                         cust

donderdag 25 juni 2009
Context Class Loaders

                                       boot

                         X {}          ext


                                app           app

                         Y {}   cust

donderdag 25 juni 2009
Context Class Loaders

                                                  boot

                                    X {}          ext

                Thread -> Context
                   ClassLoader             app           app

                                    Y {}   cust

donderdag 25 juni 2009
Context Class Loaders

                                                  boot

                                    X {}          ext

                Thread -> Context
                   ClassLoader             app           app

                                    Y {}   cust

donderdag 25 juni 2009
Accessibility


                                public

                                module

                                package

                                private




donderdag 25 juni 2009
Accessibility

                                 Class           module
                                  V




                         Class   Class            Class
                          W        S               T
                                         class

                                 Class
                                  U
                                             package


donderdag 25 juni 2009
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




donderdag 25 juni 2009
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




donderdag 25 juni 2009
Split Packages
                         JARs   A



                         2      B




                                C

                                import   private   export



donderdag 25 juni 2009
Split Packages
                                    package com.foo: X, Y
                         JARs   A

                                    package com.foo: X, Y, Z


                         2      B


                                    package com.foo: X, Y, Z


                                C

                                import        private       export



donderdag 25 juni 2009
Split Packages
                                    package com.foo: X, Y
                         JARs   A

                                    package com.foo: X, Y, Z


                         2      B


                                    package com.foo: X, Y, Z


                                C

                                import        private       export



donderdag 25 juni 2009
Split Packages
                                    package com.foo: X, Y
                         JARs   A

                                    package com.foo: X, Y, Z


                         2      B


                                    package com.foo: X, Y, Z


                                C

                                import        private       export



donderdag 25 juni 2009
Versioning
                             JARs
                                 package com.foo: X, Y

                             A

                                 package com.foo: X, Z


                         2   B


                                 package com.foo: X, Y, Z


                             C

                             import        private          export



donderdag 25 juni 2009
Versioning
                             JARs
                                 package com.foo: X, Y

                             A   package com.bar: A,B,C;1.0




                                 package com.foo: X, Z


                         2   B   package com.bar: A;2.0




                                 package com.foo: X, Y, Z


                             C   package com.bar: A,B,C;2.0




                             import        private          export



donderdag 25 juni 2009
Versioning
                             JARs
                                 package com.foo: X, Y

                             A   package com.bar: A,B,C;1.0




                                 package com.foo: X, Z


                         2   B   package com.bar: A;2.0




                                 package com.foo: X, Y, Z


                             C   package com.bar: A,B,C;2.0




                             import        private          export



donderdag 25 juni 2009
Private Packages
                                    package com.foo: X, Y
                         JARs   A   package com.bar: A,B,C;1.0




                                    package com.foo: X, Z


                         2      B   package com.bar: A;2.0




                                    package com.foo: X, Y, Z


                                C   package com.bar: A,B,C;2.0




                                import        private          export




donderdag 25 juni 2009
Private Packages
                                    package com.foo: X, Y
                         JARs   A   package com.bar: A,B,C;1.0




                                    package com.foo: X, Z


                         2      B   package com.bar: A;2.0

                                    package com.private: G




                                    package com.foo: X, Y, Z


                                C   package com.bar: A,B,C;2.0

                                    package com.private: G,H,I


                                import        private          export




donderdag 25 juni 2009
Private Packages
                                    package com.foo: X, Y
                         JARs   A   package com.bar: A,B,C;1.0




                                    package com.foo: X, Z


                         2      B   package com.bar: A;2.0

                                    package com.private: G




                                    package com.foo: X, Y, Z


                                C   package com.bar: A,B,C;2.0

                                    package com.private: G,H,I


                                import        private          export




donderdag 25 juni 2009
How Do We
             Handle This
             Complexity
               in Java?


donderdag 25 juni 2009
We Don’t ...



donderdag 25 juni 2009
donderdag 25 juni 2009
donderdag 25 juni 2009
Applications                      S
                 (bundles)                        E
                                       Service
                                                  C
                                                  U
                                     Life Cycle
                                                  R
                                                  I
                                       Module     T
                                                  Y
                         Execution Environment

                                      OS + Hardware
donderdag 25 juni 2009
Execution Environment



donderdag 25 juni 2009
donderdag 25 juni 2009
CLDC/
                                  MIDP




                                          OSGi
                                          Min.



                                                 J2SE 1.3, 1.4,
                                                 5, 6, ...
                         CDC/FP




donderdag 25 juni 2009
Kim Scarborough
donderdag 25 juni 2009
Module Layer



donderdag 25 juni 2009
Import, Export, Private
                              Bundle A
                                                     Bundle B



                                  p                    p

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




                                                            .



                               import    private     export




donderdag 25 juni 2009
Import, Export, Private
                              Bundle A
                                                      Bundle B


                                         imports
                                  p                     p

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




                                                             .



                               import     private     export




donderdag 25 juni 2009
Import, Export, Private
                              Bundle A
                                                      Bundle B


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




                                                             .



                               import     private     export




donderdag 25 juni 2009
donderdag 25 juni 2009
donderdag 25 juni 2009
Uses Constraints
                           Bundle A              Bundle B


                             r;1.0                r;2.0

                               p                    p

                            q-1.4               q-[1.2,1.8)




                           Bundle C             Bundle D


                             r;1.0                r;2.0




                             import   private     export


donderdag 25 juni 2009
Uses Constraints
                           Bundle A               Bundle B


                             r;1.0                 r;2.0
                                      imports
                               p                     p

                            q-1.4                q-[1.2,1.8)




                           Bundle C              Bundle D


                             r;1.0                 r;2.0




                             import    private     export


donderdag 25 juni 2009
Uses Constraints
                           Bundle A               Bundle B


                             r;1.0                 r;2.0
                                      imports
                               p                     p
                                      exports
                            q-1.4                q-[1.2,1.8)




                           Bundle C              Bundle D


                             r;1.0                 r;2.0




                             import    private     export


donderdag 25 juni 2009
Uses Constraints
                           Bundle A               Bundle B


                             r;1.0                 r;2.0
                                      imports
                               p                     p
                                      exports
                            q-1.4                q-[1.2,1.8)




                           Bundle C              Bundle D


                             r;1.0                 r;2.0




                             import    private     export


donderdag 25 juni 2009
System
                            Loader


                          Extension
                           Loader


            Application B
              Loader


                 Custom
                 Loader




donderdag 25 juni 2009
System
                            Loader


                          Extension
                           Loader


            Application B             OSGi
              Loader


                 Custom
                 Loader




donderdag 25 juni 2009
System
                            Loader                           Bundle A

                          Extension               Bundle G              Bundle B
                           Loader

                                                                OSGi          Bundle C
            Application B             Framework
              Loader                    Loader
                                                  Bundle F              Bundle D
                 Custom
                 Loader
                                                             Bundle E




donderdag 25 juni 2009
donderdag 25 juni 2009
Life Cycle Layer



donderdag 25 juni 2009
INSTALLED    STARTING




                          RESOLVED      ACTIVE




                         UNINSTALLED   STOPPING




donderdag 25 juni 2009
MANAGE-
                                           System
                                                              MENT
                                           bundle
                                                             BUNDLE




                         Bundle
                          X-v2
                           X




                                                    Bundle
                                  Bundle              B
                                    A




donderdag 25 juni 2009
Service Layer



donderdag 25 juni 2009
donderdag 25 juni 2009
donderdag 25 juni 2009
donderdag 25 juni 2009
donderdag 25 juni 2009
Services
                                                defined in
                                             interface/class




                         Bundle   register                       get   Bundle
                           A                                             B



                                                        notify




donderdag 25 juni 2009
Services

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




donderdag 25 juni 2009
donderdag 25 juni 2009
donderdag 25 juni 2009
donderdag 25 juni 2009
donderdag 25 juni 2009
donderdag 25 juni 2009
Services Solve
                   Class Loader
                    Problems!
donderdag 25 juni 2009
donderdag 25 juni 2009
Security



donderdag 25 juni 2009
donderdag 25 juni 2009
Real Code!



donderdag 25 juni 2009
donderdag 25 juni 2009
package com.acme;
               import org.osgi.framework.*;
               public class HelloWorld extends BundleActivator {
                 public void start(BundleContext context) {
                     System.out.println(“Hello World”);
                 }
                 public void stop(BundleContext context) {
                     System.out.println(“Goodbye World”);
                 }
               }

               ---------------------------------------------

               Manifest: 1.0
               Bundle-Activator: com.acme.HelloWorld
               Import-Package: org.osgi.framework;version=1.3




donderdag 25 juni 2009
Bundles are active entities in runtime




donderdag 25 juni 2009
donderdag 25 juni 2009
294
donderdag 25 juni 2009
294
                          7
donderdag 25 juni 2009
donderdag 25 juni 2009
donderdag 25 juni 2009
Is JSR 294 a
 Meta Module System?
     (Implemented by OSGi™, Jigsaw, Guice, …)




donderdag 25 juni 2009
Is JSR 294 a
 Meta Module System?
     (Implemented by OSGi™, Jigsaw, Guice, …)


                          No Java™
                         Standard for
donderdag 25 juni 2009
                           Modules!
donderdag 25 juni 2009
donderdag 25 juni 2009
donderdag 25 juni 2009
Legacy




donderdag 25 juni 2009
Class
             .forName
donderdag 25 juni 2009
Class
             .forName
donderdag 25 juni 2009
donderdag 25 juni 2009
Bloat?
donderdag 25 juni 2009
Accidental
                         Complexity

donderdag 25 juni 2009
‘97   ‘98   ‘99   ‘00   ‘01   ‘02   ‘03   ‘04   ‘05   ‘06   ‘07   ‘08   ‘09   ‘10




donderdag 25 juni 2009
‘97   ‘98   ‘99   ‘00   ‘01   ‘02   ‘03   ‘04   ‘05   ‘06   ‘07   ‘08   ‘09   ‘10




donderdag 25 juni 2009
donderdag 25 juni 2009
donderdag 25 juni 2009
bundle
                                       A-1.2




                                  c                b




                                                       bundle
                                                        C-1.0
                         bundle                a
                          B-4.1




donderdag 25 juni 2009
donderdag 25 juni 2009
donderdag 25 juni 2009
The Component
            Framework
donderdag 25 juni 2009
donderdag 25 juni 2009
Q&A
donderdag 25 juni 2009
Thanks!

donderdag 25 juni 2009

Más contenido relacionado

La actualidad más candente

03.egovFrame Runtime Environment Training Book
03.egovFrame Runtime Environment Training Book03.egovFrame Runtime Environment Training Book
03.egovFrame Runtime Environment Training BookChuong Nguyen
 
PROSA - Eclipse Is Just What?
PROSA - Eclipse Is Just What?PROSA - Eclipse Is Just What?
PROSA - Eclipse Is Just What?Tonny Madsen
 
OSGi-enabled Java EE Applications using GlassFish
OSGi-enabled Java EE Applications using GlassFishOSGi-enabled Java EE Applications using GlassFish
OSGi-enabled Java EE Applications using GlassFishArun Gupta
 
Websphere Application Server: Much more than Open Source
Websphere Application Server: Much more than Open SourceWebsphere Application Server: Much more than Open Source
Websphere Application Server: Much more than Open SourceIBM WebSphereIndia
 
CRX Best practices
CRX Best practicesCRX Best practices
CRX Best practiceslisui0807
 
Davoxx 2012 - 'JMS 2.0 Update'
Davoxx 2012 - 'JMS 2.0 Update'Davoxx 2012 - 'JMS 2.0 Update'
Davoxx 2012 - 'JMS 2.0 Update'C2B2 Consulting
 
Incremental pattern matching in the VIATRA2 model transformation framework
Incremental pattern matching in the VIATRA2 model transformation frameworkIncremental pattern matching in the VIATRA2 model transformation framework
Incremental pattern matching in the VIATRA2 model transformation frameworkIstvan Rath
 
Vmware management-with-vcli-5.0
Vmware management-with-vcli-5.0Vmware management-with-vcli-5.0
Vmware management-with-vcli-5.0Sathishkumar A
 
Eb07 Day Communiqué Web Content Management En
Eb07 Day Communiqué Web Content Management EnEb07 Day Communiqué Web Content Management En
Eb07 Day Communiqué Web Content Management EnValtech
 
Airbus Internship Presentation 2012
Airbus Internship Presentation 2012Airbus Internship Presentation 2012
Airbus Internship Presentation 2012Paveen Juntama
 
The OSGi Framework Multiplication
The OSGi Framework MultiplicationThe OSGi Framework Multiplication
The OSGi Framework MultiplicationClément Escoffier
 
5장. Execution Engine
5장. Execution Engine5장. Execution Engine
5장. Execution Engine김 한도
 

La actualidad más candente (12)

03.egovFrame Runtime Environment Training Book
03.egovFrame Runtime Environment Training Book03.egovFrame Runtime Environment Training Book
03.egovFrame Runtime Environment Training Book
 
PROSA - Eclipse Is Just What?
PROSA - Eclipse Is Just What?PROSA - Eclipse Is Just What?
PROSA - Eclipse Is Just What?
 
OSGi-enabled Java EE Applications using GlassFish
OSGi-enabled Java EE Applications using GlassFishOSGi-enabled Java EE Applications using GlassFish
OSGi-enabled Java EE Applications using GlassFish
 
Websphere Application Server: Much more than Open Source
Websphere Application Server: Much more than Open SourceWebsphere Application Server: Much more than Open Source
Websphere Application Server: Much more than Open Source
 
CRX Best practices
CRX Best practicesCRX Best practices
CRX Best practices
 
Davoxx 2012 - 'JMS 2.0 Update'
Davoxx 2012 - 'JMS 2.0 Update'Davoxx 2012 - 'JMS 2.0 Update'
Davoxx 2012 - 'JMS 2.0 Update'
 
Incremental pattern matching in the VIATRA2 model transformation framework
Incremental pattern matching in the VIATRA2 model transformation frameworkIncremental pattern matching in the VIATRA2 model transformation framework
Incremental pattern matching in the VIATRA2 model transformation framework
 
Vmware management-with-vcli-5.0
Vmware management-with-vcli-5.0Vmware management-with-vcli-5.0
Vmware management-with-vcli-5.0
 
Eb07 Day Communiqué Web Content Management En
Eb07 Day Communiqué Web Content Management EnEb07 Day Communiqué Web Content Management En
Eb07 Day Communiqué Web Content Management En
 
Airbus Internship Presentation 2012
Airbus Internship Presentation 2012Airbus Internship Presentation 2012
Airbus Internship Presentation 2012
 
The OSGi Framework Multiplication
The OSGi Framework MultiplicationThe OSGi Framework Multiplication
The OSGi Framework Multiplication
 
5장. Execution Engine
5장. Execution Engine5장. Execution Engine
5장. Execution Engine
 

Destacado

Intro to Programming: Modularity
Intro to Programming: ModularityIntro to Programming: Modularity
Intro to Programming: ModularityNicole Ryan
 
The connective tissue of creativity
The connective tissue of creativityThe connective tissue of creativity
The connective tissue of creativityRandall Snare
 
Modularity - What are we talking about?
Modularity - What are we talking about?Modularity - What are we talking about?
Modularity - What are we talking about?Brunel University
 
OSGi in the Enterprise: Agility, Modularity, and Architecture's Paradox
OSGi in the Enterprise: Agility, Modularity, and Architecture's ParadoxOSGi in the Enterprise: Agility, Modularity, and Architecture's Paradox
OSGi in the Enterprise: Agility, Modularity, and Architecture's Paradoxpragkirk
 
Modularity and Layered Data Model
Modularity and Layered Data ModelModularity and Layered Data Model
Modularity and Layered Data ModelAttila Jenei
 
Modularity and evolvability
Modularity and evolvabilityModularity and evolvability
Modularity and evolvabilitypedrobeltrao
 
Modularity and Dynamism - The tale of two sisters
Modularity and Dynamism - The tale of two sistersModularity and Dynamism - The tale of two sisters
Modularity and Dynamism - The tale of two sistersClément Escoffier
 
Modularity of the Java Platform (OSGi, Jigsaw and Penrose)
Modularity of the Java Platform (OSGi, Jigsaw and Penrose)Modularity of the Java Platform (OSGi, Jigsaw and Penrose)
Modularity of the Java Platform (OSGi, Jigsaw and Penrose)Martin Toshev
 

Destacado (8)

Intro to Programming: Modularity
Intro to Programming: ModularityIntro to Programming: Modularity
Intro to Programming: Modularity
 
The connective tissue of creativity
The connective tissue of creativityThe connective tissue of creativity
The connective tissue of creativity
 
Modularity - What are we talking about?
Modularity - What are we talking about?Modularity - What are we talking about?
Modularity - What are we talking about?
 
OSGi in the Enterprise: Agility, Modularity, and Architecture's Paradox
OSGi in the Enterprise: Agility, Modularity, and Architecture's ParadoxOSGi in the Enterprise: Agility, Modularity, and Architecture's Paradox
OSGi in the Enterprise: Agility, Modularity, and Architecture's Paradox
 
Modularity and Layered Data Model
Modularity and Layered Data ModelModularity and Layered Data Model
Modularity and Layered Data Model
 
Modularity and evolvability
Modularity and evolvabilityModularity and evolvability
Modularity and evolvability
 
Modularity and Dynamism - The tale of two sisters
Modularity and Dynamism - The tale of two sistersModularity and Dynamism - The tale of two sisters
Modularity and Dynamism - The tale of two sisters
 
Modularity of the Java Platform (OSGi, Jigsaw and Penrose)
Modularity of the Java Platform (OSGi, Jigsaw and Penrose)Modularity of the Java Platform (OSGi, Jigsaw and Penrose)
Modularity of the Java Platform (OSGi, Jigsaw and Penrose)
 

Similar a OSGi and Java Modularity

OSGi Service Platform 4.2
OSGi Service Platform 4.2OSGi Service Platform 4.2
OSGi Service Platform 4.2Ilya Katsov
 
Workshop OSGI PPT
Workshop OSGI PPTWorkshop OSGI PPT
Workshop OSGI PPTSummer Lu
 
Live Integration Framework
Live Integration FrameworkLive Integration Framework
Live Integration Frameworktmra
 
When Two Worlds Collide: Java and Ruby in the Enterprise
When Two Worlds Collide: Java and Ruby in the EnterpriseWhen Two Worlds Collide: Java and Ruby in the Enterprise
When Two Worlds Collide: Java and Ruby in the Enterprisebenbrowning
 
Mozilla In Malaysia
Mozilla In MalaysiaMozilla In Malaysia
Mozilla In MalaysiaGen Kanai
 
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012Alexandre Morgaut
 
Introduction to Apache Camel
Introduction to Apache CamelIntroduction to Apache Camel
Introduction to Apache CamelFuseSource.com
 
Cloudfoundry architecture
Cloudfoundry architectureCloudfoundry architecture
Cloudfoundry architectureRamnivas Laddad
 
We4IT LCTY 2013 - x-pages-men - ibm domino xpages - performance in a nutshell
We4IT LCTY 2013 - x-pages-men - ibm domino xpages - performance in a nutshellWe4IT LCTY 2013 - x-pages-men - ibm domino xpages - performance in a nutshell
We4IT LCTY 2013 - x-pages-men - ibm domino xpages - performance in a nutshellWe4IT Group
 
Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5
Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5
Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5David Nuescheler
 
What Your Jvm Has Been Trying To Tell You
What Your Jvm Has Been Trying To Tell YouWhat Your Jvm Has Been Trying To Tell You
What Your Jvm Has Been Trying To Tell YouJohn Pape
 
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
 
10 reasons why Nuxeo is using GlassFish
10 reasons why Nuxeo is using GlassFish10 reasons why Nuxeo is using GlassFish
10 reasons why Nuxeo is using GlassFishNuxeo
 
Ese2008 Swordfish
Ese2008 SwordfishEse2008 Swordfish
Ese2008 Swordfishwwtyler
 
Jazoon 2011 - Smart EAI with Apache Camel
Jazoon 2011 - Smart EAI with Apache CamelJazoon 2011 - Smart EAI with Apache Camel
Jazoon 2011 - Smart EAI with Apache CamelKai Wähner
 
OSGi DevCon US 2010 Review
OSGi DevCon US 2010 ReviewOSGi DevCon US 2010 Review
OSGi DevCon US 2010 Reviewmfrancis
 
Alfresco day madrid jeff potts - activiti
Alfresco day madrid   jeff potts - activitiAlfresco day madrid   jeff potts - activiti
Alfresco day madrid jeff potts - activitiAlfresco Software
 
Alfresco Day Madrid - Jeff Potts - Activiti
Alfresco Day Madrid - Jeff Potts - ActivitiAlfresco Day Madrid - Jeff Potts - Activiti
Alfresco Day Madrid - Jeff Potts - ActivitiToni de la Fuente
 
Google App Engine At A Glance
Google App Engine At A GlanceGoogle App Engine At A Glance
Google App Engine At A GlanceStefan Christoph
 

Similar a OSGi and Java Modularity (20)

OSGi Service Platform 4.2
OSGi Service Platform 4.2OSGi Service Platform 4.2
OSGi Service Platform 4.2
 
Workshop OSGI PPT
Workshop OSGI PPTWorkshop OSGI PPT
Workshop OSGI PPT
 
Live Integration Framework
Live Integration FrameworkLive Integration Framework
Live Integration Framework
 
When Two Worlds Collide: Java and Ruby in the Enterprise
When Two Worlds Collide: Java and Ruby in the EnterpriseWhen Two Worlds Collide: Java and Ruby in the Enterprise
When Two Worlds Collide: Java and Ruby in the Enterprise
 
Mozilla In Malaysia
Mozilla In MalaysiaMozilla In Malaysia
Mozilla In Malaysia
 
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
 
Introduction to Apache Camel
Introduction to Apache CamelIntroduction to Apache Camel
Introduction to Apache Camel
 
Cloudfoundry architecture
Cloudfoundry architectureCloudfoundry architecture
Cloudfoundry architecture
 
We4IT LCTY 2013 - x-pages-men - ibm domino xpages - performance in a nutshell
We4IT LCTY 2013 - x-pages-men - ibm domino xpages - performance in a nutshellWe4IT LCTY 2013 - x-pages-men - ibm domino xpages - performance in a nutshell
We4IT LCTY 2013 - x-pages-men - ibm domino xpages - performance in a nutshell
 
Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5
Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5
Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5
 
What Your Jvm Has Been Trying To Tell You
What Your Jvm Has Been Trying To Tell YouWhat Your Jvm Has Been Trying To Tell You
What Your Jvm Has Been Trying To Tell You
 
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
 
10 reasons why Nuxeo is using GlassFish
10 reasons why Nuxeo is using GlassFish10 reasons why Nuxeo is using GlassFish
10 reasons why Nuxeo is using GlassFish
 
Ese2008 Swordfish
Ese2008 SwordfishEse2008 Swordfish
Ese2008 Swordfish
 
Jazoon 2011 - Smart EAI with Apache Camel
Jazoon 2011 - Smart EAI with Apache CamelJazoon 2011 - Smart EAI with Apache Camel
Jazoon 2011 - Smart EAI with Apache Camel
 
OSGi DevCon US 2010 Review
OSGi DevCon US 2010 ReviewOSGi DevCon US 2010 Review
OSGi DevCon US 2010 Review
 
Alfresco day madrid jeff potts - activiti
Alfresco day madrid   jeff potts - activitiAlfresco day madrid   jeff potts - activiti
Alfresco day madrid jeff potts - activiti
 
Alfresco Day Madrid - Jeff Potts - Activiti
Alfresco Day Madrid - Jeff Potts - ActivitiAlfresco Day Madrid - Jeff Potts - Activiti
Alfresco Day Madrid - Jeff Potts - Activiti
 
Google App Engine At A Glance
Google App Engine At A GlanceGoogle App Engine At A Glance
Google App Engine At A Glance
 
Guides To Analyzing WebKit Performance
Guides To Analyzing WebKit PerformanceGuides To Analyzing WebKit Performance
Guides To Analyzing WebKit Performance
 

Último

Top Rated Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...
Top Rated  Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...Top Rated  Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...
Top Rated Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...Call Girls in Nagpur High Profile
 
Dubai Call Girls Pro Domain O525547819 Call Girls Dubai Doux
Dubai Call Girls Pro Domain O525547819 Call Girls Dubai DouxDubai Call Girls Pro Domain O525547819 Call Girls Dubai Doux
Dubai Call Girls Pro Domain O525547819 Call Girls Dubai Douxkojalkojal131
 
Design Inspiration for College by Slidesgo.pptx
Design Inspiration for College by Slidesgo.pptxDesign Inspiration for College by Slidesgo.pptx
Design Inspiration for College by Slidesgo.pptxTusharBahuguna2
 
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️Call Girls in Kalkaji Delhi 8264348440 call girls ❤️
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️soniya singh
 
Peaches App development presentation deck
Peaches App development presentation deckPeaches App development presentation deck
Peaches App development presentation decktbatkhuu1
 
Captivating Charm: Exploring Marseille's Hillside Villas with Our 3D Architec...
Captivating Charm: Exploring Marseille's Hillside Villas with Our 3D Architec...Captivating Charm: Exploring Marseille's Hillside Villas with Our 3D Architec...
Captivating Charm: Exploring Marseille's Hillside Villas with Our 3D Architec...Yantram Animation Studio Corporation
 
VIP Call Girls Bhiwandi Ananya 8250192130 Independent Escort Service Bhiwandi
VIP Call Girls Bhiwandi Ananya 8250192130 Independent Escort Service BhiwandiVIP Call Girls Bhiwandi Ananya 8250192130 Independent Escort Service Bhiwandi
VIP Call Girls Bhiwandi Ananya 8250192130 Independent Escort Service BhiwandiSuhani Kapoor
 
Recommendable # 971589162217 # philippine Young Call Girls in Dubai By Marina...
Recommendable # 971589162217 # philippine Young Call Girls in Dubai By Marina...Recommendable # 971589162217 # philippine Young Call Girls in Dubai By Marina...
Recommendable # 971589162217 # philippine Young Call Girls in Dubai By Marina...home
 
SD_The MATATAG Curriculum Training Design.pptx
SD_The MATATAG Curriculum Training Design.pptxSD_The MATATAG Curriculum Training Design.pptx
SD_The MATATAG Curriculum Training Design.pptxjanettecruzeiro1
 
CALL ON ➥8923113531 🔝Call Girls Kalyanpur Lucknow best Female service 🧵
CALL ON ➥8923113531 🔝Call Girls Kalyanpur Lucknow best Female service  🧵CALL ON ➥8923113531 🔝Call Girls Kalyanpur Lucknow best Female service  🧵
CALL ON ➥8923113531 🔝Call Girls Kalyanpur Lucknow best Female service 🧵anilsa9823
 
VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...
VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...
VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...Call Girls in Nagpur High Profile
 
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779Delhi Call girls
 
VIP Call Girl Amravati Aashi 8250192130 Independent Escort Service Amravati
VIP Call Girl Amravati Aashi 8250192130 Independent Escort Service AmravatiVIP Call Girl Amravati Aashi 8250192130 Independent Escort Service Amravati
VIP Call Girl Amravati Aashi 8250192130 Independent Escort Service AmravatiSuhani Kapoor
 
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...BarusRa
 
Stark Industries Marketing Plan (1).pptx
Stark Industries Marketing Plan (1).pptxStark Industries Marketing Plan (1).pptx
Stark Industries Marketing Plan (1).pptxjeswinjees
 
Punjabi Housewife Call Girls Service Gomti Nagar \ 9548273370 Indian Call Gir...
Punjabi Housewife Call Girls Service Gomti Nagar \ 9548273370 Indian Call Gir...Punjabi Housewife Call Girls Service Gomti Nagar \ 9548273370 Indian Call Gir...
Punjabi Housewife Call Girls Service Gomti Nagar \ 9548273370 Indian Call Gir...nagunakhan
 
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdf
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdfThe_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdf
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdfAmirYakdi
 
The history of music videos a level presentation
The history of music videos a level presentationThe history of music videos a level presentation
The history of music videos a level presentationamedia6
 

Último (20)

Top Rated Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...
Top Rated  Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...Top Rated  Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...
Top Rated Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...
 
Dubai Call Girls Pro Domain O525547819 Call Girls Dubai Doux
Dubai Call Girls Pro Domain O525547819 Call Girls Dubai DouxDubai Call Girls Pro Domain O525547819 Call Girls Dubai Doux
Dubai Call Girls Pro Domain O525547819 Call Girls Dubai Doux
 
Design Inspiration for College by Slidesgo.pptx
Design Inspiration for College by Slidesgo.pptxDesign Inspiration for College by Slidesgo.pptx
Design Inspiration for College by Slidesgo.pptx
 
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️Call Girls in Kalkaji Delhi 8264348440 call girls ❤️
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️
 
Peaches App development presentation deck
Peaches App development presentation deckPeaches App development presentation deck
Peaches App development presentation deck
 
young call girls in Vivek Vihar🔝 9953056974 🔝 Delhi escort Service
young call girls in Vivek Vihar🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Vivek Vihar🔝 9953056974 🔝 Delhi escort Service
young call girls in Vivek Vihar🔝 9953056974 🔝 Delhi escort Service
 
Captivating Charm: Exploring Marseille's Hillside Villas with Our 3D Architec...
Captivating Charm: Exploring Marseille's Hillside Villas with Our 3D Architec...Captivating Charm: Exploring Marseille's Hillside Villas with Our 3D Architec...
Captivating Charm: Exploring Marseille's Hillside Villas with Our 3D Architec...
 
VIP Call Girls Bhiwandi Ananya 8250192130 Independent Escort Service Bhiwandi
VIP Call Girls Bhiwandi Ananya 8250192130 Independent Escort Service BhiwandiVIP Call Girls Bhiwandi Ananya 8250192130 Independent Escort Service Bhiwandi
VIP Call Girls Bhiwandi Ananya 8250192130 Independent Escort Service Bhiwandi
 
Recommendable # 971589162217 # philippine Young Call Girls in Dubai By Marina...
Recommendable # 971589162217 # philippine Young Call Girls in Dubai By Marina...Recommendable # 971589162217 # philippine Young Call Girls in Dubai By Marina...
Recommendable # 971589162217 # philippine Young Call Girls in Dubai By Marina...
 
SD_The MATATAG Curriculum Training Design.pptx
SD_The MATATAG Curriculum Training Design.pptxSD_The MATATAG Curriculum Training Design.pptx
SD_The MATATAG Curriculum Training Design.pptx
 
CALL ON ➥8923113531 🔝Call Girls Kalyanpur Lucknow best Female service 🧵
CALL ON ➥8923113531 🔝Call Girls Kalyanpur Lucknow best Female service  🧵CALL ON ➥8923113531 🔝Call Girls Kalyanpur Lucknow best Female service  🧵
CALL ON ➥8923113531 🔝Call Girls Kalyanpur Lucknow best Female service 🧵
 
VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...
VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...
VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...
 
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
 
VIP Call Girl Amravati Aashi 8250192130 Independent Escort Service Amravati
VIP Call Girl Amravati Aashi 8250192130 Independent Escort Service AmravatiVIP Call Girl Amravati Aashi 8250192130 Independent Escort Service Amravati
VIP Call Girl Amravati Aashi 8250192130 Independent Escort Service Amravati
 
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...
 
Stark Industries Marketing Plan (1).pptx
Stark Industries Marketing Plan (1).pptxStark Industries Marketing Plan (1).pptx
Stark Industries Marketing Plan (1).pptx
 
Punjabi Housewife Call Girls Service Gomti Nagar \ 9548273370 Indian Call Gir...
Punjabi Housewife Call Girls Service Gomti Nagar \ 9548273370 Indian Call Gir...Punjabi Housewife Call Girls Service Gomti Nagar \ 9548273370 Indian Call Gir...
Punjabi Housewife Call Girls Service Gomti Nagar \ 9548273370 Indian Call Gir...
 
young call girls in Pandav nagar 🔝 9953056974 🔝 Delhi escort Service
young call girls in Pandav nagar 🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Pandav nagar 🔝 9953056974 🔝 Delhi escort Service
young call girls in Pandav nagar 🔝 9953056974 🔝 Delhi escort Service
 
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdf
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdfThe_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdf
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdf
 
The history of music videos a level presentation
The history of music videos a level presentationThe history of music videos a level presentation
The history of music videos a level presentation
 

OSGi and Java Modularity

  • 1. OSGi & Java Modularity Jazoon 2009, Zürich by Peter Kriens donderdag 25 juni 2009
  • 5. Productivity Application Complexity donderdag 25 juni 2009
  • 6. Productivity Assembly Application Complexity donderdag 25 juni 2009
  • 7. Productivity Structured Programming Assembly Application Complexity donderdag 25 juni 2009
  • 8. Productivity Structured Object Oriented Programming Programming Assembly Application Complexity donderdag 25 juni 2009
  • 9. Productivity Service Oriented Programming? Structured Object Oriented Programming Programming Assembly Application Complexity donderdag 25 juni 2009
  • 12. Extensions Application Application Convenience Foundation Basic Something Core Java VM donderdag 25 juni 2009
  • 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 log4j barcode4j axis batik commons xmlrpc geronimo httpunit freemarker ezmorph fop derby xmlgraphics Libs.. Java VM Java VM rt jce jsse plugin sunjce_prov. dnsns .. donderdag 25 juni 2009
  • 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 log4j barcode4j axis batik commons xmlrpc geronimo httpunit freemarker ezmorph fop derby xmlgraphics Libs.. Java VM Java VM rt jce jsse plugin sunjce_prov. dnsns .. donderdag 25 juni 2009
  • 15. by Damoiselle de Pique donderdag 25 juni 2009
  • 16. Was Pollock an Early OO Programmer? by Damoiselle de Pique donderdag 25 juni 2009
  • 25. low coupling, high cohesion & donderdag 25 juni 2009
  • 26. low coupling, high cohesion & encapsulation donderdag 25 juni 2009
  • 28. How Do We Handle This Complexity in Java? donderdag 25 juni 2009
  • 30. Visibility vs Accessibility donderdag 25 juni 2009
  • 31. Visibility Class Class S T donderdag 25 juni 2009
  • 32. Visibility Class Class S T donderdag 25 juni 2009
  • 33. Visibility Class Class S T donderdag 25 juni 2009
  • 34. Visibility Class Class S T donderdag 25 juni 2009
  • 35. Visibility Module System Class Class S T donderdag 25 juni 2009
  • 36. Hierarchical Class Loaders boot ext app app cust donderdag 25 juni 2009
  • 37. Hierarchical Class Loaders boot ext app app visibility cust donderdag 25 juni 2009
  • 38. Context Class Loaders boot X {} ext app app Y {} cust donderdag 25 juni 2009
  • 39. Context Class Loaders boot X {} ext Thread -> Context ClassLoader app app Y {} cust donderdag 25 juni 2009
  • 40. Context Class Loaders boot X {} ext Thread -> Context ClassLoader app app Y {} cust donderdag 25 juni 2009
  • 41. Accessibility public module package private donderdag 25 juni 2009
  • 42. Accessibility Class module V Class Class Class W S T class Class U package donderdag 25 juni 2009
  • 43. 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 donderdag 25 juni 2009
  • 44. 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 donderdag 25 juni 2009
  • 45. Split Packages JARs A 2 B C import private export donderdag 25 juni 2009
  • 46. Split Packages package com.foo: X, Y JARs A package com.foo: X, Y, Z 2 B package com.foo: X, Y, Z C import private export donderdag 25 juni 2009
  • 47. Split Packages package com.foo: X, Y JARs A package com.foo: X, Y, Z 2 B package com.foo: X, Y, Z C import private export donderdag 25 juni 2009
  • 48. Split Packages package com.foo: X, Y JARs A package com.foo: X, Y, Z 2 B package com.foo: X, Y, Z C import private export donderdag 25 juni 2009
  • 49. Versioning JARs package com.foo: X, Y A package com.foo: X, Z 2 B package com.foo: X, Y, Z C import private export donderdag 25 juni 2009
  • 50. Versioning JARs package com.foo: X, Y A package com.bar: A,B,C;1.0 package com.foo: X, Z 2 B package com.bar: A;2.0 package com.foo: X, Y, Z C package com.bar: A,B,C;2.0 import private export donderdag 25 juni 2009
  • 51. Versioning JARs package com.foo: X, Y A package com.bar: A,B,C;1.0 package com.foo: X, Z 2 B package com.bar: A;2.0 package com.foo: X, Y, Z C package com.bar: A,B,C;2.0 import private export donderdag 25 juni 2009
  • 52. Private Packages package com.foo: X, Y JARs A package com.bar: A,B,C;1.0 package com.foo: X, Z 2 B package com.bar: A;2.0 package com.foo: X, Y, Z C package com.bar: A,B,C;2.0 import private export donderdag 25 juni 2009
  • 53. Private Packages package com.foo: X, Y JARs A package com.bar: A,B,C;1.0 package com.foo: X, Z 2 B package com.bar: A;2.0 package com.private: G package com.foo: X, Y, Z C package com.bar: A,B,C;2.0 package com.private: G,H,I import private export donderdag 25 juni 2009
  • 54. Private Packages package com.foo: X, Y JARs A package com.bar: A,B,C;1.0 package com.foo: X, Z 2 B package com.bar: A;2.0 package com.private: G package com.foo: X, Y, Z C package com.bar: A,B,C;2.0 package com.private: G,H,I import private export donderdag 25 juni 2009
  • 55. How Do We Handle This Complexity in Java? donderdag 25 juni 2009
  • 56. We Don’t ... donderdag 25 juni 2009
  • 59. Applications S (bundles) E Service C U Life Cycle R I Module T Y Execution Environment OS + Hardware donderdag 25 juni 2009
  • 62. CLDC/ MIDP OSGi Min. J2SE 1.3, 1.4, 5, 6, ... CDC/FP donderdag 25 juni 2009
  • 65. Import, Export, Private Bundle A Bundle B p p q-1.4 q-[1.2,1.8) Bundle A r r . import private export donderdag 25 juni 2009
  • 66. Import, Export, Private Bundle A Bundle B imports p p q-1.4 q-[1.2,1.8) Bundle A r r . import private export donderdag 25 juni 2009
  • 67. Import, Export, Private Bundle A Bundle B imports p p exports q-1.4 q-[1.2,1.8) Bundle A r r . import private export donderdag 25 juni 2009
  • 70. Uses Constraints Bundle A Bundle B r;1.0 r;2.0 p p q-1.4 q-[1.2,1.8) Bundle C Bundle D r;1.0 r;2.0 import private export donderdag 25 juni 2009
  • 71. Uses Constraints Bundle A Bundle B r;1.0 r;2.0 imports p p q-1.4 q-[1.2,1.8) Bundle C Bundle D r;1.0 r;2.0 import private export donderdag 25 juni 2009
  • 72. Uses Constraints Bundle A Bundle B r;1.0 r;2.0 imports p p exports q-1.4 q-[1.2,1.8) Bundle C Bundle D r;1.0 r;2.0 import private export donderdag 25 juni 2009
  • 73. Uses Constraints Bundle A Bundle B r;1.0 r;2.0 imports p p exports q-1.4 q-[1.2,1.8) Bundle C Bundle D r;1.0 r;2.0 import private export donderdag 25 juni 2009
  • 74. System Loader Extension Loader Application B Loader Custom Loader donderdag 25 juni 2009
  • 75. System Loader Extension Loader Application B OSGi Loader Custom Loader donderdag 25 juni 2009
  • 76. System Loader Bundle A Extension Bundle G Bundle B Loader OSGi Bundle C Application B Framework Loader Loader Bundle F Bundle D Custom Loader Bundle E donderdag 25 juni 2009
  • 79. INSTALLED STARTING RESOLVED ACTIVE UNINSTALLED STOPPING donderdag 25 juni 2009
  • 80. MANAGE- System MENT bundle BUNDLE Bundle X-v2 X Bundle Bundle B A donderdag 25 juni 2009
  • 86. Services defined in interface/class Bundle register get Bundle A B notify donderdag 25 juni 2009
  • 87. Services interface Foo { void foo(); } void foo() { … … s.foo() } … donderdag 25 juni 2009
  • 93. Services Solve Class Loader Problems! donderdag 25 juni 2009
  • 99. package com.acme; import org.osgi.framework.*; public class HelloWorld extends BundleActivator { public void start(BundleContext context) { System.out.println(“Hello World”); } public void stop(BundleContext context) { System.out.println(“Goodbye World”); } } --------------------------------------------- Manifest: 1.0 Bundle-Activator: com.acme.HelloWorld Import-Package: org.osgi.framework;version=1.3 donderdag 25 juni 2009
  • 100. Bundles are active entities in runtime donderdag 25 juni 2009
  • 103. 294 7 donderdag 25 juni 2009
  • 106. Is JSR 294 a Meta Module System? (Implemented by OSGi™, Jigsaw, Guice, …) donderdag 25 juni 2009
  • 107. Is JSR 294 a Meta Module System? (Implemented by OSGi™, Jigsaw, Guice, …) No Java™ Standard for donderdag 25 juni 2009 Modules!
  • 112. Class .forName donderdag 25 juni 2009
  • 113. Class .forName donderdag 25 juni 2009
  • 116. Accidental Complexity donderdag 25 juni 2009
  • 117. ‘97 ‘98 ‘99 ‘00 ‘01 ‘02 ‘03 ‘04 ‘05 ‘06 ‘07 ‘08 ‘09 ‘10 donderdag 25 juni 2009
  • 118. ‘97 ‘98 ‘99 ‘00 ‘01 ‘02 ‘03 ‘04 ‘05 ‘06 ‘07 ‘08 ‘09 ‘10 donderdag 25 juni 2009
  • 121. bundle A-1.2 c b bundle C-1.0 bundle a B-4.1 donderdag 25 juni 2009
  • 124. The Component Framework donderdag 25 juni 2009