Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
RUPE - ARQUITECTURA
Creación 09/11/12 Autor GC
Revisión DG-GC - 07-09-2012 Aprobación GC - 07-09-2012
Versión 1.5 Página 1 de 12
1 Índice
1 Índice ...................................................................................................................................... 1
2 Introducción ............................................................................................................................ 2
2.1 Propósito ....................................................................................................................... 2
2.2 Alcance .......................................................................................................................... 2
3 Modelo Arquitectónico Inicial ................................................................................................. 3
3.1 Diagrama de alto nivel de la arquitectura ...................................................................... 3
3.2 Vista de Casos de Uso .................................................................................................. 5
3.2.1 Casos de Uso Significativos para la Arquitectura ..................................................... 5
3.2.2 Diagrama – Ingreso al sistema .................................................................................. 5
3.2.3 Diagrama – Registro de proveedores ....................................................................... 7
3.3 Vista Lógica ................................................................................................................. 10
3.3.1 Patrones de Diseños utilizados ............................................................................... 10
3.3.2 Capa de Negocios ................................................................................................... 10
3.3.3 Capa de Presentación ............................................................................................. 11
4 Historial de Cambios ............................................................................................................ 12
RUPE - ARQUITECTURA
Creación 09/11/12 Autor GC
Revisión DG-GC - 07-09-2012 Aprobación GC - 07-09-2012
Versión 1.5 Página 2 de 12
2 Introducción
2.1 Propósito
Este documento provee una visión de la arquitectura del sistema, mediante el uso de distintas
vistas arquitectónicas para expresar distintos aspectos del sistema, con el objetivo de capturar
y expresar las decisiones arquitectónicas significativas realizadas sobre el sistema.
Este documento está organizado como sigue:
La primera sección describe el modelo arquitectónico inicial en que se incluye el
diagrama arquitectónico a alto nivel y el diagrama arquitectónico de capas con los
componentes lógicos y físicos correspondientes.
La siguiente sección describe la vista de casos de uso seleccionados para la línea base
de la arquitectura y la vista lógica o de subsistemas.
Finalmente se describe la vista lógica del sistema y los patrones de diseño utilizados.
2.2 Alcance
Este documento provee una visión general de la arquitectura del proyecto Registro Único de
Proveedores del Estado (RUPE).
RUPE - ARQUITECTURA
Creación 09/11/12 Autor GC
Revisión DG-GC - 07-09-2012 Aprobación GC - 07-09-2012
Versión 1.5 Página 3 de 12
3 Modelo Arquitectónico Inicial
3.1 Diagrama de alto nivel de la arquitectura
La siguiente figura describe la arquitectura general del sistema en capas.
RUPE - ARQUITECTURA
Creación 09/11/12 Autor GC
Revisión DG-GC - 07-09-2012 Aprobación GC - 07-09-2012
Versión 1.5 Página 4 de 12
A continuación se presenta cada una de las capas:
a) Presentación. Esta capa contiene los componentes de presentación y de interacción
con el usuario. Los componentes que se utilizarán en esta capa son Portlets,
Fragmentos de páginas, Templates y Managed Beans.
b) Delegate. Esta capa contiene los accesos a los servicios de Liferay y los componentes
empresariales que se incluirán en la solución, para los portlets desarrollados.
c) Capa de Negocio. Esta capa contiene la implementación de la lógica del negocio e
incluye la interacción con la capa de datos y los componentes externos, mediante el
consumo y exposición de servicios Web. Los componentes en esta capa son: Session
Beans, Entity class y POJOs. La seguridad de acceso en esta capa está implementada
mediante la interfaz Java Authentication and Authorization Service (JAAS).
d) Capa DAO: Permite la independencia entre la capa de negocios y la capa de datos.
e) Liferay portal: En esta capa se encuentran los servicios que provee el portal Liferay.
f) Capa de Datos: Esta capa contiene los componentes de persistencia de datos. En el
caso de este proyecto, será la base de datos PostgreSQL y el servicio de directorio
LDAP.
g) Capa de Excepciones: Capa transversal para el manejo de excepciones, utilizada por
todas las capas.
h) Capa de Entidades: Capa transversal para el manejo de las entidades del sistema,
utilizada por todas las capas.
i) Capa de Seguridad. Capa que provee las funcionalidades de control de acceso y
registro de auditoría.
RUPE - ARQUITECTURA
Creación 09/11/12 Autor GC
Revisión DG-GC - 07-09-2012 Aprobación GC - 07-09-2012
Versión 1.5 Página 5 de 12
3.2 Vista de Casos de Uso
3.2.1 Casos de Uso Significativos para la Arquitectura
Los casos de uso clave del sistema, seleccionados para la definición de la arquitectura, son los
siguientes:
Ingreso al sistema
Registro de proveedores
3.2.2 Diagrama – Ingreso al sistema
Descripción del caso de uso: Para usar determinadas funcionalidades del sistema, el usuario
que desea ejecutarla debe estar autenticado. Para autenticarse, deberá proveer sus
credenciales (código de usuario y contraseña). El sistema autenticará a dicho usuario contra el
repositorio de usuarios.
Los elementos principales del caso de uso son:
1. El cliente inicia el proceso desde su web browser utilizando una conexión segura.
2. JSP: Provistas por el portal Liferay para la presentación de la pantalla de inicio de
sesión. Éste elemento será el encargado de desplegar el formulario para que el usuario
ingrese las credenciales para ingresar al sistema.
3. Servicios Liferay: Provista por el portal, contiene la lógica del portal, en este caso la
lógica relacionada con los usuarios y roles. El portal valida las credenciales contra la
base de datos y el servicio de directorios, posteriormente obtiene el perfil del usuario,
los datos personales, privilegios, etc. Finalmente registra el ingreso del usuario al
sistema.
RUPE - ARQUITECTURA
Creación 09/11/12 Autor GC
Revisión DG-GC - 07-09-2012 Aprobación GC - 07-09-2012
Versión 1.5 Página 6 de 12
4. El portal Liferay se configura para el acceso a bases de datos, en este caso sobre un
directorio LDAP y una base de datos PosgreSQL de donde se obtiene información de
los usuarios.
Las principales comunicaciones entre los elementos son:
1. Cliente-Capa Web: Envío de credenciales para el ingreso al sistema mediante un
canal seguro.
2. Capa Web-Servicios Liferay: La capa web recupera los datos enviados por el usuario
y comunicándose con los servicios de Liferay. chequea su validez. Posteriormente
almacena los datos del usuario en la sesión.
3. Servicios Liferay – Capa de datos: Los servicios Liferay se comunican con la capa de
datos para obtener los datos previamente almacenados y compararlos con los que el
usuario ingresó.
RUPE - ARQUITECTURA
Creación 09/11/12 Autor GC
Revisión DG-GC - 07-09-2012 Aprobación GC - 07-09-2012
Versión 1.5 Página 7 de 12
3.2.3 Diagrama – Registro de proveedores
RUPE - ARQUITECTURA
Creación 09/11/12 Autor GC
Revisión DG-GC - 07-09-2012 Aprobación GC - 07-09-2012
Versión 1.5 Página 8 de 12
Los componentes principales del Diagrama son:
1. Cliente: El cliente inicia el proceso desde un web browser con una conexión segura.
Debe estar previamente autenticado en el sistema (ver caso de uso Ingreso al
sistema).
2. JSP: Para la creación de las páginas de la aplicación se utiliza Java Server Faces y los
Frameworks Icefaces y Facelets.
3. BackingBeans: Para la implementación del patrón de diseño MVC.
4. Business Delegate: Los backing beans invocarán a la lógica de negocio por medio de
Clases java que implementan el patrón de diseño Business Delegate y Service Locator.
En éste caso se accede tanto a los servicios Liferay, para la lógica de usuarios y roles,
como los EJB del negocio.
5. Servicios Liferay: Contienen la lógica que provee el portal.
6. EJB: Implementan la lógica del negocio, utilizando los datos que provee el DAO y los
componentes externos. El módulo comunicación se utiliza para encapsular la lógica de
la comunicación con sistemas externos.
7. DAO y Entity: el acceso a la base de datos se realiza haciendo uso del patrón de
diseño DAO. Para implementar dicho patrón de diseño se utiliza Java Persistence API
y el Framework Hibernate. Las clases entity también se utilizan como transfer object
(TO) entre las distintas capas.
Las principales comunicaciones entre los componentes del diagrama son:
1. Cliente – CapaWeb: En ésta comunicación se envían, las peticiones del usuario sobre
las páginas del portal y la información correspondiente al proveedor.
2. Capa Web – Cliente: El sistema envía las páginas correspondientes a las peticiones
del usuario, entre ellas los formularios para el ingreso de datos del proveedor.
3. Capa Web – Capa Delegate: La capa web se comunica con el modulo de usuarios (en
la capa delegate), para obtener datos y permisos correspondientes al usuario
logueado. También se comunica con el módulo Registro de proveedor, para enviar y
recibir información sobre proveedores.
4. Módulo Usuario Delegate – Servicio Liferay: El modulo, delega la obtención de la
información correspondiente al usuario a los servicios de liferay. En ésta comunicación
se envían y reciben entidades asociadas a los usuarios, roles, operaciones etc..
5. Módulo RegistroProveedorDelegate – RegistroProveedorSessionBean: La capa
delegate delega las funcionalidades asociadas al registro de proveedores, al
componente RegistroProveedorSessionBean. En ésta comunicación se envían y
reciben entidades asociadas a los proveedores.
RUPE - ARQUITECTURA
Creación 09/11/12 Autor GC
Revisión DG-GC - 07-09-2012 Aprobación GC - 07-09-2012
Versión 1.5 Página 9 de 12
6. RegistroProveedoresSessionBean – ProveedorDeDatos: Esta comunicación se
utiliza para recuperar entidades persistidas en la base de datos. Todas las entidades
persistidas que el RegistroProveedorSessionBean necesite persistir o recuperar serán
comunicadas por éste medio.
7. Módulo Comunicación – Componentes externos: Ésta comunicación existe para
recibir datos almacenados o generados por sistemas externos. La misma se realiza
mediante Web Services seguros.
RUPE - ARQUITECTURA
Creación 09/11/12 Autor GC
Revisión DG-GC - 07-09-2012 Aprobación GC - 07-09-2012
Versión 1.5 Página 10 de 12
3.3 Vista Lógica
En esta sección se describen cada uno de los proyectos que componen la aplicación, en forma
separada para las capas de negocio y presentación.
3.3.1 Patrones de Diseños utilizados
Nombre Patrón Diseño Capa
Business Delegate Presentación
Service Locator Presentación
Facade Negocio
DAO Negocio
Transfer Object Presentación y Negocio
MVC Model-View-Controller
3.3.2 Capa de Negocios
3.3.2.1 Excepciones
El manejo de excepciones entre capas se realizará mediante la clase RupeException incluida
en el paquete uy.gub.acce.rupe.excepciones. Estas excepciones son lanzadas por la lógica del
negocio y son controladas en las diferentes capas. La excepción proveerá un código interno
que permitirá identificar el motivo de la excepción.
3.3.2.2 Entidades
Para la interacción con la base de datos se utilizará JPA (Java Persistence API). Las entidades
JPA están contenidas en el paquete RUPE-ENTITIES, junto con otras clases utilizadas para el
intercambio de datos entre la capa de negocios y la capa de presentación. Las clases con
operaciones de validación de datos sobre cada entidad estarán incluidas en este paquete.
3.3.2.3 Acceso a Base
Todos los accesos a base de datos, se realizan a través de un DAO (Data Access Object), que
encapsula todas las altas, baja y modificaciones de entidades. Este DAO es genérico pudiendo
utilizarse para todo tipo de entidades JPA. En este proyecto se utilizará la implementación
RUPE - ARQUITECTURA
Creación 09/11/12 Autor GC
Revisión DG-GC - 07-09-2012 Aprobación GC - 07-09-2012
Versión 1.5 Página 11 de 12
específica para HibernateJPA, dicha implementación está en la clase
HibernateJPADAOImp.java. El DAO se encuentra en el proyecto SS-GENERIC-DAO-
BUSINESS.
A continuación se enumeran las operaciones más importantes que provee:
create : permite dar de alta una nueva entidad
update: permite actualizar los datos de una entidad ya existente
delete: permite eliminar una entidad de base
findById: permite obtener la entidad en base a partir de su identificador
findByCriteria: permite hacer consulta de entidades por criterios simples
Para las operaciones, que no son soportadas por el DAO genérico mencionado, se implementa
un DAO específico definido en el proyecto RUPE-DAO.
3.3.2.4 RUPE-BUSINESS
En este módulo se implementa toda la lógica de negocios específica de este proyecto. Para el
acceso a base de datos se utilizan los DAOs descriptos en la sección 3.3.2.3.
3.3.2.5 Reglas de Negocio
Todas las reglas de negocio, incluidas las validaciones sobre los datos de entrada, se ejecutan
en la capa de negocio, independientemente de que las mismas se apliquen también en otras
capas.
Las reglas de negocio se encapsularán en POJO o EJB, según corresponda.
3.3.2.6 Consideraciones Generales
Todos los Session Beans son de tipo Statless e implementan una interfaz remota. Las
interfaces se encuentran definidas en el proyecto RUPE-REMOTES. Por más información se
puede consultar el Javadoc de cada unas de las operaciones de las interfaces.
3.3.3 Capa de Presentación
3.3.3.1 RUPE-PORTLETS
Este módulo contiene los portlets con los que los usuarios interactúan. En él se encuentran
todas las páginas y los backing beans que contienen la lógica de presentación.
3.3.3.2 RUPE-DELEGATE
La comunicación con la capa de negocios se realiza utilizando el patrón de diseño Business-
Delegate. Este patrón se implementa en el proyecto RUPE-DELEGATE.
RUPE - ARQUITECTURA
Creación 09/11/12 Autor GC
Revisión DG-GC - 07-09-2012 Aprobación GC - 07-09-2012
Versión 1.5 Página 12 de 12
3.3.3.3 RUPE-THEME
Este módulo contiene los estilos visuales para el portal.
4 Historial de Cambios
Versión Fecha Autor Detalle del cambio realizado
1.0 17-08-12 Diego González Versión original
1.1 27-08-12 Diego González Actualización del documento
1.2 06-09-12 Diego González, Martín
Solari
Revisión de calidad del documento y
corrección de observaciones.
1.3 06-09-12 Diego González Detalle de comunicaciones y
componentes
1.4 07-09-12 Diego González,
Gustavo Cirigliano
Revisión y corrección general
1.5 10-09-12 Gustavo Cirigliano Reglas de negocio
Nombre del paquete de
excepciones