Simply put, OSGi is a dynamic modular system for Java. It defines the means for installing, removing, updating, starting and stopping modules. These modules are called packages, but in their simplest form, they are actually Java jar files with a special manifest. Modules can be installed, removed, etc. Without stopping or restarting the Java virtual machine.
The OSGi framework manages the described life cycle and dependencies between packages in a secure manner. A package should indicate which Java packages it exports and which it imports. Import and export operations can be annotated with version information, so you can even have more than one version of the same package in the same Java virtual machine.
The OSGi Alliance is an organization that defines the OSGi infrastructure and many related services, for example. to manage configuration data, device access, etc.
This is a very simple overview. OSGi is much more. Please see https://www.osgi.org/developer/architecture/ (an introduction to OSGi architecture) and https://www.osgi.org/developer/where-to-start/ (many links and further readings recommended OSGi Alliance).
akr Jan 03 2018-11-11T00: 00Z
source share