Hello fellow developers 👋! In this post, we will dive into the basic entities of an OSGi bundle - Components and Services (remember OSGi Components are different from AEM authoring component).
In modern times, complex software can be thought of as a collection of various modules or components. These modules are normally independent of each other and modification in one module does not affect the other modules.
These modules interact with each other via an API. The API is defined as a set of classes and methods which can be used from other components.
OSGi in short
OSGi stands for Open Service Gateway initiative. It is a Java framework for developing and deploying modular software programs and libraries.
OSGi has two parts -
1. The first part is a specification for modular components called bundles, which are commonly referred to as plug-ins. The specification defines an infrastructure for a bundle’s life cycle and determines how bundles will interact.
2. The second part of OSGi is a Java Virtual Machine (JVM)-level service registry that bundles can use to publish, discover and bind to services in a service-oriented architecture (SOA). The components and services can be dynamically installed, activated, de-activated, updated and uninstalled.