| Conclusion |
First impressions.
In my view, as the OSGi application developer, the most attractive from the three systems is OSGi DS, because it adds bare minimum to the OSGi framework to free developers from the need to use ‘native’ OSGi API. In particular, it eliminates the need for bundle activators and service trackers or listeners for a relatively small price. The positive side of OSGi DS is flexible dynamic control over service dependencies, including service availability monitoring and configurable restart of importer component when imported service is updated. The negative side, hovewer, is that component classes are not really POJOs. Another important advantage is that OSGi DS specifications are included in the standard OSGi Compendium, so it’s expected to be available as a part of OSGi Framework implementation. Indeed, Equinox 3.5.0 has already included DS in its standard configuration. One useful improvement that can be added to OSGi DS is implementing support for Java annotations, as proposed, for instance, by Kai Tödter.
Speaking about Spring DM, I start with a trivial statement: the Spring Framework just absorbs a new promising playground – modular OSGi Platform. Spring DM adds a new namespace – osgi – with plenty of new elements to already reach set of Spring Framework namespaces, but it’s not about changing familiar Spring programming model. In my opinion, this is the major positive side of Spring DM for a broad community of Spring Framework application developers. However, this convenience does not come for free – Spring DM is the heaviest platform among the three I’ve covered in this post. Developers will also realize that using Spring DM requires understanding of some OSGi Platform concepts and its dynamic nature, especially the concepts of services and service dependencies. Spring DM takes care of almost everything developers need to build and deploy their applications in the OSGi Platform, but it requires thorough design to avoid pitfalls like cyclic dependencies (see also discussion at Spring and OSGi Google group). An important part of Spring Framework is its natural support for AOP. However, Spring DM did not bring real modularity to AOP, at least in the release 1.2.0 (see discussion in the Spring DM section of this post). I believe, a useful improvement that can be added to Spring DM is support for modular AOP, which will allow creating and seamlessly integrating AOP bundles with target code w/o adding anything to the target components.
The 3rd personage of this post – Apache iPOJO – is, in my opinion, the most amusing service development framework riding on the back of the OSGi Platform. iPOJO brings many goodies – Java annotations making development of OSGi components really fun, compile time code manipulation improving run-time performance (see, for instance, page 51 in Clement Escoffier’s PhD presentation), even extensibility mechanism that I did not cover in this post. The iPOJO platform is a little bit heavier than the OSGi DS – it adds minimum 3 bundles to the standard OSGi configuration. One important issue with the iPOJO platform is the necessity to use additional tool (Ant utility) to perform compile time code manipulation. It would be very advantageous for iPOJO to provide Eclipse plug-in that automatically adds special builder to iPOJO projects (yes, I’m talking about adding iPOJO project nature) and transparently performs compile time code manipulation.
Want to read more on this?
Today’s Web is full of OSGi related discussions – conference presentations, blogs, forums, papers and even books. In this post I have no intention to write a review of OSGi related publications – just want to mention a few that focus on the themes I’ve covered in this post.
- Neil Bartlett and Heiko Seeberger, "Component Oriented Development in OSGi with DS, Spring and iPOJO"
- Felix Meschberger, "Declarative Services Dependency Injection OSGi Style"
- Guillaume Nodet, "OSGi Blueprint Services"
- Nable forum discussion, "DS or iPOJO or Peaberry"
Some books that may give you more comprehensive view (see also OSGi Bookshelf at The OSGi Look):
- Craig Walls, Modular Java: Creating flexible applications with OSGi and Spring, The Pragmatic Bookshelf, 2009
- Daniel Rubio, Pro Spring Dynamic Modules for OSGi™ Service Platforms, APress, 2009
- Neil Bartlett, OSGi in Practice, 2009 (est)
- Richard S. Hall, Karl Pauls, Stuart McCulloch, and David Savage, OSGi in Action, Manning, 2010 (est)
- Alexandre de Castro Alves, OSGi Application Frameworks, Manning, 2010 (est)
- Arnaud Cogoluegnes, Thierry Templier, and Andy Piper, Spring Dynamic Modules in Action, Manning, 2010 (est)
Thanks for reading!
| « Apache iPOJO version | Main |
вааа что творится а…
Description historique des monnaies frappйes sous l’Empire Romain Conclusion First impressions…..
Buy:Nymphomax.Ventolin.Aricept.Female Cialis.Lipitor.Benicar.Lipothin.Prozac.Cozaar.Amoxicillin.Zocor.Advair.Female Pink Viagra.Zetia.Lasix.SleepWell.Buspar.Acomplia.Wellbutrin SR.Seroquel….
Buy:Cozaar.Prozac.Wellbutrin SR.Benicar.Lipitor.Buspar.Lasix.Seroquel.SleepWell.Female Pink Viagra.Nymphomax.Acomplia.Aricept.Advair.Amoxicillin.Ventolin.Zocor.Lipothin.Female Cialis.Zetia….
Industrial http://gdepoujvgo.ALLSTOCKSPORT.INFO/tag/Household+Refrigerator+bearing+Industrial/ : Household…
Refrigerator…