SlideShare a Scribd company logo
1 of 65
Download to read offline
Subsystems:
for those occasions where bundles are just too small

Tom Watson

IBM

March 27st 2012




                                                      OSGi Alliance Marketing © 2008-2010 . All Rights 1
                                                                                                Page Reserved
                  COPYRIGHT © 2008-2012 OSGi Alliance. All Rights Reserved, © IBM Corp. 2012
Agenda

Motivation
Model
Types
Meta-data
Packaging
Life-cycle and API




  Page 2        OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                © IBM Corp. 2012
Motivation
Enterprise Java platforms are awash with bundle
collections
Apache Aries – Applications
Apache Geronimo - Applications
Apache Karaf – Features
Eclipse Virgo – Plans, PARs
IBM WebSphere Application Server – Applications and
Composite
Oracle GlassFish – Applications
Paremus Service Fabric – Systems
Crying out for standardization
Portability
Tools
Ecosystem




   Page 3              OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                       © IBM Corp. 2012
Subsystem Model: Hierarchy

Subsystem Hierarchy
Each has 1 or more parents (except
root)
                                                                                          subsystem

                                                                                   root




   Page 4             OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                      © IBM Corp. 2012
Subsystem Model: Hierarchy

Subsystem Hierarchy
Each has 1 or more parents (except
root)
Each can have many children                                                                         subsystem

                                                                                   root

                                                                            S1 S2

                                                                                          S3

                                                                                   S4          S5




   Page 5             OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                      © IBM Corp. 2012
Subsystem Model: Hierarchy

Subsystem Hierarchy
Each has 1 or more parents (except
root)
Each can have many children                                                                            subsystem
Each is contained in a Region                                                                          region
                                                                                      root
Regions
    Provides isolation for a group of one                                      S1 S2
       or more subsystems
    Defined by a scoped subsystem                                                            S3

                                                                                      S4          S5




   Page 6                OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                         © IBM Corp. 2012
Subsystem Model: Sharing Policies

Scoped subsystems control
the sharing policy                                                                              bundle
                                                                                                requirement
                                                                                                capability
                                                                                root




                                                                     A                     B
                                                                            Y          Y
                                                                    S1                     S2




  Page 7       OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
               © IBM Corp. 2012
Subsystem Model: Sharing Policies

Scoped subsystems control
the sharing policy                                                                                      bundle
A region provides isolation                                                                             requirement
                                                                                                        capability
                                                                                        root




                                                                             A           X         B
                                                                                    Y          Y
                                                                            S1                     S2




    Page 8             OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                       © IBM Corp. 2012
Subsystem Model: Sharing Policies

Scoped subsystems control
the sharing policy                                                                                       bundle
A region provides isolation                                                                              requirement
Selectively export capabilities to the                                                                   capability
parent
                                                                                         root



                                                                                                    exports Y
                                                                              A                     B
                                                                                     Y          Y
                                                                             S1                     S2




    Page 9              OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                        © IBM Corp. 2012
Subsystem Model: Sharing Policies

Scoped subsystems control
the sharing policy                                                                                       bundle
A region provides isolation                                                                              requirement
Selectively export capabilities to the                                                                   capability
parent
                                                                                         root
Selectively import capabilities from the
parent


                                                                   imports Y                        exports Y
                                                                              A                     B
                                                                                     Y          Y
                                                                             S1                     S2




    Page 10             OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                        © IBM Corp. 2012
Subsystem Model: Sharing Policies

Scoped subsystems control
the sharing policy                                                                                        bundle
A region provides isolation                                                                               requirement
Selectively export capabilities to the                                                                    capability
parent
                                                                                         root
    Selectively import capabilities
        from the parent
Unscoped subsystems
    share everything with other                                    imports Y                         exports Y
       subsystems contained in the same                                       A                      B
       region                                                                        Y          Y
                                                                             S1                      S2

                                                                                                U1        C
                                                                                                     Y



    Page 11             OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                        © IBM Corp. 2012
Subsystem Types: Features

Collection of Resources (e.g.
Bundles)


                                                                       A      C
                                                                       B      D




   Page 12       OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                 © IBM Corp. 2012
Subsystem Types: Features

Collection of Resources (e.g.
Bundles)
Shared life-cycle

                                                                       A            C
                                                                       B            D

                                                                              F1   F2




   Page 13       OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                 © IBM Corp. 2012
Subsystem Types: Features

Collection of Resources (e.g.
Bundles)
Shared life-cycle
Can have children
                                                                       A            C
                                                                       B            D

                                                                              F1   F2


                                                                        F
                                                                              F3




   Page 14       OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                 © IBM Corp. 2012
Subsystem Types: Features

Collection of Resources (e.g.
Bundles)
Shared life-cycle
Can have children
                                                                       A                           C
No scoping, able to share
                                                                       B                           D
resources                                                                           shared
                                                                       E           resource   E
                                                                              F1                  F2


                                                                        F
                                                                              F3




   Page 15       OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                 © IBM Corp. 2012
Subsystem Types: Features

Collection of Resources (e.g.
Bundles)
Shared life-cycle                                                                    S1
Can have children
                                                                       A                           C
No scoping, able to share
                                                                       B                           D
resources                                                                           shared
                                                                       E           resource   E
Must be contained within a                                                    F1                  F2
region
                                                                        F
                                                                              F3




   Page 16       OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                 © IBM Corp. 2012
Subsystem Types: Features

Collection of Resources (e.g.
Bundles)
Shared life-cycle                                                                    S1
Can have children
                                                                       A                           C
No scoping, able to share
                                                                       B                           D
resources                                                                           shared
                                                                       E           resource   E
Must be contained within a                                                    F1                  F2
   region
                                                                        F
Examples: Karaf Features,                                                     F3
Virgo unscoped Plans


   Page 17       OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                 © IBM Corp. 2012
Subsystem Types: Composite
Coarse-grained sub-assembly
  module




                                                                                X           X

                                                                                    Y   Y


                                                                           C1                   C2




   Page 18        OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                  © IBM Corp. 2012
Subsystem Types: Composite
Coarse-grained sub-assembly
  module
