OSGi
Open Services Gateway Initiative is an architecture for
modular application development and it’s also knowns as Dynamic Module System
for java.
Modularity
Modularity is the way of developing or implementing
software as number of unique modules rather than entire software as single
unit.
Modules are communicating each other through
Application Programming Gateway interface and finally it will form unique system.
OSGi responsibility is to make communication among
these modules and manage the lifecycle of modules.
Module
Module is an independent small piece of software and
it will fulfill defined business requirements and it can be reuse. Module can
work independently or it will associate with other module to prepare complex system.
Module consist java files and required configuration files.
Component
Component is same like module. We can call module and
component interchangeably. When compare with scope of component is limited and it’s
less than module. A module can be collection of components.
Bundle
A bundle is collection of one or more components.
According to the OSGi a bundle is smallest unit of modularization. We can say a
bundle is packaged JAR file which consist java classes and required
configuration files.
Plugin
Plugin and bundle are similar and in eclipse
terminology we call it as plugin.
OSGi
Container
OSGi container provides the run time environment to
bundles its means it manage the lifecycle of bundles. It will responsible to
activate and deactivate bundles and make communication among bundles.
MANIFEST
MANIFEST is configuration file for bundles and OSGi
container will read bundle information form this file. It’s same like
Deployment descriptor in web applications. It will provides the bundle general
information and its dependency with other bundles or components.
OSGi
Runtime
OSGi Runtime allows us to register services implementation
and consume the existing services.
Service
Registry
OSGi Runtime achieved through Service Registry. It
maintain the information of services implementation and consume the existing
services which are deployed in OSGi container.
OSGi services
OSGi
Declarative Service
OSGI Declarative Services is a framework that provide
the way to define and consume service by configuring details in the xml file
without any dependency in source code to OSGi framework.
Service
Component Runtime (SCR)
Service Component Runtime (SCR) is implementation of
OSGi Declarative Service from Apache Felix.
OSGi
Service Tracker
OSGi Service Tracker responsible to track or finding
the services which are registered through service registry in the OSGi runtime.
Bundle
Activator
Bundle activator is java class that implements the
lifecycle of bundle.
Blueprint
Blueprint is framework form apache which provides the
dependency injection nature for OSGi. Its design to deal with dynamic nature of
OSGi. It’s similar to Declarative Services.
BnD
Tools
BnD provide set of tools to develop OSGi bundles. It’s
very easy way to develop OSGi bundles. It will manage bundle dependency and
other configurations itself by tool rather developer.
enRoute
The OSGi enRoute project provides a programming model
of OSGi applications. The OSGi specifications provide a powerful and solid
platform for component oriented programming but by their nature lack ease of
use, especially for newcomers to get started.
Author