Interfaz de Búsqueda y Consulta de Pólizas Basada en Servicios Web

Anuncio
UNIVERSIDAD SIMÓN BOLÍVAR
Ingeniería de la Computación
Interfaz de Búsqueda y Consulta de Pólizas Basada en Servicios Web
Por
Carlos Villalobos
INFORME FINAL DE CURSOS EN COOPERACIÓN
Presentado ante la Ilustre Universidad Simón Bolívar
como Requisito Parcial para Optar al Título de
Ingeniero en Computación
Sartenejas, Febrero de 2008
ii
INTERFAZ DE BÚSQUEDA Y CONSULTA DE PÓLIZAS BASADA EN SERVICIOS
WEB
Por:
CARLOS VILLALOBOS
RESUMEN
El presente informe documenta el proceso y los resultados del desarrollo de una interfaz de
búsqueda y consulta de pólizas basada en servicios web para la empresa Consis International. La idea
que se plantea es proveer servicios web que permitan a sistemas externos utilizar todos los procesos de
consulta y búsqueda de pólizas implementados en Acsel-e. Con esto se lograría la interoperabilidad y la
integración de la empresa con sus clientes, y mejorará la capacidad de la empresa para trabajar
conjuntamente con sus socios de negocio, proveedores y clientes, permitiendo que sistemas externos
puedan invocar las funciones de la aplicación a través de Internet (o una intranet corporativa) sin tener
que modificar la aplicación misma.
Para este desarrollo se aplicó una instancia de la metodología de Rational Unified Process
(RUP), en la que se llevaron a cabo sólo las fases de inicio, elaboración y construcción, y en la que se
generaron únicamente los artefactos necesarios que dieron como finalizadas cada una de estas etapas.
El resultado de las distintas decisiones de diseño e implementación de los servicios web, permitió
desarrollar un sistema que logró cumplir con los objetivos propuestos en el proyecto y satisfacer de
manera exitosa las necesidades de la empresa en el tiempo establecido.
iii
____________________________
A mis padres, por su amor
esfuerzo y apoyo incondicional
____________________________
iv
AGRADECIMIENTOS
Quiero agradecer a Dios por acompañarme en todo momento y por guiar cada uno de mis pasos.
A mis padres, por ser siempre mi ejemplo a seguir, por sus oportunas enseñanzas, su cariño
infinito, su apoyo incondicional y por su eterno esfuerzo, aliento, comprensión y bendición.
A mis hermanos, amigos y familiares, por su confianza, por siempre tenderme una mano, por
siempre ofrecerme su apoyo y cariño y por darme las fuerzas y el ánimo necesarios para siempre seguir
adelante.
A mis tutores Gabi Escuela y Rafael Álvarez, por su oportuna guía, por sus consejos, su
paciencia, sus enseñanzas y por su voto de confianza para llevar a cabo este proyecto.
Al equipo de Desarrollo de Consis International, por sus consejos y por brindarme siempre su
ayuda, colaboración y disposición.
Y a quienes pudieran escaparse de mi memoria, Gracias.
Sin todos ellos, no hubiese sido posible este proyecto, Muchas Gracias…
v
ÍNDICE GENERAL
CAPÍTULO 1. INTRODUCCIÓN................................................................................. 1
CAPÍTULO 2. ENTORNO EMPRESARIAL ...................................................... 3
2.1. LA EMPRESA .............................................................................................................................. 3
2.2. PRODUCTOS ............................................................................................................................... 4
2.3 SERVICIOS ................................................................................................................................... 5
2.4 UBICACIÓN DEL PASANTE ......................................................................................................... 6
CAPÍTULO 3. PLANTEAMIENTO DEL PROBLEMA .............................. 7
3.1. DESCRIPCIÓN ............................................................................................................................. 7
3.2. OBJETIVO ................................................................................................................................... 8
3.3. ALCANCE .................................................................................................................................... 8
CAPÍTULO 4. MARCO TEÓRICO ............................................................................ 9
4.1. SERVICIOS WEB ......................................................................................................................... 9
4.1.1. FUNCIONAMIENTO ............................................................................................................ 10
4.1.2. VENTAJAS DE LOS SERVICIOS WEB................................................................................ 13
4.1.3. RAZONES PARA CREAR SERVICIOS WEB ....................................................................... 13
4.2. SISTEMA DE INTERACCIÓN EXTENSIBLE DE APACHE (AXIS) ............................................. 14
4.3. SERVIDOR DE APLICACIONES DE WEBSPHERE................................................................... 17
4.4. ORACLE .................................................................................................................................... 17
4.5. INTELLIJ IDEA........................................................................................................................... 18
4.6. SUBVERSION ............................................................................................................................ 18
4.6.1. VENTAJAS .......................................................................................................................... 19
4.6.2. CARENCIAS........................................................................................................................ 19
CAPÍTULO 5. MARCO METODOLÓGICO ..................................................... 20
vi
5.1. PROCESO UNIFICADO DE RATIONAL (RUP) .......................................................................... 20
CAPÍTULO 6. DESARROLLO DE LA SOLUCIÓN .................................. 24
6.1. FASE DE INICIO ........................................................................................................................ 24
6.2. FASE DE ELABORACIÓN ......................................................................................................... 26
6.3. FASE DE CONSTRUCCIÓN....................................................................................................... 31
CAPÍTULO 7. CONCLUSIONES Y RECOMENDACIONES............. 33
7.1. CONCLUSIONES ....................................................................................................................... 33
7.2. RECOMENDACIONES ............................................................................................................... 34
REFERENCIAS BIBLIOGRÁFICAS ..................................................................... 35
ANEXO 1. CÓDIGO DEL SERVICIO BÚSQUEDA DE PÓLIZA ... 38
APÉNDICE A. FOLLETO DE ACSEL-E ........................................................... 41
APÉNDICE B. CASOS DE USO .............................................................................. 45
B.1. BUSCAR OPERACIONES APLICADAS.................................................................................... 46
B.2. CONSULTAR MOVIMIENTOS DE PÓLIZA................................................................................ 47
B.3. CONSULTAR MOVIMIENTOS DE RECLAMO........................................................................... 48
B.4. INICIAR SESIÓN ....................................................................................................................... 49
B.5. CERRAR SESIÓN...................................................................................................................... 50
B.6. CONSULTAR OPERACIONES PENDIENTES ........................................................................... 51
B.7. CONSULTA BÁSICA DE OPERACIONES PENDIENTES ......................................................... 52
B.8. CONSULTA AVANZADA DE OPERACIONES PENDIENTES ................................................... 53
B.9. BUSCAR PÓLIZAS POR TERCERO Y ROL.............................................................................. 54
B.10. BUSCAR PÓLIZAS.................................................................................................................. 55
APÉNDICE C. REQUERIMIENTOS TÉCNICOS ........................................ 56
vii
APÉNDICE D. PLAN CREATIVO ........................................................................... 81
APÉNDICE E. GLOSARIO ........................................................................................... 93
viii
ÍNDICE DE TABLAS Y FIGURAS
Figura 1. Los servicios Web en Funcionamiento..................................................................................... 10
Figura 2. Estructura de los mensajes SOAP........................................................................................... 11
Figura 3. Estructura del Proceso Unificado de Rational .......................................................................... 21
Figura 4. Página Acceso Sub Sistema Servicios Web – Consulta y Búsqueda de Pólizas en Acsel-e ..... 27
Figura 5. Página Principal Sub Sistema Servicios Web – Consulta y Búsqueda de Pólizas de Acsel-e. .. 28
Figura 6. Página Búsqueda Operaciones Pendientes Sub Sistema Servicios Web – Consulta y Búsqueda
de Pólizas de Acsel-e............................................................................................................................. 29
Tabla 1. Pruebas Funcionales. Caso de uso: Consulta de Movimientos de Póliza .................................. 32
Figura 7. Casos de Uso Sub Sistema Servicios Web – Consulta y Búsqueda de Pólizas de Acsel-e ...... 45
ix
LISTA DE SÍMBOLOS Y ABREVIATURAS
A continuación se presenta un listado ordenado alfabéticamente de las abreviaturas usadas a lo
largo del presente documento de pasantía.
API
Interfaz de Programación de Aplicaciones
AXIS
Sistema de Interacción Extensible de Apache
CORBA
Arquitectura Común de Intermediarios en Peticiones a Objetos
DCOM
Modelo de Objetos de Componentes Distribuidos
EDI
Intercambio Electrónico de Datos
HTTP
Protocolo de Transferencia de Hipertexto
HTTPS
Protocolo de Transferencia de Hipertexto Seguro
OASIS
Organización para el Avance de las Normas de Información Estructuradas
RMI
Invocación a Métodos Remotos
RPC
Llamada a Procedimiento Remoto
RUP
Proceso Unificado de Rational
SMTP
Protocolo Simple de Transferencia de Correo
SOAP
Protocolo Simple de Acceso a Objetos
TCP
Protocolo de Control de Transmisión
UDDI
Descripción Universal, Descubrimiento e Integración
UML
Lenguaje de Modelado Unificado
USA
Estados Unidos de América
WSDD
Descriptor de Instalación de Servicios Web
WSDL
Lenguaje de Descripción de Servicios Web
WS-SECURITY
Seguridad de Servicios Web
XML
Lenguaje de Marcas Extensibles
x
CAPÍTULO 1. INTRODUCCIÓN
“Las aplicaciones web actuales ya no son suficientes. El modelo actual de negocio electrónico no
facilita la integración de las aplicaciones de Internet con el resto de software de las empresas. Si las
compañías quieren extraer el máximo beneficio de Internet, los sitios web deben evolucionar. Este es el
contexto en el que surgen los servicios web” [5].
“Los servicios Web permiten que las aplicaciones compartan información y que además invoquen
funciones de otras aplicaciones independientemente de cómo se hayan creado las aplicaciones, cuál sea
el sistema operativo o la plataforma en que se ejecutan y cuáles los dispositivos utilizados para obtener
acceso a ellas. Aunque los servicios Web son independientes entre sí, pueden vincularse y formar un
grupo de colaboración para realizar una tarea determinada” [13].
Consis International es una empresa que provee soluciones tecnológicas a la industria
aseguradora y ha desarrollado sistemas inteligentes para manejar la gestión integral, poderosas
herramientas sobre Web y arquitecturas innovadoras para la industria de Seguros. Su visión es
convertirse en la Plataforma tecnológica preferida de sistemas y servicios, transfiriendo ventajas
competitivas e innovación a sus clientes.
Es por esto que Consis desea desarrollar servicios web que permitan a sistemas externos utilizar
todos los procesos de póliza implementados en Acsel-e, uno de los productos principales que ofrecen y
que cuenta con una arquitectura que permite crear y modificar dinámicamente la estructura, presentación
y comportamientos de una aplicación de Seguros.
El objetivo general de la pasantía fue publicar las funcionalidades de búsqueda y consulta de
pólizas existente en Acsel-e utilizando servicios web.
1
Este documento consta de siete capítulos en los que se expone la información necesaria para
tener una visión general del problema y la búsqueda de la solución. A continuación se menciona
brevemente el contenido de cada capítulo.
En el capítulo 2 se presenta la descripción de la empresa donde fue llevada a cabo la pasantía,
los productos y los servicios que ofrece la empresa y cuál fue la ubicación del pasante dentro de la
empresa. El capítulo 3 muestra el planteamiento detallado del problema atacado durante la pasantía, el
objetivo general y su alcance. En el capítulo 4 el basamento teórico necesario para el desarrollo de la
solución, describiendo los servicios web y las herramientas tecnológicas utilizadas. El capítulo 5 presenta
los lineamientos metodológicos que guiaron la ejecución del proyecto. El capítulo 6 muestra el desarrollo
de la solución y los resultados obtenidos en cada una de las fases del proyecto. Por último, el capítulo 7
ofrece las conclusiones y las recomendaciones obtenidas del proyecto.
2
CAPÍTULO 2. ENTORNO EMPRESARIAL
En este capítulo se describe la empresa donde fue realizado el proyecto de pasantía a fin de
proveer una visión global del ambiente de trabajo.
2.1. LA EMPRESA
Desde su fundación en 1987, Consis International ha ayudado a más de 60 empresas de Seguros
en el mundo a lograr resultados estratégicos a través de la Tecnología de Información. Con más de 20
años de éxito desarrollando e implantando soluciones innovadoras, Consis International se ha convertido
en un proveedor líder de soluciones para la industria aseguradora.
Han desarrollado sistemas inteligentes para manejar la gestión integral, poderosas herramientas
sobre Web y arquitecturas innovadoras para la industria de Seguros, combinando tecnología de punta
sobre la cadena de valor del negocio y las mejores prácticas aplicadas a los modelos emergentes de
negocio electrónico.
Su visión es convertirse en la Plataforma tecnológica preferida de sistemas y servicios,
transfiriendo ventajas competitivas e innovación a sus clientes, para desarrollar al máximo su eficiencia y
rentabilidad en sus mercados naturales de negocio.
Para facilitar el proceso, transforman el Valor tecnológico en Valor de Negocios para sus clientes,
diseñando y entregando soluciones para aumentar su visibilidad, participación de mercado y rentabilidad.
Consis Internacional cuenta con más de 60 clientes en diferentes países y tiene su oficina
principal en Florida (USA), posee dos divisiones regionales de desarrollo y está presente en 14 países de
América. Además, cuenta con un equipo multidisciplinario certificado, integrado por más de 100
desarrolladores y consultores con vasta experiencia práctica.
3
2.2. PRODUCTOS
Los productos que ofrece Consis Internacional a sus clientes son: I-FlexPro, Acsel-e y Acsel/X.
I-FlexPro permite a los analistas de negocios y actuarios, en cualquier ramo de seguros, diseñar,
configurar y mantener un producto de manera sencilla, con todas las definiciones requeridas, criterios de
suscripción, reglas de negocio y factores de tarifa. Una vez concluida la configuración, el producto está
listo para ser lanzado y disponible para que su fuerza de ventas cotice a través del Web.
Acsel-e posee una avanzada arquitectura de diseño basada en componentes reusables y
orientada al Web, donde las estructuras de datos, la presentación y el comportamiento de la aplicación,
pueden ser instrumentos para satisfacer las necesidades más exigentes y particulares de cualquier
empresa de Seguros. Estas dimensiones son complementadas por Módulos Colaboradores que abarcan
todos los aspectos de la cadena de valor y las diferentes áreas de la empresa, proporcionando nuevas
maneras de suscribir riesgos y de administrar las pólizas con sus respectivos servicios, lo suficientemente
flexible para permitir cualquier adaptación o cambio sobre la marcha; sin impactar su operatividad (Ver
Apéndice A, para más información).
Acsel/X es un sistema integral de administración de pólizas, tanto en ramos comerciales como
personales. Incluye todos los componentes de administración, como: Tarifa, Suscripción, Ventas, Pólizas,
Primas, Siniestros o Reclamos, Coaseguro y Reaseguro. Incorpora aspectos contables y sistemas de
Información Gerencial, así como personalización en las partes técnicas de cada ramo. Cada módulo
puede ser comercializado individualmente ya que es altamente configurable y flexible a las necesidades
de cualquier asegurador.
4
2.3 SERVICIOS
Además Consis International presta los siguientes servicios:
Desarrollo de Productos: Consis tiene un equipo de especialistas con experiencia real y global,
que puede instalar sus aplicaciones integrándolas con otros sistemas o soluciones de terceros,
personalizar las necesidades del cliente y aplicar las mejores prácticas para responder exactamente a
sus exigencias.
Implantación: El foco principal de Consis es la transferencia de tecnología y el adiestramiento de
sus clientes en todos los servicios y productos que Consis ofrece, permitiéndole a los clientes tener
control total de su plataforma y aprovechar al máximo las ventajas de sus propios sistemas.
Adiestramiento: Consis provee Contratos de Soporte para proteger la inversión de sus clientes,
incluyendo políticas de mantenimiento, actualizaciones y resolución de problemas, con acceso a: Ayuda
de Escritorio, Soporte Local y Asistencia Virtual (ajustándose a las políticas de seguridad de información
que los clientes tengan).
Soporte: Consis implanta las mejores prácticas gerenciales para cada etapa de un proyecto.
Combinando patrones y metodologías, tales como UML, RUP, Pruebas de Software, Aseguramiento de
Calidad, Mejoramiento de Procesos, Administración de Configuraciones, así como el Control de
Versiones y Administración de Cambios y Requerimientos en su base instalada de Clientes. Brinda
asistencia oportuna y confiable para mantener los sistemas de sus clientes funcionando sin interrupciones
[1].
5
2.4 UBICACIÓN DEL PASANTE
El proyecto fue realizado en el departamento de Desarrollo, y contó con la supervisión del tutor
industrial Rafael Álvarez, quien es el Líder Técnico y de Arquitectura del Sistema y pertenece al
departamento de Arquitectura. Además se contó con la ayuda del equipo de desarrollo para conocer más
detalladamente el sistema Acsel-e, además de brindar recomendaciones de programación para el
desarrollo de los servicios web.
6
CAPÍTULO 3. PLANTEAMIENTO DEL PROBLEMA
Este capítulo tiene como finalidad exponer el contexto del problema que ha impulsado la
realización de este trabajo. Para ello se describe la problemática existente, el objetivo y el alcance del
mismo.
3.1. DESCRIPCIÓN
Hoy en día, las empresas se basan en miles de diferentes aplicaciones de software cada una con
su propio papel que desempeñar en el funcionamiento de una empresa. Estas diferentes aplicaciones de
software se ejecutan en una amplia gama de plataformas, sistemas operativos y en diferentes lenguajes
de programación. Como resultado, es muy difícil para diferentes aplicaciones comunicarse entre sí y
compartir sus recursos de forma coordinada [5].
Para resolver el problema de la comunicación entre las aplicaciones, las empresas necesitan una
forma estándar para que las aplicaciones puedan comunicarse entre sí a través de las redes, sin importar
la forma en que esas aplicaciones fueran originalmente implementadas. Los servicios web proporcionan
exactamente esta solución, proporcionando un método estandarizado de comunicación entre las
aplicaciones de software. Con un método de comunicación estandarizado, las diferentes aplicaciones se
pueden integrar juntas en maneras que no eran posibles antes. Las diferentes aplicaciones pueden hacer
llamadas a los recursos de las otras de manera fácil y fiable, y los distintos recursos que ya ofrecen las
aplicaciones pueden vincularse con el fin de ofrecer nuevos tipos de recursos y funcionalidad. Además, la
integración de aplicaciones es mucho más flexible, ya que los servicios web proporcionan una forma de
comunicación que no está vinculado a ninguna plataforma o lenguaje de programación. La
implementación interna de una aplicación puede cambiar sin cambiar los canales de comunicación entre
éste y el resto de las aplicaciones con las que se coordina. En resumen, los servicios Web proporcionan
una forma estándar para exponer los recursos de una aplicación al mundo exterior a fin de que cualquier
usuario puede aprovechar los recursos de la aplicación [5].
7
Por lo anteriormente mencionado, la empresa Consis International requiere diseñar e
implementar servicios web que publiquen todos los servicios de manejo de póliza en Acsel-e y de esta
manera, permitir que las aplicaciones de sus clientes puedan comunicarse e integrarse con estos sin
mayores dificultades.
3.2. OBJETIVO
El objetivo de este proyecto es proveer servicios web que permitan a sistemas externos utilizar
todos los procesos de póliza implementados en Acsel-e. Para ello se publicarán las funcionalidades de
búsqueda y consulta de pólizas existente utilizando servicios web.
3.3. ALCANCE
El alcance del proyecto está limitado al desarrollo de una interfaz de consulta de pólizas
desacoplada del núcleo de Acsel-e basada en estos servicios. Específicamente se requiere desarrollar
servicios web que permitan la búsqueda de pólizas de manera general, búsqueda de pólizas asociadas a
un tercero y con un rol, búsqueda de las operaciones pendientes y búsqueda de las operaciones
aplicadas.
8
CAPÍTULO 4. MARCO TEÓRICO
En este capítulo se detallan los conceptos de distintos elementos básicos para el buen
entendimiento del contenido de este informe de pasantía. Se define en principio el concepto de los
servicios web y su funcionamiento, y posteriormente se exponen los recursos tecnológicos utilizados para
el desarrollo de los servicios web: AXIS que fue utilizado por las ventajas que ofrece para los servicios
web; WebSphere que fue el servidor de aplicaciones utilizado; Oracle el cual se utilizó como manejador
de base de datos; Intellij IDEA que fue la herramienta de desarrollo que se utilizó, por las facilidades que
ofrece para la programación; y Subversión que fue el software utilizado para el control de versiones del
sistema.
4.1. SERVICIOS WEB
“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. Son 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. El objetivo final es la creación de un
directorio en línea de servicios web, que pueda ser localizado de un modo sencillo y que tenga una alta
fiabilidad” [10].
Otra definición de servicios web, rescatada en una charla técnica de Servicios Web XML en
Microsoft en octubre del 2003 cuyo expositor fue el señor Marcos Escovar es:
"Un Servicio Web es un componente de software que se comunica con otras aplicaciones
codificando los mensaje en XML y enviando estos mensaje a través de protocolos estándares de Internet
tales como el Protocolo de Transferencia de Hipertexto (HTTP). Intuitivamente un Servicio Web es similar
a un sitio web que no cuenta con un interfaz de usuario y que da servicio a las aplicaciones en vez de a
las personas. Un Servicio Web, en vez de obtener solicitudes desde el navegador y retornar páginas web
9
como respuesta, lo que hace es recibir solicitudes a través de un mensaje formateado en XML desde una
aplicación, realiza una tarea y devuelve un mensaje de respuesta también formateado en XML" [12].
4.1.1. FUNCIONAMIENTO
En la figura 1 [3], se muestra cómo interactúa un conjunto de Servicios Web:
Figura 1. Los servicios Web en Funcionamiento
“Según el ejemplo del gráfico, un usuario (que juega el papel de cliente dentro de los Servicios
Web), a través de una aplicación, solicita información sobre un viaje que desea realizar haciendo una
petición a una agencia de viajes que ofrece sus servicios a través de Internet. La agencia de viajes
ofrecerá a su cliente (usuario) la información requerida. Para proporcionar al cliente la información que
necesita, esta agencia de viajes solicita a su vez información a otros recursos (otros Servicios Web) en
relación con el hotel y la compañía aérea. La agencia de viajes obtendrá información de estos recursos,
lo que la convierte a su vez en cliente de esos otros Servicios Web que le van a proporcionar la
información solicitada sobre el hotel y la línea aérea. Por último, el usuario realizará el pago del viaje a
10
través de la agencia de viajes que servirá de intermediario entre el usuario y el servicio Web que
gestionará el pago” [3].
En todo este proceso intervienen una serie de tecnologías que hacen posible esta circulación de
información. Por un lado, estaría SOAP (Protocolo Simple de Acceso a Objetos). Se trata de un protocolo
basado en XML, que permite la interacción entre varios dispositivos y que tiene la capacidad de transmitir
información compleja. Los datos pueden ser transmitidos usando cualquier protocolo de transferencia
(HTTP, SMTP, etc.), ya que SOAP sólo define el contenido (formato) de los mensajes. El mensaje SOAP
está compuesto por un “sobre”, cuya estructura está formada por los siguientes elementos: “cabecera” y
“cuerpo”. En la figura 2 se puede observar la estructura de los mensajes SOAP [3].
Figura 2. Estructura de los mensajes SOAP
Algunas de las Ventajas de SOAP son:
•
No esta asociado con ningún lenguaje.
•
No se encuentra fuertemente asociado a ningún protocolo de transporte.
•
No está atado a ninguna infraestructura de objeto distribuido.
11
•
Aprovecha los estándares existentes en la industria.
•
Permite la interoperabilidad entre múltiples entornos [8].
XML (Lenguajes de Marcas Extensible) no es más que un conjunto de reglas para definir
etiquetas semánticas que nos organizan un documento en diferentes partes. XML es un metalenguaje
que define la sintaxis utilizada para definir otros lenguajes de etiquetas estructurados. Se utiliza XML
porque:
•
Es un estándar abierto es decir que es reconocido mundialmente.
•
Simplicidad de sintaxis.
•
Independencia del protocolo de Transporte [11].
“Por otro lado, WSDL (Lenguaje de Descripción de Servicios Web), permite que un servicio y un
cliente establezcan un acuerdo en lo que se refiere a los detalles de transporte de mensajes y su
contenido, a través de un documento procesable por dispositivos. WSDL representa una especie de
contrato entre el proveedor y el que solicita. WSDL especifica la sintaxis y los mecanismos de intercambio
de mensajes” [3].
“UDDI (Descripción Universal, Descubrimiento e Integración) es el protocolo para publicar la
información de los servicios Web. Permite comprobar qué servicios web están disponibles.
UDDI es un registro público diseñado para almacenar de forma estructurada información sobre empresas
y los servicios que éstas ofrecen. A través de UDDI, se puede publicar y descubrir información de una
empresa y de sus servicios. Se puede utilizar sistemas taxonómicos estándar para clasificar estos datos y
poder encontrarlos posteriormente en función de la categorización. Lo más importante es que UDDI
contiene información sobre las interfaces técnicas de los servicios de una empresa. A través de un
conjunto de llamadas a API XML basadas en SOAP, se puede interactuar con UDDI tanto en tiempo de
diseño como de ejecución para descubrir datos técnicos de los servicios que permitan invocarlos y
utilizarlos. De este modo, UDDI sirve como infraestructura para una colección de software basado en
servicios Web” [9].
12
Por último, WS-Security (Seguridad de los Servicios Web), es el protocolo de seguridad aceptado
como estándar por OASIS (Organización para el Avance de las Normas de Información Estructuradas).
Garantiza la autenticación de los actores y la confidencialidad de los mensajes enviados [18].
Los servicios Web tienen la característica de ser reutilizables, flexibles y basados en estándares
lo que los hacen muy adecuados para la creación de sistemas integrados en la Internet o las intranets.
4.1.2. VENTAJAS DE LOS SERVICIOS WEB
•
Aportan interoperabilidad entre aplicaciones de software independientemente de sus
propiedades o de las plataformas sobre las que se instalen.
•
Los servicios Web fomentan los estándares y protocolos basados en texto, que hacen más
fácil acceder a su contenido y entender su funcionamiento.
•
Al apoyarse en HTTP, los servicios Web pueden aprovecharse de los sistemas de seguridad
“corta fuegos” sin necesidad de cambiar las reglas de filtrado.
•
Permiten que servicios y software de diferentes compañías ubicadas en diferentes lugares
geográficos puedan ser combinados fácilmente para proveer servicios integrados.
•
Permiten la interoperabilidad entre plataformas de distintos fabricantes por medio de
protocolos estándar [18].
4.1.3. RAZONES PARA CREAR SERVICIOS WEB
“Una primera razón por la que los servicios Web son muy prácticos es que pueden aportar gran
independencia entre la aplicación que usa el servicio Web y el propio servicio. De esta forma, los cambios
a lo largo del tiempo en uno no deben afectar al otro. Esta flexibilidad será cada vez más importante,
dado que la tendencia a construir grandes aplicaciones a partir de componentes distribuidos más
pequeños es cada día más acusada” [18].
13
“El principal objetivo que se logra, es la interoperabilidad y la integración. Mediante los servicios
web, las empresas pueden compartir servicios de software con sus clientes y sus socios de negocio. Esto
ayudará a las compañías a escalar sus negocios, reduciendo el costo en desarrollo y mantenimiento de
software, y sacando los productos al mercado con mayor rapidez. La integración de aplicaciones hará
posible obtener la información demandada en tiempo real, acelerando el proceso de toma de decisiones.
La evolución de Internet hacia los servicios web, mejorará los resultados globales de las empresas,
reduciendo sus gastos y guiándolas hacia una mejora progresiva de la calidad. La adopción de la
tecnología de servicios web por la industria es el primer paso hacia una economía global” [10].
“La conexión de aplicaciones a través de la Internet mejorará la capacidad de las empresas para
trabajar conjuntamente con sus socios de negocio, proveedores y clientes. Creando una capa de
Servicios Web sobre una aplicación corporativa existente, las organizaciones podrán permitir que
sistemas externos puedan invocar las funciones de la aplicación a través de Internet (o una intranet
corporativa) sin tener que modificar la aplicación misma… Poner una capa de servicios web sobre las
aplicaciones existentes es una solución muy interesante para integrar las aplicaciones desarrolladas por
los diferentes departamentos y así reducir los costos de integración” [12].
4.2. SISTEMA DE INTERACCIÓN EXTENSIBLE DE APACHE (AXIS)
Axis es esencialmente un motor SOAP, un marco para la construcción de procesadores de SOAP
como clientes, servidores, puertas de enlace, etc. Pero Axis no es sólo un motor SOAP, también incluye:
•
Un servidor,
•
Un servlet que se conecta a los motores de servlets como Tomcat,
•
Un amplio apoyo para el Lenguaje de Descripción de Servicios Web (WSDL),
•
Herramienta para generar clases Java a partir de WSDL,
•
Algunos programas de ejemplo, y
•
Una herramienta para monitorear paquetes TCP / IP.
14
Sus propiedades principales son:
•
Velocidad.
•
Flexibilidad.
•
Estabilidad.
•
Orientado a componentes.
•
Soporta WSDL [14].
La forma más sencilla de instalar y poner a funcionar un Servicio Web en Axis es la que se llama
instalación instantánea. Esta forma no requiere ninguna tarea adicional a la de generar la implementación
Java del servidor. Será suficiente almacenar la implementación en un fichero de extensión jws, Servicio
Web de Java y hacer ese fichero accesible al servidor [2].
Sin embargo, la instalación instantánea está pensada para servicios muy básicos y no permite
por ejemplo definir tipos propios. Para servicios más avanzados será necesario emplear lo que se llama
instalación personalizada. Para ello será necesario generar un fichero de configuración XML con toda la
información necesaria para la instalación. Dicho fichero es lo que se denomina un Descriptor de
Instalación de Servicios Web (WSDD), y se suele almacenar en un fichero de extensión wsdd [2].
Básicamente en este fichero se proporciona la siguiente información:
•
El nombre del servicio y su tipo.
•
El alcance del servicio.
•
El nombre de la clase que presta el servicio.
•
Qué métodos de esa clase son invocables remotamente vía SOAP.
•
Por último se definen los tipos propios [2].
15
Una vez que se tiene toda la información que se necesita para proceder a la instalación del
servicio, es necesario llevar a cabo los siguientes pasos para que ésta se lleve a cabo correctamente:
1. Generar un fichero jar que contenga todas las clases necesarias para el correcto
funcionamiento del servidor.
2. Lanzar el servidor.
3. Instalar el servidor utilizando la herramienta de administración de Axis:
java org.apache.axis.client.AdminClient server-config.wsdd.
4. Ejecutar el código del cliente [2].
Una situación frecuente cuando se trabaja con Servicios Web, es que se desarrolle únicamente
una parte del sistema: sólo el cliente o sólo el servidor, siendo terceras partes las que desarrollan la otra
parte. Para que esto sea posible, es interesante poder disponer de la especificación en WSDL del
servicio, puesto que si se está desarrollando el cliente interesará saber qué operaciones permite el
servicio y si se desarrolla el servidor, se debe publicar el WSDL para facilitar a terceras partes el
desarrollo de sus clientes [2].
“El proceso de generación de WSDL a partir del código Java de un Servicio Web es
absolutamente automático en Axis. De hecho, al mismo tiempo que se instala un servicio (en la
modalidad de Instalación Personalizada) se genera automáticamente la descripción WSDL de dicho
servicio. Esta descripción puede ser accedida vía Web en la URL:
http://host:puerto/axis/services/Nombre_de_Servicio?wsdl.
Para el proceso inverso, generación de código Java a partir de la descripción WSDL de un
servicio, Axis también proporciona herramientas de apoyo a los desarrolladores. En concreto existe un
compilador denominado WSDL2Java que permite generar automáticamente ficheros muy útiles para la
codificación de clientes“[2].
16
4.3. SERVIDOR DE APLICACIONES DE WEBSPHERE
El Servidor de Aplicaciones de WebSphere es el producto principal dentro de la familia
WebSphere de IBM. Está construido usando estándares abiertos tales como J2EE, XML y Servicios
Web. Sus características son:
•
Ofrece un soporte integrado para los estándares abiertos de servicios web clave.
•
Ofrece una avanzada infraestructura muy segura y ampliable.
•
Amplía la flexibilidad a través de un soporte de plataforma cruzada y múltiples opciones de
configuración con una base de código exclusiva de servidor de aplicaciones.
•
Amplía la productividad con un entorno de desarrollo basado en estándares abiertos
integrados.
•
Ofrece unas funciones de carga de trabajo y de colocación distribuidas para optimizar de
forma inteligente el rendimiento.
•
Ofrece una administración exclusiva basada en navegador entre todas las opciones de
despliegue.
•
Amplía la disponibilidad de la aplicación con unas sofisticadas funciones de agrupación en
clústeres y de equilibrio de carga [15].
4.4. ORACLE
Es un robusto sistema de administración de base de datos fabricado por Oracle Corporation.
Oracle es considerado como uno de los sistemas de bases de datos más completos, destacando
su:
•
Soporte de transacciones.
•
Estabilidad.
•
Es multiplataforma [17].
17
Desde su primer lanzamiento, Oracle ha tenido como base el fácilmente entendible modelo
relacional, por lo que personas corrientes no programadores pueden entender qué hizo Oracle con los
datos y cómo lo hizo. Esto la hace más flexible y alcanzable que otras bases de datos.
4.5. INTELLIJ IDEA
IntelliJ IDEA es un entorno comercial de desarrollo integrado de Java desarrollado por la empresa
JetBrains.
La primera versión de IntelliJ IDEA apareció en enero de 2001 y rápidamente se hizo muy
popular, como el primer
entorno de desarrollo integrado de Java con un conjunto integrado de
herramientas de refactorización que permiten a los programadores rápidamente rediseñar su código. El
diseño de IntelliJ IDEA está centrado en la productividad del programador. Algunas de sus características
están destinadas a acelerar el desarrollo y permitir a los programadores concentrarse en la funcionalidad
mientras IntelliJ IDEA gestiona más rutinarias tareas de codificación [16].
A partir de la versión 6, IntelliJ IDEA ofrece de forma integrada el diseño como parte de sus
plugins por defecto. Entre otras características, IntelliJ IDEA proporciona una estrecha integración con las
populares herramientas de desarrollo de código abierto, como Subversión, Apache Ant y JUnit [16].
4.6. SUBVERSION
“Subversion es un software de sistema de control de versiones. Es software libre y se le conoce
también como svn por ser ese el nombre de la herramienta de línea de comandos. Una característica
importante de Subversion es que, los archivos versionados no tienen cada uno un número de revisión
independiente. En cambio, todo el repositorio tiene un único número de versión que identifica un estado
común de todos los archivos del repositorio en cierto punto del tiempo” [19].
18
4.6.1. VENTAJAS
•
Se sigue la historia de los archivos y directorios a través de copias y renombrados.
•
Las modificaciones (incluyendo cambios a varios archivos) son atómicas.
•
La creación de ramas y etiquetas es una operación más eficiente; Tiene costo de complejidad
constante (O(1)).
•
Se envían sólo las diferencias en ambas direcciones.
•
Maneja eficientemente archivos.
•
Permite selectivamente el bloqueo de archivos. Se usa en archivos binarios que, al no poder
fusionarse fácilmente, conviene que no sean editados por más de una persona a la vez [19].
4.6.2. CARENCIAS
•
El manejo de cambio de nombres de archivos no es completo. Lo maneja como la suma de una
operación de copia y una de borrado.
•
No resuelve el problema de aplicar repetidamente parches entre ramas, no facilita el llevar la
cuenta de qué cambios se han trasladado [19].
19
CAPÍTULO 5. MARCO METODOLÓGICO
El presente capítulo tiene como objetivo dar a conocer los aspectos metodológicos que rigieron la
ejecución del proyecto de pasantía documentado en este informe. Para el mismo se realizó una instancia
de RUP al caso particular del desarrollo de servicios web. Inicialmente se describirá brevemente la
metodología RUP y su estructura, y posteriormente se darán las razones por las cuales se adoptó seguir
esta metodología y los aspectos más resaltantes para cada una de las fases que se siguieron de la
misma.
5.1. PROCESO UNIFICADO DE RATIONAL (RUP)
Según Kruchten, RUP es un proceso de ingeniería de software que provee un enfoque
disciplinado para la asignación de tareas y responsabilidades dentro de una organización desarrolladora
de software. Su principal objetivo es asegurar la producción de software de alta calidad que satisfaga las
necesidades de sus usuarios finales dentro de un presupuesto y tiempo predecibles [7].
RUP es un marco de trabajo personalizable, el cual puede fácilmente adaptarse a la manera en
que trabaja una compañía. Por lo tanto, RUP puede ser adaptada tanto a empresas grandes como
pequeñas y puede ser modificada para acomodarse a las diferentes situaciones [6].
Este proceso captura muchas de las mejores prácticas de la ingeniería de software moderna, de
manera que es adecuado para una amplia variedad de proyectos y organizaciones [20].
RUP básicamente se define como una metodología:
•
Centrada en la arquitectura.
•
Iterativa/Incremental.
•
Dirigida por casos de uso.
20
•
La arquitectura del sistema debe ser documentada.
RUP se repite a lo largo de una serie de ciclos que constituyen el ciclo de vida de un sistema.
Cada ciclo concluye con una versión del producto para el cliente. El desarrollo de un ciclo está
influenciado por la variable tiempo, la cual divide en cuatro fases la metodología en cuestión.
El proceso tiene dos dimensiones: una estática y una dinámica. Las mismas son reflejadas en la
figura 3, que se muestra a continuación [4]:
Fases
Flujos de Trabajo de Procesos
Inicio
Elaboración
Construcción
Transición
Modelación de Negocios
Requerimientos
Análisis y Diseño
Contenido
Implementación
Prueba
Desarrollo
Flujos de Trabajo de Soporte
Admin. Configuración
Administración
Ambiente
Iteración(es)
Preliminar
Iter.
#1
Iter.
#2
Iter.
#n
Iter.
#n+1
Iter.
#n+2
Iter.
#m
Iter.
#m+1
Iteraciones
Figura 3. Estructura del Proceso Unificado de Rational
La dimensión estática está representada en la figura 3 como el eje vertical. La misma se describe
en términos de: componentes, actividades, flujos de trabajo, artefactos y actores.
21
La dimensión dinámica está representada en la figura 3 como el eje horizontal. La misma está
expresada en términos de ciclos, fases, iteraciones e hitos. Este eje/dimensión representa el tiempo que
es asignado para cada una de las actividades y la fase en la cuál será desarrollada.
Para el desarrollo planteado en este trabajo de pasantía se decidió hacer una instancia de lo que
plantea la metodología RUP, haciendo una única iteración y realizando sólo las fases de inicio,
elaboración y construcción contemplando sólo algunos elementos de cada fase. Esta decisión fue tomada
ya que la compañía no exigía seguir ninguna metodología en específico para el desarrollo de sistemas;
por otra parte, se seleccionó esta metodología dada su adaptabilidad a la manera en que trabaja una
empresa y por la garantía de éxito que se tiene al seguir ésta; y por último, por la experiencia que se tiene
con desarrollos anteriores, los cuales fueron supervisados y exitosamente culminados como
requerimiento en algunas materias del pensum de la carrera.
A continuación se describen los aspectos más importantes que se alcanzaron en cada una de las
fases mencionadas anteriormente.
Fase Inicio: esta fase comenzó al final de la misma, ya que el problema estaba analizado antes
de comenzar la pasantía. Por tanto esta fase sólo incluyó la identificación y el modelamiento de los
requerimientos. Más específicamente, se realizó la familiarización con el concepto de servicios web, así
como la familiarización con el sistema Acsel-e, los servicios web existentes en éste y las herramientas
tecnológicos utilizadas para el mismo. En esta fase se elaboró una lista inicial de los casos de uso a
realizar y el glosario requerido para el sistema.
Fase Elaboración: esta fase incluyó la navegación del sistema y el diseño de la información de
cada una de las páginas a utilizar, el diseño de los servicios web y la implementación de una parte de los
casos de uso (aproximadamente 40%). En esta fase se elaboró el documento de requerimientos técnicos,
plan creativo y documento de casos de uso refinado.
22
Fase Construcción: durante esta fase se culminó la implementación de los casos de uso
restantes (aproximadamente 60%), y se realizaron las pruebas pertinentes a los mismos. Una vez
concluidas las pruebas, se presentó ante el tutor encargado los servicios web realizados exponiendo su
modo de operación.
23
CAPÍTULO 6. DESARROLLO DE LA SOLUCIÓN
En este capítulo se hace mención a los aspectos más importantes surgidos en las fases de inicio,
elaboración y construcción contempladas en el marco metodológico, describiendo las actividades
realizadas y los artefactos desarrollados en cada una de ellas.
6.1. FASE DE INICIO
Como se mencionó en el capítulo anterior, esta fase se comenzó ya al final de la misma, ya que
el análisis del problema fue realizado con anterioridad por la empresa. Por tanto la actividad inicial del
proyecto fue recaudar información de los distintos elementos que conforman el dominio del problema.
Para esto, se contó con la ayuda del Ingeniero Rafael Álvarez y del Licenciado Néstor Abreu, quienes
gentilmente explicaron el ambiente y la terminología utilizada en la industria aseguradora, la estructura
general de una póliza y expusieron ejemplos de gran ayuda para entender con exactitud el contexto de
las empresas de Seguros.
Posteriormente se dio paso a la familiarización con el concepto de los servicios web. Para ello se
consultaron diversas páginas en Internet que explicaran a fondo el concepto de los mismos, su
funcionamiento, sus ventajas y las razones por las cuales deben desarrollarse los servicios web. Una vez
comprendida su importancia y su necesidad, se implementaron diversos servicios web que sirvieran de
prueba y que comprobaran el entendimiento de su funcionamiento.
Seguidamente se pasó conocer el sistema Acsel-e. Nuevamente el Licenciado Néstor Abreu
procedió a explicar el funcionamiento del sistema y su uso. Para comprender aún mejor el sistema, se
crearon a través de éste, diversas pólizas de seguros utilizando varios productos; se modificaron pólizas
de seguros; y posteriormente se consultaron las pólizas y las operaciones creadas en el sistema,
detallando en cada paso cada una de las partes que conforman la póliza.
24
Una vez conocido el sistema, se investigó sobre las herramientas tecnológicas utilizadas por la
empresa Consis International para desarrollar sus productos y en especial, para desarrollar los servicios
web ya existentes en Acsel-e. Para ello igualmente se procedió a buscar en diversas páginas web
información sobre Axis, WebSphere e IntelliJ Idea, las cuales eran las herramientas utilizadas por Consis.
Luego de ambientarse con los servicios web, conocer el sistema y tener noción de las
herramientas tecnológicas utilizadas, el tutor industrial informó sobre los servicios web que requería
Consis que fuesen implementados para el Sub Sistema de Servicios Web – Consulta y Búsqueda de
Pólizas de Acsel-e, los cuales ya habían sido previamente analizados por la empresa. Como resultado de
esto, se realizó el glosario requerido para el sistema (ver Apéndice E) y se obtuvo una lista inicial de los
casos de uso a realizar, los cuales son: Iniciar Sesión, Cerrar Sesión, Búsqueda de Operaciones
Pendientes, Búsqueda de Operaciones Aplicadas, Búsqueda de Pólizas por Tercero y Rol, Búsqueda de
Póliza, Consulta de Movimientos de una Póliza y Consulta de Movimientos de un Reclamo. A
continuación se describe cada uno de ellos.
Iniciar Sesión: permite almacenar durante la sesión en el sistema al usuario junto al país e
idioma. En caso de que el usuario no esté registrado, el sistema lanzará una excepción si éste intenta
realizar alguna operación.
Cerrar Sesión: elimina la información del usuario en la sesión actual.
Búsqueda de Operaciones Pendientes: permite realizar la búsqueda de operaciones pendientes.
Para esto se puede escoger entre una búsqueda básica y una búsqueda avanzada. La básica permite
buscar por fechas y producto, mientras que la avanzada permite buscar por fechas, producto,
identificador de póliza y número de póliza.
25
Búsqueda de Operaciones Aplicadas: permite buscar todas las operaciones aplicadas a una
póliza. Para esto se debe suministrar el identificador de la póliza a la cual se le desea buscar sus
operaciones aplicadas.
Búsqueda de Pólizas por Tercero y Rol: permite realizar la búsqueda de las pólizas asociadas a
un tercero y con un rol en específico.
Búsqueda de Póliza: permite realizar la búsqueda general de pólizas en el sistema. Para esto
podrá buscar por cualquiera de las propiedades configuradas en el sistema para las pólizas.
Consulta de Movimientos de Pólizas: permite realizar todos los movimientos realizados en una
póliza. Para esto se debe suministrar el identificador o número de la póliza que se desea consultar.
Consulta de Movimientos de Reclamo: permite realizar todos los movimientos realizados en un
reclamo. Para esto se debe suministrar el número del reclamo que se desea consultar.
6.2. FASE DE ELABORACIÓN
En esta fase del desarrollo, y luego de conocer la descripción de los casos de uso requeridos, se
realizó el diseño de navegación del sistema y el diseño de la interfaz, el diseño de los servicios web y la
implementación de algunos de los casos de uso definidos.
Para la navegabilidad del sistema se decidió que para entrar a éste, el usuario debe iniciar
sesión. Una vez hecho esto, se pasará a la página principal, en donde el usuario tendrá acceso por medio
de un menú a cada uno de los casos de uso definidos. El usuario sólo podrá cerrar sesión desde esta
página. Cada opción del menú da acceso a la página que expone el caso de uso correspondiente, y
desde ésta se realizará la búsqueda o consulta, mostrando los resultados en esta misma página. Cada
una de estás paginas, permite el retorno a la página principal (Ver Apéndice D para más detalles).
26
En cuanto al diseño de la interfaz, ésta se realizó en base al diseño de presentación y organización
de la información, la finalidad y uso de botones, campos y menús y el diseño de la estética.
Para el diseño de la información, en la página de acceso al sistema se colocó un recuadro muy
similar al existente en Acsel-e para el inicio de sesión; éste presenta dos cuadros de texto para colocar el
nombre de usuario y contraseña, y dos listas desplegables para seleccionar el país donde se ubica el
usuario y el idioma que utiliza. En la figura 4, se puede observar esta página, y cómo se presenta la
información.
Figura 4. Página Acceso Sub Sistema Servicios Web – Consulta y Búsqueda de Pólizas en Acsel-e
En la figura 5, se puede observar como se organizó la información para la página principal. En
ésta, se realizó un diseño a 3 cuadros; en la parte superior (parte A de la figura 5) se ubicó el logo de
Acsel-e junto con una imagen obtenida del mismo. Del lado izquierdo (parte B de la figura 5) se colocó el
menú principal, el cual posee cada una de las funcionalidades del sistema. Y en la parte central y derecha
(parte C de la figura 5), se ubicó un texto de bienvenida al sistema, junto con una imagen referente al
27
mismo. Del lado superior derecho de esta sección, se colocó un botón en rojo que permite el cierre de la
sesión.
A
C
B
Figura 5. Página Principal Sub Sistema Servicios Web – Consulta y Búsqueda de Pólizas de Acsel-e.
(A) Cuadro superior. (B) Cuadro Izquierdo. (C) Cuadro central y derecho.
En la figura 6 se puede observar la distribución de la información para las páginas de consulta y
de búsqueda. Para cada una ellas, se realizó igualmente un diseño a tres cuadros; para ésta, la parte
superior (parte A de la figura 6) es igual a la de la página principal. Del lado izquierdo (parte B de la figura
6) se colocaron cada uno de los parámetros por los cuales se puede realizar la búsqueda o consulta; para
cada parámetro se dispuso de un cuadro de texto para que se colocara el valor deseado para hacer la
búsqueda o consulta (en caso de que el parámetro involucre una selección de una lista, se dispuso de
una lista desplegable para la selección del valor deseado); en la parte superior derecha de esta sección
se colocó un botón de una casa, que permite el retorno a la página principal. En la parte central y derecha
(parte C de la figura 6), se ubicaron los resultados que arroja la operación realizada, mostrando sólo 10
28
resultados por página y además, debajo de los resultados se colocaron botones que permiten la
navegación para ver más resultados, en caso de que los haya.
A
C
B
Figura 6. Página Búsqueda Operaciones Pendientes Sub Sistema Servicios Web – Consulta y Búsqueda
de Pólizas de Acsel-e. (A) Cuadro superior. (B) Cuadro Izquierdo. (C) Cuadro central y derecho.
En cuanto a la estética (colores, tipos de letras e imágenes a utilizar), Consis no exigía nada en
particular. Por tanto se decidió utilizar los colores distintivos de la empresa, azul y blanco, junto con el
color gris como aditivo propio. La fuente determinada para todas las páginas fue Arial en diferentes
tamaños. Las imágenes utilizadas para el Sub Sistema, fueron sacadas de la página web de la empresa,
y del sistema Acsel-e. Para presentar los resultados de las búsquedas, se decidió seguir un estilo similar
al que presenta el sistema Acsel-e, con la primera fila en un fondo amarillo mostaza, y el resto con un
fondo azul claro.
Luego del diseño de navegación y de la información, se procedió al diseño de los servicios web
en el cual se identificaron los servicios web necesarios para el Sub Sistema, y para cada uno de ellos se
29
establecieron los parámetros de entrada y de salida, las clases y paquetes a ser usados y algunos
detalles de implementación. (Ver Apéndice C, para más detalles en los requerimientos de
implementación).
Los servicios web identificados para cada caso de uso de consulta y búsqueda son los siguientes:
Búsqueda de Operaciones Pendientes: requería un servicio web que realizara la búsqueda de las
operaciones pendientes con los parámetros suministrados. Además era necesario un servicio web que
devolviera todos los productos configurados en el sistema, para que el usuario pudiera ver y seleccionar
uno de estos productos para la búsqueda, en caso de requerirlo.
Búsqueda de Operaciones Aplicadas: para este caso de uso, solo se identificó el servicio web
que realizara la búsqueda de las operaciones aplicadas a la póliza con el identificador suministrado.
Búsqueda de Pólizas por Tercero y Rol: requería un servicio web que realizara la búsqueda de
las pólizas asociadas al tercero con el identificador suministrado. Además era necesario un servicio web
que devolviera todos los roles de terceros configurados en el sistema, para que el usuario pudiera ver y
seleccionar uno de estos roles de terceros para la búsqueda, en caso de requerirlo.
Búsqueda de Póliza: se identificó el servicio web que realizara la búsqueda de las pólizas con los
parámetros suministrados. Además se necesitaba un servicio web que devolviera los productos
configurados en el sistema; por tanto se podía utilizar el mismo servicio identificado para la búsqueda de
operaciones pendientes. Requería también un servicio web, que dado el nombre del producto, retornara
su identificador dentro del sistema, ya que para realizar la búsqueda, se requería del identificador del
producto. En adición a estos, era necesario un servicio web que permitiera obtener todas las propiedades
de póliza configuradas en el sistema, para que estos sirvieran como parámetros de búsqueda. Igualmente
se requería un servicio web que obtuviera las propiedades de la unidad de riesgo configuradas y un
30
servicio que obtuviera las propiedades del objeto asegurado, para que éstas pudieran ser utilizadas como
parámetros en la búsqueda de la póliza.
Consulta de Movimientos de Póliza: requería únicamente el servicio web que consultara los
movimientos de la póliza que tuviese el identificador suministrado.
Consulta de Movimientos de Reclamo: era necesario solamente un servicio web que consultara
los movimientos del reclamo que tuviese el número de reclamo proporcionado.
Una vez identificados los servicios necesarios, se inició la implementación de los mismos. En esta
fase se implementaron los servicios relacionados a los casos de uso: búsqueda de operaciones
pendientes, búsqueda de operaciones aplicadas y búsqueda de pólizas por tercero y rol, además de
implementarse los casos de uso iniciar sesión y cerrar sesión.
Para finalizar esta fase, además de elaborar el documento de plan creativo y el documento de
requerimientos técnicos, anteriormente mencionados, se refinó el documento de casos de uso (Ver
apéndice B).
6.3. FASE DE CONSTRUCCIÓN
Durante esta fase se culminó la implementación de los servicios web restantes, correspondientes
a la búsqueda de póliza, consulta de movimientos de póliza y consulta de movimientos de reclamo. Para
la implementación de los servicios web, se siguieron las especificaciones previstas en el documento de
requerimientos técnicos, y se utilizaron diversos métodos y funciones ya existentes en el sistema Acsel-e
(Para detalles del código del Servicio de Búsqueda de Póliza, ver el Anexo 1).
Una vez culminada la implementación de los servicios web, se realizaron pruebas funcionales
sobre los mismos. Éstos fueron desarrollados por el pasante, por no disponer en el momento del equipo
31
de pruebas. Las acciones ejecutadas en cada prueba y los resultados esperados fueron previamente
documentados. Para las pruebas realizadas se obtuvieron los resultados esperados. Un ejemplo de las
pruebas realizadas se muestra a continuación en la tabla 1.
Usuario
País
Identificador
de póliza
Número de
póliza
Documentos
Existe
Existe
Existe
Existe
Vacío
Existe
Existe
Existe
Existe
Nulo
Existe
Existe
Existe
Nulo
Vacío
Existe
Existe
Existe
Nulo
Nulo
Existe
Existe
0
Existe
Vacío
Existe
Existe
0
Existe
Nulo
Existe
Existe
Existe
Existe
Existe
Existe
Existe
Existe
Existe
No Existe
Existe
Existe
Existe
Nulo
Existe
Existe
Existe
Existe
Nulo
No Existe
Existe
Existe
0
Existe
Existe
Existe
Existe
0
Existe
No Existe
Resultado
Retorna todos los movimientos
de la póliza
Retorna todos los movimientos
de la póliza
Retorna todos los movimientos
de la póliza
Retorna todos los movimientos
de la póliza
Retorna todos los movimientos
de la póliza
Retorna todos los movimientos
de la póliza
Retorna los movimientos de la
póliza contenidos en los
documentos
Retorna póliza con arreglo de
movimientos vacíos
Retorna los movimientos de la
póliza contenidos en los
documentos
Retorna póliza con arreglo de
movimientos vacíos
Retorna los movimientos de la
póliza contenidos en los
documentos
Retorna póliza con arreglo de
movimientos vacíos
Existe
Existe
0
Nulo
N/A
Retorna un
ApplicationException "Número
de Póliza no corresponde a la
póliza" o "Pólizas no
encontradas con ese criterio"
Existe
No
Existe
N/A
N/A
N/A
Retorna un TechnicalException
No
Existe
N/A
N/A
N/A
N/A
Nulo
N/A
N/A
N/A
N/A
Retorna un
ApplicationException
Devuelve a la página de acceso
al sistema
Tabla 1. Pruebas Funcionales. Caso de uso: Consulta de Movimientos de Póliza
32
CAPÍTULO 7. CONCLUSIONES Y RECOMENDACIONES
En este capítulo, se presentan algunas conclusiones del proyecto realizado y se señalan algunas
recomendaciones para el mismo.
7.1. CONCLUSIONES
Luego de exponer el desarrollo de este trabajo de pasantía, se puede afirmar que el resultado da
respuesta a la problemática planteada de una forma satisfactoria, lo que cumple con todos los objetivos
que inicialmente fueron planteados.
Se llevó a cabo el diseño y la implementación de los servicios web que permiten a sistemas
externos utilizar todos los procesos de búsqueda y consulta de póliza implementados en Acsel-e. Con
esto se logra la interoperabilidad y la integración de la empresa con sus clientes, y así mejorar la
capacidad de la empresa para trabajar conjuntamente con sus socios de negocio, proveedores y clientes,
permitiendo que sistemas externos puedan invocar las funciones de la aplicación a través de Internet (o
una intranet corporativa) sin tener que modificar la aplicación misma.
El diseño y la implementación escogida para los servicios web, y la plataforma robusta en que fue
desarrollado el sistema, le aseguran la mantenibilidad al mismo.
La reusabilidad, flexibilidad y portabilidad están garantizadas ya que son características propias
de los servicios web, y que benefician a Consis y a sus clientes reduciendo el costo en desarrollo y
mantenimiento de software, y sacando los productos al mercado con mayor rapidez.
33
7.2. RECOMENDACIONES
Una de las recomendaciones para garantizar un mejor desempeño y eficiencia en el sistema, es
la de revisar y mejorar las consultas de búsqueda de pólizas y operaciones, ya que los tiempos de
respuesta son más lentos de lo que se espera y se requiere, y ante una gran cantidad de datos estos
tiempos serían tan altos que impedirían la ejecución completa de los servicios web.
Otra recomendación es que se le realice las pruebas pertinentes a los servicios web con un
equipo de pruebas independiente del equipo de desarrollo, ya que esto permitiría una mayor objetividad
en las pruebas realizadas.
Por otra parte, sería importante adoptar medidas o estándares de seguridad en los servicios web,
de manera de asegurar el correcto y buen funcionamiento de los mismos, además de garantizar que los
usuarios que ejecuten los servicios web, tengan la permisología para esto.
Por último, se recomienda el desarrollo de servicios web de otros módulos de Acsel-e, de manera
de publicar las funcionalidades de éste y brindar así una mayor interoperabilidad e integración de Acsel-e
con otros sistemas.
34
REFERENCIAS BIBLIOGRÁFICAS
[1] Consis Internacional, LLC. Empresa. Obtenida el 5 de enero de 2008, de
http://www.consisint.com/Content_pageSP.htm
[2] Fernández, N. (2006). Práctica Introductoria de Web Services. Obtenida el 10 de enero de 2008,
Universidad Carlos III de Madrid, Departamento de Ingeniería Telemática:
http://www.it.uc3m.es/berto/SI/WS/
[3] Guía breve de Servicios Web. Obtenida el 11 de enero de 2008, de
http://www.w3c.es/Divulgacion/Guiasbreves/ServiciosWeb
[4] Ibarra, A. Rational Unified Process. Obtenida el 13 de enero de 2008, de
http://pnet-biblio.www1.paginar.org/Metodologias/rational/rup.ppt
[5] Introduction to web services. (2004). Obtenida el 12 de enero de 2008, de
http://dev2dev.bea.com/pub/a/2004/02/introwebsvcs.html
[6] Larman, C. (1999). UML Y PATRONES. Introducción al Análisis y Diseño Orientado a Objetos,
Primera Edición.
[7] Lenguaje Unificado de Modelado. Manual de Referencia. Rational Software Corporation.
[8] Servicios Web en plataforma .NET. SOAP (Simple Object Access Protocol). Obtenida el 12 de enero
de 2008, de http://www.desarrolloweb.com/articulos/1557.php
[9] Servicios Web en plataforma .NET. UDDI (Universal Description Discovery and Integration). Obtenida
el 12 de enero de 2008, de http://www.desarrolloweb.com/articulos/1589.php
35
[10] Servicios Web en plataforma .NET. Una visión general I. Obtenida el 12 de enero de 2008, de
http://www.desarrolloweb.com/articulos/1537.php
[11] Servicios Web en plataforma .NET. XML: el lenguaje de los Servicios Web. Obtenida el 12 de enero
de 2008, de http://www.desarrolloweb.com/articulos/1574.php
[12] Servicios Web en plataforma .NET. XML Web Services. Obtenida el 12 de enero de 2008, de
http://www.desarrolloweb.com/articulos/1545.php
[13] Servicios Web XML (2006). Obtenida el 14 de enero de 2008, de
http://www.cortesmedia.com/spanishblog/?p=63
[14] The Apache Software Foundation. Axis User’s Guide. Obtenida el 10 de enero de 2008, Página
Oficial de Apache: http://ws.apache.org/axis/java/user-guide.html
[15] WebSphere Application Server. Obtenida el 12 de enero de 2008, Página oficial de IBM España:
http://www-306.ibm.com/software/info/ecatalog/es_ES/products/U105789N42720B65.html
[16] Wikipedia, la enciclopedia libre. IntelliJ IDEA. Obtenida el 12 de enero de 2008, de
http://en.wikipedia.org/wiki/IntelliJ_IDEA
[17] Wikipedia, la enciclopedia libre. Oracle. Obtenida el 12 de enero de 2008, de
http://es.wikipedia.org/wiki/Oracle
[18] Wikipedia, la enciclopedia libre. Servicio Web. Obtenida el 11 de enero de 2008, de
http://es.wikipedia.org/wiki/Servicio_Web
36
[19] Wikipedia, la enciclopedia libre. Subversion. Obtenida el 12 de enero de 2008, de
http://es.wikipedia.org/wiki/Subversion
[20] Witt, B. I., Baker, F. T. y Merritt, E. W. (1994). Software Architecture and Design—Principles, Models,
and Methods. Van Nostrand Reinhold, New York.
37
ANEXO 1. CÓDIGO DEL SERVICIO BÚSQUEDA DE PÓLIZA
public WSPolicyList getPolicies(String login, String countryIsoCode, String language,
WSSearchPolicyObject dcoSearch) {
WSPolicyList policyList;
Properties prop = null;
try {
this.checkBasicParameters(countryIsoCode);
this.initializeUserInfo(login, countryIsoCode);
QueryObject queryObject = new QueryObject();
Categorias categories = Categorias.getBean(Categorias.DEFAULT_TEMPLATES_STATE);
// Construyo el queryParameter para la poliza
QueryParameter queryParameterPolicy = new QueryParameter();
queryParameterPolicy.setCategory(CotType.POLICY.getDescription());
ConfigurableObjectType prePolicy = (ConfigurableObjectType) categories
.getCollection(CotType.POLICY).firstElement();
String[] policyDCOkeys = dcoSearch.getDCOPolicyKeys();
String[] policyDCOvalues = dcoSearch.getDCOPolicyValues();
int totalPropertiesPolicy = policyDCOkeys.length;
for (int i = 0; i < totalPropertiesPolicy; i++) {
if (!StringUtil.isEmptyOrNullValue(policyDCOvalues[i])){
queryParameterPolicy.setParameter(policyDCOkeys[i], policyDCOvalues[i]);
}
}
if(!StringUtil.isEmptyOrNullValue(dcoSearch.getProductId())){
queryParameterPolicy.setParameter("_productId", dcoSearch.getProductId());
}
if(!StringUtil.isEmptyOrNullValue(dcoSearch.getClientName())){
queryParameterPolicy.setParameter("_clientName", dcoSearch.getClientName());
}
if(!StringUtil.isEmptyOrNullValue(dcoSearch.getInsuredName())){
queryParameterPolicy.setParameter("_insuredName", dcoSearch.getInsuredName());
}
// Reviso que tengo parametros y de ser asi lo agrego al queryObject
if (queryParameterPolicy.size()>0){
queryParameterPolicy.setParameter("template", prePolicy.getDesc());
queryObject.add(queryParameterPolicy);
}
// Construyo el queryParameter para la unidad de riesgo
QueryParameter queryParameterRiskUnit = new QueryParameter();
queryParameterRiskUnit.setCategory(CotType.RISK_UNIT.getDescription());
ConfigurableObjectType preRiskUnit = (ConfigurableObjectType) categories
.getCollection(CotType.RISK_UNIT).firstElement();
38
String[] riskUnitDCOkeys = dcoSearch.getDCORiskUnitKeys();
String[] riskUnitDCOvalues = dcoSearch.getDCORiskUnitValues();
int totalPropertiesRiskUnit = riskUnitDCOkeys.length;
for (int j = 0; j < totalPropertiesRiskUnit; j++) {
if(!StringUtil.isEmptyOrNullValue(riskUnitDCOvalues[j])){
queryParameterRiskUnit.setParameter(riskUnitDCOkeys[j], riskUnitDCOvalues[j]);
}
}
// Reviso que tengo parametros y de ser asi lo agrego al queryObject
if (queryParameterRiskUnit.size()>0){
queryParameterRiskUnit.setParameter("template", preRiskUnit.getDesc());
queryObject.add(queryParameterRiskUnit);
}
// Construyo el queryParameter para el objeto asegurado
QueryParameter queryParameterInsuranceObject = new QueryParameter();
queryParameterInsuranceObject.setCategory(CotType.INSURANCE_OBJECT.getDescription());
ConfigurableObjectType preInsuranceObject = (ConfigurableObjectType) categories
.getCollection(CotType.INSURANCE_OBJECT).firstElement();
String[] insuranceObjectDCOkeys = dcoSearch.getDCOInsuranceObjectKeys();
String[] insuranceObjectDCOvalues = dcoSearch.getDCOInsuranceObjectValues();
int totalPropertiesInsuranceObject = insuranceObjectDCOkeys.length;
for (int k = 0; k < totalPropertiesInsuranceObject; k++) {
if(!StringUtil.isEmptyOrNullValue(insuranceObjectDCOvalues[k])){
queryParameterInsuranceObject.setParameter(insuranceObjectDCOkeys[k],
insuranceObjectDCOvalues[k]);
}
}
// Reviso que tengo parametros y de ser asi lo agrego al queryObject
if (queryParameterInsuranceObject.size()>0){
queryParameterInsuranceObject.setParameter("template", preInsuranceObject.getDesc());
queryObject.add(queryParameterInsuranceObject);
}
// Construyo query para ver cantidad de resultados
SearchRequestHandler handlerCount = new SearchRequestHandler();
StringBuffer queryCount = handlerCount.createNormalQuery(queryObject, null, true, 0, 0, false,
false, false);
System.out.println("queryCount = " + queryCount);
prop = JDBCUtil.doQueryOneRow(queryCount.toString());
String totalRowsCount = prop.getProperty("count(1)");
// Si el resultado tiene mas de 500 filas, mando una excepcion, sino ejecuto query.
if(Integer.valueOf(totalRowsCount).intValue() > 500) {
throw new ApplicationException("Muchos resultados", Severity.ERROR);
}
39
// Construyo query para obtener resultado de la busqueda
SearchRequestHandler handler = new SearchRequestHandler();
StringBuffer query = handler.createNormalQuery(queryObject, null, false, 0, 0, false,
false, false);
System.out.println("query = " + query);
// Agrego el parametro para ordenar al query en caso que se pida
if(!StringUtil.isEmptyOrNullValue(dcoSearch.getOrderBy())){
query.append(" ORDER BY ");
query.append(dcoSearch.getOrderBy());
}
// Obtengo y construyo el resultado
SearchResult searchResult = handler.search(query, UserInfo.getLocale());
int totalRows = searchResult.getRowCount();
policyList = new WSPolicyList(totalRows);
for (int i = 0; i < totalRows; i++) {
Object[] row = searchResult.getArrayRow(i);
WSPolicy policy = new WSPolicy();
policy.setPolicyId(((Long) row[SearchResult.policyIdIndex]).longValue());
policy.setPolicyNumber((String) row[SearchResult.policyNumberIndex]);
policy.setProductName((String) row[SearchResult.productNameIndex]);
policy.setInitialDate((String) row[SearchResult.initialDateIndex]);
policy.setFinishDate((String) row[SearchResult.finishDateIndex]);
policy.setState((String) row[SearchResult.policyStateIndex]);
policyList.setPolicy(i, policy);
}
}catch(AcseleException e){
log.error("Error in getPolicies WebServices.", e);
throw e;
}catch (Exception e) {
log.error("Error in getPolicies WebServices.", e);
throw new TechnicalException(Exceptions.PPErrorLoadingPolicies,
Severity.ERROR, e);
}
return policyList;
}
40
APÉNDICE A. FOLLETO DE ACSEL-E
41
42
43
44
APÉNDICE B. CASOS DE USO
El documento de casos de uso proporciona una vista funcional del sistema basado en los
diagramas y definiciones de los casos de uso. Aquí se presenta una versión resumida del documento en
la cual se presentan sólo el diagrama global (figura 6) y las definiciones de los casos de uso.
Servicios Web – Consulta y Búsqueda
de Pólizas de Acsel-e
<<extend>>
Búsqueda Básica
Buscar Operaciones
Pendientes
<<extend>>
Búsqueda Avanzada
Buscar Póliza
Buscar Operaciones
Aplicadas
Consultar
Movimientos de Póliza
Usuario Registrado
Consultar
Movimientos de Reclamo
Buscar Pólizas por
Tercero y Rol
Iniciar Sesión
Cerrar Sesión
Figura 7. Casos de Uso Sub Sistema Servicios Web – Consulta y Búsqueda de Pólizas de Acsel-e
45
B.1. BUSCAR OPERACIONES APLICADAS
CASO DE USO
Buscar Operaciones Aplicadas
ACTOR
Usuario Registrado
DESCRIPCIÓN
Permite buscar todas las operaciones aplicadas a una póliza.
PRECONDICIÓN
El usuario debe estar autenticado en el sistema.
Actor
Sistema
1. Selecciona la opción de Consulta
2. Muestra página con los campos de
de Pólizas – Operaciones
búsqueda de operaciones
Aplicadas.
aplicadas (identificador de póliza).
CURSO NORMAL
3. Completa los campos para
4. Busca las operaciones aplicadas
realizar la búsqueda y presiona el
con los datos suministrados y
botón de buscar.
muestra en pantalla los resultados
de la búsqueda.
1. Oprime botón para ir a la página
2. Muestra la página principal.
CURSOS ALTERNOS
principal.
Se muestran las operaciones aplicadas a la póliza con el identificador
POSTCONDICIÓN
suministrado por el usuario.
46
B.2. CONSULTAR MOVIMIENTOS DE PÓLIZA
CASO DE USO
Consultar Movimientos de Póliza
ACTOR
Usuario Registrado
DESCRIPCIÓN
Permite consultar todos los movimientos realizados en una póliza.
PRECONDICIÓN
El usuario debe estar autenticado en el sistema.
CURSO NORMAL
Actor
Sistema
1. Selecciona la opción de Consulta
2. Muestra página con los campos de
de Movimientos – Movimientos de
búsqueda de movimientos de
Póliza.
póliza (identificador de póliza,
3. Completa los campos para
realizar la búsqueda y presiona el
botón de buscar.
número de póliza, documentos).
4. Busca los movimientos realizados
con los datos suministrados y
muestra en pantalla los resultados
de la búsqueda.
1. Oprime botón para ir a la página
2. Muestra la página principal.
CURSOS ALTERNOS
principal.
Se muestran las movimientos realizados a la póliza con el identificador
POSTCONDICIÓN
suministrado por el usuario.
47
B.3. CONSULTAR MOVIMIENTOS DE RECLAMO
CASO DE USO
Consultar Movimientos de Reclamo
ACTOR
Usuario Registrado
DESCRIPCIÓN
Permite consultar todos los movimientos realizados en un reclamo.
PRECONDICIÓN
El usuario debe estar autenticado en el sistema.
CURSO NORMAL
Actor
Sistema
1. Selecciona la opción de Consulta
2. Muestra página con los campos de
de Movimientos – Movimientos de
búsqueda de movimientos de
Reclamo.
reclamo (número de reclamo,
3. Completa los campos para
realizar la búsqueda y presiona el
botón de buscar.
documentos).
4. Busca los movimientos realizados
con los datos suministrados y
muestra en pantalla los resultados
de la búsqueda.
1. Oprime botón para ir a la página
2. Muestra la página principal.
CURSOS ALTERNOS
principal.
Se muestran los movimientos realizados en el reclamo con el identificador
POSTCONDICIÓN
suministrado por el usuario.
48
B.4. INICIAR SESIÓN
CASO DE USO
Iniciar Sesión
ACTOR
Usuario
Permite almacenar durante la sesión en el sistema al usuario junto al país e
DESCRIPCIÓN
idioma. En caso de que el usuario no esté registrado, el sistema lanzará una
excepción si este intenta realizar alguna acción.
PRECONDICIÓN
No aplica.
Actor
Sistema
2. Ingresa su login, password,
CURSO NORMAL
idioma y país.
1. Solicita el ingreso de la información
de login, password, idioma y país.
3. Procesa la información y la guarda
en sesión.
1. No se introduce el login o el
CURSOS ALTERNOS
password.
2. Indica el error.
3. Pide nuevamente el login,
password, idioma y país.
POSTCONDICIÓN
El usuario inicia sesión.
49
B.5. CERRAR SESIÓN
CASO DE USO
Cerrar Sesión
ACTOR
Usuario Registrado
DESCRIPCIÓN
Eliminar la información del usuario en la sesión actual.
PRECONDICIÓN
El usuario había previamente iniciado una sesión válida.
Actor
CURSO NORMAL
Sistema
1. Oprime el botón de cerrar sesión.
2. Elimina la información del usuario
en la sesión.
CURSOS ALTERNOS
No hay otros cursos posibles en este caso.
El usuario cierra sesión y no podrá acceder al sistema hasta no iniciar sesión
POSTCONDICIÓN
nuevamente en el sistema.
50
B.6. CONSULTAR OPERACIONES PENDIENTES
CASO DE USO
Consultar Operaciones Pendientes
ACTOR
Usuario Registrado
DESCRIPCIÓN
Permite realizar la búsqueda de operaciones pendientes.
PRECONDICIÓN
El usuario debe estar autenticado en el sistema.
Actor
Sistema
1. Selecciona la opción de Consulta
2. Muestra página donde puede elegir
de Pólizas – Operaciones
entre realizar la búsqueda básica o
Pendientes.
la avanzada.
CURSO NORMAL
3. Escoge el tipo de búsqueda que
4. Muestra la pagina con los campos
desee para las operaciones
de búsqueda de operaciones
pendientes.
pendientes según el tipo
seleccionado.
1. Oprime botón para ir a la página
2. Muestra la página principal.
CURSOS ALTERNOS
principal.
Se muestran los campos de búsqueda para las operaciones pendientes según
POSTCONDICIÓN
el tipo de búsqueda seleccionado.
51
B.7. CONSULTA BÁSICA DE OPERACIONES PENDIENTES
CASO DE USO
Consulta Básica de Operaciones Pendientes
ACTOR
Usuario Registrado
DESCRIPCIÓN
Permite realizar la búsqueda básica de operaciones pendientes.
PRECONDICIÓN
El usuario debe estar autenticado en el sistema.
Actor
Sistema
1. Indica que desea realizar la
consulta básica.
búsqueda básica de operaciones
3. Completa los campos para
CURSO NORMAL
2. Muestra página con los campos de
realizar la búsqueda y presiona el
pendientes (fecha de inicio, fecha
final y producto).
4. Busca las operaciones pendientes
botón de buscar.
con los datos suministrados y
muestra en pantalla los resultados
de la búsqueda.
1. Oprime botón para ir a la página
2. Muestra la página principal.
CURSOS ALTERNOS
principal.
Se muestran las operaciones pendientes con los datos suministrados por el
POSTCONDICIÓN
usuario.
52
B.8. CONSULTA AVANZADA DE OPERACIONES PENDIENTES
CASO DE USO
Consulta Avanzada de Operaciones Pendientes
ACTOR
Usuario Registrado
DESCRIPCIÓN
Permite realizar la búsqueda avanzada de operaciones pendientes.
PRECONDICIÓN
El usuario debe estar autenticado en el sistema.
Actor
Sistema
1. Indica que desea realizar la
consulta avanzada.
búsqueda avanzada de
3. Completa los campos para
CURSO NORMAL
2. Muestra página con los campos de
operaciones pendientes (fecha de
realizar la búsqueda y presiona el
inicio, fecha final, producto,
botón de buscar.
identificador de póliza y número de
póliza).
4. Busca las operaciones pendientes
con los datos suministrados y
muestra en pantalla los resultados
de la búsqueda.
1. Oprime botón para ir a la página
2. Muestra la página principal.
CURSOS ALTERNOS
principal.
Se muestran las operaciones pendientes con los datos suministrados por el
POSTCONDICIÓN
usuario.
53
B.9. BUSCAR PÓLIZAS POR TERCERO Y ROL
CASO DE USO
Buscar Pólizas por Tercero y Rol.
ACTOR
Usuario Registrado
Permite realizar la búsqueda de las pólizas asociadas a un tercero y con un rol
DESCRIPCIÓN
específico.
PRECONDICIÓN
El usuario debe estar autenticado en el sistema.
Actor
Sistema
1. Selecciona la opción de Consulta
2. Muestra página con los campos de
de Pólizas – Pólizas de Tercero.
CURSO NORMAL
3. Completa los campos para
realizar la búsqueda y presiona el
botón de buscar.
búsqueda de terceros y con un rol
(identificador del tercero, rol).
4. Busca las pólizas con los datos
suministrados y muestra en
pantalla los resultados de la
búsqueda.
1. Oprime botón para ir a la página
2. Muestra la página principal.
CURSOS ALTERNOS
principal.
Se muestran las pólizas encontradas con los datos suministrados por el
POSTCONDICIÓN
usuario.
54
B.10. BUSCAR PÓLIZAS
CASO DE USO
Buscar Pólizas
ACTOR
Usuario Registrado
DESCRIPCIÓN
Permite realizar la búsqueda general de pólizas en el sistema.
PRECONDICIÓN
El usuario debe estar autenticado en el sistema.
Actor
Sistema
1. Selecciona la opción de Consulta
2. Muestra página con los campos de
de Pólizas – Buscar Póliza.
3. Completa los campos para
CURSO NORMAL
búsqueda de póliza (datos
generales de póliza, plantilla de
realizar la búsqueda y presiona el
póliza, plantilla de unidad de riesgo
botón de buscar.
y plantilla de objeto asegurado).
4. Busca las pólizas con los datos
suministrados y muestra en
pantalla los resultados de la
búsqueda.
1. Oprime botón para ir a la página
2. Muestra la página principal.
CURSOS ALTERNOS
principal.
Se muestran las pólizas encontradas con los datos suministrados por el
POSTCONDICIÓN
usuario.
55
APÉNDICE C. REQUERIMIENTOS TÉCNICOS
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
APÉNDICE D. PLAN CREATIVO
81
82
83
84
85
86
87
88
89
90
91
92
APÉNDICE E. GLOSARIO
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
Descargar