Osgi overview

15
OSGi Get Start Francesco Pantano [email protected] 30 Agosto 2013 Francesco Pantano [email protected] OSGi Get Start 30 Agosto 2013 1 / 15

Transcript of Osgi overview

Page 1: Osgi overview

OSGi Get Start

Francesco [email protected]

30 Agosto 2013

Francesco Pantano [email protected] OSGi Get Start 30 Agosto 2013 1 / 15

Page 2: Osgi overview

Perche OSGI ?

1. Un sistema dinamico, che consente l’installazione, l’avvio, lo stop e larimozione dei moduli a runtime, senza quindi necessitare di riavvii;

2. Orientato ai servizi, i quali possono essere dinamicamente registratied utilizzati.

Un software modulare (ed estensibile dinamicamente) porta a moltivantaggi in ogni fase del suo sviluppo, dalla progettazione allarealizzazione fino alla sua manutenzione.

Francesco Pantano [email protected] OSGi Get Start 30 Agosto 2013 2 / 15

Page 3: Osgi overview

Il Framework OSGI: Architettura (1/3)

Ogni framework che implementa lo standard OSGi fornisce un ambienteper la modularizzazione di applicazioni in piccoli Bundles

Componenti di base

1. Bundle Context;

2. Configuration Service;

Bundle come componente

Ogni Bundle non e altro che un insieme di classi e file di configurazioneche dichiarano esplicitamente le loro dipendenze esterne (se presenti) evengono dinamicamente caricati all’interno del framework.

Francesco Pantano [email protected] OSGi Get Start 30 Agosto 2013 3 / 15

Page 4: Osgi overview

Il Framework OSGI: Architettura (2/3)

Vantaggi

1. Interoperabilita

2. Cooperazione tra icomponenti

3. Condivisione dei servizi

4. Incremento prestazioni

5. Basso consumo di risorse

Secondo un approccio microkernel a plug-in, fornisce le specifiche persviluppare applicazioni che implementano servizi, permettendo diregistrarne di nuovi, di aggiornare o rimuovere gli esistenti on the fly,senza compromettere cioe l’operativita della macchina, su cui lapiattaforma sta girando.

Francesco Pantano [email protected] OSGi Get Start 30 Agosto 2013 4 / 15

Page 5: Osgi overview

Il Framework OSGI: Architettura (3/3)

Vantaggi

1. Il Bundle A registra un servizio

2. La piattaforma lo rende disponibile

3. Il Bundle B sta in ascolto e attende cheil servizio sia disponibile

4. Il Bundle B invoca il servizio (get)

Tecnicamente, le specifiche della piattaforma OSGi introducono il concettodi servizio, inteso come semplice interfaccia, e di bundle (componente),inteso come archivio (JAR) contenente l’implementazione dei servizi e ledirettive di distribuzione ed installazione all’interno della piattaforma, oltreche le dipendenze da altri package e servizi. Il framework OSGi e di fattol’ambiente di esecuzione dei bundle.

Francesco Pantano [email protected] OSGi Get Start 30 Agosto 2013 5 / 15

Page 6: Osgi overview

Il Framework OSGI: Ciclo di vita di un Bundle (1/3)

Attivazione di un Bundle

1. Starting)) Active;

2. Sull’evento Starting, il nostrocontainer OSGi esegue il deploydel pacchetto all’interno delruntime Java EE e invoca ilmetodo start, in modo che ilbundle passi allo stato ACTIVE.

Francesco Pantano [email protected] OSGi Get Start 30 Agosto 2013 6 / 15

Page 7: Osgi overview

Il Framework OSGI: Ciclo di vita di un Bundle (2/3)

Rimozione di un Bundle

1. Quando si rimuove il bundle,esso viene automaticamentedisinstallato. Naturalmente,disinstallazione e un superset distop, per cui viene primastoppato.

Francesco Pantano [email protected] OSGi Get Start 30 Agosto 2013 7 / 15

Page 8: Osgi overview

Il Framework OSGI: Ciclo di vita di un Bundle (3/3)

Resolved Bundle

1. Se esso non viene fisicamentecancellato dalla cartella dilavoro, l’Activator fara si cheesso venga sempre visto dalsistema, passando quindi allostato RESOLVED.

N.B.

