37
Manual común de Arquitectura Sistema Integral de Asignación de Recursos (SIAR) CONTROL DOCUMENTAL Elaborado por: Iván Jerez Córdoba (everis) Objeto: Versión Descripción 1.0 Primera versión del documento Lista de distribución: CONTROL DE CAMBIOS Fecha Versión Autor Página Cambio 05/02/2014 1.0 Iván Jerez Primera Versión del Documento

Manual común de Arquitectura Sistema Integral de

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Manual común de Arquitectura

Sistema Integral de Asignación de Recursos

(SIAR)

CONTROL DOCUMENTAL

Elaborado por:

Iván Jerez Córdoba (everis)

Objeto:

Versión Descripción

1.0 Primera versión del documento

Lista de distribución:

CONTROL DE CAMBIOS

Fecha Versión Autor Página Cambio

05/02/2014 1.0 Iván Jerez Primera Versión del Documento

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

2/37

INDICE DE CONTENIDO

1. OBJETIVO DEL DOCUMENTO .................................................... 3

2. REPOSITORIO DE DOCUMENTACIÓN Y MODELADO .................. 4

3. DESCRIPCIÓN FUNCIONAL ...................................................... 5

3.1. Diagrama de bloques / negocio ............................................... 5

3.2. Acceso y utilización de la aplicación ......................................... 5

4. ARQUITECTURA ....................................................................... 6

4.1. Diagrama de arquitectura ....................................................... 6

4.1.1.Especificaciones técnicas ........................................................ 8

4.1.2.Configuraciones .................................................................. 15

4.1.3.Estimación de capacidades ................................................... 18

4.1.4.Interfaces con sistemas externos .......................................... 19

4.2. Diagrama de componentes ................................................... 20

4.3. Servicios publicados ............................................................ 28

5. RESOLUCIÓN DE PROBLEMAS ................................................ 29

5.1. Logs y trazas de la aplicación ................................................ 29

5.2. Monitorización..................................................................... 30

5.3. Excepciones ........................................................................ 30

5.4. Inventario de errores ........................................................... 31

5.5. Logger de Procesos ............................................................. 35

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

3/37

1. OBJETIVO DEL DOCUMENTO

El objetivo del presente documento es el de exponer información que, por el

interés común de diversas áreas, es preferible concentrar en un único lugar,

como por ejemplo cuestiones relativas a la arquitectura o la escritura de logs y

trazas.

Si el diagrama o gráfico a incluir en este documento tiene un tamaño que no

permite su visualización correcta, se deberá indicar únicamente su localización

en el repositorio de modelado correspondiente.

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

4/37

2. REPOSITORIO DE DOCUMENTACIÓN Y MODELADO

Toda la información usada por la documentación con diagramas modelando

distintas partes de la aplicación necesarias para su entendimiento se

encuentra en un fichero EAP de la aplicación Enterprise Architect.

El fichero se encuentra en:

resources\Modelado_Documentacion.EAP

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

5/37

3. DESCRIPCIÓN FUNCIONAL

Breve descripción funcional de la aplicación, resaltando qué se busca, las

principales funcionalidades ofrecidas, etc. Incluir en este apartado la

localización de la descripción funcional detallada (requisitos, historias de

usuario o los documentos que corresponda).

Si la complejidad o estructura de la aplicación lo pide, este apartado se puede

subestructurar por grandes bloques funcionales.

3.1. Diagrama de bloques / negocio

Diagrama de negocio o bloques funcional de la aplicación

3.2. Acceso y utilización de la aplicación

Desarrollo

SIAR WEB: https://siardes.metromadrid.net

SIAR SGD: http://beamont2.metromadrid.net

SIAR Rule Execution Server: http://jackson2.metromadrid.net:7030/res

SIAR Rule Team Server: http://jackson2.metromadrid.net:7030/teamserver

Producción

SIAR WEB: https://siar.metromadrid.net

SIAR SGD: http://siarmotor.metromadrid.net/sgd

SIAR Rule Execution Server: http://siarilog.metromadrid.net/res

SIAR Rule Team Server: http://siarilog.metromadrid.net/teamserver

Descripción general del uso de la aplicación.

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

6/37

4. ARQUITECTURA

4.1. Diagrama de arquitectura

El siguiente diagrama muestra la arquitectura tecnológica de Producción con

la que cuenta el aplicativo global de SIAR (diagrama por máquina):

deployment Entorno Tecnológico Producción

Servidor Aplicaciones

- Capacidad de Almacenamiento - HDD: = 72 Gb

- Capacidad de Procesamiento - CPU: = T4 a 3ghz 8 cor...

- Host Name: = siarilog

- Memoria Física - RAM: = 256 Gb

Servidor Motor Asignación

- Capacidad de Almacenamiento - HDD: = 72 Gb

- Capacidad de Procesamiento - CPU: = T4 a 3ghz 8 cor...

- Host Name: = balde1 y balde2

- Memoria Física - RAM: = 256 Gb

Sun Solaris

- version: int = 10

Oracle Weblogic

- version: = 10.3.3.0

JDK

- tipo: = Hotspot

- version: = jdk1.6.0_45

siar

Server1

- puerto: = 7010

siar-web

Server2

- puerto: = 7020

siar-web

