SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler 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! :)

Mais conteúdo relacionado

Mais procurados

Using mule configuration patterns
Using mule configuration patternsUsing mule configuration patterns
Using mule configuration patternsSindhu VL
 
新登場! Windows Defender Application Guard 解説 ~ Microsoft Edge がセキュア ブラウザーに!?~
新登場! Windows Defender Application Guard 解説 ~ Microsoft Edge がセキュア ブラウザーに!?~新登場! Windows Defender Application Guard 解説 ~ Microsoft Edge がセキュア ブラウザーに!?~
新登場! Windows Defender Application Guard 解説 ~ Microsoft Edge がセキュア ブラウザーに!?~TAKUYA OHTA
 
Analisa kebutuhan bandwidth
Analisa kebutuhan bandwidthAnalisa kebutuhan bandwidth
Analisa kebutuhan bandwidthintan hrn
 
Dokumen srs -_sistem_informasi_koperasi
Dokumen srs -_sistem_informasi_koperasiDokumen srs -_sistem_informasi_koperasi
Dokumen srs -_sistem_informasi_koperasifachrizal lianso
 
security-reference-architecture.pdf
security-reference-architecture.pdfsecurity-reference-architecture.pdf
security-reference-architecture.pdfJoniGarcia9
 
The Mighty Power of the Accessibility Service - Guy Griv, Pepper
The Mighty Power of the Accessibility Service - Guy Griv, PepperThe Mighty Power of the Accessibility Service - Guy Griv, Pepper
The Mighty Power of the Accessibility Service - Guy Griv, PepperDroidConTLV
 
何故 Okta を選んだか? 導入して体感したメリットとは?
何故 Okta を選んだか? 導入して体感したメリットとは?何故 Okta を選んだか? 導入して体感したメリットとは?
何故 Okta を選んだか? 導入して体感したメリットとは?Kyohei Komatsu
 
Jobsheet-Praktek-Jaringan-Komputer.doc
Jobsheet-Praktek-Jaringan-Komputer.docJobsheet-Praktek-Jaringan-Komputer.doc
Jobsheet-Praktek-Jaringan-Komputer.docLaGani1
 
実際に流れているデータを見てみよう
実際に流れているデータを見てみよう実際に流れているデータを見てみよう
実際に流れているデータを見てみよう彰 村地
 
オンライン技術勉強会 20201215 QSEoWサーバー管理者向けトレーニング_1
オンライン技術勉強会 20201215 QSEoWサーバー管理者向けトレーニング_1オンライン技術勉強会 20201215 QSEoWサーバー管理者向けトレーニング_1
オンライン技術勉強会 20201215 QSEoWサーバー管理者向けトレーニング_1QlikPresalesJapan
 
IT エンジニアのための 流し読み Windows 10 - Windows Hello for Business
IT エンジニアのための 流し読み Windows 10 - Windows Hello for BusinessIT エンジニアのための 流し読み Windows 10 - Windows Hello for Business
IT エンジニアのための 流し読み Windows 10 - Windows Hello for BusinessTAKUYA OHTA
 
Liferay as a Microservice Platform
Liferay as a Microservice PlatformLiferay as a Microservice Platform
Liferay as a Microservice PlatformDaniel Reuther
 
AWSクラウドデザインパターン(CDP) - 概要編 -
AWSクラウドデザインパターン(CDP) - 概要編 - AWSクラウドデザインパターン(CDP) - 概要編 -
AWSクラウドデザインパターン(CDP) - 概要編 - SORACOM, INC
 
KAK (KERANGKA ACUAN KERJA) ANGKOTIN
KAK (KERANGKA ACUAN KERJA) ANGKOTINKAK (KERANGKA ACUAN KERJA) ANGKOTIN
KAK (KERANGKA ACUAN KERJA) ANGKOTINAulia Teaku
 
Navigating GDPR Compliance on AWS
Navigating GDPR Compliance on AWSNavigating GDPR Compliance on AWS
Navigating GDPR Compliance on AWSAmazon Web Services
 
Jobsheet 3 ad hoc
Jobsheet 3 ad hocJobsheet 3 ad hoc
Jobsheet 3 ad hocfmraihan
 

Mais procurados (20)

Using mule configuration patterns
Using mule configuration patternsUsing mule configuration patterns
Using mule configuration patterns
 
