on-demand service installation and activation with osgi file on-demand service installation...

42
www.objectweb.org On-demand Service Installation and Activation with OSGi Vincent Lestideau, Didier Donsez Université Joseph Fourier (Grenoble 1) IMAG/LSR/ADELE [email protected] [email protected]

Upload: others

Post on 16-Oct-2019

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.org

On-demand Service

Installation and Activation

with OSGi

Vincent Lestideau, Didier DonsezUniversité Joseph Fourier (Grenoble 1)

IMAG/LSR/[email protected]

[email protected]

Page 2: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi - D2

- 17-19 January 2005

Agenda

�Service-On-Demand Use-Cases

�GDF OSGi Overview

�Deployment with OSGi

�Deployment Dependencies

�GDF OSGi

�Service-On-Demand Principles

�Installation and activation

�Conclusion

�Project Roadmap

Page 3: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi - D3

- 17-19 January 2005

Service-On-Demand Use-

Cases

�Use-Case 1 : iTV STB

�Use-Case 2 : ressource-constrained gateway

�Use-Case 3: unused plugins

Page 4: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi - D4

- 17-19 January 2005

Use-Case 1 : OSGiTVOSGi-based (DVB MHP) STB

�Hundreds of iTV applications are available

on the iTV operator repositories from EPG

(Electronic Program Guide)

�But only a few can be installed/started

on the SetTopBox (iTV terminal)

Page 5: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi - D5

- 17-19 January 2005

iTV Terminal

AIT

MosaïcEPGXLet

WeatherXLet

TCasinoXLet

UserProfile C.

XletManager

Bundle

AIT

BIT

CarouselReceiver

CarouselBroadCaster

Extractor

Jar

LocalCache

Use-Case 1 : OSGiTVOSGi-based (DVB MHP) STB

Page 6: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi - D6

- 17-19 January 2005

Use-Case 2 : Ressource-

constrained gateway

�Can install bundles(in the limit of the Secondary Memory)

�Can not start all at the same time(constrained by Primary Memory)

�Some can be « passivate » to limit memory comsuption

Page 7: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi - D7

- 17-19 January 2005

Use-Case 2 : Ressource-

constrained gateway

B

4MB

C1

4MB

A

8MB

OSGi Gateway 0/16MB

Page 8: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi - D8

- 17-19 January 2005

Use-Case 2 : Ressource-

constrained gateway

OSGi Gateway 16/16MB

A

8MB

B

4MB

C1

4MB

Page 9: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi - D9

- 17-19 January 2005

Use-Case 2 : Ressource-

constrained gateway

OSGi Gateway 16/16MB

A

8MB

B

4MB

C1

4MB

C2

4MB

passivation

installation

Page 10: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi -

D10 - 17-19 January 2005

Use-Case 2 : Ressource-

constrained gateway

OSGi Gateway 12/16MB

A

8MB

B

4MB

C1

4MB

C2

4MB

activation

service stays

potentially

available

Page 11: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi -

D11 - 17-19 January 2005

Use-Case 2 : Ressource-

constrained gateway

OSGi Gateway 12/16MB

A

8MB

B

4MB

C1

4MB

C2

4MB

service in use

Page 12: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi -

D12 - 17-19 January 2005

Use-Case 2 : Ressource-

constrained gateway

OSGi Gateway 16/16MB

A

8MB

B

4MB

C1

4MB

C2

4MB

Page 13: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi -

D13 - 17-19 January 2005

Use-Case 2 : Ressource-

constrained gateway

OSGi Gateway 16/16MB

A

8MB

B

4MB

C1

4MB

C2

4MB

C3

4MB

Page 14: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi -

D14 - 17-19 January 2005

Use-Case 2 : Ressource-

constrained gateway

OSGi Gateway 16/16MB

A

8MB

B

4MB

C1

4MB

C2

4MB

C3

4MB

Page 15: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi -

D15 - 17-19 January 2005

Use-Case 3 : incremental

plugIn activation

�Plugin are installed and are startedonly if they are really used !

�Eclipse, JMF, ANT …

Page 16: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi -

D16 - 17-19 January 2005

Service-On-Demand Use-

Cases

�Use-Case 1 : iTV STB

�Use-Case 2 : ressource-constraint gateway

�Use-Case 3: unused plugins

�The solution

�On-Demand Service Installation

�On-Demand Service Activation

Page 17: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi -

D17 - 17-19 January 2005

-> install http/http.jar

Deployment of an application

on the OSGi gateway

�Deploy an application���� Deploy a set of bundles

�From a console (System.in, telnet, Http Admin)

Gateway Console

Page 18: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi -

D18 - 17-19 January 2005

-> install http/http.jar

Deployment of an application

on the OSGi gateway

�Deploy an application���� Deploy a set of bundles

�From a console (System.in, telnet, Http Admin)