Server3

- puerto: = 7030

siar-ws

Server4

- puerto: = 7040AdminServer

- puerto: = 7001

jms/siarasyncqueue jdbc/jsiardatasource jdbc/resdatasource

Balanceador HW

- modelo: = Alteon

- puerto: = 443

Servidor Base de Datos

- Capacidad de Almacenamiento - HDD: = 72 Gb

- Capacidad de Procesamiento - CPU: = T4 a 3ghz 8 cor...

- Host Name: = junin1

- Memoria Física - RAM: = 256 Gb

SGBD Oracle

- version: = 11G

Sun Solaris

- version: int = 10

Sun Solaris

- version: int = 10

Apache Web Server

- puerto: = 80

Sun Global Desktop

- version: = 4.6

Optimización

siar-cliente-pesado

ILOG CP

- version: = 1.6

ILOG CPLEX

- version: = 12.2

Librería Optimización Motor Asignación

Sistemas Externos

Apache

- version: = 2.2.17

- puerto: = 80

birt

Server 5

- puerto: = 7050

res/rts

VISA

SAP/R3

PAP

VACACIONES

ANDEN CENTRAL

«use»

«deploy»«deploy»

«deploy»

«use»

«use»

«access»

«access»

«access»

«deploy»

«deploy»

«use»

«WS-SOAP»

«use»

«deploy»

«use»«use» «use» «use»

«BBDD»

«BBDD»

«BBDD»

«BBDD»

«BBDD»

«BBDD»

«BBDD»

El diagrama anterior muestra la distribución de cada máquina en Producción,

sin embargo, tanto para el “Servidor Aplicaciones” como para el “Servidor

Motor Asignación” existen 2 máquinas que forman cluster entre los nodos que

forman internamente. Para ver los cluster disponibles en el “Servidor

Aplicaciones” en Producción se puede observar en el siguiente diagrama:

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

7/37

Y el cluster para las máquinas donde está el SGD es el siguiente:

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

8/37

deployment Diagrama Cluster SGD

Balde1 Balde2

Apache Web Serv er

- puerto: = 80

Sun Global Desktop

- version: = 5.00.907

Apache Web Serv er

- puerto: = 80

Sun Global Desktop

- version: = 5.00.907

Cluster

4.1.1. Especificaciones técnicas

Las Especificaciones técnicas no varían mucho en los entornos con los que

cuenta el proyecto SIAR, a continuación se describen cada entorno:

Entorno local (Equipo Desarrollo):

Los equipos locales son máquinas con Sistema Operativo Windows XP de 32

bits. Estos equipos se utilizan para el desarrollo del software de SIAR.

Se puede ver las características en la siguiente tabla:

Características Hardware

Procesador T4 a 2.85ghz 8 cores 8 threads

Memoria RAM 128 Gb

HDD (Disco Duro) 100 Gb aprox.

Características Software

Sistema Operativo Windows XP 32 bits

Lenguaje Programación Java 6 SE (JDK Sun)

Entorno Desarrollo Eclipse 3.5 (Galileo) / RuleStudio 7.1.1 (basado

en Eclipse 3.4)

Servidor de Aplicaciones Apache Tomcat 6

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

9/37

En los entornos locales de desarrollo no se puede probar la aplicación en

cluster ni tampoco usar una propia cola de JMS, por eso utilizan colas JMS

instaladas en otros servidores de aplicaciones con WLS (jackson2 u otro

equipo local Windows XP).

Entorno Servidores Web Locales:

Son servidores Weblogic 11g que se instalan en equipos locales con Sistema

Operativo Windows XP de 32 bits. Estos equipos se utilizan como manera

rápida de desplegar el aplicativo Web en Weblogic.

Se puede ver las características en la siguiente tabla:

Características Hardware

Procesador Intel Core 2 Duo

Memoria RAM 2-3 Gb

HDD (Disco Duro) 100 Gb aprox.

Características Software

Sistema Operativo Windows XP 32 bits

Servidor de Aplicaciones Weblogic 11g

JVM JDK Hotspot 1.6.0_18 (Sun)

Estos servidores tienen configurados un único Server donde se ejecuta el

aplicativo Web. No tiene cluster.

Sí tiene una cola JMS el procesamiento asíncrono de SIAR.

Entorno Desarrollo:

El entorno de Desarrollo consta de 3 máquinas para usos diferentes:

• Jackson2 Servidor Aplicaciones

• Beamont2 SGD – Cliente Pesado/Motor Asignación

• Jackson3 SGBD Oracle 11g

Características Jackson2:

Características Hardware

Procesador 2 x SPARC64 V9 (PrimePower 1500)

Memoria RAM 16 Gb

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

10/37

HDD (Disco Duro) 72 Gb

Switch SSL Alteon

Características Software

Sistema Operativo Solaris 10 (SunOs 5.10)

Servidor de Aplicaciones Weblogic 11g

Balanceador de Carga Apache (módulo cluster Weblogic)

JVM Hotspot 32 bits

Estos servidores tienen configurados 4 Servers donde se ejecuta el aplicativo

Web. Además hay un cluster montado con el Server1 y el Server2 con

VirtualHost siardes.

Tiene una cola JMS en cluster para el procesamiento asíncrono de SIAR.