新登場! Windows Defender Application Guard 解説 ~ Microsoft Edge がセキュア ブラウザーに!?~
新登場! Windows Defender Application Guard 解説 ~ Microsoft Edge がセキュア ブラウザーに!?~新登場! Windows Defender Application Guard 解説 ~ Microsoft Edge がセキュア ブラウザーに!?~
新登場! Windows Defender Application Guard 解説 ~ Microsoft Edge がセキュア ブラウザーに!?~
 
Analisa kebutuhan bandwidth
Analisa kebutuhan bandwidthAnalisa kebutuhan bandwidth
Analisa kebutuhan bandwidth
 
Dokumen srs -_sistem_informasi_koperasi
Dokumen srs -_sistem_informasi_koperasiDokumen srs -_sistem_informasi_koperasi
Dokumen srs -_sistem_informasi_koperasi
 
Job sheet jaringan dasar 1
Job sheet jaringan dasar  1Job sheet jaringan dasar  1
Job sheet jaringan dasar 1
 
security-reference-architecture.pdf
security-reference-architecture.pdfsecurity-reference-architecture.pdf
security-reference-architecture.pdf
 
会社案内 (リクルーティング) Vol.2 10_11_2023.pdf
会社案内 (リクルーティング) Vol.2 10_11_2023.pdf会社案内 (リクルーティング) Vol.2 10_11_2023.pdf
会社案内 (リクルーティング) Vol.2 10_11_2023.pdf
 
The Mighty Power of the Accessibility Service - Guy Griv, Pepper
The Mighty Power of the Accessibility Service - Guy Griv, PepperThe Mighty Power of the Accessibility Service - Guy Griv, Pepper
The Mighty Power of the Accessibility Service - Guy Griv, Pepper
 
CLOUD COMPUTING
CLOUD COMPUTINGCLOUD COMPUTING
CLOUD COMPUTING
 
何故 Okta を選んだか? 導入して体感したメリットとは?
何故 Okta を選んだか? 導入して体感したメリットとは?何故 Okta を選んだか? 導入して体感したメリットとは?
何故 Okta を選んだか? 導入して体感したメリットとは?
 
Jobsheet-Praktek-Jaringan-Komputer.doc
Jobsheet-Praktek-Jaringan-Komputer.docJobsheet-Praktek-Jaringan-Komputer.doc
Jobsheet-Praktek-Jaringan-Komputer.doc
 
実際に流れているデータを見てみよう
実際に流れているデータを見てみよう実際に流れているデータを見てみよう
実際に流れているデータを見てみよう
 
オンライン技術勉強会 20201215 QSEoWサーバー管理者向けトレーニング_1
オンライン技術勉強会 20201215 QSEoWサーバー管理者向けトレーニング_1オンライン技術勉強会 20201215 QSEoWサーバー管理者向けトレーニング_1
オンライン技術勉強会 20201215 QSEoWサーバー管理者向けトレーニング_1
 
IT エンジニアのための 流し読み Windows 10 - Windows Hello for Business
IT エンジニアのための 流し読み Windows 10 - Windows Hello for BusinessIT エンジニアのための 流し読み Windows 10 - Windows Hello for Business
IT エンジニアのための 流し読み Windows 10 - Windows Hello for Business
 
Jaringan multimedia
Jaringan multimediaJaringan multimedia
Jaringan multimedia
 
Liferay as a Microservice Platform
Liferay as a Microservice PlatformLiferay as a Microservice Platform
Liferay as a Microservice Platform
 
AWSクラウドデザインパターン(CDP) - 概要編 -
AWSクラウドデザインパターン(CDP) - 概要編 - AWSクラウドデザインパターン(CDP) - 概要編 -
AWSクラウドデザインパターン(CDP) - 概要編 -
 
KAK (KERANGKA ACUAN KERJA) ANGKOTIN
KAK (KERANGKA ACUAN KERJA) ANGKOTINKAK (KERANGKA ACUAN KERJA) ANGKOTIN
KAK (KERANGKA ACUAN KERJA) ANGKOTIN
 
Navigating GDPR Compliance on AWS
Navigating GDPR Compliance on AWSNavigating GDPR Compliance on AWS
Navigating GDPR Compliance on AWS
 
Jobsheet 3 ad hoc
Jobsheet 3 ad hocJobsheet 3 ad hoc
Jobsheet 3 ad hoc
 

Destaque

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
 
Liferay overview
Liferay overviewLiferay overview
Liferay overviewAbhishekSRC
 

Destaque (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
 
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
 
Liferay overview
Liferay overviewLiferay overview
Liferay overview
 

Semelhante a 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
 

Semelhante a 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
 

Mais de 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
 

Mais de 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! :)