SlideShare a Scribd company logo
1 of 19
Download to read offline
D'veloping software solutions
www.d-vel.com
D’vel snc - presentazione di Jader Francia
D'veloping software solutions
Chi sono
Digital entrepreneur, software developer
enthusiastic, friendly and curious! :)
Also a dad, an husband & more other things.. :)
Twitter: @JedJds
jader.francia@d-vel.com
Phone: 338 78 76 587
Liferay: Old Fashoned Java.. Revamped!
D'veloping software solutions
www.d-vel.com
Software Modularity, microservices ed headless platform all in one!
Summary
Liferay: i vantaggi di un framework potentissimo
OSGi Software modularity e semantic versioning
Microservices via Service Builder
GraphQL: il "one size fits all" dei servizi REST
Headless Platform, per mettere tutto insieme!
D'veloping software solutions
Liferay: Old Fashoned Java.. Revamped!www.d-vel.com
Software Modularity, microservices ed headless platform all in one!
• Liferay è leader per il decimo anno nel
Quadrante Magico di Gartner per le
Piattaforme di Esperienza Digitale 2020
• Liferay has a good understanding of the DXP market. Its
product strategy and packaging suit customer, partner
and employee experience use cases.
• Customers benefit from Liferay’s active open-source
community, which continuously contributes to the
codebase and encourages use of the open-source version.
• Liferay offers strong capabilities for extensibility and
application integration, which appeals to IT buyers.
Perché Liferay?
D'veloping software solutions
Liferay: Old Fashoned Java.. Revamped!www.d-vel.com
Software Modularity, microservices ed headless platform all in one!
- Multi tenancy (multi istanza E multi sito)
- Gestione Utenze
- Gestione Ruoli
- Gestione Gruppi
- CMS ed Experience Designer
- ... un sacco di robe fighe per quelli del business!
Cosa mi offre OOTB
D'veloping software solutions
Liferay: Old Fashoned Java.. Revamped!www.d-vel.com
Software Modularity, microservices ed headless platform all in one!
- un potentissimo framework applicativo;
- tutte le tecnologie per l'ottimizzazione già inserite in
architettura;
- gestione delle dipendenze applicative;
- software modularity;
- mostruoso riuso dei componenti applicativi;
- ambiente di sviluppo pensato per chi fa codice (di ogni tipo...)
- nessun vincolo sulla costruzione del front end (choose your weapon...)
Ma io faccio il dev.. :)
Liferay: Old Fashoned Java.. Revamped!
D'veloping software solutions
www.d-vel.com
Software Modularity, microservices ed headless platform all in one!
Summary
Liferay: i vantaggi di un framework potentissimo
OSGi Software modularity e semantic versioning
Microservices via Service Builder
GraphQL: il "one size fits all" dei servizi REST
Headless Platform, per mettere tutto insieme!
D'veloping software solutions
Liferay: Old Fashoned Java.. Revamped!www.d-vel.com
Software Modularity, microservices ed headless platform all in one!
OSGi (Open Service Gateway Initiative) è una specifica che
permette di costruire applicazioni modulari a componenti
(Bundle) e che introduce una programmazione Service Oriented,
permettendo una separazione tra interfaccia ed
implementazione molto più rigorosa di quella nativa Java.
• Modularità
• Bundle
• Declarative Services
• Semantic Version
• Microservices
OSGi: Quali sono gli elementi chiave
D'veloping software solutions
Liferay: Old Fashoned Java.. Revamped!www.d-vel.com
Software Modularity, microservices ed headless platform all in one!
Perché sia valido, un modulo deve avere uno unique identifier.
Module Name + Module Version
Ad esempio: it.dvel.my.module,1.0.1
Questo significa che possiamo rilasciare differenti versioni dello
stesso modulo!
Naming convention di un modulo
D'veloping software solutions
Liferay: Old Fashoned Java.. Revamped!www.d-vel.com
Software Modularity, microservices ed headless platform all in one!
• Le API definiscono un contratto
• 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.
OSGi: Semantic Versioning
D'veloping software solutions
Liferay: Old Fashoned Java.. Revamped!www.d-vel.com
Software Modularity, microservices ed headless platform all in one!
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à.
Cos'è un componente?
D'veloping software solutions
Liferay: Old Fashoned Java.. Revamped!www.d-vel.com
Software Modularity, microservices ed headless platform all in one!
• 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
Componenti e Liferay 7
D'veloping software solutions
Liferay: Old Fashoned Java.. Revamped!www.d-vel.com
Software Modularity, microservices ed headless platform all in one!
• 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
D'veloping software solutions
Liferay: Old Fashoned Java.. Revamped!www.d-vel.com
Software Modularity, microservices ed headless platform all in one!
• 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
D'veloping software solutions
Liferay: Old Fashoned Java.. Revamped!www.d-vel.com
Software Modularity, microservices ed headless platform all in one!
• 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
OSGi: i Services
Liferay: Old Fashoned Java.. Revamped!
D'veloping software solutions
www.d-vel.com
Software Modularity, microservices ed headless platform all in one!
Summary
Liferay: i vantaggi di un framework potentissimo
OSGi Software modularity e semantic versioning
Microservices via Service Builder
GraphQL: il "one size fits all" dei servizi REST
Headless Platform, per mettere tutto insieme!
Liferay: Old Fashoned Java.. Revamped!
D'veloping software solutions
www.d-vel.com
Software Modularity, microservices ed headless platform all in one!
Summary
Liferay: i vantaggi di un framework potentissimo
OSGi Software modularity e semantic versioning
Microservices via Service Builder
GraphQL: il "one size fits all" dei servizi REST
Headless Platform, per mettere tutto insieme!
Liferay: Old Fashoned Java.. Revamped!
D'veloping software solutions
www.d-vel.com
Software Modularity, microservices ed headless platform all in one!
Summary
Liferay: i vantaggi di un framework potentissimo
OSGi Software modularity e semantic versioning
Microservices via Service Builder
GraphQL: il "one size fits all" dei servizi REST
Headless Platform, per mettere tutto insieme!