Tiene instalado un agente de AccessManager (OpenSSO) para la comunicación

con el servidor AccessManager de desarrollo de Metro de Madrid.

Las aplicaciones con las que va a contar son:

• siar-web

• Rule Execution Server (RES)

• Rule Team Server (RTS)

Características Beamont2:

Características Hardware

Procesador 4 x SPARC64 V9 (PrimePower 1500)

Memoria RAM 8 Gb

HDD (Disco Duro) 72 Gb

Características Software

Sistema Operativo Solaris 10 (SunOs 5.10)

Servidor Web Apache

Servidor Escritorio Remoto Sun Secure Global Desktop (SGD)

JVM Hotspot 32 bits

Librería Solver CPLEX

Este servidor tiene instalada la librería CPLEX que usa el Motor de Asignación.

Tiene instalado la aplicación SGD sobre un Apache, esta aplicación es la

encargada de ejecutar remotamente el cliente pesado.

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

11/37

Permite ejecutar hasta 4 asignaciones en la máquina.

Características Jackson3:

Características Hardware

Procesador 2 x SPARC64 V9 (PrimePower 1500)

Memoria RAM 10 Gb

HDD (Disco Duro) 72 Gb

Características Software

Sistema Operativo Solaris 10 (SunOs 5.10)

Servidor Base de Datos Oracle Database Server 11g

Este servidor es la base de datos de desarrollo, la cual cuenta con 6 esquemas

distintos para SIAR y un esquema para desplegar reglas (BRES).

Entorno Producción:

El entorno de Producción consta de 3 máquinas para usos diferentes:

• Bialet1 y Bialet2 Servidor Aplicaciones

• Balde1 y Balde2 SGD – Cliente Pesado/Motor Asignación

• Junin1 SGBD Oracle 11g

Características Bialet1 y Bialet2:

Características Hardware

Procesador T4 a 3ghz 8 cores 8 threads

Memoria RAM 256 Gb

HDD (Disco Duro) 72 Gb

Switch SSL Alteon

Características Software

Sistema Operativo Solaris 10 (SunOs 5.10)

Servidor de Aplicaciones Weblogic 11g

Balanceador de Carga Apache (módulo cluster Weblogic)

JVM jdk1.6.0_45

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

12/37

Estos servidores tienen configurados 4 Servers donde se ejecuta el aplicativo

Web. Además hay un cluster montado con el Server1 y el Server2 con

VirtualHost siar.

Tiene una cola JMS en cluster para el procesamiento asíncrono de SIAR.

Tiene instalado un agente de AccessManager (OpenSSO) para la comunición

con el servidor AccessManager de desarrollo de Metro de Madrid.

Las aplicaciones con las que va a contar son:

• siar-web

• Rule Execution Server (RES)

• Rule Team Server (RTS)

Características Balde1 y Balde2:

Características Hardware

Procesador 4 x SPARC64 V9 (PrimePower 1500)

Memoria RAM 8 Gb

HDD (Disco Duro) 72 Gb

Características Software

Sistema Operativo Solaris 10 (SunOs 5.10)

Servidor Web Apache

Servidor Escritorio Remoto Sun Secure Global Desktop (SGD)

JVM Hotspot 32 bits

Librería Solver CPLEX

Este servidor tiene instalada la librería CPLEX que usa el Motor de Asignación.

Tiene instalado la aplicación SGD sobre un Apache, esta aplicación es la

encargada de ejecutar remotamente el cliente pesado.

Permite ejecutar hasta 4 asignaciones en la máquina.

Características Junin1:

Características Hardware

Procesador 2 x SPARC64 V9 (PrimePower 1500)

Memoria RAM 10 Gb

HDD (Disco Duro) 72 Gb

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

13/37

Características Software

Sistema Operativo Solaris 10 (SunOs 5.10)

Servidor Base de Datos Oracle Database Server 11g

Este servidor es la base de datos de producción, tiene un esquema para SIAR

y un esquema para desplegar reglas (BRES).

El Diagrama de Especificaciones Técnicas se puede apreciar en la siguiente

figura:

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

14/37

El diagrama refleja el entorno de Producción, que es muy parecido al de

Desarrollo salvo que los sistemas con los que se asocia son de Producción o

Desarrollo según entorno.

Los sistemas que cambian entre diferentes entornos son:

• Base de Datos: en desarrollo se tienen otros esquemas de base de

datos con diferentes juegos de datos.

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

15/37

• Access Manager Server y SUN Directory Server: dependiendo del

entorno puede ser de Desarrollo o de Producción.

El hardware de Athlon sirve para proporcionar SSL en las comunicaciones

HTTP. Este dispositivo es el mismo tanto para el entorno de Desarrollo como el

de Producción.

4.1.2. Configuraciones

Las configuraciones de las aplicaciones, tanto del cliente Web como del cliente

pesado, varían según el entorno donde se ejecute. Se puede ver las diferentes

configuraciones en las siguientes tablas:

Entorno local (Equipo Desarrollo):

Aplicación Parámetro Valor Acceso

siar-web

Servidor Tomcat 6 -

BBDD

SIAR:SIARR (jackson3) context.xml

SIAR1B:SIARR (jackson3) context.xml

SIARBETA:SIARR (jackson3) context.xml

