OSGi

Das Tor-Initiative-Fachwerk von Open Services ist ein Modul-System und Dienstplattform für die javanische Programmiersprache, die ein ganzes und dynamisches Teilmodell, etwas durchführt, was in eigenständigen Java/VM Umgebungen nicht besteht. Anwendungen oder Bestandteile (in der Form von Bündeln für die Aufstellung kommend), können entfernt installiert, angefangen, angehalten, aktualisiert und deinstalliert werden, ohne einen Neustart zu verlangen; das Management von javanischen Paketen/Klassen wird im großen Detail angegeben. Gebrauchsdauer-Zyklus-Management (Anfang, halten Sie an, installieren Sie, usw.) wird über APIs getan, die das entfernte Herunterladen von Verwaltungspolicen berücksichtigen. Die Dienstregistrierung erlaubt Bündeln, die Hinzufügung neuer Dienstleistungen oder die Eliminierung von Dienstleistungen zu entdecken, und sich entsprechend anzupassen.

Die OSGi Spezifizierungen haben sich außer dem ursprünglichen Fokus von Diensttoren bewegt, und werden jetzt in Anwendungen im Intervall von Mobiltelefonen zur offenen Quelleklipse IDE verwendet. Andere Anwendungsgebiete schließen Automobile, Industrieautomation ein, Automation, PDAs, Bratrost-Computerwissenschaft, Unterhaltung, Flottemanagement und Anwendungsserver bauend.

Das Fördern der Organisation

Die OSGi Verbindung (früher bekannt als die Tor-Initiative von Open Services, jetzt ein veralteter Name) ist eine offene Standardorganisation gegründet im März 1999, der ursprünglich angegeben hat und fortsetzt, den OSGi Standard aufrechtzuerhalten.

Spezifizierungsprozess

Die OSGi Spezifizierung wird von den Mitgliedern in einem offenen Prozess entwickelt und zum Publikum kostenlos laut der OSGi Spezifizierungslizenz bereitgestellt. Die OSGi Verbindung hat ein Gehorsam-Programm, das für Mitglieder nur offen ist. Bezüglich des Novembers 2010 gibt es sieben hat OSGi Fachwerk-Durchführungen bescheinigt. Eine getrennte Seite verzeichnet sowohl bescheinigte als auch nichtbescheinigte OSGi Spezifizierungsdurchführungen, die OSGi Fachwerk und andere OSGi Spezifizierungen einschließen.

Architektur

Jedes Fachwerk, das den OSGi Standard durchführt, stellt eine Umgebung für den modularization von Anwendungen in kleinere Bündel zur Verfügung. Jedes Bündel ist ein dicht verbundener, dynamisch loadable Sammlung von Klassen, Gläsern und Konfigurationsdateien, die ausführlich ihre Außenabhängigkeiten (wenn irgendwelcher) erklären.

Das Fachwerk wird in die folgenden Gebiete begrifflich geteilt:

Bundles:Bundles sind normale Glas-Bestandteile mit Extramanifest-Kopfbällen.

Services:The Dienstleistungsschicht steht in Verbindung Bündel auf eine dynamische Weise durch das Angebot eines Modells "veröffentlichen finden binden" für einfache alte javanische Schnittstellen (POJI) oder Einfache Alte javanische Gegenstände POJO.

Dienstleistungen Registry:The API für Verwaltungsdienstleistungen (ServiceRegistration, ServiceTracker und ServiceReference).

Lebens-Cycle:The API für das Lebenszyklus-Management dafür (installieren, fangen Sie an, halten Sie an, aktualisieren Sie und deinstallieren Sie) Bündel.

Modules:The Schicht, die encapsulation und Behauptung von Abhängigkeiten definiert (wie ein Bündel importieren und Code exportieren kann).

Security:The Schicht, die die Sicherheitsaspekte durch das Begrenzen der Bündel-Funktionalität auf vorherbestimmte Fähigkeiten behandelt.

