Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
OSGi DevCon 2009
     Review
 Neil Bartlett - UK OSGi Users’ Forum
Themes
OSGi Ubiquity       OSGi for Eclipse
                    Developers
Enterprise OSGi
                    “Symmetric”...
Ubiquity
Ubiquity
My third EclipseCon/OSGi DevCon
2007: Some people know what OSGi is.
2008: Most people know what OSGi is,
some ha...
Services and Apps

OSGi for modularity is mostly a done
deal. All* app-servers & ESBs using it.
Next wave: Services/Dynami...
Enterprise
Goals

Adapt enterprise tech without creating
“editions”.
Preserve compatibility for users of
enterprise APIs.
Timeline

Updated (R4.2) core & compendium
specs in June 09.
Most changes are already implemented
(provisionally) in Equin...
Parts


Blueprint
Distributed OSGi (RFC 119)
Java EE Modularity
Blueprint


Essentially Spring-DM...
But name “Spring” is a trademark.
“Enterprise Programming Model”.
Old Spring

               Customer
               Manager




    Customer
      DAO




DataSource                Log
Spring-DM/Blueprint
Services as the Glue
Interoperable!
Java EE Modularity
For OSGi devs: add QoS (e.g.
transactions, declarative security) to
OSGi programming model.
For EE devs...
Distribution
What Is It?
Normal OSGi is intra-JVM only.
D-OSGi makes the services
programming model distributed.
Transparently publish ...
Timeline

Spec will be included in R4.2 in June.
Reference implementation: Apache CXF
available now.
Eclipse Comms Framewo...
Distribution
Just add a property to the published
service: osgi.remote.interfaces=*
Extender bundle will automatically
mak...
Distribution


Find a remote service somehow*.
Extender bundle will create a local proxy
service for it.
Discovery

Publishing and look-up of services.
Many ways to do it, many challenges.
Examples: SLP (RFC 2608), Bonjour/
Zer...
Controversy?
Controversy?
Key Points...
D-OSGi allows transparent treatment of
remote services
But it also allows clients to filter remote
services ...
Key Points...

No new protocols!
D-OSGi wraps existing protocols.
It is optional.
Fears of bloating the core spec seem
mis...
Tools
Tools

Lots of tooling discussions.
One evening BoF, a Summit, many
hallway conversations.
More details from David.
API Modernisation
OSGi APIs “Feel” Old!
Ideas
Generics             Replace arrays with
                     collections
Don’t return null
arrays               Rep...
More Radical Ideas

Should exports have ranges rather than
imports?
Make all events (ServiceEvent,
BundleEvent etc) asynch...
OSGi for Eclipse Devs
OSGi for Eclipse Devs

Most Eclipse developers now know they
are using OSGi!
Some even experimenting with Services
(instea...
Declarative Services

Eclipse SDK Galileo includes SCR.
Riena aids integration of Services and
Extensions.
Component model...
“Symmetric” Services
What Is it?

Giving some power back to service
producers.
Producers have no idea if anybody even
needs the service they of...
Why?
“On-demand” services.
Filtering on behalf of a consumer.
Service proxies – prevent the underlying
service from being ...
How It Works
ListenerHook – discover who is listening
for which services.
EventHook – filter service events before
they re...
How It Works

Hooks are themselves published as
services.
Powerful but NOT for the faint-hearted.
Wait for frameworks to m...
Rumours...
JSR 277 Is Dead
Jigsaw Is Undead
Jigsaw
Jigsaw

Alternative module system to OSGi.
NOT a standard, just a Sun project.
EVIL.
Cannot be killed by silver bullets, b...
JSR 294

Not necessarily evil...
Java language support for modules.
Designed for Jigsaw, but may help OSGi
also.
OSGi DevCon 2009 Review
Upcoming SlideShare
Loading in …5
×

OSGi DevCon 2009 Review

3,095 views

Published on

A review of OSGi DevCon 2009, delivered at the first meeting of the UK OSGi Users' Forum.

Published in: Technology
  • Be the first to comment

OSGi DevCon 2009 Review

  1. 1. OSGi DevCon 2009 Review Neil Bartlett - UK OSGi Users’ Forum
  2. 2. Themes OSGi Ubiquity OSGi for Eclipse Developers Enterprise OSGi “Symmetric” service Distributed OSGi oriented programming Tooling JSR 294, Jigsaw, IBM/ Sun Rumours API Modernisation
  3. 3. Ubiquity
  4. 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. 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.
  6. 6. Enterprise
  7. 7. Goals Adapt enterprise tech without creating “editions”. Preserve compatibility for users of enterprise APIs.
  8. 8. Timeline Updated (R4.2) core & compendium specs in June 09. Most changes are already implemented (provisionally) in Equinox. “Enterprise Profile” in December 09.
  9. 9. Parts Blueprint Distributed OSGi (RFC 119) Java EE Modularity
  10. 10. Blueprint Essentially Spring-DM... But name “Spring” is a trademark. “Enterprise Programming Model”.
  11. 11. Old Spring Customer Manager Customer DAO DataSource Log
  12. 12. Spring-DM/Blueprint
  13. 13. Services as the Glue
  14. 14. Interoperable!
  15. 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).
  16. 16. Distribution
  17. 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. 18. Timeline Spec will be included in R4.2 in June. Reference implementation: Apache CXF available now. Eclipse Comms Framework (ECF) also implements.
  19. 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...
  20. 20. Distribution Find a remote service somehow*. Extender bundle will create a local proxy service for it.
  21. 21. Discovery Publishing and look-up of services. Many ways to do it, many challenges. Examples: SLP (RFC 2608), Bonjour/ Zeroconf/DNS-SD.
  22. 22. Controversy?
  23. 23. Controversy?
  24. 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. 25. Key Points... No new protocols! D-OSGi wraps existing protocols. It is optional. Fears of bloating the core spec seem misplaced.
  26. 26. Tools
  27. 27. Tools Lots of tooling discussions. One evening BoF, a Summit, many hallway conversations. More details from David.
  28. 28. API Modernisation
  29. 29. OSGi APIs “Feel” Old!
  30. 30. Ideas Generics Replace arrays with collections Don’t return null arrays Replace int masks with enums Replace Dictionary with Map Expanded filter ops Services returning JSR 294 support multiple instances
  31. 31. More Radical Ideas Should exports have ranges rather than imports? Make all events (ServiceEvent, BundleEvent etc) asynchronous.
  32. 32. OSGi for Eclipse Devs
  33. 33. OSGi for Eclipse Devs Most Eclipse developers now know they are using OSGi! Some even experimenting with Services (instead of Extensions).
  34. 34. Declarative Services Eclipse SDK Galileo includes SCR. Riena aids integration of Services and Extensions. Component models tutorial (DS, Spring-DM, iPOJO) was packed.
  35. 35. “Symmetric” Services
  36. 36. What Is it? Giving some power back to service producers. Producers have no idea if anybody even needs the service they offer.
  37. 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. 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. 39. How It Works Hooks are themselves published as services. Powerful but NOT for the faint-hearted. Wait for frameworks to make this easier?
  40. 40. Rumours...
  41. 41. JSR 277 Is Dead
  42. 42. Jigsaw Is Undead
  43. 43. Jigsaw
  44. 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. 45. JSR 294 Not necessarily evil... Java language support for modules. Designed for Jigsaw, but may help OSGi also.

×