SlideShare a Scribd company logo
1 of 21
Download to read offline
OSGi e Liferay 7
Overview del futuro prossimo
da Jader e Antonio! :)
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...
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
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 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
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 Lifecycle
On install:
- viene validato il
MANIFEST;
- Vengono risolte le
dipendenze;
- Il modulo viene messo
in stato RESOLVED;
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.
Application Lifecycle
On 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 Lifecycle
On stopping:
- l’applicazione viene
“spenta”;
- torna nello stato
“resolved”;
- si può nuovamente
farla ripartire o
disinstallarla;
Application Lifecycle
On 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! :)

More Related Content

What's hot

WebSphere application server 8.5.5 - quick overview
WebSphere application server 8.5.5 - quick overviewWebSphere application server 8.5.5 - quick overview
WebSphere application server 8.5.5 - quick overviewChris Sparshott
 
Active directoryと認証・認可
Active directoryと認証・認可Active directoryと認証・認可
Active directoryと認証・認可Hiroki Kamata
 
IMS AKAv1 AKv2 Verizon
IMS AKAv1 AKv2 VerizonIMS AKAv1 AKv2 Verizon
IMS AKAv1 AKv2 VerizonAlok Prasad
 
IMS Authentication with AKAv1 and AKAv2
IMS Authentication with AKAv1 and AKAv2 IMS Authentication with AKAv1 and AKAv2
IMS Authentication with AKAv1 and AKAv2 mohammad norozzudegan
 
Liferay as a Microservice Platform
Liferay as a Microservice PlatformLiferay as a Microservice Platform
Liferay as a Microservice PlatformDaniel Reuther
 
VMware vSphere Storage Appliance (VSA) - Technical Presentation,Almacenamien...
VMware vSphere Storage Appliance (VSA) -  Technical Presentation,Almacenamien...VMware vSphere Storage Appliance (VSA) -  Technical Presentation,Almacenamien...
VMware vSphere Storage Appliance (VSA) - Technical Presentation,Almacenamien...Suministros Obras y Sistemas
 
IBM Websphere concepts
IBM Websphere conceptsIBM Websphere concepts
IBM Websphere conceptsKuldeep Saxena
 
Release With Maven
Release With MavenRelease With Maven
Release With Maveneugenn
 
Citrix XenApp and XenDesktop 7.X
Citrix XenApp and XenDesktop 7.XCitrix XenApp and XenDesktop 7.X
Citrix XenApp and XenDesktop 7.XIzaak Salman
 
Cisco Web and Email Security Overview
Cisco Web and Email Security OverviewCisco Web and Email Security Overview
Cisco Web and Email Security OverviewCisco Security
 
Windows virtual desktop l100 presentation
Windows virtual desktop l100 presentationWindows virtual desktop l100 presentation
Windows virtual desktop l100 presentationkiefter
 
Application Architecture: The Next Wave | MuleSoft
Application Architecture: The Next Wave | MuleSoftApplication Architecture: The Next Wave | MuleSoft
Application Architecture: The Next Wave | MuleSoftMuleSoft
 
Azure fundamentals
Azure   fundamentalsAzure   fundamentals
Azure fundamentalsRaju Kumar
 
Microservices Architecture - Bangkok 2018
Microservices Architecture - Bangkok 2018Microservices Architecture - Bangkok 2018
Microservices Architecture - Bangkok 2018Araf Karsh Hamid
 

What's hot (20)

A Software Defined WAN Architecture
A Software Defined WAN ArchitectureA Software Defined WAN Architecture
A Software Defined WAN Architecture
 
Horizon 8 + Instant Clones
Horizon 8 + Instant ClonesHorizon 8 + Instant Clones
Horizon 8 + Instant Clones
 
WebSphere application server 8.5.5 - quick overview
WebSphere application server 8.5.5 - quick overviewWebSphere application server 8.5.5 - quick overview
WebSphere application server 8.5.5 - quick overview
 
Single Sign On 101
Single Sign On 101Single Sign On 101
Single Sign On 101
 
Active directoryと認証・認可
Active directoryと認証・認可Active directoryと認証・認可
Active directoryと認証・認可
 
CANARY DEPLOYMENT
CANARY DEPLOYMENTCANARY DEPLOYMENT
CANARY DEPLOYMENT
 
