Università degli studi di Bologna Progetto di Reti di Calcolatori L-S A.A. 2005-2006 Business Process Management Orchestrazione di Web Service basata su standard BPEL per la realizzazione di un servizio di tour operator Chiar.mo Prof. Ing. Antonio Corradi Relatore: Luca Cutillo Obiettivo Bpel Grafic tool designer Esigenze complesse = Servizi complessi Realizzare servizi complessi Orchestrando Servizi già esistenti!! Bpel process definition BPEL4WS: lo stato dell’arte dell’evoluzione SOA Travel Agency: struttura logica I Web Service di gestione alberghiera WSDL Tre Web Service ognuno dei quali è in grado, tramite l’interfaccia che espone, di gestire i servizi per la catena alberghiera cui è associato (Hilton, Sheraton, Baglioni). L’insieme di alberghi gestiti è differente per ogni catena. Travel Agency: controllo della vitalità È la richiesta proveniente dal client È la descrizione della disponibilità delle entità del sistema Travel Agency: il processo di ricerca di hotel Ricerca parallela sui ws delle tre catene alberghiere Travel Agency: il processo di prenotazione (controllo disponibiltà) Tutte le operazioni effettuate sul WS disponibile più prioritario Travel Agency: il processo di prenotazione (prenotazione) Travel Agency: il processo di prenotazione (pagamento) QoS: carenze strutturali Interoperabilità con applicazioni privi di interfaccia WS Persistenza Accessibilità risorse locali dei processi partner Sicurezza Accesso a dati non xml-based Affidabilità Transazionalità QoS: replicazione (1) Modello di Replicazione a copie calde Aggiornamento ad ogni scrittura Gestione a livello applicativo (Bpel) Parallel execution Receive Request Invoke <sync>: Prenotazione camera on Hilton Web Service Invoke <async>: Prenotazione camera on Hilton Web Service Slave 1 Invoke <async>: Prenotazione camera on Hilton Web Service Slave 2 Reply Response QoS: replicazione (2) Modello di Replicazione a copie calde Receive Request Aggiornamento Aggiornamento ad ogni scrittura Gestione a livello applicativo (Bpel) Parallel execution Invoke <sync>: Richiesta Web Service Slave attivi For Each WS Slave Invoke <async>: “Set Prenotazione” on Web Service Slave Un nuovo processo bpel per la gestione dei Web Service replicati. Invoke <async>: “Do pagamento” on Web Service Slave Reply Response Sequence QoS: bilanciamento del carico Load balancer tramite connettore Apache-Tomcat mod_jk Client Tra lo strato del server HTTP ed i vari container web si può mettere un firewall atto a proteggere lo strato applicativo di business logic Apache o altro server HTTP Architettura Connettor e mod_jk Una tipica architettura load balanced: il server HTTP maschera la presenza dei web container replicati. Cluster di applicazioni web Rete Più istanze di Tomcat su cui pubblicare ed attivare i servizi di orchestrazione Conclusioni e Sviluppi futuri E’ stato sviluppato un servizio tramite l’orchestrazione di applicazioni J2EE e .NET supportate da interfacce Web Service. L’implementazione di un processo eseguibile ha reso evidente come BPEL abbia senso per definire protocolli di interazione a livello business. L’implementazione di processi eseguibili si scontra con elevate carenze strutturali atte a rendere nulla l’applicabilità. Ogni evoluzione del sistema sviluppato potrà essere solo conseguente ad un evoluzione del middleware stesso.