Explicit export and import of
  capabilities (e.g. packages,                                                            Root
  services)

                                                                   Import X                              Import Y
                                                                   Export Y                              Export X


                                                                                  X                  X

                                                                                      Y          Y


                                                                             C1                          C2




   Page 19          OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                    © IBM Corp. 2012
Subsystem Types: Composite
Coarse-grained sub-assembly
  module
Explicit export and import of
  capabilities (e.g. packages,                                                               Root
  services)
Composed of Resources (e.g.
  Bundles)                                                         Import X                                 Import Y
                                                                   Export Y                                 Export X

                                                                          A                                     C
                                                                                     X                  X
                                                                                 B                          D
                                                                                         Y          Y


                                                                              C1                            C2




   Page 20          OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                    © IBM Corp. 2012
Subsystem Types: Composite
Coarse-grained sub-assembly
  module
Explicit export and import of
  capabilities (e.g. packages,                                                               Root
  services)
Composed of Resources (e.g.
  Bundles)                                                         Import X                                 Import Y
                                                                   Export Y                                 Export X
Scoped
                                                                          A                                     C
                                                                                     X                  X
                                                                                 B                          D
                                                                                         Y          Y
                                                                                 E                          E
                                                                              C1                            C2




   Page 21          OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                    © IBM Corp. 2012
Subsystem Types: Composite
 Coarse-grained sub-assembly
   module
 Explicit export and import of
   capabilities (e.g. packages,                                                              Root
   services)
 Composed of Resources (e.g.
   Bundles)                                                        Import X                                 Import Y
                                                                   Export Y                                 Export X
 Scoped
                                                                          A                                     C
 Examples: RFC 138 Composite                                                         X                  X

   Bundles*, WebSphere                                                           B                          D
                                                                                         Y          Y
   Composite Bundles                                                             E                          E
                                                                              C1                            C2



*old design prior to resolver hooks
    Page 22         OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                    © IBM Corp. 2012
Subsystem Types: Application
Used for composing hosted
  applications using
  Resources (e.g. Bundles)



                                                                       A             C
                                                                             X   X


                                                                  B          E   E       B

                                                                   Y         Y   Y       Y




  Page 23       OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                © IBM Corp. 2012
Subsystem Types: Application
Used for composing hosted
  applications using
  Resources (e.g. Bundles)
Scoped


                                                                       A                 C
                                                                                X   X


                                                                  B          E      E        B

                                                                   Y            Y   Y        Y
                                                                           A1           A2




  Page 24       OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                © IBM Corp. 2012
Subsystem Types: Application
Used for composing hosted
  applications using
  Resources (e.g. Bundles)                                                          C   Root
Scoped
No exporting capabilities,
  implicit imports of
  dependencies                                                         A
                                                                                X              X
                                                                                                    C

                                                                  B          E                 E        B

                                                                   Y            Y              Y        Y
                                                                           A1                      A2




  Page 25       OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                © IBM Corp. 2012
Subsystem Types: Application
Used for composing hosted
  applications using
  Resources (e.g. Bundles)                                                          C   Root
Scoped
No exporting capabilities,
  implicit imports of
  dependencies                                                         A
                                                                                X              X
                                                                                                    C

Examples: Aries Application,                                      B          E                 E        B
  Virgo Scoped Plans,
  Virgo PARs                                                       Y
                                                                           A1
                                                                                Y              Y
                                                                                                   A2
                                                                                                        Y




   Page 26      OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                © IBM Corp. 2012
Example Combination

Subsystem Types can be                                                              A1                          A2
                                                                             G                                      H
mixed ‘n’ matched                                                                        X                  X
                                                                             F                                       F
Example shows:
Features used to assemble a Composite
                                                                        C1
Composite providing a ‘platform’ to
Applications
                                                                              A                                     C
                                                                                         X                  X
                                                                                    B                           D
                                                                                             Y          Y
                                                                                    E                           E
                                                                                     F1                     F2


                                                                                                 Root



    Page 27            OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                       © IBM Corp. 2012
Subsystem Meta-data


Manifest format with relaxed rules
    OSGI-INF/SUBSYSTEM.MF
Some headers unique to Subsystem type
Common concepts use same headers
Headers cover:
Identity and type
Content
Sharing policy
Human readable information



  Page 28         OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                  © IBM Corp. 2012
Subsystem Meta-data: Identity Headers



Identified by
   symbolic name                                                    Manifest-Version: 1.0
                                                                    Subsystem-ManifestVersion: 1.0
   version                                                          Subsystem-SymbolicName:
                                                                     my.first.subsystem
                                                                    Subsystem-Version: 1.0.0




  Page 29    OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
             © IBM Corp. 2012
Subsystem Meta-data: Type Header

Type governs the sharing policy
Standard Types:
                                                              Manifest-Version: 1.0
osgi.subsystem.application                                    Subsystem-ManifestVersion: 1.0
osgi.subsystem.composite                                      Subsystem-SymbolicName:
                                                               my.first.subsystem
osgi.subsystem.feature                                        Subsystem-Version: 1.0.0
                                                              Subsystem-Type:
One directive specified for                                    osgi.subsystem.application;
controlling where dependencies                                  provision-policy:=acceptDependencies
are installed




    Page 30           OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                      © IBM Corp. 2012
Content
Identifies the resources contained
in the Subsystem                                               Manifest-Version: 1.0
                                                               Subsystem-ManifestVersion: 1.0
Resources identified by name,                                  Subsystem-SymbolicName:
                                                                my.first.Subsystem
version (range) and type                                       Subsystem-Version: 1.0.0
Composites only allow fixed versions                           Subsystem-Type:
                                                                osgi.subsystem.application;
Standard types                                                    provision-policy:=acceptDependencies
                                                               Subsystem-Content:
osgi.bundle (default)                                           an.osgi.bundle1;version="[1.0, 1.1)",
osgi.fragment                                                   an.osgi.subsystem;
                                                                 type=osgi.subsystem.application;
subsystem types                                                  version="[1.2, 1.3)"
Can be optional




    Page 31             OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                        © IBM Corp. 2012
Explicit Sharing                                      Manifest-Version: 1.0
                                                      Subsystem-ManifestVersion: 1.0
                                                      Subsystem-Name: A Composite Subsystem
                                                      Subsystem-Description:
                                                       This is a Composite Subsystem
                                                      Subsystem-SymbolicName: my.first.composite
                                                      Subsystem-Version: 1.0.0
                                                      Subsystem-Type: osgi.subsystem.composite
                                                      Subsystem-Content:
