Interpretación integral: ¿Qué es un servicio web?

  

Aplicaciones y navegadores distribuidos

En cuanto al desarrollo de aplicaciones actuales, encontrará una tendencia absoluta: la gente está empezando a preferir las aplicaciones de cliente ligero basadas en navegador. Esto ciertamente no se debe a que los clientes ligeros pueden proporcionar una mejor interfaz de usuario, sino porque evita el alto costo de publicar aplicaciones de escritorio. Publicar aplicaciones de escritorio es costoso, la mitad debido a problemas de instalación y configuración de la aplicación, y la otra mitad debido a problemas de comunicación entre el cliente y el servidor.

Las aplicaciones de cliente enriquecido de Windows tradicionales utilizan DCOM para comunicarse con el servidor y llamar a objetos remotos. Configurar DCOM para que funcione correctamente en una red grande puede ser una tarea desafiante y una pesadilla para muchos ingenieros de TI. De hecho, muchos ingenieros de TI prefieren soportar las limitaciones del navegador y no ejecutar un DCOM en la LAN. En mi opinión, el resultado es una aplicación que es fácil de publicar, pero que es difícil de desarrollar y tiene una interfaz de usuario muy limitada. En el extremo, gasta más dinero y tiempo, pero desarrolla aplicaciones que parecen más débiles para el usuario. ¿No cree? Pregúntele a su contador qué piensa sobre el nuevo software de contabilidad basado en navegador: la mayoría de los usuarios comerciales quieren una interfaz de usuario de Windows más fácil de usar.

Una buena solución al problema de comunicación cliente-servidor es usar el protocolo HTTP para comunicarse. Esto se debe a que cualquier máquina que ejecuta un navegador web está utilizando el protocolo HTTP. Al mismo tiempo, muchos firewalls actuales también están configurados para permitir solo conexiones HTTP.

Muchos programas comerciales enfrentan otro problema, que es la interoperabilidad con otros programas. Si todas las aplicaciones están escritas en COM o .NET, y todas se ejecutan en la plataforma Windows, entonces el mundo es pacífico. Sin embargo, en realidad, la mayoría de los datos comerciales todavía se almacenan como archivos no relacionales (VSAM) en mainframes y se accede a ellos mediante programas mainframe escritos en el lenguaje COBOL. Además, todavía hay muchos programas comerciales que continúan siendo escritos en C ++, Java, Visual Basic y una variedad de otros lenguajes. Ahora, con la excepción de los programas más simples, todas las aplicaciones deben integrarse e intercambiar datos con aplicaciones que se ejecutan en otras plataformas heterogéneas. Estas tareas generalmente se realizan mediante métodos especiales como la transferencia y el análisis de archivos, las colas de mensajes y las API que solo se aplican a ciertas situaciones, como el Programa Avanzado a la Comunicación del Programa (APPC) de IBM " . Anteriormente, no existía un estándar de comunicación de aplicaciones que fuera independiente de la plataforma, los modelos de construcción y los lenguajes de programación. Solo a través del servicio web, el cliente y el servidor pueden comunicarse libremente utilizando HTTP, independientemente de la plataforma y el lenguaje de programación de los dos programas.

¿Qué es un servicio web?

Tenemos al menos dos respuestas a esta pregunta. En la superficie, un servicio web es una aplicación que expone una API que se puede invocar a través de la web. Esto significa que puede invocar esta aplicación mediante programación a través de la Web. Llamamos a la aplicación que llama a este servicio web un cliente. Por ejemplo, desea crear un servicio web cuyo propósito es devolver las condiciones meteorológicas actuales. Luego puede tener una página ASP que acepta el código postal como una cadena de consulta y luego devuelve una cadena separada por comas que contiene la temperatura y el clima actuales. Para llamar a esta página ASP, el cliente debe enviar la siguiente solicitud HTTP GET:

http://host.company.com/weather.asp?zipcode=20171

Los datos devueltos son Debería ser así:

Esta página ASP se debe contar como un servicio web. Debido a que se basa en una solicitud HTTP GET, expone una API a la que se puede llamar a través de la web. Por supuesto, hay más cosas en el servicio web.

La siguiente es una explicación más precisa de los servicios web: Servicios web es una nueva plataforma para crear aplicaciones distribuidas interoperables. Como programador de Windows, es posible que haya creado aplicaciones distribuidas basadas en componentes con COM o DCOM. COM es una tecnología de componentes muy buena, pero podemos citar fácilmente que COM no cumple con los requisitos.

