Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria

Documenti analoghi
Introduzione ad Architetture Orientate ai Servizi e Web Service

Enterprise Service Bus, BPEL, RESTful Web services

Integrazione di servizi: Enterprise Service Bus (ESB) e Business Process Execution Language (BPEL)

Interoperabilità e cooperazione applicativa tra sistemi informativi

Introduzione ai Web Services Alberto Polzonetti

Presentazione di Cedac Software

E.S.B. Enterprise Service Bus ALLEGATO C11

Sicurezza nei Web Services: Migrazione dell autenticazone di Web Services da ticket di sessione a WS-Security con token SAML

JBoss ESB Un caso d'uso italiano: La Porta di Dominio per la Cooperazione Applicativa

Processi BPEL. Obiettivi

Lezione 1 Introduzione

Candidato: Luca Russo Docente: Prof. Raffaele Montella. 27 Marzo 2013

Costruire il futuro il valore delle scelte tecnologiche

8.A.8 Orchestratore Locale. ESB Piano dei test

La Roadmap dello sviluppo per System i5: dalle Applicazioni Legacy alla SOA

ALLEGATO C STANDARD TECNICI DELLA BORSA CONTINUA NAZIONALE DEL LAVORO

Analisi e sperimentazione della piattaforma Web Service Notification nell ambito del controllo del traffico aereo

Introduzione alle griglie computazionali LEZIONE N. 10. Università degli Studi di Napoli Federico II Corso di Laurea in Informatica III Anno

Il Protocollo HTTP e la programmazione di estensioni Web

Stefano Mainetti Fondazione Politecnico di Milano

Casi di studio sulla migrazione di applicazioni web verso servizi REST Anno Accademico 2008/2009

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

Il Paradigma REST per lo sviluppo di applicazioni Web 2.0

Sicurezza delle applicazioni web: protocollo HTTP

B.P.S. Business Process Server ALLEGATO C10

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale

BPEL: Business Process Execution Language

Ministero del Lavoro e delle Politiche Sociali

Introduzione. E un sistema EAI molto flessibile, semplice ed efficace:

MONITORAGGIO UNITARIO PROGETTI 2007/2013 PROTOCOLLO DI COLLOQUI ANALISI ATTIVAZIONE SERVIZIO IGRUE IN SPCOOP. Link.it srl - Analisi Servizio IGRUE 1

Integration Software S.r.l.

Seminario di Sistemi Distribuiti RPC su SOAP

Grid Data Management Services

1 Vincenzo de Stefano SAP e Servizi Web

Eclipse Day 2010 in Rome

Tracciabilità degli utenti in applicazioni multipiattaforma

Protocolli applicativi: FTP

Implementazione di MVC. Gabriele Pellegrinetti

Un sistema di identificazione basato su tecnologia RFID

Simple & Efficient.

Sicurezza e Gestione delle Reti (di telecomunicazioni)

Progettazione: Tecnologie e ambienti di sviluppo

POR Calabria FSE 2007/2013 Asse II Occupabilità Obiettivo operativo D1

Un approccio innovativo per il delivery di servizi in infrastrutture di nomadic computing

Amministrazione Patrimonio Fondi

Hackathon Developers User Guide

Architetture software

Allegato 3 Sistema per l interscambio dei dati (SID)

Groups vs Organizational Units. A cura di Roberto Morleo

Titolo Perché scegliere Alfresco. Titolo1 ECM Alfresco

automation using workflow technology and web services Vassilacopoulos Med. Inform. (September 2003) vol. 28, no. 3,

OpenSPCoop Un Implementazione Open Source della specifica SPCoop di Cooperazione Applicativa

Do-Dots Protocollo di comunicazione

E 2 T 2 ENTERPRISE ENGINE FOR TROUBLE TICKETING

Web Services. Scoperta del servizio UDDI. Descrizione del servizio WSDL. Accesso al servizio SOAP XML. Starto di comunicazione HTTP

PROGETTO WEB SERVICES DOGANE SERVIZI PER RICEZIONE ED ELABORAZIONE MESSAGGI AMBIENTE REALE

Protocollo di metadata harvesting OAI-PMH Lavoro pratico 2

Application Server per sviluppare applicazioni Java Enterprise

