Open Services Gateway Initiative Service Plattform

Die Open Services Gateway Initiative Service Plattform legt einen Standard fest für ein allgemein verwendbares, sicheres Java Framework, das das Deployment von Bundles erlaubt.

Ein Bundle ist ein Container für ein oder mehrere Services. Sobald das Bundle installiert ist, wird eine ausgezeichnete Klasse im Bundle, der BundleActivator aktiv. Der BundleActivator initialisiert die im Bundle enthaltenen Services und registriert sie im BundleContext. Damit werden die Services für andere Services sichtbar. Wird ein Bundle gestoppt, entfernt der BundleActivator die Services wieder aus dem zentralen Verzeichnis:

public class BundleActivatorImpl implements BundleActivator
{
  private ServiceRegistration registration;
  //
  public BundleActivatorImpl()
  {
    super();
  }
  //
  public void start(BundleContext context)
  {
    ServiceImpl serviceimpl = new ServiceImpl(...);
    registration = context.registerService("... Service Interface Class Name ...", serviceimpl, null);
  }
  //
  public void stop(BundleContext context)
  {
    if (registration == null) return;
    //
    registration.unregister();
    registration = null;
  }
}


Im Rahmen des Frameworks werden Interfaces für eine Reihe von Services festgelegt. Dazu gehören neben anderen:

PackageAdmin - erlaubt es, Metainformationen über die installierten Bundles zu erhalten,
StartLevel - erlaubt es, die Aktivierungsreihenfolge der Bundles zu ermitteln und zu verändern,
PermissionAdmin - erlaubt es, die Berechtigungen der Bundles zu ermitteln und zu verändern,
URL Handlers Service - erlaubt, es URLStreamHandlers zu registrieren,
LogService - für Ausgaben ins Log,
LogReaderService - ermöglicht es, das Log zu lesen,
ConfigurationAdmin - speichert Konfigurationsdaten persistent,
UserAdmin - verwaltet Benutzer, Gruppen, Rollen und Rechte,
ConnectorService - erstellt Kommunikationsverbindungen,
HttpService - ermöglicht das Registrieren von Ressourcen und Servlets,
PreferencesService - dient dem Zugriff auf Benutzereinstellungen,
WireAdmin - ermöglicht die Konfiguration von Kommunikationsverbindungen (Wires) zwischen Services,
XMLParserActivator - erlaubt es, XML Parser einzubinden,
MetaTypeProvider - verwaltet Metadaten zu Datentypen.