IMS AKAv1 AKv2 Verizon
IMS AKAv1 AKv2 VerizonIMS AKAv1 AKv2 Verizon
IMS AKAv1 AKv2 Verizon
 
IMS Authentication with AKAv1 and AKAv2
IMS Authentication with AKAv1 and AKAv2 IMS Authentication with AKAv1 and AKAv2
IMS Authentication with AKAv1 and AKAv2
 
Liferay as a Microservice Platform
Liferay as a Microservice PlatformLiferay as a Microservice Platform
Liferay as a Microservice Platform
 
VMware vSphere Storage Appliance (VSA) - Technical Presentation,Almacenamien...
VMware vSphere Storage Appliance (VSA) -  Technical Presentation,Almacenamien...VMware vSphere Storage Appliance (VSA) -  Technical Presentation,Almacenamien...
VMware vSphere Storage Appliance (VSA) - Technical Presentation,Almacenamien...
 
VMware Workspace One
VMware Workspace OneVMware Workspace One
VMware Workspace One
 
IBM Websphere concepts
IBM Websphere conceptsIBM Websphere concepts
IBM Websphere concepts
 
Release With Maven
Release With MavenRelease With Maven
Release With Maven
 
Citrix XenApp and XenDesktop 7.X
Citrix XenApp and XenDesktop 7.XCitrix XenApp and XenDesktop 7.X
Citrix XenApp and XenDesktop 7.X
 
Cisco Web and Email Security Overview
Cisco Web and Email Security OverviewCisco Web and Email Security Overview
Cisco Web and Email Security Overview
 
Windows virtual desktop l100 presentation
Windows virtual desktop l100 presentationWindows virtual desktop l100 presentation
Windows virtual desktop l100 presentation
 
Application Architecture: The Next Wave | MuleSoft
Application Architecture: The Next Wave | MuleSoftApplication Architecture: The Next Wave | MuleSoft
Application Architecture: The Next Wave | MuleSoft
 
Web Application Security Strategy
Web Application Security Strategy Web Application Security Strategy
Web Application Security Strategy
 
Azure fundamentals
Azure   fundamentalsAzure   fundamentals
Azure fundamentals
 
Microservices Architecture - Bangkok 2018
Microservices Architecture - Bangkok 2018Microservices Architecture - Bangkok 2018
Microservices Architecture - Bangkok 2018
 

Viewers also liked

Liferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioLiferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioAntonio Musarra
 
Moved to https://slidr.io/azzazzel/liferay-7-microservices-for-the-enterprise
Moved to https://slidr.io/azzazzel/liferay-7-microservices-for-the-enterpriseMoved to https://slidr.io/azzazzel/liferay-7-microservices-for-the-enterprise
Moved to https://slidr.io/azzazzel/liferay-7-microservices-for-the-enterpriseMilen Dyankov
 
Microservices: The OSGi way A different vision on microservices
Microservices: The OSGi way A different vision on microservicesMicroservices: The OSGi way A different vision on microservices
Microservices: The OSGi way A different vision on microservicesMiguel Pastor
 
Corso introduttivo di Design Pattern in Java per Elis - 1
Corso introduttivo di Design Pattern in Java per Elis - 1Corso introduttivo di Design Pattern in Java per Elis - 1
Corso introduttivo di Design Pattern in Java per Elis - 1Antonio Musarra
 
Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM)
Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM)Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM)
Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM)Antonio Musarra
 
Design patterns - parte 1
Design patterns - parte 1Design patterns - parte 1
Design patterns - parte 1Fabio Armani
 
Mapping the Value (Agilia Budapest 2016)
Mapping the Value (Agilia Budapest 2016)Mapping the Value (Agilia Budapest 2016)
Mapping the Value (Agilia Budapest 2016)Fabio Armani
 
Liferay_effortel_2009
Liferay_effortel_2009Liferay_effortel_2009
Liferay_effortel_2009iopent
 
Introduzione ai sistemi di Content Management System (CMS)
Introduzione ai sistemi di Content Management System (CMS)Introduzione ai sistemi di Content Management System (CMS)
Introduzione ai sistemi di Content Management System (CMS)Antonio Musarra
 
