WP WEB SERVICES
20/5/03
e BA
18:43
Página 1
e-Soluciones de Banda Ancha
whitepaper Web Services
WP WEB SERVICES
20/5/03
18:43
Página 2
Web Services
índice 1. Introducción 2. ¿Qué son los Web Services? 3. ¿Cómo funcionan? 4. ¿Cuáles son las ventajas reales que ofrecen? 5. Para saber más... 6. Glosario de Términos 1 Introducción En los últimos años, los sistemas que soportan las aplicaciones de negocio de las empresas han visto cómo crecían de forma exponencial las relaciones de la empresa con su entorno - clientes y proveedores - forzando su adaptación a este nuevo marco de relación. En su origen, los Web Services (Servicios Web) fueron creados como un método para compartir recursos en la red. En un entorno donde el aumento constante del número de usuarios demandaba cada vez más un mayor número de recursos en la red, surgió la necesidad de facilitar la distribución entre empresas de dichos recursos para satisfacer las necesidades de sus clientes. El resultado fue el desarrollo de una tecnología de muy fácil implantación y que era capaz de solucionar los aspectos de disponibilidad e inmediatez que se requerían. Esta tecnología ha tenido una aceptación bastante importante excepto para los servicios que implicaban transacciones seguras, debido a que aún se están definiendo los estándares para asegurar el acceso a los Web Services. Tal es así, que este planteamiento se está empezando a trasladar a la Intranet de las empresas. Así, los Servicios Web se están revelando como la tecnología capaz de distribuir los recursos internos entre todos los sistemas, ahorrando costosos desarrollos de integración.
2 ¿Qué son los Web Services? Los Web Services son pequeños programas formados por varios componentes que permiten ser publicados en directorios e invocados para su ejecución por otros programas vía http, generando una respuesta en XML. Quizás la ventaja principal de los Web Services es que se trata de un estándar aceptado y que, a diferencia de otras tecnologías de integración, posibilitan la compartición de funcionalidades entre sistemas heterogéneos de forma transparente, mediante el intercambio de datos vía XML. Para este intercambio el único requisito es establecer conexiones TCP/IP posibilitando la comunicación http entre los sistemas.
1
20/5/03
18:43
Página 3
Web Services Un Web Service está formado por los siguientes componentes: Lógica. Se trata del componente que procesa la petición para generar la información solicitada por el cliente. Básicamente resuelve el “problema” y puede, para ello, comunicarse con otros Web Services, acceder a bases de datos o bien invocar API de otras aplicaciones solicitando la información (o parte de ella) que ha de generar para enviar en formato XML. SOAP (Simple Object Access Protocol). Protocolo de comunicación, basado en XML, que sirve para la invocación de los servicios Web a través de un protocolo de transporte, como HTTP. Consta de tres partes: una descripción del contenido del mensaje, unas reglas para la codificación de los tipos de datos en XML y una representación de las llamadas RPC para la invocación y respuestas generadas por el Web Service. UDDI (Universal Description, Discovery and Integration) Directorio donde es posible publicar los Web Services, permitiendo con ello que los posibles usuarios de ese servicio puedan obtener toda la información necesaria para la invocación y ejecución del Web Service. Un directorio UDDI ofrece una serie de interfaces que posibilitan tanto la publicación como la obtención de información sobre los Web Services publicados. La información registrada se clasifica según lo que se desee obtener del servicio: Información de negocio: acerca de quién publica el servicio. Información de servicio: descripción del tipo de servicio. Información de enlace: dirección (URL, por ejemplo) para acceder al servicio. WSDL (Web Services Description Language). Lenguaje basado en XML que permite la descripción de los Web Services definiendo la gramática que se debe usar para permitir su descripción y capacidades (datos, comandos que aceptan o producen), y su publicación en un directorio UDDI.
3 ¿Cómo funcionan? Imaginemos, en primer lugar, que una empresa tiene interés en desarrollar una serie de Web Services que hagan visibles el resto de aplicaciones corporativas o, pensando quizás en un alcance más público desde Internet, una serie de funciones asociadas a las aplicaciones de facturación y cobros de sus clientes. 1. Desarrollo del Servicio: En primer lugar tendremos que desarrollar la lógica que queremos ofrecer. Si, por ejemplo, queremos crear un servicio que me devuelva el estado (o los estados) de una factura de un cliente, implementaremos la lógica generando una consulta a la base de datos pasando los filtros que recibiremos como parámetros de entrada del servicio que estamos creando. Crearemos además un fichero WSDL describiendo las funcionalidades del servicio, protocolo de transporte y dirección para su invocación.
2
whitepaper
WP WEB SERVICES
20/5/03
18:43
Página 4
Web Services
2. A continuación procederíamos a publicar el servicio en un directorio UDDI, lo que de alguna forma es hacer público que el servicio ya se encuentra disponible para su acceso. Usaremos el API del directorio para introducir la información de negocio (Páginas blancas), la información de servicio (Páginas verdes) y la especificación del servicio (Páginas amarillas), introduciendo el fichero WSDL de descripción del servicio web.
1. Implementación Lógica WS
UDDI
SOAP
Descripción WSDL 2. Publicación
A partir de este momento los usuarios pueden utilizar el recurso, para ello: a. Buscaríamos el servicio web realizando una consulta al Directorio UDDI. Para realizar la búsqueda se envía al directorio un mensaje SOAP específico. Como resultado se creará una instancia en el cliente capaz de invocar al servicio web gracias a la información obtenida en el directorio, y que nos indica cómo accederemos, con qué sintaxis y qué protocolo usaremos para ello. b. Se invocará al servicio web con la información obtenida mediante encapsulado de mensajes definidos por el protocolo SOAP.
UDDI Descripción WSDL
a. Obtención información del servicio
SOAP Lógica WS
SOAP b. Ejecución
Cliente
3
whitepaper
WP WEB SERVICES
20/5/03
18:43
Página 5
Web Services
4 ¿Cuáles son las ventajas reales que ofrecen? Hagamos antes una pequeña reflexión sobre la situación actual para poder comprender cuál es el verdadero valor de los Web Services. Por regla general, la implantación de las aplicaciones sirve para resolver una necesidad de negocio o de relaciones entre empleados, proveedores y clientes. Se selecciona la plataforma tecnológica más acorde a las necesidades o requerimientos y se realiza un proyecto de implantación que integre los nuevos sistemas con el resto de procesos de la empresa. Pero, para realizar dicha integración, ¿de qué herramientas disponemos?: Soluciones a medida que procesen la generación y recogida de ficheros entre cada sistema, lo que es muy poco escalable ya que cada nueva aplicación requerirá de nuevos y costosos desarrollos. Aplicación de soluciones Middleware (como DCOM, CORBA, etcétera), con altos requisitos para su implantación y costes moderados. Se necesitan, por lo general, plataformas específicas. La implantación de los Web Services en una empresa no requiere grandes inversiones, ya que aprovecha la infraestructura y las herramientas utilizadas en las aplicaciones. Incluso, llegando aún más lejos, cualquier componente ya desarrollado (EJB, Servlets, objetos COM, etcétera) podrá convertirse en un Web Service mediante una sencilla adaptación. Además, al estar basados en protocolos ampliamente aceptados, los Web Services son multiplataforma, facilitando la implantación de los mismos independientemente de la plataforma donde se implante la aplicación. Aunque muy importante, por los ahorros de costes que permiten, no es ésta la única ventaja que nos aportan los Web Services. Su simplicidad, apoyada en unos estándares ampliamente aceptados, permite vislumbrar el valor que esta tecnología podría aportar al negocio de las empresas. El uso de XML para el formato de los datos hace que cualquier dispositivo que disponga de un parser XML pueda usar los Web Services. Esto abre las puertas de las aplicaciones a todos los dispositivos que irán haciéndose un hueco en los próximos años: PDAs, Móviles GPRS / UMTS, Thin Clients, etcétera. No será necesario ningún Middleware propietario para el intercambio de información entre aplicaciones. En el contexto de la extranet, esto facilita que la comunicación entre los procesos de distintas empresas sea mucho más ágil de implantar, reduciendo con ello del Time to Market de los servicios. Permite, además, la distribución de los procesos en la red. La extensión del uso de los Web Services, facilita la reutilización de recursos aligerando el peso de las aplicaciones, ya que la lógica de negocio puede repartirse entre distintos sistemas.
4
whitepaper
WP WEB SERVICES
20/5/03
18:43
Página 6
Web Services
5 Para saber más... Web Services es una tecnología definida por W3C (www.w3.org) donde participan los principales desarrolladores y proveedores de TI. Además existen otros foros encargados de estudiar procesos que permitan la extensión de esta tecnología en escenarios más complejos, o simplemente, velar por la interoperatividad de las versiones de distintos proveedores. A continuación se describen los trabajos más importantes que actualmente se están llevando a cabo: Interoperability (www.ws-i.org): Este grupo se encarga de promover la interoperabilidad de los Web Services entre cada una de las plataformas, aplicaciones y lenguajes de programación. Se trata de un foro abierto donde se ofrecen a los clientes o posibles usuarios de guías de implementación prácticas recomendadas y soporte para el desarrollo de servicios web interoperables. Security: trata de definir unos requisitos a aplicar en los mensajes SOAP para aumentar la seguridad en el uso de los Web Services garantizando la integridad de los mensajes, la confidencialidad y la autenticación. (http://www-106.ibm.com/developerworks/webservices/library/ws-secure ) BPEL4WS (Business Process Execution Language for Web Services): Lenguaje para describir procesos de negocio sobre Web Services. Este lenguaje, combinado con las especificaciones WS-Transaction y WS-Coordination, determina como se deben de definir, coordinar e integrar los procesos de negocio dentro de la empresa o con otros proveedores, a través de sistemas heterogéneos. Un proceso de negocio define básicamente el flujo de tareas que debe realizar así como el orden en que se han de ejecutar y el intercambio de información que se hereda de una tarea a la siguiente. BPEL4WS, define como realizar este proceso usando Servicios Web. (http://www-106.ibm.com/developerworks/webservices/library/ws-bpel) (http://www06.ibm.com/developerworks/webservices/library/ws-transpec) (http://www-106.ibm.com/developerworks/library/ws-coor)
6 Glosario de Términos API (Application Program Interface). Especificación para convención de llamadas a funciones desde un programa que define el interfaz de un servicio. COM (Component Object Model). Entorno de desarrollo que posibilita la creación de objetos que pueden ser usados por las aplicaciones que soportan este entorno. Los objetos OLE y ActiveX están basados en este modelo.
5
whitepaper
WP WEB SERVICES
20/5/03
18:43
Página 7
Web Services
CORBA (Common Object Request Broker Architecture). Arquitectura que posibilita el intercambio de objetos entre aplicaciones. Un objeto CORBA puede estar desarrollado en cualquier lenguaje y correr en cualquier sistema operativo. DCOM (Distributed Component Object Model). Extensión del modelo COM que posibilita el intercambio de objetos entre aplicaciones, conceptualmente similar a CORBA pero basado exclusivamente a entornos Windows. EJB (Enterprise Java Beans). Componentes desarrollados en Java que posibilitan la interconexión de capas en aplicaciones multicapa cliente – servidor. GPRS (General Packet Radio Service). Estándar para las comunicaciones inalámbricas mediante terminales móviles, que soportan velocidades de hasta 115 Kbs. HTML (Hipertext Markup Language). Lenguaje desarrollado por el W3C para el formato de documentos usados en Internet. PDA (Personal Digital Assistant). Pequeño dispositivo personal capaz de integrar pequeñas aplicaciones y un teléfono móvil (en algunos casos). RPC (Remote Procedure Call). Conjunto de herramientas software desarrolladas por un consorcio de fabricantes y diseñadas para asistir a los diseñadores en la creación de aplicaciones distribuidas. TCP/IP (Transmission Control Protocol/Internet protocol). Sistema de protocolos, definidos en RFC 793, en los que se basa buena parte de Internet. El primero se encarga de dividir la información en paquetes en origen, para luego recomponerla en destino, mientras que el segundo se responsabiliza de dirigirla adecuadamente a través de la red. Servlet. Pequeño programa que se ejecuta dentro del entorno de un Servidor Web, en el servidor. UMTS (Universal Mobile Communicatios System). Estándar para las comunicaciones móviles que soporta velocidades de hasta 2 Mbs. W3C (World Wide Web Consortium). Organización apadrinada por el MIT y el CERN, entre otros, cuyo cometido es el establecimiento de los estándares (especificaciones, directrices, software, y herramientas) relacionados con WWW. XML (Extended Markup Language). Lenguaje definido por el W3C como una evolución del lenguaje HTML para generar documentos más flexibles.
Mayo de 2003
6
whitepaper
WP WEB SERVICES