RUPE - ARQUITECTURA - Agencia de Compras y Contrataciones ...€¦ · RUPE - ARQUITECTURA Creación...

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 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

Transcript of RUPE - ARQUITECTURA - Agencia de Compras y Contrataciones ...€¦ · RUPE - ARQUITECTURA Creación...

Page 1: RUPE - ARQUITECTURA - Agencia de Compras y Contrataciones ...€¦ · RUPE - ARQUITECTURA Creación 09/11/12 Autor GC Revisión DG-GC - 07 -09 -2012 Aprobación GC - 07 -09 -2012

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

Page 2: RUPE - ARQUITECTURA - Agencia de Compras y Contrataciones ...€¦ · RUPE - ARQUITECTURA Creación 09/11/12 Autor GC Revisión DG-GC - 07 -09 -2012 Aprobación GC - 07 -09 -2012

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).

Page 3: RUPE - ARQUITECTURA - Agencia de Compras y Contrataciones ...€¦ · RUPE - ARQUITECTURA Creación 09/11/12 Autor GC Revisión DG-GC - 07 -09 -2012 Aprobación GC - 07 -09 -2012

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.

Page 4: RUPE - ARQUITECTURA - Agencia de Compras y Contrataciones ...€¦ · RUPE - ARQUITECTURA Creación 09/11/12 Autor GC Revisión DG-GC - 07 -09 -2012 Aprobación GC - 07 -09 -2012

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.

Page 5: RUPE - ARQUITECTURA - Agencia de Compras y Contrataciones ...€¦ · RUPE - ARQUITECTURA Creación 09/11/12 Autor GC Revisión DG-GC - 07 -09 -2012 Aprobación GC - 07 -09 -2012

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.

Page 6: RUPE - ARQUITECTURA - Agencia de Compras y Contrataciones ...€¦ · RUPE - ARQUITECTURA Creación 09/11/12 Autor GC Revisión DG-GC - 07 -09 -2012 Aprobación GC - 07 -09 -2012

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ó.

Page 7: RUPE - ARQUITECTURA - Agencia de Compras y Contrataciones ...€¦ · RUPE - ARQUITECTURA Creación 09/11/12 Autor GC Revisión DG-GC - 07 -09 -2012 Aprobación GC - 07 -09 -2012

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

Page 8: RUPE - ARQUITECTURA - Agencia de Compras y Contrataciones ...€¦ · RUPE - ARQUITECTURA Creación 09/11/12 Autor GC Revisión DG-GC - 07 -09 -2012 Aprobación GC - 07 -09 -2012

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.

Page 9: RUPE - ARQUITECTURA - Agencia de Compras y Contrataciones ...€¦ · RUPE - ARQUITECTURA Creación 09/11/12 Autor GC Revisión DG-GC - 07 -09 -2012 Aprobación GC - 07 -09 -2012

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.

Page 10: RUPE - ARQUITECTURA - Agencia de Compras y Contrataciones ...€¦ · RUPE - ARQUITECTURA Creación 09/11/12 Autor GC Revisión DG-GC - 07 -09 -2012 Aprobación GC - 07 -09 -2012

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

Page 11: RUPE - ARQUITECTURA - Agencia de Compras y Contrataciones ...€¦ · RUPE - ARQUITECTURA Creación 09/11/12 Autor GC Revisión DG-GC - 07 -09 -2012 Aprobación GC - 07 -09 -2012

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.

Page 12: RUPE - ARQUITECTURA - Agencia de Compras y Contrataciones ...€¦ · RUPE - ARQUITECTURA Creación 09/11/12 Autor GC Revisión DG-GC - 07 -09 -2012 Aprobación GC - 07 -09 -2012

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