SlideShare a Scribd company logo
1 of 14
Download to read offline
Protocolli di comunicazione tra
moduli e SOA
Vitalij Zadneprovskij
Incontro JUG Roma e
JBUG Roma

28/11/13

1 / 14
Outline
●

Quando e perché realizzare architetture SOA

●

Progettazione: component based development

●

Problema: come far comunicare moduli diversi?

●

Impariamo dagli errori: CORBA

●

Primo caso di successo: XML, SOAP e WSDL

●

Come si fa oggi: JSON, REST e WADL

●

L'implementazione di riferimento: Jersey

28/11/13

2 / 14
Service Oriented Architecture
●

●

●

Software di grandi dimensioni,
non ha senso per piccoli
programmi
Moduli eterogenei che
comunicano via web services
Permette basso
accoppiamento

●

Favorisce l'autonomia

●

Problema allineamento dati

●

Non sostituisce buona
progettazione

28/11/13

3 / 14
Perché realizziamo moduli SOA?
●

●

●

●

●

Evitare unico applicativo
enorme
Prevedere impatto modifiche
Molte “pezze” aggiunte nel
tempo aumentano
l'accoppiamento del codice
Si ereditano applicativi
eterogenei
Opzioni make, buy ed outsource
preoccupandosi meno di come
integrare con ciò che già si ha

28/11/13

4 / 14
Component based development
Un componente è definito come “a nontrivial, nearly
independent and replaceable part of a system that
fulfills a clear function in the context of a
well-defined architecture” da Brown, Walnau 1996

Fonte: http://healinginnovation.com

28/11/13

5 / 14
Come far comunicare i componenti?
●

●

●

Protocolli proprietari come
Microsoft Distributed
Component Object Model
ed Java Remote Method
Invocation
Incompatibilità tra i vari
protocolli
Molto software su
mainframe, uso di Java
Connector Architecture
Fonte:
Sito Blodnick, Fazio & Associates PC

28/11/13

6 / 14
Common Object Request Broker
Architecture
●

●

●

●

Broker è un software mediatore
che permette di fare chiamate
remote serializzando i dati
Uso di Interface Definition
Language
Problema del mapping del
linguaggio usato in IDL, difficile
da fare con alcuni linguaggi
come il C++ ed il C
Problemi di compatibilità delle
implementazioni dei vari ORB
proprietari

28/11/13

Fonte: Bubblews.com

7 / 14
Extensible Markup Language,
Simple Object Access Protocol
●

●

●

●

Progettato nel 1998 da
Microsoft
XML è diventato standard
del World Wide Web
Consortium comprensibile
da umani e computer
Possibilità sottolinguaggi
definiti da documenti XML
Schema Definition
WSDL è simile a IDL del
CORBA

28/11/13

8 / 14
Comunicazione asincrona
Java Message Service ed Advanced Message Queiung Protocol
●

Strutture dati che mantengono le
richieste prima che vengano
elaborate

●

Coda e topic

●

Minore accoppiamento

●

Possibile persistenza

●

AMQP è standard OASIS

●

Aggiunta e prelievo transazionali

●

●

Windows Azure Service Bus,
sistema cloud di Microsoft
Sia RabbitMQ che ActiveMQ
supportano AMQP

28/11/13

Fonte: Oracle Java EE 6 Tutorial

9 / 14
Esempio architettura SOA
Autorizzazione cambio gomme per automobili in leasing
Modulo autorizzazioni

Modulo anagrafico

Contabilizzazione
autorizzazioni

Anagrafe
Gommisti

Motore regole
autorizzazione

Conto deposito

Richiesta autorizzazione

Anagrafica
Clienti

Async

Orchestratore

Contratti di
leasing

Prezzario
Censimento
pneumatici

Parco auto
Modulo pneumatici

28/11/13

10 / 14
Representational State Transfer,
JavaScript Object Notation
●

●

●

●

●

Risorsa identificata da URI
univoco

