Integración de Software: Módulo de Aprovisionamiento y Control de Itinerarios para Operadores Turísticos “J2Net Web Solution” “Arquitectura basada en servicios” Elena Ebert Salinas Walter Ogusuku Arakaki Carlos Araujo Castro Luís Sobrevilla Tolentino Miguel Gómez González José Guadalupe Delgado Vanesa Cabrera Bendezú Universidad Ricardo Palma Tutor: Dra. Sofía Álvarez Cárdenas [email protected] Universidad Ricardo Palma Resumen “En éste articulo se muestra el nivel de integrabilidad que pueden alcanzar los sistemas informáticos a pesar de sus diferencias tanto en sus plataformas de desarrollo como en su tecnología, todo ello mediante el empleo de servicios Web cuya implementación puede basarse en las recomendaciones de la arquitectura y diseño de aplicaciones en capas, demostrándose su aplicabilidad en diversos lenguajes, entornos de desarrollo y plataformas de despliegue. Se muestra también, cómo es que los servicios Web pueden ser empleados como apoyo a los procesos de negocio a través de la metodología B2B y B2C. La solución desarrollada ofrece Módulos de Aprovisionamiento y Control de Itinerarios para Agencias Operadoras de Turismo empleando para ello Servicios Web que serán implementados en cada una de las organizaciones (Tour Operador y Proveedores) involucradas en el proceso respectivo, con la finalidad de aprovechar al máximo las oportunidades de negocio que se presentan debido al gran dinamismo que tiene el rubro de Turismo. Finalmente se describen los principales componentes de la solución, en lo referente a su arquitectura, reflejados por artefactos de UML y se establece su vinculación con los principales componentes de la programación.” 1.- Introducción A medida que crece Internet y las tecnologías relacionadas, y las organizaciones buscan integrar sus sistemas entre límites de departamentos y de organización, ha evolucionado un enfoque de generación de soluciones basado en servicios. Desde el punto de vista del consumidor, los servicios son conceptualmente similares a los componentes tradicionales, salvo que los servicios encapsulan sus propios datos y no forman parte, estrictamente hablando, de la aplicación sino que son utilizados por ésta. Aplicaciones y servicios que necesitan integrarse se pueden generar en distintas plataformas, por distintos equipos, en diferentes programas y se pueden mantener y actualizar de forma independiente. Por tanto, es esencial que implemente la comunicación entre ellos con el mínimo acoplamiento. Este proyecto implementa la comunicación entre los servicios empleando técnicas basadas en mensajes para proporcionar altos niveles de solidez, escalabilidad y desarrolla un diseño global mediante la presentación de una arquitectura coherente construida con distintos tipos de componentes que ayudarán a lograr un buen diseño y beneficiarse de la plataforma Microsoft. En este proyecto se presenta una aplicación distribuida con servicios Web que son necesarios para proporcionar capacidades de integración para varios orígenes de datos y servicios, así como que requieran una interfaz de usuario para uno o varios dispositivos. 2.- Trabajos Previos De la problemática abordada se tiene como antecedente: - Sistema de Ventas para Tour Operadores - SIVETOP, Sistema Informático desarrollado exclusivamente en .Net que ofrece a las empresas del rubro la publicación de sus paquetes turísticos en Internet. 3.- Objetivos del Proyecto • • • • • Presentar una solución integral mediante arquitectura de capas, implementado tanto en plataforma .Net como en Java Demostrar el nivel de integrabilidad de los Sistemas Informáticos a través de los Servicios Web, siendo ello transparente a su tecnología y plataforma. Mostrar como los servicios Web garantizan gran independencia entre sus diferentes subsistemas, así como también con respecto a sistemas externos. Demostrar que los Servicios Web pueden dar soporte y dinamismo a los procesos de negocio de las organizaciones. Demostrar mediante la solución, como se optimizan los procesos de Control y Seguimiento de Itinerarios, así como también se aprovechan al máximo las oportunidades de negocio que se presentan por el gran dinamismo que tiene el rubro de Turismo. 4.- Visión General del Proyecto Una agencia de viajes es una sociedad mercantil que se dedica de manera habitual y profesional a asesorar y/o vender y/o organizar viajes o otros servicios turísticos. El papel de la agencia turística es el de intermediario entre la persona que demanda turismo y la persona que ofrece esa demanda y que es productor de bienes o servicios turísticos. Las agencias de viajes de tipo Tour Operator se dedican a fomentar el turismo mediante la venta de productos turísticos (Paquetes Turísticos, Circuitos Turísticos, City Tour, Full Day, entre otros) que estén de acuerdo a las necesidades de cada cliente. El mercado en que se desenvuelven estas agencias es muy amplio y competitivo y es en donde últimamente la tecnología apoya para lograr que muchas de estas agencias cuenten con Sistemas que optimicen los procesos de negocio críticos. Dado que el rubro de Turismo presenta una gran cantidad de competencia y mucho dinamismo en cuestiones de afluencia y demanda, se identificaron como procesos críticos el control de los itinerarios y el aprovisionamiento de los recursos. En el primer caso, ofrecer un servicio o producto de alta calidad mediante la atención inmediata de los eventos y ocurrencias que puedan alterar negativamente el cronograma de actividades de los productos turísticos, garantiza la fidelización del cliente, por lo que la empresa Tour Operadora obtendrá una considerable ventaja comercial con respecto a sus competidores. En el segundo caso, la variabilidad de afluencia y demanda de Turismo genera en ciertos negocios del rubro (pequeños y medianos) ajustes o reducciones del precio de sus productos o servicios que vienen a ser recursos que la empresa Tour Operadora emplea en la elaboración de sus Paquetes Turísticos mediante un acuerdo comercial previo. Identificar en el menor tiempo posible éstos ajustes o reducciones se interpreta como una excelente oportunidad de negocio, puesto que permitirá elaborar paquetes a un menor costo y ofrecerlo a sus clientes en calidad de promoción o descuento. Las empresas de turismo en el Perú, no cuentan con un sistema que permita registrar los eventos y ocurrencias de los itinerarios, por lo que ante ellos, su atención se vuelve muy tediosa y toma un tiempo considerable, el mismo que es percibido por los clientes que se ven afectados por ello y consecuentemente se daña la imagen de la empresa. Además, la falta de comunicación continua entre los proveedores y la empresa Tour Operadora, limita el alcance que de sus productos, puesto que presentan un carácter estático tanto en los elementos que lo conforman como en el precio. Este proyecto tiene como motivación el crecimiento continuo de la competencia de diferentes agencias de turismo a nivel nacional e internacional, mejorar todo el proceso de aprovisionamiento de recursos, dinamizar la generación de paquetes con promociones y ofertas, llevar un óptimo control de las actualizaciones en el Catalogo de los productos turísticos, reducir el impacto causado por los eventos imprevistos durante la ejecución de sus actividades, obtener toda una data de eventos que permitan a los responsables de operaciones decidir si es necesario optar por políticas de outsourcing, adquirir materiales como propios, establecer nuevos acuerdos comerciales o regularizar los que ya tiene. Diseñar un Módulo de Apoyo al Seguimiento y Control de los Itinerarios que garantice altos estándares de calidad en cuanto a servicio y productos, así como también un módulo de Aprovisionamiento que reduzca considerablemente el tiempo que toma a una agencia de turismo, tener conocimiento de nuevas ofertas y promociones que ofrecen sus proveedores ante la variabilidad de afluencia y demanda de los diferentes destinos turísticos en donde operan. Este proyecto esta dirigido al Cliente, brindándole una mejor atención en forma ágil, ordenada, y eficiente. Ofrecer el mejor servicio presentando mayor competitividad frente a otras agencias. Obtener un óptimo beneficio por la difusión de la información de destinos turísticos a un nivel de atención mayor (mayor cobertura), además de mejorar todo el Proceso que corresponde a actividades de Operación y Aprovisionamiento. Control de Itinerarios: La solución ofrecerá a la agencia Tour Operadora una interfaz Web amigable que permitirá agilizar la gestión de eventos y ocurrencias que se susciten durante la ejecución de los itinerarios que el Tour Operador realiza en las actividades turísticas ofrecidas a sus clientes. Éste módulo permitirá: o Registrar y Monitorizar los eventos u ocurrencias a través de una aplicación Web, para su posterior coordinación o tratamiento. o Ofrecer información en línea del estado y evolución del tratamiento o atención de un evento u ocurrencia, así como también del impacto que implica. o Generar una bitácora de eventualidades que permitirá identificar procesos o actividades ineficientes, así como también, decidir su corrección de manera eficaz. Aprovisionamiento: La solución permitirá que la aplicación central del Tour Operador se comunique con las aplicaciones de control y administración de productos (catálogos) de cada uno de sus proveedores, a través de servicios Web, con la finalidad de mantener actualizada la información de recursos a ser empleados durante la ejecución de sus actividades turísticas. Éste Módulo permitirá: o Administrar en forma ordenada y controlada, la información de los proveedores. o Ofrecer una aplicación sencilla de Control y Administración de Productos a los Proveedores, ofreciéndoles una solución basada en software libre, teniendo en cuenta que pertenecen (en su mayoría) a sectores PyMES o independientes. o Notificar en forma inmediata y automática, a la Agencia Tour Operador, cuando cualquier proveedor genere un nuevo Catálogo de Productos o Servicios. o Supervisar visualmente las Notificaciones de los Proveedores, indicando además si el Catalogo notificado incluye promociones o descuentos. o Consultar el listado de productos y servicios ofrecidos por el proveedor mediante la notificación. o Decidir que productos y servicios del catalogo notificado por el proveedor, serán incluidos como recursos, los mismos que serán empleados en la generación de nuevos paquetes turísticos para la agencia. Control de Calidad: Este punto es de especial importancia para el equipo de desarrollo, lo cual explica el porqué del Control de Calidad del proyecto, asegura que se tiene: - Implementando estándares corporativos e identidades importantes todo el tiempo. Cumpliendo con la Arquitectura diseñada. Cumpliendo con los estándares de desarrollo de software (programación, análisis, diseño). Monitoreando y mejorando todos los servicios involucrados en la actividad turística. Asegurando que los clientes de la agencias de viajes reciban los mejores servicios disponibles. Realizando las pruebas necesarias durante el desarrollo del Software (Prueba de Integridad de Data y Base de Datos, Pruebas de Función, Prueba de Interfase de Usuarios, Prueba de Performance, Prueba de Carga, etc.). Todo lo anteriormente mencionado permitirá a las empresas de turismo conseguir : Un Servicio Mejorado en el tiempo a medida que se van identificando limitaciones y superando los mismos mediante un análisis de las causas que lo produjeron. Un Cliente más fidelizado con el negocio por la percepción de la mejora continua en el servicio y preocupación por ello. Futuro del producto: La creciente demanda de turismo en nuestro país hace necesario el empleo de sistemas informáticos que permitan la agilidad de comunicaciones, transacciones y flujo de información entre los negocios involucrados en ello. Los sistemas de información de las grandes corporaciones en el rubro del turismo (por lo general software licenciado) ahora más que nunca necesitan interoperar con las aplicaciones que las PyMEs de hoy en día implementan basados en software libre para soportar sus procesos de negocio. Se aprecia entonces una tendencia que dispone un escenario óptimo para el desarrollo de soluciones basadas en Servicios Web. 5.- Marco Teórico Arquitectura en Capas El modelo actual de desarrollo de software ha probado que el organizar los elementos de las aplicaciones en componentes independientes puede lograr una mayor facilidad de mantenimiento de la aplicación. La programación en múltiples capas es la técnica sugerida para aplicaciones empresariales [Fowler 02], debido a la fácil administración que implica el dividir los componentes de la aplicación en capas para programas orientados a Cliente-Servidor. La aplicación en desarrollo esta compuesta por seis capas que son explicadas a continuación. Capa de Presentación: En esta capa se diseña todo lo que constituye la interfaz gráfica y la interacción del usuario con el software. La capa de presentación que en este caso esta formada por los Componentes de IU (Interface User), y los componentes de proceso de IU. Los componentes de IU pueden ser vistos como la parte con la cual va a interactuar el usuario como las ventanas o páginas Web, por decirlo de alguna manera. Los componentes de este proceso de IU se asocian a clases de tipo Manager (controladora) en UML. Es decir estos encapsulan lógica de navegación y control de eventos de las interfaces. Capa Administradora (Manager): Son todas las subrutinas creadas con el propósito de regular alguna acción del usuario y encapsular la lógica del negocio. Los servicios de esta capa son encapsulados en el componente del Data Transfer Object (entidades empresariales), que representan objetos que van a ser manejados o consumidos por toda la aplicación, estos podrían ser un modelo de objetos, xml, datasets con tipo, estructuras de datos, que permitan representar objetos que han sido identificados durante el modelamiento. Los otros tipos de objetos son los componentes empresariales que contienen lógica de negocio. Capa de Objetos de Transferencia de Datos (Data Transfer Object): La capa Transfer Object para encapsular los datos del negocio, se utiliza una única llamada a un método para enviar y recuperar el Transfer Object, cuando el cliente solicita los datos de negocio por medio de la Manager, éste puede construir el Transfer Object, rellenarlo con sus valores de atributos y pasarlo por valor al cliente. En la capa de Transfer Object se proporciona el constructor que acepte todos los atributos requeridos para crear el Transfer Object este constructor va aceptar todos los valores de atributos para el que se ha diseñado el Transfer Object. Capa de Objeto de Acceso a Datos (Data Acces Object): En esta capa esta programada todo lo que tiene que ver con el acceso a la base de datos, esta capa queda encargada de tomar la información de la base de datos dada una petición de la capa de Manager (lógica del Negocio), que a su vez es generada por la capa de presentación. Estas clases surgen como una necesidad de mantener la cohesión o clases altamente especializadas que ayuden a reducir la dependencia entre las clases y capas. Aquí se encuentra también una clase con métodos estáticos que permiten uniformizar las operaciones de acceso a datos a través de un único conjunto de métodos, esta clase es el SQLHelper que también se usa en este proyecto. Capa de Interface de Servicios Web: Se ha implementado una capa de interfaz la cual permitirá la comunicación entre la aplicación Web y el Servicio Web para hacer un consumo efectivo de los servicios, además permite separar completamente el nombre de un método de la implementación de ese método. La interfaz solamente dice cuál es el nombre del método, como se implementa exactamente el método no es asunto de la interfaz. La interfaz especifica un contrato sintáctico y semántico al cual se deben adherir todas las clases derivadas. Específicamente la interfaz describe la parte del qué del contrato, y las clases que implementan la interfaz describen la parte del cómo de este. Capa de Agentes de Servicios Web: En está capa se tiene a los Agentes, los cuales permiten la comunicación entre Servicios Web, implementa métodos y por medio de estos se realiza la comunicación entre los servicios Web para consumir los métodos de este. Cuando un componente empresarial requiere el uso de la funcionalidad proporcionada por un servicio externo, tal vez sea necesario hacer uso de código para administrar la semántica de la comunicación con dicho servicio. Los agentes de servicios permiten aislar las idiosincrasias de las llamadas a varios servicios desde la aplicación y pueden proporcionar servicios adicionales, como la asignación básica del formato de los datos que expone el servicio al formato que requiere la aplicación. Servicios Web Servicios Web, como indica su propio nombre, son servicios ofertados vía Web, representan la solución con más futuro para la integración de aplicaciones en Internet y una buena y fácil alternativa para integrar aplicaciones sencillas. Los servicios Web XML proporcionan acceso mediante programación a la lógica de una aplicación que utiliza protocolos estándar de Internet, tales como XML, y HTTP. Los servicios Web XML pueden ser aplicaciones independientes o subcomponentes de una aplicación Web más grande. Se puede tener acceso a los servicios Web XML desde casi cualquier tipo de aplicación, incluidos otros servicios Web XML, aplicaciones Web, aplicaciones Windows y aplicaciones de consola. El único requisito es que el cliente debe poder enviar, recibir y procesar mensajes del servicio Web XML. Los Servicios Web son componentes software que permiten a los usuarios usar aplicaciones de negocio que comparten datos con otros programas modulares, vía Internet. Aplicaciones independientes de la plataforma que pueden ser fácilmente publicadas, localizadas e invocadas mediante protocolos Web estándar, como XML, SOAP, UDDI o WSDL. 6.- Diseño e Implementación Casos de Uso más Significativo: Gestión de Productos Paquetes Turísticos y Servicios: Mantener Paquete Turístico, Mantener Producto, Mantener Servicio, Mantener Cotización, Mantener Destino, Mantener Proveedor, Registrar Notificación. Paquete de Gestión de Seguimiento: Asignar Itinerario, Registrar Evento, Mantener Evento. Vista Lógica: Se han identificado 4 subsistemas interdependientes. Ve n ta s y R e s e rva s G e s ti ó n d e S e g u ri d a d G e s ti ó n d e P ro d u cto s P a q u e te s Tu rís ti c o s y S e r vi ci o s G e s ti o n d e S e g u i m ie n to Paquetes más Significativos: WS Producto Paquete Turístico y Servicios: En este paquete encontramos las clases: Producto, Paquete Turístico y Servicio entre las más significativas. WS Proveedor: Entre las clases significativas tenemos: Recurso, Tarifario. WS Control y Seguimiento de Itinerario: Cuyas clases significativas encontramos: Evento, Itinerario, Producto, Resolución, Acción Vista de Procesos: Es este el proceso de mayor impacto que define la arquitectura del software, en el que se describen la mayor cantidad de procesos a realizarse. En el lado del servidor de Base de Datos se estaría ejecutando el SQL2000 Server como proceso. En el lado del servidor de aplicaciones estaría funcionando el ambiente de desarrollo Visual Studio.NET 2003, el Servidor de Aplicaciones Web IIS (Internet Information Server), y estarían además las clases y dlls compiladas del .NET. En la aplicación alojada en cada Proveedor, el Servidor de Base de Datos será MySQL v5.0. En el servidor de aplicaciones estará ejecutándose Sun Application Server v9.0 del J2EE5 (Java2 Enterprise Edition) que contiene un Servidor Web además de clases y librerías del JDK5 (Java Development Kit v1.5) En el lado cliente estaría activo el .NetFramework, MDAC y el browser que estaría siendo utilizado para utilizar la aplicación. En lo que corresponde en los procesos por parte del servidor de Aplicaciones se crearía un proceso cada vez que se hace una llamada a una clase. Vista de Distribución: Para concretar físicamente el despliegue del sistema será necesaria la participación de tres elementos en la red: La PC del cliente: Este elemento al desear hacer uso de nuestra aplicación, mediante el acceso desde una PC remota. El Servidor de Aplicaciones Se encuentra tanto en el Sistema Central del Tour Operador, como en cada Sistema de Proveedores, en donde se encuentran almacenadas la aplicación, además las clases controladoras para la ejecución de las transacciones e interacción entre la Base de Datos, y el cliente o servicio Web indistintamente. El Servidor de Datos: En el cual estaría ubicada la Base de Datos de la Aplicación correspondiente, Sistema Central de Tour Operador o Aplicación de Control y Administración de Productos en cada Proveedor Red de Trabajo TCP/IP Cliente preemptive HTML Browser <thread name> 7.- Diagrama de la Arquitectura de Capas Arquitectura de capas en el Sistema Central para el Tour Operador Web Server BD Server Arquitectura de capas en el Sistema del Proveedor 8.- Métodos empleados Se utilizó elementos de Rational Unified Process [Kruchen] y de las herramientas de Software de Rational para este fin. El diseño de la arquitectura para la aplicación fue desarrollada utilizando el método de diseño orientado a objetos de ADOOSI [Alvarez]. Se utilizaron además patrones de diseño [Larman] y [Fowler 02] 9.- Resultados El consumo de los servicios entre las plataformas .Net y Java presentaron comportamientos distintos dependiendo del sentido del mismo: Cliente Java -> Servicio Web .Net - Se requirió modificaciones en el código WSDL debido a incompatibilidades detectadas en las versiones de WSDL y SOAP en los entornos de desarrollo Visual Studio 2003 (.Net) y NetBeans 5.5 (Java) Cliente .Net -> Servicio Web Java - No se requirió modificación alguna debido a que sólo se emplearon transacciones con tipos de datos primitivos 10.- Discusión Aún se mantiene en evaluación y discusión el empleo de tipos de datos complejos entre Servicios Web desarrollados en plataformas .Net y Java. El empleo exclusivo de tipos de datos primitivos limita considerablemente el desarrollo de Servicios Web interoperables independientemente de su plataforma. 11.- Conclusiones El presente proyecto muestra la utilidad y las posibilidades que se generan con el manejo de los servicios Web, dichas posibilidades se dan dentro de la programación orientada a objetos, ya que se facilita la ampliación de las funcionalidades del software a través del desarrollo de módulos, enriqueciendo en gran parte el aspecto competitivo del producto. Con la utilización de los servicios, el software podrá interactuar con otros que no estén necesariamente desarrollados con la misma tecnología, de tal manera el intercambio de información será muy provechosa en ambos casos, generando en gran medida oportunidades de negocio y toma de decisiones. Otro aspecto que se quiere resaltar son las bondades del desarrollo de la arquitectura del software, el cual facilita el manejo de datos a través del encapsulamiento de éstos. La definición de cada capa facilita la implementación y/o modificación del software puesto que cada capa es independiente de la otra, permitiendo el mantenimiento a un bajo costo del software desarrollado. También se intenta fomentar el uso de la nueva tecnología como el .Net y el software libre como Java; demostrando a las vez que es posible la interacción entre estas dos plataformas y adaptarlas a los requerimientos del cliente. Referencias [Alvarez] Álvarez, Sofia. Metodología ADOOSI Versión 6: Metodología para el desarrollo de aplicaciones utilizando notación UML y extensiones para Web y servicios Web, Publicación electrónica [Fowler 99] Fowler, Martin et al. Refactoring Improving the Design of Existing Code., Addison Wesley. 1999 [Fowler, 02] Fowler, Martin. Patterns of Enterprise Application The Addison Wesley Profesional Signature. 2002 [Kruchten] Kruchten, Philippe. The Rational Unified Process An Introduction, Second Edition, Publisher: Addison Wesley, Second Edition March 14, 2000, [Larman] Larman, Craig. UML y Patrones 2E. Prentice Halll Hispanoamericana, S. A. 2003.
© Copyright 2024