La plataforma de servicios web es un conjunto de estándares que definen cómo las aplicaciones pueden interoperar en la web. Puede escribir servicios web en cualquier plataforma que desee, en el idioma que desee, siempre que podamos consultar y acceder a estos servicios a través del estándar de servicio web.

Nuevas plataformas

La plataforma de servicios web requiere un conjunto de protocolos para crear aplicaciones distribuidas. Cualquier plataforma tiene su método de representación de datos y sistema de tipos. Para lograr la interoperabilidad, la plataforma de servicios web debe proporcionar un sistema de tipo estándar para comunicar diferentes tipos de sistemas en diferentes plataformas, lenguajes de programación y modelos de componentes. En los sistemas distribuidos tradicionales, las plataformas basadas en interfaz proporcionan métodos para describir interfaces, métodos y parámetros (como los idiomas IDL en COM y COBAR). De manera similar, la plataforma de servicios web también debe proporcionar un estándar para describir los servicios web para que los clientes puedan obtener suficiente información para invocar el servicio web. Finalmente, también debemos tener una forma de hacer llamadas remotas a este servicio web. Este método es en realidad un Protocolo de llamada a procedimiento remoto (RPC). Para lograr la interoperabilidad, este protocolo RPC también debe ser independiente de la plataforma y el lenguaje de programación. Las siguientes tres secciones presentan brevemente las tres tecnologías que conforman la plataforma de servicios web.

XML y XSD

Extensible Markup Language (XML) es el formato básico para representar datos en la plataforma de servicios web. Además de ser fácil de construir y analizar, la principal ventaja de XML es que es independiente de la plataforma y del proveedor. La independencia es más importante que la superioridad técnica: los proveedores de software no eligen una tecnología inventada por los competidores.

XML resuelve el problema de la representación de datos, pero no define un conjunto estándar de tipos de datos, por no mencionar cómo extender este conjunto de tipos de datos. Por ejemplo, ¿qué significa el número entero? 16 bits, 32 bits o 64 bits? Estos detalles son importantes para la interoperabilidad. El esquema XML (XSD) desarrollado por el W3C es un conjunto de estándares que abordan específicamente este problema. Define un conjunto estándar de tipos de datos y proporciona un lenguaje para ampliar el conjunto de tipos de datos. La plataforma de servicios web utiliza XSD como sistema de tipo de datos. Cuando construye un servicio web en un idioma (como VB.NET o C #), para cumplir con los estándares del servicio web, todos los tipos de datos que use deben convertirse a tipos XSD. Es posible que la herramienta que está utilizando ya haya hecho esta conversión automáticamente, pero es probable que modifique el proceso de conversión para que se ajuste a sus necesidades. En el Capítulo 2, nos sumergiremos en XSD y aprenderemos cómo convertir tipos de datos personalizados (como clases) a tipos XSD.

SOAP

Una vez creado el servicio web, usted o alguien más lo llamará. El Protocolo simple de acceso a objetos (SOAP) proporciona un método RPC estándar para invocar un servicio web. De hecho, SOAP es un nombre poco apropiado aquí: significa que el siguiente servicio web está representado como un objeto, pero este no es necesariamente el caso: puede escribir su servicio web como una serie de funciones en C, y aún así Llame usando el jabón. La especificación SOAP define el formato de los mensajes SOAP y cómo usar SOAP a través del protocolo HTTP. SOAP también se basa en XML y XSD, y XML es el método de codificación de datos de SOAP. En el Capítulo 3 discutiremos SOAP y conoceremos los diversos elementos de los mensajes SOAP.

WSDL

¿Cómo le dice a otros sobre la funcionalidad de su servicio web y los parámetros de cada llamada de función? Puede escribir un conjunto de documentación usted mismo, incluso puede Hable verbalmente con las personas que necesitan usar su servicio web. Al menos uno de estos métodos informales tiene un problema grave: cuando los programadores se sientan frente a una computadora y desean usar su servicio web, sus herramientas (como Visual Studio) no pueden brindarles ayuda porque estas herramientas son fundamentales. No conozco su servicio Web

. La solución es proporcionar un documento de descripción formal de forma legible por la máquina. El lenguaje de descripción de servicios web (WSDL) es un lenguaje basado en XML para describir los servicios web y sus funciones, parámetros y valores de retorno. Debido a que se basa en XML, WSDL es legible por máquina y legible por humanos, lo que es un gran beneficio. Algunas de las últimas herramientas de desarrollo pueden generar documentos WSDL basados ​​en su servicio web, así como importar documentos WSDL para generar un código que llame al servicio web correspondiente.

Copyright © Conocimiento de Windows All Rights Reserved