OSGi (Open Services Gateway Initiative) technology provides a service-oriented, component-based environment for developers and offers standardized ways to manage the software lifecycle. These capabilities greatly increase the value of a wide range of computers and devices that use the Java™ platform.
The main objective of OSGi is the creation of an open-source standard to allow to connect services offered in WAN (Wide Area Network) to LAN (Local Area Network) or LON (Local Operating Network). This will allow the connection between the following generation of intelligent devices that should be in an office or in a house through the network. Using this, Internet Service Providers (ISP), network operators and devices manufacturers can offer a wide range of services to final users using the same gateway.
The first specification was made in May,2000 (OSGi Release 1), whereas in the last version (2005-2006), there exists two specifications: the Core Specification (R4 Core) and the Mobile Specification (R4 Mobile)
The core part of the specifications is a framework that defines an application life cycle model and a service registry. Based on this framework, a large number of OSGi Services (named bundles) have been defined: Log, Configuration management, Preferences, Http Service (runs servlets), XML parsing, Device Access, Package Admin, Permission Admin, Start Level, User Admin, IO Connector, Wire Admin, Jini, UPnP Exporter, Application Tracking, Signed Bundles, Declarative Services, Power Management, Device Management, Security Policies, Diagnostic/Monitoring and Framework Layering.
The OSGi Framework is divided in four stages:
- L0: Execution Environment: the configuration Java we have. We can use J2SE, MIDP or other possibilities.
- L1: Modules: it defines the politics to load the classes. It may be the classpath in Java. It is integrated with the security architecture.
- L2: Life cycle: it adds the bundles that can be dynamically installed, started, stopped, updated or uninstalled.
- L3: Service Registry: it gives a model of cooperation between services that have a dynamic behaviour. This stage gives a accurate model to share objects between services. There is a strong security fir the exchange of information between bundles.
The main profits of OSGi are related below:
- Platform independence: the main goal of OSGi development.
- Application independence.
- Support of multi-services.
- Support of collaboration services.
- Supoort of multiple connection technologies: it is possible to use xDSL, modem, RDSI, Bluetooth, USB, etc.