Ausführungsenvironment:Defines, welche Methoden und Klassen in einer spezifischen Plattform verfügbar sind. Es gibt keine feste Liste von Ausführungsumgebungen, da es unterworfen ist, um sich zu ändern, weil der javanische Gemeinschaftsprozess neue Versionen und Ausgaben Javas schafft. Jedoch wird der folgende Satz zurzeit durch die meisten OSGi Durchführungen unterstützt:

:* CDC-1.0/Foundation-1.0

:* CDC-1.1/Foundation-1.1

:* OSGi/Minimum-1.0

:* OSGi/Minimum-1.1

:* JRE-1.1

:* Von J2SE-1.2 bis zu J2SE-1.6

Bündel

Ein Bündel ist eine Gruppe von javanischen Klassen und zusätzlichen Mitteln, die mit einer ausführlichen Manifest-Datei auf ganzem seinem Inhalt ausgestattet sind, sowie zusätzliche Dienstleistungen mussten die eingeschlossene Gruppe von javanischen Klassen hoch entwickeltere Handlungsweisen, in Höhe vom Meinen der kompletten Anhäufung ein Bestandteil geben.

Unten ist ein Beispiel einer typischen Datei mit OSGi Kopfbällen:

Name: des Bündels hallo Welt

Bündel-SymbolicName: org.wikipedia.helloworld

Bündel-Beschreibung: Hallo Welt stopfen

Bündel-ManifestVersion: 2

Bündel-Version: 1.0.0

Bündel-Aktivator: org.wikipedia. Aktivator

Exportpaket: org.wikipedia.helloworld; Version = "1.0.0"

Importpaket: org.osgi.framework; Version = "1.3.0"

Die Bedeutung des Inhalts im Beispiel ist wie folgt:

  • Name: des Bündels Definiert einen menschlich-lesbaren Namen für dieses Bündel, Einfach teilt ein Kurzwort dem Bündel zu.
  • Bündel-SymbolicName: Der einzige erforderliche Kopfball, dieser Zugang gibt einen einzigartigen Bezeichner für ein Bündel an, das auf der Rückdomainname-Tagung gestützt ist (verwendet auch durch die javanischen Pakete).
  • Bündel-Beschreibung: Eine Beschreibung der Funktionalität des Bündels.
  • Bündel-ManifestVersion: Dieser kleine bekannte Kopfball zeigt die OSGi Spezifizierung an, um zu verwenden, um dieses Bündel zu lesen.
  • Bündel-Version: Benennt eine Versionsnummer zum Bündel.
  • Bündel-Aktivator: Zeigt den anzurufenden Klassennamen an, sobald ein Bündel aktiviert wird.
  • Exportpaket: Schnellzüge, welche javanische in einem Bündel enthaltene Pakete zur Außenwelt bereitgestellt werden.
  • Importpaket: Zeigt das an, welche javanische Pakete von außen Welt erforderlich sein werden, um die in einem Bündel erforderlichen Abhängigkeiten zu erfüllen.

Lebenszyklus

Eine Lebenszyklus-Schicht fügt Bündel hinzu, die dynamisch installiert, angefangen, angehalten, aktualisiert und deinstalliert werden können. Bündel verlassen sich auf die Modul-Schicht für das Klassenladen, aber fügen eine API hinzu, um die Module in der Durchlaufzeit zu führen. Die Lebenszyklus-Schicht führt Triebkräfte ein, die normalerweise nicht ein Teil einer Anwendung sind. Umfassende Abhängigkeitsmechanismen werden verwendet, um die richtige Operation der Umgebung zu sichern. Lebenszyklus-Operationen werden mit der Sicherheitsarchitektur völlig geschützt.

Unten ist ein Beispiel einer typischen javanischen Klasse, die die Schnittstelle durchführt:

Paket org.wikipedia;

Import org.osgi.framework. BundleActivator;

Import org.osgi.framework. BundleContext;