SIAR1BACEP:SIARR (jackson3) context.xml

JSIAR:SIARR (jackson3) context.xml

SIARGRI:SIARR (jackson3) context.xml

BRES:SIARR (jackson3) context.xml

Acceso Reglas

Local: <ruta disco duro local> siar-web/ra.xml

JNDI: jdbc/resdatasource siar-web/ra.xml

JDBC: BRES:SIARR (jackson3) siar-web/ra.xml

URL Sist. Externos

VISA BBDD

ANDÉN CENTRAL BBDD

VACACIONES BBDD

PAP BBDD

SAP SAP LOGON PAD / WS-

SOAP

Perfil Maven tomcat pom.xml

Salida LOG Aplicación CONSOLE log4j.xml

Procesos Asincronos

JMS (t3://server:port) siar-negocio/pom.xml

Java Thread siar-negocio/pom.xml

Seguridad - -

URL SGD http://beamont2.metromadrid.net/sgd tabla configuración BBDD

URL BIRT http://jackson2.metromadrid.net:7050/birt tabla configuración BBDD

siar-cliente- BBDD SIAR:SIARR (jackson3) spring-config-cp.properties

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

16/37

pesado SIAR1B:SIARR (jackson3) spring-config-cp.properties

SIARBETA:SIARR (jackson3) spring-config-cp.properties

SIAR1BACEP:SIARR (jackson3) spring-config-cp.properties

JSIAR:SIARR (jackson3) spring-config-cp.properties

SIARGRI:SIARR (jackson3) spring-config-cp.properties

Acceso Reglas

Local: <ruta disco duro local> siar-cliente-pesado/ra.xml

JNDI: jdbc/resdatasource siar-cliente-pesado/ra.xml

JDBC: BRES:SIARR (jackson3) siar-cliente-pesado/ra.xml

Salida LOG Aplicación CONSOLE log4j.properties

Salida LOG Motor FILE siar_config.properties

Entorno Servidores Web Locales:

Aplicación Parámetro Valor Acceso

siar-web

Servidor Weblogic Server 11g -

BBDD

SIAR:SIARR (jackson3) WLS Console

SIAR1B:SIARR (jackson3) WLS Console

SIARBETA:SIARR (jackson3) WLS Console

SIAR1BACEP:SIARR (jackson3) WLS Console

JSIAR:SIARR (jackson3) WLS Console

SIARGRI:SIARR (jackson3) WLS Console

BRES:SIARR (jackson3) WLS Console

Acceso Reglas JNDI: jdbc/resdatasource siar-web/ra.xml

URL Sist. Externos

VISA BBDD

ANDÉN CENTRAL BBDD

VACACIONES BBDD

PAP BBDD

SAP SAP LOGON PAD / WS-

SOAP

Perfil Maven env-local-nodespliegue pom.xml

Salida LOG Aplicación CONSOLE log4j.xml

Procesos Asincronos JMS (t3://localhost:7001) siar-negocio/pom.xml

Seguridad - -

URL SGD http://beamont2.metromadrid.net/sgd tabla configuración BBDD URL BIRT http://jackson2.metromadrid.net:7050/birt tabla configuración BBDD

Únicamente este entorno se utiliza para la aplicación Web.

Entorno Desarrollo:

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

17/37

Aplicación Parámetro Valor Acceso

siar-web / siar-ws

Servidor

Weblogic Server 11g

- URL: jackson2.metromadrid.net

BBDD

SIAR:SIARR (jackson3) WLS Console

SIARBETA:SIARR (jackson3) WLS Console

JSIAR:SIARR (jackson3) WLS Console

BRES:SIARR (jackson3) WLS Console

Acceso Reglas JNDI: jdbc/resdatasource siar-web/ra.xml

URL Sist. Externos

VISA BBDD

ANDÉN CENTRAL BBDD

VACACIONES BBDD

PAP BBDD

SAP SAP LOGON PAD / WS-

SOAP

Perfil Maven env-des-hudson pom.xml

Salida LOG Aplicación FILE log4j.xml

Procesos Asincronos

JMS:

tabla configuración BBDD

t3://jackson2.metromadrid.net:7010

t3://jackson2.metromadrid.net:7020

Seguridad OpenSSO -

URL SGD http://beamont2.metromadrid.net/sgd tabla configuración BBDD

URL BIRT http://jackson2.metromadrid.net:7050/birt tabla configuración BBDD

siar-cliente-pesado

BBDD

SIAR:SIARR (jackson3) spring-config-cp.properties

SIAR1B:SIARR (jackson3) spring-config-cp.properties

SIARBETA:SIARR (jackson3) spring-config-cp.properties

JSIAR:SIARR (jackson3) spring-config-cp.properties

Acceso Reglas JDBC: BRES:SIARR (jackson3) /siar/motor/config/ra.xml

Salida LOG Aplicación FILE log4j.properties

Salida LOG Motor FILE siar_config.properties

Entorno Producción:

Aplicación Parámetro Valor Acceso siar-web / siar-ws Servidor Weblogic Server 11g -

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

18/37

URL: bialet1.metromadrid.net / bialet2.metromadrid.net

BBDD

SIAR:SIARL (jackson1) WLS Console

BRES:SIARL (jackson1) WLS Console

Acceso Reglas JNDI: jdbc/resdatasource siar-web/ra.xml

URL Sist. Externos

VISA BBDD

ANDÉN CENTRAL BBDD

VACACIONES BBDD

PAP BBDD

SAP SAP LOGON PAD / WS-

SOAP

Perfil Maven env-pruebas-usuario pom.xml

Salida LOG Aplicación FILE log4j.xml

Procesos Asincronos

JMS:

tabla configuración BBDD

t3://bialet1.metromadrid.net:7010

t3://bialet1.metromadrid.net:7020

t3://bialet2.metromadrid.net:7010

t3://bialet2.metromadrid.net:7020

Seguridad OpenSSO -

URL SGD https://siarmotor.metromadrid.net/sgd tabla configuración BBDD

URL BIRT https://siarinformes.metromadrid.net/birt tabla configuración BBDD

siar-cliente-pesado

BBDD SIAR:SIARL (jackson1)

spring-config-cp.properties o por propiedades de la

JVM

Acceso Reglas JDBC: BRES:SIARL (jackson1) /siar/motor/config/ra.xml

Salida LOG Aplicación FILE log4j.properties

Salida LOG Motor FILE siar_config.properties

4.1.3. Estimación de capacidades

Así mismo, se deberá indicar la concurrencia prevista que pueda soportar la

aplicación: número de usuarios, número de procesos automatizados, anchos

de banda, etc.

En concreto para las bases de datos implicadas en la solución, se deberá

realizar y plasmar un estudio de volumetría total prevista por entorno.

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

19/37

4.1.4. Interfaces con sistemas externos

SAP HR

Se ha realizado un desarrollo para integrar los WebService de HR para la

consulta de horas extra, punteos y asignación de agentes en la aplicación de

SIAR.

Para la generación de dichos clientes, se ha usado la tecnología CXF, que

genera todo lo necesario para invocarlos, así como distintas opciones de

configuración.

Adicionalmente a estos clientes, se ha generado un BS (Business Service)

para cada servicio de tal manera que las invocaciones a estos se realicen

desde el BS en lugar de hacerlo directamente. Se ha optado por realizarlo de

este modo por mantener la misma arquitectura utilizada para el resto de

invocaciones, ya sea a BBDD directamente o a otros servicios usados en la

aplicación.

Los BS generados son los siguientes:

• WsAsignacionAgentesBS

• WsHorasExtraBs

• WsPunteoBs

Portal del Empleado:

Interfaz: JDBC

Host: monterrey.metromadrid.net

BBDD:PMP

Esquema/usuario: pe1828(provisonal)

Vigilancia de la Salud: VISA

Interfaz: JDBC

Hosts en RAC: trinidad-vip y varadero-vip

BBDD:VISAP

Esquema/usuario: rsiarvisa

PAP

Interfaz: JDBC

Host: lnosap

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

20/37

BBDD:PRO1 (nosap)

Esquema/usuario: lecturapap

VACOPER

Interfaz: JDBC

Host: sec_lnosap

BBDD:PRO01(nosap)

Esquema/usuario:siarvacoper

4.2. Diagrama de componentes

SIAR consta de varios componentes de los cuales algunos son utilizados en

ambas aplicaciones: cliente pesado y aplicativo Web.

Para una mayor comprensión, se puede revisar el siguiente diagrama que

explica cómo se comunican los diversos componentes:

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

21/37

pkg Diagrama Prev io Componentes Alto Niv el

siar-core

siar-negocioComun

siar-motorAsignacionsiar-negocio

siar-web siar-cliente-pesado

En el diagrama anterior se puede ver que el paquete del que nacen todas las

dependencias es siar-core. En este paquete contiene las clases para el acceso

a datos (Data Access Object, DAO), las clases de persistencia (Value Object,

VO), las interfaces de los gestores así como una serie de utilidades de Spring,

propias de la aplicación y constantes. El diagrama siguiente de componentes

de alto nivel muestra la estructura del paquete siar-core:

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

22/37

cmp Diagrama Componentes siar-core

siar-core

DAOs VOs

Entidades Motor

Utilidades Spring Utilidades CoreConstantes Core

Interfaces Gestores

«use» «implementation»

«use»

El paquete siar-negocioComun está formado por las partes de negocio

comunes al aplicativo Web y al aplicativo cliente pesado. Entre los módulos de

los que dispone está Condición del Agente, Matriz de Distancia, Cálculo de

Vacaciones, Histórico/Publicación de Asignaciones y los gestores.

Los gestores son una capa intermedia entre el negocio y los DAOs pero que

además añade un control sobre los datos consultados mediante el uso de

cachés. El diagrama de componentes siar-negocioComun es:

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

23/37

cmp Diagrama Componentes siar-negocioComun

siar-negocioComun

CONDAG

Matriz Distancia

Calculo Vacaciones

Publicación

Asignaciones

Impl. Gestores

«use»

«use»«use»

«use»

En la parte Web se utilizan los paquetes siar-negocio y siar-web, donde se

recoge el negocio y la lógica de presentación del aplicativo Web.

El paquete siar-negocio se compone de BS (Business Services),

implementación de la conexión con la cola JMS de WLS, implementación del

asincronismo, negocio de las reglas DC y una serie de utilidades y constantes

de negocio. Se puede ver en el diagrama:

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

24/37

cmp Diagrama Componentes siar-negocio

siar-negocio

Business Serv ices

(BS)

Negocio Reglas DC

Utilidades Negocio Constantes Negocio

Impl. Asincronismo Impl. JMS

«use»

El paquete siar-web reúne los componentes visuales (JSF con Facelets y

Richfaces, JSP y pantallas en ambas tecnologías), Managed beans, utilidades

de sesión y control de pantalla, Servlets GR:

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

25/37

cmp Diagrama Componentes siar-web

siar-web

Pantallas JSF Pantallas JSP

Autenticación y

Autorización AM

Utilidades Sesión y

Pantalla

Serv lets GRManaged Beans

Entidades

Presentacion

«use» «use»

Además de esto, siar-web se encuentra encapsulado en un EAR llamado siar-

web-ear donde se añade parte de la configuración de los WebService de HR

para evitar problemas de compatibilidad con WebLogic. Esta configuración se

recoge en el archivo weblogic-application.xml.

Por último, están los paquetes de la parte cliente pesado.

El paquete siar-motorAsignacion dispone de los fuentes para la generación

de la librería de optimización del modelo en C++, el negocio de las reglas del

Motor de Asignación, el BS de escritura de la solución de asignación y las

clases Java Native Interface (JNI) para la comunicación Java con la librería

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

26/37

generada a partir de los fuentes en C++. El diagrama se puede ver a

continuación:

cmp Diagrama Componentes siar-motorAsignacion

siar-motorAsignacion

Fuentes C++

Negocio Reglas MA BS Escritura

Solución

Asignación

JNI

«use»

«use»

El paquete siar-cliente-pesado es el encargado de presentar las pantallas con

las que interactúan los usuarios. Este proyecto está hecho en Java Swing.

Invoca a los gestores de siar-negocioComun para la obtención de los datos

para preparar la asignación y luego invoca a siar-motorAsignacion para el

cálculo de la solución.

Se ha creado una serie de utilidades para conectar con el contexto Spring de

los DAOs y otras utilidades para gestionar la transaccionalidad de la aplicación.

El diagrama que muestra los componentes es el siguiente:

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

27/37

cmp Diagrama Componentes siar-cliente-pesado

siar-cliente-pesado

Componetes

Visuales SIAR

Pantallas y Ev entos Acceso Datos

Transaccional

Inicializador

Contexto Spring

«use»

«use»

Para finalizar, se muestra un diagrama donde se pueden ver las

organizaciones de reglas, cada una de las cuales contienen varios proyectos de

JRules que se agrupan en el mismo RuleApp.

La agrupación que se muestra en el diagrama es por cada RuleApp que se

genera en SIAR:

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

28/37

cmp Diagrama Componentes siar-reglas

siar-reglas

SIAR_MA SIAR_CA

SIAR_DC SIAR_GR

4.3. Servicios publicados

Mencionar y documentar los servicios publicados hacia el exterior: Web

Services publicados (SOAP o REST), EJB remotos expuestos, RMI, base de

datos, etc.

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

29/37

5. RESOLUCIÓN DE PROBLEMAS

5.1. Logs y trazas de la aplicación

En lo referente a los logs y trazas de la aplicación, se deberá indicar dónde se

escriben, dónde se configuran y cómo se pueden consultar para cada uno de

los entornos en lo que corra la aplicación, y para cada uno de sus

componentes.

Entorno Desarrollo: Aplicación Ruta Nivel Rotado NºBackups Descripción

siar-web /bea/logs/aplicaciones/SIAR/siar ServerX.log Varios 10MB 10 Log general de

la aplicación

siar-web.

siar-web /bea/logs/aplicaciones/SIAR/siar_procesos.log INFO 10MB 10 Log que saca los

datos de entrada

y salida de un

proceso

importante.

siar-ws /bea/logs/aplicaciones/SIAR/siar-ws ServerX.log Varios 10MB 10 Log general de

la aplicación

siar-ws.

siar-ws /bea/logs/aplicaciones/SIAR/siar-ws-error.log Varios 10MB 10 Log donde se

escriben los

errores para la

monitorización.

siar-ws /bea/logs/aplicaciones/SIAR/siar_procesos.log INFO 10MB 10 Log que saca los

datos de entrada

y salida de un

proceso

importante.

siar-

reports

/bea/logs/aplicaciones/SIAR/ReportEngine_2014.log Varios 10MB 10 Log que saca

errores

correspondientes

a consultas de

base de datos

que se realizan

en la consulta de

cualquier

informe BIRT.

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

30/37

Entorno Producción: Aplicación Ruta Nivel Rotado NºBackups Descripción

siar-web /bea/logs/aplicaciones/SIAR/siar ServerX B(Número

de máquina).log

ERROR 10MB 10 Log general de

la aplicación

siar-web.

siar-web /bea/logs/aplicaciones/SIAR/siar_procesos.log INFO 10MB 10 Log que saca los

datos de entrada

y salida de un

proceso

importante.

siar-ws /bea/logs/aplicaciones/SIAR/siar-ws ServerX

B(Número de máquina).log

ERROR 10MB 10 Log general de

la aplicación

siar-ws.

siar-ws /bea/logs/aplicaciones/SIAR/siar-ws-error.log ERROR 10MB 10 Log donde se

escriben los

errores para la

monitorización.

siar-ws /bea/logs/aplicaciones/SIAR/siar_procesos.log INFO 10MB 10 Log que saca los

datos de entrada

y salida de un

proceso

importante.

siar-

reports

/bea/logs/aplicaciones/SIAR/ReportEngine_2014.log Varios 10MB 10 Log que saca

errores

correspondientes

a consultas de

base de datos

que se realizan

en la consulta de

cualquier

informe BIRT.

5.2. Monitorización

La monitorización sólo existe para los procesos periódicos que se inician

mediante ejecución de su servicio expuesto por SOAP.

Para más detalle ver el apartado 4.2 Planificaciones y tareas periódicas del

Manual de Explotación.

5.3. Excepciones

Las excepciones se gestión de forma general para SIAR, en las que se tiene

las siguientes excepciones (visibles dentro de los logs):

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

31/37

- TecnicaException: excepción técnica que ocurre durante el procesado o

integración de SIAR con otros sistemas. Por ejemplo: fallos de

conectividad con la base de datos, tabla de base de datos no existente,

acceso a fichero que no existe, etc.

- NegocioException: excepciones provocadas por código cuando no se

cumple cierta lógica de negocio. Se utiliza como mecanismo para cortar

el flujo de ejecución cuando no se cumple una validación de negocio.

- MessageException: excepción cuando se produce un errores en el

sistema de mensajería JMS.

- TimeoutSpringSecurityException: excepción que se lanza cuando se

detecta un timeout de la sesión web del usuario. Se utiliza para que

automáticamente redirija a la página de logout con el mensaje

específico de timeout.

De forma genérica, cuando un error, de los descritos anteriormente, llega a la

capa de presentación, se ha controlado para que muestre una página HTML

personalizada indicando un error HTTP 500 (aunque la respuesta no sea HTTP

500). Habría que revisar los logs para ver el detalle del error.

Además, existen pantallas personalizadas para los errores HTTP 500, HTTP

404 y HTTP 403.

5.4. Inventario de errores

Los errores tienen 2 códigos: código error y código error log. El primero es el

código de error que tiene en la aplicación y el segundo es el código de error

para la monitorización con OVO.

No todos los errores deben ser monitorizados, por eso se realiza esta doble

clasificación de los errores.

El código de error será el que se muestre en las pantallas específicas de error

donde pondrá el código y la traza del código. Estas pantallas facilitaran el

reporte, por parte de los usuarios, de los errores o incidencias.

Los errores a tener en cuenta por la herramienta de monitorización OVO son

los que tiene código de error log, y se escriben en los siguientes ficheros de

logs:

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

32/37

/bea/logs/aplicaciones/SIAR/siar-ws_<SERVER>.log

/bea/logs/aplicaciones/SIAR/siar_<SERVER>.log

El formato de salida de estos errores es:

<código error log> - <texto descriptivo>

En la siguiente tabla se muestran los códigos de error y la acción asociada:

Código

error

Código

error log Motivo Acciones

000

Cualquier error técnico de

la propia aplicación, no

entran los errores técnicos

de conexión con otros

sistemas, bases de datos,

etc.

- Revisad trazas y/o

avisad equipo

mantenimiento SIAR,

posible error de

negocio.

001

Error durante una

operación DML batch

sobre la BBDD SIAR.

- Revisad trazas y/o

avisad equipo

mantenimiento SIAR,

posible error de

negocio.

002

Error durante una

operación Stateless batch

sobre la BBDD SIAR.

- Revisad trazas y/o

avisad equipo

mantenimiento SIAR,

posible error de

negocio.

003

Error durante borrado

lógico: actualización del

valor o acceso a la

entidad.

- Revisad trazas y/o

avisad equipo

mantenimiento SIAR,

posible error de

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

33/37

negocio.

004

Error durante borrado

lógico: en la

comprobación de la

integridad referencial (por

PL/SQL).

- Revisad trazas y/o

avisad equipo

mantenimiento SIAR,

posible error de

negocio.

010 SIAR010

Error de conexión con la

BBDD, se especifica la

base de datos con

problemas (todas menos

SIAR y BRES).

Posibles errores:

- Datasource

caído/suspendido.

- Nombre JNDI inválido,

no se encuentra o no se

tiene acceso.

- Usuario/Contraseña

inválidos.

- No se puede conectar a

la BBDD.

- Cualquier otro error

durante la conexión.

- Revisar la conexión

con las bases de datos

externas (VISA, PAP,

Anden Central o

Vacaciones).

- Revisar que tiene

visibilidad los

servidores donde se

despliega siar-web y

siar-ws.

- Usuario o contraseña

inválida o caducada.

011 SIAR011

Error de conexión con la

BBDD durante el cierre de

la conexión.

- Revisar la conexión

con las bases de datos

externas (VISA, PAP,

Anden Central o

Vacaciones).

012 SIAR012

Error en la carga de las

reglas de JRules. Posible

problema de conexión con

el esquema de Reglas.

- Revisar la conexión

con el esquema BRES.

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

34/37

013 SIAR013

Cola JMS para el

asincronismo

- Problema al crear el

conector JMS con las

colas. Revisad que

todas las colas están

desplegadas.

014 SIAR014

Conexión SAP en alguno

de los servicios

- Revisar conexión con

los servicios de SAP de

agentes, asignación o

horas extras.

- Usuario de transporte

o contraseña inválida o

caducada.

- Error en la confianza

en el certificado de los

servicios si se va por

HTTPS.

N/A SIAR001

Error durante la ejecución

del proceso periódico

(error interno del proceso,

por ejemplo fallo de

negocio).

- Volver a lanzar el

proceso manualmente.

- Revisar los logs de la

aplicación para ver el

error producido.

N/A SIAR002

Error en la entrada del

mensaje para lanzar el

proceso

(son los errores que se

producen antes de entrar

en el proceso, por

ejemplo cabecera

inválida)

- Volver a lanzar el

proceso manualmente.

- Revisar el mensaje

SOAP de entrada

enviado desde script

PHP si es correcto en

base a la interfaz del

servicio en SIAR.

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

35/37

N/A SIAR003

Error en la salida del

mensaje una

(por ejemplo si no hay

podido realizar

correctamente el

unmarshalling o

transformación de un dato

a Java).

- Volver a lanzar el

proceso manualmente.

- Corregir mensaje.

El inventario de errores anterior sólo se produce en la aplicación siar-ws que

es una aplicación web empaquetada dentro de siar-ws-ear.

Sólo se ha visto la utilidad del uso de la herramienta de monitorización de

Metro en este aplicativo puesto que su finalidad es la de establecer los puntos

de entrada, como servicios web, para la ejecución de los procesos periódicos.

De esta manera, se puede monitorizar la correcta ejecución de los mismos.

5.5. Logger de Procesos

Las trazas que escribe este logger se corresponden a procesos que conectan

con sistemas externos y por lo tanto se deben separar de las trazas del logger

normal para tenerlas localizadas en todo momento.

Estas trazas señalan el flujo de ejecución del proceso lanzado así como los

parámetros de envío al servicio invocado, además de la excepción que se

lanza en caso de error en la ejecución o recuperación de datos.

Subdividimos las trazas indicadas anteriormente de la siguiente forma:

• Indicador de inicio de método: En algunos casos clave se ha incluido un

mensaje a nivel de traza INFO para poder monitorizar los parámetros

enviados a un método. A continuación exponemos un ejemplo de estas

trazas en la que mostramos los parámetros enviados al método

incluyéndolos denrto de un StringBuffer:

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

36/37

StringBuffer sb = new StringBuffer();

sb = sb.append("@Param[asignacionPlanTrabajoVo={" +

asignacionPlanTrabajoVo + "}]").append("con IDReg " +

asignacionPlanTrabajoVo.getIdReg() + ", ").append("tipo de asignacion " +

asignacionPlanTrabajoVo.getTipoAsignacionVo() + " ").append(

"y categoría " + asignacionPlanTrabajoVo.getCategoriaVo() + ";

").append("con fechas de inicio de vigencia " +

asignacionPlanTrabajoVo.getInicioVigenciaRealStr() + " ").append(

"y fin de vigencia " + asignacionPlanTrabajoVo.getFinVigenciaRealStr());

LOGGER_PROCESO.info("INICIO Proceso [enviarAsignacionARRHH]:: " + sb);

• Flujo: El nivel de estas trazas siempre es DEBUG, ya que si no

queremos que el filesystem llegue a saturarse estas trazas

desaparecerán al aumentar el nivel de las mismas, debido a que son

meramente informativas. A continuación incluimos unos ejemplos de

estas trazas: LOGGER_PROCESO.debug("[enviarAsignacionARRHH]: cargando las componentes de la

asignacion ...");

LOGGER_PROCESO.debug("[enviarAsignacionARRHH]: cargando datos para el proceso…");

LOGGER_PROCESO.debug("[enviarAsignacionARRHH]: fin del cargar datos iniciales");

• Excepción: estas trazas siempre deberán ser mostradas, puesto que la

información que incluye es vital para comprender el comportamiento de

la aplicación a la hora de producirse la excepción. Su nivel será ERROR

e incluirá un mensaje descriptivo sobre el punto en el que falla y en

algunos casos el mensaje de la excepción, los parámetros recibidos o el

mensaje recuperado de la BDD en caso de que los parámetros de

validación sean incorrectos. A continuación aportamos unos ejemplos de

dichas trazas:

o Excepción sin mensaje: LOGGER_PROCESO.error("[enviarAsignacionARRHH]: errores en la validación de SIAR

de datos (se avisa de ellos al usuario por pantalla)");

o Excepción con mensaje de la Excepción: LOGGER_PROCESO.error("[enviarAsignacionARRHH]: error al invocar al web-service: "

+ e.getMessage());

o Excepción con parametros de entrada:

Nombre Documento:

Manual común de Arquitectura

Versión:

1.0

Página:

37/37

LOGGER_PROCESO.error("ERROR Proceso [enviarPunteoARRHH]:: " + sb);

o Excepción con mensaje de BDD: LOGGER_PROCESO.error("[enviarAsignacionARRHH]: " + msjBD);