-> install http/http.jar

-> start http/http.jar

org.osgi.framework.BundleException: Unresolved package:

javax.servlet; specification-version="0.0.0"

at org.ungoverned.oscar.Oscar.resolveBundle(Oscar.java:3346)

Gateway Console

Problem :Start requires

packages before !Which bundle

provides them ?

Page 19: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi -

D19 - 17-19 January 2005

-> install http/http.jar

-> start http/http.jar

org.osgi.framework.BundleException: Unresolved package:

javax.servlet; specification-version="0.0.0"

at org.ungoverned.oscar.Oscar.resolveBundle(Oscar.java:3346)

Deployment of an application

on the OSGi gateway

�Deploy an application���� Deploy a set of bundles

�From a console (System.in, telnet, Http Admin)

Gateway Console

-> install http/http.jar

-> start http/http.jar

org.osgi.framework.BundleException: Unresolved package:

javax.servlet; specification-version="0.0.0"

at org.ungoverned.oscar.Oscar.resolveBundle(Oscar.java:3346)

-> install servlet/servlet.jar

-> start servlet/servlet.jar

-> start http/http.jar

11:03:56.208 EVENT Starting Jetty/4.2.x

11:03:56.359 EVENT Started SocketListener on 0.0.0.0:8080

11:03:56.369 EVENT Started org.mortbay.http.HttpServer@b6548

->

Page 20: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi -

D20 - 17-19 January 2005

Deploying Http Service

Http

Service

Http

Service

ServletServlet

javax.servlet, javax.servlet.http

org.osgi.service.http.HttpService

OSGi

Service

OSGi

Service

org.osgi.service.http

Page 21: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi -

D21 - 17-19 January 2005

OBR OSCAR Bundle Repository

� First, an index of bundles metadata

<bundle>

<bundle-name>Servlet</bundle-name>

<bundle-updatelocation> http://bundles.mycomp.com/servlet/servlet.jar</bundle-updatelocation>

<export-package package="javax.servlet" specification-version="2.3"/>

<export-package package="javax.servlet.http" specification-version="2.3"/>

<export-package package="javax.servlet.jsp" specification-version="1.2"/>

</bundle>

<bundle>

<bundle-name>HTTP Service</bundle-name>

<bundle-updatelocation>http://bundles.mycomp.com/http/http.jar</bundle-updatelocation>

<import-package package="org.osgi.framework"/>

<import-package package="javax.servlet" specification-version="2.3"/>

<import-package package="javax.servlet.http" specification-version="2.3"/>

<import-package package="org.osgi.service.http" specification-version="1.1.0"/>

</bundle>

define anImport-Export Package Dependency

Page 22: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi -

D22 - 17-19 January 2005

OBR OSCAR Bundle Repository (ii)

�Second

�a Planner

�compute the list of bundles to install/start (or update)according to Import-Export Package dependencies graph

�and a PlanManager

�Run the plan computed by the planner

�OSCAR Shell command

�to use the BundleRepository Service

�List, info, deploy, install, start, update…

Page 23: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi -

D23 - 17-19 January 2005

OBR (iii)Example

Gateway Console

-> obr start "Http Service"

Installing dependency: Servlet

Installing dependency: OSGi Service

Installing: HTTP Service

11:03:56.208 EVENT Starting Jetty/4.2.x

11:03:56.359 EVENT Started SocketListener on 0.0.0.0:8080

11:03:56.369 EVENT Started org.mortbay.http.HttpServer@b6548

->

Page 24: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi -

D24 - 17-19 January 2005

Deploying Http Admin

Http

Service

Http

Service

ServletServlet

Http AdminHttp Admin

javax.servlet, javax.servlet.http

org.osgi.service.http.HttpService

OSGi

Service

OSGi

Serviceorg.osgi.service.http

Page 25: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi -

D25 - 17-19 January 2005

OBR (iv)Example

�What is wrong ?�Everything seems OK !

�But « Http Service » is not deployed and it’s required by « Http Admin »

�Service Dependencies are not in the « graph »

Gateway Console

-> obr start "Http Admin"

Installing dependency: Servlet

Installing dependency: OSGi Service

Installing: HTTP Admin

-> obr start "Http Admin"

Installing dependency: Servlet

Installing dependency: OSGi Service

Installing: HTTP Admin

-> ps

START LEVEL 1

ID State Level Name

...

[ 4] [Active ] [ 1] Servlet (1.0.0)

[ 5] [Resolved ] [ 1] OSGi Service (1.3.0)

[ 6] [Active ] [ 1] HTTP Admin (1.0.0)

->

Page 26: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi -

D26 - 17-19 January 2005

What is missing ?Import-Export Service Dependency

<bundle>

<bundle-name>HTTP Service</bundle-name>

<bundle-updatelocation>http://bundles.mycomp.com/http/http.jar</bundle-updatelocation>