{
"id": 1,

Operazioni: metodi HTTP
1.1: GET, POST, PUT,
DELETE, etc.

"name": "Foo",
"price": 123,
"tags": [ "Bar", "Eek" ],

JSON compatto rispetto a
XML

"stock": {
"warehouse": 300,

JSON Schema per
validazione parametri
Ottimizzato per client con
framework MVC Javascript

28/11/13

"retail": 20
}
}

11 / 14
JSR 311 + 339: REST Web Services
●

●

●

●

●

@Path: percorso di una
risorsa
@GET, @POST: operazioni
su risorse

@Path("widgets")
@Produces("application/widgets+xml")
public class WidgetsResource {
@GET
public Widgets getAsXML() {...}

@Produces: tipo di contenuto
che viene prodotto

@GET
@Produces("text/html")
public String getAsHtml() {...}

@Consumes: tipo di contenuto
che si è in grado di gestire

@POST
@Consumes("application/widgets+xml
")

Esempio di URL:
http://nome_host/nome_modulo/rest/nome_
risorsa/id_risorsa

28/11/13

public void addWidget(Widget
widget) {...}
}

12 / 14
Jersey: reference implementation
●

●

●

●

Estende la servlet, quindi gira
anche su servlet container
come Tomcat e Jetty
Espone application.wadl che
può essere usato per generare
automaticamente i client
Esiste archetipo Maven per
creare applicativo REST
funzionante
Per creare client, usare plugin
di Maven di wadl2java

28/11/13

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_
5.xsd">
<servlet>
<servlet-name>Jersey Web Application</servlet-name>
<servlet-class>
com.sun.jersey.spi.container.servlet.ServletContain
er
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey Web Application</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>

13 / 14
Ulteriori sviluppi
●

Service bus

●

●

Integration patterns

●

●

Continous integration

●
●

●

Transazioni
Comunicazione
sincrona ed asincrona

Sicurezza dei dati

●

BPEL

Modularità o
prestazioni

●

BPMN

●

Interazione col DWH

●

Web services esterni

Stati consistenti

28/11/13

14 / 14

More Related Content

Similar to Protocolli di comunicazione tra moduli e SOA

MEAN: il nuovo stack di sviluppo per il futuro del web
MEAN: il nuovo stack di sviluppo per il futuro del webMEAN: il nuovo stack di sviluppo per il futuro del web
MEAN: il nuovo stack di sviluppo per il futuro del webEugenio Minardi
 
Framework per la realizzazione di ria
Framework per la realizzazione di riaFramework per la realizzazione di ria
Framework per la realizzazione di riaLorenzo Bortolotto
 
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
 
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...Natale Vinto
 
Lezione 8: Introduzione ai Web Service
Lezione 8: Introduzione ai Web ServiceLezione 8: Introduzione ai Web Service
Lezione 8: Introduzione ai Web ServiceAndrea Della Corte
 
Blazor: are we ready for the launch?
Blazor: are we ready for the launch?Blazor: are we ready for the launch?
Blazor: are we ready for the launch?Andrea Agnoletto
 
Tesi Discussione
Tesi DiscussioneTesi Discussione
Tesi DiscussioneYeser Rema
 
Sviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailSviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailDotNetMarche
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDaniele Mondello
 
Azure WebSites for Developers
Azure WebSites for DevelopersAzure WebSites for Developers
Azure WebSites for DevelopersLuca Milan
 
Oracle Apex - Presentazione
Oracle Apex - PresentazioneOracle Apex - Presentazione
Oracle Apex - PresentazioneMiriade Spa
 
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013Massimo Caliman
 
Roma linuxday 2013 - nodejs
Roma linuxday 2013 - nodejsRoma linuxday 2013 - nodejs
Roma linuxday 2013 - nodejsClaudio Mignanti
 
IoT: protocolli, dispositivi, architetture
IoT: protocolli, dispositivi, architettureIoT: protocolli, dispositivi, architetture
IoT: protocolli, dispositivi, architettureStefano Valle
 
Come sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTMLCome sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTMLSinergia Totale
 

Similar to Protocolli di comunicazione tra moduli e SOA (20)

MEAN: il nuovo stack di sviluppo per il futuro del web
MEAN: il nuovo stack di sviluppo per il futuro del webMEAN: il nuovo stack di sviluppo per il futuro del web
MEAN: il nuovo stack di sviluppo per il futuro del web
 
Framework per la realizzazione di ria
Framework per la realizzazione di riaFramework per la realizzazione di ria
Framework per la realizzazione di ria
 
Rich Internet Application
Rich Internet ApplicationRich Internet Application
Rich Internet Application
 
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
 
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
 
Lezione 8: Introduzione ai Web Service
Lezione 8: Introduzione ai Web ServiceLezione 8: Introduzione ai Web Service
Lezione 8: Introduzione ai Web Service
 
Blazor: are we ready for the launch?
Blazor: are we ready for the launch?Blazor: are we ready for the launch?
Blazor: are we ready for the launch?
 
Tesi Discussione
Tesi DiscussioneTesi Discussione
Tesi Discussione
 
Sviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailSviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle Monorail
 
Spring e Flex
Spring e FlexSpring e Flex
Spring e Flex
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele Mondello
 
PresentazioneTesi
PresentazioneTesiPresentazioneTesi
PresentazioneTesi
 
node.js everywhere
node.js everywherenode.js everywhere
node.js everywhere
 
Azure WebSites for Developers
Azure WebSites for DevelopersAzure WebSites for Developers
Azure WebSites for Developers
 
Oracle Apex - Presentazione
Oracle Apex - PresentazioneOracle Apex - Presentazione
Oracle Apex - Presentazione
 
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
 
Roma linuxday 2013 - nodejs
Roma linuxday 2013 - nodejsRoma linuxday 2013 - nodejs
Roma linuxday 2013 - nodejs
 
IoT: protocolli, dispositivi, architetture
IoT: protocolli, dispositivi, architettureIoT: protocolli, dispositivi, architetture
IoT: protocolli, dispositivi, architetture
 
Corso 3 giorni Angular 2+
Corso 3 giorni Angular 2+Corso 3 giorni Angular 2+
Corso 3 giorni Angular 2+
 
Come sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTMLCome sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTML
 

Recently uploaded

Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Associazione Digital Days
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoQuotidiano Piemontese
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Associazione Digital Days
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Associazione Digital Days
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Associazione Digital Days
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Associazione Digital Days
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Associazione Digital Days
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Associazione Digital Days
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Associazione Digital Days
 

Recently uploaded (9)

Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 Torino
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
 

Protocolli di comunicazione tra moduli e SOA

