Home » Events » Converting (Large) Applications to

News Stories

Job Search


Back to Events »

Converting (Large) Applications to

Time19:00:22 Phone
DateWednesday, July 29, 2009 Web
VenueIONA Bdg, 158 Shelbourne Rd. D4

Converting (Large) Applications to OSGi



The advantages of a modularization system have been known since David Parnas' paper about modularity in 1972. Modularity was an oversight in object-orientation, where the focus was very much on information hiding, causing object-oriented programs to be highly coupled. In the last decade, many frameworks have been developed to address this coupling problem. Patterns such as Factories, Dependency Injection, and Inversion of Control are targeted at minimizing the coupling between applications and service providers, but most of these solutions require strict discipline of programming teams and do not enforce even the most basic rules of modularity at runtime.



The OSGi Alliance has addressed this issue, by developing a framework that uses the unique Java platform mechanisms of interfaces and class loaders to provide a comprehensive dynamic module system for the Java platform. OSGi modules, called bundles, provide the mechanism to restrict the visibility of packages. Instead of leaving the class path more or less to chance, the sharing of classes is strictly controlled, reducing many common problems developers on the Java platform experience daily.



Sharing of classes between bundles is dynamic, meaning that bundles can be installed and uninstalled without restarting of the Java virtual machine. These dynamics require an alternative programming model, called service-oriented programming, because some services can disappear while an application runs. The OSGi framework provides the infrastructure to do service-oriented programming, including handling the dynamics.



As always, the easiest way to use OSGi is to use it in a greenfield application, but anything is easy in a greenfield application in comparison to real-world applications, which usually have large amounts of legacy code to consider. Although OSGi runs most Java technology-based applications out of the box, modularizing existing code is not trivial. As John Wells of BEA once said, "We thought we worked modularly, until we started using OSGi."



Converting a large code base to OSGi is therefore a nontrivial undertaking. Many applications have been forced to develop their own plug-in system, and these systems, particularly, tend to conflict with strong modularity. A key pitfall in moving systems to OSGi is overmodularizing an existing application. A better approach is usually to turn the existing system into a single module and then gradually move parts of it to other bundles.



Since its inception in 1998, the OSGi framework has become the de facto component service model for the Java platform. It is now a key technology for applications in a wide range of industries: enterprise, vehicle, mobile phone, home automation, and industrial automation. It provides many benefits over the standard Java platform, the giant on whose shoulders it stands, in the development as well as the deployment phase of a system.



Join your peers - IT Architects / Software Engineers / Java Developers - at this 90 minute evening technical session to examine the problems you can expect when converting large systems to OSGi and how these problems can be circumvented.



To register...
Send an email to with your name, company and job title.




Peter Kriens 

OSGi Director of Technology and CEO of aQute

Peter Kriens has worked as consultant for a large number of international companies introducing OO techniques. In 94 he moved to Sweden to work for Ericsson, where he worked on a number of commercial and research projects. In 2001, he was hired part-time by the OSGi to act as its technical director, in which capacity he was the editor of the specifications. He currently also acts as the OSGi Evangelist.



BJ Hargrave

Senior Technical Staff Member at IBM Lotus


BJ Hargrave has over 20 years of experience as an IBM software architect and developer. His focus is small computer operating systems (kernels, file systems, development tools, application binary interface specifications) and Java technology. He holds multiple patents for JVM performance improvements and is the IBM expert and lead architect for OSGi technologies. BJ holds a Bachelor of Science in Computer Science from Rensselaer Polytechnic Institute and a Master of Science in Computer Science from the University of Miami. BJ has been a leader in the development of the OSGi technology since its inception and was named an OSGi Fellow in 2002 for his technical contributions and leadership in the OSGi Alliance. He is currently CTO of the OSGi Alliance and chair of the OSGi Core Platform Expert Group. BJ is also a committer on the Eclipse Equinox project.





People reading this article also read....


More O'Reilly Book Offers on


More Java News on







Get Instant Updates....

Join on Facebook and Twitter