<import-package package="org.osgi.framework"/>

<import-package package="javax.servlet" specification-version="2.3"/>

<import-package package="javax.servlet.http" specification-version="2.3"/>

<import-package package="org.osgi.service.http" specification-version="1.1.0"/>

<export-service name="org.osgi.service.http.HttpService"/>

</bundle>

<bundle>

<bundle-name>HTTP Admin</bundle-name>

<bundle-updatelocation>http://bundles.mycomp.com/httpadmin/httpadmin.jar</bundle-updatelocation>

<import-package package="org.osgi.framework"/>

<import-package package="javax.servlet" specification-version="2.3"/>

<import-package package="javax.servlet.http" specification-version="2.3"/>

<import-package package="org.osgi.service.http" specification-version="1.1.0"/>

<import-service name="org.osgi.service.http.HttpService"/>

</bundle>

define anImport-Export Service Dependency

Page 27: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi -

D27 - 17-19 January 2005

Other kinds of dependencies

�Bundle dependencies�An another bundle

�A service

�A package

�Environnement dependencies�Software (Linux RPM, Windows External DLL or

Applications…)

�Hardware

�Pattern dependencies�Producer-Consumer dependency (WireAdmin)

�Export-Import Service dependency�Deploy a Command requires a Shell

Page 28: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi -

D28 - 17-19 January 2005

GDF Generic Deployment FrameWork

�Multi-typed dependencies planner�Input

�Set of dependencies to satisfy

–Cardinality : min and stopthreshold

–Contingence: mandatory or optional

�Repository index (OBR metadata (standard + custom))

�Installed Bundles on the gateway

�Output�computed Deployment plan

�Two Forms�On-gateway planner and manager

�Server-side planner�Deployment plan is transformed in an ANT build file (to run)

Page 29: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi -

D29 - 17-19 January 2005

GDF

server-side planner

HTTP A

dmin

OSGi Gateway

Deployer

console

Bundle

Repository

<!-- eTrack application -->

<dependencies>

<unitdependency id="areadetection.jar"/>

<importservicedependency

service="org.osgi.service.wireadmin.Producer"

filter="(wireadmin.consumer.flavors=*org.osgi.util.position.Position)"

minimalcardinality="2" stopat="4"/>

<importservicedependency

service="org.osgi.service.io.ConnectionService"

filter="(|(io.scheme=*sms)(io.scheme=*mms))"

minimalcardinality="1" stopat="1"/>

<dependencies>

application.xml

Page 30: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi -

D30 - 17-19 January 2005

GDF

server-side planner

GDFANTTask

application.xml

obr.xml

HTTP A

dmin

OSGi Gateway

gateway.xml

plan.xml XSLT

build.xml

Deployer

console

Bundle

Repository

Page 31: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi -

D31 - 17-19 January 2005

GDF

server-side planner

GDFANTTask

application.xml

obr.xml

HTTP A

dmin

OSGi Gateway

gateway.xml

plan.xml XSLT

build.xml

Deployer

console

Bundle

Repository

<project main="deploy">

<property name="url.gw" value="http://gw1001.mycomp.com/admin"/>

<property name="url.repo" value="http://repo.mycomp.com/admin"/>

<target main="install">

<get src="${url.gw}?action=install&amp;url=${url.repo}/smsio.jar"/>

<get src="${url.gw}?action=install&amp;url=${url.repo}/wireadmin.jar"/>

<get src="${url.gw}?action=install&amp;url=${url.repo}/areadetection.jar"/>

<get src="${url.gw}?action=install&amp;url=${url.repo}/gpspositionprod.jar"/>

<get src="${url.gw}?action=install&amp;url=${url.repo}/compasspositionprod.jar"/>

</target>

<target main="start">

<get src="${url.gw}?action=start&amp;url=${url.repo}/smsio.jar"/>

<get src="${url.gw}?action=start&amp;url=${url.repo}/wireadmin.jar"/>

<get src="${url.gw}?action=start&amp;url=${url.repo}/areadetection.jar"/>

<get src="${url.gw}?action=start&amp;url=${url.repo}/gpspositionprod.jar"/>

<get src="${url.gw}?action=start&amp;url=${url.repo}/compasspositionprod.jar"/>

</target>

</project>

build.xml

Page 32: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi -

D32 - 17-19 January 2005

GDF

server-side planner

OSGi Gateway

Are

aDet

ectio

n

Wire

Adm

in

GPSPos

ition

Pro

duce

r

Com

pass

Pro

duce

r

SM

SIO

ant -f

PlanManager

GDFANTTask

application.xml

obr.xml

HTTP A

dmin

gateway.xml

plan.xml XSLT

build.xml

Deployer

console

Bundle

Repository

Page 33: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi -

D33 - 17-19 January 2005

GDF