Liferay_2012
Liferay_2012Liferay_2012
Liferay_2012iopent
 
Liferay Portal и приемы разработки
Liferay Portal и приемы разработкиLiferay Portal и приемы разработки
Liferay Portal и приемы разработкиdevclub
 
Liferay portals in real projects
Liferay portals  in real projectsLiferay portals  in real projects
Liferay portals in real projectsIBACZ
 

Viewers also liked (20)

Liferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioLiferay - Quick Start 1° Episodio
Liferay - Quick Start 1° Episodio
 
Moved to https://slidr.io/azzazzel/liferay-7-microservices-for-the-enterprise
Moved to https://slidr.io/azzazzel/liferay-7-microservices-for-the-enterpriseMoved to https://slidr.io/azzazzel/liferay-7-microservices-for-the-enterprise
Moved to https://slidr.io/azzazzel/liferay-7-microservices-for-the-enterprise
 
JAX-WS e JAX-RS
JAX-WS e JAX-RSJAX-WS e JAX-RS
JAX-WS e JAX-RS
 
Microservices: The OSGi way A different vision on microservices
Microservices: The OSGi way A different vision on microservicesMicroservices: The OSGi way A different vision on microservices
Microservices: The OSGi way A different vision on microservices
 
Liferay 7
Liferay 7Liferay 7
Liferay 7
 
Overview of Liferay 7 Technology
Overview of Liferay 7 TechnologyOverview of Liferay 7 Technology
Overview of Liferay 7 Technology
 
Corso introduttivo di Design Pattern in Java per Elis - 1
Corso introduttivo di Design Pattern in Java per Elis - 1Corso introduttivo di Design Pattern in Java per Elis - 1
Corso introduttivo di Design Pattern in Java per Elis - 1
 
Liferay e Modularização com Arquitetura OSGi
Liferay e Modularização com Arquitetura OSGiLiferay e Modularização com Arquitetura OSGi
Liferay e Modularização com Arquitetura OSGi
 
Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM)
Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM)Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM)
Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM)
 
Design patterns - parte 1
Design patterns - parte 1Design patterns - parte 1
Design patterns - parte 1
 
Introduzione al Web 2.0
Introduzione al Web 2.0Introduzione al Web 2.0
Introduzione al Web 2.0
 
Mapping the Value (Agilia Budapest 2016)
Mapping the Value (Agilia Budapest 2016)Mapping the Value (Agilia Budapest 2016)
Mapping the Value (Agilia Budapest 2016)
 
Liferay_effortel_2009
Liferay_effortel_2009Liferay_effortel_2009
Liferay_effortel_2009
 
Introduzione ai sistemi di Content Management System (CMS)
Introduzione ai sistemi di Content Management System (CMS)Introduzione ai sistemi di Content Management System (CMS)
Introduzione ai sistemi di Content Management System (CMS)
 
Liferay_2012
Liferay_2012Liferay_2012
Liferay_2012
 
Liferay Portal и приемы разработки
Liferay Portal и приемы разработкиLiferay Portal и приемы разработки
Liferay Portal и приемы разработки
 
SAML and Liferay
SAML and LiferaySAML and Liferay
SAML and Liferay
 
Making a decision between Liferay and Drupal
Making a decision between Liferay and DrupalMaking a decision between Liferay and Drupal
Making a decision between Liferay and Drupal
 
Liferay portals in real projects
Liferay portals  in real projectsLiferay portals  in real projects
Liferay portals in real projects
 
Liferay
LiferayLiferay
Liferay
 

Similar to OSGi e Liferay 7

Software modularity, microservices ed headless platform all in one. Liferay: ...
Software modularity, microservices ed headless platform all in one. Liferay: ...Software modularity, microservices ed headless platform all in one. Liferay: ...
Software modularity, microservices ed headless platform all in one. Liferay: ...Commit University
 
Acadevmy - Angular Overview
Acadevmy - Angular OverviewAcadevmy - Angular Overview
Acadevmy - Angular OverviewFrancesco Sciuti
 
Slide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdfSlide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdfFlorence Consulting
 
Androidsdk appinventor
Androidsdk appinventorAndroidsdk appinventor
Androidsdk appinventorfdizazzo
 