öffentlicher Klassenaktivator führt BundleActivator {\durch

privater Zusammenhang von BundleContext;

öffentlicher leerer Anfang (Zusammenhang von BundleContext) wirft Ausnahme {\

System.out.println ("anfangend: Hallo Welt");

this.context = Zusammenhang;

}\

öffentlicher leerer Halt (Zusammenhang von BundleContext) wirft Ausnahme {\

System.out.println ("anhaltend: Auf Wiedersehen grausame Welt");

this.context = ungültig;

}\

}\

</Quelle>

Dienstleistungen

Standarddienstleistungen

Die OSGi Verbindung hat viele Dienstleistungen angegeben. Dienstleistungen werden durch eine javanische Schnittstelle angegeben. Bündel können diese Schnittstelle durchführen und den Dienst mit der Dienstregistrierung einschreiben. Kunden des Dienstes können es in der Registrierung finden, oder darauf reagieren, wenn es erscheint oder verschwindet.

Der Tisch zeigt unten eine Beschreibung von OSGi System Services:

Der Tisch zeigt unten eine Beschreibung von OSGi Protocol Services:

Der Tisch zeigt unten eine Beschreibung von OSGi Miscellaneous Services:

Organisation

Die OSGi Verbindung wurde von Ericsson, IBM, Motorola, Sonne-Mikrosystemen und anderen im März 1999 gegründet (bevor, sich als eine gemeinnützige Vereinigung vereinigend, es die Verbundene Verbindung genannt wurde).

Unter seinen Mitgliedern sind mehr als 35 Gesellschaften von ziemlich verschiedenen Geschäftsgebieten, zum Beispiel IONA Technologies, Ericsson, Deutsche Telekom, IBM, Makewave (früher Gatespace Telematik), Motorola, Orga Systeme, Nokia, NTT, Orakel, ProSyst, Roter Hut, Samsung Electronics, Siemens, VMware (SpringSource), und Telefonica.

Die Verbindung hat einen Verwaltungsrat, der die gesamte Regierungsgewalt der Organisation zur Verfügung stellt. OSGi Offiziere haben verschiedene Rollen und Verantwortungen im Unterstützen der Verbindung. Technische Arbeit wird innerhalb von Expert Groups (EGs) geführt, der vom Verwaltungsrat gechartert ist, und nicht technische Arbeit wird in verschiedenen Arbeitsgruppen und Komitees geführt. Die technische innerhalb von Expert Groups geführte Arbeit schließt sich entwickelnde Spezifizierungen, Bezugsdurchführungen und Gehorsam-Tests ein. Diese Expert Groups haben vier Hauptausgaben der OSGi Spezifizierungen erzeugt.

Es gibt gewidmete Expert Groups für das Unternehmen, Beweglich, Fahrzeug und die Kernplattform-Gebiete.

Enterprise Expert Group (EEG) ist der neueste EG und redet Unternehmen / Anwendungen der Server-Seite an.

Im November 2007 hat Residential Expert Group (REG) angefangen, an Spezifizierungen zu arbeiten, um residential/home-gateways entfernt zu führen.

Im Oktober 2003 haben Nokia, Motorola, IBM, ProSyst und andere OSGi Mitglieder Mobile Expert Group (MEG) gebildet, die eine MIDP-basierte Dienstplattform für die folgende Generation von klugen Mobiltelefonen angeben wird, einige der Bedürfnisse richtend, die CLDC - anders nicht führen kann als CDC. MEG ist ein Teil von OSGi als mit R4 geworden.

Gemeinschaft

2003 hat Eklipse OSGi als die zu Grunde liegende Durchlaufzeit für die Einfügefunktionsarchitektur ausgewählt, die für die Eklipse Reiche Kundenplattform und die IDE Plattform verwendet ist. Eklipse selbst schließt hoch entwickelte Bearbeitung ein, um OSGi-Bündel zu entwickeln, und es gibt mehrere andere Eklipse-Einfügefunktionen hat darauf gezielt, OSGi Verhalten zu unterstützen (z.B, sowohl ProSyst als auch Knopflerfish haben Eklipse-Einfügefunktionen verfügbar spezifisch für OSGi Entwickler).

