sistema de hotel para desarrollo de software elaborado como un mejor perspectiva con metodologias de las tecnicas de programascion y asu ves cuando llevan tecnicas son bien planteados.
Copyright:
Attribution Non-Commercial (BY-NC)
Formatos disponibles
Descargue como PDF, TXT o lea en línea desde Scribd
sistema de hotel para desarrollo de software elaborado como un mejor perspectiva con metodologias de las tecnicas de programascion y asu ves cuando llevan tecnicas son bien planteados.
sistema de hotel para desarrollo de software elaborado como un mejor perspectiva con metodologias de las tecnicas de programascion y asu ves cuando llevan tecnicas son bien planteados.
Copyright:
Attribution Non-Commercial (BY-NC)
Formatos disponibles
Descargue como PDF, TXT o lea en línea desde Scribd
sistema de hotel para desarrollo de software elaborado como un mejor perspectiva con metodologias de las tecnicas de programascion y asu ves cuando llevan tecnicas son bien planteados.
Copyright:
Attribution Non-Commercial (BY-NC)
Formatos disponibles
Descargue como PDF, TXT o lea en línea desde Scribd
Descargar como pdf o txt
Está en la página 1de 43
SAD del Subsistema de Reservas
del Sistema de Gestin Hotelera
Daniel Perovich Andrs Vignaga {perovich, avignaga}@fing.edu.uy Grupo COAL Instituto de Computacin Facultad de Ingeniera Universidad de la Repblica Montevideo, Uruguay
2
1 Introduccin El Sistema de Gestin Hotelera es el caso de estudio del grupo de investigacin COAL, del Instituto de Computacin de Facultad de Ingeniera, de la Universidad de la Repblica, Uruguay. Fue elegido como tal por ser una aplicacin de porte empresarial de fcil entendimiento. Este sistema est conformado por varios subsistemas; entre ellos se encuentra el Subsistema de Reservas del cual este documento presenta la descripcin de su arquitectura. El Subsistema de Reservas del Sistema de Gestin Hotelera fue presentado en [CD01], trabajo que fue discutido y profundizado dentro del grupo de investigacin. El presente documento provee una vista de alto nivel de la arquitectura del Subsistema de Reservas del Sistema de Gestin Hotelera, los objetivos y restricciones, los casos de uso significativos, los patrones de arquitectura aplicados y las principales decisiones de diseo. Este documento da una vista general del resto de los artefactos generados en el proceso de desarrollo. 1.1 Propsito Este documento de arquitectura de software (por sus siglas en ingls, SAD) tiene como propsito brindar una visin comprensible de la arquitectura general del Subsistema de Reservas del Sistema de Gestin Hotelera, utilizando diferentes vistas de la arquitectura para ilustrar diferentes aspectos del sistema. Captura las decisiones ms importantes en lo que respecta a la arquitectura del sistema que fueron tomadas en el proyecto. Este SAD est dirigido a distintos tipos de actores: estudiantes, docentes, investigadores y desarrolladores. Un estudiante de ingeniera de software puede utilizar este documento como base para la documentacin del desarrollo de productos de software en proyectos de diferente porte. Un docente de la misma rea puede tomar este documento como base para mostrar la importancia de la arquitectura en el desarrollo de software as como el rol del arquitecto de software. Asimismo puede ser utilizado en talleres de desarrollo de software dado que el caso de estudio refiere nicamente a un subsistema del Sistema de Gestin Hotelera, y su tamao puede adaptarse a cursos de diferente duracin. A su vez, la tecnologa a aplicar as como el paradigma de desarrollo puede ser adaptado a otras realidades. En el marco de la Facultad de Ingeniera se ha utilizado el caso de estudio tanto para el desarrollo orientado a objetos como basado en componentes, sin y con manejo de persistencia. Ha sido implementado, incluso, tanto en la plataforma .NET como en la plataforma J2EE [BFF03]. Un investigador puede basarse en lo presentado en este documento y as evitar dedicar esfuerzo en sus trabajos en comentar el caso de estudio. Adems, muchas lneas de investigacin en el grupo COAL estn llevndose adelante partiendo de este caso de estudio, as como de sistemas similares, por lo que otros grupos pueden encontrar nuevas vetas en las cuales profundizar. Es de nuestro inters intercambiar con ellos ideas y resultados. Desde el punto de vista de un desarrollador, este documento le brindar, con certeza, una buena razn para darle a la arquitectura de software la importancia que tiene en todo proyecto de desarrollo. 1.2 Alcance Este SAD profundiza principalmente en las vistas de casos de uso y lgica, incluyendo algunos elementos significativos de las otras vistas. 3
El Subsistema de Reservas consta de seis casos de uso principales, siendo dos de ellos procesos batch. Se atacar principalmente aquellos casos de uso que involucran interaccin con los actores. Finalmente, este documento es la descripcin de arquitectura del caso de estudio, no es un instructivo de cmo elaborar un SAD; en otras palabras el lector no encontrar aqu comentarios sobre qu tipo de informacin debe ser incluida en el documento ni cules son los criterios a utilizar en casos generales. Puede dirigirse a [RUP03] y [YOO03] para ahondar en dicho aspecto. 1.3 Referencias [BFF03] Implementacin de un sistema de informacin basado en componentes con J2EE. S. Bengochea, F. Fajardo, J. Ferr. Reporte tcnico 03-17, InCo-PEDECIBA, 2003. [CD01] UML Components. J. Cheesman, J. Daniels. Addison Wesley, 2001. [GHJ+95] Design Patterns. E. Gamma, et al. Addison Wesley, 1995. [Kru95] Architectural BlueprintsThe 4+1 View Model of Software Architecture, P. Kruchten, Rational Software Corp. IEEE Software 12 (6), November 1995. [Lar02] Applying UML and Patterns. C. Larman. Prentice-Hall, 2002. [RUP03] IBM Rational Unified Process. http://www.rational.com/rup, 2003. [UML03] Unified Modeling Language. OMG. http://www.omg.org/uml, 2003. [YOO03] Yoopeedoo (UPEDU). http://www.yoopeedoo.org, 2003, 1.4 Organizacin El documento esta organizado en captulos, correspondiendo cada uno de ellos a los sugeridos en la plantilla provista en [RUP03]. El captulo 2 presenta la representacin de la arquitectura para el caso de estudio, esto es, la descripcin de las vistas necesarias y el framework arquitectnico utilizado. Los captulos 3 al 10 presentan la descripcin de las vistas indicadas en el captulo 2. 4
2 Representacin de la Arquitectura El Subsistema de Reservas del Sistema de Gestin Hotelera es una aplicacin de porte empresarial desarrollada como caso de estudio dentro del grupo de investigacin. Es un sistema de informacin en el dominio Hotelera, y concierne principalmente a la gestin de reservas de una cadena hotelera. La caracterstica de ser un sistema de informacin hace que la vista de casos de uso y la vista lgica sean las ms relevantes y por ello sern las ms extensas. La arquitectura est representada por diferentes vistas utilizando notacin UML [UML03] de forma que permitan visualizar, entender y razonar sobre los elementos significativos de la arquitectura e identificar las reas de riesgo que requieren mayor detalle de elaboracin. Este documento es una forma de comunicar el modelo del subsistema, presentando la informacin y discusiones estructuradamente. La arquitectura del subsistema se descompone en las siguientes dimensiones: Requerimientos: Requerimientos funcionales y no-funcionales del sistema. Elaboracin: Representacin lgica del sistema y representacin de tiempo de ejecucin. Implementacin: Vista de mdulos implementados, potenciales escenarios de infraestructura y el deployment de los mdulos. La siguiente seccin detalla las vistas de la arquitectura que sern utilizadas para cubrir las dimensiones mencionadas. La seccin 2.2 presenta el framework arquitectnico utilizado. 2.1 Representacin La arquitectura del Subsistema de Reservas est representada siguiendo las recomendaciones de [RUP03]. Las vistas necesarias para especificar dicho subsistema se enumeran a continuacin: Vista de Casos de Uso: Describe el proceso de negocio ms significativo y el modelo del dominio. Presenta los actores y los casos de uso para el sistema. Vista de Restricciones: Describe restricciones tecnolgicas, normativas, uso de estndares, entre otros, las cuales deben ser respetadas tanto por el proceso de desarrollo como por el producto desarrollado. Vista QoS: Incluye aspectos de calidad, y describe los requerimientos no-funcionales del sistema. Vista Lgica: Describe la arquitectura del sistema presentando varios niveles de refinamiento. Indica los mdulos lgicos principales, sus responsabilidades y dependencias. Vista de Procesos: Describe los procesos concurrentes del sistema. Vista de Implementacin: Describe los componentes de deployment construidos y sus dependencias. Vista de Datos: Presenta los modelos de datos, los servicios de persistencia y los servicios de transaccionalidad utilizados. Vista de Deployment: Presenta aspectos fsicos como topologa, infraestructura informtica, e instalacin de ejecutables. Incluye adems plataformas y software de base. 5
Las vistas presentadas forman en su conjunto una especificacin completa del sistema, la cual se delinea en el siguiente diagrama. Las dependencias entre las vistas indican dependencias entre las vistas tanto a nivel de arquitectura como a nivel de diseo.
2.2 Framework Arquitectnico La arquitectura sigue el framework 4+1 presentado en [Kru95]; este framework define cuatro vistas para la arquitectura (4) en conjunto con los escenarios (1), y es presentado en la siguiente figura. Logical View Implementation View Process View Deployment View Use-Case View
El mapeo de las vistas utilizadas a las propuestas en el framework se presenta en la siguiente tabla. Framework 4+1 Arquitectura Use-Case View Casos de Uso, Restricciones y QoS Logical View Lgica Process View Procesos Implementation View Implementacin, Datos Deployment View Deployment
Los siguientes captulos presentarn las vistas de la arquitectura del Subsistema de Reservas del Sistema de Gestin Hotelera indicadas anteriormente. 6
3 Vista de Casos de Uso Esta vista presenta la percepcin que tiene el usuario de las funcionalidades del sistema. Se presenta el proceso de negocio ms importante y los casos de uso crticos que se derivan de ste. Este captulo provee el contexto y determina el alcance del resto del documento. Primeramente se describe el Negocio. Luego se presenta el modelo del dominio para el Subsistema de Reservas. Se identifican actores y se detallan los casos de uso significativos. Este captulo se organiza de la siguiente forma:
3.1 Descripcin del Negocio Primeramente se describe el Sistema de Gestin Hotelera, marco del Subsistema de Reservas. Luego se presenta una descripcin de ste identificando los procesos de negocio crticos. Sistema de Gestin Hotelera Una cadena hotelera desea automatizar los servicios brindados por sus hoteles. Cada hotel posee un sistema de informacin que satisface parcialmente los requerimientos informticos reales de la empresa. Muchas actividades son registradas en formularios de papel y la obtencin de datos estadsticos insume gran cantidad de recursos. La gerencia general desea mantener en forma central y unificada todas las reservas que se hacen en sus hoteles. Como poltica de la empresa no se realiza overbooking, por lo que se quiere que dicha poltica sea ejecutada en todos los hoteles de la cadena. Se desea adems poder sugerir a los clientes otros hoteles de la cadena cuando un hotel no tiene disponibilidad de la habitacin solicitada. Es prioritario este requerimiento. Los clientes de la empresa deben poder realizar todas sus actividades por Internet. Las estaciones de trabajo en los hoteles operarn con la misma interfaz de usuario; en cambio, en estos casos el hecho de encontrarse en un hotel determinado debe simplificar el uso del sistema. Debe proveerse adems mecanismos para que las agencias de viajes interoperen con el sistema, por ejemplo mediante el uso de Web Services. Hay fuertes restricciones de performance para los procesos de reserva, check-in y check-out. Es importante, adems, reutilizar un sistema de facturacin existente. La empresa ha utilizado dicho producto en otras oportunidades y desea conservarlo y aprovecharlo en este emprendimiento. Los empleados trabajan usualmente en el mismo hotel. Sin embargo es probable que los mismos sean rotados a otros hoteles en la regin. 7
La gerencia general necesita informacin estadstica. sta es utilizada para la apertura o clausura de hoteles en regiones donde la empresa est instalada. La informacin se recoge peridicamente y es analizada por economistas expertos de la empresa. Por ltimo, los servicios adicionales que brinda la empresa a los clientes varan segn el hotel. Los mismos cubren una amplia gama de servicios como servicios a la habitacin, paquetes tursticos, afiliacin a sistemas de millas, etc. Estos servicios se irn incorporando y removiendo del sistema, incluso una vez que ste este en produccin. El sistema debe ser capaz de incorporar nuevos mdulos (subsistemas) que den soporte a nuevos servicios. Los servicios extras que se brinda a los clientes varan en el tiempo. De todas formas, el agregar o quitar un nuevo servicio no es un proceso en que el sistema propiamente participar. El sistema debe estar hecho de forma tal que simplifique la incorporacin y remocin de los servicios extras brindados por la cadena hotelera. Subsistema de Reservas El Subsistema de Reserva contempla tres de las actividades fundamentales del negocio, hacer una reserva, realizar un check-in y realizar un check-out. La empresa penalizar a aquellos clientes que no cancelen sus reservas, por lo que se les cobrar por dicho motivo. La cadena hotelera es una empresa de gran dinamismo, donde nuevos hoteles son incorporados a la misma, e incluso algunos podran ser vendidos y quitados del sistema. En cambio, no es comn el realizar reformas edilicias, por lo que los detalles de cada hotel tienen muy baja frecuencia de cambios. Procesos de Negocio Los siguientes procesos de negocio son relativos al Subsistema de Reservas: Gerenciamiento de la cadena hotelera (P1) Este proceso involucra un conjunto de procesos simples encargados del gerenciamiento. Permite la incorporacin de nuevos hoteles al sistema, as como la eliminacin de los mismos. Se encarga adems de la administracin del personal de la cadena de hoteles. Reserva de Habitacin (P2) Este proceso administra todas las actividades de reserva por parte de los clientes. Involucra modificaciones y cancelaciones de reservas, as como la deteccin de aquellos clientes que no tomaron su reserva. La actividad de check-in est incluida en este proceso, siendo un camino al estado final del mismo. Check-out y Facturacin (P3) Este proceso cubre el check-out de los huspedes, as como la facturacin de los servicios contratados por ellos. La contratacin de servicios por parte de los huspedes no forma parte de este proceso. Consultas Estadsticas (P4) Este proceso ocurre cuando la gerencia general realiza un estudio de la situacin de la cadena hotelera. Mediante este proceso se extraer la informacin del sistema que sea til para crear un DataWarehouse sobre el cual realizar variados tipos de estudios. Los procesos (P1) y (P4), a pesar de estar relacionados con el Subsistema de Reservas, no son realmente parte de ste. Dichos procesos son ms generales y pueden enmarcarse en otro subsistema del Sistema de Gestin Hotelera. Por lo tanto, el Subsistema de Reservas no realizar estos procesos de negocio. Los procesos (P2) y (P3) conforman el corazn del Subsistema de Reservas. Estos procesos presentan exigencias de performance; en (P2) las reservas por Internet deben realizarse en menos de 5 segundos, una vez que el cliente llene su formulario. De igual manera la 8
interoperabilidad con las agencias de viajes para realizar reservas tiene las mismas exigencias de tiempo de respuesta. El tiempo de realizacin de una reserva debe ser menor a 3 minutos cuando el cliente la realiza en la recepcin del hotel o telefnicamente; este tiempo de respuesta incluye el llenado del formulario. Para ello, es necesario mantener toda la informacin posible de los clientes capturadas en visitas anteriores. Ambos procesos tienen gran impacto en la arquitectura del sistema; en cambio, las repercusiones sobre sta es similar en ambos casos. Por ello este documento se concentrar nicamente en el proceso Reserva de Habitacin (P2). La siguiente figura presenta las actividades realizadas en este proceso detallando que actores las realizan.
3.2 Modelo de Dominio El modelo del dominio incluye aquel vocabulario del dominio significativo desde el punto de vista de la arquitectura, aqul que ayude al entendimiento de la misma.
3.3 Actores Los siguientes actores son los que interactuarn con el Subsistema de Reservas una vez realizado el deploy. 9
Siguiendo la notacin propuesta en [Lar02], se utiliza la representacin cannica para actores que representan a sistemas informticos. 3.4 Casos de Uso Los casos de uso crticos para el proceso (P2) se describen en esta seccin. Primero se indica las relaciones entre los casos de usos detectados y luego se presenta la versin expandida de los mismos. Modelo de Casos de Uso
10
Hacer Reserva Nombre Hacer Reserva (CU1) Actores Creador de Reserva, Sistema de Mensajera Actividades Ver Disponibilidad, Sugerir Alternativas, Hacer Reserva, Confirmar Reserva Sinopsis Este caso de uso comienza cuando el Creador de Reserva solicita crear una reserva. El sistema chequea la disponibilidad de una habitacin en un hotel solicitado. Si hay disponibilidad el Sistema hace la reserva y le confirma la misma al cliente. Si no hay disponible una habitacin, el sistema sugiere hoteles alternativos. Curso Tpico de Eventos 1. Incluir Identificar Cliente (CU8/CU9). 2. Creador de Reserva indica hotel (en caso de estar en la Recepcin de un hotel esta informacin se provee automticamente), tipo de habitacin y duracin de la estada. 3. Sistema confirma disponibilidad. 4. Sistema registra la reserva. 5. Incluir Confirmar Reserva (CU10). Extensiones 1a. No existe el cliente: 1. Incluir Alta de Cliente. 2. Resume 2. 3a. No hay disponibilidad: 1. Sistema busca disponibilidad en otros hoteles. 1a. No hay disponibilidad en ningn hotel: 1. Sistema notifica a Creador de Reserva. 2. Resume 2. 2. Creador de Reserva indica un hotel de su conveniencia. 2a. Creador de Reserva prefiere cambiar datos de la reserva: 1. Resume 2. 3. Resume 4.
11
Modificar Reserva Nombre Modificar Reserva (CU2) Actores Creador de Reserva, Sistema de Mensajera Actividades Modificar Reserva, Confirmar Reserva Sinopsis El caso de uso comienza cuando Creador de Reserva solicita modificar los datos de la reserva. Se solicitan los nuevos datos y se verifica disponibilidad. En caso de xito se registra los cambios y se confirma la reserva. En caso de fallo no se realiza ningn cambio en la reserva. Curso Tpico de Eventos 1. Incluir Identificar Cliente (CU 8/CU9). 2. Incluir Identificar Reserva de Cliente (CU7). 3. Creador de Reserva modifica los datos de la reserva. 4. Sistema verifica disponibilidad. 5. Sistema registra la reserva. 6. Incluir Confirmar Reserva (CU10). Extensiones 3a. Creador de Reserva decide no modificar la reserva: 1. Stop. 4a. No hay disponibilidad: 1. Sistema busca disponibilidad en otros hoteles. 1a. No hay disponibilidad en ningn hotel: 1. Sistema notifica a Creador de Reserva. 2. Resume 3. 2. Creador de Reserva indica un hotel de su conveniencia. 2a. Creador de Reserva prefiere cambiar datos de la reserva: 1. Resume 3. 3. Resume 5.
12
Cancelar Reserva Nombre Cancelar Reserva (CU3) Actores Creador de Reserva, Sistema de Mensajera Actividades Cancelar Reserva, Sistema de Mensajera Sinopsis El caso de uso comienza cuando Creador de Reserva decide cancelar una reserva. El sistema elimina la reserva y notifica la cancelacin. Curso Tpico de Eventos 1. Incluir Identificar Cliente (CU8/CU9). 2. Incluir Identificar Reserva de Cliente (CU7). 3. Creador de Reserva confirma cancelacin. 4. Sistema marca la reserva como cancelada. 5. Incluir Confirmar Reserva (CU10) Extensiones 3a. Creador de Reserva no confirma la cancelacin: 1. Fallo.
13
Tomar Reserva Nombre Tomar Reserva (CU4) Actores Husped, Recepcionista, Sistema de Facturacin Actividades Tomar Reserva, Notificar al Sistema de Facturacin Sinopsis Este caso de uso comienza cuando Husped llega al hotel. Indica la reserva que est a su nombre. El Husped indica sus datos personales para registrarlos en la reserva. El Sistema le asigna una habitacin y notifica al Sistema de Facturacin que debe abrirse una cuenta para el cliente asociado a la reserva. Curso Tpico de Eventos 1. Husped llega al hotel e indica que desea tomar una reserva. 2. Sistema muestra las reservas an no tomadas del hotel para la fecha actual. 3. Recepcionista elige una reserva en la lista. 4. Husped indica los datos personales. 5. El Sistema le asigna una habitacin. 6. El Sistema notifica al Sistema de Facturacin que una estada ha dado comienzo. Extensiones 1a/2a/3a. Husped no tiene reserva/No hay reservas an no tomadas/La reserva buscada no aparece en la lista: 1. Incluir Hacer Reserva (CU1). 2. Resume 4. 4a. Husped desea modificar los datos de la reserva: 1. Recepcionista corrobora que el cliente asociado a la reserva permita al Husped cambiar los datos de la misma. 1a. El Husped no tiene permitido cambiar los datos de la reserva: 1. Recepcionista informa el hecho al Husped. 2. Resume 4. 2. Incluir Modificar Reserva (CU3). 3. Resume 4.
14
Procesar No Presentados Nombre Procesar No Presentados (CU5) Actores Administrador de Reservas, Sistema de Mensajera, Sistema de Facturacin Actividades Procesar No Presentados, Notificar al Sistema de Facturacin Sinopsis El caso de uso comienza cuando el Administrador de Reservas decide procesar las reservas no tomadas. El sistema indica la cantidad de reservas no tomadas para el perodo indicado. El Administrador de Reservas confirma la accin y el Sistema notifica al Sistema de Facturacin que debite el monto correspondiente a cada cliente y al Sistema de Mensajera que notifique el hecho al cliente. Curso Tpico de Eventos 1. Administrador de Reservas indica el perodo a procesar. 2. Sistema muestra las reservas a procesar. 3. Administrador de Reservas confirma el proceso. 4. Sistema notifica al Sistema de Facturacin que debite a cada cliente el monto correspondiente. 5. Sistema notifica al Sistema de Mensajera que enve a cada cliente un aviso de reserva procesada como no tomada indicando el monto debitado. Extensiones 1a. El perodo no corresponde al pasado: 1. Sistema notifica el error. 2. Resume 1. 3a. Administrador de Reservas no confirma el proceso: 1. Fallo.
15
Remover Reservas Caducas Nombre Remover Reservas Caducas (CU6) Actores Administrador de Reservas Actividades N/A Sinopsis El sistema debe mantener registro de las reservas realizadas por un tiempo determinado. Mediante este caso de uso el Administrador de Reservas le indica al sistema que reservas caducaron, i.e. no es necesario mantener registro, para que el sistema las elimine. Curso Tpico de Eventos 1. Administrador de Reservas indica la fecha a partir de la cual el sistema debe mantener registro. 2. Sistema calcula la cantidad de reservas a eliminar. 3. Sistema pide confirmacin de eliminacin. 4. Administrador de Reservas confirma eliminacin. 5. Sistema elimina todas las reservas previas (estrictamente) a la fecha indicada. Extensiones 2a. No hay reservas a eliminar: 1. Fallo. 4a. Administrador de Reservas no confirma eliminacin: 1. Fallo. Casos de Uso de Solo Inclusin Identificar Reserva de Cliente Nombre Identificar Reserva de Cliente (CU7) Actores Creador de Reserva Actividades Identificar Reserva Sinopsis Identifica una reserva activa del cliente. Curso Tpico de Eventos 1. Sistema muestra las reservas activas (pendiente o en curso con check-in en el futuro) del cliente. 2. Creador de Reserva elige la reserva en la lista. 3. Sistema localiza la reserva. Extensiones 1a. El cliente no tiene reservas: 1. Fallo. 2a. La reserva buscada no aparece en la lista: 1. Fallo. 16
Identificar Cliente en Recepcin Nombre Identificar Cliente en Recepcin (CU8) / Identificar Cliente Actores Recepcionista Actividades N/A Sinopsis Localiza un cliente registrado. Curso Tpico de Eventos 1. Recepcionista provee los datos del cliente. 2. Sistema muestra los clientes que coinciden con los datos provistos. 3. Recepcionista elige el cliente en la lista. 4. Sistema localiza al cliente. Extensiones 2a. Sistema no encuentra clientes que coincidan con los datos provistos: 1. Sistema notifica el error. 2. Resume 1. 3a. Ningn cliente corresponde al cliente buscado: 1. Recepcionista informa el hecho al Sistema. 2. Resume 1.
17
Log-In Cliente Nombre Log-In Cliente (CU9) / Identificar Cliente Actores Cliente, Sistema de Mensajera Actividades N/A Sinopsis Identifica al actor como cliente registrado. Curso Tpico de Eventos 1. Cliente provee el nombre de usuario y el password. 2. Sistema localiza al cliente. 3. Sistema comprueba el password. Extensiones 1a. Cliente no conoce el nombre de usuario ni el password: 1. Fallo. 1b. Cliente no conoce el password: 1. Sistema localiza al cliente. 2. Sistema notifica al Sistema de Mensajera que enve e-mail al cliente con el password. 3. Sistema notifica al Cliente que el password ha sido enviado por e- mail. 4. Resume 1. 2a. Sistema no encuentra un cliente con el identificador indicado: 1. Sistema notifica el error. 2. Resume 1. 3a. El password ingresado es incorrecto: 1. Sistema notifica el error. 2. Resume 1.
18
Confirmar Reserva Nombre Confirmar Reserva (CU10) Actores Sistema de Mensajera Actividades Confirmar Reserva Sinopsis Notifica al cliente cambios en una reserva. El mecanismo de comunicacin puede ser e-mail, beeper, mensaje al celular o fax, en funcin de los datos que se tenga del cliente y el modo de comunicacin elegido. Si el cliente es extranjero solo puede utilizarse e-mail. Curso Tpico de Eventos 1. Sistema identifica el mecanismo de comunicacin con el cliente. 2. Sistema prepara informacin de la reserva. 3. Sistema solicita al Sistema de Mensajera el envo del mensaje al cliente. Extensiones N/A
3.5 Interfaz de Usuario Esta seccin presenta la captura de pantalla para algunos de los casos de uso presentados en la seccin anterior.
19
20
4 Vista de Restricciones En esta vista se presentan las restricciones normativas, de estndares y de tecnolgicas, a las cuales est sujeto tanto el proceso de desarrollo como el producto desarrollado, incluidas en las categoras soporte, implementacin, interfaces y legalidad de FURPS+. 4.1 Normativas Existen restricciones normativas, dictadas por organizaciones gubernamentales y no- gubernamentales, que determinan algunas decisiones del producto desarrollado. Licenciamiento No existe regulacin de licenciamiento para aplicaciones web en el pas donde est radicada la cadena hotelera. El licenciamiento del producto pesar totalmente sobre la aplicacin back- end. Por esta razn el producto no debe limitar la cantidad de usuarios simultneos que permite la aplicacin. Formas de pago El pas donde la cadena hotelera est instalada no permite el pago de servicios por Internet utilizando tarjetas de crdito. De esta forma no puede debitarse de tarjetas de crdito de los clientes los servicios brindados si no es en forma presencial. Por esta razn el mecanismo de pago no ser controlado directamente por el Sistema de Gestin Hotelera. Registro Impositivo Toda transaccin comercial en el pas de residencia de la cadena hotelera debe ser registrada y comunicada a la Direccin General Impositiva siguiendo los procedimientos y formatos provista por sta. Existe un software que lleva adelante este trabajo y por lo tanto ser utilizado directamente dentro del Sistema de Gestin Hotelera. 4.2 Estndares UML Todo artefacto utilizado para comunicacin y documentacin, tanto entre miembros del equipo de desarrollo como con los clientes y usuarios, est basado en UML. Interfaz Web La interfaz de usuario debe estar orientada al web. Debe ser posible visualizar el contenido utilizando cualquiera de los browsers ms difundidos, a saber, Netscape Navigator y Microsoft Internet Explorer. Web Services La interoperabilidad con los sistemas de las agencias de viajes no debe estar basada en Web Services. 4.3 Tecnologa El desarrollo completo del Sistema debe estar realizado en la plataforma Microsoft .NET, basndose fuertemente en las tecnologas involucradas en la plataforma como ser ADO.NET y ASP.NET. El lenguaje de programacin es C#.NET. 21
4.4 Sistemas Existentes Sistema de Facturacin La cadena hotelera ha adquirido un mdulo de software que gestiona las cuentas de clientes, los pagos y el registro de venta de servicios y productos. Este mdulo respeta la regulacin impositiva presente en el pas de residencia. 4.5 Soporte El Sistema de Gestin Hotelera tendr mantenimiento evolutivo permanente orientado principalmente al desarrollo de nuevos mdulos para cubrir nuevos servicios brindados por los hoteles. El Subsistema de Reservas tendr mantenimiento adaptativo, mejorando la interaccin usuario-mquina mediante la adaptacin de los casos de uso del subsistema. 22
5 Vista QoS Describe los requerimientos no-funcionales del Sistema dentro de las categoras usabilidad, confiabilidad y performance descritas en FURPS+. 5.1 Usabilidad La interfaz de usuario orientada al web para todos los actores humanos del sistema disminuye la necesidad de capacitacin de los usuarios. El sitio es simple, orientado a los casos de uso. La documentacin de usuario est anexada a la interfaz propiamente. En cada lugar donde se encuentre el usuario tendr disponible una opcin de ayuda (haciendo clic sobre el cono que se muestra a la derecha) que le indicar en qu contexto se encuentra, qu informacin est viendo, qu informacin debe proveer y cul ser la actividad que realizar el sistema una vez provista dicha informacin. No se proveer documentacin de usuario impresa. El Sistema de Gestin Hotelera ser utilizado por clientes de todo el mundo. Adicionalmente, la Organizacin Pro-Turismo exige que para anunciar servicios en su portal, stos deben ser provistos en espaol, ingls y portugus. Estos tres idiomas son soportados por el producto desarrollado (el usuario puede alternar entre idiomas usando el cono a la derecha). El sistema detectar el origen del usuario para proveerle el idioma que mejor se adapte a l. 5.2 Confiabilidad El Subsistema de Reserva no debe fallar en los procesos de Hacer Reserva o Tomar Reserva. stos son crticos para el hotel. El resto de los procesos debe tener baja frecuencia de fallas, siendo ms tolerante para los procesos batch Procesar No Presentados (CU5) y Remover Reservas Caducas (CU6). 5.3 Performance El Subsistema de Reservas tiene fuertes restricciones de performance al momento de realizar una reserva (CU1) y de tomar una reserva (CU4). En el caso de Hacer Reserva (CU1), estando el cliente registrado, el curso tpico de eventos debe llevar a lo sumo 5 segundos una vez que el cliente indica los detalles de su reserva. El proceso de check-in (CU4) debe llevar a lo sumo 2 minutos, en el caso que el husped tenga una reserva. Ese tiempo debe cubrir el caso en que el husped no conozca los detalles de la reserva. El resto de los procesos debe poder realizarse en un tiempo razonable.
23
6 Vista Lgica Esta vista presenta tres niveles de arquitectura para el Subsistema de Reservas del Sistema de Gestin Hotelera. Cada nivel corresponde a un refinamiento del nivel anterior. El ltimo nivel es el que presenta mayores detalles; en l, se presentan los mdulos participantes de la arquitectura junto a un diagrama. El tipo de diagrama utilizado vara segn el mdulo en cuestin, lo cual se debe principalmente a que los mdulos tienen diferentes roles, segn su ubicacin en el nivel anterior. Este captulo se organiza de la siguiente forma:
6.1 Arquitectura del Sistema En el primer nivel se especifica el patrn de arquitectura para el Subsistema de Reservas. El mismo esta organizado utilizando el patrn de arquitectura en capas; el mismo es relajado y se conforma de cuatro capas. El siguiente diagrama presenta la Arquitectura del Sistema.
El patrn de arquitectura elegido para el Subsistema de Reservas est alineado con el patrn del Sistema de Gestin Hotelera. Los mdulos que conformarn el Subsistema de Reservas convivirn en estas capas con otros mdulos del Sistema de Gestin Hotelera. Cada capa determina un rol para los mdulos que residen en ella. La Interfaz de Usuario tiene como objetivo el manejo de la lgica del usuario. Est conformada por el conjunto de pginas web dinmicas y por mdulos que encapsulan la lgica de los casos de uso. Los Servicios del Sistema representan los servicios bsicos que debe proveer el sistema; estos servicios son directamente utilizados por los mdulos de la capa superior. Los servicios en esta capa son particulares para cada subsistema del Sistema de Gestin Hotelera. Aqu se 24
utiliza una aplicacin del GRASP Controller, haciendo un hbrido entre use-case controller y facade controller. Los Servicios de Negocio son servicios de manejo de informacin del negocio; son servicios an ms bsicos que el de la capa superior. Esto permite reutilizar estos mdulos en otros subsistemas del Sistema de Gestin Hotelera. La capa de Infraestructura contiene todos los mdulos necesarios para utilizar los servicios de la plataforma. En esta capa residen principalmente adaptadores de los servicios brindados por la plataforma. 6.2 Arquitectura Lgica La Arquitectura Lgica presenta un refinamiento de la Arquitectura del Sistema. La dimensin Requerimientos, principalmente la Vista de Casos de uso, va a verse realizada por los mdulos aqu presentados. Se analizar los mdulos presentes en cada capa de la Arquitectura del Sistema, presentando finalmente la Arquitectura Lgica. Interfaz de Usuario La Vista de Casos de Uso muestra el front-end del sistema. El mismo es generado dinmicamente utilizando tecnologa de contenido web dinmico. Desde el punto de vista del back-end se tiene un conjunto de pginas dinmicas generadas a partir de los procesos llevados a cabo por el sistema. Cada caso de uso indicado en dicha vista requiere, en general, ms de una interaccin con el usuario. Esta secuencia de pginas es en general variable, dependiendo de las acciones del usuario. La versin expandida de cada caso de uso representa la lgica de dicha interaccin. Esta capa consiste de un mdulo por cada caso de uso identificado. Cada mdulo contiene la lgica que lleva adelante el caso de uso y un conjunto de pginas dinmicas utilizadas por dicha lgica. Los mdulos identificados y sus interdependencias se presentan en el siguiente diagrama.
25
Servicios de Sistema Cada mdulo de la capa superior utiliza servicios de esta capa. Se cuenta con una interfaz por caso de uso; sta ofrece los servicios que el mdulo que maneja la lgica del caso de uso requiere. Exceptuando los mdulos Alta Cliente e Identificar Cliente, el resto tiene que ver con el Subsistema de Reservas. Los servicios requeridos por estos casos de uso son cohesivos y por lo tanto pueden ser ofrecidos por el mismo mdulo. Por GRASP facade controller restringido a las operaciones de un subsistema, se crea un mdulo por subsistema. Este mdulo realizar todas las interfaces requeridas por los casos de uso asociados al subsistema. El siguiente diagrama presenta los mdulos identificados y sus interdependencias.
Servicios de Negocio Los mdulos localizados en esta capa son de inters para el Sistema de Gestin Hotelera y no de exclusividad para el Subsistema de Reservas. En cambio, los servicios provistos por estos mdulos son los necesarios para poder llevar adelante las operaciones de los mdulos de la capa superior. Los mdulos identificados son Manejador de Clientes, Manejador de Hoteles y Manejador de Reservas. Cada mdulo ofrece una nica interfaz con los servicios requeridos. El siguiente diagrama presenta los mdulos detectados y sus interdependencias.
Infraestructura Los mdulos localizados en esta capa son de dos tipos, adaptadores a sistemas existentes, o servicios generales tiles para cualquier aplicacin. Estos mdulos estn disponibles para todos los mdulos en las otras capas, y por ello la arquitectura en capas del Subsistema de Reservas es relajada. Dentro de la primera categora se encuentra el Sistema de Facturacin. Este mdulo encapsula todo lo relativo con la comunicacin con dicho sistema. A su vez se cuenta con un Sistema de Mensajera. Este mdulo encapsula todo lo relativo con la comunicacin con el sistema de envo de mensajes. Desde el punto de vista de [GHJ+95], ambos son una aplicacin de Adapter y Proxy. En la segunda categora se encuentra el mdulo de Acceso a Datos, el cual encapsula la conexin al motor relacional. El siguiente diagrama presenta los mdulos detectados.
26
6.3 Arquitectura de los Mdulos La Arquitectura de los Mdulos presenta un refinamiento de la Arquitectura Lgica. sta incluye, para cada mdulo, el punto de vista que mejor define su diseo. Para cada tipo de mdulo, i.e. para los mdulos de cada capa, se utilizar un tipo de diagrama diferente. Interfaz de Usuario Los mdulos en esta capa encapsulan la lgica del caso de uso. Esta lgica puede representarse mediante una mquina de estados que gua la interaccin entre el sistema y el usuario. Por esta razn un modelo de estados es el adecuado para describir su diseo interno. Hacer Reserva (CU1)
27
Modificar Reserva (CU2) composite Identificar Cliente composite Indentificar Reserva del Cliente Modificar Datos Reserva . entry / obtenerCiudades entry / obtenerHoteles entry / obtenerTiposHab valores originales / seleccion Ciudad / obtenerHotelesCiudad seleccin Hotel / obtenerTiposHabHotel / confirmarDisponibilidad [else] / sugerirAlternativas [hay disponibilidad] / modificarReserva Seleccin de Alternativas de la Lista [hay alternativas] [else] / modificarReserva cambiarDatos composite Confirmar Reserva cancelarModificacion cancelarModificacion [xito] [fallo] [xito] [fallo]
Servicios de Sistema Los mdulos de esta capa encapsulan la lgica del sistema. Los servicios ofrecidos son realizados utilizando Servicios de Negocio y servicios de Infraestructura; esta realizacin se hace mediante el envo de mensajes a los mdulos ubicados en estas capas. Por esta razn un diagrama de secuencia es el ms adecuado para describir su diseo interno. Para cada mdulo se presenta los servicios brindados por cada una de sus interfaces y luego los diagramas de secuencia para las operaciones ms complejas. Subsistema de Clientes Las interfaces provistas por este mdulo se describen a continuacin. La realizacin de las mismas, en una clase llamada Controller, se hace mediante solicitud de los servicios respectivos a los mdulos en la capa de servicios de negocio.
30
Subsistema de Reservas Las interfaces provistas por este mdulo se describen a continuacin.
Estas interfaces son realizadas en la clase Controller de este mdulo. Las operaciones con la misma firma ubicadas en diferentes interfaces, e.g. esRecepcion, son realizadas por el mismo mtodo. La mayora de los mtodos simplemente delegan la solicitud del servicio respectivo a los mdulos en la capa de negocios. Para aquellos mtodos que realizan actividades adicionales se presentan a continuacin los diagramas de secuencia que muestran su diseo. confirmarDisponibilidad(in dr : DatosReserva) : Boolean
sugerirAlternativas(in dr : DatosReserva) : SetDatosHotel
31
obtenerReservasAunNoTomadas(in hotel : String) : Set
tomarReserva(in id : Integer, in sdh : SetDatosHuesped)
Servicios de Negocio Estos servicios manejan la informacin del sistema; encapsulan la forma en que los datos estn almacenados, la distribucin de estos datos y el acceso a ellos. Por esta razn, una interfaz identificando sus servicios y el modelo de informacin es el adecuado para describir su diseo interno. Manejador de Clientes La interfaz soportada por este mdulo es la siguiente.
El modelo de informacin asociado al mdulo se presenta en la siguiente figura.
32
Manejador de Hoteles La interfaz soportada por este mdulo se presenta a continuacin.
El modelo de informacin asociado al mdulo es el siguiente.
Manejador de Reservas La interfaz soportada por este mdulo es la siguiente.
El modelo de informacin se presenta en la siguiente figura.
33
Infraestructura El refinamiento para los mdulos en esta capa consta de la interfaz soportada por los mismos. Se presenta a continuacin estas interfaces.
34
7 Vista de Procesos La Vista de Procesos describe los mdulos activos del Subsistema de Reservas; estos son mdulos que estarn en ejecucin en forma simultnea. Esta vista describe, adems, el soporte multi-usuario de la aplicacin. 7.1 Procesos Distribuidos Interfaz de Usuario El Subsistema de Reservas es una aplicacin basada en el web. Por esta razn cuenta con un grado de distribucin a nivel de interfaz de usuario. A nivel de usuario final, corre en su estacin de trabajo una aplicacin llamada browser, como ser Netscape Navigator o Microsoft Internet Explorer. Esta aplicacin es la encargada de presentar al usuario la interfaz de la aplicacin y de enviar al servidor las acciones que el usuario realiza. Por el lado del servidor se encuentra otra aplicacin general, llamado servidor web. El servidor web en uso es Microsoft Internet Information Server, utilizando tecnologas ASP.NET. El servidor web recibe las solicitudes del usuario, utilizando el protocolo HTTP, y redirige dichas solicitudes a las pginas dinmicas ubicadas en los mdulos de la capa Interfaz de Usuario. El servidor web asocia a cada usuario informacin de sesin y es l quin se encarga de gestionar la atencin a mltiples clientes en forma simultnea. Distribucin de las Capas Los mdulos presentes en las diferentes capas que componen a la aplicacin no se encuentran distribuidos. Por dicha razn un enfoque de Factory simple fue utilizado para la localizacin de los proveedores de servicios de cada uno de los mdulos. No se utiliza la tecnologa Remoting de .NET. Las razones de no utilizar distribucin a este nivel son por performance de las operaciones marcadas como crticas y para disminuir el riesgo del proyecto en funcin de las tecnologas. Servicios de Infraestructura Los servicios de infraestructura son de dos tipos, aplicaciones legadas que deben ser utilizadas y el propio motor de base de datos. El motor de base de datos corre en forma independiente, atendiendo incluso solicitudes de otras aplicaciones. Por otro lado, las aplicaciones legadas como los servicios de mensajera y el sistema de facturacin fueron adaptadas de forma que exportan sus servicios mediante web services. As, los mdulos presentes en la capa Infraestructura son un adaptador propio a dichos web services. 7.2 Arquitectura de Procesos En base a las decisiones descritas en la seccin anterior, se muestra a continuacin la arquitectura de procesos del Subsistema de Reservas.
35
El WebServer destina un hilo de ejecucin (RequestThread en la figura) a cada solicitud del usuario. Estos threads estn asociados a una sesin que es preservada entre diferentes requests. Cada RequestThread ejecuta todos los mdulos en la aplicacin del sistema de reservas que sean necesarios para llevar adelante la solicitud del usuario. Cuando es necesario ste se comunica mediante web services con MessageServer o FacturacionServer (servicios que estn corriendo en otro servidor). Es importante notar que la aplicacin desarrollada no codifica en forma explcita esta arquitectura de procesos. La tecnologa subyacente brinda servicios de alto nivel que lo encapsulan. Por ltimo, cuando el servidor web crea un RequestThread y comienza con la ejecucin del code-behind de las pginas dinmicas, stas asocian al RequestThread el contexto transaccional. El mdulo de acceso a datos toma del RequestThread el contexto transaccional y lo utiliza al momento de realizar acciones contra el motor de base de datos. 36
8 Vista de Implementacin La vista de implementacin presenta los componentes de deployment construidos para el Subsistema de Reservas. Bajo la tecnologa .NET, la unidad de deployment son los assemblies. Un assembly es una coleccin de funcionalidades construida, versionada e instalada como una unidad de implementacin, y contiene, en general, mltiples archivos. Un assembly es el building block del sistema a nivel de implementacin. 8.1 Estructura de la Aplicacin Cada capa, es decir cada subsystem en el primer refinamiento de la arquitectura lgica, fue desarrollada en un assembly independiente del resto. Dentro del assembly de cada capa se encuentran los mdulos que residen en ella desde el punto de vista lgico. Los assemblies para las capas de Servicios de Sistema, Servicios de Negocio e Infraestructura son, respectivamente, Sistema.dll, Negocio.dll e Infraestructura.dll. La interfaz de usuario corresponde a una aplicacin ASP.NET. La misma genera un assembly encargado del code-behind de las pginas dinmicas, y con un conjunto de packages que contienen las pginas dinmicas propiamente. As, se tiene el assembly Reservas.dll, y un conjunto de packages con las pginas dinmicas. Se cuenta con un assembly adicional que contiene la biblioteca de clases utilizada para compartir informacin entre las capas, a saber, DataTypes.dll. Es importante notar que el assembly Infraestructura.dll utiliza a los sistemas legados mediante WebServices, por lo cual depende de dichos servicios para su correcto funcionamiento. Esta dependencia puede marcarse hacia la descripcin de dichos servicios. 8.2 Arquitectura de Implementacin Se presenta a continuacin un diagrama de componentes que indica las dependencias entre los assemblies mencionados en la seccin anterior. Reservas.dll Sistema.dll Negocio.dll Infraestructura.dll DataTypes.dll
37
Front-End Como se mencion antes, el front-end de la aplicacin tiene dos partes fundamentales, el code-behind, encapsulado en Reservas.dll, y un conjunto de packages con las pginas dinmicas. El siguiente diagrama presenta los detalles de estas dependencias.
A su vez, cada package contiene un conjunto de pginas dinmicas. Todas ellas dependen del assembly Reservas.dll, lo cual no fue indicado en el diagrama. Adems, existe una dependencia de la mayora de dichos packages hacia el package images, lo cual tampoco fue indicado por claridad del diagrama. Se presenta el contenido del package HacerReserva en la siguiente figura.
38
Infraestructura El assembly Infraestructura.dll contiene referencias a WebServices por los cuales accede a los servicios de mensajera de la empresa, MessageServer, y al Sistema de Facturacin, FacturacionServer. El siguiente diagrama presenta estas dependencias.
Se presenta a continuacin el fragmento de MessageServer.wsdl que describe las funcionalidades del WebService. <?xml version="1.0" encoding="utf-8"?> <definitions xmlns:s1="http://tempuri.org/AbstractTypes" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://tempuri.org/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://tempuri.org/" xmlns="http://schemas.xmlsoap.org/wsdl/"> <types> ... </types> ... <binding name="MailServiceHttpPost" type="s0:MailServiceHttpPost"> <http:binding verb="POST" /> <operation name="sendMail"> <http:operation location="/sendMail" /> <input> <mime:content type="application/x-www-form-urlencoded" /> </input> <output /> </operation> </binding> <service name="MailService"> <port name="MailServiceSoap" binding="s0:MailServiceSoap"> <soap:address location="http://localhost/MessageServer/MailService.asmx" /> </port> <port name="MailServiceHttpGet" binding="s0:MailServiceHttpGet"> <http:address location="http://localhost/MessageServer/MailService.asmx" /> </port> <port name="MailServiceHttpPost" binding="s0:MailServiceHttpPost"> <http:address location="http://localhost/MessageServer/MailService.asmx" /> </port> </service> </definitions> 39
9 Vista de Datos En esta vista se presenta el modelo de datos utilizado, su distribucin, y una descripcin de los servicios de persistencia utilizados. 9.1 Modelo de Datos Se utiliza una nica base de datos relacional corriendo sobre el motor de base de datos Microsoft Access. La siguiente figura presenta el modelo de datos.
9.2 Distribucin No hay distribucin a nivel de datos; todas las tablas radican en la misma base de datos.
40
El diseo de la aplicacin permite la distribucin vertical de los datos, siguiendo la distribucin sugerida por los modelos de informacin de los mdulos de la capa de negocio. La siguiente figura presenta dicha posible distribucin.
9.3 Servicios de Persistencia Los servicios de persistencia del Subsistema de Reservas estn alineados con los servicios para el Sistema de Gestin Hotelera. Los mismos pueden separarse en cuatro niveles, los cuales sern mencionados a continuacin. En el nivel inferior se encuentra el motor de base de datos relacional, que para el sistema actual se utiliza el producto Microsoft Access. Por encima de ste se ubica la tecnologa ADO.NET provista por el framework .NET. Esta tecnologa brinda servicios de alto nivel, e independientes del producto, para acceder a fuentes de datos. La tecnologa ADO.NET es utilizada directamente por el mdulo AccesoDatos. ste utiliza un OLE DB Provider con el string de conexin adecuado para el motor de Microsoft Access. El mdulo AccesoDatos, ubicado en la capa Infraestructura, provee los servicios presentados en la siguiente figura.
La interfaz ofrece un servicio de ejecucin de comandos, execute, para ejecucin de las sentencias SQL UPDATE, INSERT y DELETE. El otro servicio, query, destinado a sentencias SQL basadas en SELECT. El tipo de retorno de este ltimo es un DataSet, clase miembro de ADO.NET. Por ltimo, sobre el mdulo AccesoDatos, se ubican los mdulos de la capa Servicios de Negocio. Los servicios brindados por stos utilizan el mdulo AccesoDatos para ejecutar sus sentencias y consultas SQL. Para el caso de las consultas, el DataSet es encapsulado en otros tipos de datos dentro del Subsistema de Reservas; los mismos se encuentran en el package DataTypes. 41
9.4 Servicios de Transaccionalidad El poder transaccional utilizado es el brindado por ADO.NET. En una sesin de usuario corre, por vez, un mdulo de la interfaz de usuario. Cada ejecucin de un caso de uso completo, dirigida por uno de estos mdulos, est enmarcada en una transaccin. Al iniciar un caso de uso da comienzo una transaccin, y al terminar el mismo, se realiza el commit. Cuando el caso de uso falla se realiza un rollback. El enmarcado de las transacciones es realizado en la biblioteca Manager ubicado en la Interfaz de Usuario. Al comienzo de un caso de uso, el mismo solicita el comienzo de una transaccin, y al final de ste se realiza un commit o rollback segn corresponda. La propagacin del contexto transaccional se realiza junto al hilo de ejecucin. No es necesario ningn mecanismo de propagacin de contexto transaccional especial dado que toda la aplicacin corre en forma local dentro de un nico servidor.
42
10 Vista de Deployment La vista de deployment presenta la infraestructura necesaria para instalar el Subsistema de Reservas. Se presenta aqu la arquitectura tcnica de la aplicacin indicando los nodos presentes en la infraestructura tecnolgica esperada, y la localizacin de los componentes en dichos nodos. 10.1 Arquitectura Tcnica Considerando la distribucin de la aplicacin desde el punto de vista de los procesos, es posible identificar cuatro tipos de nodos, a saber, Cliente, Recepcion, Server, LegacyServer. El primer nodo representa a las estaciones de trabajo de los usuarios finales. El nodo Recepcion corresponde a la estacin de trabajo en Recepcin. Estos nodos son distinguidos dado que es necesario conocer su direccin IP, ya que en base a sta se identifica la forma en que los casos de uso deben ser llevados adelante. El nodo Server representa a aquel equipo en donde correr el servidor web y la aplicacin del Subsistema de Reservas. El ltimo nodo, LegacyServer, representa a aquella infraestructura informtica necesaria para correr los sistemas legados.
10.2 Tecnologa requerida Las estaciones de trabajo de los clientes (Cliente) deben contar con un browser, ya sea Netscape Navigator o Microsoft Internet Explorer, con la habilitacin de ejecucin de JavaScript. Este tipo de nodos comprende tambin a las terminales que estn a disposicin en el hall de los hoteles. Las estaciones de trabajo de las recepciones de los hoteles (Recepcion) debe correr Microsoft Internet Explorer, en modo Kiosk (iexplore k). Estas estaciones de trabajo deben tener un nmero IP conocido y fijo ya que de eso depende el correcto funcionamiento de la aplicacin. Hay nicamente una instancia del nodo Server, la cual centraliza todos los requerimientos de los clientes. Este nodo debe correr Internet Information Server con soporte del framework .NET. Los nodos LegacyServer representan a aquellos equipos que corren los sistemas legados. El requerimiento tecnolgico exigido es el soporte de WebServices. 43
10.3 Deployment Los assemblies presentados en la Vista de Implementacin residen en el nodo de tipo Server presentado en las secciones anteriores. La configuracin de las estaciones de trabajo de tipo Recepcion, en particular su direccin IP, debe estar indicada en la base de datos. Por ltimo, los nodos LegacyServer deben tener instalado los servicios que ofrecen los WebServices.