Introduzione
8
protocolli SOAP e WSDL. Nel capitolo 5 descriveremo le lacune e le
problematiche introdotte dall’adozione dei Web Service, che hanno portato alla
progettazione e alla realizzazione delle specifiche di seconda generazione (lo
stato attuale dei Web Service). Successivamente (cap 6, 7, 8, 9, 10, 11)
analizzeremo le nuove specifiche di terza generazione, che rappresentano un
passo decisivo nell’evoluzione dei Web Service.
L’analisi delle problematiche che hanno portato alla creazione di tutte le
specifiche della famiglia WS (Web Service), ci guiderà nella progettazione e
nella implementazione del container WSRF WSGRelC (cap. 12, 13, 14, 15)
con caratteristiche innovative ed uniche nel mondo dei Web Service. Per
concludere confronteremo il nostro sistema con i principali progetti
concorrenti: WSRF.net e Java WS Core (cap 16).
L’evoluzione delle Information Technologies
9
1 L’evoluzione delle Information Technologies
L’IT ha subito in questi anni un processo di trasformazione, mentre da una
parte si cerca di tagliare i costi e massimizzare l’utilizzo della tecnologia
esistente, dall’altra si cerca di fornire ai clienti un servizio sempre migliore, più
competitivo ed aderente alle politiche aziendali. Ciò che sembra scontato
solleva però due problematiche nascoste: eterogeneità e cambiamento.
La maggior parte delle imprese di IT utilizza differenti sistemi, applicazioni ed
architetture molto spesso non compatibili. D’altro canto come può un impresa
affidare il proprio futuro ad un solo fornitore di software? Il cambiamento è la
seconda problematica cui IT deve fornire una risposta. La globalizzazione e
l’e-business stanno accelerando i cambiamenti del settore ed un impresa deve
adeguare i propri obiettivi velocemente per adeguarsi a tale frenesia.
Le imprese si sono quindi evolute dalla visione del business verticale ed isolata
(fino al 1980) , a quella orizzontale basata su più livelli (1980-1990), fino al
nuovo paradigma ad ecosistema [WS&SOA-2003]. In questa nuova visione del
business i servizi sono composizione di servizi più piccoli e distribuiti.
Figura 1. L'evoluzione del business.
L’IT si è quindi adeguata a questa visione del business rispondendo al bisogno
del mercato di nuove architetture fino ad arrivare alle Service Oriented
Architecture (SOA).
L’evoluzione delle Information Technologies
10
Figura 2. L'evoluzione delle architetture dell'IT
Le SOA hanno le caratteristiche giuste per risolvere i problemi di eterogeneità,
interoperabilità e cambiamento che hanno afflitto l’IT. In questa visione un
consumer non si deve preoccupare se un particolare servizio utilizza una
tecnologia lui sconosciuta, infatti l’infrastruttura nasconde la maggior parte
degli aspetti tecnologici. Il compito del consumer è quello di valutare e
scegliere il servizio che più si adatta ai propri bisogni.
Ovviamente la realizzazione di una SOA richiede una analisi molto attenta
delle problematiche che inevitabilmente presenta. Tali aspetti sono stati
volutamente tralasciati poiché esulano dai fini di questo lavoro. È importante
che il lettore abbia un’idea precisa di ciò che è stata l’evoluzione del servizi e
quali sono stati i cambiamenti che hanno indotto il Web a cambiare.
Naturalmente la più importante ed utile implementazione di SOA è
rappresentata dai Web Service.
1.1 Web Service
Diamo ora la definizione di Web Service: “un Web Service è un servizio che è
disponibile su Internet, usa un sistema di comunicazione basato sullo standard
XML e non è perciò legato a nessun sistema operativo o linguaggio di
programmazione” [WSEss-2002].
Figura 3. Un semplice Web Service
L’evoluzione delle Information Technologies
11
È importante notare che nella definizione di Web Service non siano stati
imposti degli standard di comunicazione. Per esempio potremmo utilizzare
XML Remote Procedure Calls (XML-RPC) o SOAP, o tutti e due. Potremmo
addirittura utilizzare il protocollo HTTP GET/POST ed inviare un qualsiasi
documento XML. Tutte queste opzioni andrebbero bene.
Figura 4. Scambio di messaggi XML per i Web Service
Seppur non indicate nella definizione, un Web Service dovrebbe avere altre
due caratteristiche:
- Si dovrebbe auto-descrivere. Cioè, se volessimo pubblicare un nostro
Web Service, dovremmo fornire anche le informazioni di interfaccia
con lo stesso. Il nostro Web Service dovrebbe fornire un minimo di
documentazione per permettere agli sviluppatori che vogliono dialogare
con lo stesso di poterlo integrare con facilità (sempre nell’ottica di
vendita di un servizio). Se abbiamo creato un Web Service che utilizza
il SOAP, sarebbe conveniente rilasciare un documento XML che ne
descriva i parametri e l’eventuale output;
- Dovrebbe essere rintracciabile. Per vendere i servizi offerti dal nostro
Web Service avremmo bisogno di “pubblicità” per far conoscere agli
sviluppatori che forniamo tale servizio. Ovviamente un sistema locale
non soddisfa tale requisito, avremmo bisogno di un sistema
centralizzato dove poter iscrivere il nostro servizio: una sorta di pagine
gialle.
L’evoluzione delle Information Technologies
12
Per ricapitolare un Web Service deve avere le seguenti caratteristiche:
- Raggiungibile attraverso Internet o una rete locale;
- Usare uno standard XML per lo scambio dei messaggi;
- Non deve essere legato a nessun Sistema Operativo o linguaggio di
programmazione;
- Si deve auto-descrivere attraverso un documento XML;
- Deve essere rintracciabile con un semplice motore di ricerca.
1.2 Dal modello Human-Centric al modello Application-
Centric
Per chiarire meglio le novità introdotte dai Web Service facciamo un piccolo
esempio. Consideriamo il caso in cui una società che vende i propri prodotti
on-line. In questo caso l’utente effettua l’accesso all’interno del sito web della
compagnia attraverso un Web Browser e richiede lo stato del suo ordine. Il
Web Server fornirà un pagina HTML con le informazioni richieste dall’utente.
Figura 5. Il modello di Web Human-Centric
Questo è un semplice caso che illustra il modello Human-Centric, l’utente che
ha richiesto la pagina web è l’attore principale. Questo modello è ancora quello
imperante nel Web.
Con i Web Service noi ci spostiamo dal modello Human-Centric al modello
Application-Centric, ciò non significa che l’utente non faccia parte dello
scenario che stiamo considerando. È stato solamente portato allo stesso livello
delle altre applicazioni.
Riprendendo l’esempio fatto in precedenza potremmo trasformare il sito web in
un Web Service. Le applicazioni o qualsiasi altro sistema potranno interrogare
L’evoluzione delle Information Technologies
13
direttamente il Web Service; avremo quindi un Inventario che si occuperà in
interrogare il Web Service e trasformare i dati ottenuti secondo le preferenze
del richiedente.
Figura 6. Il modello di web Application-Centric
Il modello Application-Centric non è un concetto nuovo. Gli sviluppatori per
anni hanno creato CGI e Java Servlets progettate unicamente per dialogare con
altre applicazioni.
La differenza sostanziale è che molte delle soluzioni proposte consistono in
sistemi ad hoc, che permettono la comunicazione solo fra sistemi compatibili.
Con il Web Service viene introdotto il concetto di standardizzazione, che
abbatte notevolmente le barriere per l’integrazione delle applicazioni.
1.3 Uno sguardo al futuro : Web Semantico
In questa sezione parleremo del futuro del Web inevitabilmente collegato al
futuro dei Web Service, questa sezione potrebbe sembrare molto discorsiva, ma
la comprensione degli aspetti “filosofici” dell’introduzione dei Web Service è
fondamentale, perché solo così si possono davvero apprezzare le caratteristiche
del nostro lavoro di ricerca e soprattutto il perché di questi sforzi.
Sul lungo periodo i Web Service potrebbero essere il punto di svolta per un
Web automatizzato. Se un web service fosse facilmente rintracciabile, auto-
descrittivo ed aderisse a standard comuni, sarebbe possibile automatizzare la
procedura di integrazione del servizio stesso. Si potrebbe pensare che le
macchine stesse si possano organizzare e gestire per soddisfare le richieste
degli utenti.
"The first step is putting data on the Web in a form that machines can naturally
understand, or converting it to that form. This creates what I call a Semantic
L’evoluzione delle Information Technologies
14
Web: a web of data that can be processed directly or indirectly by machines."
Tim Berners-Lee, Weaving the Web, Harper San Francisco, 1999, [SemWeb-
2003].
Il passaggio verso un web automatizzato si può dividere in due passaggi
fondamentali: il primo è rendere il web un sistema più collaborativo fra le sue
componenti, il secondo è rendere il Web comprensibile alle macchine.
Allora come possiamo creare un web che le macchine possano utilizzare? La
prima considerazione che dobbiamo fare riguarda i dati. Storicamente i dati
sono stati bistrattati in tutti gli ambiti applicativi: sono solo dati cioè secondari
rispetto alle applicazioni. Questa visione ha dato vita ad un famoso stereotipo
“garbage in, garbage out”, in pratica il funzionamento di un applicativo è
basato essenzialmente sulla qualità dei dati e non sulla sua correttezza.
Naturalmente questa visione è andata via via modificandosi, infatti
professionisti dell’IT hanno iniziato a studiare e tutelare i dati, dapprima
utilizzando dei linguaggi proprietari, in seguito con l’avvento del Web e
dell’Extensible Markup Language (XML). La naturale evoluzione di questo
processo ha portato alla creazione di dati sempre più “intelligenti”, in cui i
metadati associati alle singole informazioni sono sempre più completi e utili.
L’evoluzione dei dati è ben lontana dall’essere terminata, possiamo facilmente
prevedere gli stadi evolutivi che i dati dovranno attraversare:
- Testo e Database (pre-XML). Questo è lo stadio iniziale, dove i dati
sono memorizzati seguendo specifiche proprietarie.
- Documenti XML per un singolo dominio. I dati sono indipendenti dalle
applicazioni dello stesso dominio applicativo. La maggior parte dei
sistemi oggi realizzati si trovano in questo stadio.
- Tassonomie e documenti con vocabolari misti. I dati possono essere
utilizzati in diversi domini applicativi e sono accuratamente classificati
in una gerarchia di tassonomie. L’organizzazione gerarchica delle
tassonomie è necessaria per la ricerca dei dati.
- Ontologia e regole. In questo stadio i dati possono essere collegati fra
loro seguendo delle regole logiche. In sostanza i dati sono
L’evoluzione delle Information Technologies
15
sufficientemente intelligenti da poter essere collegati fra loro seguendo
dei formalismi che possono essere composti mediante una “algebra
semantica”.
Possiamo quindi dare una nuova definizione di Web semantico: un web di dati
intelligenti che le macchine possono elaborare e comprendere. Dove un dato
intelligente è un dato che è indipendente dalla particolare applicazione,
componibile, classificabile e fa parte di un grande ecosistema di informazioni.
1.4 Web Service Semantico
È evidente come il concetto di web semantico possa essere applicato in tutti i
contesti dell’IT, in particolar modo nei Web Service. Infatti un Web Service è
un servizio che è disponibile ad un URI e che consuma e produce XML. La
tecnologia dei web service è apparsa subito come il futuro del web e ormai essi
sono come le pagine Web, cioè numerose, difficili da scoprire ed organizzare.
Da questo punto di vista UDDI occupa un ruolo chiave, ma come tutti i sistemi
centralizzati mal si adatta alla struttura decentralizzata dei web service.
Il web service semantico potrebbe essere la soluzione a questo problema, infatti
questa tecnologia potrebbe permettere ai web service di interagire in maniera
“autonoma” con altri web service.
A questo punto è doverosa una precisione: quando si parla di integrazione
automatica dei web service, non stiamo in alcun modo parlando di intelligenza.
Infatti l’integrazione dei web service ha luogo soltanto in un ambiente ben
formalizzato, organizzato ed aderente a determinate specifiche. Non possiamo
cioè associare al concetto di automatizzazione il concetto di interpretazione
delle informazioni.
I web service si adattano in particolar modo all’ambito applicativo delle griglie.
Infatti una griglia è una tecnologia che garantisce un accesso flessibile, sicuro e
coordinato a risorse condivise da un insieme dinamico di referenti quali
persone fisiche, istituti ed organizzazioni. Una griglia computazione è quindi
un insieme di sistemi distribuiti che possono eseguire delle operazioni. È
evidente come il concetto di Web Service si applichi alla perfezione nel
contesto delle griglie computazionali, infatti l’applicazione dei Web Service
L’evoluzione delle Information Technologies
16
all’interno delle griglie computazionali può dare stabilità a tutto il sistema,
permettendo alle griglie di crescere, risolvendo i problemi di integrazione su
larga scala.
Questo è il lavoro che è stato fatto dal Globus Project che consente l’accesso
alle risorse di griglia per mezzo di Web Service. Globus infatti con l’adozione
prima di OGSA e, nell’immediato futuro del WS-ResourceFramework, vuole
puntare all’integrazione delle griglie con i Web Service.
1.5 WSRF e l’evoluzione dei Web Service
Questa sezione ci ha permesso di capire in che direzione si sta spostando
internet e i Web Service. Benché le osservazioni che sono state fatte potrebbero
sembrare inconcludenti e irrealizzabili, esistono già sistemi e linguaggi
semantici. Ovviamente l’affermazione di tali standard sul Web è lontano, ma
diversi gruppi di ricerca e grosse software house si stanno spingendo in tale
direzione. Le specifiche WSRF rappresentano uno stadio decisivo
dell’evoluzione dei Web Service, infatti, come vedremo in dettaglio, mirano a
standardizzare l’accesso ai dati (o risorse) al fine di rendere le risorse sempre
più “intelligenti”.