e-SUAP - General software architecture (Italiano)
e-SUAP - General software architecture (Italiano)e-SUAP - General software architecture (Italiano)
e-SUAP - General software architecture (Italiano)Sabino Labarile
 
MuleSoft_Meetup__Official__8_.pdf
MuleSoft_Meetup__Official__8_.pdfMuleSoft_Meetup__Official__8_.pdf
MuleSoft_Meetup__Official__8_.pdfFlorence Consulting
 
Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3Marco Loregian
 
Tesi Discussione
Tesi DiscussioneTesi Discussione
Tesi DiscussioneYeser Rema
 
Framework per la realizzazione di ria
Framework per la realizzazione di riaFramework per la realizzazione di ria
Framework per la realizzazione di riaLorenzo Bortolotto
 
Web Api – The HTTP Way
Web Api – The HTTP WayWeb Api – The HTTP Way
Web Api – The HTTP WayLuca Milan
 
Un backend per tutte le stagioni con Spring
Un backend per tutte le stagioni con SpringUn backend per tutte le stagioni con Spring
Un backend per tutte le stagioni con SpringMarcello Teodori
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDaniele Mondello
 
.NET Microservices
.NET Microservices.NET Microservices
.NET MicroservicesLuca Congiu
 
Microservices architecture & Service Fabric
Microservices architecture & Service FabricMicroservices architecture & Service Fabric
Microservices architecture & Service FabricMassimo Bonanni
 
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...Mattia De Bernardi
 
Il Web orientato al futuro: Express, Angular e nodeJS
Il Web orientato al futuro: Express, Angular e nodeJS Il Web orientato al futuro: Express, Angular e nodeJS
Il Web orientato al futuro: Express, Angular e nodeJS Eugenio Minardi
 
MattiaBeltrano_azurePipelines.pptx
MattiaBeltrano_azurePipelines.pptxMattiaBeltrano_azurePipelines.pptx
MattiaBeltrano_azurePipelines.pptxAndreaCapolei1
 

Similar to OSGi e Liferay 7 (20)

Software modularity, microservices ed headless platform all in one. Liferay: ...
Software modularity, microservices ed headless platform all in one. Liferay: ...Software modularity, microservices ed headless platform all in one. Liferay: ...
Software modularity, microservices ed headless platform all in one. Liferay: ...
 
Acadevmy - Angular Overview
Acadevmy - Angular OverviewAcadevmy - Angular Overview
Acadevmy - Angular Overview
 
Slide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdfSlide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdf
 
Androidsdk appinventor
Androidsdk appinventorAndroidsdk appinventor
Androidsdk appinventor
 
Microservices
MicroservicesMicroservices
Microservices
 
Linuxday osgi speech
Linuxday osgi speechLinuxday osgi speech
Linuxday osgi speech
 
e-SUAP - General software architecture (Italiano)
e-SUAP - General software architecture (Italiano)e-SUAP - General software architecture (Italiano)
e-SUAP - General software architecture (Italiano)
 
MuleSoft_Meetup__Official__8_.pdf
MuleSoft_Meetup__Official__8_.pdfMuleSoft_Meetup__Official__8_.pdf
MuleSoft_Meetup__Official__8_.pdf
 
Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3
 
Tesi Discussione
Tesi DiscussioneTesi Discussione
Tesi Discussione
 
Framework per la realizzazione di ria
Framework per la realizzazione di riaFramework per la realizzazione di ria
Framework per la realizzazione di ria
 
Introduzione ad Android
Introduzione ad AndroidIntroduzione ad Android
Introduzione ad Android
 
Web Api – The HTTP Way
Web Api – The HTTP WayWeb Api – The HTTP Way
Web Api – The HTTP Way
 
Un backend per tutte le stagioni con Spring
Un backend per tutte le stagioni con SpringUn backend per tutte le stagioni con Spring
Un backend per tutte le stagioni con Spring
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele Mondello
 
.NET Microservices
.NET Microservices.NET Microservices
.NET Microservices
 
Microservices architecture & Service Fabric
Microservices architecture & Service FabricMicroservices architecture & Service Fabric
Microservices architecture & Service Fabric
 
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
 
Il Web orientato al futuro: Express, Angular e nodeJS
Il Web orientato al futuro: Express, Angular e nodeJS Il Web orientato al futuro: Express, Angular e nodeJS
Il Web orientato al futuro: Express, Angular e nodeJS
 