Es gibt eine vibrierende Gemeinschaft der kostenlosen Software, die um die OSGi Spezifizierung kreist. Einige weit verwendete offene Quelldurchführungen sind Äquinoktium OSGi, Apache Felix und Knopflerfish OSGi. Bezüglich der Bearbeitung, bauen Sie Systembetreuung und Prüfung, die OPS4J Pax Projekte stellen viele nützliche Bestandteile und Gutachten zur Verfügung.

Spezifizierungsversionen

  • OSGi Ausgabe 1 (R1): Mai 2000
  • OSGi Ausgabe 2 (R2): Oktober 2001
  • OSGi Ausgabe 3 (R3): März 2003
  • OSGi Ausgabe 4 (R4): Oktober 2005 / September 2006
  • Kernspezifizierung (R4 Kern): Oktober 2005
  • Bewegliche Spezifizierung (R4 Beweglich / JSR-232): September 2006
  • OSGi Ausgabe 4.1 (R4.1): Mai 2007 (AUCH BEKANNT ALS JSR-291)
  • OSGi Ausgabe 4.2 (R4.2): September 2009
  • Unternehmensspezifizierung (R4.2): März 2010
  • OSGi Ausgabe 4.3 (R4.3): April 2011

Neu in der OSGi Ausgabe 4

Die neuen Eigenschaften von OSGi R4 sind kurz gesagt wie folgt:

  • Neue modularization Fähigkeitsversorgung hat encapsulation von vernetzten Dienstleistungen erhöht, die einzelne Virtual Machine (VM) teilen können.
  • Klasse von Modularized, die sich teilt und sich von Durchführungsdetails verbirgt.
  • Methoden, um vielfache Versionen derselben Klassen so alte und neue Anwendungen zu behandeln, können innerhalb desselben VM durchführen.
  • Die Lokalisierung von OSGi stopft Manifest-Ermöglichen-Dienstaufstellung überall.
  • Erhöhungen in der Sicherheit und den Policen: Die neue Bedingte Erlaubnis Admin Dienst stellt eine elegante und einfache Weise zur Verfügung, vernetzte Dienstleistungen sicher zu führen. Es unterstützt auch dynamische Policen, die von äußerlichen (kundenspezifischen) Bedingungen abhängen können. Verbunden mit der R4-Unterstützung für Digitalunterschriften stellt das eine Hauptsicherheitslösung großer Aufstellungen von Produkten mit der OSGi Dienstplattform zur Verfügung.
  • Eine Spezifizierung von Declarative Services, die Speicherfußabdruck-Probleme richtet, die kleine eingebettete Geräte davon abhalten können, einen Dienst zu verwenden, hat Architektur orientiert, um vielfache Anwendungen zu unterstützen. Zusätzlich vereinfacht es bedeutsam das dienstorientierte Programmiermodell durch das Aussageberühren der Dynamik von Dienstleistungen.
  • Vereinbarkeit mit der Ausgabe 3, keine Änderungen für vorhandene OSGi-Bündel, Anwendungen oder Dienstleistungen verlangend.

Neu in der Ausgabe 4.1

OSGi R4.1 war eine geringe Revision, die beabsichtigt ist, um bestimmte Aspekte der Bündel-Initialisierung und des Ladens zu klären, um Drittgebrauch zu verbessern. Es hat keine neuen Dienstleistungen oder Haupteigenschaften hinzugefügt.

Neu in der Ausgabe 4.2