More Related Content

Similar to Software modularity, microservices ed headless platform all in one. Liferay: old fashioned java.. Revamped!

Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoWorkshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoGabriele Gaggi
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDaniele Mondello
 
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platformAngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platformGabriele Gaggi
 
Meetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web AppMeetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web Appdotnetcode
 
Meetup Progressive Web App
Meetup Progressive Web AppMeetup Progressive Web App
Meetup Progressive Web Appdotnetcode
 
Smau milano 2012 arena social media davide-senatore
Smau milano 2012   arena social media davide-senatoreSmau milano 2012   arena social media davide-senatore
Smau milano 2012 arena social media davide-senatoreSMAU
 
.NET Microservices
.NET Microservices.NET Microservices
.NET MicroservicesLuca Congiu
 
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
 
API Transformation in Crédit Agricole Italia
API Transformation in Crédit Agricole ItaliaAPI Transformation in Crédit Agricole Italia
API Transformation in Crédit Agricole ItaliaProfesia Srl, Lynx Group
 
MySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQLMySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQLPar-Tec S.p.A.
 
Dalla virtualizzazione al private cloud: Il Patronato INCA rinnova la fiducia...
Dalla virtualizzazione al private cloud: Il Patronato INCA rinnova la fiducia...Dalla virtualizzazione al private cloud: Il Patronato INCA rinnova la fiducia...
Dalla virtualizzazione al private cloud: Il Patronato INCA rinnova la fiducia...Babel
 
Virtualizzazione, cluster, J2EE: best practices tutte da rivedere?
Virtualizzazione, cluster, J2EE: best practices tutte da rivedere?Virtualizzazione, cluster, J2EE: best practices tutte da rivedere?
Virtualizzazione, cluster, J2EE: best practices tutte da rivedere?fcrippa
 
Implementazione di una soluzione a microservizi: benifici organizzativi ed ec...
Implementazione di una soluzione a microservizi: benifici organizzativi ed ec...Implementazione di una soluzione a microservizi: benifici organizzativi ed ec...
Implementazione di una soluzione a microservizi: benifici organizzativi ed ec...italianaSoftware
 
