OSGi provides a module system for Java, so in some ways this question should be “Why Modularity”.
Fundamentally modules are a good thing for many reasons:
- Modules are easier to understand and test
- Modules make it easier to fix bugs without introducing new ones
- Modules are easier to reuse in different combinations
- Individual modules can evolve over time without affecting the rest of the system
From a business perspective these characteristics translate to maintainable, adaptable, and so economically sustainable software systems.
Why OSGi for Modularity?
OSGi has a long history, starting in 1998 as a software standard for Java based residential gateways. This long history makes OSGi a mature, battle-hardened technology with many successful deployments. Furthermore, while historically Java centric the OSGi Requirement-Capability dependency model is language neutral and is increasingly being used to address general dependency management problems.
The primary focus of the enRoute project is to get you writing code, not reading articles, but there’s lots of information about Modularity and OSGi technology available if you want to learn more then What is OSGi? and Why is Modularity so Important? are good places to start.