Servizi Web - Caratteristiche
I servizi Web hanno le seguenti caratteristiche comportamentali speciali:
Basato su XML
I servizi Web utilizzano XML nei livelli di rappresentazione e trasporto dei dati. L'utilizzo di XML elimina qualsiasi rete, sistema operativo o associazione di piattaforma. Le applicazioni basate sui servizi Web sono altamente interoperabili a livello di base.
Debolmente accoppiato
Un consumatore di un servizio web non è legato direttamente a quel servizio web. L'interfaccia del servizio web può cambiare nel tempo senza compromettere la capacità del cliente di interagire con il servizio. Un sistema strettamente accoppiato implica che la logica del client e del server sono strettamente legate l'una all'altra, il che implica che se un'interfaccia cambia, l'altra deve essere aggiornata. L'adozione di un'architettura debolmente accoppiata tende a rendere i sistemi software più gestibili e consente un'integrazione più semplice tra sistemi diversi.
Grana Grossa
Le tecnologie orientate agli oggetti come Java espongono i propri servizi tramite metodi individuali. Un metodo individuale è un'operazione troppo raffinata per fornire capacità utili a livello aziendale. La creazione di un programma Java da zero richiede la creazione di diversi metodi a grana fine che vengono poi composti in un servizio a grana grossa che viene utilizzato da un client o da un altro servizio.
Le aziende e le interfacce che espongono dovrebbero essere a grana grossa. La tecnologia dei servizi Web fornisce un modo naturale per definire servizi a grana grossa che accedono alla giusta quantità di logica aziendale.
Capacità di essere sincrono o asincrono
La sincronicità si riferisce al vincolo del cliente all'esecuzione del servizio. Nelle chiamate sincrone, il client si blocca e attende che il servizio completi la sua operazione prima di continuare. Le operazioni asincrone consentono a un client di richiamare un servizio e quindi eseguire altre funzioni.
I client asincroni recuperano il risultato in un secondo momento, mentre i client sincroni ricevono il risultato quando il servizio è stato completato. La capacità asincrona è un fattore chiave nell'abilitazione di sistemi ad accoppiamento lasco.
Supporta chiamate di procedura remota (RPC)
I servizi Web consentono ai client di richiamare procedure, funzioni e metodi su oggetti remoti utilizzando un protocollo basato su XML. Le procedure remote espongono i parametri di input e output che un servizio Web deve supportare.
Lo sviluppo di componenti tramite Enterprise JavaBeans (EJB) e .NET Components è diventato sempre più parte delle architetture e delle distribuzioni aziendali negli ultimi due anni. Entrambe le tecnologie sono distribuite e accessibili tramite una varietà di meccanismi RPC.
Un servizio Web supporta RPC fornendo servizi propri, equivalenti a quelli di un componente tradizionale, o traducendo le chiamate in entrata in una chiamata di un EJB o di un componente .NET.
Supporta lo scambio di documenti
Uno dei principali vantaggi di XML è il suo modo generico di rappresentare non solo dati, ma anche documenti complessi. Questi documenti possono essere semplici come rappresentare un indirizzo corrente, oppure possono essere complessi come rappresentare un intero libro o una richiesta di offerta (RFQ). I servizi Web supportano lo scambio trasparente di documenti per facilitare l'integrazione aziendale.