OSGi DevCon 2009 Review

Uploaded on

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

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

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads


Total Views
On Slideshare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 1. OSGi DevCon 2009 Review Neil Bartlett - UK OSGi Users’ Forum
  • 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. Ubiquity
  • 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.
  • 6. Enterprise
  • 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.
  • 9. Parts Blueprint Distributed OSGi (RFC 119) Java EE Modularity
  • 10. Blueprint Essentially Spring-DM... But name “Spring” is a trademark. “Enterprise Programming Model”.
  • 11. Old Spring Customer Manager Customer DAO DataSource Log
  • 12. Spring-DM/Blueprint
  • 13. Services as the Glue
  • 14. Interoperable!
  • 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. Distribution
  • 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...
  • 20. Distribution Find a remote service somehow*. Extender bundle will create a local proxy service for it.
  • 21. Discovery Publishing and look-up of services. Many ways to do it, many challenges. Examples: SLP (RFC 2608), Bonjour/ Zeroconf/DNS-SD.
  • 22. Controversy?
  • 23. Controversy?
  • 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.
  • 26. Tools
  • 27. Tools Lots of tooling discussions. One evening BoF, a Summit, many hallway conversations. More details from David.
  • 28. API Modernisation
  • 29. OSGi APIs “Feel” Old!
  • 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. More Radical Ideas Should exports have ranges rather than imports? Make all events (ServiceEvent, BundleEvent etc) asynchronous.
  • 32. OSGi for Eclipse Devs
  • 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.
  • 35. “Symmetric” Services
  • 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?
  • 40. Rumours...
  • 41. JSR 277 Is Dead
  • 42. Jigsaw Is Undead
  • 43. Jigsaw
  • 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.