Общие сведения о службе COM+ SOAP

Использование компьютера с революцией HTTP, позволяя пользователям использовать веб-браузер для простого доступа к информации на удаленном сервере через сеть. Веб-службы XML теперь изменили разработку приложений, позволяя клиентским приложениям легко вызывать удаленные методы через сеть.

Часто это полезно для клиентского приложения, чтобы иметь возможность вызывать метод, реализованный на удаленном сервере. Иногда метод использует переменную информацию, хранящуюся на удаленном сервере (например, метод, возвращающий текущую цену акций, соответствующий заданному символу тикера). В других случаях разработчик хочет, чтобы возможность обновить реализацию методов без повторного развертывания всех приложений, использующих его.

Как и веб-страницы, доступ к веб-службам XML осуществляется через веб-сервер, например IIS, с помощью HTTP. Однако вместо веб-страниц, закодированных в HTML, эти HTTP-пакеты содержат входные и выходные параметры вызовов метода, реализованного на сервере, закодированного в SOAP.

Чтобы использовать веб-службу XML, необходимо знать URL-адрес, в котором предоставляется служба, и имя метода, который требуется вызвать, и необходимо указать входные параметры для метода. Стандарт SOAP 1.1 предоставляет следующий пример HTTP-пакета, содержащего удаленный вызов веб-службы https://www.stockquoteserver.com/StockQuoteXML, который возвращает текущую цену акций, соответствующих заданному символу тикера.

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>

Как показано в предыдущем примере, SOAP — это XML-экземпляр, который может быть внедрен в HTTP-запрос. Аналогичным образом результат возвращается в виде HTTP-пакета с полезными данными SOAP, как показано в следующем примере.

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>

Хотя полезно понимать инфраструктуру, которая лежит в основе веб-служб XML, COM+ упрощает создание и использование веб-служб XML, что вам не часто придется углубиться на этот уровень.

Методы можно предоставить в интерфейсах по умолчанию настроенных COM-компонентов в любом приложении COM+ в качестве веб-службы XML. При написании компонентов не требуется никаких специальных рекомендаций по программированию, за исключением того, что методы, которые необходимо предоставить, должны находиться в интерфейсе по умолчанию, а компонент должен быть настроен (в каталоге COM+ сервера). Вам не нужно писать код для обмена данными через сетевой интерфейс или синтаксического анализа SOAP. Подробные инструкции по использованию службы COM+ SOAP для создания веб-службы XML см. в разделе "Создание веб-служб XML".

Когда вы предоставляете приложение COM+ в качестве веб-службы XML, подробные сведения о синтаксисе всех методов, доступных из веб-службы XML, публикуются автоматически с помощью языка описания веб-служб (WSDL). Эта информация используется клиентами, используюющими веб-службу XML.

COM+ предоставляет два способа доступа и использования удаленной веб-службы XML, как показано ниже.

  • Режим хорошо известного объекта (WKO) можно использовать для доступа к любой веб-службе XML, публикующей синтаксис с помощью WSDL, даже если веб-служба XML не была создана с помощью COM+ или даже Microsoft Windows.
  • Режим активированного клиентом объекта (CAO) можно использовать только для доступа к веб-службам XML, созданным путем предоставления приложений COM+ . Режим CAO повышает производительность с помощью постоянных подключений, функция, которая не поддерживается текущим стандартом SOAP.

Оба метода позволяют клиентским приложениям удаленно вызывать методы веб-служб XML, не создавая код для обмена данными через сетевой интерфейс или синтаксический анализ SOAP. Дополнительные сведения о доступе к веб-службам XML в любом режиме см. в разделе "Доступ к веб-службам XML" в режиме CAO и доступе к веб-службам XML в режиме WKO.

Примечание.

COM+ поддерживает только спецификацию SOAP-RPC, а не спецификацию SOAP-Document.

 

COM+ делает использование веб-служб XML особенно простым, позволяя использовать существующие приложения COM+ в качестве веб-служб XML в режиме CAO в совершенно прозрачном режиме. При экспорте приложения COM+, которое было предоставлено как веб-служба XML с сервера, любой клиент, импортируемый приложением, может прозрачно использовать xml-службу СЕРВЕРА при каждом использовании импортированного приложения. Это средство делает преобразование существующих приложений COM+ в веб-службы XML и развертывание этих служб через сеть очень легко.

Использование веб-служб XML имеет несколько уникальных преимуществ по сравнению с альтернативными реализациями удаленных вызовов процедур (RPC), включая следующие:

  • SOAP — это реальная кроссплатформенная реализация RPC, которая повышает взаимодействие.
  • Веб-службы XML поддерживают методы с входными и выходными параметрами.
  • Веб-службы XML выполняются по протоколу HTTP, которые обычно могут проникать в брандмауэры, которые могут блокировать другие реализации RPC.
  • При реализации веб-службы XML с помощью COM+разработчик не должен писать специализированный код; это огромное преимущество по сравнению с альтернативными механизмами RPC.

Примечание.

Веб-службы XML не поддерживают асинхронные или прозрачные вызовы транзакций. Используйте службу компонентов COM+ Queued, если требуется эта функция.

 

Рекомендации по безопасности служб COM+ SOAP