RIA: Rich Internet Applications. Interfacce utente avanzate per applicazioni ...
RIA: Rich Internet Applications. Interfacce utente avanzate per applicazioni ...RIA: Rich Internet Applications. Interfacce utente avanzate per applicazioni ...
RIA: Rich Internet Applications. Interfacce utente avanzate per applicazioni ...EvolutionBook S.r.l.
 
Caso di successo: Gruppo Zucchetti e Micro Focus
Caso di successo: Gruppo Zucchetti e Micro FocusCaso di successo: Gruppo Zucchetti e Micro Focus
Caso di successo: Gruppo Zucchetti e Micro FocusMicrofocusitalia
 
IBM Softwareland 2008 - Rational
IBM Softwareland 2008 - RationalIBM Softwareland 2008 - Rational
IBM Softwareland 2008 - Rationalfedericobotti
 
Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...
Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...
Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...Codemotion
 
Android - Programmazione Avanzata
Android -  Programmazione AvanzataAndroid -  Programmazione Avanzata
Android - Programmazione AvanzataStefano Sanna
 

Similar to Software modularity, microservices ed headless platform all in one. Liferay: old fashioned java.. Revamped! (20)

Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoWorkshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele Mondello
 
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platformAngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
 
Meetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web AppMeetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web App
 
Meetup Progressive Web App
Meetup Progressive Web AppMeetup Progressive Web App
Meetup Progressive Web App
 
Smau milano 2012 arena social media davide-senatore
Smau milano 2012   arena social media davide-senatoreSmau milano 2012   arena social media davide-senatore
Smau milano 2012 arena social media davide-senatore
 
.NET Microservices
.NET Microservices.NET Microservices
.NET Microservices
 
Presentazione Unibo
Presentazione UniboPresentazione Unibo
Presentazione Unibo
 
e-SUAP - General software architecture (Italiano)
e-SUAP - General software architecture (Italiano)e-SUAP - General software architecture (Italiano)
e-SUAP - General software architecture (Italiano)
 
API Transformation in Crédit Agricole Italia
API Transformation in Crédit Agricole ItaliaAPI Transformation in Crédit Agricole Italia
API Transformation in Crédit Agricole Italia
 
PMS Modernizzazione_5250
PMS Modernizzazione_5250PMS Modernizzazione_5250
PMS Modernizzazione_5250
 
MySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQLMySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQL
 
Dalla virtualizzazione al private cloud: Il Patronato INCA rinnova la fiducia...
Dalla virtualizzazione al private cloud: Il Patronato INCA rinnova la fiducia...Dalla virtualizzazione al private cloud: Il Patronato INCA rinnova la fiducia...
Dalla virtualizzazione al private cloud: Il Patronato INCA rinnova la fiducia...
 
Virtualizzazione, cluster, J2EE: best practices tutte da rivedere?
Virtualizzazione, cluster, J2EE: best practices tutte da rivedere?Virtualizzazione, cluster, J2EE: best practices tutte da rivedere?
Virtualizzazione, cluster, J2EE: best practices tutte da rivedere?
 
Implementazione di una soluzione a microservizi: benifici organizzativi ed ec...
Implementazione di una soluzione a microservizi: benifici organizzativi ed ec...Implementazione di una soluzione a microservizi: benifici organizzativi ed ec...
Implementazione di una soluzione a microservizi: benifici organizzativi ed ec...
 
RIA: Rich Internet Applications. Interfacce utente avanzate per applicazioni ...
RIA: Rich Internet Applications. Interfacce utente avanzate per applicazioni ...RIA: Rich Internet Applications. Interfacce utente avanzate per applicazioni ...
RIA: Rich Internet Applications. Interfacce utente avanzate per applicazioni ...
 
Caso di successo: Gruppo Zucchetti e Micro Focus
Caso di successo: Gruppo Zucchetti e Micro FocusCaso di successo: Gruppo Zucchetti e Micro Focus
Caso di successo: Gruppo Zucchetti e Micro Focus
 
IBM Softwareland 2008 - Rational
IBM Softwareland 2008 - RationalIBM Softwareland 2008 - Rational
IBM Softwareland 2008 - Rational
 
Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...
Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...
Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...
 
Android - Programmazione Avanzata
Android -  Programmazione AvanzataAndroid -  Programmazione Avanzata
Android - Programmazione Avanzata
 

