ArquitecturaTécnica de TRAVEL OPEN APPS Breve definición técnica de la plataforma Travel Open Apps Contenido 1. CONTENIDO GLOBAL DEL PROYECTO ........................................................................... 1 a. CRS + CHANNEL MANAGER .............................................................................................. 1 b. MANAGEMENT SYSTEM ..................................................................................................... 2 c. INTEGRACIÓN CON SISTEMAS EXTERNOS ............................................................... 2 d. CMS Y WEBS DE RESERVAS.............................................................................................. 2 2. ARQUITECTURA GLOBAL DEL PROYECTO .................................................................. 2 3. HERRAMIENTAS DE ALOJAMIENTO ............................................................................... 6 a. CRS ............................................................................................................................................... 6 b. WEB SERVICES ....................................................................................................................... 6 i. ii. 4. Supplier ws.......................................................................................................................... 6 Access ws ......................................................................................................................... 6 HERRAMIENTAS DE OFERTA COMPLEMENTARIA .................................................. 7 1. CONTENIDO GLOBAL DEL PROYECTO a. CRS + CHANNEL MANAGER El módulo de CRS contiene información sobre todas las tarifas y cupos para todos los productos cargados en la plataforma. El gestor de canales permite a los distribuidores de producto recibir información actualizada de modo inmediato de todos y cada uno de los proveedores conectados a la plataforma. Este módulo utiliza como tecnología principal el lenguaje Java. Sobre este lenguaje se ha desarrollado una capa de persistencia propia, optimizada respecto a soluciones existentes para un mejor funcionamiento de la plataforma. b. MANAGEMENT SYSTEM Incluye un módulo de PMS (Property Management System) a través del cual tanto la oferta complementaria como los hoteleros pueden gestionar su producto. En ambos casos se cumplen los requisitos mínimos, sin ser en ningún momento una herramienta para un uso avanzado. El PMS utiliza las tecnologías JSF, Java y Html. También se incluye un CRM(ClientRelationship Management) y finalmente un sistema BI (Business Intelligence). Con ellos se permite al proveedor gestionar de un modo apropiado sus clientes, consiguiendo de este modo optimizar sus beneficios. El CRM se está configurando sobre la solución SugarCRM. El sistema de Business Intelligence está basado en la solución existente, Pentaho. Sobre ella se están haciendo todas las modificaciones necesarias para adaptarla a la plataforma. c. INTEGRACIÓN CON SISTEMAS EXTERNOS El proyecto cuenta con los interfaces necesarios para conectarse con sistemas externos. Entre estos sistemas encontramos por ejemplo, PMS externos, que pueden cargar su producto en el sistema. Por otra parte tenemos los clientes, que se integran para consumir el producto de la plataforma. Ambos serán detallados posteriormente. La conexión de la plataforma con externos se realiza en ambos casos vía web service. Estos web service emplean el lenguaje XML. See han desarrollado un conjunto de mensajes más extensos que permiten la integración tanto de sistemas con mucha complejidad como los sistemas más sencillos. d. CMS Y WEBS DE RESERVAS EL CMS provee un repositorio multimedia para cada uno de los negocios totalmente personalizable. Además permiten la conexión a los proveedores de producto vía web service. El CMS utiliza una herramienta denominada Magnolia. Sobre estas herramientas el equipo de DOME realiza las personalizaciones pertinentes para cada establecimiento. También se añade sobre las plantillas un motor de reservas implementado por DOME, que está desarrollado en XML/XSLT + JQuery + JSON. 2. ARQUITECTURA GLOBAL DEL PROYECTO El proyecto dispone de un conjunto de herramientas enfocadas a la actividad turística. El siguiente esquema muestra todos los componentes del sistema y las posibles conexiones a los mismos. La aplicación permite por una parte suministrar contenido a la plataforma a empresas, instituciones y agentes especializados en el sector. Los usuarios de la plataforma son los siguientes: Oferta complementaria Alojamientos (apartamentos, campings, hoteles, casas rurales…) Agencias Por otra parte los clientes de la plataforma son: Clientes finales Agencias de viaje Tour operadores Receptivos Permite la integración de sistemas externos como: PMS CRS Proveedores de vuelos Proveedores de seguros … Tecnológicamente se traduce en el siguiente esquema general de la plataforma: El núcleo de la aplicación viene definido por el CRS. La lógica está desarrollada en Java y la información queda almacenada en una base de datos Oracle. El almacenamiento de los datos se podría migrar a MySQL, o a cualquier otro proveedor de base de datos. Se ha implementado en Java una capa ORM (mapeo relacional de objetos) que está separada de la lógica de negocio y presentación y que la creación y comunicación con la base de datos hace uso de los estándares ANSI SQL, que es un lenguaje de base de datos independiente de la plataforma. A este CRS quedan conectados el resto de módulos para gestionar la carga de producto o la venta del mismo: 1. 2. 3. 4. 5. 6. XML/SOAP Publisher & CRS Externalproviders Access Web Backoffice Externalsystem Access Web B2C, web B2B, CMS & Web Booking Engine Web PMS & Business Intelligence Estas herramientas detalladas comparten una arquitectura común que se explica a continuación: El sistema está formando por un conjunto de módulos o servicios. Estos módulos son independientes entre sí y cada uno de ellos tiene una funcionalidad concreta dentro del sistema. En el caso de tener que añadir una funcionalidad nueva, se puede crear un nuevo módulo independiente de los anteriores. De este modo se reduce el riesgo de errores y permite trabajar de un modo más eficaz sobre la ampliación del sistema con nuevas funcionalidades. En el caso de tener que modificar un módulo existente, también se consigue una mayor estanqueidad de los cambios, permitiendo de este modo limitar en gran medida los errores. Los módulos tienen una funcionalidad concreta dentro del sistema y por lo tanto puede que se utilicen solo en determinadas operaciones. En otra capa diferente se crean un conjunto de frameworks, que desarrollan funcionalidades conjuntas a todo el sistema (cache, Jobs, logs). El desarrollo tanto de los módulos como de los correspondientes frameworks se ha realizado en Java y utilizando librerías propias. Existen herramientas en el mercado que proporcionan funcionalidades similares pero se ha decidido desarrollar un conjunto de frameworks propios hechos a medida. En la siguiente imagen podemos ver un ejemplo real de la utilización de lo servicios definidos en el sistema: En este caso el CRS utilizaría una secuencia de servicios para realizar una operación de reserva: 1. 2. 3. 4. 5. 6. Solicita disponibilidad a través del servicio correspondiente. Realiza una comprobación de la valoración del servicio, para corroborar que existen tarifas para los días solicitados. Se comprueba el inventario en los días solicitados. Se llama entonces al servicio de reserva que será quien confirmará el servicio solicitado. Se vuelve a llamar al servicio de valoración para recuperar el precio real (pueden existir cambios). Se llama al servicio de inventario para restar el cupo de la reserva en curso. Cada uno de los procesos en el sistema seguirá una secuencia de servicios concreta, esta es tan solo un ejemplo de las múltiples que existen. 3. HERRAMIENTAS DE ALOJAMIENTO a. CRS El CRS de hotel contiene las herramientas básicas para la configuración del alojamiento: Creación de tarifa Información multimedia del alojamiento Configuración inicial de los parámetros del mismo. Creación de reservas Gestión de las existentes Configuración del acceso. Facturación Gestión de entradas y salidas Business Intelligence b. WEB SERVICES i. Supplierws Esta conexión web service permite introducir producto de alojamiento en la plataforma. Incluye la operativa necesaria para poder introducir la información multimedia del producto y por supuesto también la información de cupos y tarifas. Las transacciones se realizan con mensajes XML y la lógica está desarrollada en Java. ii. Access ws Esta conexión permite obtener el producto que ha sido cargado en la plataforma. Permite el acceso a todo el repositorio de producto pero también la reserva del mismo. Las transacciones se realizan con mensajes XML y la lógica está desarrollada en Java. 4. HERRAMIENTAS DE OFERTA COMPLEMENTARIA El módulo de oferta complementaria da cabida a la restauración y a todas las empresas que prestan servicios o realizan actividades consideradas turísticas (Turismo activo, náutico, excursiones, oferta cultural y de ocio…) Por cada uno de estos tipos de servicio contemplados se va a definir la siguiente estructura para los mismos: Nombre Tipología Multimedia Tipo de usuarios Zonas Modalidades Características Servicios relacionados Opiniones La oferta complementaria contará con las mismas herramientas que los hoteleros, pero en este caso adaptadas a la oferta complementaria. Dispondrá de un web service separado para la carga de producto de oferta complementaria en la plataforma (supplier) y dispondrá de un web service para recoger producto de oferta complementaria de la plataforma (Access). Al mismo tiempo dispondrá de una web de venta a cliente final desarrollada sobre Magnolia y adaptada a las necesidades de la oferta complementaria. También dispondrá de un acceso web para la carga de producto utilizando tecnología XSL,XML y javascript sobre la capa de Java.