Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this document? Why not share!

Like this? Share it with your network

Share

23444719 monografia-de-web-services

on

  • 881 views

monografia

monografia

Statistics

Views

Total Views
881
Views on SlideShare
880
Embed Views
1

Actions

Likes
0
Downloads
24
Comments
0

1 Embed 1

http://www.slideshare.net 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

23444719 monografia-de-web-services Document Transcript

  • 1. Universidad Técnica Federico Santa María Departamento de Informática Programa de Magíster en Tecnologías de la Información Web Services Sergio Sánchez R. email: ssanchez@uvm.cl Ricardo Vásquez V. email: rvasquez@csav.com Resumen En la última década los Web Services han tomado un sitial importante dentro del entorno de los desarrolladores de aplicaciones, por las ventajas que entregan a nivel de distribución de servicios e integración de sistemas heterogéneos. Por esto el objetivo fundamental de este estudio es dar a conocer los Web Services de forma conceptual (sin entrar en detalles de implementación) y poder determinar detalladamente como estos dan respuesta a las problemáticas comunes que subyacen de sus ventajas: manejo de seguridad, coordinación de procesos y manejo transacciones. Durante este estudio se comprenderá el funcionamiento de los Web Services, las arquitecturas de componentes propuestas por empresas importantes para el manejo de las problemáticas planteadas anteriormente y un ejemplo aplicado de publicación simple de servicios mediante Web Services e integración de sistemas. 1 Introducción Durante los inicios del desarrollo de las aplicaciones uno de los problemas que mas se trato de solucionar era que los sistemas fueran independientes de la plataforma de hardware y sistema operativo, lo que de alguna forma se logra con la aparición de lenguajes de programación que permiten realizar esa diferencia, como por ejemplo Java. Luego, el ambiente WEB abrió las puertas para generar aplicaciones muchos más independientes y accesibles desde cualquier parte del mundo, pero aún así existía un problema que se debía solucionar que era la heterogeneidad de los diferentes sistemas, los cuales estaban escritos en lenguajes distintos por lo que su interoperabilidad se hacía compleja. Es en este punto donde nace una solución que se empapa de diversas tecnologías que funcionan, y que de alguna forma solucionan este problema de comunicación entre aplicaciones que se encuentran en ambientes distribuidos (La WEB) y que se desarrollan absolutamente de forma distinta. Está solución es conocida como Web Services, también en muchos textos se realiza una relación directa con SOA (Arquitectura Orientada a Servicios), esto ya que los Web Services son considerados los servicios bases para su funcionamiento, dejando claro que se podrían utilizar otros, por esto no es bueno mezclar los conceptos del todo. En este estudio daremos a conocer los fundamentos de los Web Services y los nuevos problemas que se les presentan, sobretodo en la integración de sistemas y procesos de negocios. Además se dará a conocer una aplicabilidad real de la tecnología dentro de una de las empresas nacionales más importantes. 2 Desarrollo del informe 2.1 Aspectos Generales de los Web Services. Uno de los conceptos, en la última década, que ha tomado importancia en el mundo del desarrollo de aplicaciones es el de Web Services. Desde el punto de vista más simple, se podría mencionar que los Web Services son Servicios Web, entendiendo por servicios “programas que pueden ser accedidos por la red” (En este caso la red sería la WEB). Desde el punto de vista de un desarrollador, un Web Service es un componente independiente que posee un conjunto de funcionalidades que pueden ser accedidas desde cualquier lugar y plataforma. Desde cualquier lugar, quiere decir que estarán disponibles dichos servicios a través de un medio común de comunicación (la WEB). Desde cualquier plataforma, quiere decir que los datos que se reciben y son enviados por los Web Services son independientes de la plataforma de origen o destino, esto se logra utilizando para la presentación de los datos el Lenguaje Extendido de Marcas (XML). El organismo encargado de desarrollar gran parte de los estándares de Internet, denominado W3C (Word Wide Web Consortium) posee en la actualidad un grupo de investigación especializado en Web 1
  • 2. Service, lo que demuestra la importancia que tiene dicho concepto dentro de estos últimos años. Este grupo de trabajo ha entregado una definición formal acerca de los Web Services, la que se presenta a continuación: “Un Web Service es una aplicación de software identificada mediante una URI (Uniform Resource Identifier. También se utiliza URL), cuya interfaz es capaz de ser definida, descrita, y descubierta mediante artefactos XML, y soportar interacciones directas con otras aplicaciones de software usando mensajes basados en XML y protocolos basados en Internet” [WEB-01]. Consensuando está definición técnica con la visión de los desarrolladores, se puede mencionar que el Web Service es un componte de software que debe ser definido, descrito y descubierto mediante artefactos XML. Es bueno dejar claro dentro del concepto técnico que un Web Service no posee interfaces como una aplicación común, sino que solo publica un conjunto de funcionalidades que podrán ser accedidas por otras aplicaciones. Un Web Service se basa en las siguientes tecnologías para dar cumplimiento a las definiciones entregadas anteriormente [WEB-02]: Un formato que describa la interfaz del componente (sus métodos y atributos) basado en XML. Por lo general este formato es el WSDL (Web Service Description Language). Un protocolo de aplicación basado en mensajes y que permite que una aplicación interactúe con el Web Service. Por lo general este protocolo es SOAP (Simple Object Access Protocol). Un protocolo de transporte que se encargue de transportar los mensajes por Internet. Por lo general este protocolo es el HTTP (Hiper-Text Transport Protocol). Pudieran existir variantes para el transporte, pero no son del estudio de este documento. Si requiere mayor información ver [TAR-01]. En la figura 1 se da a conocer la forma en que estas tecnologías interactúan para permitir la comunicación entre un proceso que requiere la utilización de un Web Service y el mismo Web Service. Explicación Breve del Proceso: 2 1.- Se realiza un registro en el catalogo UDDI (Universal Description, Discovery, and Integration). Este catalogo esta en 1 formato XML. En palabras simples es como un directorio de páginas amarillas de Web Services. Este paso es conocido como 3 Publicación. 2.- Se realiza la búsqueda de un Web Service en el Catalogo UDDI. Este paso es conocido como Búsqueda. 3.- Se obtiene la referencia al Web Service. En la aplicación que requiere el servicio se crea un Proxy, el cuál es un componente lógico que emula las interfaces del Web Service, para así 4 permitir su utilización transparente para el desarrollador. 4.- Se establece la comunicación entre el componente que Figura 1. Interconexión de los requiere el servicio y el Web Service. Esto se realiza utilizando Componentes para permitir la el protocolo SOAP sobre HTTP regularmente. Este paso es comunicación mediante Web Services conocido como Interacción. [TAR-01]. Para una mayor comprensión técnica se definirán, más en detalle, cada una de las tecnologías que permiten la utilización de Web Service [WEB-03]: SOAP (Simple Object Access Protocol): protocolo estándar creado por Microsoft, IBM y otros, el cuál se utiliza para codificar la información de los mensajes de petición y respuesta de los Web Services que se envían a través de una red. Es un protocolo ligero de mensajes XML. Por lo tanto, este protocolo permite codificar las llamadas a los métodos de un Web Service y entender como debe codificar el Web Service el resultado para que el peticionario del servicio lo pueda interpretar. WSDL (Web Services Description Language): lenguaje desarrollado en forma conjunta por Microsoft e IBM. Este lenguaje describe la interfaz pública de los Web Service. Está basado en XML y describe la forma de comunicación, es decir, los requisitos del protocolo y los formatos de los mensajes necesarios para interactuar con los servicios listados en un catálogo. Sergio Sánchez R. 2 Ricardo Vásquez V.
  • 3. UDDI (Universal, Description, Discovery and Integration): es un directorio de Web Services distribuido y basado en Web que permite que se listen, busquen, y descubran este tipo de componentes de software. Por último, para concluir este punto, es bueno mencionar que los Web Services no son la solución a todos los problemas, e idealmente fueron definidos para trabajar dentro los siguientes ámbitos [WEB-02]: Servicios simples y públicos: se expondrá una funcionalidad simple accesible desde Internet. Ej.: se puede crear un servicio para entregar la temperatura de una ciudad en particular, al cuál pueden acceder diferentes aplicaciones. Integración de Aplicaciones: se usan como extensiones de sistemas ya existentes, para que estos sean accesibles por aplicaciones y sistemas heterogéneos desarrollados bajo cualquier plataforma y lenguaje y que participan en procesos comunes. Sistemas de Grid Computing: la definición de Grid Computing: “es una tecnología innovadora que permite utilizar de forma coordinada todo tipo de recursos (entre ellos cómputo, almacenamiento y aplicaciones específicas) que no están sujetos a un control centralizado. En este sentido es una nueva forma de computación distribuida, en la cual los recursos pueden ser heterogéneos (diferentes arquitecturas, supercomputadores, clusters...) y se encuentran conectados mediante redes de área extensa (por ejemplo Internet)” [WEB-03]. En este caso de arquitecturas distribuidas la utilización de Web Services es muy provechosa sobre todo en el compartimiento de aplicaciones y datos heterogéneos. En los puntos siguientes se darán a conocer temas relevantes para el trabajo eficiente y efectivo de los Web Services. 2.2 Seguridad en Web Services Considerando que los Web Services son componentes de software, es bueno mencionar que su desarrollo es soportado por el Framework .NET de Microsoft y el Framework J2EE de Sun. Esto es importante de mencionar ya que existen formas de aplicar seguridad en el desarrollo de los Web Services utilizando particularidades del entorno de desarrollo y las plataformas en que ellos trabajan (Entiéndase para este caso plataformas como sistemas operativos y servidores web). Durante este punto no se definirán las particularidades de los ambientes de desarrollo para la seguridad, pero si desea tener mayor información ver [WEB-07] y [WEB-08]. Parece razonable considerar el tema de la seguridad en el trabajo de Web Services, ya que como principio básico sería importante tener seguridad que al servicio al cuál accedo a buscar información sea realmente el servicio que necesito, además que las respuestas que se entreguen sean realmente las correctas. Claramente la seguridad tiene un mayor trasfondo que lo mencionado anteriormente, pero esa incertidumbre pone en el tapete la duda sobre el trabajo con estos componentes. Con respecto al punto de la seguridad la W3C en la especificación de la Arquitectura de Web Services (WSA) indica algunos requisititos que se deben cumplir entorno a la seguridad, los cuales son: Tratar la seguridad de los Web Services a través de dominios y plataformas distribuidas. Para mayor detalle de este requisito ver punto AC006 de la [WEB-09]. Permitir la protección de privacidad para el cliente de un Web Services a través de múltiples dominios y servicios. Para mayor detalle ver punto AC020 de la [WEB-09]. Estas indicaciones apuntan directamente a considerar que uno de los fuertes de los Web Services es su trabajo en ambientes distribuidos, lo que entrega problemáticas por ejemplo como la suplantación. Y el otro punto está orientado a entender que debe existir una seguridad para los clientes que acceden a estos servicios, entendiendo que el cliente debe confiar plenamente en que la contraparte solicitada es realmente lo esperado, esto también sucede al revés, en los casos que los servicios solicitados no sean públicos. Entorno a estos requisitos Microsoft e IBM durante el año 2002 trabajaron en la definición de una arquitectura de seguridad para los Web Services, la cuál se muestra en la figura 2, actualmente esta iniciativa esta siendo coordinada por OASIS [WEB-10]. Sergio Sánchez R. 3 Ricardo Vásquez V.
  • 4. Cada uno de los componentes de este stack 3 serán descritos en detalle más adelante demostrando que cumple con las especificaciones básicas de seguridad exigidas por la W3C. A 2 continuación se entrega una visón general de las capas que conforman esta arquitectura: 1 1.- Es el modelo de seguridad de mensajes, está capa provee lo básico para las demás capas de la arquitectura. 2.- Es la Policy Layer (Capa Política) la cuál incluye una política de Web Service de punto final Figura 2. Stack de Protocolos de la Arquitectura de (WS-Policy), un modelo de confianza (WS- Seguridad Definida por Microsoft e IBM. [WEB-11] Truest), y un modelo de privacidad (WS-Privacy). Juntas estas especificaciones iniciales proporcionan la base sobre la cual se puede trabajar para establecer servicios interoperables seguros de Web Services a través de dominios de confianza. 3.- Está capa esta determinada para trabajar con los clientes, partners, y organizaciones estándares (Customer Layer) para proveer a continuación especificaciones de seguridad federada lo cuál incluye: conversación segura (WS-SecureConversation), confianza federada (WS-Federation) y autorización (WS- Authorization). Está explicación de la arquitectura permite determinar que cumple con los requisitos solicitados por W3C entorno a considerar la seguridad de los Web Service en ambientes distribuidos (Según figura 2 punto 1 y 2) y dar privacidad a los clientes en estos ambientes (Según figura 2 punto 3). A continuación se describen en detalle cada uno de los protocolos definidos en las diversas capas: WS-Security [WEB-11]: aborda el tema de la seguridad haciendo uso de las especificaciones y los estándares existentes. Con ello se evita la necesidad de definir una solución de seguridad completa en WS-Security. La industria ha resuelto muchos de estos problemas. Kerberos y X.509 se ocupan del tema de la autenticación. Asimismo, X.509 emplea la infraestructura de clave pública (PKI) existente en la administración de claves. XML Encryption y XML Signature describen distintas formas de cifrar y firmar el contenido de los mensajes XML. XML Canonicalization analiza los modos de hacer que XML esté preparado para el proceso de firma y cifrado. Lo que WS-Security aporta a las especificaciones existentes es un marco en el que incorporar estos mecanismos a un mensaje SOAP. Esta tarea se realiza en un modo neutral de transporte. Figura 3 Proceso Común al utilizar WS-Security WS-Policy [WEB-04]: establece como los solicitantes y proveedores del servicio pueden especificar requisitos que determinen cómo debe llevarse a cabo la comunicación. Generalmente esos requisitos en su mayoría hacen referencia a políticas de seguridad: Mecanismos de autentificación, algoritmos criptográficos, longitudes de claves, tratamientos de información personal, etc. WS-Trust [WEB-04]: especifica mecanismos para establecer diferentes modelos de confianza. WS-Privacy [WEB-04]: proporcionará un marco de trabajo para generar sentencias sobre requerimientos y preferencias de privacidad de información. WS-SecureConversation [WEB-04]: proporcionar mecanismos para contextos de seguridad para el establecimiento de comunicación autenticada. El contexto de seguridad comprende aspectos tales como el establecimiento de claves de sesión, claves derivadas, algoritmos, etc. Sergio Sánchez R. 4 Ricardo Vásquez V.
  • 5. WS-Federation [WEB-04]: componente que tiene que ver con la federación de cuentas y gestión de identidad. Este actualmente posee soporte para SAML (Security Assertions Markup Language), estándar de OASIS para la autentificación de usuarios. WS-Authorization [WEB-04]: proporcionará mecanismos para descubrir los requerimientos de declaración/privilegio de un servicio. Esta arquitectura es una de las alternativas consideradas para entregar seguridad en los Web Services, dejando claro que pueden existir otras, ya que está es dirigida por Microsoft e IBM solamente. En resumen, es bueno considerar en este tipo de arquitecturas distribuidas poner énfasis en la seguridad, por lo que, está arquitectura mostrada responde a los requisitos necesarios definidos por W3C, y cualquier iniciativa que aparezca deberá considerar dichos requisitos. 2.3 Coordinación y Transacciones en Web Services Una de las aplicaciones interesantes en las cuales pueden ser utilizados los Web Services es para la implementación de procesos de negocios empresariales. Los Web Services han permitido avanzar en permitir el intercambio de información entre organizaciones diferentes que implementan sus procesos de negocios de forma distinta (B2B, Business to Business). Estos servicios se utilizan para comunicar las distintas organizaciones de forma independiente de las soluciones de negocio adoptadas por cada una de ellas, permitiendo de esta forma a las empresas ofrecer su “información” destinada a los distintos “procesos de negocio”. Así es posible que otras organizaciones que quieran acceder a dicha información e interactuar con esta organización puedan hacerlo mediante el acceso a los Servicios que hubiese ofrecido la organización para ese efecto. De tal modo, es posible apreciar el intercambio de información de una manera totalmente automática, lo cual permite obtener ahorros en los costos y una mayor eficiencia en los procesos. En el escenario descrito anteriormente, los Web Services ofrecen a las actividades de negocio una plataforma excelente para realizar la comunicación entre las organizaciones. Muchos de estos procesos de negocios son muy complejos por lo que un solo Web Service es insuficiente para completar el proceso, por lo que en la realidad se necesita acceder a varios servicios los cuales deben ser supervisados y “coordinados” para realizar dichos intercambios de información. Es por tal razón, que se necesitan mecanismos que permitan realizar la coordinación para estos complejos procesos que surgen de las distintas entidades. Dentro de los mecanismos existentes en la actualidad se encuentran un conjunto de especificaciones llamadas WS- Cordination y WS-Transaction que han sido desarrollados por IBM, Microsoft y BEA [WEB-12]. 2.3.1 Coordinación El mundo de los Web Services no se encuentra libre de complicaciones que pueden ser producidas por ataques (al compartir un medio masivo como Internet), fallos de red, problemas de coherencia de la información en todo el sistema, etc. Por tanto, un punto de vital importancia para los Web Services que implementan complejos procesos de negocio es mantener la coherencia y consistencia de la información en todos los sistemas que forman parte de la red distribuida de información a la cual pertenecen. Para conseguir la coherencia y consistencia se necesita utilizar mecanismos de Coordinación. La coordinación permite que todas las entidades que participan en el proceso de negocio tomen parte en el mismo de forma ordenada, para que los resultados sean consistentes con todo el sistema de información en todo momento [WEB-12]. Los procesos de negocios a coordinar pueden ser muy variados, por lo cual pueden causar que un determinado protocolo de coordinación sea no válido. Por este motivo se han estado desarrollando variados mecanismos que intentan ser altamente genéricos para que las distintas modificaciones o cambios que son necesarios para coordinar los procesos de negocios puedan ser incluidos sin problemas. El mecanismo genérico descrito para realizar la coordinación en Web Services es la especificación denominada WS- Coordination. WS-Coordination proporciona una infraestructura que permite dar soporte a concretas formas de coordinación (protocolos de coordinación). Esta especificación fue publicada el año 2002 por IBM, Microsoft Sergio Sánchez R. 5 Ricardo Vásquez V.
  • 6. y BEA Systems. Entre los objetivos generales que describe esta especificación podemos mencionar los siguientes [WEB-13]: Método que permite introducir identificadores únicos en los mensajes intercambiados entre los servicios (Coordination Context, Cabecera SOAP). Método para informar del rol que asume cada participante en una conversación (Activation Interface). Método para que los Web Services registren su interés en participar de la conversación (Registration Interface). Estos objetivos son logrados de forma independiente del protocolo de coordinación ejecutado por los participantes. WS-Coordination permite establecer varios tipos de coordinación los cuales pueden verse en la figura 5. Estos tipos de coordinación pueden ser implementados dependiendo de de la complejidad del proceso Figura 4 Tipos de Coordinación. de negocio. Entre los componentes que se encuentran en WS-Coordination podemos mencionar las abstracciones utilizadas en la descripción de las interacciones entre un coordinador y sus participantes [WEB-13]: Coordination Protocol: Corresponde al conjunto de reglas a las cuales una conversación debe ajustarse al momento de su desarrollo (descripción del protocolo de coordinación). Coordination Type: Corresponde a la especificación del tipo de protocolo utilizado, vale decir, un valor de coordination type representa una conversación concreta. Coordination Context: corresponde a la estructura de datos utilizada para detallar la conversación a la cual pertenecen los mensajes SOAP intercambiados. En cuanto a las formas de interacción que es posible encontrar entre un coordinador y sus participantes podemos mencionar [WEB-13]: Activación: esta interacción ocurre cuando un participante solicita a un coordinador la creación de un nuevo contexto de coordinación, vale decir, la creación de una nueva conversación. Registro: Esta interacción ocurre cuando un participante se registra en un coordinador para participar en una conversación. Interacciones específicas del protocolo: Estas interacciones ocurren cuando el coordinador y los participantes registrados intercambian mensajes específicos del protocolo de coordinación de conversación. En resumen WS-Coordination aporta la capacidad de registrar a los sistemas que tomaran parte en un proceso de negocio y generar un contexto con información (tanto del registro como de la coordinación) para entregarla a los otros sistemas participantes en el proceso de negocio. 2.3.2 Transacciones Hemos hablado sobre la necesidad de mantener la información de forma consistente en todos los sistemas que participan del entorno distribuido. Para lograr este propósito es necesario junto con la coordinación manejar otro concepto que tiene su origen en las base de datos. Este concepto al cual nos referimos es el de Transacción. Una transacción permite obtener consistencia debido a que el sistema envuelve los cambios de información que se realizan en el mismo como una unidad atómica en dicha transacción. Esto quiere decir que si la transacción por alguna razón falla el intercambio de información contenida en la transacción no toma efecto, quedando todos los sistemas participantes del entorno distribuido de manera coherente y consistente con la situación al momento anterior a iniciarse la transacción fallida. Ahora si la transacción resulta exitosa, todos lo cambios serán propagados a los sistemas participantes del entorno distribuido. En resumen una transacción es una operación o un conjunto de operaciones, que se llevarán a cabo si la operación se realiza de Sergio Sánchez R. 6 Ricardo Vásquez V.
  • 7. forma completa y obteniendo resultados esperados, o se descartarán dichas operaciones en caso de no satisfacer todos los requisitos exigidos a la misma [WEB-12]. Hoy en día, la complejidad de los procesos de negocio determina que el tiempo de ejecución que tienen los servicios que atienden a los procesos sea muy elevado, además adicionalmente estos servicios se encuentran ubicados en un entorno como la Web, la cual se encuentra siempre amenazada por continuos y múltiples tipos de fallas (caídas de servidores, saturación en petición de servicios, fallas de conexión, etc.), las cuales generan como resultado que el problema de la coherencia y consistencia de la información se transforme en algo bastante común. Entonces para lograr que los procesos de negocios puedan ser implementados con Web Services, ya mencionamos en el punto anterior la existencia de un componente que apoya a la coordinación (WS- Coordination), pero este componente también se ayuda de un segundo componente el cual permite manejar el concepto de transacciones para los Web Services, el cual corresponde a la especificación de WS-Transaction. WS-Transaction se apoya en la infraestructura de WS-Coordination, la cual modela el contexto de la transacción. Esta especificación tiene su origen como ya lo habíamos mencionado en el contexto de las bases de datos y es utilizado en entornos distribuidos cuando dos o más Web Services están involucrados en una interacción (conversación) y las operaciones invocadas no son independientes. El objetivo final es que todas las operaciones sean ejecutadas con éxito, o en caso contrario ninguna de ellas sea ejecutada. Las transacciones en Web Services poseen algunas diferencias notables con las generadas en bases de datos, entre las cuales podemos mencionar que el tiempo que cuesta en completar un transacción en Web Services es muchísimo más largo de lo que toma en una base de datos debido a que en los Web Services es posibles ejecutar complejos procesos de negocios; otra diferencia es que se amplia la variedad de recursos y operaciones a aplicar sobre ellos [WEB-12]. La especificación de WS-Transaction fue publicada el año 2002 por IBM, Microsoft y BEA. La cual especifica un protocolo estándar para la ejecución de transacciones en entornos de Web Services. La especificación establece dos tipos de transacciones [WEB-13]: Atomic Transactions: Corresponde a transacciones atómicas o de corta duración, en las cuales se conserva la idea de las propiedades ACID (Atomicidad, Coherencia, Aislamiento y Durabilidad) en un sentido muy estricto, lo que resulta en que todas las operaciones dentro de una transacción se ejecutan con éxito o no se ejecuta ninguna. Este tipo de transacciones por lo general resultan en entornos muy confiables. Business Activities: Corresponde a transacciones de larga duración en la cual las propiedades ACID son flexibilizadas. Las operaciones son todas invocadas a los participantes, los cuales después de su ejecución informan al coordinador si estas operaciones han sido completadas con éxito. Si alguna de estas operaciones falla, se requiere la ejecución de operaciones de “compensación” ya que acá los cambios son permanentes desde el principio, por tanto si la operación falla se deberá realizar operaciones que permitan deshacer los cambios. De los dos tipos de mecanismos de transacción, el más utilizado para implementar procesos de negocios complejos es por transacción Busines Activities. En la figura podemos esquematizar el stack para Web Services considerando las especificaciones de WS-Coordination y WS-Transaction para tratar los aspectos de coordinación de las operaciones que estos realizan. Figura 5 Stack para Web Services considerando coordinación y transacciones. 2.4 Aplicación práctica de Web Services en un entorno empresarial Para ratificar todo lo detallado en esta monografía referente a los Web Services, se presentará una aplicación concreta en la cual pueden ser utilizados Web Services en un entorno empresarial. Sergio Sánchez R. 7 Ricardo Vásquez V.
  • 8. El entorno empresarial elegido ha sido la Compañía Sudamericana de Vapores (en adelante CSAV), la cual corresponde a una empresa chilena de transporte marítimo, la que actualmente es la más grande de Latinoamérica. CSAV fue fundada en 1872 en el Puerto de Valparaíso (Chile), siendo una de las compañías más antiguas del mundo. En el comienzo las actividades de CSAV consistían exclusivamente de servicios de cabotaje en la costa pacífico Chilena, pero muy rápidamente se fueron extendiendo a lo largo de la costa Oeste de Sudamérica hasta el Canal de Panamá. Posteriormente extendió la esfera de sus operaciones a los Estados Unidos, Europa, el lejano Oriente y Japón, al Sudeste Asiático/islas del Pacífico y la costa este de Sudamérica. CSAV opera a través de los cinco continentes, ofreciendo servicio de "línea", por los cuales es capaz de proveer tráficos permanentes a ciertos puertos, itinerarios fijos y naves preparadas para transportar un gran número de contenedores y una alta variedad de carga convencional. Asimismo, CSAV posee barcos especialmente diseñados para carga congelada, vehículos, carga a granel y productos forestales. Otorgando un servicio "puerta a puerta", a cualquier destino, el cual normalmente es conducido en conjunto con las subsidiarias de CSAV: Sudamericana Agencias Aéreas y Marítimas S.A. SAAM, como una agencia marítima de transporte de mercancías, y COSAN, Terminal de contenedores en Santiago [WEB-14]. CSAV debido a su operación y complejo proceso de negocio que involucra múltiples agencias en todo el mundo, las cuales apoyan el proceso de transporte y con las cuales requiere tener una estrecha relación de intercambio de información. Actualmente CSAV requiere mejorar su plataforma de intercambio de información con sus agencias relacionadas. Para lograr este propósito se puede implementar un proyecto tecnológico para lograr el intercambio de información mediante el uso e implementación de una plataforma de Web Services. Esta plataforma tecnológica de Web Services permitirá una mayor visibilidad de las agencias, las cuales serán capaces de conseguir información relativa a sus reservaciones (booking), Bill of Ladings (BL’s) y Notas de Corrección de fletes (FCN). La plataforma de Web Services permitirá integrar las distintas agencias con CSAV, las cuales se encuentran en distintas plataformas tecnológicas. Además permitirá intercambiar grandes volúmenes de datos con un bajo consumo de tráfico de red ya que los Web Services trabajaran sobre Internet. Para comenzar el proyecto de esta plataforma podemos definir un piloto con tres Web Services destinados al intercambio de información entre CSAV y sus agencias relacionadas. Los Web Services a implementar son: GET_BOOKINGS: Este servicio tendrá la responsabilidad de entregar los documentos de reservas de carga. Para obtener los documentos de carga será necesario ingresar ciertos parámetros que permitirán obtener la información necesaria y que usualmente es obtenida por las agencias. Especificación del Web Service. Service Name Get_Bookings Type Web Service Location http://<Server>/AgencyServices/AgencyServices.asmx Parámetros para el Web Service GetBookings. Nombre Tipo Largo Descripción Req. 1 userId Carácter 15 Código de Usuario S 2 password Carácter 20 Password de Usuario N 3 systemId Carácter Sin uso N 4 xmlFilters Carácter Estructura xml con los valores para filtros. S 5 xmlBookings Carácter Estructura Xml con los Bookings N 6 errorCode Entero Código de Error N 7 errorMessage Carácter 150 Mensaje de Error N GET_BLANDFCN: Este servicio tendrá la responsabilidad de entregar los Documentos correspondientes a los Bill of Lading (manifiesto de embarque internacional) y a las FCN que son las correcciones de Fletes que son hechas a los Bill of Lading en el caso que exista un error o a petición de un cliente. Sergio Sánchez R. 8 Ricardo Vásquez V.
  • 9. Especificación del Web Service. Service Name Get_BlsAndFCNs Type Web Service Location http://<Server>/AgencyServices/AgencyServices.asmx Parámetros para el Web Service Get_BlAndFcns. Nombre Tipo Largo Descripción Req. 1 userId Carácter 15 Código de Usuario S 2 password Carácter 20 Password de Usuario N 3 systemId Carácter Sin uso N 4 xmlFilters Carácter Estructura xml con los valores para filtros. S 5 xmlDocuments Carácter Estructura Xml con los Documentos N 6 errorCode Entero Código de Error N 7 errorMessage Carácter 150 Mensaje de Error N GET_BOOKINGLEGS: Este Servicio tendrá la responsabilidad de entregar la información relativa a los tramos que hará una determinada reserva de carga o una carga ya conformada. Especificación del Web Service. Service Name Get_BookingLegs Type Web Service Location http://<Server>/AgencyServices/AgencyServices.asmx Parámetros para el Web Service Get_BookingLegs. Nombre Tipo Largo Descripción Req. 1 userId Carácter 15 Código de Usuario S 2 password Carácter 20 Password de Usuario N 3 systemId Carácter Sin uso N 4 xmlFilters Carácter Estructura xml con los valores para filtros. S 5 xmlSteps Carácter Estructura Xml con los Bookings Legs N 6 errorCode Entero Código de Error N 7 errorMessage Carácter 150 Mensaje de Error N La implementación de estos simples Web Services permitirán una mejor comunicación en lo referido a las necesidades de información entre las agencias relacionadas y CSAV. Además esta implementación deja de manifiesto el potencial que puede tener el uso de Web Services para el intercambio de información entre distintas organizaciones (B2B) para el manejo de sus procesos de negocios. 3 Conclusiones Encontrar las respuestas a problemas tecnológicos, está demostrado que más que ser una solución al problema únicamente abre un conjunto de nuevos problemas que deben ser solucionados. Esto ha pasado en la historia de los Web Services, ya que entran como una solución a la problemática de poder publicar servicios simples mediante Internet, y también a posteriori se convierten en una de las alternativas para poder realizar la integración de aplicaciones y procesos de negocios. Bajo el enfoque inicial del trabajo de un Web Service se pueden realizar estas nuevas tareas asignadas, pero no de la mejor forma, por lo que se hace absolutamente necesaria la implementación de nuevos componentes que permitan manejar la seguridad, la coordinación y los procesos envueltos en transacciones. Las grandes compañías como Microsoft e IBM ponen delante de sus intereses comerciales estos nuevos problemas, permitiendo que su unión de cómo fruto la definición de componentes formados en un arquitectura que apoyen y permitan el correcto desenvolvimiento de los Web Services, dentro del contexto de las problemáticas planteadas. Sergio Sánchez R. 9 Ricardo Vásquez V.
  • 10. Es bueno mencionar que los Web Services no son la panacea, pero si permiten de una forma no muy compleja solucionar problemas que se vuelven cada vez más cotidianos en el ámbito de los negocios y el uso de las nuevas tecnologías. En resumen, esta tecnología tiene algo claro sus fundamentos básicos, los cuales tienen soporte desde las empresas de framerwork de desarrollo más importantes Microsoft, SUN e IBM, pero que en lo tangencial a los nuevos problemas no están en completo acuerdo lo que de alguna forma limita un desarrollo mejor de la tecnología. Es de esperar que en un mediano plazo existan los estándares necesarios que nos mejoren el panorama global y que abarquen y solucionen los nuevos problemas presentados a esta tecnología. Referencias [WEB-01] www.w3.org/2002/ws/. Sitio oficial del grupo de estudio de Web Services de W3C. [WEB-02] www.moisesdaniel.com/es/wri/wsepsu. Documento introductorio sobre Web Services y sus diversos escenarios de uso. [WEB-03] http://es.wikipedia.org. Sitio utilizado para la obtención de las diversas definiciones de protocolos que se encuentran en este articulo. [WEB-04] www.willydev.net/descargas/prev/WSSev.pdf. Titulo: “La seguridad en ‘web services’: entre la incertidumbre y la sobreinformación”, Roberto López Navarro, Servicio e Integración, 2003. Documento aborda el ámbito de la seguridad en web services desde las diversas perspectivas existentes hasta la fecha de publicación. [WEB-05] http://www-128.ibm.com/developerworks/library/ws-secroad/ . Arquitectura de Seguridad Propuesta por Microsoft e IBM. [WEB-06] http://www-306.ibm.com/software/solutions/webservices/ws_spec_sec.html . Especificación de la arquitectura de seguridad propuesta por Microsoft e IBM. [WEB-07] www.mundotutoriales.com. Tutorial: “De la seguridad en Servicios Web para .NET”, Willy.Net. Aborda temas de seguridad asociados a Web Services bajo una arquitectura Microsoft. [WEB-08] http://www.amereiaf.org.mx/cursos/VisionWebServicesJava.pdf. Presentación que se centra en el desarrollo de Web Services en el entorno J2EE. Mencionando en uno de sus puntos la seguridad. [WEB-09] http://www.w3.org/TR/2002/WD-wsa-reqs-20021114. Documento que define los requisitos para la creación de la Arquitectura para los Web Services (WSA). Dentro de estos requerimientos se toca el tema de seguridad. [WEB-10] http://www.oasis-open.org/committees/tc_cat.php?cat=ws. Sitio de OASIS (Organization for the Advancement of Structured Information Standards) coordinador actual del tema de seguridad en Web Services. Para lo cuál posee un grupo de trabajo asociado al tema. [WEB-11] http://msdn.microsoft.com/. Buscar: “Security in a Web Services World: A Proposed Architecture and Roadmap”, 2002. Este artículo describe en detalle la Arquitectura de Seguridad para Web Services propuesta por Microsoft e IBM. Buscar “WS-Security”, 2002. Este artículo describe en detalle la especificación WS-Security. [WEB-12] http://internetng.dit.upm.es/business%20activity.pdf. García M. Iván, “Coordinación de procesos de negocio en entornos de servicios web: implementación de business activity”, Universidad Politécnica de Madrid. [WEB-13] http://iaaa.cps.unizar.es/docencia/SWD/9.CoordinacionEstandares.pdf. Presentación que trata “Estándares relacionados con la Coordinación de Servicios” de los profesores Álvarez P & Bañares J., Programa de Doctorado de Informática e Ingeniería de Sistemas, Universidad de Zaragoza. España. [WEB-14] http://www.csav.com/pages/sp_compania.htm Sitio Web con información referente a Compañía Sudamericana de Vapores. [TAR-01] “Tarea 1 Sistemas Distribuidos y Middleware - Using Message-Oriend Middleware for Reliable Web Services Messaging”, Sergio Sánchez & Ricardo Vásquez, MTI – 2006. Sergio Sánchez R. 10 Ricardo Vásquez V.