SlideShare uma empresa Scribd logo
1 de 15
Architetture
distribuite
ENTERPRISE & SOLUTION ARCHITECT
Sistemi Distribuiti - Definizione
Alcune definizioni di Sistema Distribuito …
«Un insieme di calcolatori indipendenti che appare agli utenti ed alle applicazioni come un
singolo sistema coerente»
(Tanenbaum & van Steen)
«Un Sistema Distribuito è formato da componenti hw e sw localizzati su computer in rete che
comunicano e coordinano le loro azioni attraverso scambio di messaggi»
(Coulouris & Dollimore)
Sistemi Distribuiti - Tipologie
Nei Sistemi Distribuiti vi è la necessità di far comunicare diversi sistemi tra
loro. Ci sono due tipologie di sistemi distribuiti:
 Request / Response («Call & Return» or RPC):
 Orientati alla chiamata di sistema
 Usualmente sono di natura sincrona
 Possiedono parametri in input e output
 Il loro focus è sul definire i parametri, le operazioni e correlare le
risposte con la richiesta
 Non è un loro focus il come i diversi valori vengono raggruppati e
come vengono realizzate le risposte
 Message Passing :
 Orientati a dati
 Usualmente sono asincroni
 Messaggi sono costruiti e spediti ai destinatari
 Il loro focus è costruire i messaggi nel formato corretto, come instradarli
e a chi inviarli
 Non è un loro focus il comportamento dopo l’invio del messaggio e
un’eventuale massaggio di risposta
Request /
Response
OOA
Object
Oriented
ROA
Resource
Oriented
SOA
Services
Oriented
Messag
e
Passing
EDA
Event
Driven
SOA
Service
Oriented
(in alcuni
casi)
OOA - Object Oriented Architecture
Architettura orientata ad oggetti ha queste macro caratteristiche:
 La comunicazione avviene verso l’istanza di un oggetto
 Oggetti hanno uno stato, comportamento/azioni e un identità
 L’informazione sullo stato dell’oggetto è totalmente server-side
 La comunicazione è principalmente con stato (stateful) e in modalità sincrona
 Server sono molto complessi per permettere di utilizzare meccanismi intelligenti di gestione
degli oggetti
 Sono disegnati per minimizzare le chiamate su rete attraverso delle chiamate «bulk data»
 Usualmente usano dei protocolli non internet friendly (IIOP, DCOM or RMI)
 Usualmente richiedono passaggio per riferimento
 Marshalling / Unmarshalling degli oggetti generalmente richiede l’uso di diversi tipi di
software lato client e server
ROA - Resource Oriented Architecture
Architettura orientata alle risorse ha queste macro caratteristiche:
 La comunicazione avviene richiamando una particolare risorsa (una pagina html o una riga da
un database)
 La risorsa è identificabile attraverso un sottoinsieme di dati (nome pagina web, clausola where
sql)
 I dati sono indipendenti dal server e dal client
 Le risorse hanno uno stato (dato dal valore dei dati) e Identificate dalla URI o query utilizzata
 Il recupero di una risorsa crea uno snapshot dello stato corrente della risorsa sul client
 La copia master del dato rimane sul server. Tale copia non viene propagata automaticamente in
caso di modifica alle copie già presenti sul client. Possono essere tecniche di notifiche in
broadcasting attraverso l’uso di tecniche di publish/subscribe.
 Usualmente utilizzano meccanismi di cache per il riuso del dato
 Aggiornamento dei dati della risorsa può essere parziale o totale
