Post on 13-Apr-2017
transcript
OSGi Get Start
Francesco Pantanofrancesco.pan001@gmail.com
30 Agosto 2013
Francesco Pantano francesco.pan001@gmail.com OSGi Get Start 30 Agosto 2013 1 / 15
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 francesco.pan001@gmail.com OSGi Get Start 30 Agosto 2013 2 / 15
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 francesco.pan001@gmail.com OSGi Get Start 30 Agosto 2013 3 / 15
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 francesco.pan001@gmail.com OSGi Get Start 30 Agosto 2013 4 / 15
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 francesco.pan001@gmail.com OSGi Get Start 30 Agosto 2013 5 / 15
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 francesco.pan001@gmail.com OSGi Get Start 30 Agosto 2013 6 / 15
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 francesco.pan001@gmail.com OSGi Get Start 30 Agosto 2013 7 / 15
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 francesco.pan001@gmail.com OSGi Get Start 30 Agosto 2013 8 / 15
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 francesco.pan001@gmail.com OSGi Get Start 30 Agosto 2013 9 / 15
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 francesco.pan001@gmail.com OSGi Get Start 30 Agosto 2013 10 / 15
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 francesco.pan001@gmail.com OSGi Get Start 30 Agosto 2013 11 / 15
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 francesco.pan001@gmail.com OSGi Get Start 30 Agosto 2013 12 / 15
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 francesco.pan001@gmail.com OSGi Get Start 30 Agosto 2013 13 / 15
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 francesco.pan001@gmail.com OSGi Get Start 30 Agosto 2013 14 / 15
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 francesco.pan001@gmail.com OSGi Get Start 30 Agosto 2013 15 / 15