OSGi reduces complexity by providing a modular architecture for today's large-scale distributed systems as well as small, embedded applications. Building systems from in-house and off-the-shelf modules significantly reduces complexity and thus development and maintenance expenses. The OSGi programming model realizes the promise of component-based systems.
To understand OSGi concepts we will try to follow the puzzle approach, the idea is to begin with the trivial part of this technology, and search for other parts related to the found ones.