Composite subsystems share                             an.osgi.bundle1;version="[1.0, 1.0]",
                                                       an.osgi.bundle2;version="[1.0, 1.0]"
nothing unless explicitly                             Subsystem-ExportService:
stated                                                 exported.service.Interface;
                                                       filter:="(color=blue)"
Re-use existing bundle                                Subsystem-ImportService:
headers where applicable                               imported.service.Interface
                                                      Export-Package:
Not applicable for implicitly                          an.exported.pkg;version="1.0"
isolated subsystems (i.e.                             Import-Package:
                                                       an.imported.pkg;version="[1.0, 2.0)"
Features and Applications)                            Require-Bundle:
                                                       a.required.bundle;
                                                       bundle-version="[1.0, 2.0)"




   Page 32          OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                    © IBM Corp. 2012
Informational
Headers for humans                                     Manifest-Version: 1.0
                                                       Subsystem-ManifestVersion: 1.0
                                                       Subsystem-Name: First Subsystem
                                                       Subsystem-Description:
                                                        This is my first ever Subsystem and
                                                        it's sooo cool.
                                                       Subsystem-SymbolicName:
                                                        my.first.subsystem
                                                       Subsystem-Version: 1.0.0
                                                       Subsystem-Type:
                                                        osgi.subsystem.application;
                                                          provision-policy:=acceptDependencies
                                                       Subsystem-Content:
                                                        an.osgi.bundle;version="[1.0, 1.1)",
                                                        an.osgi.subsystem;
                                                         type:=osgi.subsystem.application;
                                                         version="[1.2, 1.3)"




   Page 33     OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
               © IBM Corp. 2012
Portability
Subsystem Manifests are
portable to a point
Target Environment + Transitive
Dependencies must support the                                                     Subsystem Definition
required resource implementation
types (e.g. Blueprint, WAB, DS, etc)
Deployment manifests may be                                                  Dependencies

portable
Different Target Environments likely to
require different Transitive                                                      Target Environment
Dependencies




   Page 34           OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                     © IBM Corp. 2012
Packaging

Packaged in a Subsystem                                                         my.first.subsystem.esa
Archive
A zip file with .esa extension:                                                 OSGI-INF/SUBSYSTEM.MF
Subsystem Manifest (optional)
                                                                           OSGI-INF/DEPLOYMENT.MF
Deployment Manifest (optional)
Resources
(optional)                                                                  an.osgi.bundle-1.0.0.jar

                                                                           an.osgi.bundle2-1.0.0.jar




   Page 35         OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                   © IBM Corp. 2012
Subsystem Service
Life-cycle management                                                                  A1                      A2
Install, start, stop, uninstall
                                                                                   G                                H
Each subsystem logically                                                           F                                F
has it’s own Subsystem                                                                     A1                       A2
service
Navigation                                                                   C1
getParents, getChildren, getConstituents
Introspection                                                                      A              C1, F1, F2        C
                                                                                                   (A1, A2)
getHeaders, getState, getSymbolicName,
getVersion, getLocation                                                                   B                     D
                                                                                          F1                   F2



                                                                                          (ALL)     Root



    Page 36                  OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                             © IBM Corp. 2012
Subsystem Lifecycle: Installing
Root Subsystem Service




                                                                               (Subsystem)
                                                                                   Root




   Page 37        OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                  © IBM Corp. 2012
Subsystem Lifecycle: Installing
Root Subsystem Service
   used to install subsystems

                                                                               A1



                                                        installing



                                                                                                  install()
                                                                                    (Subsystem)
                                                                                        Root




   Page 38             OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                       © IBM Corp. 2012
Subsystem Lifecycle: Installing
Root Subsystem Service
   used to install subsystems
Repository based provisioning
                                                                               A1



                                                        installing



                                                                                                          install()
                                                                                            (Subsystem)
                                                                                                Root

                                                                              A, B, C, D,
                                                                                E, F, G




   Page 39             OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                       © IBM Corp. 2012
Subsystem Lifecycle: Installing
Root Subsystem Service
   used to install subsystems
Repository based provisioning
   Content Resources (specified by                                             A1
     Subsystem-Content header)                                                 A
                                                                  B
                                                        installing



                                                                                                          install()
                                                                                            (Subsystem)
                                                                                                Root

                                                                              A, B, C, D,
                                                                                E, F, G




   Page 40             OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                       © IBM Corp. 2012
Subsystem Lifecycle: Installing
Root Subsystem Service
   used to install subsystems
Repository based provisioning
   Content Resources (specified by                                             A1
     Subsystem-Content header)                                                 A
   Dependencies                                                   B
                                                        installing



                                                                                E                         install()
                                                                                            (Subsystem)
                                                                                       F
                                                                                                Root

                                                                              A, B, C, D,
                                                                                E, F, G




   Page 41             OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                       © IBM Corp. 2012
Subsystem Lifecycle: Installing
Root Subsystem Service
   used to install subsystems
Repository based provisioning
   Content Resources (specified by                                             A1
     Subsystem-Content header)                                                 A
   Dependencies                                                          B
                                                        installed



                                                                                E
                                                                                            (Subsystem)
                                                                                       F
                                                                                                Root

                                                                              A, B, C, D,
                                                                                E, F, G




   Page 42             OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                       © IBM Corp. 2012
Subsystem Lifecycle: Installing
Root Subsystem Service
   used to install subsystems
Repository based provisioning
   Content Resources (specified by                                             A1               A2
     Subsystem-Content header)                                                 A                 C
   Dependencies                                                          B                           D
   Share capabilities                                   installed                                        installed


                                                                                E           G
                                                                                                (Subsystem)
                                                                                       F
                                                                                                     Root

                                                                              A, B, C, D,
                                                                                E, F, G




   Page 43             OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                       © IBM Corp. 2012
Subsystem Lifecycle: Starting
Subsystem Service
   used to start subsystems                                             start()

                                                                                    A1           A2


                                                                                    A            C
                                                                            B                         D




                                                                                    E        G
                                                                                         F
                                                                                                      Root




   Page 44             OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                       © IBM Corp. 2012
