Übersicht über COM+-SOAP-Dienst

HTTP revolutionierte die Computernutzung, indem es Benutzern ermöglichte, einen Webbrowser für einfachen Zugriff auf Informationen auf einem Remoteserver über ein Netzwerk zu verwenden. XML-Webdienste haben nun die Anwendungsentwicklung revolutioniert, indem sie Clientanwendungen das einfache Aufrufen von Remotemethoden über ein Netzwerk ermöglichen.

Es ist häufig hilfreich, wenn eine Clientanwendung eine Methode aufrufen kann, die auf einem Remoteserver implementiert ist. Manchmal verwendet die -Methode flüchtige Informationen, die auf dem Remoteserver gespeichert sind (z. B. eine Methode, die den aktuellen Kurs der Aktie zurückgibt, der einem bestimmten Tickersymbol entspricht). Zu anderen Zeiten möchte der Entwickler die Möglichkeit haben, die Methodenimplementierung zu aktualisieren, ohne alle Anwendungen, die sie verwenden, erneut bereitstellen zu müssen.

Wie webseiten wird auch auf XML-Webdienste über einen Webserver, z. B. IIS, über HTTP zugegriffen. Anstelle von webseiten, die in HTML codiert sind, enthalten diese HTTP-Pakete jedoch die Eingabe- und Ausgabeparameter von Aufrufen einer methode, die auf dem Server implementiert ist und in SOAP codiert ist.

Um einen XML-Webdienst verwenden zu können, müssen Sie die URL, in der der Dienst verfügbar gemacht wird, und den Namen der Methode kennen, die Sie aufrufen möchten, und Sie müssen die Eingabeparameter für die -Methode angeben. Der SOAP 1.1-Standard bietet das folgende Beispiel für ein HTTP-Paket, das einen Remoteaufruf an einen XML-Webdienst unter https://www.stockquoteserver.com/StockQuoteenthält, der den aktuellen Kurs der Aktie zurückgibt, der einem bestimmten Tickersymbol entspricht.

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>

Wie das obige Beispiel veranschaulicht, ist SOAP eine XML-Instanz, die in eine HTTP-Anforderung eingebettet werden kann. Auf ähnliche Weise wird das Ergebnis als HTTP-Paket mit einer SOAP-Nutzlast zurückgegeben, wie im folgenden Beispiel gezeigt.

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>

Obwohl es hilfreich ist, ein gewisses Verständnis der Infrastruktur zu haben, die XML-Webdiensten zugrunde liegt, macht COM+ das Erstellen und Verwenden von XML-Webdiensten so einfach, dass Sie nicht oft auf diese Ebene eintauchen müssen.

Sie können die Methoden in den Standardschnittstellen der konfigurierten COM-Komponenten in jeder COM+-Anwendung als XML-Webdienst verfügbar machen. Beim Schreiben der Komponenten sind keine besonderen Programmierüberlegungen erforderlich, außer dass sich die Methoden, die Sie verfügbar machen möchten, in der Standardschnittstelle befinden und die Komponente (im COM+-Katalog Ihres Servers) konfiguriert werden muss. Sie müssen keinen Code schreiben, um über eine Netzwerkschnittstelle zu kommunizieren oder SOAP zu analysieren. Ausführliche Anweisungen zur Verwendung des COM+-SOAP-Diensts zum Erstellen eines XML-Webdiensts finden Sie unter Erstellen von XML-Webdiensten.

Wenn Sie eine COM+-Anwendung als XML-Webdienst verfügbar machen, werden ausführliche Informationen zur Syntax aller methoden, die von einem XML-Webdienst verfügbar sind, automatisch mit der Web Services Description Language (WSDL) veröffentlicht. Diese Informationen werden von Clients verwendet, die Ihren XML-Webdienst verwenden.

COM+ bietet zwei Möglichkeiten, wie folgt auf einen XML-Remotewebdienst zuzugreifen und diesen zu verwenden:

  • Der WKO-Modus (Well-Known Object ) kann verwendet werden, um auf jeden XML-Webdienst zuzugreifen, der seine Syntax mithilfe von WSDL veröffentlicht, auch wenn dieser XML-Webdienst nicht mit COM+ oder sogar Microsoft Windows erstellt wurde.
  • Der CLIENT-aktivierte Objektmodus (CAO) kann nur für den Zugriff auf XML-Webdienste verwendet werden, die durch die Bereitstellung von COM+-Anwendungen erstellt wurden. Der CAO-Modus erhöht die Leistung, indem persistente Verbindungen verwendet werden, ein Feature, das vom aktuellen SOAP-Standard nicht unterstützt wird.

Beide Methoden ermöglichen Es Clientanwendungen, die Methoden von XML-Webdiensten auf einfache Weise remote aufzurufen, ohne Code schreiben zu müssen, um über eine Netzwerkschnittstelle zu kommunizieren oder SOAP analysieren zu müssen. Ausführliche Informationen zum Zugreifen auf XML-Webdienste in beiden Modi finden Sie unter Zugreifen auf XML-Webdienste im CAO-Modus und Zugreifen auf XML-Webdienste im WKO-Modus.

Hinweis

COM+ unterstützt nur die SOAP-RPC-Spezifikation, nicht die SOAP-Document-Spezifikation.

 

COM+ macht die Verwendung von XML-Webdiensten besonders einfach, da Sie vorhandene COM+-Anwendungen als XML-Webdienste im CAO-Modus vollständig transparent verwenden können. Wenn Sie eine COM+-Anwendung exportieren , die als XML-Webdienst von Ihrem Server verfügbar gemacht wurde, kann jeder Client, der die Anwendung importiert , den XML-Webdienst des Servers transparent verwenden, wenn die importierte Anwendung verwendet wird. Diese Funktion erleichtert die Konvertierung vorhandener COM+-Anwendungen in XML-Webdienste und die Bereitstellung dieser Dienste über ein Netzwerk.

Die Verwendung von XML-Webdiensten hat gegenüber alternativen Implementierungen von Remoteprozeduraufrufen (RPC) mehrere einzigartige Vorteile, einschließlich der folgenden:

  • SOAP ist eine echte plattformübergreifende RPC-Implementierung, die die Interoperabilität erhöht.
  • XML-Webdienste unterstützen Methoden mit Eingabe- und Ausgabeparametern.
  • XML-Webdienste werden über HTTP ausgeführt, was in der Regel Firewalls durchdringen kann, die andere RPC-Implementierungen blockieren könnten.
  • Wenn ein XML-Webdienst mit COM+ implementiert wird, muss der Entwickler keinen speziellen Code schreiben. Dies ist ein enormer Vorteil gegenüber alternativen RPC-Mechanismen.

Hinweis

XML-Webdienste unterstützen keine asynchronen oder transparenten Transaktionsaufrufe. Verwenden Sie den COM+ Queued Components-Dienst , wenn Sie diese Funktionalität benötigen.

 

Überlegungen zur Sicherheit des COM+-SOAP-Diensts