CLOUD AWS. #cloudaws. Community - Cloud AWS su Google+ Amazon Web Services. Servizio Amazon Elastic Transcoder

Specifiche Tecnico-Funzionali

Infrastruttura di produzione INFN-GRID

Dal protocollo IP ai livelli superiori

Definizione e realizzazione di un modello architetturale per la gestione della transazionalità in processi di business distribuiti. Edoardo Di Lorenzo

Reti di Telecomunicazione Lezione 7

Web Service Architecture

Harvesting delle tesi di dottorato delle Biblioteche Nazionali tramite DSpace

L'impatto della flessibilità sull'infrastruttura tecnologica. Luca Amato IT Architect, Global Technology Services, IBM Italia

Modulo 1: Posta elettronica

UML Component and Deployment diagram

Firewall applicativo per la protezione di portali intranet/extranet

CLOUD AWS. #cloudaws. Community - Cloud AWS su Google+ Amazon Web Services. Servizio Amazon SNS

Sistemi Informativi Distribuiti

IBM Software Demos The Front-End to SOA

Programmabilità di rete con l'infrastruttura Cisco basata sulle applicazioni

Cloud Computing: alcuni punti fermi per non smarrirsi fra le nuvole

Allegato 1 CIG FF PROCEDURA DI AFFIDAMENTO PER LA FORNITURA DI UNA PIATTAFORMA PER SERVICE MASHUP AND DELIVERY CAPITOLATO TECNICO

Caratteristiche principali. Contesti di utilizzo

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

Modelli e Sistemi di Elaborazione Peer-to-Peer

Architettura Connettore Alfresco Share

WEB SERVICES SERVIZI PER RICEZIONE ED ELABORAZIONE MESSAGGI AMBIENTE REALE

CLOUD AWS. #cloudaws. Community - Cloud AWS su Google+ Amazon Web Services. Servizio Amazon CloudFront

Reti di Telecomunicazione Lezione 6

Architettura Tecnica i. Architettura Tecnica

Grid Data Management Services

ALLEGATO 8.1 DESCRIZIONE PROFILI PROFESSIONALI

E O System Italia THE INTEGRATION EXPERTS. Un Team di esperti in integrazione aziendale al servizio dell impresa.

Configurazione di Outlook Express

Portale regionale della Salute. Servizi di prenotazione prestazione e pagamento ticket.

egovernment Stefano Bucci Un infrastruttura aperta per l integrazione e la cooperazione tra amministrazioni Sales Consultant Manager

Real Time Control (RTC): modalità di invio dei dati

Indice generale. Gli autori...xiii. Prefazione...xv. Benvenuti nel cloud computing...1

Composizione e Coreografia di Web Services

1. BASI DI DATI: GENERALITÀ

Grid Data Management Services. Griglie e Sistemi di Elaborazione Ubiqui

A2A technical presentation

CMDBuild: un progetto open source di supporto alla gestione ICT (e non solo) Approfondimenti Tecnici. Francesco Zanitti Tecnoteca S.r.

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

Piattaforme Software Distribuite. Roberto Beraldi

Transcript:

Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Stefano Iannucci: lucidi su SOA di Sistemi Distribuiti e Cloud Computing, A.A. 2011/12 1

BPEL, BPMN, Service Integration UDDI Service Discovery Service Publication WSDL SOAP Service Description XML-based messaging HTTP Transport 2! Scommessa architetturale e tecnologica: integrazione di applicazioni eterogenee! Nuove applicazioni costruite secondo paradigmi orientati ai servizi non creano problemi! Integrazione di applicazioni legacy?! Cos'è un Enterprise Service Bus (ESB)?! Non esiste una definizione univoca per ESB E' un modello? Un prodotto? Un componente architetturale? 3

Contesto architetturale di un ESB! Obiettivo: disaccoppiare le applicazioni client dai servizi! ESB fornisce un middleware di comunicazione! Nella situazione iniziale il client deve conoscere ed implementare tutti i protocolli necessari per eseguire l'applicazione... e se cambia il protocollo con il quale viene esposto un servizio? 4! Servizio di business: funzionalità (ad alto livello) offerta dall'azienda al cliente finale; definisce input/output! Es: PlaceTrade! Implementazione di un servizio: parte della business logic necessaria per portare a termine un servizio di business! Es: savetradeorder() 5