Subsystem Lifecycle: Starting
Subsystem Service
   used to start subsystems                                             start()
Effect on referenced resources
                                                                                    A1           A2


                                                                                    A            C
                                                                            B                         D
                                                             starting



                                                                                    E        G
                                                                                         F
                                                                                                      Root




   Page 45             OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                       © IBM Corp. 2012
Subsystem Lifecycle: Starting
Subsystem Service
   used to start subsystems                                             start()
Effect on referenced resources
   Dependencies are started when one                                                A1           A2
     subsystem that uses them is
     started                                                                        A            C
                                                                            B                         D
                                                             starting



                                                                                    E        G
                                                                                         F
                                                                                                      Root




   Page 46             OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                       © IBM Corp. 2012
Subsystem Lifecycle: Starting
Subsystem Service
   used to start subsystems                                             start()
Effect on referenced resources
   Dependencies are started when one                                                A1           A2
     subsystem that uses them is
     started                                                                        A            C
   Content resources are started
                                                                            B                         D
                                                             starting



                                                                                    E        G
                                                                                         F
                                                                                                      Root




   Page 47             OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                       © IBM Corp. 2012
Subsystem Lifecycle: Starting
Subsystem Service
   used to start subsystems                                                                       start()
Effect on referenced resources
   Dependencies are started when one                                                A1           A2
     subsystem that uses them is
     started                                                                        A            C
   Content resources are started
                                                                            B                         D
                                                               active



                                                                                    E        G
                                                                                         F
                                                                                                      Root




   Page 48             OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                       © IBM Corp. 2012
Subsystem Lifecycle: Starting
Subsystem Service
   used to start subsystems
Effect on referenced resources
   Dependencies are started when one                                                A1           A2
     subsystem that uses them is
     started                                                                        A            C
   Content resources are started
                                                                            B                         D
                                                               active                                     active



                                                                                    E        G
                                                                                         F
                                                                                                      Root




   Page 49             OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                       © IBM Corp. 2012
Subsystem Lifecycle: Stopping
Subsystem Service
   used to stop a subsystem                                            stop()

                                                                                   A1           A2


                                                                                   A            C
                                                                           B                         D
                                                              active                                     active



                                                                                   E        G
                                                                                        F
                                                                                                     Root




   Page 50            OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                      © IBM Corp. 2012
Subsystem Lifecycle: Stopping
Subsystem Service
   used to stop a subsystem                                            stop()
Effect on referenced resources
                                                                                   A1           A2


                                                                                   A            C
                                                                           B                         D
                                                           stopping                                      started



                                                                                   E        G
                                                                                        F
                                                                                                     Root




   Page 51            OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                      © IBM Corp. 2012
Subsystem Lifecycle: Stopping
Subsystem Service
   used to stop a subsystem                                            stop()
Effect on referenced resources
   Content resources are stopped                                                   A1           A2


                                                                                   A            C
                                                                           B                         D
                                                           stopping                                      started



                                                                                   E        G
                                                                                        F
                                                                                                     Root




   Page 52            OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                      © IBM Corp. 2012
Subsystem Lifecycle: Stopping
Subsystem Service
   used to stop a subsystem                                            stop()
Effect on referenced resources
   Content resources are stopped                                                   A1           A2
   Dependencies are stopped when no
     subsystems that use them are                                                  A            C
     active
                                                                           B                         D
                                                           stopping                                      started



                                                                                   E        G
                                                                                        F
                                                                                                     Root




   Page 53            OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                      © IBM Corp. 2012
Subsystem Lifecycle: Stopping
Subsystem Service
   used to stop a subsystem
Effect on referenced resources
   Content resources are stopped                                                   A1           A2
   Dependencies are stopped when no
     subsystems that use them are                                                  A            C
     active
                                                                           B                         D
                                                           resolved                                      started



                                                                                   E        G
                                                                                        F
                                                                                                     Root




   Page 54            OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                      © IBM Corp. 2012
Subsystem Lifecycle: Stopping
Subsystem Service
   used to stop a subsystem                                                                      stop()
Effect on referenced resources
   Content resources are stopped                                                   A1           A2
   Dependencies are stopped when no
     subsystems that use them are                                                  A            C
     active
                                                                           B                         D
                                                           resolved                                      started



                                                                                   E        G
                                                                                        F
                                                                                                     Root




   Page 55            OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                      © IBM Corp. 2012
Subsystem Lifecycle: Stopping
Subsystem Service
   used to stop a subsystem
Effect on referenced resources
   Content resources are stopped                                                   A1           A2
   Dependencies are stopped when no
     subsystems that use them are                                                  A            C
     active
                                                                           B                         D
                                                           resolved                                      resolved



                                                                                   E        G
                                                                                        F
                                                                                                     Root




   Page 56            OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                      © IBM Corp. 2012
Subsystem Lifecycle: Uninstalling
Subsystem Service
   used to uninstall a subsystem                                      uninstall()

                                                                                    A1           A2


                                                                                    A            C
                                                                            B                         D
                                                            resolved                                      resolved



                                                                                    E        G
                                                                                         F
                                                                                                      Root




   Page 57             OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                       © IBM Corp. 2012
Subsystem Lifecycle: Uninstalling
Subsystem Service
   used to uninstall a subsystem                                      uninstall()
Effect on referenced resources
                                                                                    A1           A2


                                                                                    A            C
                                                                            B                         D
                                                         uninstalling                                     resolved



                                                                                    E        G
                                                                                         F
                                                                                                      Root




   Page 58             OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                       © IBM Corp. 2012
Subsystem Lifecycle: Uninstalling
Subsystem Service
   used to uninstall a subsystem                                      uninstall()
Effect on referenced resources
   Content resources are uninstalled                                                A1           A2


                                                                                    A            C
                                                                            B                         D
                                                         uninstalling                                     resolved



                                                                                    E        G
                                                                                         F
                                                                                                      Root




   Page 59             OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                       © IBM Corp. 2012
Subsystem Lifecycle: Uninstalling
Subsystem Service
   used to uninstall a subsystem                                      uninstall()
