OSGi and Java Modularity

This talk was given by Peter Kriens at Jazoon 2009. The value of modularity is proven by nature and was quickly discovered for software as well. By reducing coupling between the components of an application, applications become more flexible and easier to maintain. Object Oriented (OO) programming took these lessons and applied them to classes by encapsulating their fields. However, it turns out that OO creates designs that are highly coupled on class level; the tangled web of objects problem. This entanglement hinders reuse, complicates maintenance and makes larger applications unnecessary complex. OSGi has addressed this problem with a specification for strong modularity in Java. This specification is implemented by a number of open source frameworks like Apache Felix, Eclipse Equinox, and Knopflerfish, as well as a number of proprietary frameworks. It is today the foundation of Eclipse, Spring, and impressively all major application servers like Websphere, Weblogic, JBoss, SpringSource, and Jonas. OSGi solves many of the problems.