ROA – REST
REST (Rapresentational State Transfer) non è un’architettura nè uno standard, ma un
insieme di linee guida per la realizzazione di una “architettura di sistema Resource
Oriented”. Per rendere un servizio secondo l’approccio REST occorre seguire i
seguenti cinque principi:
1. Identificazione delle risorse (URI ben definita)
2. Utilizzo esplicito dei metodi HTTP (GET,POST,PUT,DELETE) per uniformare le
interfacce
3. Risorse autodescrittive all’interno della risposta HTTP (XML,Json,Atom,etc..)
4. Collegamenti tra risorse tramite link ipertestuali
5. Comunicazione senza stato (ciascuna richiesta non ha alcuna relazione con le
richieste precedenti e successive. E’ possibile però trasformare uno stato in una
risorsa rest in modo da ottenere dei stati ad-hoc)
SOA - Service Oriented Architecture
Una Service-Oriented Architecture è un modello architetturale
concettuale che non fa riferimento a nessuna particolare
implementazione, ma definisce alcune proprietà, orientate al
riutilizzo e all’integrazione in un ambiente eterogeneo di Sistemi,
focalizzando l’attenzione sul concetto di servizio. Ogni servizio
mette a disposizione una certa funzionalità e può utilizzare
quelle che gli altri servizi hanno reso disponibile, realizzando, in
questo modo, applicazioni di maggiore complessità.
Un sistema costruito seguendo la filosofia SOA è costituito da
applicazioni e chiamate servizi ben definite ed indipendenti l’una
dall’altra, che risiedono su più computer all’interno di una rete.
L’Architettura SOA è un Enterprise Architect poiché si riferisce a
tutti i sistemi e applicazioni di un’organizzazione.
SISTEMA
Applicazione
as SERVIZIO
Applicazione
as SERVIZIO
Applicazione
as SERVIZIO
Hardware Hardware
SISTEMA SISTEMA SISTEMA
SOA - Service Oriented Architecture
Un Servizio dovrà essere:
 Ricercabile e recuperabile dinamicamente
 Autocontenuto e modulare, ossia indipendente dal contesto o dallo stato di altri servizi rendendolo di fatto facilmente
distribuibile e scalabile
 Definito da un Interfaccia e indipendente dalla sua implementazione
 Debolmente accoppiato con altri servizi in modo da renderlo facilmente flessibile e facilmente modificabile
 Pubblicamente accessibile attraverso la pubblicazione della sua interfaccia (in un Service Directory o Service Registry) ed
accessibile in modo trasparente rispetto alla sua allocazione  è ben definita la location
 Riutilizzabile in altri servizi creando servizi più complessi (Service Orchestration) attraverso lo scambio di messaggi adoperando
un formato standard ampiamente riconosciuto (Platform Neutral). Per ottenere questo obiettivo, i servizi dovrebbero fornire
delle interfacce a grana grossa (coarse-grained) ossia con poche funzionalità basilari.
 Senza stato
Ad oggi, l’Architettura SOA viene implementata attraverso la Web Service Architecture.
Web Services – Che cos’è?
Nel 1998 seguendo la strada tracciata da XML prende forma il concetto di Web
Services. Ma cosa è un web service?
Un Web Service è un servizio (applicazione modulare) ben descritto, pubblicato,
individuato ed utilizzato attraverso il web. Esso realizza delle funzioni, che
spaziano da una semplice richiesta di informazioni ad un complicato processo
commerciale.
Il loro scopo è quello di avere un approccio che realizza completamente ciò a cui
aspira la distributed computing: un modo flessibile ed economicamente
vantaggioso di sfruttare tutte le capacità e le risorse della distributed computing,
sia internamente sia esternamente e nella maniera più efficiente possibile – senza
preoccupazioni per il tipo di applicazioni o sistemi operativi coinvolti.
SOA - Web Service Architecture
E’ assolutamente essenziale che gli standard nell’area dei Web Services
siano ovunque gli stessi. Senza l’accordo dell’industria di tutto il mondo
sugli standard della tecnologia sottostante ai Web Services, la
promessa della neutralità delle piattaforme e della compatibilità
universale di sistemi eterogenei non può semplicemente essere
mantenuta. Per questo la Web Service Architecture ha definito le
tecnologie da utilizzare:
 SOAP per l’accesso e fruizione dei servizi remoti e distribuiti (RPC)
 WSDL per la descrizione dei servizi
 XML per definire il formato dei dati
 HTTP come protocollo di comunicazione
 UDDI per il catalogo dei servizi