Effect on referenced resources
   Content resources are uninstalled                                                A1           A2
   Dependencies are uninstalled when
     no subsystem is installed that uses                                                         C
     them
                                                                                                      D
                                                         uninstalling                                     resolved



                                                                                    E        G
                                                                                         F
                                                                                                      Root




   Page 60             OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                       © IBM Corp. 2012
Subsystem Lifecycle: Uninstalling
Subsystem Service
   used to uninstall a subsystem
Effect on referenced resources
   Content resources are uninstalled                                                A1           A2
   Dependencies are uninstalled when
     no subsystem is installed that uses                                                         C
     them
                                                                                                      D
                                                         uninstalled                                      resolved



                                                                                             G
                                                                                         F
                                                                                                      Root




   Page 61             OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                       © IBM Corp. 2012
Subsystem Lifecycle: Uninstalling
Subsystem Service
   used to uninstall a subsystem                                                                 uninstall()
Effect on referenced resources
   Content resources are uninstalled                                                A1           A2
   Dependencies are uninstalled when
     no subsystem is installed that uses                                                         C
     them
                                                                                                      D
                                                         uninstalled                                      resolved



                                                                                             G
                                                                                         F
                                                                                                      Root




   Page 62             OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                       © IBM Corp. 2012
Subsystem Lifecycle: Uninstalling
Subsystem Service
   used to uninstall a subsystem
Effect on referenced resources
   Content resources are uninstalled                                                A1   A2
   Dependencies are uninstalled when
     no subsystem is installed that uses
     them

                                                         uninstalled                           uninstalled




                                                                                              Root




   Page 63             OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                       © IBM Corp. 2012
Summary

Subsystems are the standard way to manage groups of
resources
Repository based provisioning of subsystem content and
  dependencies
Subsystem types define sharing semantics
API enables management of Subsystem life-cycle
Standardized meta-data and packaging (.esa file)




  Page 64       OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                © IBM Corp. 2012
Trademarks

ational Business Machines Corp., registered in many jurisdictions worldwide.

tered trademarks of Oracle and/or its affiliates.

companies. A current list of IBM trademarks is available on the Web at “Copyright




         Page 65           OSGi Alliance Marketing © 2008-2012 . All Rights Reserved,
                           © IBM Corp. 2012

More Related Content

Similar to Subsystems for those occasions where bundles are just too small... - Tom Watson

Subsystems: For those occasions where bundles are just too small... - Graham ...
Subsystems: For those occasions where bundles are just too small... - Graham ...Subsystems: For those occasions where bundles are just too small... - Graham ...
Subsystems: For those occasions where bundles are just too small... - Graham ...
mfrancis
 
Migration Manager Workshop Leucir Marin Sep 2012
Migration Manager Workshop  Leucir Marin Sep 2012Migration Manager Workshop  Leucir Marin Sep 2012
Migration Manager Workshop Leucir Marin Sep 2012
alipaiva
 
Bytecode Weaving in OSGi – Enhance Your Classes, Not Your Dependency graph! ...
Bytecode Weaving in OSGi – Enhance Your Classes, Not Your Dependency graph!  ...Bytecode Weaving in OSGi – Enhance Your Classes, Not Your Dependency graph!  ...
Bytecode Weaving in OSGi – Enhance Your Classes, Not Your Dependency graph! ...
mfrancis
 
µServices for the rest of us - karl pauls
µServices for the rest of us - karl paulsµServices for the rest of us - karl pauls
µServices for the rest of us - karl pauls
mfrancis
 
20121108 vmug london event nimble sorage for vdi
20121108 vmug london event nimble sorage for vdi20121108 vmug london event nimble sorage for vdi
20121108 vmug london event nimble sorage for vdi
subtitle
 
Axel uhl sap@md-day2011
Axel uhl sap@md-day2011Axel uhl sap@md-day2011
Axel uhl sap@md-day2011
MDDAY11
 
AS7/OSGi One Day Talk 2012
AS7/OSGi One Day Talk 2012AS7/OSGi One Day Talk 2012
AS7/OSGi One Day Talk 2012
tdiesler
 

Similar to Subsystems for those occasions where bundles are just too small... - Tom Watson (20)

Subsystems: For those occasions where bundles are just too small... - Graham ...
Subsystems: For those occasions where bundles are just too small... - Graham ...Subsystems: For those occasions where bundles are just too small... - Graham ...
Subsystems: For those occasions where bundles are just too small... - Graham ...
 
Smart analytic optimizer how it works
Smart analytic optimizer   how it worksSmart analytic optimizer   how it works
Smart analytic optimizer how it works
 
Modular EJBs in OSGi - Tim Ward
Modular EJBs in OSGi - Tim WardModular EJBs in OSGi - Tim Ward
Modular EJBs in OSGi - Tim Ward
 
IBM Sponsorship Keynote: Towards a Modularity Maturity Model - Graham Charters
IBM Sponsorship Keynote: Towards a Modularity Maturity Model - Graham ChartersIBM Sponsorship Keynote: Towards a Modularity Maturity Model - Graham Charters
IBM Sponsorship Keynote: Towards a Modularity Maturity Model - Graham Charters
 
Multi-physics with MotionSolve
Multi-physics with MotionSolveMulti-physics with MotionSolve
Multi-physics with MotionSolve
 
OSGi Best Practices - Tim Ward
OSGi Best Practices - Tim WardOSGi Best Practices - Tim Ward
OSGi Best Practices - Tim Ward
 
Java Modularity with OSGi
Java Modularity with OSGiJava Modularity with OSGi
Java Modularity with OSGi
 
Migration Manager Workshop Leucir Marin Sep 2012
Migration Manager Workshop  Leucir Marin Sep 2012Migration Manager Workshop  Leucir Marin Sep 2012
Migration Manager Workshop Leucir Marin Sep 2012
 
Bytecode Weaving in OSGi – Enhance Your Classes, Not Your Dependency graph! ...
Bytecode Weaving in OSGi – Enhance Your Classes, Not Your Dependency graph!  ...Bytecode Weaving in OSGi – Enhance Your Classes, Not Your Dependency graph!  ...
Bytecode Weaving in OSGi – Enhance Your Classes, Not Your Dependency graph! ...
 
Modular Java EE in the Cloud
Modular Java EE in the CloudModular Java EE in the Cloud
Modular Java EE in the Cloud
 
