Introducción a la programación de servicios web en código administrado
Actualización: noviembre 2007
Los servicios web permiten intercambiar datos en forma de 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. Los intentos anteriores, como DCOM, IIOP y Java/RMI, requerían una estrecha integración entre el cliente y el servidor y utilizaban formatos de datos binarios específicos de la plataforma y la implementación. Si bien dichos protocolos 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. Dicho de otra forma, el cliente y el servidor aceptan un contrato, en este caso descrito utilizando WSDL y XSD, y luego se comunican mediante la generación de mensajes con arreglo al contrato a través de un determinado transporte 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 el uso de un formato de texto como XML permite que el intercambio de mensajes evolucione 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.
Los servicios web se crean utilizando el entorno de aplicación ASP.NET, lo que permite a estos servicios web tener acceso a numerosas características de .NET Framework, como autenticación, almacenamiento en caché y administración de estados. Dado que ASP.NET y .NET Framework constituyen la base de los servicios web en código administrado, los programadores pueden centrarse en la creación o acceso a los servicios web sin necesidad de escribir código de infraestructura.
En el modelo de aplicación ASP.NET, las páginas Web destinadas al explorador utilizan la extensión .aspx. Para diferenciar los servicios web de las páginas ASP.NET habituales, los primeros utilizan la extensión .asmx.
Existen dos funciones fundamentales cuando se trabaja con los servicios web:
Crear un servicio web: al crear un servicio web XML, está creando una aplicación que expone la funcionalidad a los clientes de servicios web XML.
Tener acceso a un servicio web: al tener acceso a un servicio web, su aplicación cliente busca, hace referencia y utiliza la funcionalidad contenida dentro de un servicio web independiente. El cliente de un servicio web XML es normalmente una aplicación que puede enviar, recibir y procesar mensajes hacia el servicio web y desde él. En cambio, el único requisito es que el cliente debe ser capaz de, al menos, enviar mensajes al servicio web. Esto incluye todas las aplicaciones que utilizan .NET Framework.
Los servicios web pueden ser aplicaciones independientes o subcomponentes de una aplicación web más grande. Por ejemplo, suponga que va a crear una aplicación Web para la venta electrónica de libros. La aplicación web quizás interactúe con los servicios web de la siguiente forma:
Crear un servicio web: la aplicación expone la lógica de procesamiento de pedidos como servicio web que los sitios web filiales pueden, a su vez, utilizar en las aplicaciones web para vender libros a través del almacén en línea sin que sea necesario que los clientes visiten el sitio.
Tener acceso a un servicio web: la aplicación tiene acceso a un servicio web proporcionado por otra compañía en línea especializada en escribir y proporcionar críticas de libros a los libreros en línea. Cuando alguien visita su tienda electrónica y ve los datos de un determinado libro, también verá las críticas de dicho libro en la misma página.
Recordar que se puede tener acceso a los servicios web desde casi cualquier tipo de aplicación, incluidos otros servicios web, aplicaciones web, aplicaciones de Windows y aplicaciones de consola. El único requisito es que el cliente debe ser capaz de, al menos, enviar mensajes al servicio web.
Vea también
Otros recursos
Servicios web en código administrado
Programar la Web con servicios web