MattiaBeltrano_azurePipelines.pptx
MattiaBeltrano_azurePipelines.pptxMattiaBeltrano_azurePipelines.pptx
MattiaBeltrano_azurePipelines.pptx
 

More from Antonio Musarra

Liferay Portal CE 7.4: Come configurare Oracle Database 19c
Liferay Portal CE 7.4: Come configurare Oracle Database 19cLiferay Portal CE 7.4: Come configurare Oracle Database 19c
Liferay Portal CE 7.4: Come configurare Oracle Database 19cAntonio Musarra
 
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...Antonio Musarra
 
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19c
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19cCome installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19c
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19cAntonio Musarra
 
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...Antonio Musarra
 
Liferay & Salesforce.com
Liferay & Salesforce.comLiferay & Salesforce.com
Liferay & Salesforce.comAntonio Musarra
 
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle Database
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle DatabaseCome installare Liferay 7 su JBOSS EAP con il supporto​ Oracle Database
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle DatabaseAntonio Musarra
 
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi StyleLiferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi StyleAntonio Musarra
 
SugarCRM Enterprise Development Virtual Appliance
SugarCRM Enterprise Development Virtual ApplianceSugarCRM Enterprise Development Virtual Appliance
SugarCRM Enterprise Development Virtual ApplianceAntonio Musarra
 
Liferay: Esporre Web Services Custom
Liferay: Esporre Web Services CustomLiferay: Esporre Web Services Custom
Liferay: Esporre Web Services CustomAntonio Musarra
 
SugarCRM: Come realizzare un Custom Scheduler. Un esempio completo.
SugarCRM: Come realizzare un Custom Scheduler. Un esempio completo.SugarCRM: Come realizzare un Custom Scheduler. Un esempio completo.
SugarCRM: Come realizzare un Custom Scheduler. Un esempio completo.Antonio Musarra
 
SugarCRM REST API: Un’applicazione in appena dieci minuti
SugarCRM REST API: Un’applicazione in appena dieci minutiSugarCRM REST API: Un’applicazione in appena dieci minuti
SugarCRM REST API: Un’applicazione in appena dieci minutiAntonio Musarra
 
How to Build a Java client for SugarCRM
How to Build a Java client for SugarCRMHow to Build a Java client for SugarCRM
How to Build a Java client for SugarCRMAntonio Musarra
 
Liferay Web Services - Come importare utenti da un foglio Excel
Liferay Web Services - Come importare utenti da un foglio ExcelLiferay Web Services - Come importare utenti da un foglio Excel
Liferay Web Services - Come importare utenti da un foglio ExcelAntonio Musarra
 
Introduzione agli Hooks – Primo Episodio
Introduzione agli Hooks – Primo EpisodioIntroduzione agli Hooks – Primo Episodio
Introduzione agli Hooks – Primo EpisodioAntonio Musarra
 
Introduzione a Liferay Message BUS
Introduzione a Liferay Message BUSIntroduzione a Liferay Message BUS
Introduzione a Liferay Message BUSAntonio Musarra
 
Un CRM dentro un CMS v1.0
Un CRM dentro un CMS v1.0Un CRM dentro un CMS v1.0
Un CRM dentro un CMS v1.0Antonio Musarra
 
Running Kettle Job by API v1.2
Running Kettle Job by API v1.2Running Kettle Job by API v1.2
Running Kettle Job by API v1.2Antonio Musarra
 
SugarCRM Web Services: Build a Apache CXF Client
SugarCRM Web Services: Build a Apache CXF ClientSugarCRM Web Services: Build a Apache CXF Client
SugarCRM Web Services: Build a Apache CXF ClientAntonio Musarra
 
Building a Client .NET for SugarCRM
Building a Client .NET for SugarCRMBuilding a Client .NET for SugarCRM
Building a Client .NET for SugarCRMAntonio Musarra
 
Costruire un client .NET per SugarCRM
Costruire un client .NET per SugarCRMCostruire un client .NET per SugarCRM
Costruire un client .NET per SugarCRMAntonio Musarra
 

More from Antonio Musarra (20)