µServices for the rest of us - karl pauls
µServices for the rest of us - karl paulsµServices for the rest of us - karl pauls
µServices for the rest of us - karl pauls
 
20121108 vmug london event nimble sorage for vdi
20121108 vmug london event nimble sorage for vdi20121108 vmug london event nimble sorage for vdi
20121108 vmug london event nimble sorage for vdi
 
IBM zEC12 zAware and Flash Express
IBM zEC12 zAware and Flash ExpressIBM zEC12 zAware and Flash Express
IBM zEC12 zAware and Flash Express
 
Ibm i (i5/os) 7.1 overview
Ibm i (i5/os) 7.1 overview Ibm i (i5/os) 7.1 overview
Ibm i (i5/os) 7.1 overview
 
zEnterpise integration of Linux and traditional workload
zEnterpise integration of Linux and traditional workloadzEnterpise integration of Linux and traditional workload
zEnterpise integration of Linux and traditional workload
 
Axel uhl sap@md-day2011
Axel uhl sap@md-day2011Axel uhl sap@md-day2011
Axel uhl sap@md-day2011
 
AS7/OSGi One Day Talk 2012
AS7/OSGi One Day Talk 2012AS7/OSGi One Day Talk 2012
AS7/OSGi One Day Talk 2012
 
Cdmi harmony
Cdmi harmonyCdmi harmony
Cdmi harmony
 
Structuring software systems with OSGi - Ulf Fildebrandt
Structuring software systems with OSGi - Ulf FildebrandtStructuring software systems with OSGi - Ulf Fildebrandt
Structuring software systems with OSGi - Ulf Fildebrandt
 
AD for i in modern world
AD for i in modern worldAD for i in modern world
AD for i in modern world
 

More from mfrancis

Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
mfrancis
 
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
mfrancis
 
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
mfrancis
 
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
mfrancis
 

More from mfrancis (20)

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

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

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
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 

