• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Introduction into OSGi
 

Introduction into OSGi

on

  • 3,950 views

The EclipseCon/OSGi DevCon 2011 Introduction by Peter Kriens

The EclipseCon/OSGi DevCon 2011 Introduction by Peter Kriens

Statistics

Views

Total Views
3,950
Views on SlideShare
3,137
Embed Views
813

Actions

Likes
4
Downloads
306
Comments
1

8 Embeds 813

http://www.eclipsecon.org 766
http://eclipsecon.org 36
http://translate.googleusercontent.com 3
https://www.eclipsecon.org 3
http://twitter.com 2
http://eclipsesummit.org 1
http://honyaku.yahoofs.jp 1
https://twitter.com 1
More...

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

11 of 1 previous next

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

    Introduction into OSGi Introduction into OSGi Presentation Transcript

    • OSGi Introduction By Peter Kriens OSGi Technical Director & Evangelistdonderdag 24 maart 2011
    • donderdag 24 maart 2011
    • In the beginnings there were bits ...donderdag 24 maart 2011
    • 0100111100110010000000001111000 0001000010001110010100000010011 Bits 1000100011011111100010001110111 1101101001000010011101000000111 1110000010100000110111000010000 0110110100000001100100010001110 10000001110110donderdag 24 maart 2011
    • 0100111100110010000000001111000 0001000010001110010100000010011 Bits 1000100011011111100010001110111 1101101001000010011101000000111 1110000010100000110111000010000 0110110100000001100100010001110 10000001110110donderdag 24 maart 2011
    • 117 062 000 360 041 034 240 116 043 Octal 176 043 276 322 023 240 176 012 015 302 015 240 062 043 240 166donderdag 24 maart 2011
    • 4F 32 00 F0 21 1C A0 4E 23 7E Hex 23 BE D2 13 A0 7E 0A 0D C2 0D A0 32 23 A0 76donderdag 24 maart 2011
    • MOV C,A STA F000H LXI H,A01CH MOV C,M INX H Code MOV A,M INX H CMP M JNC A013H MOV A,M DCR C JNZ A00DH STA A023H HLTdonderdag 24 maart 2011
    • MOV C,A STA F000H LXI H,A01CH MOV C,M INX H Code MOV A,M INX H CMP M JNC A013H MOV A,M DCR C JNZ A00DH STA A023H HLTdonderdag 24 maart 2011
    • Code global = shared; for (local=0; local<10; local++) shared *= 10;donderdag 24 maart 2011
    • Code global = shared; for (local=0; local<10; local++) shared *= 10;donderdag 24 maart 2011
    • int global; int shared; int local; Code global = shared; for (local=0; local<10; local++) shared *= 10;donderdag 24 maart 2011
    • int global; int shared; int local; Functions void foo() { global = shared; for (local=0; local<10; local++) shared *= 10; }donderdag 24 maart 2011
    • int global; int shared; int local; Functions void foo() { global = shared; for (local=0; local<10; local++) shared *= 10; }donderdag 24 maart 2011
    • int global; int shared; int local; Functions void foo() { global = shared; for (local=0; local<10; local++) shared *= 10; } void bar() { global = shared; for (local=0; local<10; local++) shared *= 10; }donderdag 24 maart 2011
    • int global; int shared; void foo() { Functions int local global = shared; for (local=0; local<10; local++) shared *= 10; } void bar() { int local; global = shared; for (local=0; local<10; local++) shared *= 10; }donderdag 24 maart 2011
    • int global; int shared; A Modules void foo() { void bar() { int local int local global = shared; global = shared; for (local=0; for (local=0; local<10; local++) local<10; local++) shared *= 10; shared *= 10; } } B void foo() { void xyz() { int local int local global = shared; global = shared; for (local=0; for (local=0; local<10; local++) local<10; local++) shared *= 10; shared *= 10; } }donderdag 24 maart 2011
    • int global; int shared; A Modules void foo() { void bar() { int local int local global = shared; global = shared; for (local=0; for (local=0; local<10; local++) local<10; local++) shared *= 10; shared *= 10; } } B void foo() { void xyz() { int local int local global = shared; global = shared; for (local=0; for (local=0; local<10; local++) local<10; local++) shared *= 10; shared *= 10; } }donderdag 24 maart 2011
    • int global; A int shared; Modules void foo() { void bar() { int local int local global = shared; global = shared; for (local=0; for (local=0; local<10; local++) local<10; local++) shared *= 10; shared *= 10; } } B int shared; void foo() { void xyz() { int local int local global = shared; global = shared; for (local=0; for (local=0; local<10; local++) local<10; local++) shared *= 10; shared *= 10; } }donderdag 24 maart 2011
    • Class A int shared; void foo() { void bar() { Objects int local int local global = shared; global = shared; for (local=0; for (local=0; local<10; local++) local<10; local++) shared *= 10; shared *= 10; } } Class B int shared; void foo() { void xyz() { int local int local global = shared; global = shared; for (local=0; for (local=0; local<10; local++) local<10; local++) shared *= 10; shared *= 10; } }donderdag 24 maart 2011
    • Class A int shared; void foo() { void bar() { Objects int local int local global = shared; global = shared; for (local=0; for (local=0; local<10; local++) local<10; local++) shared *= 10; shared *= 10; } } Class B int shared; void foo() { void xyz() { int local int local global = shared; global = shared; for (local=0; for (local=0; local<10; local++) local<10; local++) shared *= 10; shared *= 10; } }donderdag 24 maart 2011
    • ces Class A tan Class A Class A ins Class A Class A int shared; void foo() { void bar() { Objects int local int local global = shared; global = shared; for (local=0; for (local=0; local<10; local++) local<10; local++) shared *= 10; shared *= 10; } } Class B int shared; void foo() { void xyz() { int local int local global = shared; global = shared; for (local=0; for (local=0; local<10; local++) local<10; local++) shared *= 10; shared *= 10; } }donderdag 24 maart 2011
    • “Chapter 7 describes the structure of a program which is organized into packages similar to the modules of Modula.” Java Language Specification, 3rd editiondonderdag 24 maart 2011
    • “Chapter 7 describes the structure of a program which is organized into packages similar to the modules of Modula.” Java Language Specification, 3rd editiondonderdag 24 maart 2011
    • package com.acme.abc Packages Class A int shared; Class B int shared; void foo() { void bar() { void foo() { void xyz() { int local int local int local int local global = shared; global = shared; global = shared; global = shared; for (local=0; for (local=0; for (local=0; for (local=0; local<10; local+ local<10; local+ local<10; local+ local<10; local+ +) +) +) +) shared *= 10; shared *= 10; shared *= 10; shared *= 10; } } } } package com.acme.def Class A int shared; Class C int shared; void foo() { void bar() { void foo() { void xyz() { int local int local int local int local global = shared; global = shared; global = shared; global = shared; for (local=0; for (local=0; for (local=0; for (local=0; local<10; local+ local<10; local+ local<10; local+ local<10; local+ +) +) +) +) shared *= 10; shared *= 10; shared *= 10; shared *= 10; } } } }donderdag 24 maart 2011
    • The Face of Modularitydonderdag 24 maart 2011
    • The Face of Modularitydonderdag 24 maart 2011
    • Modularity’s Secret • modules have a private space and share a public space A B • modules limit their visibility and exposure C D • From geometric to linear complexity • And something extra ...donderdag 24 maart 2011
    • Modularity’s Secret • modules have a private space and share a public space A B • modules limit their Pub visibility and exposure C D • From geometric to linear complexity • And something extra ...donderdag 24 maart 2011
    • Modularity’s Secret • modules have a private space and share a public space A B • modules limit their Pub visibility and exposure C D • From geometric to linear complexity • And something extra ...donderdag 24 maart 2011
    • JAR abc-1.2.3-SNAPSHOT.jar com.acme.abc com.acme.def Class A int shared; Class B int shared; Class A int shared; Class B int shared; void foo() { void bar() { void foo() { void xyz() { void foo() { void bar() { void foo() { void xyz() { int local int local int local int local int local int local int local int local JARs global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local ++) ++) ++) ++) ++) ++) ++) ++) shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; } } } } } } } } JAR def-4.5.6.jar com.acme.abc com.acme.ghi Class A int shared; Class B int shared; Class A int shared; Class B int shared; void foo() { void bar() { void foo() { void xyz() { void foo() { void bar() { void foo() { void xyz() { int local int local int local int local int local int local int local int local global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local ++) ++) ++) ++) ++) ++) ++) ++) shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; } } } } } } } }donderdag 24 maart 2011
    • JAR abc-1.2.3-SNAPSHOT.jar com.acme.abc com.acme.def Class A int shared; Class B int shared; Class A int shared; Class B int shared; void foo() { void bar() { void foo() { void xyz() { void foo() { void bar() { void foo() { void xyz() { int local int local int local int local int local int local int local int local JARs global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local ++) ++) ++) ++) ++) ++) ++) ++) shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; } } } } } } } } JAR def-4.5.6.jar com.acme.abc com.acme.ghi Class A int shared; Class B int shared; Class A int shared; Class B int shared; void foo() { void bar() { void foo() { void xyz() { void foo() { void bar() { void foo() { void xyz() { int local int local int local int local int local int local int local int local global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local ++) ++) ++) ++) ++) ++) ++) ++) shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; } } } } } } } }donderdag 24 maart 2011
    • Java VM party common resolver axis xercesBegin rt assetmaint catalina mail ezmorph xmlapis jce hhfacility base jenks servlets xmlrpcHere jsse pos. datafile jakarta jetty xmlgraphics plugin content entity log4j looks sunjce_prov. manufact. widget httpunit jdbm dnsns product … mx4j bsf .. bi rome batik bsh marketing workflow jpos18 fop velocity workeffort ecommerce jcl tomcat ws-commons ebay oagis barcode4j poi geronimo minerva … freemarker lucene .. minilang googlebase serializer jdom json accounting order naming commons xalan guiapp ofbiz jython derby wsdl4jdonderdag 24 maart 2011
    • Java VM party common resolver axis xercesBegin rt assetmaint catalina mail ezmorph xmlapis jce hhfacility base jenks servlets xmlrpcHere jsse pos. datafile jakarta jetty xmlgraphics plugin content entity log4j looks sunjce_prov. manufact. widget httpunit jdbm dnsns product … mx4j bsf .. bi rome batik bsh Class marketing workflow jpos18 fop velocity Not workeffort ecommerce jcl tomcat ws-commons Found ebay oagis barcode4j poi geronimo Exception minerva … freemarker lucene .. minilang googlebase serializer jdom json accounting order naming commons xalan guiapp ofbiz jython derby wsdl4jdonderdag 24 maart 2011
    • bundle com.acme.abc-1.2.3 package com.acme.abc package com.acme.def Bundles Class A int shared; Class B int shared; Class A int shared; Class B int shared; void foo() { void bar() { void foo() { void xyz() { void foo() { void bar() { void foo() { void xyz() { int local int local int local int local int local int local int local int local global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local ++) ++) ++) ++) ++) ++) ++) ++) shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; } } } } } } } } bundle com.acme.def-9.9.1 package com.acme.abc package com.acme.ghi Class A int shared; Class B int shared; Class A int shared; Class B int shared; void foo() { void bar() { void foo() { void xyz() { void foo() { void bar() { void foo() { void xyz() { int local int local int local int local int local int local int local int local global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local ++) ++) ++) ++) ++) ++) ++) ++) shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; } } } } } } } }donderdag 24 maart 2011
    • bundle com.acme.abc-1.2.3 package com.acme.abc package com.acme.def Bundles Class A int shared; Class B int shared; Class A int shared; Class B int shared; Private Exported void foo() { void bar() { void foo() { void xyz() { void foo() { void bar() { void foo() { void xyz() { int local int local int local int local int local int local int local int local global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local ++) ++) ++) ++) ++) ++) ++) ++) shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; } } } } } } } } bundle com.acme.def-9.9.1 package com.acme.abc package com.acme.ghi Class A int shared; Class B int shared; Class A int shared; Class B int shared; Private Exported void foo() { void bar() { void foo() { void xyz() { void foo() { void bar() { void foo() { void xyz() { int local int local int local int local int local int local int local int local global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local ++) ++) ++) ++) ++) ++) ++) ++) shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; } } } } } } } }donderdag 24 maart 2011
    • bundle com.acme.abc-1.2.3 package com.acme.abc package com.acme.def Bundles Class A int shared; Class B int shared; Class A int shared; Class B int shared; Private Exported void foo() { void bar() { void foo() { void xyz() { void foo() { void bar() { void foo() { void xyz() { int local int local int local int local int local int local int local int local global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local ++) ++) ++) ++) ++) ++) ++) ++) shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; } } } } } } } } bundle com.acme.def-9.9.1 package com.acme.abc package com.acme.ghi Class A int shared; Class B int shared; Class A int shared; Class B int shared; Private Exported void foo() { void bar() { void foo() { void xyz() { void foo() { void bar() { void foo() { void xyz() { int local int local int local int local int local int local int local int local global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local ++) ++) ++) ++) ++) ++) ++) ++) shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; } } } } } } } }donderdag 24 maart 2011
    • bundle com.acme.abc-1.2.3 package com.acme.abc package com.acme.def Bundles Class A int shared; Class B int shared; Class A int shared; Class B int shared; Private Exported void foo() { void bar() { void foo() { void xyz() { void foo() { void bar() { void foo() { void xyz() { int local int local int local int local int local int local int local int local global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local ++) ++) ++) ++) ++) ++) ++) ++) shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; } } } } } } } } bundle com.acme.def-9.9.1 package com.acme.abc package com.acme.ghi Class A int shared; Class B int shared; Class A int shared; Class B int shared; Private Exported void foo() { void bar() { void foo() { void xyz() { void foo() { void bar() { void foo() { void xyz() { int local int local int local int local int local int local int local int local global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local ++) ++) ++) ++) ++) ++) ++) ++) shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; } } } } } } } }donderdag 24 maart 2011
    • bundle com.acme.abc-1.2.3 package com.acme.abc package com.acme.def Bundles Class A int shared; Class B int shared; Class A int shared; Class B int shared; Private Exported void foo() { void bar() { void foo() { void xyz() { void foo() { void bar() { void foo() { void xyz() { int local int local int local int local int local int local int local int local global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local ++) ++) ++) ++) ++) ++) ++) ++) shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; } } } } } } } } X bundle com.acme.def-9.9.1 package com.acme.abc package com.acme.ghi Class A int shared; Class B int shared; Class A int shared; Class B int shared; Private Exported void foo() { void bar() { void foo() { void xyz() { void foo() { void bar() { void foo() { void xyz() { int local int local int local int local int local int local int local int local global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local ++) ++) ++) ++) ++) ++) ++) ++) shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; } } } } } } } }donderdag 24 maart 2011
    • Manifest Manifest-Version: 1 Bundle-ManifestVersion: 2 Bundle-SymbolicName: com.acme.bundle Bundle-Version: 1.2.3.v201103221001 Import-Package: javax.activation, javax.persistence, org.osgi.framework;version=”[1.3,2)” Export-Package: com.acme.bundle.service;version=2.3, com.acme.api; version=45.2 Bundle-License: http://www.apache.org/license/ASL2.0.txt Tool: bnd-1.43.0donderdag 24 maart 2011
    • Manifest Manifest-Version: 1 Bundle-ManifestVersion: 2 Bundle-SymbolicName: com.acme.bundle Bundle-Version: 1.2.3.v201103221001 Import-Package: d javax.activation, javax.persistence, org.osgi.framework;version=”[1.3,2)” bn Export-Package: com.acme.bundle.service;version=2.3, com.acme.api; version=45.2 Bundle-License: http://www.apache.org/license/ASL2.0.txt Tool: bnd-1.43.0donderdag 24 maart 2011
    • bundle com.acme.abc-1.2.3 package com.acme.abc package com.acme.def Bundles Class A int shared; Class B int shared; Class A int shared; Class B int shared; void foo() { void bar() { void foo() { void xyz() { void foo() { void bar() { void foo() { void xyz() { int local int local int local int local int local int local int local int local global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local ++) ++) ++) ++) ++) ++) ++) ++) shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; } } } } } } } } bundle com.acme.def-9.9.1 package com.acme.abc package com.acme.ghi Class A int shared; Class B int shared; Class A int shared; Class B int shared; void foo() { void bar() { void foo() { void xyz() { void foo() { void bar() { void foo() { void xyz() { int local int local int local int local int local int local int local int local global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; global = shared; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; for (local=0; local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local local<10; local ++) ++) ++) ++) ++) ++) ++) ++) shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; shared *= 10; } } } } } } } }donderdag 24 maart 2011
    • bundle com.acme.abc-1.2.3 Bundles bundle com.acme.def-9.9.1donderdag 24 maart 2011
    • bundle com.acme.abc-1.2.3 Bundles ed ifi bundle com.acme.def-9.9.1 redonderdag 24 maart 2011
    • POJO Programming is Best Practicedonderdag 24 maart 2011
    • Interfaces/API Consumer Provider Interface Class Classdonderdag 24 maart 2011
    • Interfaces/API package com.consumer.impl package com.api package com.provider.impl Consumer Provider Interface Class Classdonderdag 24 maart 2011
    • Interfaces/API package com.consumer.impl package com.api package com.provider.impl Consumer Provider Interface Class Class Your Appdonderdag 24 maart 2011
    • Interfaces/API package com.consumer.impl package com.api package com.provider.impl Consumer Provider Interface Class Class Your App DocumentBuilderdonderdag 24 maart 2011
    • Interfaces/API package com.consumer.impl package com.api package com.provider.impl Consumer Provider Interface Class Class Your App DocumentBuilder Xercesdonderdag 24 maart 2011
    • Access to Implementations package com.consumer.impl package com.api package com.provider.impl Consumer Provider Interface Class Classdonderdag 24 maart 2011
    • Access to Implementations package com.consumer.impl package com.api package com.provider.impl Consumer Provider Interface Class Classdonderdag 24 maart 2011
    • Access to Implementations package com.consumer.impl package com.api package com.provider.impl te Consumer Provider Interface iva Class Classdonderdag 24 maart 2011 pr
    • Access to Implementations package com.consumer.impl com.consumer.impl package com.api com.api package com.provider.impl com.provider.impl Consumer Con- Provider Interface Provider sumer Class Classdonderdag 24 maart 2011
    • µServicesdonderdag 24 maart 2011
    • µServices package com.api specifiesdonderdag 24 maart 2011
    • µServices package com.api bundle com.provider.impl specifiesdonderdag 24 maart 2011
    • µServices package com.api bundle com.provider.impl specifies providesdonderdag 24 maart 2011
    • µServices package com.api bundle bundle com.consumer.impl com.provider.impl specifies providesdonderdag 24 maart 2011
    • µServices package com.api bundle bundle com.consumer.impl com.provider.impl refers specifies providesdonderdag 24 maart 2011
    • Trivial To Use With DS package com.consumer.impl; @Component public class Consumer { Interface service; @Activate void begin(); @Reference void setLog( Interface service) { this.service = service; } } package com.provider.impl; @Component public class Provider implements Interface { public void method() { … // do something } }donderdag 24 maart 2011
    • µServices factory bundle bundle com.consumer.impl com.provider.impldonderdag 24 maart 2011
    • µServices bundle bundle com.consumer.impl com.provider.impl listenersdonderdag 24 maart 2011
    • µServices bundle bundle com.consumer.impl com.provider.impl listeners “Whiteboard”donderdag 24 maart 2011
    • µServices bundle bundle com.consumer.impl com.provider.impl listeners “Whiteboard”donderdag 24 maart 2011
    • µServices bundle com. provider.impl bundle com.consumer.impl bundle com.other. impldonderdag 24 maart 2011
    • µServices bundle bundle com. com. consumer. provider.impl impl bundle bundle com.other. com.other. consumer. provider.impl impldonderdag 24 maart 2011
    • µServices bundle bundle com. ed com. consumer. provider.impl impl bundle com.other. ifi bundle re com.other. consumer. provider.impl impldonderdag 24 maart 2011
    • Service Specifications condpermadmin permission admin measurement url service hooks position bundle hooks info.dmtree xml application blueprint jpa persistence cm component web applications deployment admin device JDBC event http sca configuration io log Blueprint metatype monitor mobile prefs provisioning tracker remote service admin UPNP coordinator user admin wire admin jndi cdma gsm transactions JMX autoconfdonderdag 24 maart 2011
    • OSGi • Next generation of strong modularity in Bundles • Imports and Exports Packages • Extensive support for legacy use cases • Communicates via µServices • Dynamic Binding • Unifies Factories, Listeners, Brokers, DI • Bundles and Services are all reified with small but powerful API • Security • Provides growing library of standard servicesdonderdag 24 maart 2011
    • JAX London London jaxlondon.com 11-13 April 2011donderdag 24 maart 2011
    • Join us ! JAX London London jaxlondon.com 11-13 April 2011donderdag 24 maart 2011