OSGi R4.2 war eine bedeutende Ausgabe, die mehrere neue Dienstleistungen und Fähigkeiten hinzugefügt hat, einschließlich:

  • Fachwerk-Stapellauf: Standardisiert bedeutet, OSGi von verschiedenen Versorgern zu starten
  • Remote Services: Erlaubt das Exportieren von Dienstleistungen zu entferntem VMs (früher bekannt als Verteilen OSGi)
  • Entwurfsdienst: Abhängigkeitseinspritzung und Inversion der Kontrolle (ähnlich dem Frühling), der Außenkonfiguration von Bündel-Abhängigkeiten erlaubt
  • Bündel-Spurenleser: Verfolgen Sie und antworten Sie auf Änderungen in der Bündel-Anwesenheit und setzen Sie fest
  • Diensthaken: Erlauben Sie Selbstbeobachtung und Verhaltensmodifizierung von Dienstanrufen, Sicherheit oder dynamicism einzuspritzen
  • Bedingte Erlaubnis: Unterstützen Sie negative Erlaubnis, spezifische Handlungen verbietend, anstatt ihnen gerade zu erlauben

Mehr Information kann auch in jedem Bündel-Kopfball, wie Lizenzinformation, Typen MIME und Ikonen angegeben werden. Zusätzlich erlauben Änderungen zu Declarative Services die leichtere Einstellung der Erlaubnis. Schließlich können OSGi Bündel jetzt ihre Rückwerte lesen lassen.

OSGi R4.2 hat auch eine neue Spezifizierungsausgabe für das Unternehmen einschließlich der Unterstützung eingeführt für:

  • Webanwendungen: Ein standardisiertes Format, um OSGi Webanwendungen zu bauen, hat das Verwenden des KRIEGS-Dateiformats (Sonne) paketiert
  • JPA Dienst: Stellt einen zuverlässigen Standardmechanismus zur Verfügung, die javanische Fortsetzungs-API in OSGi zu verwenden
  • JNDI Dienst: Erlaubt Integration der OSGi Dienstregistrierung und des javanischen Namengebens und der Verzeichnisschnittstelle
  • JDBC Dienst: Stellt einen OSGi des Lebenszyklus bewussten Mechanismus zur Verfügung, Verbindungen zu einer Außendatenbank zu erhalten

Neu in der Ausgabe 4.3

  • Generics: Das Fachwerk verwendet jetzt JDK5 generics in mehreren Plätzen. Jedoch kann Java 1.4 noch mit "" ins Visier genommen werden schaltet auf javac um.
  • Fähigkeiten: Eine Reihe von Attributen in einem namespace in einer meta Information eines Moduls, wie osgi.wiring.package.
  • Voraussetzungen: Ein Filterausdruck über den Attribut-Satz einer Fähigkeit, wie osgi.wiring.package.
  • passen Sie sich an: Ersetzt Fachwerk-Dienstleistungen; passt Bündel an einen anderen Typ (wenn unterstützt) an. Ersetzt Dienstleistungen von PackageAdmin und StartLevel durch APIs, an den ein Bündel angepasst werden kann.
  • WeavingHook: Die Dienstleistungen von WeavingHook erlauben Ladezeit bytecode das Weben.
  • ResolverHooks und BundleHooks: Ersetzt das verschachtelte Fachwerk und den zerlegbaren Bündel-Vorschlag mit auf niedriger Stufe Fähigkeiten, das Voraussetzungsfähigkeitszusammenbringen zu beeinflussen.
  • Dienst Haken von EventListener: Ersetzt Dienstereignis-Haken durch die feinere-grained Ereignis-Lieferkontrolle.

Verwandter RFCs und javanische Spezifizierungen

  • RFC-2608 (Dienstpositionsprotokoll)
  • Sonne JINI (Java intelligente Netzinfrastruktur)
  • Sonne JCP JSR-8 (offene Dienstleistungstor-Spezifizierung)
  • Sonne JCP JSR-232 (bewegliches betriebliches Management)
  • Sonne JCP JSR-246 (Gerät-Verwaltungs-API)
  • Sonne JCP JSR-249 (Bewegliche Dienstarchitektur für CDC)
  • Sonne JCP JSR-277 (javanisches Modul-System)
  • Sonne JCP JSR-291 (Dynamische Teilunterstützung für Java SE - AUCH BEKANNT ALS OSGi 4.1)
  • Sonne JCP JSR-294 (Verbesserte Modularitätsunterstützung auf der javanischen Programmiersprache)