Ciò non vuol dire che non si possano utilizzare altri standard di
riferimento a supporto o in sostituzione.
Web Services
WSDL
SOAP
XML
HTTP
Eda - Event-driven Architecture
Un‘Architettura Event-Driven si basa sul comportamento attorno
alla produzione, la rilevazione e il consumo di eventi.
Un evento è una qualsiasi occorrenza identificabile che ha un
significato per l'hardware o per il software.
L’Architettura si basa su due attori principali che utilizzano un BUS
comune di comunicazione chiamato Event Bus:
 Event Producer, è il creatore dell'evento, sa che si è verificato
l'evento
 Event Consumer sono entità che hanno bisogno di conoscere
quando accade un’evento; essi possono essere coinvolti
nell'elaborazione dell'evento o possono semplicemente
essere colpiti dall'evento stesso.
A volte, per semplificare la comunicazione tra i due attori viene
utilizzato l’Event Manager. Esso riceve la notifica di un evento da
un Event Producer ed inoltra l'evento a tutti i consumatori
collegati.
Event
Producer
Event
Producer
Event
Producer
Event
Consumer
Event
Consumer
Event
Consumer
Event BUS
Architettura a Micro servizi
E’ bene osservare che i micro servizi sono ancora un argomento in rapido
movimento, ma possiamo darne una definizione preliminare :
«Architettura a micro servizi è uno stile architetturale per lo sviluppo di una
singola applicazione come un insieme di micro servizi. I micro servizi sono dei
servizi piccoli e autonomi, eseguiti come processi distinti, che lavorano insieme
comunicando mediante meccanismi leggeri»
L’Architettura a Micro servizi è un Application Architecture, poiché si riferisce alla
singola applicazione (a differenza della SOA).
Architettura a Micro servizi
Basandoci sul fatto che ogni applicativo è composto da moduli, componenti o librerie in
maniera monolitica, l’Architettura a micro servizi si pone come obiettivo quello di trasformarli
in micro servizi dipendenti tra loro attraverso lo scambio di messaggi in maniera semplice e
veloce.
MAIN
LIB A LIB B
Main
Micro Service
A
Micro Service
B
Applicativo Monolitico Applicativo Micro Servizi
DB A+B DB A DB B
Architettura a Micro servizi
La scomposizione dei vari componenti in micro servizi porta diversi vantaggi:
 Riusabilità: le componenti trasformate in micro servizi possono essere utilizzate da diversi
applicativi
 Scalabilità: vengono replicati e bilanciati i soli micro servizi che necessitano
 Deployment: può essere realizzato sia su una stessa macchina che su macchine differenti
 Cloud : I microservizi sono il modo nuovo e ideale per affrontare lo sviluppo di applicativi
orientati nativamente al cloud computing
Contact – Giampiero Cerroni
giampiero19
gcerroni@gmail.com
linkedin.com/in/giampierocerroni
+ 39 3332250803

Mais conteúdo relacionado

Destaque

Human resource information system HIRS
Human resource information system HIRSHuman resource information system HIRS
Human resource information system HIRSDavid Jaison
 
Fines y medios
Fines y medios Fines y medios
Fines y medios anamedinar
 
Encofrando su mesa de cocina y sillas conjunto
Encofrando su mesa de cocina y sillas conjuntoEncofrando su mesa de cocina y sillas conjunto
Encofrando su mesa de cocina y sillas conjuntoDakota Brodie
 
Philosophy of lending stie asu gudhiken
Philosophy of lending stie  asu gudhikenPhilosophy of lending stie  asu gudhiken
Philosophy of lending stie asu gudhikenabdmo
 
Manajemen perkreditan bank kualitas kredit perbanas
Manajemen perkreditan bank kualitas kredit perbanasManajemen perkreditan bank kualitas kredit perbanas
Manajemen perkreditan bank kualitas kredit perbanasabdmo
 
Solution de gestion de paie : PAYOHR
Solution de gestion de paie : PAYOHRSolution de gestion de paie : PAYOHR
Solution de gestion de paie : PAYOHRsenejug
 
Proactive Year-end Financial and Tax Planning Strategies
Proactive Year-end Financial and Tax Planning StrategiesProactive Year-end Financial and Tax Planning Strategies
Proactive Year-end Financial and Tax Planning StrategiesAICPA
 
Understanding the Net Investment Income Tax
Understanding the Net Investment Income TaxUnderstanding the Net Investment Income Tax
Understanding the Net Investment Income TaxAICPA
 