Ogni Bundle risolto puo dunque essere avviato e successivamenteinstallato.

Francesco Pantano [email protected] OSGi Get Start 30 Agosto 2013 8 / 15

Page 9: Osgi overview

Il Framework OSGI: Preparazione dell’ambiente

Implementazioni OSGI

Esistono numerose implementazioni del framework OSGI

Nome Licenza

Knopflerfish OpenSource

Apache Felix OpenSource

Concierge OSGi OpenSource

Equinox OSGi OpenSource

Quale implementazione scegliere

Sceglieremo Equinox (facile integrazione con Eclipse)

Francesco Pantano [email protected] OSGi Get Start 30 Agosto 2013 9 / 15

Page 10: Osgi overview

Il Framework OSGI: Installazione (1/2)

Installazione del framework dotato di console (ModalitA Stand-alone)

1) Creare una cartella e copiarvi all’interno il fileorg.eclipse.osgi-X.X.X.vxxx fornito nel tar.gz in allegato.

2) Attraverso il comando java -jar org.eclipse.osgi-VERSION.jar -console e possibile avviare il framework ed avere a disposizione unaconsole che permette di gestire i bundle attraverso le operazionimesse a disposizione.

3) A questo punto, attraverso il comando installfile:/path/to/my/bundle.jar e possibile inserire il Bundle all’internodel framework, e successivamente avviarlo chiamando lo start.

Francesco Pantano [email protected] OSGi Get Start 30 Agosto 2013 10 / 15

Page 11: Osgi overview

Il Framework OSGi: Installazione (2/2)

Installazione del framework dotato di console (Eclipse Plugin)

Presa in considerazione la versione Juno, dai repo ufficiali e possibilescaricare ed installare l’intero ambiente all’interno dell’IDE.

How to

Per maggiori dettagli e per prendere visione dei tutorial presenti, sirimanda alla documentazione ufficiale di Eclipse.

Links

1. Equinox Doc

2. Download Eclipse-Osgi Integrated

Francesco Pantano [email protected] OSGi Get Start 30 Agosto 2013 11 / 15

Page 12: Osgi overview

OSGi Console (1/2)

La console OSGi si presenta come un classico prompt da cui e possibileeseguire comandi per intraprendere certe azioni.

Comando Descrizione

help Lista dei comandi disponibili

ss Lista dei bundles installati e dello stato

start [id] Avvia il bundle con l’id che viene specificato

stop [id] Stoppa il bundle con l’id che viene specificato

install [url] Installa il bundle da un certo url

uninstall[bundle-id]

Rimuove il bundle con un certo id specificato

bundle[bundle-id]

Visualizza le informazioni relative al bundlespecificato

services[filter]

Visualizza i servizi filtrati con un certoargomento

Francesco Pantano [email protected] OSGi Get Start 30 Agosto 2013 12 / 15

Page 13: Osgi overview

OSGi Console (2/2)

Per usare la console OSGi, e necessario aggiungere alcune dipendenze allaconfigurazione

Requisiti

1. org.eclipse.equinox.console

2. org.apache.felix.gogo.command

3. org.apache.felix.gogo.runtime

4. org.apache.felix.gogo.shell

Nota

Equinox contiene una console built-in, attivabile attraverso l’opzione-Dosgi.console.enable.builtin=true

Francesco Pantano [email protected] OSGi Get Start 30 Agosto 2013 13 / 15

Page 14: Osgi overview

Un po’ di pratica..

Link utili:

1. OSGi Hello World

2. Declarative Services

3. Event Admin Service

4. Configuration Admin Service

Happy Coding

E possibile reperire codice d’esempio su:

https://github.com/search?q=osgi+examples

Francesco Pantano [email protected] OSGi Get Start 30 Agosto 2013 14 / 15

Page 15: Osgi overview

Riferimenti bibliografici

OSGI AllianceHow to Get Started with OSGihttp://www.osgi.org/Technology/HowOSGi

OSGI OverviewBundles Lifecyclehttp://en.wikipedia.org/wiki/OSGi

Installation - ConfigurationWork with Eclipse Equinoxhttp://www.vogella.com/articles/OSGi/article.html

Francesco Pantano [email protected] OSGi Get Start 30 Agosto 2013 15 / 15