OSGi DevCon 2009 Review

  • 2,570 views
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

Views

Total Views
2,570
On Slideshare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
47
Comments
0
Likes
4

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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.