OSGi is een open standaard voor een Java-gebaseerd serviceplatform, gedefinieerd door de OSGi Alliance.

Het centrale deel van deze specificatie is een framework dat een model voor een applicatielevenscyclus en een service-register definieert. Op basis van dit framework werd een groot aantal OSGi Services gedefinieerd. Het OSGi-framework biedt een elegant, compleet en dynamisch componentenmodel - iets wat ontbreekt in losstaande Java-omgevingen. Applicaties of componenten (die aangeleverd worden in de vorm van bundles) kunnen op afstand dynamisch worden geïnstalleerd, gestart, gestopt, opgewaardeerd en gede-installeerd zonder dat opnieuw opstarten nodig is. Het beheer van Javapakketten en -klassen wordt uitvoerig behandeld in het framework. Het beheer van de levenscyclus gebeurt via API's die toelaten om management policies te downloaden. Het service registry laat toe dat bundles nieuwe diensten kunnen ontdekken, of het verdwijnen van bestaande diensten, en op een geschikte manier daarop kunnen reageren.

Oorspronkelijk was het OSGi-framework bedoeld voor service gateways, maar uiteindelijk kwamen er toepassingen in een breder domein. Oorspronkelijk stond OSGi voor Open Services Gateway Initiative, maar tegenwoordig is het alleen een naam. De specificaties vinden nu hun toepassing in een verscheidenheid aan applicaties, van mobiele telefoons tot de open-source Eclipse IDE. Andere toepassingen vindt men in auto's, industriële automatisering, domotica, PDA's, grid computing en fleet management.

Er zijn zowel commerciële als opensource OSGi-implementaties beschikbaar. Commerciële implementaties zijn vaak gecertificeerd, en soms gericht op een specifieke toepassing, vaak met extra softwarecomponenten. Populaire opensource-implementaties zijn Knopflerfish, Eclipse Equinox en Apache Felix, dat voortbouwt op het aanvankelijk academisch project Oscar van ObjectWeb.

Externe link bewerken