Bab 10 manajemen risiko
Bab 10 manajemen risikoBab 10 manajemen risiko
Bab 10 manajemen risikoelfiraeviana
 
Balance of paymment - BOP
Balance of paymment - BOPBalance of paymment - BOP
Balance of paymment - BOPDavid Jaison
 
Testing dan implementasi_sistem_-_romeo
Testing dan implementasi_sistem_-_romeoTesting dan implementasi_sistem_-_romeo
Testing dan implementasi_sistem_-_romeoAbrianto Nugraha
 
Attachment and bonding COURSE 1 b.ed notes
Attachment and bonding  COURSE 1   b.ed notesAttachment and bonding  COURSE 1   b.ed notes
Attachment and bonding COURSE 1 b.ed notesNamrata Saxena
 

Destaque (13)

Human resource information system HIRS
Human resource information system HIRSHuman resource information system HIRS
Human resource information system HIRS
 
Fines y medios
Fines y medios Fines y medios
Fines y medios
 
Encofrando su mesa de cocina y sillas conjunto
Encofrando su mesa de cocina y sillas conjuntoEncofrando su mesa de cocina y sillas conjunto
Encofrando su mesa de cocina y sillas conjunto
 
Philosophy of lending stie asu gudhiken
Philosophy of lending stie  asu gudhikenPhilosophy of lending stie  asu gudhiken
Philosophy of lending stie asu gudhiken
 
Manajemen perkreditan bank kualitas kredit perbanas
Manajemen perkreditan bank kualitas kredit perbanasManajemen perkreditan bank kualitas kredit perbanas
Manajemen perkreditan bank kualitas kredit perbanas
 
Solution de gestion de paie : PAYOHR
Solution de gestion de paie : PAYOHRSolution de gestion de paie : PAYOHR
Solution de gestion de paie : PAYOHR
 
Proactive Year-end Financial and Tax Planning Strategies
Proactive Year-end Financial and Tax Planning StrategiesProactive Year-end Financial and Tax Planning Strategies
Proactive Year-end Financial and Tax Planning Strategies
 
Understanding the Net Investment Income Tax
Understanding the Net Investment Income TaxUnderstanding the Net Investment Income Tax
Understanding the Net Investment Income Tax
 
Bab 10 manajemen risiko
Bab 10 manajemen risikoBab 10 manajemen risiko
Bab 10 manajemen risiko
 
Balance of paymment - BOP
Balance of paymment - BOPBalance of paymment - BOP
Balance of paymment - BOP
 
Testing dan implementasi_sistem_-_romeo
Testing dan implementasi_sistem_-_romeoTesting dan implementasi_sistem_-_romeo
Testing dan implementasi_sistem_-_romeo
 
Attachment and bonding COURSE 1 b.ed notes
Attachment and bonding  COURSE 1   b.ed notesAttachment and bonding  COURSE 1   b.ed notes
Attachment and bonding COURSE 1 b.ed notes
 
Presentasi sistem informasi akuntansi pada apotek kimia farma
Presentasi sistem informasi akuntansi pada apotek kimia farmaPresentasi sistem informasi akuntansi pada apotek kimia farma
Presentasi sistem informasi akuntansi pada apotek kimia farma
 

Semelhante a Architetture.Distribuite

Il mercato SOA: futuro e prospettive
Il mercato SOA: futuro e prospettiveIl mercato SOA: futuro e prospettive
Il mercato SOA: futuro e prospettiveEmanuele Della Valle
 
Paper presentazione social media
Paper presentazione social mediaPaper presentazione social media
Paper presentazione social mediaalessioemireni
 
Microservices architecture & Service Fabric
Microservices architecture & Service FabricMicroservices architecture & Service Fabric
Microservices architecture & Service FabricMassimo Bonanni
 
Sinibaldi soa-28.02.2008
Sinibaldi soa-28.02.2008Sinibaldi soa-28.02.2008
Sinibaldi soa-28.02.2008sinibaldi
 
.NET Microservices
.NET Microservices.NET Microservices
.NET MicroservicesLuca Congiu
 
