Il mercato SOA: futuro e prospettive - Presentation Transcript
Il mercato S ervice O riented A rchitecture futuro e prospettive Emanuele Della Valle CEFRIEL – Politecnico di Milano email: [email_address] web: http://swa.cefriel.it Service Oriented Architecture (SOA): dalla sperimentazione all'implementazione strategica, 15 Marzo 2007, Milano
Tra tanti slogan …
… c’è’unica certezza, … “ It is not necessarily the strongest of the species that survives nor the most intelligent , but the one that is most responsive to change .” --- Charles Darwin “ L’origine della specie” http://it.wikipedia.org/wiki/L%27origine_delle_specie essere preparati a cambiare è l’unica cosa su cui contare --- Michael Liebow Vice President, SOA & Web Services IBM Global Service
… perchè il Business sia flessibile … Today’s IT architectures, arcane as they may be, are the biggest roadblocks most companies face when making strategic moves . --- McKinsey “ Flexible IT, Better Strategy” http://www.mckinseyquarterly.com/article_abstract_visitor.aspx?ar=1346 [Immagini prese da http://moment.mit.edu/imageLibrary/contents/bridges.html]
… l’ICT deve essere flessibile: …
L’ICT è in continua evoluzione, il mercato propone in continuazione nuove tecnologie fondati su nuovi paradigmi.
Le imprese, nei casi migliori, spendono il proprio budget ICT
al 70% sui sistemi esistenti per l’esercizio e l’adeguamento tecnologico
solo al 30% su nuovi sistemi che rispondano all’esigenza di creare maggiore valore per l’impresa
Occorre un cambiamento tecnologico che permetta di
Diminuire i costi di esercizio e manutenzione
Aumentare la capacità di creare valore
ICT di oggi ICT desiderabile 70% esistente 55% esistente 45% ++ valore 30% ++ valore
… diminuendo i costi, perchè … Costi Relativi Costi iniziali Messa in esercizio Manutenzione Cambiamenti [Grafico derivato da studio ZapThink http://www.zapthink.com/] Costi relativi di differenti approcci all’integrazione Integrazione custom Soluzioni EAI proprietarie Soluzioni EAI basate su Web Services Soluzioni EAI orientate alle SOA
… perché qualcosa è cambiato … Costi Relativi Costi iniziali Messa in esercizio Manutenzione Cambiamenti [Grafico derivato da studio ZapThink http://www.zapthink.com/] Costi relativi di differenti approcci all’integrazione Fin dal 1970 la prossima generazione di EAI sarà • distribuita • orientata ai servizi • scalabile • plug and play • integrata • orientata al riuso • orientata ai business objects • orientata ai processi • flessibile SOA over WS (SOAP1.1, WSDL1.2, UDDI, BPEL4WS…) 2010 2005 2000 1995 1990 1985 1980 1970 CORBA 2.4 WS-* 0.x XML-RPC CORBA2.0 CORBA1.0 EDIFACT RPCs Sockets ANSI X12 TDCC Integrazione custom Soluzioni EAI proprietarie Soluzioni EAI basate su Web Services Soluzioni EAI orientare alle SOA
… nelle tecnologie utilizzate, e … standard proprietario standard specifico standard generico XML-RPC UDDI CDS COS naming Java Registry Meccanismo di discovery WSDL DCE IDL CORBA IDL Java Interface Descrizione dell’interfaccia protocolli internet RPC CO IIOP JRMP Protocollo di trasferimento SOAP PDU GIOP stream Formato wire XML XML CDR Java Serialization Formato Dati qualsiasi linguaggio RPC CORBA RMI Java RMI Meccanismo di invocazione Web Services XML-RPC CORBA Java
… e creando maggiore valore, perchè … 1 2 3 4 5 silos object component service SOA Maturità del modello di integrazione infrastuttura architettura applicazioni metodo IT vista dal business Function oriented moduli strutturata Piattaforme proprietarie monolitica Function oriented moduli Object oriented Piattaforme proprietarie a layer Function oriented componenti Component based Piattaforme aperte a componenti Service oriented servizi Service modeling W eb S ervices Ispirata alla SOA Service oriented Processi IT integrati via servizi IT process modeling Web Services SOA Problem oriented Processi integrati via servizi Business Process Modeling Semantic Web Services SESA 6 SESA
… perchè, dai silos verticali …
In assenza di integrazione ogni dipartimento adotta le proprie soluzioni IT integrate (non semplici applicazioni) e le usa in modo esclusivo.
[…] Dipartimento 1 Dipartimento 2 Dipartimento N
… è possibile estrarre i servizi, …
Il primo passo verso una SOA consiste nel razionalizzare le soluzioni IT esistenti individuando le parti potenzialmente comuni a più dipartimenti ed esponendo le come servizi .
[…] Dipartimento 1 Dipartimento 2 Dipartimento N
… e comporli in molteplici processi.
I servizi possono poi essere composti in modo da supportare non solo i processi interni, ma anche processi che coinvolgono i propri fornitori e verso i propri clienti .
Dipartimento 1 Servizi condivisi Servizi outsourced Fornitore Cliente Dipartimento 2
Cosa c’è SOA vs. Web Services
SOA
SOA è una filosofia architetturale:
Flessibile
Aperta al cambiamento e all’evoluzione
Astrae dalla logica di funzionamento interna
Approccio allo sviluppo di una architettura basata su servizi
SOA
non è una particolare tecnologia
non può essere un prodotto vendibile.
Al più una specifica tecnologia può servire ad implementare una SOA e un prodotto di può essere implementato con in mente il paradigma delle SOA
Web Services
Sono un insieme di standard aperti (W3C e OASIS) ampiamente sostenuti dai principali attori ICT
Sono una tecnologia impiegata perchè
garantisce un buon grado di flessibilità e evolvibilità
astraendo dallo specifico linguaggio usato per implementare il service requester e il service provider
I Web Service
non sono una soluzione proprietaria
non sono un prodotto vendibile
Al più
uno specifico servizio può essere implementato usando i Web Service
un’applicazione può essere esposto come Web Service
Cos’è … Cosa non è …
Cosa c’è Il mito Service Oriented Architecture
Il mito delle Service Oriented Architecture (SOA) dice che abilitino flessibilità e dinamismo tramite una descrizione ricca del servizio e un meccanismo di pubblicazione/scoperta di tali descrizioni che permette a richiedenti occasionali di interagire con il servizio senza (o con limitate) conoscenze a priori.
Service provider Service requester source: http://www.w3.org/TR/2002/WD-ws-arch-20021114/ Publish Discovery Agencies Service Description Discover Interact Service Description
Processi supportati da una SOA
Pubblicazione : rendere disponibile una descrizione di un servizio
Discovery : trovare servizi adatti ad un certo scopo
Selezione : trovare il migliore servizio tra quelli disponibili
Com p ensazione : trovare un servizio per effettuare un “undo” o mitigare un effetto non desiderato
Rimpiazzo : sostituire un servizio con un altro equivalente
Esecuzione : invocare da programma servizi
Composizione : aggregare servizi
Monitoring : Controllare l’esecuzione
Auditing : Verificare che le esecuzione di un servizio abbia seguito un processo prestabilito
Cosa c’è La realtà delle SOA basate su Web Services
La realtà è una selva di standard ufficiali, ufficiosi, de facto e presunti nota come WS-AH - Web Services Acronym Hell
XML SOAP WSDL UDDI WSFL DISCO PKI XKMS SAML ebXML XML-RPC XMLP XML-DIGSIG XML-ENC SOAP-SEC X-KISS CPP-CPA WSEL SOAP-RP DIME XLANG DISCO JABBER P3P DSML OWL-S XSD WSBPEL
Cosa c’è L’esperienza permette di distinguere
Nella selva di acronimi serve esperienza per
saper cosa usare per quale scopo e
non farsi ingannare dalla moda del momento
I tre pilastri che fanno dei Web Service una base tecnologica per le SOA
WSDL : Web Services Description Languages
UDDI : Universal Description, Discovery and Integration
SOAP : Simple Object Access Protocol
servono, poi, meccanismi di sicurezza adeguati
XML-security
XML-Encryption : garantire la confidenzialità
XML-Signature : garantire autenticità e non-ripudio
XKMS : gestione delle chiavi
SOAP-Security : integrazione in SOAP
e, sempre più spesso, si sente la necessità
di comporre servizi elementari in processi
complessi
WSBPEL : WS Businness Process Execution Language
WSBPEL SOAP . XML-Security . WSDL UDDI
Cosa c’è WSDL: W eb S ervices D escription L anguages
Un documento WSDL descrive
cosa un Web Service offre,
Descrive il tipo di servizio
Lo stesso tipo di servizio dovrebbe essere implementato da tutti i providers.
Definisce un’interfaccia logica , ovvero il set di operazioni del servizio, in termini di
I messaggi in ingresso e uscita
Il loro formato
I tipi di dato di ciascun elemento del messaggio
come comunica,
Descrive il “binding” dell’interfaccia astratta a i protocolli internet sottostanti
Specifica
quale XML Schema deve essere utilizzata per serializzare i dati;
come costruire la “busta” (envelope) SOAP;
quali header addizionali debbano essere inclusi; e
quale transfer protocol usare.
include o importa la parte cosa del WSDL
e dove trovarlo
Descrive come il servizio è implementato in termini di porte che implementano un binding concreto dell’interfaccia astratta
include o importa la parte come del WSDL
Implementazione (Parte dove ) “ Binding” concreto (Parte come ) Interfaccia astratta (Parte cosa ) <service> <port> <binding> <types> <message> <portType> <operation>
Cosa c’è UDDI : U niversal D escription, D iscovery and I ntegration
Un registro UDDI (v 3.0) contiene:
Pagine Bianche
Nome del service provider, identificativo , indirizzo e altre informazioni per contattare la società
Pagine Gialle
Sistemi di classificazione di service provider e servizi su base geografica, tipo di industri, etc.
Pagine Verdi
Descrizione tecnica delle interfacce del servizio (es. Acquisto libri) e del punto di accesso (URL, e-mail, ecc.) utilizzando opportuni “tModel”
tModel
Definizione tecnica di un tipo di servizio tipicamente emessa da enti di standardizzazione di specifici domini (es. EAN/UCC*) per essere utilizzata dai service provider.
Oggetti nel repository
Tutti gli oggetti descritti sopra sono immagazzinati come metadati nel registro
UDDI prevede API per scrivere e cercare nel repository
* EAN.UCC System standardizza bar codes, insiemi di transazioni EDI transactions sets, schemi XML, e altre soluzioni per rendere più efficiente l’e-business
Business Entity Nome, Indirizzo, Contatti Identificativo ABN, CAN, DUNS, … Classificazione Geografica, tipo di industria, … Business Service Nome, descrizione Classificazione Tipo di processo, ruolo, … Binding Template Descrizione, URL, … tModel Descrizione dell’interfaccia, trasport, protocollo, sintassi, … tModel Nome, descrizione, URL, … Classificazione Tipo, namespace, processo, ruolo, tipo di industria, geografia, riferimenti ad altri tModels XML objects repository Pagine Bianche Pagine Verdi Pagine Gialle Standard
Cosa c’è Relazione tra UDDI e WSDL Impresa A Impresa B WSDL (Parte Come ) WSDL (Parte Dove ) XYZ Service Implementation WSDL (Parte Come ) WSDL (Parte Dove ) XYZ Service Implementation UDDI XYZ Service Binding Template di A UDDI XYZ Business Service di A UDDI Business Entity Impresa A UDDI XYZ Service Binding Template di B UDDI XYZ Business Service di B UDDI Business Entity Impresa B UDDI tModel standard del servizio XYz WSDL (Parte cosa )
Cosa c’è Web Services all’opera Web Service Invocation framework Web Service Execution Environment SOAP Message Processor WS Container Client application Stub Servizio Code to develop Code and XML automatically generated Web Service product WSDL2Code generator public class Calculator { public int add (int i1 , int i2 ){ return i1 + i2; } public int subtract(int i1, int i2){ return i1 - i2;} } Legenda <soap:Envelope> <soapenv:Body> <addResponse> < addReturn > 8 </ addReturn > </addResponse> </soap:Body> </soap:Envelope> Skeleton WSDL (Parte cosa ) WSDL (Parte Come ) WSDL (Parte Dove ) SOAP Message Processor WSDL2code generator […] UDDI tModel standard del servizio Impresa Interfaccia standard di un servizio calcolatrice <soap:Envelope> <soap:Body> < add > < i1 >3</ i1 > < i2 >5</ i2 > </ add > </soap:Body> </soap:Envelope> IN SOAP OUT SOAP
Cosa c’è Composizione: una necessità
In un mercato dinamico e aggressivo, l’estrema specializzazione è una necessità , ma le esigenze dei consumatori restano trasversali e per soddisfarle occorre la collaborazione di molti attori.
Nel caso del turismo , ad esempio, è normale che chi offre viaggi aerei, non offra pacchetti vacanza completi (cosa che, invece, fanno le agenzie di viaggio).
La composizione di servizi cross-organizzazione è una delle possibili vie per offrire servizi ad alto valore aggiunto per l’utente finale integrando i servizi di molte realtà settoriali .
Cosa c’è WS-BPEL: esempio per Virtual Travel Agency get itinerary get order order tickets receive confirmation confirm flight send tickets send confirmation submit to agent receive tickets receive confirmation select airline reserve seats charge credit card plan trip Agent Process Airline Process Traveler Process e-payment Process get charge request check credit card Charge card fault handler throw fault handler compensation handler exit compensate
Cosa potete farci VISA ha ridotto i costi operativi
Razionalizzato il 10% delle applicazioni in modo da sfruttare servizi condivisi
Ottenuto accesso veloce e integrato alle transazioni e alle informazioni contenute in molti sistemi eterogenei per automatizzare la risoluzione delle controversie
Riduzione del numero di situazioni che portano a controversie grazie alla nuova capacità di accedere all’informazione e riduzione del 33% il tempo medio di risoluzione di una controversia
Le banche associate nel solo 2005 hanno risparmiato più di 300 milioni di $ grazie a questa riduzione
Risparmio di 52 milioni di $ in costi operativi per chi emette le carte
Il lavoro fin qui fatto rappresenta una estensione al sistema aperto di VISA che punta a incapsulare in servizi tutto il codice dei propri sistemi informativi in modo da favorirne il riuso e semplificarne il rimpiazzo.
“ If you take all the transactions across all the stock markets and exchanges in the world, and you aggregated them over a 24-hour period, we do that volume over a coffee break.“ --- Sara Garrison SVP of Network and Open Systems Development
Cosa potete farci Standard Life ha risparmiato £6m con SOA
Standard Life ha risparmiato 6 milioni di sterline sviluppando 14 nuovi prodotti per assicurazioni sulla vita e pensioni interamente costruiti su SOA
Le applicazioni sono state realizzate riutilizzando al 50% servizi esistenti
Su 250 servizi comuni 120 sono utilizzati da tre o più applicazioni
Il carico di lavoro è aumentato del 900% senza nessun aumento del costo di esercizio
“ The architecture has improved the quality and manageability of in-house applications. We are building applications on a proven framework.” — Ian Muir senior manager for core technology Standard Life
Cosa potete farci Xeros aumenta la propria produttività
Lo sviluppo di codice custom per ogni nuova applicazione rallentava la produzione e faceva crescere i costi, Xerox ha puntato sul disaccoppiamento dei data base di back-end dal front-end introducendo una SOA basata su Web Services.
Il ritorno sull’investimento è stato di 24 mesi
Il risparmio sui costi sviluppo nel 2005 è stato di 720.000 $
Lo sviluppo di nuove applicazioni ora richiede mediamente il 25 % in meno di tempo
“ we can move forward with a SOA that helps us respond to today’s challenges and gives us a flexible architecture to respond to future challenges .” — Ram Sunkara, Manager, Integration Competency Center, Xerox
Cosa potete farci Cosa serve per ripetere queste esperienze? Skill Governance Investimenti
Cosa potete farci La migliore strategia è partire da dove si è … Implementare singoli Web Services esponendo le funzionalità delle applicazioni esistenti Sviluppare applicazioni dentro e fuori l’impresa basate sui Web Service esposti 1 2 3 4 Trasformare l’impresa dando il massimo accesso interno e esterno a servizi affidabili e sicuri. Modificare i propri processi di business in modo da sfruttare appieno la flessibilità dell’infrastruttura IT
Cosa potete farci … e avere un piano per il lungo periodo. 1 pianificare 2 progettare 3 Implementare 4 Monitorare Cosa fare? Identificare come una SOA può aiuta re a raggiungere obiettivi di business Creare un progetto SOA in cui ogni Web Service venga esposto per una precisa ragione Costruire e mettere in produzione passo passo la SOA basata su Web Services e standard aperti Monitorare le performance e verificare che la SOA soddisfi le esigenze di business Perchè? Obbliga il business a dialogare con l’IT riducendo il rischio di passi falsi Permette all’impresa di imparare a guardare una SOA dal punto di vista del business Evitare l’effetto big bang prendendosi il tempo per pensare alla sicurezza e ai livelli di servizio Aiuta a mantenere gli obiettivi di progetto sotto controllo ottimizzando la creazione di valore
Cosa potrete fare domani Potreste sperimentare alcuni problemi …
È semplice gestire pochi servizi all’interno di un unica organizzazione da utilizzare in processi IT poco complessi
Gestirli diventa difficile quanto i servizi sono numerosi e occorre comporli in complessi business process cross-organizzazione
Cosa potrete fare domani … dovuti all’eterogeneità semantica … interfaccia, il programma che li riceve deve comunque sapere in che formato sono. Occorre comunque accordarsi sulla struttura di ciascun business object. Fino ad ora nessuno ha ancora trovato una soluzione attuabile …” Oracle Chairman and CEO - Larry Ellison “ L’eterogeneità semantica rimane il principale intoppo alla integrazione di applicazioni , un intoppo che i Web Services da soli non risolveranno. Finché qualcuno non troverà un modo di per far sì che le applicazioni si capiscano, gli effetti dei Web Services resteranno limitate. Quando si passano i dati di un utente in un certo formato usando un Web Services come The problem is not in the plumbing, it is in the semantics ” Verizon Chief Scientist - M . L . Brodie
Cosa potrete fare domani … perché la semantica non si vede, ma c’è!
Forse non vi siete mai soffermati a pensare che la maggior parte della conoscenza (semantica) necessaria ad implementare una soluzione basata su SOA non è codificata nella descrizione del servizio (WSDL, UDDI, WSBPEL, …), ma è nella testa delle persone …
Publish Service provider Service requester Discovery Agencies Discover Interact Provider Human Requester Human Provider Entity Requester Entity WSD + WSD + Sem AGREE WSD ? Sem ? Sem
Cosa potrete fare domani Come mettere d’accordo persone e macchine?
Occorrerebbe qualcosa che permetta di rendere esplicita la semantica nascosta in un accordo formale che le macchine possano “ capire ”
Discovery Agencies Publish Service provider Service requester Interact Provider Human Requester Human Provider Entity Requester Entity AGREE Sem Discover + Sem WSD ! WSD + Sem WSD WSD + Sem WSD ? Sem WSD + Sem WSD
Cosa potrete fare domani Usando le tecnologie del Semantic Web …
Semantic Web offers
ontologie ( ) per esplicitare e formalizzare l’accordo
metadati ( ) per permettere alle macchine di “ elaborare ” la semantica
mediatori ( ) per gestire l’eterogenità
Discovery Agencies Publish Service provider Service requester Interact Provider Human Requester Human Provider Entity Requester Entity AGREE Sem Discover + Sem WSD Ontology WSD + Sem WSD WSD + Sem WSD ? Sem WSD + Sem WSD META META META META META META
Cosa potrete fare domani … che a partire dal 2008 … Gartner Presentation: “Time Well Spent: Web Services Mature More” Charles Abrams, Daryl Plummer; Nov. 2004
Cosa potrete fare domani … permetteranno di … … al business di esprimere direttamente i problemi sotto forma di goal e non nei termini del la soluzione (es. servizi) … di modellare processi di business dal proprio punto di vista (goal) e non come processi che integrano servizi … di supportare i processi di business con applicazioni assemblate dinamicamente utilizzando goal-based discovery … basate su Semantically Empowered Service Oriented Architecture … usando come infrastruttura i Semantic Web Service 1 2 3 4 5 silos object component service SOA Maturità del modello di integrazione infrastuttura architettura applicazioni metodo IT vista dal business Function oriented moduli strutturata Piattaforme proprietarie monolitica Function oriented moduli Object oriented Piattaforme proprietarie a layer Function oriented componenti Component based Piattaforme aperte a componenti Service oriented servizi Service modeling Web Services Ispirata alla SOA Service oriented Processi IT integrati via servizi IT process modeling Web Services SOA Problem oriented Integrazione flessibile di servizi Business Process Modeling Semantic Web Services SESA 6 SESA
C’era una volta e un’altra volta non c’era più, ma quella volta comunque c’era …
Nelle soluzioni di application-to-application integration la semantica rimane nella testa di chi scrive l’adapter
Nelle soluzioni di EAI che usano i Web Services per implementare una SOA la semantica è in parte codificata negli standard (XSD, SOAP, WSDL, BPEL4WS, WSCI, etc.) usati per definire i formati dei dati scambiati e le modalità di scambio, ma buona parte rimane della testa di chi realizza la soluzione di integrazione.
[…] adapter […] […] […] […] SOA Sem Sem Sem Sem […] Sem
C’era una volta e un’altra volta non c’era più, ma quella volta comunque c’era …
Le soluzioni di EAI del futuro potrebbero essere basate sui Semantic Web Services e realizzare una S emantically E mpowered S ervice-oriented A rchitecture
In questo modo la semantica risulterebbe condivisa tra gli utenti e le macchine (direttamente disponibile alla soluzione di EAI) permettendo un’integrazione estremamente flessibile in grado di seguire le esigenze di processi di business complessi e mutevoli
[…] […] […] […] SESA + SWS Sem Sem Sem Sem Sem Sem Sem Sem ! 2010 2005 2000 1995 1990 1985 1980 1970 SESA over SWS SOA over WS WS-* 1.x (SOAP1.1, WSDL1.2, UDDI, BPEL4WS…) CORBA 2.4 WS-* 0.x XML-RPC CORBA2.0 CORBA1.0 EDIFACT RPCs Sockets ANSI X12 TDCC
Conclusions An European IST-IP project for SESA and SWS
The major objective of SUPER is to raise Business Process Management (BPM) to the business level , where it belongs , from the IT level where it mostly resides now. This objective requires that BPM is accessible at the level of semantics of business experts
http://www.ip-super.org
Conclusions SEEMP: An application of Semantic Web Services in eGov S ervice A bstract M achine Mediation & Orchestration Layer OSGi core Service Machine Layer 1 Layer 2 Layer 3 Service Machine (Mélusine Core) Mediation and Orchestration Layer Selection Discovery Parser Invocation Invocation Discovery Layer 1 : Abstract machine Layer 2 : Adapters Layer 3 : Real (SEEMP) services EMP -AM (Employment Marketplace Platform Abstract Machine) RM Injection Machine Injection Machine […] Cleansing Ranking Statistics http://www.seemp.org
Conclusions NeP4B: Networked Peers for Business
NeP4B (FIRB 2005)
Aims to provide to Small-Medium Enterprises a flexible IT middleware for finding partners, exchange data and collaborate
http://dbgroup.unimo.it/nep4b/ S S S S S S S S S S M M M M D D M M M M M M D D M M M M M M D D D D S S S S S S S S S S M M M M M M D D S S S S M M M M D D S S S S S S M M S S D D Knowledge resource Mediator Service Discovery Engine Semantic Peers Semantic Super Peers infrastructure M M M M S S ? Distributed Discovery Information Routing
0 comments
Post a comment