Introducción a la programación de servicios web en código administrado

Con los servicios Web, puede intercambiar los datos de correspondencia imprecisa como mensajes XML entre sistemas heterogéneos. Si bien el acceso remoto a datos y lógica de aplicaciones no es un concepto nuevo, hacerlo así, en modo de correspondencia imprecisa, sí lo es. En las ocasiones anteriores en que se intentó, como DCOM, IIOP y Java/RMI, se requería una integración perfecta entre el cliente y el servidor. En lugar de usar el contrato basado en XML en el que se fundamentan los servicios Web, se usaban formatos de datos binarios, que son específicos del sistema operativo y de la implementación.

Si bien DCOM, IIOP y Java/RMI exigen una determinada tecnología de componentes o convención de llamada a objetos, los servicios Web no están sujetos a dichos requisitos. La única suposición existente entre el cliente y el servidor es que los destinatarios entenderán los mensajes que reciban. En otras palabras, el cliente y el servidor aceptan un contrato, en este caso, un contrato que se define mediante WSDL y una definición de esquema XSL (XSD). A continuación, el cliente y el servidor se comunican mediante la generación de mensajes que cumplen el contrato a través del transporte especificado, como HTTP. Como resultado, pueden obtener acceso a los servicios Web los programas escritos en cualquier lenguaje, utilizando cualquier modelo de componentes, y que se ejecuten en cualquier sistema operativo. Más aún, la flexibilidad que aporta un formato de texto como XML permitirá que los intercambios de mensajes evolucionen con el tiempo en modo de correspondencia imprecisa. Esta correspondencia imprecisa es obligatoria en entornos donde no es posible la actualización simultánea de todas las partes que intervienen en el intercambio de mensajes.

Esta tecnología se conserva a efectos de compatibilidad con versiones anteriores con aplicaciones existentes, y no se recomienda para nuevo desarrollo. Para obtener información sobre las alternativas recomendadas, vea lo siguiente:
 Servicios de Windows Communication Foundation y servicios de datos WCF en Visual Studio

Servicios Web y .NET Framework

Si crea un servicio Web con código administrado basado en ASP.NET y .NET Framework, no es necesario que escriba código de infraestructura para administrar detalles como los protocolos de comunicaciones o transportes de mensajes. Es más, si crea servicios Web que usen el marco de páginas ASP.NET, los servicios pueden aprovechar muchas de las características de .NET Framework, como autenticación, almacenamiento en caché y administración de estados.

En el modelo de aplicación ASP.NET, las páginas web usan la extensión .aspx. Para diferenciar los servicios Web de las páginas ASP.NET habituales, los primeros utilizan la extensión .asmx.

Para facilitar el intercambio de datos bidireccional con los servicios Web, un desarrollador debe:

  • Crear un servicio Web Al crear un servicio Web XML, se crea una aplicación que expone funcionalidad a los clientes de los servicios Web XML.

  • Obtener acceso a un servicio Web. Al tener acceso a un servicio Web, la aplicación cliente busca, hace referencia y usa la funcionalidad contenida en el servicio Web. El cliente de un servicio Web XML es normalmente una aplicación. Esta aplicación puede enviar, recibir y procesar los mensajes que van y vienen del servicio Web.

  • El desarrollador no tiene por qué crear un servicio Web y, a continuación, tener acceso al mismo. Algunos servicios Web, por ejemplo, un servicio de información del tráfico, podría ser creado por una entidad única (por ejemplo, el departamento de estado de transportes). Sin embargo, muchos sitios web, como los de compañías de entrega de carga, podrían tener acceso a este servicio.

Los servicios Web pueden ser aplicaciones independientes o subcomponentes de una aplicación web más grande. Por ejemplo, supongamos que crea una aplicación web para la venta electrónica de libros. Su aplicación web podría usar los servicios Web de la siguiente forma:

  • Crear un servicio Web. Su aplicación expone la lógica de procesamiento de pedidos como un servicio Web. Los sitios web afiliados tienen acceso a este servicio en aplicaciones web que venden libros en línea.

  • Obtener acceso a un servicio Web. Su aplicación tiene acceso a un servicio Web desarrollado por otra compañía en línea especializada en la redacción y el suministro de críticas literarias a los vendedores de libros electrónicos. Cuando alguien visita su tienda electrónica y ve los precios de un determinado libro, también verá las críticas de dicho libro en la misma página.

Recuerde que se puede tener acceso a los servicios Web desde muchos tipos de aplicaciones diferentes, incluidos otros servicios Web, aplicaciones web, aplicaciones Windows y aplicaciones de consola. Sin embargo, el único requisito es que el cliente sea capaz de enviar mensajes al servicio Web.