eclipse con2010 composites

Post on 06-May-2015

2.218 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

A presentation on OSGi Composite Bundles.

TRANSCRIPT

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

EclipseCon 2010

Isolating Applications in a Collaborative OSGi World

Composite Bundles

Thomas Watson

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Warning!

Not for the faint of heart!Lots of details.

No fancy slides.

(What would you expect from a framework implementer?)

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

OSGi R4.2 Review

● New Enterprise Specifications– Remote Services

– Blueprint

● And more on the way ...– Remote Services Admin

– JTA, JMX, JDBC, JNDI, JPA

– Web Applications

– etc.

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Forget the High-Level Stuff!

● R4.2 Core framework changes– Service registry hooks

– Security enhancements● Ordered conditions● Fine-grained service and package permissions based on

identity of the provider

– Bundle tracker

– Standard launching and embedding

– Composite bundles (provisional spec.)

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

What can we expect from R4.3 Core?

● Still early in the process● Early access to draft RFCs

● OSGi API update (RFC 151)– Use of generics and adaptor patterns

● Composite Bundles (RFC 138)– Much has changed since the R4.2 provisional spec.

● Generic capabilities and requirements (RFC 154)

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

What can we expect from R4.3 Core?

● Still early in the process● Early access to draft RFCs

● OSGi API update (RFC 151)– Use of generics and adaptor patterns

● Composite Bundles (RFC 138)– Much has changed since the R4.2 provisional spec.

● Generic capabilities and requirements (RFC 154)

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Standard Launching & Embedding

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Framework Implementations

● Bundles are portable● What about the framework?

– Launching and configuring

– Controlling its life cycle

– Externally interacting with bundles, services, and state

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Standard Launching & Embedding

● Seems like a slam dunk● What does it give us?

– A standard way to create framework instances

– A standard API for controlling and interacting with framework instances

● What does this help?

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Standard Launching & Embedding

● Seems like a slam dunk● What does it give us?

– A standard way to create framework instances

– A standard API for controlling and interacting with framework instances

● What does this help?– Portable scripts and launchers

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Standard Interfaces

public interface FrameworkFactory { Framework newFramework(Map config);}

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Standard Interfaces

public interface FrameworkFactory { Framework newFramework(Map config);}

public interface Framework extends Bundle { void init() throws BundleException; FrameworkEvent waitForStop(long timeout) throws InterruptedException;}

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Standard Configuration Properties

● org.osgi.framework.bootdelegation

● org.osgi.framework.system.packages

● org.osgi.framework.system.packages.extra

● org.osgi.framework.startlevel.beginning

● org.osgi.framework.storage

● org.osgi.framework.storage.clean

● And others...

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Out Of Scope

● Multiple framework instances– e.g., no support for sharing/collaboration among

instances or multiplexing of VM singletons

– May or may not work, but implementation dependent

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Multiple Instances

● Pose interesting challenges● Promise potentially interesting capabilities● This use case uncovers potential framework

issues

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Composite Bundles

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Framework Limitations

● Applications are either all bundles collaborating or an individual bundle● All global or completely local

● No application/subsystem concept● Isolation/protection (bundles, services, packages)● Visibility (bundles, services, packages)● Grouping (lifecycle)

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Framework Limitations

FrameworkWhere is theapplication?

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Framework Limitations

Framework

Assume thesebelong to anapplication

A1

A3

A2

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Framework Limitations

Framework

What if they are

subsystems?

A1

A3

A2

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Framework Limitations

Framework

Maybe they want private

packages

A1

A3

A2

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Framework Limitations

FrameworkAnd private

services

A1

A3

A2

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Framework Limitations

Framework

A1

A3

A2

Need subsystem

encapsulation

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Framework Limitations

Framework

A1

A3

A2

Private detailsare hidden

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Framework Limitations

Framework

A1

A3

A2

Public packages

are exposed

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Framework Limitations

Framework

A1

A3

A2

External packages

are imported

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Framework Limitations

Framework

A1

A3

A2

Public servicesare exposed

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Framework Limitations

Framework

A1

A3

A2

This blob is acomposite

bundle

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Implementing Composites

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Composites are composed of bundles with resolved states

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

C

Composite Bundle

exportorg.foo.b

exportorg.foo.c

A

B

Importing and Exporting Packages

Export

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

C

Composite Bundle

exportorg.foo.b

