Il Consulente WebEAI: Servizi Web, XML e l’Impresa
Introduzione
Le applicazioni usano servizi Web basati su XML per avvertire della loro disponibilità, per fornire interfacce ai richiedenti e per gestire le informazioni ricevute e fornite da altre applicazioni
L’introduzione di Internet aveva promesso di fornire collegamenti tra persone, imprese e organizzazioni in tutto il mondo.
Tuttavia, era necessario uno standard che permettesse lo scambio di dati e di informazioni – questo standard è XML, un insieme di strumenti di linguaggio che consente alle imprese e ai fornitori di infrastrutture di creare vocabolari comuni tecnici e di impresa, comprensibili per ogni computer e per ogni linguaggio di programmazione.
I servizi Web utilizzano un vocabolario tecnico XML per scambiarsi messaggi informativi. Tali informazioni vengono quindi espresse in XML tramite vocabolari specifici del settore dell’impresa.
Le applicazioni usano servizi Web basati su XML per avvertire della loro disponibilità, per fornire interfacce ai richiedenti e per gestire le informazioni ricevute e fornite da altre applicazioni.
I servizi possono essere usufruiti all’interno di un’impresa oppure tra imprese, per consentire l’integrazione delle applicazioni all’interno, EAI (Enterprise Application Integration), oppure tra imprese, IEI (Inter-Enterprise Integration).
Questo significa che la funzionalità delle applicazioni sarà disponibile su Internet tramite interfacce di programma standard.
In effetti, questo consente l’accesso alle applicazioni che usano protocolli proprietari, tramite le infrastrutture Internet esistenti. Inoltre, è ancora più interessante il fatto che queste applicazioni possano comunicare tra di loro senza tener conto del loro linguaggio di sviluppo, del modello degli oggetti o dei protocolli interni.
I servizi Web forniscono un’interfaccia universale che sta rivoluzionando la tecnologia dell’integrazione delle applicazioni in modo che il browser del web, usando la medesima infrastruttura, risulti rivoluzionato dall’idea di client universale.
Poiché tutti i futuri maggiori progetti di sviluppo useranno questo paradigma, i venditori stanno effettuando investimenti massicci in strumenti di sviluppo, middleware e piattaforme software. Microsoft, IBM, BEA, Sun e molti altri stanno adottando standard di servizi web XML come SOAP (Simple Object Access Protocol), WSDL (Web Services Definition Language) e UDDI (Universal Description, Discovery and Integration).
Gli strumenti di questi venditori realizzano codifiche d’interfaccia in modo che, almeno in teoria, applicazioni di un ambiente possano parlare ad altre in ambiente diverso, senza necessità di modifiche.
Quali spinte dall’impresa per i servizi web?
Le imprese sono attratte dai servizi web perché consentono loro di rendere il processo di sviluppo più veloce, meno costoso e migliore in generale.
I servizi vengono esplicitati al livello dell’impresa usando il vocabolario XML del settore interessato, invece che al livello dei componenti oggetto.
Ad esempio, un’applicazione di contabilità può rappresentare i propri servizi web nel linguaggio contabile XBRL, che è composto da un set standard di transazioni contabili, invece che come interfacce verso i componenti delle applicazioni, specificate dallo sviluppatore.
Questa differenza ha un effetto notevole sulla velocità di sviluppo e fornisce all’impresa l’opportunità di accedere e sfruttare nuovi canali di mercato, aggregando e sfruttando i servizi al livello di settore necessari per i nuovi canali.
I servizi web usano l’infrastruttura di comunicazioni esistente – la stessa che supporta il collegamento del browser ai server Web Http.
Poiché la comunicazione e l’informazione del servizio web sono espresse in XML, può essere usato qualsiasi computer che riconosca la codifica ASCII (e le sue applicazioni).
I programmi proprietari possono essere collegati tramite strumenti standard di tutti i maggiori venditori.
Questi stessi venditori – IBM, Microsoft, Sun, Oracle, ecc. – supportano tutti gli standard di base per i servizi web, in modo da consentire l’interoperabilità. Questa capacità di salvaguardare gli investimenti correnti in infrastruttura e in applicazioni riduce drasticamente i costi di investimento.
Nel passato, l’interoperabilità tra imprese (oltre che, naturalmente, tra applicazioni al loro interno) richiedeva una forte integrazione delle applicazioni, con molti punti deboli e con un gran numero di vincoli, come l’impatto di mantenere un formato dei dati specifico o un programma applicativo particolare.
La caratteristica più attraente di XML è la sua flessibilità e la non invasività nelle applicazioni.
Combinando queste caratteristiche con la filosofia dei servizi web di nascondere le interfacce tecniche dietro interfacce di settore, XML fornisce una migliore qualità all’integrazione della catena del valore, mettendo semplicemente i processi interni dell’impresa a disposizione dei partner fidati.
Come operano i servizi web?
Un servizio web è composto da tre componenti fondamentali: un’applicazione dell’impresa, un insieme di strumenti software e un server applicativo o web (vedi figura).
L’insieme di questi componenti consente a un’applicazione in un ambiente (o impresa), come nel caso di un’applicazione contabile, di accedere a un’altra applicazione posizionata ovunque su intranet o Internet (all’interno oppure tra imprese)
L’applicazione dell’impresa fornisce servizi per organizzazioni interne o esterne all’impresa. Un’applicazione di contabilità, ad esempio, registra gli incassi e le spese dell’impresa.
Questa applicazione può fornire un servizio web che risponda a interrogazioni su come l’azienda spende e riceve denaro. Un’applicazione di questo tipo probabilmente esiste già all’interno dell’organizzazione, oppure può essere realizzata utilizzando un insieme di strumenti per i servizi web.
Un insieme di strumenti mette a disposizione il servizio dell’impresa in maniera standard e formato accessibile al web, invece di un formato specifico di componente, come un RMI.
L’ambiente di sviluppo IBM Web, Microsoft Studio .NET, o altri strumenti di Oracle, WebMethods, Symantec e altri, possono essere utilizzati per attivare un servizio di contabilità, come un’interrogazione circa le spese, come servizio web con accesso via Internet da parte di qualsiasi altro programma.
Non è importante il linguaggio usato per l’applicazione stessa – molti linguaggi di programmazione possono avere agganci generati automaticamente dagli strumenti web, in modo da rendere più semplice il processo di attivazione del servizio.
Un server applicativo oppure un server web forniscono il protocollo di comunicazioni, HTTP, unitamente a un ambiente elaborativo per la parte dell’applicazione che definisce il servizio web – ovvero l’interfaccia e non necessariamente la logica d’impresa.
Per inciso, naturalmente, è possibile eseguire la logica dell’impresa nel server applicativo, per una nuova applicazione, anche se questo non è necessario. Tale componente può essere Microsoft IIS, BEA WebLogic, IBM WebSphere, Apache Tomcat, IPlanet, Silverstream, ecc.
Il sistema operativo (oppure, in alcuni casi, il server applicativo) consentono alle applicazioni di girare sul computer.
L’applicazione dell’impresa fornisce un servizio, come l’interrogazione circa le spese. L’insieme degli strumenti genera un aggancio basato sul linguaggio, per connettere l’applicazione al server applicativo o al server web. Gli strumenti generano un’interfaccia ai servizi web per rappresentare il server dell’impresa come un servizio web.
In aggiunta, vengono utilizzati numerosi standard XML. Per esprimere le informazioni contabili dell’impresa – tipo di transazione, input e output – è necessario uno standard contabile XML, come XBRL.
Il protocollo per le comunicazioni tra servizi, in generale, è SOAP e, a un livello inferiore, è utilizzato HTTP, HTTP-S (Secure HTTP), oppure HTTP-R (Reliable HTTP) per la connettività generale sopra il livello TCP/IP.
I produttori di servizi web ne rendono nota la disponibilità all’interno e all’esterno dell’impresa mediante indici UDDI. Protocolli XML aggiuntivi, come WSIL (Web Services Inspection Language), WSFL (Web Services Flow Language) e XAML (un linguaggio per transazioni XA-conforme), forniscono servizi di sistema per gestire i requisiti delle applicazioni.
Il risultato, con il servizio web di contabilità del nostro esempio, può essere ottenuto sia internamente che da un partner, ad esempio dal commercialista che tiene la contabilità o da un partner della catena logistica.
In alternativa, le nuove applicazioni possono essere sviluppate come insiemi distinti di servizi web, con l’interoperabilità all’interno del sistema applicativo, oltre che tra sistemi applicativi diversi.
In che modo i servizi web forniscono valore?
L’adozione di XML e dei servizi web è stata rapida, con il risparmio delle usuali incertezze tipiche dell’arrivo di ogni nuova tecnologia. La ragione è che le imprese ne hanno visto immediatamente i numerosi vantaggi tattici e strategici.
I servizi web funzionano come componenti software di facile uso, indipendenti dai linguaggi utilizzati per scrivere le applicazioni dell’impresa e, infine, sono liberi dalle limitazioni dei componenti software precedenti, come CORBA, COM, e EJB.
Naturalmente, questi modelli di componenti resteranno ancora popolari per lo sviluppo delle applicazioni ma, come servizi web, le loro interfacce resteranno nascoste per l’interoperabilità esterna.
Questo consente a un’impresa di mettere a disposizione le funzionalità fondamentali del proprio sistema informativo, in modo che sviluppatori di applicazioni terze parti possano realizzare applicazioni con valore aggiunto, utilizzando le risorse dell’impresa stessa.
Ad esempio, il sito americano di vendite all’asta di eBay, presenta le proprie interfacce come servizi web che possono essere usati da fornitori di servizi di vendita analoghi terzi, per collegarsi e aggiungere valore ai servizi di eBay.
Oltre al denaro, le imprese hanno investito molto tempo nei sistemi proprietari. Il modello dei servizi web fornisce un modo per collegare le applicazioni proprietarie in un formato XML tecnico e dell’impresa standard e universale, come XBRL e SOAP.
Questo significa che queste applicazioni possono essere aggiornate e riproposte più rapidamente (oltre che a un minor costo), invece di rimpiazzarle. Inoltre, così si riduce il rischio di cristallizzarle in piattaforme o linguaggi particolari, come CORBA, COM, o EJB.
La necessità di integrare i sistemi ha ispirato numerose soluzioni di EAI utilizzando i messaggi, RPC e altre tecnologie all’interno dell’impresa, normalmente con alti costi e spesso con utilizzo limitato.
Il concetto di sviluppare nuove applicazioni oppure di presentare i sistemi proprietari come servizi web può eliminare un livello d’integrazione, anche se è necessario ancora un grande impegno di ricerca tecnica e di fattibilità in quest’area.
Potenzialmente, le applicazioni useranno i servizi web per ottenere le funzionalità applicative direttamente dalle macchine su cui risiedono le applicazioni richieste. Correntemente, le imprese aggiungono infrastrutture addizionali per integrare queste applicazioni, come quelle richieste dalle soluzioni EAI. Nel breve termine, come minimo, i servizi web diverranno parte della soluzione EAI, invece di rimpiazzarla.
Perché i servizi web domineranno nello sviluppo delle applicazioni?
La differenza tra i servizi web e i tentativi precedenti di standardizzare l’elaborazione per componenti è che i servizi web non richiedono l’intera sostituzione dell’architettura informativa dell’impresa. Al contrario, possono essere implementati in maniera incrementale, usando l’esistente in termini di hardware, software, reti e programmi applicativi.
L’impresa non ama il rischio – ma deve anche rispondere rapidamente al mercato con applicazioni che supportino i cambiamenti, deve risparmiare denaro e migliorare la qualità.
XML e i servizi web insieme, forniscono un insieme comune di protocolli tecnici e di impresa che hanno il potere di aggiungere al patrimonio corrente dell’impresa un set globale di sistemi e sottosistemi – un Web in grado di fornire servizi e informazioni.