More from Commit University

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
 
Breaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdf
Breaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdfBreaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdf
Breaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdfCommit University
 
Accelerating API Development: A Pit Stop with Gin-Gonic in Golang-Slide.pdf
Accelerating API Development: A Pit Stop with Gin-Gonic in Golang-Slide.pdfAccelerating API Development: A Pit Stop with Gin-Gonic in Golang-Slide.pdf
Accelerating API Development: A Pit Stop with Gin-Gonic in Golang-Slide.pdfCommit University
 
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...Commit University
 
Commit - Qwik il framework che ti stupirà.pptx
Commit - Qwik il framework che ti stupirà.pptxCommit - Qwik il framework che ti stupirà.pptx
Commit - Qwik il framework che ti stupirà.pptxCommit University
 
Sviluppare da zero una Angular Web App per la PA
Sviluppare da zero una Angular Web App per la PASviluppare da zero una Angular Web App per la PA
Sviluppare da zero una Angular Web App per la PACommit University
 
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...Commit University
 
Prisma the ORM that node was waiting for
Prisma the ORM that node was waiting forPrisma the ORM that node was waiting for
Prisma the ORM that node was waiting forCommit University
 
Decision-making for Software Development Teams - Commit University
Decision-making for Software Development Teams - Commit UniversityDecision-making for Software Development Teams - Commit University
Decision-making for Software Development Teams - Commit UniversityCommit University
 
Component Design Pattern nei Game Engine.pdf
Component Design Pattern nei Game Engine.pdfComponent Design Pattern nei Game Engine.pdf
Component Design Pattern nei Game Engine.pdfCommit University
 
Un viaggio alla scoperta dei Language Models e dell’intelligenza artificiale ...
Un viaggio alla scoperta dei Language Models e dell’intelligenza artificiale ...Un viaggio alla scoperta dei Language Models e dell’intelligenza artificiale ...
Un viaggio alla scoperta dei Language Models e dell’intelligenza artificiale ...Commit University
 
Prototipazione Low-Code con AWS Step Functions
Prototipazione Low-Code con AWS Step FunctionsPrototipazione Low-Code con AWS Step Functions
Prototipazione Low-Code con AWS Step FunctionsCommit University
 
KMM survival guide: how to tackle struggles between Kotlin and Swift
KMM survival guide: how to tackle struggles between Kotlin and SwiftKMM survival guide: how to tackle struggles between Kotlin and Swift
KMM survival guide: how to tackle struggles between Kotlin and SwiftCommit University
 
Da Vuex a Pinia: come fare la migrazione
Da Vuex a Pinia: come fare la migrazioneDa Vuex a Pinia: come fare la migrazione
Da Vuex a Pinia: come fare la migrazioneCommit University
 
Orchestrare Micro-frontend con micro-lc
Orchestrare Micro-frontend con micro-lcOrchestrare Micro-frontend con micro-lc
Orchestrare Micro-frontend con micro-lcCommit University
 
Fastify has defeated Lagacy-Code
Fastify has defeated Lagacy-CodeFastify has defeated Lagacy-Code
Fastify has defeated Lagacy-CodeCommit University
 

More from Commit University (20)

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
 
Breaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdf
Breaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdfBreaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdf
Breaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdf
 
Accelerating API Development: A Pit Stop with Gin-Gonic in Golang-Slide.pdf
Accelerating API Development: A Pit Stop with Gin-Gonic in Golang-Slide.pdfAccelerating API Development: A Pit Stop with Gin-Gonic in Golang-Slide.pdf
Accelerating API Development: A Pit Stop with Gin-Gonic in Golang-Slide.pdf
 
Slide-10years.pdf
Slide-10years.pdfSlide-10years.pdf
Slide-10years.pdf
 
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
 
Vue.js slots.pdf
Vue.js slots.pdfVue.js slots.pdf
Vue.js slots.pdf
 
Commit - Qwik il framework che ti stupirà.pptx
Commit - Qwik il framework che ti stupirà.pptxCommit - Qwik il framework che ti stupirà.pptx
Commit - Qwik il framework che ti stupirà.pptx
 
