Template:Infobox Software

La OSGi Alliance (conosciuta come Open Service Gateway initiative), è un'organizzazione fondata nel 1999 da Ericsson, IBM, Oracle e altri. In seguito altri membri sono entrati a farne parte. Il nucleo delle specifiche è un framework che definisce la gestione del modello del ciclo di vita del software, i moduli (chiamati bundles), un service registry e un ambiente di esecuzione. Partendo da questo Framework un certo numero di OSGi Layers (strati), API e servizi sono stati definiti.

Scopo del Framework OSGi

L'aumento della complessità in un prodotto software, sia esso embedded, client o server, richiede codice modulare ma anche sistemi che siano estensibili dinamicamente. Il framework OSGi si propone di implementare un modello a componenti completo e dinamico ovvero quello che manca all'ambiente Java. In realtà il linguaggio Java prevede alcuni meccanismi che consentono di realizzare un modello a componenti, ma si tratta comunque di soluzioni di basso livello con conseguente rischio di introdurre errori nel codice oltre a diventare una soluzione ad-hoc. OSGi risolve molti dei problemi legati allo scarso supporto di Java nella modularità e nel dinamismo attraverso alcuni concetti fondamentali:

  • Definizione del concetto di modulo (bundle)
  • Gestione automatica delle dipendenze
  • Gestione del ciclo di vita del codice (configurazione e distribuzione dinamica)

In sintesi è possibile vedere la tecnologia OSGi come:

  • Un sistema modulare per la piattaforma Java
  • Un sistema dinamico, che consente l'installazione, l'avvio, lo stop e la rimozione dei moduli a runtime, senza quindi necessitare di riavvii.
  • Orientato ai servizi, i quali possono essere dinamicamente registrati ed utilizzati nella macchina virtuale Java.

Layers

Il Framework OSGi è distribuito su quattro layer:

  • L0: Execution Environment (ambiente di esecuzione): è la specificazione dell'ambiente Java (J2SE, CDC, CLDC, MIDP, ecc.).
  • L1: Modules: realizza il concetto di moduli (bundles) e controlla il collegamento tra di loro.
  • L2: Life Cicle Management (Gestione del ciclo di vita): gestisce il ciclo di vita di un bundle senza richiedere il riavvio della VM.
  • L3: Service Registry: fornisce un modello di cooperazione per i bundles.

Versioni delle specifiche

  • OSGi Release 1 (R1): Maggio 2000
  • OSGi Release 2 (R2): Ottobre 2001
  • OSGi Release 3 (R3): Marzo 2003
  • OSGi Release 4 (R4): Ottobre 2005 / Settembre 2006
    • Core Specification (R4 Core): Ottobre 2005
    • Mobile Specification (R4 Mobile / JSR-232): Settembre 2006
  • OSGi Release 4.1 (R4.1): Maggio 2007 (AKA JSR-291)
  • OSGi Release 4.2 (R4.2): Settembre 2009 (AKA JSR-119)

Expert Groups

Esistono diversi gruppi responsabili della definizione delle specifiche:

  • Core Platform Expert Group (CPEG)
  • Mobile Expert Group (MEG)
  • Vehicle Expert Group (VEG)
  • Enterprise Expert Group (EEG)

Implementazioni

Esistono diverse soluzioni software, alcune commerciali, altre OpenSource che implementano le specifiche OSGi, tra le più conosciute:

  • Equinox (utilizzato da Eclipse)
  • Knopflerfish
  • Apache Felix
  • Spagic 3 (open source SOA Universal Middleware)

Tutte e tre implementano la versione 4 delle specifiche e sono Open Source. Tra le implementazioni commerciali spicca quella della ProSyst.

Collegamenti ufficiali

Altri collegamenti

  Portale Informatica: accedi alle voci di Wikipedia che trattano di Informatica