6! Capacità di smistare una richiesta verso un particolare service provider utilizzando criteri deterministici o probabilistici! Tipologie di routing:! Statico o deterministico! Content-based! Policy-based! Complex rules-based 7

! Capacità di convertire la struttura ed il formato del payload della richiesta effettuata dal client nel formato effettivamente gestibile dal service provider! Esempi:! XML! XML! XML! Object (RMI verso il service provider)! Object! XML 8! Capacità di aggiungere, modificare o eliminare l'informazione contenuta in un messaggio in modo da renderlo compatibile col service provider! Tipologie di message enhancement:! Conversione del formato della data! Aggiunta di informazioni non presenti originariamente! Conversione dei dati (es. eliminazione spazi)! Enhancement basati su regole! Esempio: acquisto con conversione di valuta 9

! Capacità di accettare un tipo di protocollo nei confronti del client (es. SOAP, JMS, HTTP) e comunicare al service provider attraverso un altro protocollo (es. RMI)! Protocol transformation diverso da message transformation! Message transformation modifica il payload! Protocol transformation modifica la struttura del messaggio 10! Capacità di mappare un servizio di business con la corrispondente implementazione e di fornire informazioni relative a binding e locazione! Soltanto l ESB conosce i dettagli sulla locazione del servizio! fornisce al client trasparenza della locazione 11

! Capacità di gestire lo stato e le richieste assicurando il delivery del messaggio di risposta al client 12! Service orchestration:! Capacità di gestire processi di business complessi che richiedono la coordinazione di diversi servizi di business per portare a termine una singola richiesta! Transaction management:! Capacità di trattare una richiesta ad un servizio di business come se fosse una singola unità di lavoro; in particolare dovrebbe offrire un framework per la compensazione 13

! Capacità di proteggere i servizi da accessi non autorizzati! Tutti i servizi pubblicati sul bus! Fondamentale quindi il supporto di:! Autenticazione! Autorizzazione! Auditing! Amministrazione 14! Non esiste un singolo prodotto in grado di offrire tutte le funzionalità descritte! Un ESB può essere diviso in 4 componenti:! Mediator! Service Registry! Orchestrator! Rules Engine 15

! Orchestrator:! Process orchestration! Rules Engine:! Rules-based Routing Message transformation Message enhancement! Service Registry;! Service mapping! Mediator:! Routing! Message transformation! Message enhancement! Protocol transformation! Transaction management! Security 16 17

Benefits Increased flexibility Easier to change as requirements change Scales from point-solutions to enterprise-wide deployment (distributed bus) More configuration rather than integration coding No central rules-engine, no central broker Incremental patching with zero down-time Disadvantages Increased overhead Slower communication speed 18 Commercial IBM WebSphere Oracle Enterprise Service Bus Oracle Enterprise Service Bus Open source Apache ServiceMix JBOSS ESB TIBCO ActiveMatrix Service Bus OpenESB 19

! Obiettivo: creare un architettura basata su standard esistenti per integrare componenti middleware in modo da formare un ESB! JBI controlla le interazioni tra client e service provider interni! Dipendente da J2SE, non J2EE! Definisce due tipologie di componenti:! Service Engines (SE)! Binding Components (BC)! OpenESB è basato sullo standard JBI 20! Disaccoppiamento tra servizio di business e sua implementazione! Funzionalità di routing (NMR)! Funzionalità di protocol transformation (BCs) 21

22! BPEL SE è il BPEL engine in OpenESB! Fornisce un punto di accesso per applicazioni SOA sviluppate in ambiente JBI! Esegue processi di business codificati in BPEL! Permette l'orchestrazione di servizi (partner) raggiungibili tramite qualche tipo di BC e descritti da un file WSDL! Manipola e trasforma i dati per interagire correttamente con i partner! Implementa il processamento parallelo delle attività (attività <flow> di BPEL)! Gestisce le eccezioni ed implementa logiche di compensazione (le cosiddette operazioni di undo) 23

BPEL: Relazioni con i partner Partner Service Partner Service Partner Service 24 BPEL: le attività 25

BPEL: l'attività <receive> 26 BPEL: l'attività <reply> 27

BPEL: l'attività <invoke> 28 BPEL: l'attività <assign> 29

BPEL: attività strutturate 30 BPEL: attività scope 31

