OSGi e Liferay 7

528 views

Published on

Allo User Group Italiano su Liferay di Bologna: Overview del futuro prossimo su Liferay.
OSGi (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.

Published in: Internet
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
528
On SlideShare
0
From Embeds
0
Number of Embeds
14
Actions
Shares
0
Downloads
6
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

OSGi e Liferay 7

  1. 1. OSGi e Liferay 7 Overview del futuro prossimo da Jader e Antonio! :)
  2. 2. Chi siamo? :) Jader Francia Imprenditore @JedJds http://blog.d-vel.com Antonio Musarra Super Mega Consulente @antonio_musarra http://www.dontesta.it/blog/ Imprenditore... Super mega consulente...
  3. 3. OSGi: Quali sono gli elementi chiave OSGi (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
  4. 4. 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
  5. 5. Moduli e Liferay 7 Modulo 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
  6. 6. 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.
  7. 7. 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
  8. 8. 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.
  9. 9. 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à.
  10. 10. 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
  11. 11. 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
  12. 12. Application Lifecycle On install: - viene validato il MANIFEST; - Vengono risolte le dipendenze; - Il modulo viene messo in stato RESOLVED;
  13. 13. Application Lifecycle On resolved: - le dipendenze sono risolte; - le classi Java esportate sono disponibili; - tutti i servizi necessari sono disponibili; - il modulo può essere messo in STARTING.
  14. 14. Application Lifecycle On started: - l’applicazione può partire; - si possono invocare i servizi; - il modulo va in stato ACTIVE.
  15. 15. Application Lifecycle - Lo stato ACTIVE è lo stato principale; - le applicazioni in questo stato sono eseguibili;
  16. 16. Application Lifecycle On stopping: - l’applicazione viene “spenta”; - torna nello stato “resolved”; - si può nuovamente farla ripartire o disinstallarla;
  17. 17. Application Lifecycle On uninstalled: - il modulo non è più presente nella lista dei moduli del sistema; - bisogna rifare deploy per riaverlo disponibile.
  18. 18. 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
  19. 19. 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
  20. 20. ...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...
  21. 21. 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! :)

×