E suap - cloud computing (Italian)
E suap - cloud computing (Italian)E suap - cloud computing (Italian)
E suap - cloud computing (Italian)Sabino Labarile
 
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
 
Rendere flessibili e trasformare architetture IT di vecchio tipo: passaggio d...
Rendere flessibili e trasformare architetture IT di vecchio tipo:passaggio d...Rendere flessibili e trasformare architetture IT di vecchio tipo:passaggio d...
Rendere flessibili e trasformare architetture IT di vecchio tipo: passaggio d...Emanuele Della Valle
 
Cloud Computing: La nuvola intelligente 2015
Cloud Computing: La nuvola intelligente 2015Cloud Computing: La nuvola intelligente 2015
Cloud Computing: La nuvola intelligente 2015Lorenzo Carnevale
 
Microservices power by unikernels
Microservices power by unikernelsMicroservices power by unikernels
Microservices power by unikernelsGabriele Baldoni
 
Il Cloud Computing
Il Cloud ComputingIl Cloud Computing
Il Cloud Computingzambe92
 
Cloud computing e sistema operativo linux
Cloud computing e sistema operativo linuxCloud computing e sistema operativo linux
Cloud computing e sistema operativo linuxChervina_Alina
 
Lezione 5 del 14 febbraio 2012 - CLOUD COMPUTING parte 2a
Lezione 5 del 14 febbraio 2012 - CLOUD COMPUTING parte 2aLezione 5 del 14 febbraio 2012 - CLOUD COMPUTING parte 2a
Lezione 5 del 14 febbraio 2012 - CLOUD COMPUTING parte 2aGianluigi Cogo
 
Service Registry Repository Opensource implementato su Semantic Media Wiki
Service Registry Repository Opensource implementato su Semantic Media WikiService Registry Repository Opensource implementato su Semantic Media Wiki
Service Registry Repository Opensource implementato su Semantic Media WikiMatteo Busanelli
 
Aws (amazon web services) - Slide
Aws (amazon web services) - SlideAws (amazon web services) - Slide
Aws (amazon web services) - Slidealessioemireni
 
Workshop su "Private Cloud e Virtualizzazione" - Pordenone - 09-12-2013
Workshop su "Private Cloud e Virtualizzazione" - Pordenone -  09-12-2013Workshop su "Private Cloud e Virtualizzazione" - Pordenone -  09-12-2013
Workshop su "Private Cloud e Virtualizzazione" - Pordenone - 09-12-2013ConsulPartner iSrl
 

Semelhante a Architetture.Distribuite (20)

Parliamo di SOA
Parliamo di SOAParliamo di SOA
Parliamo di SOA
 
Il mercato SOA: futuro e prospettive
Il mercato SOA: futuro e prospettiveIl mercato SOA: futuro e prospettive
Il mercato SOA: futuro e prospettive
 
Paper presentazione social media
Paper presentazione social mediaPaper presentazione social media
Paper presentazione social media
 
Microservices architecture & Service Fabric
Microservices architecture & Service FabricMicroservices architecture & Service Fabric
Microservices architecture & Service Fabric
 
Sinibaldi soa-28.02.2008
Sinibaldi soa-28.02.2008Sinibaldi soa-28.02.2008
Sinibaldi soa-28.02.2008
 
.NET Microservices
.NET Microservices.NET Microservices
.NET Microservices
 
E suap - cloud computing (Italian)
E suap - cloud computing (Italian)E suap - cloud computing (Italian)
E suap - cloud computing (Italian)
 
e-SUAP - General software architecture (Italiano)
e-SUAP - General software architecture (Italiano)e-SUAP - General software architecture (Italiano)
e-SUAP - General software architecture (Italiano)
 
SOA wonderful World
SOA wonderful WorldSOA wonderful World
SOA wonderful World
 
Rendere flessibili e trasformare architetture IT di vecchio tipo: passaggio d...
Rendere flessibili e trasformare architetture IT di vecchio tipo:passaggio d...Rendere flessibili e trasformare architetture IT di vecchio tipo:passaggio d...
Rendere flessibili e trasformare architetture IT di vecchio tipo: passaggio d...
 