Sviluppare da zero una Angular Web App per la PA
Sviluppare da zero una Angular Web App per la PASviluppare da zero una Angular Web App per la PA
Sviluppare da zero una Angular Web App per la PA
 
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
 
Prisma the ORM that node was waiting for
Prisma the ORM that node was waiting forPrisma the ORM that node was waiting for
Prisma the ORM that node was waiting for
 
Decision-making for Software Development Teams - Commit University
Decision-making for Software Development Teams - Commit UniversityDecision-making for Software Development Teams - Commit University
Decision-making for Software Development Teams - Commit University
 
Component Design Pattern nei Game Engine.pdf
Component Design Pattern nei Game Engine.pdfComponent Design Pattern nei Game Engine.pdf
Component Design Pattern nei Game Engine.pdf
 
Un viaggio alla scoperta dei Language Models e dell’intelligenza artificiale ...
Un viaggio alla scoperta dei Language Models e dell’intelligenza artificiale ...Un viaggio alla scoperta dei Language Models e dell’intelligenza artificiale ...
Un viaggio alla scoperta dei Language Models e dell’intelligenza artificiale ...
 
Prototipazione Low-Code con AWS Step Functions
Prototipazione Low-Code con AWS Step FunctionsPrototipazione Low-Code con AWS Step Functions
Prototipazione Low-Code con AWS Step Functions
 
KMM survival guide: how to tackle struggles between Kotlin and Swift
KMM survival guide: how to tackle struggles between Kotlin and SwiftKMM survival guide: how to tackle struggles between Kotlin and Swift
KMM survival guide: how to tackle struggles between Kotlin and Swift
 
Da Vuex a Pinia: come fare la migrazione
Da Vuex a Pinia: come fare la migrazioneDa Vuex a Pinia: come fare la migrazione
Da Vuex a Pinia: come fare la migrazione
 
Orchestrare Micro-frontend con micro-lc
Orchestrare Micro-frontend con micro-lcOrchestrare Micro-frontend con micro-lc
Orchestrare Micro-frontend con micro-lc
 
Fastify has defeated Lagacy-Code
Fastify has defeated Lagacy-CodeFastify has defeated Lagacy-Code
Fastify has defeated Lagacy-Code
 
SwiftUI vs UIKit
SwiftUI vs UIKitSwiftUI vs UIKit
SwiftUI vs UIKit
 