exportorg.foo.c

importorg.foo.b

A

importorg.foo.c

B

Importing and Exporting Packages

Import

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

B

C

A

importorg.foo.b

exportorg.foo.b

importorg.foo.c

exportorg.foo.c

Composite Bundle

Importing and Exporting Packages

Resolve

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Composites are composed of bundles that publish and bind to

services

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Composite Bundle

org.foo.b.BService

Publish and Consume Services

Publish

A

C

B

org.foo.c.CService

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Composite Bundle

Publish and Consume Services

Bind

org.foo.c.CService

org.foo.b.BServiceA

B

C

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

This looks very similar to a Framework!

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Implementing Composites

Framework

A1

A3

A2

Can this blob be anested

framework?

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Implementing Composites

A1

A3

A2

How are imports, exports

and serviceshandled?

Framework

Nested Framework

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Defining a Sharing Policy

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Implementing Composites

A1

A3

A2

Framework

Bundle

To the outside this looks like a normal bundle

Bundle

C

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Implementing Composites

A1

A3

A2

A representation is needed inside for the

exports, imports and services

Framework

C

Nested Framework

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Implementing Composites

A surrogate bundle canprovide this representation

Framework

Composite

A1

A3

A2

Sur

roga

te B

undl

eC

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Implementing Composites

Framework

A1

A3

A2

Composite

C

The surrogate imports packages exported

by the composite

Sur

roga

te B

undl

e

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Implementing Composites

Framework

A1

A3

A2

Composite

Sur

roga

te B

undl

eC

The surrogate exports packages imported

by the composite

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Implementing Composites

Framework

A1

A3

A2

Composite

Sur

roga

te B

undl

eC

The surrogate consumes services published outside

by the composite

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Implementing Composites

Framework

A1

A3

A2

Composite

Sur

roga

te B

undl

eC

The surrogate registers services consumed by the composite from

the outside

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Implementing Composites

● Issues with modeling composites as real bundles with nested frameworks

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Implementing Composites

● Issues with modeling composites as real bundles with nested frameworks● Sharing everything through a surrogate creates

lifecycle issues

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Implementing Composites

Framework

A1

A3

A2

Composite

Sur

roga

te B

undl

eC

What happens if the composite is

stopped – the composite

framework is shutdown

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Implementing Composites

Framework

A1

A3

A2

Composite

Sur

roga

te B

undl

eC

What happens if the composite is

stopped – the composite

framework is shutdown

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Implementing Composites

Framework

A1

A3

A2

Composite

Sur

roga

te B

undl

eC

But C is still resolved and

expecting to be able to load

classes from the exported package

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Implementing Composites

● Issues with modeling composites as real bundles with nested frameworks● Sharing everything through a surrogate creates

lifecycle issues

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Implementing Composites

● Issues with modeling composites as real bundles with nested frameworks● Sharing everything through a surrogate creates

lifecycle issues● Consumers and Providers loose their identity to the

composite and surrogate– No support for Require-Bundle– ServiceFactory support is limited– Introspecting system dependencies is combersome.

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Implementing Composites

Framework

A1

A3

A2

Composite

Sur

roga

te B

undl

eC

Composite and Surrogate must proxy all shared

resources

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Implementing Composites

Framework

A1

A3

A2

Composite

Sur

roga

te B

undl

eC

Difficulties with proxying service

factories. No way to guarantee

unique locations or bundle IDs

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Implementing Composites

Framework

A1

A3

A2

Composite

Sur

roga

te B

undl

eC

Exports loose the identity of their

exporting symbolic name. Require-

Bundle is not possible

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Transparent Sharing Policy

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Virtualizing Framework Isolation

● Model isolation in a single framework instance

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Virtualizing Framework Isolation

● Model isolation in a single framework instance● Each composite has a virtual framework that hides

outside bundles, services, and packages.

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Virtualizing Framework Isolation

● Model isolation in a single framework instance● Each composite has a virtual framework that hides

outside bundles, services, and packages.● A sharing policy can be declared

– What is visible to the inside from the outside (imported)– What is visible to the outside from the inside (exported)

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Implementing Composites

A Sharing Policy controls the

visibility of shared resources

Framework

Composite

A1

A3

A2

C

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Implementing Composites

Framework

Composite

A1

A3

A2

C

What is visible from the point of view of a bundle in a composite

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Implementing Composites

