Instrucciones de diseño para servicios web XML creados con ASP.NET
Este tema es específico de una tecnología heredada. Ahora, los servicios Web XML y los clientes de servicios Web XML deben crearse con Windows Communication Foundation.
Los servicios Web son una tecnología eficaz para proporcionar servicios a los que se pueden tener acceso mediante programación a través de Internet. Las recomendaciones siguientes pueden ayudarle a crear servicios Web eficaces:
Los servicios Web admiten la comunicación sincrónica y asincrónica entre el cliente y el servidor que hospeda el servicio Web. En la comunicación sincrónica, el cliente envía una solicitud de un servicio al servidor de host del servicio y espera la respuesta. Esto evita que el cliente realice otras operaciones mientras espera los resultados. La comunicación asincrónica, sin embargo, hace que el cliente siga procesando otras tareas cuando espera una respuesta. El cliente responde al resultado de la solicitud de servicio cuando vuelve a estar disponible.
Al usar la herramienta lenguaje de descripción de servicios Web (Wsdl.exe) para crear su clase de proxy, se generan las versiones sincrónicas y versiones asincrónicas estándar de los métodos en la clase. Las versiones asincrónicas están compuestas de dos métodos denominados Begin y End. El método Begin se usa para iniciar el servicio Web, mientras el método End recupera los resultados.
Al usar la comunicación asincrónica se mejora el uso del sistema y se evitan los retrasos en el cliente mientras espera por los resultados del servicio Web.
Para ver un ejemplo de código, consulte Cómo: Realizar una llamada asincrónica desde un cliente de servicios Web. Para obtener información adicional sobre la comunicación asincrónica, consulte Comunicar de forma asincrónica con servicios Web XML.
Realizar numerosas solicitudes de servicio a través de Internet pueden afectar al rendimiento de la aplicación cliente. Al diseñar su servicio Web, use de forma eficaz las solicitudes de servicio creando métodos que agrupe la información relacionada. Por ejemplo, suponga tiene un servicio Web que recupera información sobre un libro. En lugar de tener métodos independientes para recuperar el título de libro, el autor y el editor, cree un método que devuelva toda esta información en una sola solicitud de servicio. Es más eficaz transferir de una sola vez un bloque grande de información que varios bloques de información más pequeños.
Para obtener un ejemplo de código, consulte Cómo: Agrupar información relacionada en un método de servicio Web único. Al diseñar su servicio Web, asegúrese de usar los ejercicios de programación orientada a objetos estándar. Use el encapsulado para ocultar detalles de implementación. En servicios Web más complejos, puede usar la herencia y el polimorfismo para reutilizar el código y simplificar su diseño.
Para obtener un ejemplo de código, consulte Cómo: Usar la herencia en un servicio Web. Use el almacenamiento en la caché de resultados para mejorar el rendimiento del servicio Web. Cuando se activa el almacenamiento de resultados en la caché, los resultados de una solicitud de servicio se almacenan en la memoria caché de resultados durante un tiempo determinado. Si se realiza una solicitud del servicio Web similar, el resultado se puede obtener de la caché, en lugar de volver a calcularse. Esto mejora el tiempo de reacción del servicio Web al reducir el procesamiento requerido por el servidor del servicio Web. El almacenamiento en caché se puede realizar en el cliente y el servidor. La propiedad Duration permite especificar la cantidad de tiempo durante el que se almacenará en caché el resultado de un servicio Web.
La directiva para habilitar el almacenamiento en caché de resultados en el cliente es:
<%@ OutputCache Duration="60" %> For a code example, see How to: Enable Output Caching on a Web Service Client.You can also use the CacheDuration property of the WebMethod attribute class to enable caching on the server. For a code example, see How to: Enable Server-Side Output Caching for a Web Service.
Al diseñar su servicio Web, intente seguir la estructura de cómo se da formato a un esquema.
Los servicios Web usan SOAP como transporte primario y protocolo de serialización. Un mensaje SOAP está compuesto de un conjunto opcional de encabezados y el cuerpo del mensaje. La sección de encabezado contiene información que puede ser procesada por la infraestructura en el servidor web. SOAP no define ningún encabezado. La sección de cuerpo contiene información procesada por una aplicación, como los parámetros o valor devuelto para un servicio Web.
Para obtener información adicional sobre cómo utilizar los encabezados SOAP, consulte Usar encabezados SOAP.
Proporcione documentación para su servicio Web, como un archivo HTML estático, que describa el funcionamiento de su servicio y las estructuras de datos. Incluya también ejemplos sobre cómo usar el servicio Web. No confíe en la descripción del servicio o la página de ayuda del servicio como su única documentación.
Vea también
Tareas
Cómo: Realizar una llamada asincrónica desde un cliente de servicios web
Cómo: Agrupar información relacionada en un método de servicio web único
Cómo: Usar la herencia en un servicio web
Cómo: Habilitar el almacenamiento en la caché de resultados en un cliente de servicios web
Cómo: Habilitar el almacenamiento en la memoria caché de resultados del lado del servidor para un servicio web
Conceptos
Comunicar de forma asincrónica con servicios web XML