OSGi Users' Forum UK - OSGi Release 4 v4.2 Spec Overview - Peter Kriens
Upcoming SlideShare
Loading in...5
×
 

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

on

  • 3,226 views

Presentation by Peter Kriens to OSGi Users' Forum UK on 14th July 2009 providing an overview of key elements of the next release of the OSGi specification Release 4 v4.2.

Presentation by Peter Kriens to OSGi Users' Forum UK on 14th July 2009 providing an overview of key elements of the next release of the OSGi specification Release 4 v4.2.

Statistics

Views

Total Views
3,226
Views on SlideShare
3,057
Embed Views
169

Actions

Likes
2
Downloads
47
Comments
0

5 Embeds 169

http://osgilook.wordpress.com 109
http://osgilook.com 54
http://www.slideshare.net 4
http://www.apurva.com 1
http://webcache.googleusercontent.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

  • 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