Framework

Composite

A1

A3

A2

C

What is visible from the point of view of a bundle

in the parent

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Virtualizing Framework Isolation

● Model isolation in a single framework instance● Each composite has a virtual framework that hides

outside bundles, services, and packages.● A sharing policy can be declared

– What is visible to the inside from the outside (imported)– What is visible to the outside from the inside (exported)

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Virtualizing Framework Isolation

● Model isolation in a single framework instance● Each composite has a virtual framework that hides

outside bundles, services, and packages.● A sharing policy can be declared

– What is visible to the inside from the outside (imported)– What is visible to the outside from the inside (exported)

● Enforce rules to ensure unique bundle identification● All bundle locations and bundle IDs must be unique● Important for supporting shared service factories

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Installing a Composite

Configure?

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Installing a Composite

Configure?

Create?

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Installing a Composite

Configure?

Create?Reference?

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Configure

String location = “myComposite; composite=true”;Map config = HashMap();config.put(“...startlevel.beginning”, “25”);

Map manifest = HashMap();manifest.put(“Bundle-SymbolicName”, location);manifest.put(“Composite-PackageExportPolicy”, “b”);manifest.put(“Composite-PackageImportPolicy”, “c”);manifest.put(“Composite-ServiceImportPolicy”, “(objectClass=c.CService)”);manifest.put(“Composite-ServiceExportPolicy”, “(objectClass=b.BService)”);...

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Configure

String location = “myComposite; composite=true”;Map config = HashMap();config.put(“...startlevel.beginning”, “25”);

Map manifest = HashMap();manifest.put(“Bundle-SymbolicName”, location);manifest.put(“Composite-PackageExportPolicy”, “b”);manifest.put(“Composite-PackageImportPolicy”, “c”);manifest.put(“Composite-ServiceImportPolicy”, “(objectClass=c.CService)”);manifest.put(“Composite-ServiceExportPolicy”, “(objectClass=b.BService)”);...

Framework launching configuration

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Configure

String location = “myComposite; composite=true”;Map config = HashMap();config.put(“...startlevel.beginning”, “25”);

Map manifest = HashMap();manifest.put(“Bundle-SymbolicName”, location);manifest.put(“Composite-PackageExportPolicy”, “b”);manifest.put(“Composite-PackageImportPolicy”, “c”);manifest.put(“Composite-ServiceImportPolicy”, “(objectClass=c.CService)”);manifest.put(“Composite-ServiceExportPolicy”, “(objectClass=b.BService)”);...

Specify the package export policy

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Configure

String location = “myComposite; composite=true”;Map config = HashMap();config.put(“...startlevel.beginning”, “25”);

Map manifest = HashMap();manifest.put(“Bundle-SymbolicName”, location);manifest.put(“Composite-PackageExportPolicy”, “b”);manifest.put(“Composite-PackageImportPolicy”, “c”);manifest.put(“Composite-ServiceImportPolicy”, “(objectClass=c.CService)”);manifest.put(“Composite-ServiceExportPolicy”, “(objectClass=b.BService)”);...

Specify the package import policy

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Configure

String location = “myComposite; composite=true”;Map config = HashMap();config.put(“...startlevel.beginning”, “25”);

Map manifest = HashMap();manifest.put(“Bundle-SymbolicName”, location);manifest.put(“Composite-PackageExportPolicy”, “b”);manifest.put(“Composite-PackageImportPolicy”, “c”);manifest.put(“Composite-ServiceImportPolicy”, “(objectClass=c.CService)”);manifest.put(“Composite-ServiceExportPolicy”, “(objectClass=b.BService)”);...

Specify the service import policy

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Configure

String location = “myComposite; composite=true”;Map config = HashMap();config.put(“...startlevel.beginning”, “25”);

Map manifest = HashMap();manifest.put(“Bundle-SymbolicName”, location);manifest.put(“Composite-PackageExportPolicy”, “b”);manifest.put(“Composite-PackageImportPolicy”, “c”);manifest.put(“Composite-ServiceImportPolicy”, “(objectClass=c.CService)”);manifest.put(“Composite-ServiceExportPolicy”, “(objectClass=b.BService)”);...

Specify service filters to publish

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Reference?

String location = “myComposite”;Map config = HashMap();Map manifest = HashMap();...

Installing a Composite