Cloud Computing: La nuvola intelligente 2015
Cloud Computing: La nuvola intelligente 2015Cloud Computing: La nuvola intelligente 2015
Cloud Computing: La nuvola intelligente 2015
 
Corso di servlet jsp e pattern
Corso di servlet jsp e patternCorso di servlet jsp e pattern
Corso di servlet jsp e pattern
 
Microservices power by unikernels
Microservices power by unikernelsMicroservices power by unikernels
Microservices power by unikernels
 
Il Cloud Computing
Il Cloud ComputingIl Cloud Computing
Il Cloud Computing
 
Che cosa sono i microservizi?
Che cosa sono i microservizi?Che cosa sono i microservizi?
Che cosa sono i microservizi?
 
Cloud computing e sistema operativo linux
Cloud computing e sistema operativo linuxCloud computing e sistema operativo linux
Cloud computing e sistema operativo linux
 
Lezione 5 del 14 febbraio 2012 - CLOUD COMPUTING parte 2a
Lezione 5 del 14 febbraio 2012 - CLOUD COMPUTING parte 2aLezione 5 del 14 febbraio 2012 - CLOUD COMPUTING parte 2a
Lezione 5 del 14 febbraio 2012 - CLOUD COMPUTING parte 2a
 
Service Registry Repository Opensource implementato su Semantic Media Wiki
Service Registry Repository Opensource implementato su Semantic Media WikiService Registry Repository Opensource implementato su Semantic Media Wiki
Service Registry Repository Opensource implementato su Semantic Media Wiki
 
Aws (amazon web services) - Slide
Aws (amazon web services) - SlideAws (amazon web services) - Slide
Aws (amazon web services) - Slide
 
Workshop su "Private Cloud e Virtualizzazione" - Pordenone - 09-12-2013
Workshop su "Private Cloud e Virtualizzazione" - Pordenone -  09-12-2013Workshop su "Private Cloud e Virtualizzazione" - Pordenone -  09-12-2013
Workshop su "Private Cloud e Virtualizzazione" - Pordenone - 09-12-2013
 