on-gateway planner (as OBR)

dependencies

obr.xml

GD

F B

undl

e

OSGi Gateway

GD

F S

hell

Cm

d

Are

aDet

ectio

n

Wire

Adm

in

GPSPos

ition

Pro

duce

r

Com

pass

Pro

duce

r

SM

SIO

Déployer

console

Bundle

Repository

Page 34: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi -

D34 - 17-19 January 2005

GDF

Concrete Dependencies

�Common�UnitDependency

�LdapFilterDependency

�Constructor�ConjunctionDependency

�DisjunctionDependency

�NotDependency

�OSGi�VersionedUnitDependency

� ImportEportPackageDep (OBR)

�Eg: the unit requires the package javax.servlet; version=2.3

� ImportExportServiceDep� Eg: A telnet deamon requires a Shell

�QualifiedImportExportServiceDep� Eg Service Binder

�ExportImportServiceDep� Eg: A command requires a Shell

�ConsumerProducerWireAdminDep� Eg: Requires consumers consuming

temperatures

�ProducerConsumerWireAdminDep� Eg: Requires producers producing GPS

positions

�NativeDependency

�…

Page 35: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi -

D35 - 17-19 January 2005

Is everything OK ?

No

1. Developers must describe ServiceDependencies���� what to do with legacy systems ?

2. Bundles (provided services) are installed-startedeven if they are not immediatly used

Page 36: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi -

D36 - 17-19 January 2005

On-Demand Service

�On-Demand Service Installation

�When service dependencies are unknown until runtime

�On-Demand Service Activation

�When services are passivated

�Memory consumption

�After installation

Page 37: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi -

D37 - 17-19 January 2005

On-Demand Service

Installation/Activation

�Calls to BundleContext are intercepted

�ServiceReferences are simulated from OBR/GDF

metadata

Bundle C

OSGi Framework

BundleCxt

AI

Intercepted

Activator

InterceptedBundleCxt

AI: Activator Interceptor

GDF

Bundle

Repository

Service

Activator

BundleCxt

br.list()

cxt.getSvRefs()

cxt.getSvRefs()

Page 38: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi -

D38 - 17-19 January 2005

On-Demand Service

Installation/Activation

�Calls to BundleContext are intercepted

�ServiceReferences are simulated from OBR/GDF metadata

�ServiceReference.getService() trigs Installation/Activation

Bundle C

OSGi Framework

BundleCxt

AI

Intercepted

Activator

InterceptedBundleCxt

AI: Activator Interceptor

GDF

Bundle

Repository

Service

Activator

BundleCxt

br.deploy()

iXsr.getService()

sr.getService()cxt.install() …

Bundle S

BundleCxt

FooService

Activator

Page 39: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi -

D39 - 17-19 January 2005

On-Demand Service

Installation/Activation

�Service invocation

Bundle C

OSGi Framework

BundleCxt

AI

Intercepted

Activator

InterceptedBundleCxt

AI: Activator Interceptor

Bundle S

BundleCxt

FooService

Activator

GDF

Bundle

Repository

Service

Activator

BundleCxt

foo.bar()

Remark: fully transparent

Page 40: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi -

D40 - 17-19 January 2005

Transform your bundle

to be « On-Demand »

�Just change 3 lines in the Manifestand add an « empty » class inheriting AI

Bundle-Name: Bundle C

Bundle-Activator: org.my.client.Activator

Import-Package: org.my.foo

.mf

Bundle-Name: Bundle C

Bundle-Activator: serviceondemand.util.ActivatorInterceptor

X-Bundle-Activator:org.my.client.Activator

Import-Package: org.my.foo,

org.ungoverned.osgi.service.bundlerepository,

serviceondemand.util

.mf

Page 41: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi -

D41 - 17-19 January 2005

Conclusion

�Multi-typed Dependencies plannerto deploy OSGi « applications »

�On-Demand Service Installation�Legacy systems

�On-Demand Service Activation�Differed activation when memory is limited

�Available on�GDF on ObjectWeb SourceForge

�http://www-adele.imag.fr/~donsez/dev/osgi/serviceondemand/

Page 42: On-demand Service Installation and Activation with OSGi file On-Demand Service Installation Activation with OSGi - D2 - 17-19 January 2005 Agenda Service-On-Demand Use-Cases GDF OSGi

www.objectweb.orgOn-Demand Service Installation Activation with OSGi -

D42 - 17-19 January 2005

Project Roadmap

�GDF�Service Passivation

�Bundle configuration step

�Bundle Update/Uninstall (i.e. Bundle Garbage Collector)

�OMG D&C Compliance

�ServiceOnDemand�Used in OSGiTV (COMPiTV project, French Gov. Funding, 2003)

�Test with other OSGi FW (KF, Eclipse, SMF, …)

�Part of the ITEA OSMOSE project