OSGi Devcon 2009 Keynote
Upcoming SlideShare
Loading in...5
×
 

OSGi Devcon 2009 Keynote

on

  • 2,605 views

The OSGi DevCon 2009 keynote presentation

The OSGi DevCon 2009 keynote presentation

Statistics

Views

Total Views
2,605
Views on SlideShare
2,601
Embed Views
4

Actions

Likes
1
Downloads
82
Comments
0

1 Embed 4

http://www.slideshare.net 4

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 Devcon 2009 Keynote OSGi Devcon 2009 Keynote Presentation Transcript

  • Europe vrijdag 26 juni 2009
  • vrijdag 26 juni 2009
  • Peter Kriens OSGi Evangelist Europe OSGi Next vrijdag 26 juni 2009
  • OSGi Service Platform Core Specification vrijdag 26 juni 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 vrijdag 26 juni 2009
  • Legend vrijdag 26 juni 2009
  • Legend Bundle A Bundle B vrijdag 26 juni 2009
  • Legend Bundle A Service Bundle B vrijdag 26 juni 2009
  • Legend Bundle A getService Service registerService Bundle B vrijdag 26 juni 2009
  • Legend Bundle A getService Bundle Service C registerService Bundle B vrijdag 26 juni 2009
  • Legend Bundle A getService Bundle Service addServiceListener C registerService Bundle B vrijdag 26 juni 2009
  • Legend Bundle A getService Call/Dependency Bundle Direction Service addServiceListener C registerService Bundle B vrijdag 26 juni 2009
  • Core • Launching • Bundle Tracker • Bundle-License Header • Service Hooks • Negative Permissions vrijdag 26 juni 2009
  • Launching • To be inside a framework … • Or outside a framework ... • That’s the question! vrijdag 26 juni 2009
  • Launching • Standardizes launching different frameworks • Will enable generic launchers • Allows you to embed a framework in your application! vrijdag 26 juni 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(); vrijdag 26 juni 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 vrijdag 26 juni 2009
  • Service Hooks • FindHook • Intercept getServiceReference(s) • EventHook • Intercept Service Event delivery • ListenerHook • Find out who is listening to what vrijdag 26 juni 2009
  • Service Hooks Bundle A Bundle B vrijdag 26 juni 2009
  • Service Hooks Bundle A Proxy Bundle Bundle B vrijdag 26 juni 2009
  • Service Hooks Bundle A FindHook Proxy EventHook Bundle Bundle B vrijdag 26 juni 2009
  • Service Hooks Bundle A FindHook Proxy EventHook Bundle Bundle B vrijdag 26 juni 2009
  • Service Hooks Bundle A ListenerHook FindHook Proxy EventHook Bundle Bundle B vrijdag 26 juni 2009
  • Service Hooks Bundle A ListenerHook FindHook Proxy EventHook Bundle Bundle B vrijdag 26 juni 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 vrijdag 26 juni 2009
  • Negative Permissions DENY { [...BundleSignerCondition "cn=*, o=ACME" "!" ] (...PackagePermission "com.acme.secret.*" "import,exportonly" ) } ALLOW { (...PackagePermission "*" "*" ) } vrijdag 26 juni 2009
  • Compendium • Initial Provisioning • Bundle Tracker • Declarative Services • Remote Services • Blueprint Extender vrijdag 26 juni 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 vrijdag 26 juni 2009
  • Remote Services Distribution Distribution Provider Provider X’ Bundle B vrijdag 26 juni 2009
  • Remote Services Distribution Distribution X Provider Provider X’ Bundle B vrijdag 26 juni 2009
  • Remote Services Bundle A Distribution Distribution X Provider Provider X’ Bundle B vrijdag 26 juni 2009
  • Remote Services Bundle A Distribution Distribution X Provider Provider X’ Bundle B vrijdag 26 juni 2009
  • Remote Services Bundle A Distribution Distribution X Provider Provider X’ Bundle B vrijdag 26 juni 2009
  • Remote Services Bundle A Distribution Distribution X Provider Provider exports X’ Bundle B vrijdag 26 juni 2009
  • Remote Services Bundle A Distribution Distribution X Provider Provider exports X’ Bundle B vrijdag 26 juni 2009
  • Remote Services Bundle A Distribution Distribution X Provider Provider exports X’ Bundle B vrijdag 26 juni 2009
  • Remote Services Bundle A Distribution Distribution X Provider Provider exports X’ Bundle B vrijdag 26 juni 2009
  • Remote Services Bundle A Distribution Distribution X Provider Provider exports imports X’ Bundle B vrijdag 26 juni 2009
  • Remote Services Bundle A Distribution Distribution X Provider Provider exports imports X’ Bundle B vrijdag 26 juni 2009
  • Remote Services Bundle A Distribution Distribution X Provider Provider exports imports X’ Bundle B vrijdag 26 juni 2009
  • Remote Services Bundle A Distribution Distribution X Provider Provider exports imports X’ Bundle B vrijdag 26 juni 2009
  • Remote Services Bundle A Distribution Distribution X Provider Provider exports imports X’ Bundle B Framework 1 Framework 2 vrijdag 26 juni 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 vrijdag 26 juni 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 vrijdag 26 juni 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 vrijdag 26 juni 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 vrijdag 26 juni 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 vrijdag 26 juni 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 vrijdag 26 juni 2009
  • Blueprint Extender XML vrijdag 26 juni 2009
  • Blueprint Extender Blueprint XML Container vrijdag 26 juni 2009
  • Blueprint Extender Blueprint XML Container vrijdag 26 juni 2009
  • Blueprint Extender Blueprint XML Container BeanMetadata ServiceMetadata Reference Metadata vrijdag 26 juni 2009
  • Blueprint Extender Blueprint XML Container BeanMetadata Bean ServiceMetadata Reference Metadata vrijdag 26 juni 2009
  • Blueprint Extender Blueprint XML Container BeanMetadata Bean ServiceMetadata Service Reference Metadata vrijdag 26 juni 2009
  • Blueprint Extender Blueprint XML Container BeanMetadata Bean ServiceMetadata Service Reference Metadata Reference vrijdag 26 juni 2009
  • Blueprint Extender Blueprint XML Container BeanMetadata Bean ServiceMetadata Service Reference Metadata Reference vrijdag 26 juni 2009
  • Blueprint Extender Blueprint XML Container BeanMetadata Bean ServiceMetadata Service Reference Metadata Reference vrijdag 26 juni 2009
  • Blueprint Extender Blueprint XML Container BeanMetadata Bean ServiceMetadata Service Reference Metadata Reference vrijdag 26 juni 2009
  • Blueprint Extender Application Objects Blueprint XML Container BeanMetadata Bean ServiceMetadata Service Reference Metadata Reference vrijdag 26 juni 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 vrijdag 26 juni 2009
  • Damping Reference service object service App proxy object service object vrijdag 26 juni 2009
  • Damping Reference service object service App proxy object service object vrijdag 26 juni 2009
  • Damping Reference service object service App proxy object service object vrijdag 26 juni 2009
  • Damping Reference service object service App proxy object service object vrijdag 26 juni 2009
  • Damping Reference service object service App proxy object service object vrijdag 26 juni 2009
  • Damping Reference service object service App proxy object service object vrijdag 26 juni 2009
  • Damping Reference service object App proxy service object vrijdag 26 juni 2009
  • Damping Reference service object App proxy service object vrijdag 26 juni 2009
  • Damping Reference service object App proxy service object vrijdag 26 juni 2009
  • Damping Reference service object App proxy service object vrijdag 26 juni 2009
  • Damping Ref-list service proxy object service App List proxy object service proxy object vrijdag 26 juni 2009
  • Enterprise • Transactions • JDBC Database Access • JMX • JNDI • JPA • Connectors vrijdag 26 juni 2009
  • Experimental • TSL • Nested Frameworks • OBR vrijdag 26 juni 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 vrijdag 26 juni 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 vrijdag 26 juni 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 vrijdag 26 juni 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 vrijdag 26 juni 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 ... vrijdag 26 juni 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 vrijdag 26 juni 2009
  • Nested Frameworks System Bundle Framework P vrijdag 26 juni 2009
  • Nested Frameworks System Bundle Composite Bundle Framework P vrijdag 26 juni 2009
  • Nested Frameworks Framework C System Bundle Composite Bundle Framework P vrijdag 26 juni 2009
  • Nested Frameworks Framework C System Bundle System Bundle Composite Bundle Framework P vrijdag 26 juni 2009
  • Nested Frameworks Framework C System Bundle System Bundle Composite Surrogate Bundle Bundle Framework P vrijdag 26 juni 2009
  • Nested Frameworks Framework C System Bundle System Bundle Composite Surrogate Bundle Bundle Framework P vrijdag 26 juni 2009
  • Nested Frameworks Framework C System Bundle System Bundle Composite Surrogate Bundle Bundle App Bundle A Framework P vrijdag 26 juni 2009
  • Nested Frameworks Framework C System Bundle System Bundle Composite Surrogate Bundle Bundle App Bundle A Framework P vrijdag 26 juni 2009
  • Nested Frameworks Framework C System Bundle System Bundle Composite Surrogate Bundle Bundle App Bundle A Framework P vrijdag 26 juni 2009
  • Nested Frameworks Framework C System Bundle System Bundle Composite Surrogate Bundle Bundle App Bundle B App Bundle A Framework P vrijdag 26 juni 2009
  • Nested Frameworks Framework C System Bundle System Bundle Composite Surrogate Bundle Bundle App Bundle B App Bundle A Framework P vrijdag 26 juni 2009
  • Nested Frameworks Framework C System Bundle System Bundle Composite Surrogate Bundle Bundle App Bundle B App Bundle A Framework P vrijdag 26 juni 2009
  • Nested Frameworks Framework C System Bundle System Bundle Composite Surrogate Bundle Bundle App Bundle B App Bundle A Framework P vrijdag 26 juni 2009
  • Java Modularity vrijdag 26 juni 2009
  • Java Modularity 294 vrijdag 26 juni 2009
  • Java Modularity 294 vrijdag 26 juni 2009 7
  • Java Modularity 42 vrijdag 26 juni 2009
  • Java Modularity vrijdag 26 juni 2009
  • Java Modularity vrijdag 26 juni 2009
  • Java Modularity vrijdag 26 juni 2009
  • Java Modularity vrijdag 26 juni 2009
  • Java Modularity vrijdag 26 juni 2009
  • Java Modularity module vrijdag 26 juni 2009
  • Java Modularity module class Foo {} public class Bar { module int foo() {} } module interface Baz {} vrijdag 26 juni 2009
  • Java Modularity Visibility vs Accessibility vrijdag 26 juni 2009
  • Visibility Class Class S T vrijdag 26 juni 2009
  • Visibility Class Class S T vrijdag 26 juni 2009
  • Visibility Class Class S T vrijdag 26 juni 2009
  • Visibility Class Class S T vrijdag 26 juni 2009
  • Visibility Class Class S T vrijdag 26 juni 2009
  • Visibility Module System Class Class S T vrijdag 26 juni 2009
  • Accessibility public module package private vrijdag 26 juni 2009
  • Accessibility Class S vrijdag 26 juni 2009
  • Accessibility Class Class S T class vrijdag 26 juni 2009
  • Accessibility Class Class S T class Class U package vrijdag 26 juni 2009
  • Accessibility module Class V Class Class S T class Class U package vrijdag 26 juni 2009
  • Accessibility module Class V Class Class S T class Class U package vrijdag 26 juni 2009
  • Accessibility module Class V Class Class Class W S T class Class U package vrijdag 26 juni 2009
  • Is JSR 294 a Meta Module System? (Implemented by OSGi™, Jigsaw, Guice, …) vrijdag 26 juni 2009
  • Is JSR 294 a Meta Module System? (Implemented by OSGi™, Jigsaw, Guice, …) No Java™ Standard for vrijdag 26 juni 2009 Modules!
  • OSGi Modules: Bundle = Module Bundle module vrijdag 26 juni 2009
  • OSGi Modules: Bundle = Multiple Modules Bundle module A module B vrijdag 26 juni 2009
  • OSGi Modules: Modules Cross Bundles Bundle A Bundle B module vrijdag 26 juni 2009
  • OSGi Modules: Nested? Bundle module A module B vrijdag 26 juni 2009
  • Module Dependencies Bundle A Bundle B module A module B vrijdag 26 juni 2009
  • Module Dependencies Bundle A Bundle B module A module B requires provides permits vrijdag 26 juni 2009
  • Module Dependencies ? Bundle A Bundle B module A module B requires provides permits vrijdag 26 juni 2009
  • vrijdag 26 juni 2009
  • Europe vrijdag 26 juni 2009