Udostępnij przez


Omówienie usługi COM+ SOAP

HTTP zrewolucjonizowało użycie komputerów, umożliwiając użytkownikom używanie przeglądarki internetowej do łatwego dostępu do informacji na zdalnym serwerze poprzez sieć. Usługi sieci Web XML zrewolucjonizowały tworzenie aplikacji, umożliwiając aplikacjom klienckim łatwe wywoływanie metod zdalnych za pośrednictwem sieci.

Często przydatne jest, aby aplikacja kliencka mogła wywołać metodę zaimplementowaną na serwerze zdalnym. Czasami metoda korzysta z nietrwałych informacji przechowywanych na serwerze zdalnym (na przykład metody zwracającej bieżącą cenę akcji odpowiadającej danym symbolowi znacznika). W innych przypadkach deweloper chce mieć możliwość uaktualnienia implementacji metod bez konieczności ponownego wdrażania wszystkich aplikacji, które go używają.

Podobnie jak strony internetowe, usługi sieci Web XML są dostępne za pośrednictwem serwera internetowego, takiego jak usługi IIS, przy użyciu protokołu HTTP. Jednak zamiast stron internetowych zakodowanych w kodzie HTML te pakiety HTTP zawierają parametry wejściowe i wyjściowe wywołań metody zaimplementowanej na serwerze zakodowane w protokole SOAP.

Aby użyć usługi internetowej XML, musisz znać adres URL, pod którym jest uwidoczniona usługa, oraz nazwę metody, którą chcesz wywołać, i musisz podać parametry wejściowe metody. Standard SOAP 1.1 udostępnia następujący przykład pakietu HTTP zawierającego zdalne wywołanie usługi sieci Web XML w https://www.stockquoteserver.com/StockQuote, która zwraca bieżącą cenę akcji odpowiadającą danemu symbolowi giełdowemu.

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>

Jak pokazano w poprzednim przykładzie, soap jest wystąpieniem XML, które można osadzać w żądaniu HTTP. Podobnie wynik jest zwracany jako pakiet HTTP z ładunkiem protokołu SOAP, jak pokazano w poniższym przykładzie.

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>

Chociaż warto mieć pewne zrozumienie infrastruktury, która leży u podstaw usług sieci Web XML, COM+ tak ułatwia tworzenie i używanie usług internetowych XML, że nie będziesz często musiał zagłębiać się w ten poziom.

Metody można uwidocznić w domyślnych interfejsach skonfigurowanych składników COM w dowolnej aplikacji COM+ jako usługi internetowej XML. Podczas pisania składników nie są konieczne żadne specjalne zagadnienia dotyczące programowania, z tą różnicą, że metody, które chcesz uwidocznić, muszą znajdować się w interfejsie domyślnym, a składnik musi być skonfigurowany (w katalogu COM+ serwera). Nie musisz pisać kodu, aby komunikować się za pośrednictwem interfejsu sieciowego ani analizować protokołu SOAP. Aby uzyskać szczegółowe instrukcje dotyczące tworzenia usługi sieci Web XML przy użyciu usługi COM+ SOAP, zobacz Creating XML Web Services.

Gdy uwidaczniasz aplikację COM+ jako usługę internetową XML, szczegółowe informacje o składni wszystkich metod dostępnych w usłudze sieci Web XML są publikowane automatycznie przy użyciu języka WSDL (Web Services Description Language). Te informacje są używane przez klientów korzystających z usługi internetowej XML.

Com+ udostępnia dwa sposoby uzyskiwania dostępu do zdalnej usługi sieci Web XML i korzystania z nich w następujący sposób:

  • Tryb dobrze znanego obiektu (WKO) może służyć do uzyskiwania dostępu do dowolnej usługi sieci Web XML publikującej składnię przy użyciu języka WSDL, nawet jeśli ta usługa sieci Web XML nie została utworzona przy użyciu modelu COM+ lub nawet systemu Microsoft Windows.
  • Tryb obiektu aktywowanego przez klienta (CAO) może służyć tylko do uzyskiwania dostępu do usług internetowych XML utworzonych przez uwidacznianie aplikacji COM+. Tryb CAO zwiększa wydajność przy użyciu połączeń trwałych, funkcja nieobsługiwana przez bieżący standard SOAP.

Obie metody umożliwiają aplikacjom klienckim zdalne wywoływanie metod usług internetowych XML w prosty sposób bez konieczności pisania kodu w celu komunikowania się za pośrednictwem interfejsu sieciowego lub analizowania protokołu SOAP. Aby uzyskać szczegółowe informacje na temat uzyskiwania dostępu do usług sieci Web XML w obu trybach, zobacz Uzyskiwanie dostępu do usług sieci Web XML w trybie CAO i Uzyskiwanie dostępu do usług sieci Web XML w trybie WKO.

Notatka

Model COM+ obsługuje tylko specyfikację SOAP-RPC, a nie specyfikację SOAP-Document.

 

Com+ sprawia, że korzystanie z usług internetowych XML jest szczególnie łatwe, umożliwiając korzystanie z istniejących aplikacji COM+ jako usług internetowych XML w trybie CAO w całkowicie przejrzysty sposób. Jeśli wyeksportujesz aplikację COM+, która została uwidoczniona jako usługa sieci Web XML z twojego serwera, każdy klient, który importuje tę aplikację, może w przezroczysty sposób używać usługi sieci Web XML serwera za każdym razem, gdy jest używana importowana aplikacja. Ta funkcja sprawia, że konwersja istniejących aplikacji COM+ na usługi internetowe XML i wdrażanie tych usług za pośrednictwem sieci jest bardzo łatwe.

Korzystanie z usług sieci Web XML ma kilka unikatowych zalet w stosunku do alternatywnych implementacji zdalnych wywołań procedur (RPC), w tym następujących:

  • Protokół SOAP to prawdziwa implementacja RPC dla wielu platform, co zwiększa współdziałanie.
  • Usługi sieci Web XML obsługują metody zarówno z parametrami wejściowymi, jak i wyjściowymi.
  • Usługi sieci Web XML działają za pośrednictwem protokołu HTTP, które zwykle mogą przenikać przez zapory, które mogą blokować inne implementacje RPC.
  • Gdy usługa internetowa XML jest implementowana przy użyciu modelu COM+, deweloper nie musi pisać żadnego wyspecjalizowanego kodu; jest to ogromna przewaga nad alternatywnymi mechanizmami RPC.

Notatka

Usługi sieci Web XML nie obsługują asynchronicznych ani przezroczystych wywołań transakcyjnych. Gdy potrzebujesz tej funkcjonalności, użyj usługi COM+ Queued Components.

 

Zagadnienia dotyczące zabezpieczeń usługi COM+ SOAP