SlideShare a Scribd company logo
Peter Kriens
                                   OSGi Evangelist




                       OSGi Next
dinsdag 14 juli 2009
OSGi Service Platform
                       Core Specification




dinsdag 14 juli 2009
Planning 4.2

                       • Core released for approval June 10
                       • Working on the final draft for
                           Compendium as we speak
                           • Compendium : July 10
                       •   Enterprise Release Autumn
                       •   Residential Release Spring 2010



dinsdag 14 juli 2009
Legend




dinsdag 14 juli 2009
Legend
                         Bundle
                           A




                         Bundle
                           B




dinsdag 14 juli 2009
Legend
                             Bundle
                               A




                       Service


                             Bundle
                               B




dinsdag 14 juli 2009
Legend
                             Bundle
                               A


                                 getService


                       Service
                                 registerService



                             Bundle
                               B




dinsdag 14 juli 2009
Legend
                             Bundle
                               A


                                 getService

                                                   Bundle
                       Service                       C
                                 registerService



                             Bundle
                               B




dinsdag 14 juli 2009
Legend
                             Bundle
                               A


                                 getService

                                                           Bundle
                       Service        addServiceListener
                                                             C
                                 registerService



                             Bundle
                               B




dinsdag 14 juli 2009
Legend
                                               Bundle
                                                 A


                                                   getService
                       Call/Dependency
                                                                             Bundle
                           Direction
                                         Service        addServiceListener
                                                                               C
                                                   registerService



                                               Bundle
                                                 B




dinsdag 14 juli 2009
Core

                       • Launching
                       • Bundle Tracker
                       • Bundle-License Header
                       • Service Hooks
                       • Negative Permissions

dinsdag 14 juli 2009
Launching

                       • To be inside a framework …
                       • Or outside a framework ...
                       • That’s the question!


dinsdag 14 juli 2009
Launching

                       • Standardizes launching different
                           frameworks
                       •   Will enable generic launchers
                       •   Allows you to embed a framework in your
                           application!