  • 1. Protocolli di comunicazione tra moduli e SOA Vitalij Zadneprovskij Incontro JUG Roma e JBUG Roma 28/11/13 1 / 14
  • 2. Outline ● Quando e perché realizzare architetture SOA ● Progettazione: component based development ● Problema: come far comunicare moduli diversi? ● Impariamo dagli errori: CORBA ● Primo caso di successo: XML, SOAP e WSDL ● Come si fa oggi: JSON, REST e WADL ● L'implementazione di riferimento: Jersey 28/11/13 2 / 14
  • 3. Service Oriented Architecture ● ● ● Software di grandi dimensioni, non ha senso per piccoli programmi Moduli eterogenei che comunicano via web services Permette basso accoppiamento ● Favorisce l'autonomia ● Problema allineamento dati ● Non sostituisce buona progettazione 28/11/13 3 / 14
  • 4. Perché realizziamo moduli SOA? ● ● ● ● ● Evitare unico applicativo enorme Prevedere impatto modifiche Molte “pezze” aggiunte nel tempo aumentano l'accoppiamento del codice Si ereditano applicativi eterogenei Opzioni make, buy ed outsource preoccupandosi meno di come integrare con ciò che già si ha 28/11/13 4 / 14
  • 5. Component based development Un componente è definito come “a nontrivial, nearly independent and replaceable part of a system that fulfills a clear function in the context of a well-defined architecture” da Brown, Walnau 1996 Fonte: http://healinginnovation.com 28/11/13 5 / 14
  • 6. Come far comunicare i componenti? ● ● ● Protocolli proprietari come Microsoft Distributed Component Object Model ed Java Remote Method Invocation Incompatibilità tra i vari protocolli Molto software su mainframe, uso di Java Connector Architecture Fonte: Sito Blodnick, Fazio & Associates PC 28/11/13 6 / 14
  • 7. Common Object Request Broker Architecture ● ● ● ● Broker è un software mediatore che permette di fare chiamate remote serializzando i dati Uso di Interface Definition Language Problema del mapping del linguaggio usato in IDL, difficile da fare con alcuni linguaggi come il C++ ed il C Problemi di compatibilità delle implementazioni dei vari ORB proprietari 28/11/13 Fonte: Bubblews.com 7 / 14
  • 8. Extensible Markup Language, Simple Object Access Protocol ● ● ● ● Progettato nel 1998 da Microsoft XML è diventato standard del World Wide Web Consortium comprensibile da umani e computer Possibilità sottolinguaggi definiti da documenti XML Schema Definition WSDL è simile a IDL del CORBA 28/11/13 8 / 14
  • 9. Comunicazione asincrona Java Message Service ed Advanced Message Queiung Protocol ● Strutture dati che mantengono le richieste prima che vengano elaborate ● Coda e topic ● Minore accoppiamento ● Possibile persistenza ● AMQP è standard OASIS ● Aggiunta e prelievo transazionali ● ● Windows Azure Service Bus, sistema cloud di Microsoft Sia RabbitMQ che ActiveMQ supportano AMQP 28/11/13 Fonte: Oracle Java EE 6 Tutorial 9 / 14
  • 10. Esempio architettura SOA Autorizzazione cambio gomme per automobili in leasing Modulo autorizzazioni Modulo anagrafico Contabilizzazione autorizzazioni Anagrafe Gommisti Motore regole autorizzazione Conto deposito Richiesta autorizzazione Anagrafica Clienti Async Orchestratore Contratti di leasing Prezzario Censimento pneumatici Parco auto Modulo pneumatici 28/11/13 10 / 14
  • 11. Representational State Transfer, JavaScript Object Notation ● ● ● ● ● Risorsa identificata da URI univoco { "id": 1, Operazioni: metodi HTTP 1.1: GET, POST, PUT, DELETE, etc. "name": "Foo", "price": 123, "tags": [ "Bar", "Eek" ], JSON compatto rispetto a XML "stock": { "warehouse": 300, JSON Schema per validazione parametri Ottimizzato per client con framework MVC Javascript 28/11/13 "retail": 20 } } 11 / 14
  • 12. JSR 311 + 339: REST Web Services ● ● ● ● ● @Path: percorso di una risorsa @GET, @POST: operazioni su risorse @Path("widgets") @Produces("application/widgets+xml") public class WidgetsResource { @GET public Widgets getAsXML() {...} @Produces: tipo di contenuto che viene prodotto @GET @Produces("text/html") public String getAsHtml() {...} @Consumes: tipo di contenuto che si è in grado di gestire @POST @Consumes("application/widgets+xml ") Esempio di URL: http://nome_host/nome_modulo/rest/nome_ risorsa/id_risorsa 28/11/13 public void addWidget(Widget widget) {...} } 12 / 14
  • 13. Jersey: reference implementation ● ● ● ● Estende la servlet, quindi gira anche su servlet container come Tomcat e Jetty Espone application.wadl che può essere usato per generare automaticamente i client Esiste archetipo Maven per creare applicativo REST funzionante Per creare client, usare plugin di Maven di wadl2java 28/11/13 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_ 5.xsd"> <servlet> <servlet-name>Jersey Web Application</servlet-name> <servlet-class> com.sun.jersey.spi.container.servlet.ServletContain er </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Jersey Web Application</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping> </web-app> 13 / 14
  • 14. Ulteriori sviluppi ● Service bus ● ● Integration patterns ● ● Continous integration ● ● ● Transazioni Comunicazione sincrona ed asincrona Sicurezza dei dati ● BPEL Modularità o prestazioni ● BPMN ● Interazione col DWH ● Web services esterni Stati consistenti 28/11/13 14 / 14