Subsystems for those occasions where bundles are just too small... - Tom Watson

  • 1. Subsystems: for those occasions where bundles are just too small Tom Watson IBM March 27st 2012 OSGi Alliance Marketing © 2008-2010 . All Rights 1 Page Reserved COPYRIGHT © 2008-2012 OSGi Alliance. All Rights Reserved, © IBM Corp. 2012
  • 2. Agenda Motivation Model Types Meta-data Packaging Life-cycle and API Page 2 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 3. Motivation Enterprise Java platforms are awash with bundle collections Apache Aries – Applications Apache Geronimo - Applications Apache Karaf – Features Eclipse Virgo – Plans, PARs IBM WebSphere Application Server – Applications and Composite Oracle GlassFish – Applications Paremus Service Fabric – Systems Crying out for standardization Portability Tools Ecosystem Page 3 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 4. Subsystem Model: Hierarchy Subsystem Hierarchy Each has 1 or more parents (except root) subsystem root Page 4 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 5. Subsystem Model: Hierarchy Subsystem Hierarchy Each has 1 or more parents (except root) Each can have many children subsystem root S1 S2 S3 S4 S5 Page 5 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 6. Subsystem Model: Hierarchy Subsystem Hierarchy Each has 1 or more parents (except root) Each can have many children subsystem Each is contained in a Region region root Regions Provides isolation for a group of one S1 S2 or more subsystems Defined by a scoped subsystem S3 S4 S5 Page 6 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 7. Subsystem Model: Sharing Policies Scoped subsystems control the sharing policy bundle requirement capability root A B Y Y S1 S2 Page 7 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 8. Subsystem Model: Sharing Policies Scoped subsystems control the sharing policy bundle A region provides isolation requirement capability root A X B Y Y S1 S2 Page 8 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 9. Subsystem Model: Sharing Policies Scoped subsystems control the sharing policy bundle A region provides isolation requirement Selectively export capabilities to the capability parent root exports Y A B Y Y S1 S2 Page 9 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 10. Subsystem Model: Sharing Policies Scoped subsystems control the sharing policy bundle A region provides isolation requirement Selectively export capabilities to the capability parent root Selectively import capabilities from the parent imports Y exports Y A B Y Y S1 S2 Page 10 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 11. Subsystem Model: Sharing Policies Scoped subsystems control the sharing policy bundle A region provides isolation requirement Selectively export capabilities to the capability parent root Selectively import capabilities from the parent Unscoped subsystems share everything with other imports Y exports Y subsystems contained in the same A B region Y Y S1 S2 U1 C Y Page 11 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 12. Subsystem Types: Features Collection of Resources (e.g. Bundles) A C B D Page 12 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 13. Subsystem Types: Features Collection of Resources (e.g. Bundles) Shared life-cycle A C B D F1 F2 Page 13 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 14. Subsystem Types: Features Collection of Resources (e.g. Bundles) Shared life-cycle Can have children A C B D F1 F2 F F3 Page 14 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 15. Subsystem Types: Features Collection of Resources (e.g. Bundles) Shared life-cycle Can have children A C No scoping, able to share B D resources shared E resource E F1 F2 F F3 Page 15 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 16. Subsystem Types: Features Collection of Resources (e.g. Bundles) Shared life-cycle S1 Can have children A C No scoping, able to share B D resources shared E resource E Must be contained within a F1 F2 region F F3 Page 16 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 17. Subsystem Types: Features Collection of Resources (e.g. Bundles) Shared life-cycle S1 Can have children A C No scoping, able to share B D resources shared E resource E Must be contained within a F1 F2 region F Examples: Karaf Features, F3 Virgo unscoped Plans Page 17 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 18. Subsystem Types: Composite Coarse-grained sub-assembly module X X Y Y C1 C2 Page 18 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 19. Subsystem Types: Composite Coarse-grained sub-assembly module Explicit export and import of capabilities (e.g. packages, Root services) Import X Import Y Export Y Export X X X Y Y C1 C2 Page 19 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 20. Subsystem Types: Composite Coarse-grained sub-assembly module Explicit export and import of capabilities (e.g. packages, Root services) Composed of Resources (e.g. Bundles) Import X Import Y Export Y Export X A C X X B D Y Y C1 C2 Page 20 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 21. Subsystem Types: Composite Coarse-grained sub-assembly module Explicit export and import of capabilities (e.g. packages, Root services) Composed of Resources (e.g. Bundles) Import X Import Y Export Y Export X Scoped A C X X B D Y Y E E C1 C2 Page 21 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 22. Subsystem Types: Composite Coarse-grained sub-assembly module Explicit export and import of capabilities (e.g. packages, Root services) Composed of Resources (e.g. Bundles) Import X Import Y Export Y Export X Scoped A C Examples: RFC 138 Composite X X Bundles*, WebSphere B D Y Y Composite Bundles E E C1 C2 *old design prior to resolver hooks Page 22 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 23. Subsystem Types: Application Used for composing hosted applications using Resources (e.g. Bundles) A C X X B E E B Y Y Y Y Page 23 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 24. Subsystem Types: Application Used for composing hosted applications using Resources (e.g. Bundles) Scoped A C X X B E E B Y Y Y Y A1 A2 Page 24 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 25. Subsystem Types: Application Used for composing hosted applications using Resources (e.g. Bundles) C Root Scoped No exporting capabilities, implicit imports of dependencies A X X C B E E B Y Y Y Y A1 A2 Page 25 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 26. Subsystem Types: Application Used for composing hosted applications using Resources (e.g. Bundles) C Root Scoped No exporting capabilities, implicit imports of dependencies A X X C Examples: Aries Application, B E E B Virgo Scoped Plans, Virgo PARs Y A1 Y Y A2 Y Page 26 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 27. Example Combination Subsystem Types can be A1 A2 G H mixed ‘n’ matched X X F F Example shows: Features used to assemble a Composite C1 Composite providing a ‘platform’ to Applications A C X X B D Y Y E E F1 F2 Root Page 27 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 28. Subsystem Meta-data Manifest format with relaxed rules OSGI-INF/SUBSYSTEM.MF Some headers unique to Subsystem type Common concepts use same headers Headers cover: Identity and type Content Sharing policy Human readable information Page 28 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 29. Subsystem Meta-data: Identity Headers Identified by symbolic name Manifest-Version: 1.0 Subsystem-ManifestVersion: 1.0 version Subsystem-SymbolicName: my.first.subsystem Subsystem-Version: 1.0.0 Page 29 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 30. Subsystem Meta-data: Type Header Type governs the sharing policy Standard Types: Manifest-Version: 1.0 osgi.subsystem.application Subsystem-ManifestVersion: 1.0 osgi.subsystem.composite Subsystem-SymbolicName: my.first.subsystem osgi.subsystem.feature Subsystem-Version: 1.0.0 Subsystem-Type: One directive specified for osgi.subsystem.application; controlling where dependencies provision-policy:=acceptDependencies are installed Page 30 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 31. Content Identifies the resources contained in the Subsystem Manifest-Version: 1.0 Subsystem-ManifestVersion: 1.0 Resources identified by name, Subsystem-SymbolicName: my.first.Subsystem version (range) and type Subsystem-Version: 1.0.0 Composites only allow fixed versions Subsystem-Type: osgi.subsystem.application; Standard types provision-policy:=acceptDependencies Subsystem-Content: osgi.bundle (default) an.osgi.bundle1;version="[1.0, 1.1)", osgi.fragment an.osgi.subsystem; type=osgi.subsystem.application; subsystem types version="[1.2, 1.3)" Can be optional Page 31 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 32. Explicit Sharing Manifest-Version: 1.0 Subsystem-ManifestVersion: 1.0 Subsystem-Name: A Composite Subsystem Subsystem-Description: This is a Composite Subsystem Subsystem-SymbolicName: my.first.composite Subsystem-Version: 1.0.0 Subsystem-Type: osgi.subsystem.composite Subsystem-Content: Composite subsystems share an.osgi.bundle1;version="[1.0, 1.0]", an.osgi.bundle2;version="[1.0, 1.0]" nothing unless explicitly Subsystem-ExportService: stated exported.service.Interface; filter:="(color=blue)" Re-use existing bundle Subsystem-ImportService: headers where applicable imported.service.Interface Export-Package: Not applicable for implicitly an.exported.pkg;version="1.0" isolated subsystems (i.e. Import-Package: an.imported.pkg;version="[1.0, 2.0)" Features and Applications) Require-Bundle: a.required.bundle; bundle-version="[1.0, 2.0)" Page 32 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 33. Informational Headers for humans Manifest-Version: 1.0 Subsystem-ManifestVersion: 1.0 Subsystem-Name: First Subsystem Subsystem-Description: This is my first ever Subsystem and it's sooo cool. Subsystem-SymbolicName: my.first.subsystem Subsystem-Version: 1.0.0 Subsystem-Type: osgi.subsystem.application; provision-policy:=acceptDependencies Subsystem-Content: an.osgi.bundle;version="[1.0, 1.1)", an.osgi.subsystem; type:=osgi.subsystem.application; version="[1.2, 1.3)" Page 33 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 34. Portability Subsystem Manifests are portable to a point Target Environment + Transitive Dependencies must support the Subsystem Definition required resource implementation types (e.g. Blueprint, WAB, DS, etc) Deployment manifests may be Dependencies portable Different Target Environments likely to require different Transitive Target Environment Dependencies Page 34 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 35. Packaging Packaged in a Subsystem my.first.subsystem.esa Archive A zip file with .esa extension: OSGI-INF/SUBSYSTEM.MF Subsystem Manifest (optional) OSGI-INF/DEPLOYMENT.MF Deployment Manifest (optional) Resources (optional) an.osgi.bundle-1.0.0.jar an.osgi.bundle2-1.0.0.jar Page 35 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 36. Subsystem Service Life-cycle management A1 A2 Install, start, stop, uninstall G H Each subsystem logically F F has it’s own Subsystem A1 A2 service Navigation C1 getParents, getChildren, getConstituents Introspection A C1, F1, F2 C (A1, A2) getHeaders, getState, getSymbolicName, getVersion, getLocation B D F1 F2 (ALL) Root Page 36 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 37. Subsystem Lifecycle: Installing Root Subsystem Service (Subsystem) Root Page 37 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 38. Subsystem Lifecycle: Installing Root Subsystem Service used to install subsystems A1 installing install() (Subsystem) Root Page 38 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 39. Subsystem Lifecycle: Installing Root Subsystem Service used to install subsystems Repository based provisioning A1 installing install() (Subsystem) Root A, B, C, D, E, F, G Page 39 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 40. Subsystem Lifecycle: Installing Root Subsystem Service used to install subsystems Repository based provisioning Content Resources (specified by A1 Subsystem-Content header) A B installing install() (Subsystem) Root A, B, C, D, E, F, G Page 40 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 41. Subsystem Lifecycle: Installing Root Subsystem Service used to install subsystems Repository based provisioning Content Resources (specified by A1 Subsystem-Content header) A Dependencies B installing E install() (Subsystem) F Root A, B, C, D, E, F, G Page 41 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 42. Subsystem Lifecycle: Installing Root Subsystem Service used to install subsystems Repository based provisioning Content Resources (specified by A1 Subsystem-Content header) A Dependencies B installed E (Subsystem) F Root A, B, C, D, E, F, G Page 42 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 43. Subsystem Lifecycle: Installing Root Subsystem Service used to install subsystems Repository based provisioning Content Resources (specified by A1 A2 Subsystem-Content header) A C Dependencies B D Share capabilities installed installed E G (Subsystem) F Root A, B, C, D, E, F, G Page 43 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 44. Subsystem Lifecycle: Starting Subsystem Service used to start subsystems start() A1 A2 A C B D E G F Root Page 44 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 45. Subsystem Lifecycle: Starting Subsystem Service used to start subsystems start() Effect on referenced resources A1 A2 A C B D starting E G F Root Page 45 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 46. Subsystem Lifecycle: Starting Subsystem Service used to start subsystems start() Effect on referenced resources Dependencies are started when one A1 A2 subsystem that uses them is started A C B D starting E G F Root Page 46 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 47. Subsystem Lifecycle: Starting Subsystem Service used to start subsystems start() Effect on referenced resources Dependencies are started when one A1 A2 subsystem that uses them is started A C Content resources are started B D starting E G F Root Page 47 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 48. Subsystem Lifecycle: Starting Subsystem Service used to start subsystems start() Effect on referenced resources Dependencies are started when one A1 A2 subsystem that uses them is started A C Content resources are started B D active E G F Root Page 48 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 49. Subsystem Lifecycle: Starting Subsystem Service used to start subsystems Effect on referenced resources Dependencies are started when one A1 A2 subsystem that uses them is started A C Content resources are started B D active active E G F Root Page 49 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 50. Subsystem Lifecycle: Stopping Subsystem Service used to stop a subsystem stop() A1 A2 A C B D active active E G F Root Page 50 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 51. Subsystem Lifecycle: Stopping Subsystem Service used to stop a subsystem stop() Effect on referenced resources A1 A2 A C B D stopping started E G F Root Page 51 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 52. Subsystem Lifecycle: Stopping Subsystem Service used to stop a subsystem stop() Effect on referenced resources Content resources are stopped A1 A2 A C B D stopping started E G F Root Page 52 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 53. Subsystem Lifecycle: Stopping Subsystem Service used to stop a subsystem stop() Effect on referenced resources Content resources are stopped A1 A2 Dependencies are stopped when no subsystems that use them are A C active B D stopping started E G F Root Page 53 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 54. Subsystem Lifecycle: Stopping Subsystem Service used to stop a subsystem Effect on referenced resources Content resources are stopped A1 A2 Dependencies are stopped when no subsystems that use them are A C active B D resolved started E G F Root Page 54 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 55. Subsystem Lifecycle: Stopping Subsystem Service used to stop a subsystem stop() Effect on referenced resources Content resources are stopped A1 A2 Dependencies are stopped when no subsystems that use them are A C active B D resolved started E G F Root Page 55 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 56. Subsystem Lifecycle: Stopping Subsystem Service used to stop a subsystem Effect on referenced resources Content resources are stopped A1 A2 Dependencies are stopped when no subsystems that use them are A C active B D resolved resolved E G F Root Page 56 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 57. Subsystem Lifecycle: Uninstalling Subsystem Service used to uninstall a subsystem uninstall() A1 A2 A C B D resolved resolved E G F Root Page 57 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 58. Subsystem Lifecycle: Uninstalling Subsystem Service used to uninstall a subsystem uninstall() Effect on referenced resources A1 A2 A C B D uninstalling resolved E G F Root Page 58 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 59. Subsystem Lifecycle: Uninstalling Subsystem Service used to uninstall a subsystem uninstall() Effect on referenced resources Content resources are uninstalled A1 A2 A C B D uninstalling resolved E G F Root Page 59 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 60. Subsystem Lifecycle: Uninstalling Subsystem Service used to uninstall a subsystem uninstall() Effect on referenced resources Content resources are uninstalled A1 A2 Dependencies are uninstalled when no subsystem is installed that uses C them D uninstalling resolved E G F Root Page 60 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 61. Subsystem Lifecycle: Uninstalling Subsystem Service used to uninstall a subsystem Effect on referenced resources Content resources are uninstalled A1 A2 Dependencies are uninstalled when no subsystem is installed that uses C them D uninstalled resolved G F Root Page 61 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 62. Subsystem Lifecycle: Uninstalling Subsystem Service used to uninstall a subsystem uninstall() Effect on referenced resources Content resources are uninstalled A1 A2 Dependencies are uninstalled when no subsystem is installed that uses C them D uninstalled resolved G F Root Page 62 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 63. Subsystem Lifecycle: Uninstalling Subsystem Service used to uninstall a subsystem Effect on referenced resources Content resources are uninstalled A1 A2 Dependencies are uninstalled when no subsystem is installed that uses them uninstalled uninstalled Root Page 63 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 64. Summary Subsystems are the standard way to manage groups of resources Repository based provisioning of subsystem content and dependencies Subsystem types define sharing semantics API enables management of Subsystem life-cycle Standardized meta-data and packaging (.esa file) Page 64 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012
  • 65. Trademarks ational Business Machines Corp., registered in many jurisdictions worldwide. tered trademarks of Oracle and/or its affiliates. companies. A current list of IBM trademarks is available on the Web at “Copyright Page 65 OSGi Alliance Marketing © 2008-2012 . All Rights Reserved, © IBM Corp. 2012