Compartir a través de


Información general sobre el servicio SOAP de COM+

HTTP revolucionado el uso de equipos al permitir que los usuarios usen un explorador web para facilitar el acceso a la información en un servidor remoto a través de una red. Los servicios web XML ahora han revolucionado el desarrollo de aplicaciones al permitir que las aplicaciones cliente llamen fácilmente a métodos remotos a través de una red.

A menudo resulta útil que una aplicación cliente pueda llamar a un método implementado en un servidor remoto. A veces, el método utiliza información volátil almacenada en el servidor remoto (por ejemplo, un método que devuelve el precio actual del stock correspondiente a un símbolo de ticer determinado). En otros momentos, el desarrollador quiere la capacidad de actualizar la implementación de métodos sin tener que volver a implementar todas las aplicaciones que la usan.

Al igual que las páginas web, se accede a los servicios web XML a través de un servidor web, como IIS, mediante HTTP. Sin embargo, en lugar de las páginas web codificadas en HTML, estos paquetes HTTP contienen los parámetros de entrada y salida de las llamadas a un método implementado en el servidor, codificados en SOAP.

Para usar un servicio web XML, debe conocer la dirección URL donde se expone el servicio y el nombre del método al que desea llamar, y debe proporcionar los parámetros de entrada al método . El estándar SOAP 1.1 proporciona el siguiente ejemplo de un paquete HTTP que contiene una llamada remota a un servicio web XML en https://www.stockquoteserver.com/StockQuote, que devuelve el precio actual del stock correspondiente a un símbolo de ticer determinado.

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>

Como se muestra en el ejemplo anterior, SOAP es una instancia XML que se puede incrustar en una solicitud HTTP. Del mismo modo, el resultado se devuelve como un paquete HTTP con una carga SOAP, como se muestra en el ejemplo siguiente.

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>

Aunque resulta útil tener cierta comprensión de la infraestructura que subyace a los servicios web XML, COM+ facilita la creación y el uso de servicios web XML que a menudo no tendrá que profundizar en este nivel.

Puede exponer los métodos en las interfaces predeterminadas de los componentes COM configurados en cualquier aplicación COM+ como un servicio web XML. No se necesitan consideraciones de programación especiales al escribir los componentes, excepto que los métodos que desea exponer deben estar en la interfaz predeterminada y el componente debe configurarse (en el catálogo COM+ del servidor). No es necesario escribir código para comunicarse a través de una interfaz de red ni analizar SOAP. Para obtener instrucciones detalladas sobre el uso del servicio SOAP COM+ para crear un servicio web XML, vea Creating XML Web Services.

Al exponer una aplicación COM+ como un servicio web XML, se publica automáticamente información detallada sobre la sintaxis de todos los métodos disponibles desde un servicio web XML mediante el Lenguaje de descripción de servicios web (WSDL). Esta información la usan los clientes que usan el servicio web XML.

COM+ proporciona dos maneras de acceder y usar un servicio web XML remoto, como se indica a continuación:

  • El modo de objeto conocido (WKO) se puede usar para tener acceso a cualquier servicio web XML que publique su sintaxis mediante WSDL, incluso si ese servicio web XML no se creó con COM+ o incluso Microsoft Windows.
  • El modo de objeto activado por el cliente (CAO) solo se puede usar para acceder a los servicios web XML creados mediante la exposición de aplicaciones COM+. El modo CAO aumenta el rendimiento mediante conexiones persistentes, una característica no compatible con el estándar SOAP actual.

Ambos métodos permiten a las aplicaciones cliente llamar a los métodos de los servicios web XML de forma remota de forma sencilla, sin tener que escribir código para comunicarse a través de una interfaz de red o analizar SOAP. Para obtener más información sobre cómo obtener acceso a servicios web XML en cualquiera de los modos, vea Accessing XML Web Services in CAO Mode and Accessing XML Web Services in WKO Mode.

Nota:

COM+ solo admite la especificación SOAP-RPC, no la especificación SOAP-Document.

 

COM+ facilita especialmente el uso de servicios web XML, ya que permite usar aplicaciones COM+ existentes como servicios web XML en modo CAO de forma totalmente transparente. Si exporta una aplicación COM+ que se ha expuesto como un servicio web XML desde el servidor, cualquier cliente que importe la aplicación puede usar de forma transparente el servicio web XML del servidor siempre que se use la aplicación importada. Esta instalación facilita la conversión de aplicaciones COM+ existentes a servicios web XML y la implementación de esos servicios a través de una red muy fácil.

El uso de servicios web XML tiene varias ventajas únicas sobre las implementaciones alternativas de llamadas a procedimientos remotos (RPC), entre las que se incluyen las siguientes:

  • SOAP es una verdadera implementación rpc multiplataforma, lo que aumenta la interoperabilidad.
  • Los servicios web XML admiten métodos con parámetros de entrada y salida.
  • Los servicios web XML se ejecutan a través de HTTP, que normalmente pueden penetrar en firewalls que podrían bloquear otras implementaciones de RPC.
  • Cuando se implementa un servicio web XML mediante COM+, el desarrollador no tiene que escribir ningún código especializado; se trata de una enorme ventaja sobre los mecanismos de RPC alternativos.

Nota:

Los servicios web XML no admiten llamadas transaccionales asincrónicas o transparentes. Use el servicio Com+ Queued Components cuando necesite esta funcionalidad.

 

Consideraciones de seguridad del servicio SOAP de COM+