OSGi e Liferay 7
-
Upload
antonio-musarra -
Category
Internet
-
view
479 -
download
5
Transcript of OSGi e Liferay 7
Chi siamo? :)Jader FranciaImprenditore@JedJdshttp://blog.d-vel.com
Antonio MusarraSuper Mega Consulente@antonio_musarrahttp://www.dontesta.it/blog/
Imprenditore... Super mega consulente...
OSGi: Quali sono gli elementi chiaveOSGi (Open Service Gateway Initiative) è una specifica che permette di costruire
applicazioni modulari a componenti (i Bundle) e che introduce una programmazione
Service Oriented, permettendo una separazione tra interfaccia ed implementazione
molto più rigorosa di quella nativa Java. Esistono diverse implementazioni (container)
di OSGi, conformi alle specifiche.
● Modularità
● Bundle
● Declarative Services
● Semantic Version
● Microservices
Contiene:
- Classi java
- il file di Manifest
- le Risorse, ovvero:
- File di properties
- JSPs
- File vari (images, pdf, binary files, etc)
Cos’è un modulo?
Può definire:
- Services
- Portlets
- Servlet
- Comandi shell
Un modulo è una unità di deploy self contained.
I moduli sono pacchettizzati in file JAR
Moduli e Liferay 7Modulo
Java Class Java Class
Manifest Resource (JSP)
Resource (Properties files)
Resource(Images)
Sviluppare moduli vuol dire:
● creare piccoli moduli
● pubblicare e consumare le features di
altri moduli
● lavorare senza dipendenze statiche
Cosa comprendere del framework
modulare:
● Moduli
● Componenti
● Ciclo di vita delle applicazioni
Com’è fatto un modulo?Un modulo è un JAR che contiene (come minimo):
- Java classes
- il file MANIFEST.MF
Le risorse non sono necessarie affinché il modulo sia valido.
Perché sia valido, un modulo deve avere uno unique identifier.
Module Name + Module Version
Ad esempio: com.example.my.module,1.0.1
Questo significa che possiamo rilasciare differenti versioni dello stesso modulo!
Naming convention di un modulo
OSGi: Semantic Versioning● Le API definiscono un contratto (come un documento WSDL)
● Assegnare un numero di versione alle funzionalità esportate dà maggior vita al
contratto
○ 1.x => 2.0 := apportati cambiamenti critici alle API
○ 1.x => 1.y := apportati cambiamenti retro-compatibili
○ 1.x.y => 1.x.z := bug fix
● Vantaggi
○ Chi utilizza le API può decidere liberamente un intervallo di versioni che accetta
○ Con queste convenzioni, i numeri di versione, ed il modo in cui essi cambiano, comunicano
significato relativamente al codice sottostante e a cosa è stato modificato da una versione all’altra.
Cos’è un componente?I componenti sono i blocchi con i quali puoi costruire una applicazione.
Sono riusabili e sempre disponibili perché potenzialmente non legati ad una singola
applicazione.
Rinforzano il concetto di modularità.
Componenti e Liferay 7
Applicazione
Modulo Modulo
JSPs Service
Portlet (Component)
● I componenti sono contenuti all’
interno del moduli
● I singoli componenti definiscono
funzionalità atomiche e possono essere
utilizzati in modo isolato o insieme ad
altri componenti per costruire una o
più applicazioni
● Un’applicazione è definita da uno o
più componenti che possono risiedere
all’interno dello stesso modulo o su
moduli diversi
Application Lifecycle● Un’applicazione è installata
con dei moduli che
contengono dei componenti
● Il framework modulare (il
container OSGi) gestisce l’
installazione, l’attivazione e
le dipendenze tra moduli
● Il processo d’installazione e
attivazione di un modulo è
gestito tramite l’application
lifecycle
Application LifecycleOn install:
- viene validato il
MANIFEST;
- Vengono risolte le
dipendenze;
- Il modulo viene messo
in stato RESOLVED;
Application LifecycleOn resolved:
- le dipendenze sono
risolte;
- le classi Java esportate
sono disponibili;
- tutti i servizi necessari
sono disponibili;
- il modulo può essere
messo in STARTING.
Application LifecycleOn started:
- l’applicazione può
partire;
- si possono invocare i
servizi;
- il modulo va in stato
ACTIVE.
Application Lifecycle- Lo stato ACTIVE è lo
stato principale;
- le applicazioni in
questo stato sono
eseguibili;
Application LifecycleOn stopping:
- l’applicazione viene
“spenta”;
- torna nello stato
“resolved”;
- si può nuovamente
farla ripartire o
disinstallarla;
Application LifecycleOn uninstalled:
- il modulo non è più
presente nella lista dei
moduli del sistema;
- bisogna rifare deploy
per riaverlo disponibile.
OSGi: I Services ● I Services sono costituiti da una serie d' interfacce e classi Java registrate all’
interno del Service Registry
● Un componente può essere pubblicato come servizio
● Un componente può richiedere un servizio
● I Servizi sono registrati dal Bundle Activator del modulo
OSGi: I Services ● Liferay utilizza il framework
modulare a Declarative Services
(DS) che fornisce un alto livello di
astrazione nella gestione dei servizi
● Un service è costituito da un’
interfaccia ed un’implementazione
● Il Service Registry è il “faldone” con
i servizi che abbiamo a disposione
...qualche esempio concreto dal vivo.
● Bundle Activator
● Services
● Framework Events (Liferay Lifecycle)
● Application Configuration (Scheduler Example)
...Se poi volete provare anche voi: https://github.com/amusarra/liferay-
italia-bo-usergroup
E adesso...
Ci vediamo al simposio!… Però, se siete curiosi di scoprire di più su Liferay 7:
- http://www.dontesta.it/blog
- http://blog.d-vel.com
- http://www.slideshare.net/amusarra
@antonio_musarra
@JedJds
@dvelsnc
GRAZIE! :)