BPEL: attività throw 32 33

! SOAP, WSDL, UDDI realizzati per standardizzare lo sviluppo di applicazioni distribuite! Parallelamente: proposta nel 2000 di Representational State Transfer (REST) nella tesi di dottorato di R. Fielding, uno dei principali autori di HTTP! Scopo di REST: snellire l'architettura dei Web service realizzando un modello più semplice da utilizzare! Negli ultimi anni REST è emerso come stile architetturale e progettuale predominante per applicazioni distribuite a larga scala 34! Principi dello stile architetturale REST:! Utilizzo esplicito dei metodi HTTP: GET, PUT, POST e DELETE! Interazioni stateless! Esposizione dei servizi con URI strutturati in forma di directory! Rappresentazione dei contenuti in una varietà di formati standard: XML, JavaScript Object Notation (JSON), MIME, 35

! Utilizzo dei metodi HTTP così come definito nell RFC 2616 per HTTP/1.1! Esempio: metodo GET! Utilizzato per scaricare una risorsa! Utilizzato per eseguire query che richiedono al web server la ricerca e l'invio dei dati trovati! Non deve essere usato per alterare una risorsa! REST definisce mapping tra operazioni CRUD e metodi HTTP:! Creazione di una risorsa sul server (C)! POST! Richiesta di trasferimento di una risorsa (R)! GET! Cambio di stato (aggiornamento) di una risorsa (U)! PUT! Cancellazione di una risorsa (D)! DELETE 36! Richiesta HTTP non utilizzata correttamente (dal punto di vista REST): GET /adduser?name=stefano HTTP/1.1! Perchè?! Sembrerebbe solamente una questione semantica! In realtà è un invito ai crawler ad aggiungere sul nostro DB dei contenuti indesiderati 37

POST /users HTTP/1.1 Host: myserver Content-Type: application/xml <?xml version= 1.0?> <user> <name>stefano</name> </user> 38 GET /users/stefano HTTP/1.1 Host: myserver Accept: application/xml! Utilizzo corretto del metodo GET! Il metodo GET dovrebbe essere idempotente! 39

! Non REST-style: GET /updateuser?name=stefano&newname=pippo HTTP/1.1! REST-style: PUT /users/stefano HTTP/1.1 Host: myserver Content-Type: application/xml <?xml version= 1.0?> <user> <name>pippo</name> </user> 40 Sample REST Request-Response for Creating an S3 Bucket REST Request PUT /[bucket-name] HTTP/1.1 Host: s3.amazonaws.com Date: Wed, 15 Mar 2011 14:45:15 GMT Authorization: AWS [aws-access-key-id]: [header-signature] REST Response HTTP/1.1 200 OK x-amz-id-2: VjzdTviQorQtSjcgLshzCZSzN +7CnewvHA +6sNxR3VRcUPyO5fmSmo8bWnIS52qa x-amz-request-id: 91A8CC60F9FC49E7 Date: Wed, 15 Mar 2011 14:45:20 GMT Location: /[bucket-name] Content-Length: 0 Connection: keep-alive

! Problema: aumento di carico sul server! Soluzione: replicazione, bilanciamento del carico! Difficoltà: cosa succede se si stabilisce una sessione con un server che potrebbe essere soggetto a malfunzionamenti?! Replicazione dello stato tra i server! Progettazione stateless: libera dalla necessità di replicare lo stato! Richiede che tutte le informazioni necessarie al completamento di un ciclo richiesta/risposta vengano inviate in fase di richiesta 42! Stateful design:! Stateless design: 43

! La URI determina quanto il servizio RESTful sarà intuitivo nell'utilizzo! URI gerarchiche che espongono le caratteristiche principali dei servizi! Esempio: forum di discussioni http://www.myservice.org/discussion/topics/{anno}/{mese}/{giorno}/ {topic} 44 A mashup is a Web page or application that combines data, presentations or functionality from two or more sources to create a new service Example: take images from an online repository such as Flickr and overlay them on Google Maps http://flickrvision.com/ By orchestrating RESTful services we can do mashup http://www.programmableweb.com/ is a registry of a variety of Web 2.0 applications, such as mashups and APIs, organized by category, date, or popularity Similar goals to UDDI, but does not use UDDI specifications 45