Liferay Portal CE 7.4: Come configurare Oracle Database 19c
Liferay Portal CE 7.4: Come configurare Oracle Database 19cLiferay Portal CE 7.4: Come configurare Oracle Database 19c
Liferay Portal CE 7.4: Come configurare Oracle Database 19c
 
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...
 
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19c
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19cCome installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19c
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19c
 
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
 
Liferay & Salesforce.com
Liferay & Salesforce.comLiferay & Salesforce.com
Liferay & Salesforce.com
 
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle Database
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle DatabaseCome installare Liferay 7 su JBOSS EAP con il supporto​ Oracle Database
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle Database
 
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi StyleLiferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
 
SugarCRM Enterprise Development Virtual Appliance
SugarCRM Enterprise Development Virtual ApplianceSugarCRM Enterprise Development Virtual Appliance
SugarCRM Enterprise Development Virtual Appliance
 
Liferay: Esporre Web Services Custom
Liferay: Esporre Web Services CustomLiferay: Esporre Web Services Custom
Liferay: Esporre Web Services Custom
 
SugarCRM: Come realizzare un Custom Scheduler. Un esempio completo.
SugarCRM: Come realizzare un Custom Scheduler. Un esempio completo.SugarCRM: Come realizzare un Custom Scheduler. Un esempio completo.
SugarCRM: Come realizzare un Custom Scheduler. Un esempio completo.
 
SugarCRM REST API: Un’applicazione in appena dieci minuti
SugarCRM REST API: Un’applicazione in appena dieci minutiSugarCRM REST API: Un’applicazione in appena dieci minuti
SugarCRM REST API: Un’applicazione in appena dieci minuti
 
How to Build a Java client for SugarCRM
How to Build a Java client for SugarCRMHow to Build a Java client for SugarCRM
How to Build a Java client for SugarCRM
 
Liferay Web Services - Come importare utenti da un foglio Excel
Liferay Web Services - Come importare utenti da un foglio ExcelLiferay Web Services - Come importare utenti da un foglio Excel
Liferay Web Services - Come importare utenti da un foglio Excel
 
Introduzione agli Hooks – Primo Episodio
Introduzione agli Hooks – Primo EpisodioIntroduzione agli Hooks – Primo Episodio
Introduzione agli Hooks – Primo Episodio
 
Introduzione a Liferay Message BUS
Introduzione a Liferay Message BUSIntroduzione a Liferay Message BUS
Introduzione a Liferay Message BUS
 
Un CRM dentro un CMS v1.0
Un CRM dentro un CMS v1.0Un CRM dentro un CMS v1.0
Un CRM dentro un CMS v1.0
 
Running Kettle Job by API v1.2
Running Kettle Job by API v1.2Running Kettle Job by API v1.2
Running Kettle Job by API v1.2
 
SugarCRM Web Services: Build a Apache CXF Client
SugarCRM Web Services: Build a Apache CXF ClientSugarCRM Web Services: Build a Apache CXF Client
SugarCRM Web Services: Build a Apache CXF Client
 
Building a Client .NET for SugarCRM
Building a Client .NET for SugarCRMBuilding a Client .NET for SugarCRM
Building a Client .NET for SugarCRM
 
Costruire un client .NET per SugarCRM
Costruire un client .NET per SugarCRMCostruire un client .NET per SugarCRM
Costruire un client .NET per SugarCRM
 

OSGi e Liferay 7

  • 1. OSGi e Liferay 7 Overview del futuro prossimo da Jader e Antonio! :)
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Application Lifecycle On install: - viene validato il MANIFEST; - Vengono risolte le dipendenze; - Il modulo viene messo in stato RESOLVED;
  • 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. Application Lifecycle On started: - l’applicazione può partire; - si possono invocare i servizi; - il modulo va in stato ACTIVE.
  • 15. Application Lifecycle - Lo stato ACTIVE è lo stato principale; - le applicazioni in questo stato sono eseguibili;
  • 16. Application Lifecycle On stopping: - l’applicazione viene “spenta”; - torna nello stato “resolved”; - si può nuovamente farla ripartire o disinstallarla;
  • 17. Application Lifecycle On uninstalled: - il modulo non è più presente nella lista dei moduli del sistema; - bisogna rifare deploy per riaverlo disponibile.
  • 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. 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. ...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. 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! :)