Create?

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Reference? CompositeAdmin. installCompositeBundle( location, manifest, config);

Installing a Composite

String location = “myComposite”;Map config = HashMap();Map manifest = HashMap();...

Obtained from the service registry.

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

CompositeBundle comp

CompositeBundleextends Bundle

String location = “myComposite”;Map config = HashMap();Map manifest = HashMap();...

Installing a Composite

CompositeAdmin. installCompositeBundle( location, manifest, config);

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Framework

Empty Installed Composite

Sharing Policy

Composite Bundle: myComposite

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Managing a Composite

Access?

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Managing a Composite

Install?Access?

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Managing a Composite

Install?

Start?

Access?

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Managing a Composite

Install?

Start?

BundleContext ctxt = comp.getSystemBundleContext();...

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Managing a Composite

Start?

Bundle a = ctxt.installBundle( “file:a.jar”);Bundle b = ctxt.installBundle( “file:b.jar”);...

BundleContext ctxt = comp.getSystemBundleContext();...

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Managing a Composite

Bundle a = ctxt.installBundle( “file:a.jar”);Bundle b = ctxt.installBundle( “file:b.jar”);...

a.start();b.start();comp.start();...

BundleContext ctxt = comp.getSystemBundleContext();...

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Framework

Resolved Composite

B

A

C

Composite Bundle: myComposite

Sharing Policy

exportb

exportc

Importb

Importc

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Framework

Active Composite

A

Composite Bundle: myComposite

Sharing Policy

c.CService

b.BService

C

B

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Demo

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Isolating SWT and e4 applications

Root Framework

SWT

AppConsoleWeb UI

e4PhotoDemo

e4Contacts

Demo

Each Composite contains their own stack of bundles

which are isolated from each other

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Isolating SWT and e4 applications

Root Framework

SWT

AppConsoleWeb UI

e4PhotoDemo

e4Contacts

Demo

SWT is installed in the root

framework and shared with the

composites which require SWT

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Isolating SWT and e4 applications

Root Framework

SWT

AppConsoleWeb UI

e4PhotoDemo

e4Contacts

Demo

Application Descriptor and

Handle services are shared with

the Web UI

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Benefits of Composites

● Composite Bundles are persistent

– Content of composite is reified when the parent framework restarts

– Like a normal bundle, the active state is persisted

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Benefits of Composites

● Composite Bundles are persistent

– Content of composite is reified when the parent framework restarts

– Like a normal bundle, the active state is persisted

● Bundles can be grouped together into one executable unit

– Stopping a composite stops all constituent bundles

– Starting a composite starts the constituent bundles (which are marked for start)

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Benefits of Composites

● Composite Bundles are persistent

– Content of composite is reified when the parent framework restarts

– Like a normal bundle, the active state is persisted

● Bundles can be grouped together into one executable unit

– Stopping a composite stops all constituent bundles

– Starting a composite starts the constituent bundles (which are marked for start)

● High level of isolation

– Strict control over what is imported to and exported from the composite.

– Sharing is fine grained and transparent

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Difficulties with Composites

● Low-level API for installing content into composites– Equivalent to managing a complete framework

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Difficulties with Composites

● Low-level API for installing content into composites– Equivalent to managing a complete framework

● Limitations for sharing resources– Extenders do not understand composites (DS, Spring,

Blueprint, Extension Registry, iPOJO)

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Difficulties with Composites

● Low-level API for installing content into composites– Equivalent to managing a complete framework

● Limitations for sharing resources– Extenders do not understand composites (DS, Spring,

Blueprint, Extension Registry, iPOJO)

– Transparent sharing policy● Simplifies most things

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Difficulties with Composites

● Low-level API for installing content into composites– Equivalent to managing a complete framework

● Limitations for sharing resources– Extenders do not understand composites (DS, Spring,

Blueprint, Extension Registry, iPOJO)

– Transparent sharing policy● Simplifies most things● But violates academic notion of a composite

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Conclusion

● OSGi R4.3 is shaping up to be a big release– Still early, but some interesting things are far along

– OSGi API Updates

– Composite Bundles

● Composite Bundles– A powerful way to establish application isolation

– Provides a basis for defining subsystems

© 2010 by IBM Corp.; Licensed under the Creative Commons Att. Nc Nd 2.5 license

Legal Notices

● Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both

● Other company, product, or service names may be trademarks or service marks of others

top related