Servizi Web - Architettura
Esistono due modi per visualizzare l'architettura del servizio Web:
- Il primo è esaminare i ruoli individuali di ogni attore del servizio web.
- Il secondo è esaminare lo stack di protocolli del servizio web emergente.
Ruoli del servizio Web
Ci sono tre ruoli principali all'interno dell'architettura del servizio web:
Fornitore di servizi
Questo è il fornitore del servizio web. Il fornitore di servizi implementa il servizio e lo rende disponibile su Internet.
Richiedente del servizio
Questo è qualsiasi consumatore del servizio web. Il richiedente utilizza un servizio Web esistente aprendo una connessione di rete e inviando una richiesta XML.
Registro dei servizi
Questa è una directory di servizi centralizzata in modo logico. Il registro fornisce un luogo centrale in cui gli sviluppatori possono pubblicare nuovi servizi o trovare quelli esistenti. Serve quindi come un centro di compensazione centralizzato per le aziende e i loro servizi.
Stack di protocollo del servizio Web
Una seconda opzione per visualizzare l'architettura del servizio Web è esaminare lo stack di protocollo del servizio Web emergente. Lo stack è ancora in evoluzione, ma attualmente ha quattro livelli principali.
Servizio di trasporto
Questo livello è responsabile del trasporto dei messaggi tra le applicazioni. Attualmente, questo livello include Hyper Text Transport Protocol (HTTP), Simple Mail Transfer Protocol (SMTP), File Transfer Protocol (FTP) e protocolli più recenti come Blocks Extensible Exchange Protocol (BEEP).
Messaggistica XML
Questo livello è responsabile della codifica dei messaggi in un formato XML comune in modo che i messaggi possano essere compresi a entrambe le estremità. Attualmente, questo livello include XML-RPC e SOAP.
Descrizione del servizio
Questo livello è responsabile della descrizione dell'interfaccia pubblica di un servizio Web specifico. Attualmente, la descrizione del servizio viene gestita tramite WSDL (Web Service Description Language).
Scoperta del servizio
Questo livello è responsabile della centralizzazione dei servizi in un registro comune e della semplice funzionalità di pubblicazione / ricerca. Attualmente, l'individuazione dei servizi viene gestita tramite UDDI (Universal Description, Discovery, and Integration).
Man mano che i servizi Web si evolvono, possono essere aggiunti ulteriori livelli e ulteriori tecnologie possono essere aggiunte a ogni livello.
Il capitolo successivo spiega i componenti dei servizi web.
Poche parole sul servizio di trasporto
Il fondo dello stack del protocollo del servizio Web è il trasporto del servizio. Questo livello è responsabile del trasporto effettivo dei messaggi XML tra due computer.
Hyper Text Transfer Protocol (HTTP)
Attualmente, HTTP è l'opzione più popolare per il trasporto di servizi. HTTP è semplice, stabile e ampiamente distribuito. Inoltre, la maggior parte dei firewall consente il traffico HTTP. Ciò consente ai messaggi XMLRPC o SOAP di mascherarsi come messaggi HTTP. Ciò è utile se si desidera integrare applicazioni remote, ma solleva una serie di problemi di sicurezza.
Blocks Extensible Exchange Protocol (BEEP)
Questa è una promettente alternativa a HTTP. BEEP è un nuovo framework IETF (Internet Engineering Task Force) per la creazione di nuovi protocolli. BEEP è stratificato direttamente su TCP e include una serie di funzionalità integrate, tra cui un protocollo di handshake iniziale, autenticazione, sicurezza e gestione degli errori. Utilizzando BEEP, è possibile creare nuovi protocolli per una varietà di applicazioni, inclusi messaggistica istantanea, trasferimento di file, diffusione di contenuti e gestione della rete.
SOAP non è legato ad alcun protocollo di trasporto specifico. In effetti, puoi utilizzare SOAP tramite HTTP, SMTP o FTP. Un'idea promettente è quindi quella di utilizzare SOAP su BEEP.