Zusammenhängende Standards

  • MHP / OCAP
  • Universaler Stecker und Spiel (UPnP)
  • DPWS
  • ITU-T G.hn
  • LonWorks
  • CORBA
  • CEBus
  • EHS (KNX) / CECED KETTE
  • Javanische Verwaltungserweiterungen

Projekte mit OSGi

  • Apachen-Widder - Entwurfsbehälterdurchführungen und Erweiterungen von Anwendungseingestellten Spezifizierungen von OSGi Enterprise Expert Group definiert.
  • Apachen-Karaf - ein OSGi hat Durchlaufzeit gestützt, die einen Leichtgewichtsbehälter zur Verfügung stellt, auf den verschiedene Bestandteile und Anwendungen aufmarschiert werden können.
  • Apache Felix - eine Durchführung des OSGi R4 Dienstplattform und andere OSGi-zusammenhängende Technologien
  • Apachen-Schleuder - mit Sitz in OSGi Anwendungsschicht für JCR zufriedene Behältnisse
  • Geschäftsintelligenz und das Melden von Werkzeugen (BIRT) Projekt - Offene Quelle, die Motor meldet
  • DataNucleus - offene Quelldatendienstleistungen und Fortsetzungsplattform haben im Betrieb Architekturen orientiert
  • EasyBeans - öffnen Quelle EJB 3 Behälter
  • Eklipse - öffnet Quelle IDE und reiche Kundenplattform
  • Paremus Dienststoff - ein autonomic OSGi hat private Wolkendurchlaufzeit gestützt, die gestützte Anwendungen von BluePrint, Declarative Services & Scala unterstützt.
  • Eklipse Jungfrau - öffnet Quelle mikrokernbasierter Server, der OSGi-Bündel gebaut ist und OSGi Anwendungen unterstützend
  • Ereignis-Scharfsinnigkeit - SAP Komplex-Ereignis von BusinessObjects, das sdn in einer Prozession geht
  • GlassFish (v3) - Anwendungsserver für Java EE
  • Sicherung ESB - ein productized und unterstützte Ausgabe von ServiceMix 4.
  • GX Gemeinschaftsausgabe von WebManager - Ein Unternehmenswebinhalt-Verwaltungssystem, das auf OSGi, Frühling und JCR gestützt ist
  • JBoss - der JBoss Anwendungsserver des roten Huts
  • JOnAS 5 - öffnen Quelle Java EE 5 Anwendungsserver
  • JOSSO 2 - die offene Quelle von Atricore standardbasierte Identitäts- und Zugriffsverwaltungsplattform
  • Netbeans - öffnen Quelle IDE und reiche Kundenplattform
  • Nuxeo - öffnen Quelle ECM Dienstplattform
  • OpenEJB - öffnen Quelle OSGi-ermöglicht EJB 3.0 Behälter, der beide in der eigenständigen oder eingebetteten Weise geführt werden kann
  • SpringSource dm Server - öffnen Quelle mikrokernbasierter Server, der OSGi-Bündel gebaut ist und OSGi Anwendungen unterstützend
  • Weblogic - Orakel Weblogic Anwendungsserver
  • WebSphere - IBM Websphere JEE Application Server
  • WSO2 Kohlenstoff - Grundplattform für den WSO2's Unternehmensrang Offene Quelle middleware Stapel.
  • Atlassian Zusammenfluss und JIRA - die Einfügefunktionsarchitektur für dieses Unternehmen wiki und Problem-Spurenleser verwenden OSGi

Verweisungen zitiert

Siehe auch

  • Apache Felix
  • Portier OSGi
  • Äquinoktium
  • Knopflerfish
  • OSGi Spezifizierungsdurchführungen
  • OSGi-Bearbeitungsbearbeitungsseite auf OSGi
  • MB von ProSyst

Weiterführende Literatur

Links

Leitung und Informationsaustausch


Alte preußische Sprache / Oestrogen
Impressum & Datenschutz