4. Ubiquity
My third EclipseCon/OSGi DevCon
2007: Some people know what OSGi is.
2008: Most people know what OSGi is,
some have developed for it.
2009: Many people know and have
developed for OSGi.
5. Services and Apps
OSGi for modularity is mostly a done
deal. All* app-servers & ESBs using it.
Next wave: Services/Dynamics, and
OSGi for Apps.
7. Goals
Adapt enterprise tech without creating
“editions”.
Preserve compatibility for users of
enterprise APIs.
8. Timeline
Updated (R4.2) core & compendium
specs in June 09.
Most changes are already implemented
(provisionally) in Equinox.
“Enterprise Profile” in December 09.
15. Java EE Modularity
For OSGi devs: add QoS (e.g.
transactions, declarative security) to
OSGi programming model.
For EE devs: enable OSGi modularity
without breaking existing APIs.
Deployment of standard EE artefacts
(WARs and EARs).
17. What Is It?
Normal OSGi is intra-JVM only.
D-OSGi makes the services
programming model distributed.
Transparently publish services outside
the JVM.
Transparently bind to services from
other JVMs (or other non-Java runtimes).
18. Timeline
Spec will be included in R4.2 in June.
Reference implementation: Apache CXF
available now.
Eclipse Comms Framework (ECF) also
implements.
19. Distribution
Just add a property to the published
service: osgi.remote.interfaces=*
Extender bundle will automatically
make the service callable remotely.
Protocol depends on extender impl. E.g.
SOAP, R-OSGi, XMPP, Skype...
24. Key Points...
D-OSGi allows transparent treatment of
remote services
But it also allows clients to filter remote
services and know when a service a
remote proxy.
Is this enough...?
25. Key Points...
No new protocols!
D-OSGi wraps existing protocols.
It is optional.
Fears of bloating the core spec seem
misplaced.
33. OSGi for Eclipse Devs
Most Eclipse developers now know they
are using OSGi!
Some even experimenting with Services
(instead of Extensions).
34. Declarative Services
Eclipse SDK Galileo includes SCR.
Riena aids integration of Services and
Extensions.
Component models tutorial (DS,
Spring-DM, iPOJO) was packed.
36. What Is it?
Giving some power back to service
producers.
Producers have no idea if anybody even
needs the service they offer.
37. Why?
“On-demand” services.
Filtering on behalf of a consumer.
Service proxies – prevent the underlying
service from being seen.
Needed for D-OSGi but will be part of
core spec.
38. How It Works
ListenerHook – discover who is listening
for which services.
EventHook – filter service events before
they reach listeners.
FindHook – filter results of
getServiceReferences() calls.
39. How It Works
Hooks are themselves published as
services.
Powerful but NOT for the faint-hearted.
Wait for frameworks to make this easier?
44. Jigsaw
Alternative module system to OSGi.
NOT a standard, just a Sun project.
EVIL.
Cannot be killed by silver bullets, but a
Big Blue bullet might work...
45. JSR 294
Not necessarily evil...
Java language support for modules.
Designed for Jigsaw, but may help OSGi
also.