OSGi

Da Wikipedia, l'enciclopedia libera.
OSGi Service Platform
Sviluppatore OSGi Alliance
Ultima versione 4.1 (maggio 2007)
Sistema operativo Multipiattaforma
Linguaggio Java
Genere
Licenza OSGi Specification License
Sito web www.osgi.org

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[modifica | modifica sorgente]

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 cioè 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.

I layer[modifica | modifica sorgente]

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 (bundle) 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 bundle.

Versioni delle specifiche[modifica | modifica sorgente]

  • 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[modifica | modifica sorgente]

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[modifica | modifica sorgente]

Esistono diverse soluzioni software, alcune commerciali, altre Open source 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 quattro implementano la versione 4 delle specifiche e sono Open source. Tra le implementazioni commerciali spicca quella della ProSyst.

Collegamenti ufficiali[modifica | modifica sorgente]

Altri collegamenti[modifica | modifica sorgente]

Altri progetti[modifica | modifica sorgente]

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