dinsdag 14 juli 2009
Launching
                       Map<String,String> p = new HashMap<String,String>();
                       List<String> impls = getMetaInfServices(
                           loader, FrameworkFactory.class.getName());
                       if (impls.size() != 1)
                             throw new RuntimeException(
                               "Too many frameworks: "+ impls);

                       Class<?> clazz = loader.loadClass(impls.get(0));
                       FrameworkFactory factory = (FrameworkFactory) clazz
                                            .newInstance();

                       Framework fw = factory.newFramework(p);
                       Bundle b = fw.installBundle( “http://.../load/…”);
                       b.start();




dinsdag 14 juli 2009
Bundle Tracker
                       • Simple tool a la Service Tracker to track
                           bundles
                       •   Very useful for extenders
                           • Bundles that provide additional
                             functionality based on data in a bundle
                       •   Tracks a set of states
                           • Handles all concurrency issues


dinsdag 14 juli 2009
Service Hooks

                       • FindHook
                        • Intercept getServiceReference(s)
                       • EventHook
                        • Intercept Service Event delivery
                       • ListenerHook
                        • Find out who is listening to what

dinsdag 14 juli 2009
Service Hooks
                            Bundle
                              A




                            Bundle
                              B


dinsdag 14 juli 2009
Service Hooks
                            Bundle
                              A




                                     Proxy
                                     Bundle




                            Bundle
                              B


dinsdag 14 juli 2009
Service Hooks
                            Bundle
                              A




                                      FindHook   Proxy
                                     EventHook   Bundle




                            Bundle
                              B


dinsdag 14 juli 2009
Service Hooks
                            Bundle
                              A




                                      FindHook   Proxy
                                     EventHook   Bundle




                            Bundle
                              B


dinsdag 14 juli 2009
Service Hooks
                            Bundle
                              A
                                                 ListenerHook




                                      FindHook    Proxy
                                     EventHook    Bundle




                            Bundle
                              B


dinsdag 14 juli 2009
Service Hooks
                            Bundle
                              A
                                                 ListenerHook




                                      FindHook    Proxy
                                     EventHook    Bundle




                            Bundle
                              B


dinsdag 14 juli 2009
Negative Permissions

                       • Java 2 Permissions are only positive
                       • That is, you grant a permission P
                        • PackagePermission(com.acme,IMPORT)
                       • Very hard to say, all permissions except P
                       • Lack of deny permissions

dinsdag 14 juli 2009
Negative Permissions

                 DENY {
                    [...BundleSignerCondition "cn=*, o=ACME" "!" ]
                    (...PackagePermission "com.acme.secret.*"
                          "import,exportonly" )
                 }
                 ALLOW {
                     (...PackagePermission "*" "*" )
                 }




dinsdag 14 juli 2009
Compendium

                       • Initial Provisioning
                       • Bundle Tracker
                       • Declarative Services
                       • Remote Services
                       • Blueprint Extender

dinsdag 14 juli 2009
Remote Services

                       • RFC 119
                       • Formerly Distributed OSGi
                       • Distribution Software uses services to:
                        • Maps a service to/from a remote system
                        • Uses a service to abstract a
                           communication endpoint



dinsdag 14 juli 2009
Remote Services


                          Distribution   Distribution
                           Provider       Provider



                                                         X’



                                                        Bundle
                                                          B



dinsdag 14 juli 2009
Remote Services


                              Distribution   Distribution
                       X       Provider       Provider



                                                             X’



                                                            Bundle
                                                              B



dinsdag 14 juli 2009
Remote Services
                       Bundle
                         A



                                Distribution   Distribution
                         X       Provider       Provider



                                                               X’



                                                              Bundle
                                                                B



dinsdag 14 juli 2009
Remote Services
                       Bundle
                         A



                                Distribution   Distribution
                         X       Provider       Provider



                                                               X’



                                                              Bundle
                                                                B



dinsdag 14 juli 2009
Remote Services
                       Bundle
                         A



                                Distribution   Distribution
                         X       Provider       Provider



                                                               X’



                                                              Bundle
                                                                B



dinsdag 14 juli 2009
Remote Services
                       Bundle
                         A



                                Distribution   Distribution
                         X       Provider       Provider


                                  exports
                                                               X’



                                                              Bundle
                                                                B



dinsdag 14 juli 2009
Remote Services
                       Bundle
                         A



                                Distribution   Distribution
                         X       Provider       Provider


                                  exports
                                                               X’



                                                              Bundle
                                                                B



dinsdag 14 juli 2009
Remote Services
                       Bundle
                         A



                                Distribution   Distribution
                         X       Provider       Provider


                                  exports
                                                               X’



                                                              Bundle
                                                                B



dinsdag 14 juli 2009
Remote Services
                       Bundle
                         A



                                Distribution   Distribution
                         X       Provider       Provider


                                  exports
                                                               X’



                                                              Bundle
                                                                B



dinsdag 14 juli 2009
Remote Services
                       Bundle
                         A



                                Distribution   Distribution
                         X       Provider       Provider


                                  exports       imports
                                                               X’



                                                              Bundle
                                                                B



dinsdag 14 juli 2009
Remote Services
                       Bundle
                         A



                                Distribution   Distribution
                         X       Provider       Provider


                                  exports       imports
                                                               X’



                                                              Bundle
                                                                B



dinsdag 14 juli 2009
Remote Services
                       Bundle
                         A



                                Distribution   Distribution
                         X       Provider       Provider


                                  exports       imports
                                                               X’



                                                              Bundle
                                                                B



dinsdag 14 juli 2009
Remote Services
                       Bundle
                         A



                                Distribution   Distribution
                         X       Provider       Provider


                                  exports       imports
                                                               X’



                                                              Bundle
                                                                B



dinsdag 14 juli 2009
Remote Services
                       Bundle
                         A



                                  Distribution   Distribution
                         X         Provider       Provider


                                    exports       imports
                                                                 X’



                                                                Bundle
                                                                  B
                                Framework 1       Framework 2

dinsdag 14 juli 2009
Remote Services
                       • Service Properties define the interaction
                       • Intents specify the required/provided
                           capabilities
                           • Filters used to match
                       •   Service Component Architecture (SCA)
                           • Interaction specified, not mandated
                       •   Flexible configuration options


dinsdag 14 juli 2009
Service Properties
                                              Distribution Provider
                         <other properties>                           <other properties>

                   service.exported.intents

                            service.intents                           service.exported.intents

         service.exported.intents.extra                               service.imported

              service.exported.interfaces                             objectClass

                   service.exported.configs                           service.imported.configs




                       remote.intents.supported
                       remote.configs.supported



                       Framework 1                                           Framework 2


dinsdag 14 juli 2009
Service Properties
                                              Distribution Provider
                         <other properties>                           <other properties>

                   service.exported.intents

                            service.intents                           service.exported.intents

         service.exported.intents.extra                               service.imported

              service.exported.interfaces                             objectClass

                   service.exported.configs                           service.imported.configs




                       remote.intents.supported
                       remote.configs.supported



                       Framework 1                                           Framework 2


dinsdag 14 juli 2009
Service Properties
                                              Distribution Provider
                         <other properties>                           <other properties>

                   service.exported.intents

                            service.intents                           service.exported.intents

         service.exported.intents.extra                               service.imported

              service.exported.interfaces                             objectClass

                   service.exported.configs                           service.imported.configs



                                                   endpoint


                       remote.intents.supported
                       remote.configs.supported



                       Framework 1                                           Framework 2


dinsdag 14 juli 2009
Service Properties
                                              Distribution Provider
                         <other properties>                           <other properties>

                   service.exported.intents

                            service.intents                           service.exported.intents

         service.exported.intents.extra                               service.imported

              service.exported.interfaces                             objectClass

                   service.exported.configs                           service.imported.configs



                                                   endpoint


                       remote.intents.supported
                       remote.configs.supported



                       Framework 1                                           Framework 2


dinsdag 14 juli 2009
Blueprint Extender
                       • RFC 124
                       • Provides Spring DM Functionality
                       • Blueprint Extender uses XML definitions in
                           bundle to create & wire application objects
                       •   Namespace Handler services, not yet :-(
                       •   Provides damping
                           • Proxies services


dinsdag 14 juli 2009
Blueprint Extender


       XML




dinsdag 14 juli 2009
Blueprint Extender


                             Blueprint
       XML
                             Container




dinsdag 14 juli 2009
Blueprint Extender


                             Blueprint
       XML
                             Container




dinsdag 14 juli 2009
Blueprint Extender


                                           Blueprint
       XML
                                           Container



                       BeanMetadata

                         ServiceMetadata

                             Reference
                             Metadata


dinsdag 14 juli 2009
Blueprint Extender


                                           Blueprint
       XML
                                           Container



                       BeanMetadata                Bean

                         ServiceMetadata

                             Reference
                             Metadata


dinsdag 14 juli 2009
Blueprint Extender


                                           Blueprint
       XML
                                           Container



                       BeanMetadata                Bean

                         ServiceMetadata               Service

                             Reference
                             Metadata


dinsdag 14 juli 2009
Blueprint Extender


                                           Blueprint
       XML
                                           Container



                       BeanMetadata                Bean

                         ServiceMetadata               Service

                             Reference
                             Metadata                            Reference


dinsdag 14 juli 2009
Blueprint Extender


                                           Blueprint
       XML
                                           Container



                       BeanMetadata                Bean

                         ServiceMetadata               Service

                             Reference
                             Metadata                            Reference


dinsdag 14 juli 2009
Blueprint Extender


                                           Blueprint
       XML
                                           Container



                       BeanMetadata                Bean

                         ServiceMetadata               Service

                             Reference
                             Metadata                            Reference


dinsdag 14 juli 2009
Blueprint Extender


                                           Blueprint
       XML
                                           Container



                       BeanMetadata                Bean

                         ServiceMetadata               Service

                             Reference
                             Metadata                            Reference


dinsdag 14 juli 2009
Blueprint Extender
                                                                             Application
                                                                              Objects




                                           Blueprint
       XML
                                           Container



                       BeanMetadata                Bean

                         ServiceMetadata               Service

                             Reference
                             Metadata                            Reference


dinsdag 14 juli 2009
Metadata




                         Null                   NonNull                                    Props
                       Metadata                 Metadata                                  Metadata




                        IdRef        Value      Component          Collection               Map
                       Metadata     Metadata     Metadata          Metadata               Metadata




                         Ref                                                                Map
                       Metadata                                                             Entry




                        Service
                                                                        Bean              Service
                       Reference                  Target
                                                                       Metadata           Metadata
                       Metadata




                          Ref
                                    Reference                Bean               Bean
                       Collection
                                    Metadata                Property          Argument
                       Metadata




                                                                                         Registration
                       Listener
                                                                                          Listener




dinsdag 14 juli 2009
Damping Reference

                                                 service
                                                 object


                                                 service
                       App          proxy        object


                                                 service
                                                 object




dinsdag 14 juli 2009
Damping Reference

                                                 service
                                                 object


                                                 service
                       App          proxy        object


                                                 service
                                                 object




dinsdag 14 juli 2009
Damping Reference

                                                 service
                                                 object


                                                 service
                       App          proxy        object


                                                 service
                                                 object




dinsdag 14 juli 2009
Damping Reference

                                                 service
                                                 object


                                                 service
                       App          proxy        object


                                                 service
                                                 object




dinsdag 14 juli 2009
Damping Reference

                                                 service
                                                 object


                                                 service
                       App          proxy        object


                                                 service
                                                 object




dinsdag 14 juli 2009
Damping Reference

                                                 service
                                                 object


                                                 service
                       App          proxy        object


                                                 service
                                                 object




dinsdag 14 juli 2009
Damping Reference

                                                 service
                                                 object



                       App          proxy


                                                 service
                                                 object




dinsdag 14 juli 2009
Damping Reference

                                                 service
                                                 object



                       App          proxy


                                                 service
                                                 object




dinsdag 14 juli 2009
Damping Reference

                                                 service
                                                 object



                       App          proxy


                                                 service
                                                 object




dinsdag 14 juli 2009
Damping Reference

                                                 service
                                                 object



                       App          proxy


                                                 service
                                                 object




dinsdag 14 juli 2009
Damping Ref-list

                                                service
                                      proxy     object


                                                service
                       App     List   proxy     object


                                                service
                                      proxy     object




dinsdag 14 juli 2009
Enterprise

                       • Transactions
                       • JDBC Database Access
                       • JMX
                       • JNDI
                       • JPA
                       • Connectors

dinsdag 14 juli 2009
Experimental


                       • TSL
                       • Nested Frameworks
                       • OBR


dinsdag 14 juli 2009
TSL

                       • A Tiny Script Language
                        • Feels like a shell
                        • Acts like a script language
                       • Uses reflection, but simplifies syntax
                        • No new commands
                       • Will become Felix project

dinsdag 14 juli 2009
TSL
                                     Telnet   Console            ...
                                      Shell    Shell            Shell


                        OSGi                            Command
                       Convert.                           Shell
                                  Converter
                                                               ThreadIO
                        Eclipse                TSL                            Thread
                       Convert.                Impl                             IO

                                                        *
                        Felix                               osgi.command.name=xxx
                       Convert.                             osgi.command.function=yyy

                                              Frame
                                      Basic                      ...
                                              Work
                                     Cmnds                     Cmnds
                                              Cmnds

dinsdag 14 juli 2009
TSL
                       $ echo Hello World
                       Hello World
                       $ echo <bundle 1>

                 initial@reference:file:org.eclipse.osgi.util_3.1.200.v200
                 70605.jar/ [1]

                       $ ls
                       eclipse
                       eclipse.ini
                       load
                       runner

                       $ ls /Ws
                       aQute
                       felix-trunk
                       osgi
                       osgi-books


dinsdag 14 juli 2009
TSL
                       $ <bundle 6> headers
                       Tool                 Bnd-0.0.169
                       Bundle-Activator     aQute.fileinstall.FileInstall
                       Export-Package        aQute.fileinstall ...
                       Created-By           1.6.0_01 (Sun Microsystems Inc.)
                       Bnd-LastModified     1184160147361
                       Bundle-Version       1.3
                       Bundle-ManifestVersion2
                       Manifest-Version     1.0
                       Import-Package     aQute.fileinstall, ...
                       Bundle-Name          biz.aQute.fileinstall
                       Bundle-Description This bundle watches a ....
                       Bundle-SymbolicName biz.aQute.fileinstall




dinsdag 14 juli 2009
TSL
                       $ help={each <<$it class> declaredmethods> {$it name }}
                       aQute.shell.runtime.Closure@90a284
                       $ help <bundle 6>
                       loadClass
                       getResource
                       ...
                       checkLoader
                       closeBundleLoader
                       getLoaderProxy

                       $ echo $exception
                       E: java.lang.NullPointerException
                       $ echo $exception
                       java.lang.NullPointerException
                       $ $exception printstacktrace
                       $ // the output is temporarily on reall stderr ...




dinsdag 14 juli 2009
Nested Frameworks
                       • Application Server Vendors want scoping of
                           applications …
                       •   Basic Idea OSGi is:
                           • The Application == the set of installed
                             bundles
                       •   Compromise:
                           • All Frameworks to be nested


dinsdag 14 juli 2009
Nested Frameworks
                       System
                       Bundle




                                    Framework P

dinsdag 14 juli 2009
Nested Frameworks
                       System
                       Bundle




                                 Composite
                                Bundle




                                             Framework P

dinsdag 14 juli 2009
Nested Frameworks
                                             Framework C
                       System
                       Bundle




                                 Composite
                                Bundle




                                                Framework P

dinsdag 14 juli 2009
Nested Frameworks
                                                      Framework C
                       System
                       Bundle                System
                                             Bundle



                                 Composite
                                Bundle




                                                         Framework P

dinsdag 14 juli 2009
Nested Frameworks
                                                          Framework C
                       System
                       Bundle                  System
                                               Bundle



                                 Composite    Surrogate
                                Bundle       Bundle




                                                             Framework P

dinsdag 14 juli 2009
Nested Frameworks
                                                          Framework C
                       System
                       Bundle                  System
                                               Bundle



                                 Composite    Surrogate
                                Bundle       Bundle




                                                             Framework P

dinsdag 14 juli 2009
Nested Frameworks
                                                          Framework C
                       System
                       Bundle                  System
                                               Bundle



                                 Composite    Surrogate
                                Bundle       Bundle




                                   App
                                  Bundle
                                    A
                                                             Framework P

dinsdag 14 juli 2009
Nested Frameworks
                                                          Framework C
                       System
                       Bundle                  System
                                               Bundle



                                 Composite    Surrogate
                                Bundle       Bundle




                                   App
                                  Bundle
                                    A
                                                             Framework P

dinsdag 14 juli 2009
Nested Frameworks
                                                          Framework C
                       System
                       Bundle                  System
                                               Bundle



                                 Composite    Surrogate
                                Bundle       Bundle




                                   App
                                  Bundle
                                    A
                                                             Framework P

dinsdag 14 juli 2009
Nested Frameworks
                                                            Framework C
                       System
                       Bundle                  System
                                               Bundle



                                 Composite    Surrogate
                                Bundle       Bundle        App
                                                          Bundle
                                                            B




                                   App
                                  Bundle
                                    A
                                                                   Framework P

dinsdag 14 juli 2009
Nested Frameworks
                                                            Framework C
                       System
                       Bundle                  System
                                               Bundle



                                 Composite    Surrogate
                                Bundle       Bundle        App
                                                          Bundle
                                                            B




                                   App
                                  Bundle
                                    A
                                                                   Framework P

dinsdag 14 juli 2009
Nested Frameworks
                                                            Framework C
                       System
                       Bundle                  System
                                               Bundle



                                 Composite    Surrogate
                                Bundle       Bundle        App
                                                          Bundle
                                                            B




                                   App
                                  Bundle
                                    A
                                                                   Framework P

dinsdag 14 juli 2009
Nested Frameworks
                                                            Framework C
                       System
                       Bundle                  System
                                               Bundle



                                 Composite    Surrogate
                                Bundle       Bundle        App
                                                          Bundle
                                                            B




                                   App
                                  Bundle
                                    A
                                                                   Framework P

dinsdag 14 juli 2009
Java Modularity




dinsdag 14 juli 2009
Java Modularity


                         294
dinsdag 14 juli 2009
Java Modularity


                         294
dinsdag 14 juli 2009
                          7
Java Modularity



                          42
dinsdag 14 juli 2009
Java Modularity




dinsdag 14 juli 2009
Java Modularity




dinsdag 14 juli 2009
Java Modularity




dinsdag 14 juli 2009
Java Modularity




dinsdag 14 juli 2009
Java Modularity




dinsdag 14 juli 2009
Java Modularity


                       module

dinsdag 14 juli 2009
Java Modularity
                       module class Foo {}

                       public class Bar {
                         module int foo() {}
                       }

                       module interface Baz {}




dinsdag 14 juli 2009
Java Modularity

                         Visibility
                             vs
                        Accessibility

dinsdag 14 juli 2009
Visibility

                       Class                Class
                         S                   T




dinsdag 14 juli 2009
Visibility

                       Class                Class
                         S                   T




dinsdag 14 juli 2009
Visibility

                       Class                Class
                         S                   T




dinsdag 14 juli 2009
Visibility

                       Class                Class
                         S                   T




dinsdag 14 juli 2009
Visibility

                       Class                Class
                         S                   T




dinsdag 14 juli 2009
Visibility

                                  Module
                                  System
                       Class                Class
                         S                   T




dinsdag 14 juli 2009
Accessibility

                            public

                           module

                           package

                           private




dinsdag 14 juli 2009
Accessibility


                            Class
                              S




dinsdag 14 juli 2009
Accessibility


                            Class           Class
                              S              T

                                    class




dinsdag 14 juli 2009
Accessibility


                            Class           Class
                              S              T

                                    class



                            Class
                             U
                                            package



dinsdag 14 juli 2009
Accessibility
                                              module
                            Class
                             V




                            Class           Class
                              S              T

                                    class



                            Class
                             U
                                            package



dinsdag 14 juli 2009
Accessibility
                                              module
                            Class
                             V




                            Class           Class
                              S              T

                                    class



                            Class
                             U
                                            package



dinsdag 14 juli 2009
Accessibility
                                                 module
                               Class
                                V




                       Class   Class           Class
                        W        S              T

                                       class



                               Class
                                U
                                               package



dinsdag 14 juli 2009
Is JSR 294 a
 Meta Module System?
     (Implemented by OSGi™, Jigsaw, Guice, …)




dinsdag 14 juli 2009
Is JSR 294 a
 Meta Module System?
     (Implemented by OSGi™, Jigsaw, Guice, …)


                        No Java™
                       Standard for
dinsdag 14 juli 2009
                         Modules!
OSGi Modules: Bundle
                            = Module
                                Bundle

                                   module




dinsdag 14 juli 2009
OSGi Modules: Bundle
                        = Multiple Modules
                                Bundle

                                 module A




                                 module B




dinsdag 14 juli 2009
OSGi Modules:
                  Modules Cross Bundles
                       Bundle A            Bundle B




                                  module




dinsdag 14 juli 2009
OSGi Modules: Nested?

                            Bundle

                           module A


                           module B




dinsdag 14 juli 2009
Module Dependencies
                           Bundle A     Bundle B

                             module A     module B




dinsdag 14 juli 2009
Module Dependencies
                           Bundle A                Bundle B

                             module A                module B
                                        requires


                                        provides


                                        permits




dinsdag 14 juli 2009
Module Dependencies




                                        ?
                           Bundle A                Bundle B

                             module A                module B
                                        requires


                                        provides


                                        permits




dinsdag 14 juli 2009
dinsdag 14 juli 2009
Containers?


                       π     3.14
dinsdag 14 juli 2009
Containers?


                       π
                       JL S    3.14
dinsdag 14 juli 2009
Containers?


                       π
                       JL S    3.14
                                 JV M



dinsdag 14 juli 2009
Containers?




dinsdag 14 juli 2009
Containers?
                       container com.acme




dinsdag 14 juli 2009
Containers?
                       container com.acme
                          module com.acme.foo;




dinsdag 14 juli 2009
Containers?
                       container com.acme
                          module com.acme.foo;
                            module com.acme.foo;
                            module bar;




dinsdag 14 juli 2009
Containers?
                       container com.acme
                          module com.acme.foo;
                            module com.acme.foo;
                            module bar;

                             module com.acme.foo;   module com.acme.foo;
                             module bar;            module fiz;
                             private package one;   public package one;




dinsdag 14 juli 2009
Containers?
                       container com.acme
                          module com.acme.foo;
                            module com.acme.foo;
                            module bar;

                             module com.acme.foo;     module com.acme.foo;
                             module bar;              module fiz;
                             private package one;     public package one;

                               module com.acme.foo;    module com.acme.foo;
                               module bar;             module fiz;
                               package one;            package two;
                               import module fiz;
                               module class A {}       class B {}




dinsdag 14 juli 2009
Q&A



dinsdag 14 juli 2009

More Related Content

More from mfrancis

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

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

FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 

OSGi Users' Forum UK - OSGi Release 4 v4.2 Spec Overview - Peter Kriens

  • 1. Peter Kriens OSGi Evangelist OSGi Next dinsdag 14 juli 2009
  • 2. OSGi Service Platform Core Specification dinsdag 14 juli 2009
  • 3. Planning 4.2 • Core released for approval June 10 • Working on the final draft for Compendium as we speak • Compendium : July 10 • Enterprise Release Autumn • Residential Release Spring 2010 dinsdag 14 juli 2009
  • 5. Legend Bundle A Bundle B dinsdag 14 juli 2009
  • 6. Legend Bundle A Service Bundle B dinsdag 14 juli 2009
  • 7. Legend Bundle A getService Service registerService Bundle B dinsdag 14 juli 2009
  • 8. Legend Bundle A getService Bundle Service C registerService Bundle B dinsdag 14 juli 2009
  • 9. Legend Bundle A getService Bundle Service addServiceListener C registerService Bundle B dinsdag 14 juli 2009
  • 10. Legend Bundle A getService Call/Dependency Bundle Direction Service addServiceListener C registerService Bundle B dinsdag 14 juli 2009
  • 11. Core • Launching • Bundle Tracker • Bundle-License Header • Service Hooks • Negative Permissions dinsdag 14 juli 2009
  • 12. Launching • To be inside a framework … • Or outside a framework ... • That’s the question! dinsdag 14 juli 2009
  • 13. Launching • Standardizes launching different frameworks • Will enable generic launchers • Allows you to embed a framework in your application! dinsdag 14 juli 2009
  • 14. Launching Map<String,String> p = new HashMap<String,String>(); List<String> impls = getMetaInfServices( loader, FrameworkFactory.class.getName()); if (impls.size() != 1) throw new RuntimeException( "Too many frameworks: "+ impls); Class<?> clazz = loader.loadClass(impls.get(0)); FrameworkFactory factory = (FrameworkFactory) clazz .newInstance(); Framework fw = factory.newFramework(p); Bundle b = fw.installBundle( “http://.../load/…”); b.start(); dinsdag 14 juli 2009
  • 15. Bundle Tracker • Simple tool a la Service Tracker to track bundles • Very useful for extenders • Bundles that provide additional functionality based on data in a bundle • Tracks a set of states • Handles all concurrency issues dinsdag 14 juli 2009
  • 16. Service Hooks • FindHook • Intercept getServiceReference(s) • EventHook • Intercept Service Event delivery • ListenerHook • Find out who is listening to what dinsdag 14 juli 2009
  • 17. Service Hooks Bundle A Bundle B dinsdag 14 juli 2009
  • 18. Service Hooks Bundle A Proxy Bundle Bundle B dinsdag 14 juli 2009
  • 19. Service Hooks Bundle A FindHook Proxy EventHook Bundle Bundle B dinsdag 14 juli 2009
  • 20. Service Hooks Bundle A FindHook Proxy EventHook Bundle Bundle B dinsdag 14 juli 2009
  • 21. Service Hooks Bundle A ListenerHook FindHook Proxy EventHook Bundle Bundle B dinsdag 14 juli 2009
  • 22. Service Hooks Bundle A ListenerHook FindHook Proxy EventHook Bundle Bundle B dinsdag 14 juli 2009
  • 23. Negative Permissions • Java 2 Permissions are only positive • That is, you grant a permission P • PackagePermission(com.acme,IMPORT) • Very hard to say, all permissions except P • Lack of deny permissions dinsdag 14 juli 2009
  • 24. Negative Permissions DENY { [...BundleSignerCondition "cn=*, o=ACME" "!" ] (...PackagePermission "com.acme.secret.*" "import,exportonly" ) } ALLOW { (...PackagePermission "*" "*" ) } dinsdag 14 juli 2009
  • 25. Compendium • Initial Provisioning • Bundle Tracker • Declarative Services • Remote Services • Blueprint Extender dinsdag 14 juli 2009
  • 26. Remote Services • RFC 119 • Formerly Distributed OSGi • Distribution Software uses services to: • Maps a service to/from a remote system • Uses a service to abstract a communication endpoint dinsdag 14 juli 2009
  • 27. Remote Services Distribution Distribution Provider Provider X’ Bundle B dinsdag 14 juli 2009
  • 28. Remote Services Distribution Distribution X Provider Provider X’ Bundle B dinsdag 14 juli 2009
  • 29. Remote Services Bundle A Distribution Distribution X Provider Provider X’ Bundle B dinsdag 14 juli 2009
  • 30. Remote Services Bundle A Distribution Distribution X Provider Provider X’ Bundle B dinsdag 14 juli 2009
  • 31. Remote Services Bundle A Distribution Distribution X Provider Provider X’ Bundle B dinsdag 14 juli 2009
  • 32. Remote Services Bundle A Distribution Distribution X Provider Provider exports X’ Bundle B dinsdag 14 juli 2009
  • 33. Remote Services Bundle A Distribution Distribution X Provider Provider exports X’ Bundle B dinsdag 14 juli 2009
  • 34. Remote Services Bundle A Distribution Distribution X Provider Provider exports X’ Bundle B dinsdag 14 juli 2009
  • 35. Remote Services Bundle A Distribution Distribution X Provider Provider exports X’ Bundle B dinsdag 14 juli 2009
  • 36. Remote Services Bundle A Distribution Distribution X Provider Provider exports imports X’ Bundle B dinsdag 14 juli 2009
  • 37. Remote Services Bundle A Distribution Distribution X Provider Provider exports imports X’ Bundle B dinsdag 14 juli 2009
  • 38. Remote Services Bundle A Distribution Distribution X Provider Provider exports imports X’ Bundle B dinsdag 14 juli 2009
  • 39. Remote Services Bundle A Distribution Distribution X Provider Provider exports imports X’ Bundle B dinsdag 14 juli 2009
  • 40. Remote Services Bundle A Distribution Distribution X Provider Provider exports imports X’ Bundle B Framework 1 Framework 2 dinsdag 14 juli 2009
  • 41. Remote Services • Service Properties define the interaction • Intents specify the required/provided capabilities • Filters used to match • Service Component Architecture (SCA) • Interaction specified, not mandated • Flexible configuration options dinsdag 14 juli 2009
  • 42. Service Properties Distribution Provider <other properties> <other properties> service.exported.intents service.intents service.exported.intents service.exported.intents.extra service.imported service.exported.interfaces objectClass service.exported.configs service.imported.configs remote.intents.supported remote.configs.supported Framework 1 Framework 2 dinsdag 14 juli 2009
  • 43. Service Properties Distribution Provider <other properties> <other properties> service.exported.intents service.intents service.exported.intents service.exported.intents.extra service.imported service.exported.interfaces objectClass service.exported.configs service.imported.configs remote.intents.supported remote.configs.supported Framework 1 Framework 2 dinsdag 14 juli 2009
  • 44. Service Properties Distribution Provider <other properties> <other properties> service.exported.intents service.intents service.exported.intents service.exported.intents.extra service.imported service.exported.interfaces objectClass service.exported.configs service.imported.configs endpoint remote.intents.supported remote.configs.supported Framework 1 Framework 2 dinsdag 14 juli 2009
  • 45. Service Properties Distribution Provider <other properties> <other properties> service.exported.intents service.intents service.exported.intents service.exported.intents.extra service.imported service.exported.interfaces objectClass service.exported.configs service.imported.configs endpoint remote.intents.supported remote.configs.supported Framework 1 Framework 2 dinsdag 14 juli 2009
  • 46. Blueprint Extender • RFC 124 • Provides Spring DM Functionality • Blueprint Extender uses XML definitions in bundle to create & wire application objects • Namespace Handler services, not yet :-( • Provides damping • Proxies services dinsdag 14 juli 2009
  • 47. Blueprint Extender XML dinsdag 14 juli 2009
  • 48. Blueprint Extender Blueprint XML Container dinsdag 14 juli 2009
  • 49. Blueprint Extender Blueprint XML Container dinsdag 14 juli 2009
  • 50. Blueprint Extender Blueprint XML Container BeanMetadata ServiceMetadata Reference Metadata dinsdag 14 juli 2009
  • 51. Blueprint Extender Blueprint XML Container BeanMetadata Bean ServiceMetadata Reference Metadata dinsdag 14 juli 2009
  • 52. Blueprint Extender Blueprint XML Container BeanMetadata Bean ServiceMetadata Service Reference Metadata dinsdag 14 juli 2009
  • 53. Blueprint Extender Blueprint XML Container BeanMetadata Bean ServiceMetadata Service Reference Metadata Reference dinsdag 14 juli 2009
  • 54. Blueprint Extender Blueprint XML Container BeanMetadata Bean ServiceMetadata Service Reference Metadata Reference dinsdag 14 juli 2009
  • 55. Blueprint Extender Blueprint XML Container BeanMetadata Bean ServiceMetadata Service Reference Metadata Reference dinsdag 14 juli 2009
  • 56. Blueprint Extender Blueprint XML Container BeanMetadata Bean ServiceMetadata Service Reference Metadata Reference dinsdag 14 juli 2009
  • 57. Blueprint Extender Application Objects Blueprint XML Container BeanMetadata Bean ServiceMetadata Service Reference Metadata Reference dinsdag 14 juli 2009
  • 58. Metadata Null NonNull Props Metadata Metadata Metadata IdRef Value Component Collection Map Metadata Metadata Metadata Metadata Metadata Ref Map Metadata Entry Service Bean Service Reference Target Metadata Metadata Metadata Ref Reference Bean Bean Collection Metadata Property Argument Metadata Registration Listener Listener dinsdag 14 juli 2009
  • 59. Damping Reference service object service App proxy object service object dinsdag 14 juli 2009
  • 60. Damping Reference service object service App proxy object service object dinsdag 14 juli 2009
  • 61. Damping Reference service object service App proxy object service object dinsdag 14 juli 2009
  • 62. Damping Reference service object service App proxy object service object dinsdag 14 juli 2009
  • 63. Damping Reference service object service App proxy object service object dinsdag 14 juli 2009
  • 64. Damping Reference service object service App proxy object service object dinsdag 14 juli 2009
  • 65. Damping Reference service object App proxy service object dinsdag 14 juli 2009
  • 66. Damping Reference service object App proxy service object dinsdag 14 juli 2009
  • 67. Damping Reference service object App proxy service object dinsdag 14 juli 2009
  • 68. Damping Reference service object App proxy service object dinsdag 14 juli 2009
  • 69. Damping Ref-list service proxy object service App List proxy object service proxy object dinsdag 14 juli 2009
  • 70. Enterprise • Transactions • JDBC Database Access • JMX • JNDI • JPA • Connectors dinsdag 14 juli 2009
  • 71. Experimental • TSL • Nested Frameworks • OBR dinsdag 14 juli 2009
  • 72. TSL • A Tiny Script Language • Feels like a shell • Acts like a script language • Uses reflection, but simplifies syntax • No new commands • Will become Felix project dinsdag 14 juli 2009
  • 73. TSL Telnet Console ... Shell Shell Shell OSGi Command Convert. Shell Converter ThreadIO Eclipse TSL Thread Convert. Impl IO * Felix osgi.command.name=xxx Convert. osgi.command.function=yyy Frame Basic ... Work Cmnds Cmnds Cmnds dinsdag 14 juli 2009
  • 74. TSL $ echo Hello World Hello World $ echo <bundle 1> initial@reference:file:org.eclipse.osgi.util_3.1.200.v200 70605.jar/ [1] $ ls eclipse eclipse.ini load runner $ ls /Ws aQute felix-trunk osgi osgi-books dinsdag 14 juli 2009
  • 75. TSL $ <bundle 6> headers Tool Bnd-0.0.169 Bundle-Activator aQute.fileinstall.FileInstall Export-Package aQute.fileinstall ... Created-By 1.6.0_01 (Sun Microsystems Inc.) Bnd-LastModified 1184160147361 Bundle-Version 1.3 Bundle-ManifestVersion2 Manifest-Version 1.0 Import-Package aQute.fileinstall, ... Bundle-Name biz.aQute.fileinstall Bundle-Description This bundle watches a .... Bundle-SymbolicName biz.aQute.fileinstall dinsdag 14 juli 2009
  • 76. TSL $ help={each <<$it class> declaredmethods> {$it name }} aQute.shell.runtime.Closure@90a284 $ help <bundle 6> loadClass getResource ... checkLoader closeBundleLoader getLoaderProxy $ echo $exception E: java.lang.NullPointerException $ echo $exception java.lang.NullPointerException $ $exception printstacktrace $ // the output is temporarily on reall stderr ... dinsdag 14 juli 2009
  • 77. Nested Frameworks • Application Server Vendors want scoping of applications … • Basic Idea OSGi is: • The Application == the set of installed bundles • Compromise: • All Frameworks to be nested dinsdag 14 juli 2009
  • 78. Nested Frameworks System Bundle Framework P dinsdag 14 juli 2009
  • 79. Nested Frameworks System Bundle Composite Bundle Framework P dinsdag 14 juli 2009
  • 80. Nested Frameworks Framework C System Bundle Composite Bundle Framework P dinsdag 14 juli 2009
  • 81. Nested Frameworks Framework C System Bundle System Bundle Composite Bundle Framework P dinsdag 14 juli 2009
  • 82. Nested Frameworks Framework C System Bundle System Bundle Composite Surrogate Bundle Bundle Framework P dinsdag 14 juli 2009
  • 83. Nested Frameworks Framework C System Bundle System Bundle Composite Surrogate Bundle Bundle Framework P dinsdag 14 juli 2009
  • 84. Nested Frameworks Framework C System Bundle System Bundle Composite Surrogate Bundle Bundle App Bundle A Framework P dinsdag 14 juli 2009
  • 85. Nested Frameworks Framework C System Bundle System Bundle Composite Surrogate Bundle Bundle App Bundle A Framework P dinsdag 14 juli 2009
  • 86. Nested Frameworks Framework C System Bundle System Bundle Composite Surrogate Bundle Bundle App Bundle A Framework P dinsdag 14 juli 2009
  • 87. Nested Frameworks Framework C System Bundle System Bundle Composite Surrogate Bundle Bundle App Bundle B App Bundle A Framework P dinsdag 14 juli 2009
  • 88. Nested Frameworks Framework C System Bundle System Bundle Composite Surrogate Bundle Bundle App Bundle B App Bundle A Framework P dinsdag 14 juli 2009
  • 89. Nested Frameworks Framework C System Bundle System Bundle Composite Surrogate Bundle Bundle App Bundle B App Bundle A Framework P dinsdag 14 juli 2009
  • 90. Nested Frameworks Framework C System Bundle System Bundle Composite Surrogate Bundle Bundle App Bundle B App Bundle A Framework P dinsdag 14 juli 2009
  • 92. Java Modularity 294 dinsdag 14 juli 2009
  • 93. Java Modularity 294 dinsdag 14 juli 2009 7
  • 94. Java Modularity 42 dinsdag 14 juli 2009
  • 100. Java Modularity module dinsdag 14 juli 2009
  • 101. Java Modularity module class Foo {} public class Bar { module int foo() {} } module interface Baz {} dinsdag 14 juli 2009
  • 102. Java Modularity Visibility vs Accessibility dinsdag 14 juli 2009
  • 103. Visibility Class Class S T dinsdag 14 juli 2009
  • 104. Visibility Class Class S T dinsdag 14 juli 2009
  • 105. Visibility Class Class S T dinsdag 14 juli 2009
  • 106. Visibility Class Class S T dinsdag 14 juli 2009
  • 107. Visibility Class Class S T dinsdag 14 juli 2009
  • 108. Visibility Module System Class Class S T dinsdag 14 juli 2009
  • 109. Accessibility public module package private dinsdag 14 juli 2009
  • 110. Accessibility Class S dinsdag 14 juli 2009
  • 111. Accessibility Class Class S T class dinsdag 14 juli 2009
  • 112. Accessibility Class Class S T class Class U package dinsdag 14 juli 2009
  • 113. Accessibility module Class V Class Class S T class Class U package dinsdag 14 juli 2009
  • 114. Accessibility module Class V Class Class S T class Class U package dinsdag 14 juli 2009
  • 115. Accessibility module Class V Class Class Class W S T class Class U package dinsdag 14 juli 2009
  • 116. Is JSR 294 a Meta Module System? (Implemented by OSGi™, Jigsaw, Guice, …) dinsdag 14 juli 2009
  • 117. Is JSR 294 a Meta Module System? (Implemented by OSGi™, Jigsaw, Guice, …) No Java™ Standard for dinsdag 14 juli 2009 Modules!
  • 118. OSGi Modules: Bundle = Module Bundle module dinsdag 14 juli 2009
  • 119. OSGi Modules: Bundle = Multiple Modules Bundle module A module B dinsdag 14 juli 2009
  • 120. OSGi Modules: Modules Cross Bundles Bundle A Bundle B module dinsdag 14 juli 2009
  • 121. OSGi Modules: Nested? Bundle module A module B dinsdag 14 juli 2009
  • 122. Module Dependencies Bundle A Bundle B module A module B dinsdag 14 juli 2009
  • 123. Module Dependencies Bundle A Bundle B module A module B requires provides permits dinsdag 14 juli 2009
  • 124. Module Dependencies ? Bundle A Bundle B module A module B requires provides permits dinsdag 14 juli 2009
  • 126. Containers? π 3.14 dinsdag 14 juli 2009
  • 127. Containers? π JL S 3.14 dinsdag 14 juli 2009
  • 128. Containers? π JL S 3.14 JV M dinsdag 14 juli 2009
  • 130. Containers? container com.acme dinsdag 14 juli 2009
  • 131. Containers? container com.acme module com.acme.foo; dinsdag 14 juli 2009
  • 132. Containers? container com.acme module com.acme.foo; module com.acme.foo; module bar; dinsdag 14 juli 2009
  • 133. Containers? container com.acme module com.acme.foo; module com.acme.foo; module bar; module com.acme.foo; module com.acme.foo; module bar; module fiz; private package one; public package one; dinsdag 14 juli 2009
  • 134. Containers? container com.acme module com.acme.foo; module com.acme.foo; module bar; module com.acme.foo; module com.acme.foo; module bar; module fiz; private package one; public package one; module com.acme.foo; module com.acme.foo; module bar; module fiz; package one; package two; import module fiz; module class A {} class B {} dinsdag 14 juli 2009