Architetture.Distribuite

  • 2. Sistemi Distribuiti - Definizione Alcune definizioni di Sistema Distribuito … «Un insieme di calcolatori indipendenti che appare agli utenti ed alle applicazioni come un singolo sistema coerente» (Tanenbaum & van Steen) «Un Sistema Distribuito è formato da componenti hw e sw localizzati su computer in rete che comunicano e coordinano le loro azioni attraverso scambio di messaggi» (Coulouris & Dollimore)
  • 3. Sistemi Distribuiti - Tipologie Nei Sistemi Distribuiti vi è la necessità di far comunicare diversi sistemi tra loro. Ci sono due tipologie di sistemi distribuiti:  Request / Response («Call & Return» or RPC):  Orientati alla chiamata di sistema  Usualmente sono di natura sincrona  Possiedono parametri in input e output  Il loro focus è sul definire i parametri, le operazioni e correlare le risposte con la richiesta  Non è un loro focus il come i diversi valori vengono raggruppati e come vengono realizzate le risposte  Message Passing :  Orientati a dati  Usualmente sono asincroni  Messaggi sono costruiti e spediti ai destinatari  Il loro focus è costruire i messaggi nel formato corretto, come instradarli e a chi inviarli  Non è un loro focus il comportamento dopo l’invio del messaggio e un’eventuale massaggio di risposta Request / Response OOA Object Oriented ROA Resource Oriented SOA Services Oriented Messag e Passing EDA Event Driven SOA Service Oriented (in alcuni casi)
  • 4. OOA - Object Oriented Architecture Architettura orientata ad oggetti ha queste macro caratteristiche:  La comunicazione avviene verso l’istanza di un oggetto  Oggetti hanno uno stato, comportamento/azioni e un identità  L’informazione sullo stato dell’oggetto è totalmente server-side  La comunicazione è principalmente con stato (stateful) e in modalità sincrona  Server sono molto complessi per permettere di utilizzare meccanismi intelligenti di gestione degli oggetti  Sono disegnati per minimizzare le chiamate su rete attraverso delle chiamate «bulk data»  Usualmente usano dei protocolli non internet friendly (IIOP, DCOM or RMI)  Usualmente richiedono passaggio per riferimento  Marshalling / Unmarshalling degli oggetti generalmente richiede l’uso di diversi tipi di software lato client e server
  • 5. ROA - Resource Oriented Architecture Architettura orientata alle risorse ha queste macro caratteristiche:  La comunicazione avviene richiamando una particolare risorsa (una pagina html o una riga da un database)  La risorsa è identificabile attraverso un sottoinsieme di dati (nome pagina web, clausola where sql)  I dati sono indipendenti dal server e dal client  Le risorse hanno uno stato (dato dal valore dei dati) e Identificate dalla URI o query utilizzata  Il recupero di una risorsa crea uno snapshot dello stato corrente della risorsa sul client  La copia master del dato rimane sul server. Tale copia non viene propagata automaticamente in caso di modifica alle copie già presenti sul client. Possono essere tecniche di notifiche in broadcasting attraverso l’uso di tecniche di publish/subscribe.  Usualmente utilizzano meccanismi di cache per il riuso del dato  Aggiornamento dei dati della risorsa può essere parziale o totale
  • 6. ROA – REST REST (Rapresentational State Transfer) non è un’architettura nè uno standard, ma un insieme di linee guida per la realizzazione di una “architettura di sistema Resource Oriented”. Per rendere un servizio secondo l’approccio REST occorre seguire i seguenti cinque principi: 1. Identificazione delle risorse (URI ben definita) 2. Utilizzo esplicito dei metodi HTTP (GET,POST,PUT,DELETE) per uniformare le interfacce 3. Risorse autodescrittive all’interno della risposta HTTP (XML,Json,Atom,etc..) 4. Collegamenti tra risorse tramite link ipertestuali 5. Comunicazione senza stato (ciascuna richiesta non ha alcuna relazione con le richieste precedenti e successive. E’ possibile però trasformare uno stato in una risorsa rest in modo da ottenere dei stati ad-hoc)
  • 7. SOA - Service Oriented Architecture Una Service-Oriented Architecture è un modello architetturale concettuale che non fa riferimento a nessuna particolare implementazione, ma definisce alcune proprietà, orientate al riutilizzo e all’integrazione in un ambiente eterogeneo di Sistemi, focalizzando l’attenzione sul concetto di servizio. Ogni servizio mette a disposizione una certa funzionalità e può utilizzare quelle che gli altri servizi hanno reso disponibile, realizzando, in questo modo, applicazioni di maggiore complessità. Un sistema costruito seguendo la filosofia SOA è costituito da applicazioni e chiamate servizi ben definite ed indipendenti l’una dall’altra, che risiedono su più computer all’interno di una rete. L’Architettura SOA è un Enterprise Architect poiché si riferisce a tutti i sistemi e applicazioni di un’organizzazione. SISTEMA Applicazione as SERVIZIO Applicazione as SERVIZIO Applicazione as SERVIZIO Hardware Hardware SISTEMA SISTEMA SISTEMA
  • 8. SOA - Service Oriented Architecture Un Servizio dovrà essere:  Ricercabile e recuperabile dinamicamente  Autocontenuto e modulare, ossia indipendente dal contesto o dallo stato di altri servizi rendendolo di fatto facilmente distribuibile e scalabile  Definito da un Interfaccia e indipendente dalla sua implementazione  Debolmente accoppiato con altri servizi in modo da renderlo facilmente flessibile e facilmente modificabile  Pubblicamente accessibile attraverso la pubblicazione della sua interfaccia (in un Service Directory o Service Registry) ed accessibile in modo trasparente rispetto alla sua allocazione  è ben definita la location  Riutilizzabile in altri servizi creando servizi più complessi (Service Orchestration) attraverso lo scambio di messaggi adoperando un formato standard ampiamente riconosciuto (Platform Neutral). Per ottenere questo obiettivo, i servizi dovrebbero fornire delle interfacce a grana grossa (coarse-grained) ossia con poche funzionalità basilari.  Senza stato Ad oggi, l’Architettura SOA viene implementata attraverso la Web Service Architecture.
  • 9. Web Services – Che cos’è? Nel 1998 seguendo la strada tracciata da XML prende forma il concetto di Web Services. Ma cosa è un web service? Un Web Service è un servizio (applicazione modulare) ben descritto, pubblicato, individuato ed utilizzato attraverso il web. Esso realizza delle funzioni, che spaziano da una semplice richiesta di informazioni ad un complicato processo commerciale. Il loro scopo è quello di avere un approccio che realizza completamente ciò a cui aspira la distributed computing: un modo flessibile ed economicamente vantaggioso di sfruttare tutte le capacità e le risorse della distributed computing, sia internamente sia esternamente e nella maniera più efficiente possibile – senza preoccupazioni per il tipo di applicazioni o sistemi operativi coinvolti.
  • 10. SOA - Web Service Architecture E’ assolutamente essenziale che gli standard nell’area dei Web Services siano ovunque gli stessi. Senza l’accordo dell’industria di tutto il mondo sugli standard della tecnologia sottostante ai Web Services, la promessa della neutralità delle piattaforme e della compatibilità universale di sistemi eterogenei non può semplicemente essere mantenuta. Per questo la Web Service Architecture ha definito le tecnologie da utilizzare:  SOAP per l’accesso e fruizione dei servizi remoti e distribuiti (RPC)  WSDL per la descrizione dei servizi  XML per definire il formato dei dati  HTTP come protocollo di comunicazione  UDDI per il catalogo dei servizi Ciò non vuol dire che non si possano utilizzare altri standard di riferimento a supporto o in sostituzione. Web Services WSDL SOAP XML HTTP
  • 11. Eda - Event-driven Architecture Un‘Architettura Event-Driven si basa sul comportamento attorno alla produzione, la rilevazione e il consumo di eventi. Un evento è una qualsiasi occorrenza identificabile che ha un significato per l'hardware o per il software. L’Architettura si basa su due attori principali che utilizzano un BUS comune di comunicazione chiamato Event Bus:  Event Producer, è il creatore dell'evento, sa che si è verificato l'evento  Event Consumer sono entità che hanno bisogno di conoscere quando accade un’evento; essi possono essere coinvolti nell'elaborazione dell'evento o possono semplicemente essere colpiti dall'evento stesso. A volte, per semplificare la comunicazione tra i due attori viene utilizzato l’Event Manager. Esso riceve la notifica di un evento da un Event Producer ed inoltra l'evento a tutti i consumatori collegati. Event Producer Event Producer Event Producer Event Consumer Event Consumer Event Consumer Event BUS
  • 12. Architettura a Micro servizi E’ bene osservare che i micro servizi sono ancora un argomento in rapido movimento, ma possiamo darne una definizione preliminare : «Architettura a micro servizi è uno stile architetturale per lo sviluppo di una singola applicazione come un insieme di micro servizi. I micro servizi sono dei servizi piccoli e autonomi, eseguiti come processi distinti, che lavorano insieme comunicando mediante meccanismi leggeri» L’Architettura a Micro servizi è un Application Architecture, poiché si riferisce alla singola applicazione (a differenza della SOA).
  • 13. Architettura a Micro servizi Basandoci sul fatto che ogni applicativo è composto da moduli, componenti o librerie in maniera monolitica, l’Architettura a micro servizi si pone come obiettivo quello di trasformarli in micro servizi dipendenti tra loro attraverso lo scambio di messaggi in maniera semplice e veloce. MAIN LIB A LIB B Main Micro Service A Micro Service B Applicativo Monolitico Applicativo Micro Servizi DB A+B DB A DB B
  • 14. Architettura a Micro servizi La scomposizione dei vari componenti in micro servizi porta diversi vantaggi:  Riusabilità: le componenti trasformate in micro servizi possono essere utilizzate da diversi applicativi  Scalabilità: vengono replicati e bilanciati i soli micro servizi che necessitano  Deployment: può essere realizzato sia su una stessa macchina che su macchine differenti  Cloud : I microservizi sono il modo nuovo e ideale per affrontare lo sviluppo di applicativi orientati nativamente al cloud computing
  • 15. Contact – Giampiero Cerroni giampiero19 gcerroni@gmail.com linkedin.com/in/giampierocerroni + 39 3332250803