Panoramica del servizio SOAP COM+
HTTP rivoluzionato l'uso di computer consentendo agli utenti di usare un Web browser per facilitare l'accesso alle informazioni su un server remoto su una rete. I servizi Web XML hanno ora rivoluzionato lo sviluppo di applicazioni consentendo alle applicazioni client di chiamare facilmente metodi remoti su una rete.
Spesso è utile che un'applicazione client sia in grado di chiamare un metodo implementato in un server remoto. A volte il metodo usa informazioni volatili archiviate nel server remoto (ad esempio, un metodo che restituisce il prezzo corrente del titolo corrispondente a un determinato simbolo ticker). In altri casi, lo sviluppatore vuole poter aggiornare l'implementazione dei metodi senza dover ridistribuire tutte le applicazioni che lo usano.
Come le pagine Web, i servizi Web XML sono accessibili tramite un server Web, ad esempio IIS, tramite HTTP. Tuttavia, anziché le pagine Web codificate in HTML, questi pacchetti HTTP contengono i parametri di input e output delle chiamate a un metodo implementato nel server, codificati in SOAP.
Per usare un servizio Web XML, è necessario conoscere l'URL in cui è esposto il servizio e il nome del metodo che si desidera chiamare ed è necessario fornire i parametri di input al metodo . Lo standard SOAP 1.1 fornisce l'esempio seguente di un pacchetto HTTP contenente una chiamata remota a un servizio Web XML in https://www.stockquoteserver.com/StockQuote
, che restituisce il prezzo corrente del titolo corrispondente a un determinato simbolo di ticker.
POST /StockQuote HTTP/1.1
Host: www.stockquoteserver.com
Content-Type: text/xml; "charset=utf-8"
Content-Length: nnnn
SOAPAction: "Some-URI"
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV:encodingStyle="https://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<m:GetLastTradePrice xmlns:m="Some-URI">
<symbol>DIS</symbol>
</m:GetLastTradePrice>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Come illustrato nell'esempio precedente, SOAP è un'istanza XML che può essere incorporata in una richiesta HTTP. Analogamente, il risultato viene restituito come pacchetto HTTP con un payload SOAP, come illustrato nell'esempio seguente.
HTTP/1.1 200 OK
Content-Type: text/xml; "charset=utf-8"
Content-Length: nnnn
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV:encodingStyle="https://schemas.xmlsoap.org/soap/encoding//">
<SOAP-ENV:Body>
<m:GetLastTradePriceResponse xmlns:m="Some-URI">
<Price>34.5</Price>
</m:GetLastTradePriceResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Sebbene sia utile comprendere l'infrastruttura sottostante ai servizi Web XML, COM+ semplifica la creazione e l'uso di servizi Web XML che spesso non è necessario approfondire a questo livello.
È possibile esporre i metodi nelle interfacce predefinite dei componenti COM configurati in qualsiasi applicazione COM+ come servizio Web XML. Non sono necessarie considerazioni speciali sulla programmazione durante la scrittura dei componenti, ad eccezione del fatto che i metodi che si desidera esporre devono trovarsi nell'interfaccia predefinita e il componente deve essere configurato (nel catalogo COM+ del server). Non è necessario scrivere codice per comunicare tramite un'interfaccia di rete o per analizzare SOAP. Per istruzioni dettagliate sull'uso del servizio SOAP COM+ per creare un servizio Web XML, vedere Creazione di servizi Web XML.
Quando si espone un'applicazione COM+ come servizio Web XML, le informazioni dettagliate sulla sintassi di tutti i metodi disponibili da un servizio Web XML vengono pubblicate automaticamente, utilizzando WSDL (Web Services Description Language). Queste informazioni vengono utilizzate dai client che usano il servizio Web XML.
COM+ offre due modi per accedere e usare un servizio Web XML remoto, come indicato di seguito:
- La modalità WKO (Well Known Object ) può essere utilizzata per accedere a qualsiasi servizio Web XML che pubblica la sintassi utilizzando WSDL, anche se tale servizio Web XML non è stato creato utilizzando COM+ o anche Microsoft Windows.
- La modalità DELL'oggetto attivato dal client (CAO) può essere usata solo per accedere ai servizi Web XML creati esponendo applicazioni COM+. La modalità CAO aumenta le prestazioni usando connessioni persistenti, una funzionalità non supportata dallo standard SOAP corrente.
Entrambi i metodi consentono alle applicazioni client di chiamare in remoto i metodi dei servizi Web XML in modo semplice, senza dover scrivere codice per comunicare tramite un'interfaccia di rete o analizzare SOAP. Per informazioni dettagliate su come accedere ai servizi Web XML in entrambe le modalità, vedere Accesso ai servizi Web XML in modalità CAO e accesso ai servizi Web XML in modalità WKO.
Nota
COM+ supporta solo la specifica SOAP-RPC, non la specifica SOAP-Document.
COM+ semplifica l'uso di servizi Web XML consentendo di usare applicazioni COM+ esistenti come servizi Web XML in modalità CAO in modo completamente trasparente. Se si esporta un'applicazione COM+ esposta come servizio Web XML dal server, qualsiasi client che importa l'applicazione può utilizzare in modo trasparente il servizio Web XML del server ogni volta che viene usata l'applicazione importata. Questa funzionalità rende molto semplice la conversione di applicazioni COM+ esistenti in servizi Web XML e la distribuzione di tali servizi in una rete.
L'uso di servizi Web XML presenta diversi vantaggi univoci rispetto alle implementazioni alternative di chiamate di procedura remota (RPC), tra cui:
- SOAP è una vera implementazione RPC multipiattaforma, che aumenta l'interoperabilità.
- I servizi Web XML supportano metodi con parametri di input e output.
- I servizi Web XML vengono eseguiti su HTTP, che in genere può penetrare nei firewall che potrebbero bloccare altre implementazioni RPC.
- Quando un servizio Web XML viene implementato tramite COM+, lo sviluppatore non deve scrivere codice specializzato; questo è un enorme vantaggio rispetto ai meccanismi RPC alternativi.
Nota
I servizi Web XML non supportano chiamate transazionali asincrone o trasparenti. Usare il servizio COM+ Queued Components quando è necessaria questa funzionalità.
Argomenti correlati