Software modularity, microservices ed headless platform all in one. Liferay: old fashioned java.. Revamped!

  • 1. D'veloping software solutions www.d-vel.com D’vel snc - presentazione di Jader Francia
  • 2.
  • 3. D'veloping software solutions Chi sono Digital entrepreneur, software developer enthusiastic, friendly and curious! :) Also a dad, an husband & more other things.. :) Twitter: @JedJds jader.francia@d-vel.com Phone: 338 78 76 587
  • 4. Liferay: Old Fashoned Java.. Revamped! D'veloping software solutions www.d-vel.com Software Modularity, microservices ed headless platform all in one! Summary Liferay: i vantaggi di un framework potentissimo OSGi Software modularity e semantic versioning Microservices via Service Builder GraphQL: il "one size fits all" dei servizi REST Headless Platform, per mettere tutto insieme!
  • 5. D'veloping software solutions Liferay: Old Fashoned Java.. Revamped!www.d-vel.com Software Modularity, microservices ed headless platform all in one! • Liferay è leader per il decimo anno nel Quadrante Magico di Gartner per le Piattaforme di Esperienza Digitale 2020 • Liferay has a good understanding of the DXP market. Its product strategy and packaging suit customer, partner and employee experience use cases. • Customers benefit from Liferay’s active open-source community, which continuously contributes to the codebase and encourages use of the open-source version. • Liferay offers strong capabilities for extensibility and application integration, which appeals to IT buyers. Perché Liferay?
  • 6. D'veloping software solutions Liferay: Old Fashoned Java.. Revamped!www.d-vel.com Software Modularity, microservices ed headless platform all in one! - Multi tenancy (multi istanza E multi sito) - Gestione Utenze - Gestione Ruoli - Gestione Gruppi - CMS ed Experience Designer - ... un sacco di robe fighe per quelli del business! Cosa mi offre OOTB
  • 7. D'veloping software solutions Liferay: Old Fashoned Java.. Revamped!www.d-vel.com Software Modularity, microservices ed headless platform all in one! - un potentissimo framework applicativo; - tutte le tecnologie per l'ottimizzazione già inserite in architettura; - gestione delle dipendenze applicative; - software modularity; - mostruoso riuso dei componenti applicativi; - ambiente di sviluppo pensato per chi fa codice (di ogni tipo...) - nessun vincolo sulla costruzione del front end (choose your weapon...) Ma io faccio il dev.. :)
  • 8. Liferay: Old Fashoned Java.. Revamped! D'veloping software solutions www.d-vel.com Software Modularity, microservices ed headless platform all in one! Summary Liferay: i vantaggi di un framework potentissimo OSGi Software modularity e semantic versioning Microservices via Service Builder GraphQL: il "one size fits all" dei servizi REST Headless Platform, per mettere tutto insieme!
  • 9. D'veloping software solutions Liferay: Old Fashoned Java.. Revamped!www.d-vel.com Software Modularity, microservices ed headless platform all in one! OSGi (Open Service Gateway Initiative) è una specifica che permette di costruire applicazioni modulari a componenti (Bundle) e che introduce una programmazione Service Oriented, permettendo una separazione tra interfaccia ed implementazione molto più rigorosa di quella nativa Java. • Modularità • Bundle • Declarative Services • Semantic Version • Microservices OSGi: Quali sono gli elementi chiave
  • 10. D'veloping software solutions Liferay: Old Fashoned Java.. Revamped!www.d-vel.com Software Modularity, microservices ed headless platform all in one! Perché sia valido, un modulo deve avere uno unique identifier. Module Name + Module Version Ad esempio: it.dvel.my.module,1.0.1 Questo significa che possiamo rilasciare differenti versioni dello stesso modulo! Naming convention di un modulo
  • 11. D'veloping software solutions Liferay: Old Fashoned Java.. Revamped!www.d-vel.com Software Modularity, microservices ed headless platform all in one! • Le API definiscono un contratto • 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. OSGi: Semantic Versioning
  • 12. D'veloping software solutions Liferay: Old Fashoned Java.. Revamped!www.d-vel.com Software Modularity, microservices ed headless platform all in one! 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à. Cos'è un componente?
  • 13. D'veloping software solutions Liferay: Old Fashoned Java.. Revamped!www.d-vel.com Software Modularity, microservices ed headless platform all in one! • 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 Componenti e Liferay 7
  • 14. D'veloping software solutions Liferay: Old Fashoned Java.. Revamped!www.d-vel.com Software Modularity, microservices ed headless platform all in one! • 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
  • 15. D'veloping software solutions Liferay: Old Fashoned Java.. Revamped!www.d-vel.com Software Modularity, microservices ed headless platform all in one! • 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
  • 16. D'veloping software solutions Liferay: Old Fashoned Java.. Revamped!www.d-vel.com Software Modularity, microservices ed headless platform all in one! • 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 OSGi: i Services
  • 17. Liferay: Old Fashoned Java.. Revamped! D'veloping software solutions www.d-vel.com Software Modularity, microservices ed headless platform all in one! Summary Liferay: i vantaggi di un framework potentissimo OSGi Software modularity e semantic versioning Microservices via Service Builder GraphQL: il "one size fits all" dei servizi REST Headless Platform, per mettere tutto insieme!
  • 18. Liferay: Old Fashoned Java.. Revamped! D'veloping software solutions www.d-vel.com Software Modularity, microservices ed headless platform all in one! Summary Liferay: i vantaggi di un framework potentissimo OSGi Software modularity e semantic versioning Microservices via Service Builder GraphQL: il "one size fits all" dei servizi REST Headless Platform, per mettere tutto insieme!
  • 19. Liferay: Old Fashoned Java.. Revamped! D'veloping software solutions www.d-vel.com Software Modularity, microservices ed headless platform all in one! Summary Liferay: i vantaggi di un framework potentissimo OSGi Software modularity e semantic versioning Microservices via Service Builder GraphQL: il "one size fits all" dei servizi REST Headless Platform, per mettere tutto insieme!