APX
SESSION I
INDICE Introd roducc ucción ión gen genera erall APX 01 Int Modelo elo de des desarr arroll ollo o 02 Mod
2.1 OnLine/Batch Gest stió ión n de erro errore res s 2.2 Ge Compar paraci ación ón HOS HOST-A T-APX PX 2.3 Com Entorn orno o de des desarr arroll ollo o 03 Ent
04 IDE de desarrollo 05 In Inst stal alac ació ión n de IDE IDE Inst stal alac ació ión n de en ento torn rno o de eje ejecu cuci ción ón loc local al 06 In Prue ueba bas s de ej ejec ecuc ució ión n de en ento torn rno o lo loca call 07 Pr
INDICE Introd roducc ucción ión gen genera erall APX 01 Int Modelo elo de des desarr arroll ollo o 02 Mod
2.1 OnLine/Batch Gest stió ión n de erro errore res s 2.2 Ge Compar paraci ación ón HOS HOST-A T-APX PX 2.3 Com Entorn orno o de des desarr arroll ollo o 03 Ent
04 IDE de desarrollo 05 In Inst stal alac ació ión n de IDE IDE Inst stal alac ació ión n de en ento torn rno o de eje ejecu cuci ción ón loc local al 06 In Prue ueba bas s de ej ejec ecuc ució ión n de en ento torn rno o lo loca call 07 Pr
Int ntro roduc ducció ción n general general APX APX
01
INTR IN TROD ODUC UCCI CIÓN ÓN A APX A PX
La Arquitectura APX o Arquitectura Backend Extendida Java nace con el obje objeti tivvo de ser una extensión de la Arquitectura Backend facilitando las mism mismas as capa capaci cida dade dess en el mund mundo o dist distri ribu buid ido o
lterna ativa tiva fiable fiable y no – Siendo una altern acoplada al canal para el desarrollo de transacciones transacciones. – Actuar como una extensión de la plataforma Mainframe
Soport rtar ar la lógi lógica ca de aplicaciones – Sopo que se se adapta adaptan n a esta esta plataforma: Srv. Srv. Digitales, Digitales, banca de empresas, empresas, seguros… Ayudar a la reducción reducción de la utilización – Ayudar del Mainframe.
4
01
VISIÓN GENERAL
¿Qué es APX?
Backend Transaccional ligero y escalable basado en estándares abiertos Java EE. Su principal objetivo es ser una extensión de la Arquitectura Backend PG facilitando las mismas capacidades en el mundo distribuido. 5
01
CONTEXTO DEL BACKEND APX EN BBVA
T N O R F S O I C I V R E S
D N E K C A B
Lógica de Presentación y Navegación. Diferentes Tecnologías (J2EE, HTML5, Mobile app,..)
Mediación con el Backend. Control de Acceso y Monitorización. Interfaz amable para desarrolladores (Restful).
La lógica de negocio se resuelve en el BackEnd a través de la Arquitectura Plataforma Los datos son únicamente accesibles a través de la Arquitectura La Plataforma se extiende hacia tecnologías Open modernas (Cloud, Big Data, event processing, BPM…)
01
APX ARCHITECTURE BLUEPRINT
ATM
CALL CENTER
OFICINAS
INTERNET
MOVILES
EMPRESAS
CLOUD
RRSS
GESTOR DESPLAZADO
DEVELOPER
01
APX CAPACIDADES
01
DESPLIEGUE MODULAR EN CALIENTE
EL CONTENEDOR OSGI SIMPLIFICA EL DESPLIEGUE DE APLICACIONES Y REDUCE EL CONSUMO DE RECURSOS DE LAS MISMAS
Despliegue modular, en calient e e independiente del App Server
Los puntos clave que facilita el contenedor incluyen:
• Despliegue “plug and play” No es necesario reiniciar el sistema • Compartir recursos comunes a todas las aplicaciones Menor huella en memoria • Ejecución aislada de cada componente (microclasspath) Múltiples versiones en ejecución (100Kb por transacción + una
sola vez 50Mb de arquitectura)
Log4J
Log4J
Log4J
Log4J
Apache Commo n
Apache Commo n
Apache Commo n
Apache Commo n
Google APIs
Google APIs
Google APIs
Google APIs
CXF
CXF
CXF
CXF
Arq. + Spring Application A
Arq. + Spring Application B
Arq. + Spring Application C
Arq. + Spring Application D
Application Server
01
CAPA DE ACCESO A DATOS DESACOPLADA
Capa de acceso a datos d esacoplada (objetos CRUD) y uso • Bases de datos relacionales: Oracle de BD Avanzadas El acceso a datos se lleva a cabo a través de JPA (Java Persistence API), utilizando EclipseLink como JPA Manager o JDBC Los servicios desarrollados sobre la plataforma tienen diferentes fuentes de datos a su disposición:
La Arquitectura se encarga de gestionar la ejecución del Commit o Rollback de cara a garantizar la transaccionalidad. Ap p. Jav a
Hibernate
Objetos DAO Clientes
Cuentas
Países
persistence.xml
Entidades
JPA Ac ceso Manager Datos
1
2 3
Eclipselink
01
INTEGRACIÓN CON LOS SERVICIOS DE SEGURIDAD CORPORATIVAS La solicitud de ejecución de una transacción desencadena la ejecución del proceso de autorización, delegado en librerías de Seguridad Lógica.
ELARA
Recepción de la petición
Contexto Transaccional + UUID
Análisis Cabeceras n ó i c a z i l a i c i n I
Autorización
Parametrizado (pre y post accs)
Ejecución
Integración con los servicios de seguridad corporativas
Los componentes de Seguridad Lógica que dan servicio a la arquitectura no están acoplados a la misma. La arquitectura es independiente de la implementación de la librería.
Seguridad Lógica
Librería de autorización
RACF
El mecanismo de autorización es el que ha seleccionado Seguridad Lógica, está basado en RACF.
01
SERVICIOS BANCARIOS ADAPTADOS AL GRUPO BBVA
Servicios Bancarios adaptados al gru po BBVA
Arquitectur a Bancar ia COBOL
Arquitectura Bancaria Servicios Encapsulados
Cambio de Sesión
El Cambio Sesión puede actuar en modo automático, es decir, la Arquitectura detecta el cambio y lo propaga, o en modo sincronizado escuchando el mensaje de cambio de fecha contable desde el Host
UUID
El Identificador único de ejecución de transacción/job se genera automáticamente como el primer paso cuando se invoca a la transacción online/batch. Se puede propagar a la salida de la transacción para su correlación por en
Servicios con Lógica de Negocio
Autorizaciones
Diario Electrónico
El Diario Electrónico se configurar por transacción o UUAA de forma que la Arquitectura ejecuta una post acción tras la ejecución de la transacción. El modelo de datos es igual al Host permitiendo funcionar en modo
La
gestión
Registro de Operaciones
de
las Aut orizaciones se encuentra delegada en piezas del grupo de Seguridad Lógica, proporcionando una integración transparente para las aplicaciones. Las transacciones se perfilan
Registro de Operaciones es el similar El
al servicio de Audit Trail Host. El modelo de datos es igual al Host permitiendo funcionar en modo autónomo o delegado.
01
COMPONENTES ARQUITECTURA APX
La Plataforma Extendida BackEnd se compone de las siguientes partes técnicas : - Repositorio APX : Aplicación web que sirve los ejecutables de las transacciones / jobs a demanda. - Runtime APX : Nodos basados en Servidor de Aplicaciones/OSGI donde se ejecutan las transacciones / jobs de las aplicaciones. - Base Datos APX : Nodos de Base de Datos con las Tablas de información básica necesaria para la ejecución de una transacción - Adm inistració n : Aplicación web con funciones de Monit orización y Operación.
01
FUNCIONAMIENTO RUNTIME APX
Capa Servicios
Red de Ejecución Red comm Repositorio
1. La capa de Servicios invoca una transacción TX mediante su correspondiente petición.
Runtime Principal
Runtime Alternativo
2. La petición llegara a uno de los Nodos de Runtime. Si la transacción TX no está en el Nodo, este hará una petición al Repositorio de Transacciones.
Repositorio Transaccion
3. El Repositorio servira el ejecutable de la transacción TX al Nodo.
4. El Nodo de Runtime ejecuta el código de la Transacción TX: •
•
•
La capa de Arquitectura invoca al Modulo de Seguridad Lógica , que consulta en su BBDD, para Autorizar la ejecución. La capa de Arquitectura accede a la BBDD de Arquitectura para recuperar los parámetros de ejecución El aplicativo accederá a la BBDD APP
(El esquema de
Red BBDD
Servidor BBDD Arq
Red comm Admon
Modelo de desarrollo
02
MODELO DE DESARROLLO INTRODUCCIÓN
• El Entorno de Desarrollo de APX tiene como objetivo
simplificar la construcción de transacciones/librerías y jobs para ser ejecutados en la Arquitectura: •
Se abstrae de la complejidad de las tecnologías: Spring, JTA, JPA, Maven,…
• •
Asistentes y aceleradores de código Orientado a la productividad
• Se hace uso de estándares abiertos para el Desarrollo •
Se apoya en la definición de Arquitectura de Desarrollo estándar BBVA
02
ONLINE/BATCH STACK DE EJECUCIÓN ONLINE SYSTEM OF RECORDS
Las Pre y Post Acciones son parametrizables por Transacción Capa Peticiones físicas y lógicas
Perfilado Transacción
PRE Acciones
LOG
Contexto Transaccional
Escritura en el log de Arquitectura indicando que la Transacción ha sido lanzada
Generador UID POST Acciones
Validación Cabeceras
Pre Acciones
Lógica de Aplicación
Post Acciones
ERRORES
Validación de los Errores propagados por la Aplicación.
ROP
Escritura en Registro de Operaciones.
LOG
Escritura en el log de Arquitectura indicando que la Transacción se ha completado
EVENTO
Se envía un evento indicando que la Transacción se ha completado
MONITORIZA CIÓN
Envía la información para la monitorización funcional de la Transacción
02
ONLINE/BATCH COMPONENTES APLICACION APX ONLINE (I)
➔
Unidad Funcional: Corresponde con componente mínimo de despliegue en PaaS.
➔
Servicio Backend APX: Expone la interfaz RestFul de la API que representa.
➔
Transacción APX: Una transacción es la unidad aplicativa a ejecutar en APX
Online. Define la Unidad Transaccional a nivel de lógica aplicativa. ➔
Librería APX: Encapsula la lógica de negocio y el acceso a los datos. Publica su
interfaz para poder ser utilizada por terceros. ➔
DTO: Representación en forma de Bean de una Entidad de Negocio.
02
ONLINE/BATCH COMPONENTES APLICACION APX ONLINE (II) La Aplicación dispone de utilidades de Arquitectura que facilitan el acceso a las fuentes de datos.
Srv. Backend APX
Utilidades APX
TRX BBDD LIB LIB LIB
PUBLIC LIB
Motor Reglas Otros
Estrategia de Desarrollo : Todo acceso a datos debe de encapsularse en una librería para facilitar su reutilización y control de acceso.
02
ONLINE/BATCH PROCESAMIENTO BATCH Basada en Spring Batch, y amplía las funcionalidades que ofrece el framework. Integrado con schedulers
Pre / Post Acciones
Reutilizacion Libs
PROCESAMIENTO BATCH : - Gestión d e Commits parciales - Rearranques
Commit parciales
Rearranques
02
GESTIÓN DE ERRORES
02
COMPARACIÓN HOST-APX MAINFRAME
CAPACIDADES
Arq. Java Backend
-
TSO Némesis
-
IDE con wizards que facilitan la construcción de transacciones y procesos batch.
-
IMS/DB2
-
App Server / Base de datos distribuida
-
COBOL
-
JAVA en base a POJOs
-
-
-
IMS monitor transaccional La capa de control gestiona la sesión, genera el contexto transaccional para los datos y ejecuta la lógica aplicativa Transacciones Rutinas
-
Gestiona la transaccionalidad a través del estándar JTA La capa de control de la arquitectura gestiona el contexto transaccional y ejecuta la lógica aplicativa. No hay sesión de usuario. Transacciones Librerias
Batch
-
Commit parciales Rearranques Integración con scheduler JCLpara definir los pasos
-
Commit parciales Rearranques Integración con scheduler xJCL para definir los pasos (Modelo Spring Batch)
Conectores
-
Físico: MQ … Lógico: AQPG, OTMA…
-
Físico: Webservices - SOAP, MQ Lógico: XAQ, QP05
-
Despliegue en caliente
-
Despliegue en caliente y modular apoyado en framework OSGi. Elimina la necesidad de reiniciar app server Soporte multitenant: recursos comunes compartidos, y recursos especiíícos encapsulados
Desarrollo
Plataforma Lenguaje de prg.
Online
Despliegue
Arq ui tect ura bancaria
-
-
Cambio de s esión - Gestión de e rrores UID - Autorizaciones Diario electrónico y totales - Registro de operaciones Tablas corporativas
-
Cambio d e sesión - Gestión de e rrores UID - Autorizaciones Diario electrónico y totales - Registro de operaciones Tablas corporativas
Entorno de desarrollo
03
ENTORNO DE DESARROLLO Entorno de Desarrollo / Integración Continua:
Compile 2
Pre-Build
Local Test
1 3
•
El desarrollador tiene la capacidad de realizar en local las acciones de: – –
• •
Build
Compilar sus transacciones Ejecutar pruebas de Análisis de Código y Pruebas Unitarias sobre las mismas
Update BBDD Microservice Dependencies
El desarrollador podrá subir al repositorio de código la transacción implementada. El circuito de Integración Continua (basado
Jenkins
en ) e Implantación obtendrá los fuentes del repositorio de Código de forma independiente y transparente a los desarrolladores
Deploy 4
24
03
ENTORNO DE DESARROLLO Flujo Trabajo APX en PaaS(I)
0
Functional Unit
Continous Integration
2
5
Compile 4
Business Req. 1
Dependency gathering
Build Docker Image
Core Arq APX JBoss Layer Base PaaS
3
03
ENTORNO DE DESARROLLO Flujo Trabajo APX en PaaS(II)
Continous Delivery DEV
6
7
QA
8
PROD
Docker Registry
PRO D
DE V IAAS
IDE de desarrollo
04
IDE DE DESARROLLO
En Eclipse una perspectiva es un contenedor visual de vistas y editores para desarrollar la funcionalidad deseada. El entorno de desarrollo incluirá una perspectiva, llamada Perspectiva Elara, que puede obtenerse de la s iguiente manera:
04
IDE DE DESARROLLO
El entorno de desarrollo de APX se basa en el IDE Eclipse, al que se le han añadido nuevos plugins, para proporcionar al usuario las herramientas necesarias para el desarrollo de En Eclipse una perspectiva es un contenedor visual de vistas y editores para transacciones y procesos batch.
desarrollar la funcionalidad deseada. El entorno de desarrollo incluirá una perspectiva, llamada Perspectiva Elara, que puede obtenerse de la s iguiente La perspectiva manera: APX contiene las siguientes vistas y editores, pero como todas las perspectivas de Eclipse es totalmente configurable.
6
04
IDE DE DESARROLLO
El entorno de desarrollo de APX se basa en el IDE Eclipse, al que se le han añadido nuevos plugins, para proporcionar al usuario las herramientas necesarias para el desarrollo de En Eclipse una perspectiva es un contenedor visual de vistas y editores para desarrollar la transacciones y procesos batch.
funcionalidad deseada. El entorno de desarrollo incluirá una perspectiva, llamada Perspectiva Elara, que puede obtenerse de la siguiente manera:
La perspectiva APX contiene las siguientes vistas y editores, pero como todas las perspectivas de Eclipse es totalmente configurable.
4
04
IDE DE DESARROLLO
La creación de transacciones y jobs es facilitada mediante Wizards creando:
En Eclipse una perspectiva es un contenedor visual de vistas y editores para desarrollar la
–
Proyecto Eclipse con estructura y configuración Maven funcionalidad deseada. El entorno de desarrollo incluirá una perspectiva, llamada
–
Esqueleto de código y sus pruebas Unitarias basadas en JUnit.
Perspectiva, que puede obtenerse de la siguiente manera:
Datos Básicos de la transacción
Datos de entrada y salida de la transacción
Datos básico del job
Instalación de Ide de desarrollo
05
INSTALACIÓN DE IDE DE DESARROLLO
Descomprimir el zip "IDE-Spring.APX.xxxxx.zip" en la ruta "C:\Archivos de Programa"
Crear la carpeta "DiscoD" en la unidad C Construir un archivo .bat por ejemplo "ParticionD.bat"
con la siguiente
información: subst D: C:\DiscoD
Arrastrar el archivo bat al menu inicio\inicio Verificar si alguna unidad de disco o cd ya tiene la letra D asignada. En
caso de que exista una unidad D ya asignada se debera proceder a cambiar el nombre
Ejecutar el archivo .bat el cual generara la unidad "D" Descomprimir el archivo "BBVA_ARQ_DESA.APX.xxxxx.zip" en la unidad D.
05
INSTALACIÓN DE IDE DE DESARROLLO
Darles permisos de escritura a las carpetas creadas anteriormente. Crear una carpeta "M2_REPO" en C:\Archivos de Programa\ Dentro de C:\Archivos de Programa\IDE-Spring esta un documento
IDE.bat, Eliminar el texto http://ldbad101.igrupobbva/updatesite/latest de la variable “UPDATE_SITE”, Debiendo quedar "set UPDATE_SITE="
Abrir
el archivo setting.xml del Maven (C:\Archivos de Programa\IDESpring\Herramientas\Maven-3.0.3\conf\)
Renombrar las siguientes lineas: * http://ldbad101.igrupobbva:8081/nexus/content/groups/global/ * http://ldbad101.igrupobbva:8081/nexus POR * http://150.100.48.55:8081/nexus/content/groups/Global/ * http://150.100.48.55:8081/nexus
Instalación de entorno de ejecución local
06
INSTALACIÓN DE ENTORNO DE EJECUCIÓN LOCAL
Con el objetivo de facilitar la depuración y ejecución en el puesto local del desarrollador se ha facilitado un despliegue reducido de la Arquitectura en JBOSS… Esta utilidad posibilita la ejecución de una prueba unitaria sencilla y la identificación de posibles errores de codificación. En este entorno las BBDD aplicativas, sus recursos JNDI, etc. no estarán configuradas, deberá ser responsabilidad del usuario su configuración (en caso de necesitarlas)
JBOSS en Local
36
06
IDE DE DESARROLLO DESPLIEGUE Los aplicativos y la Arquitectura hacen uso de la nueva nomenclatura corporativa (NORMA TC-002) para el despliegue de sus componentes. BUNDLOR APX (REPOSITORIO COMPONENTES)
La vista lógica de la Arquitectura online es la siguiente:
2
NODOS APX (EJECUCION TRANSACCIONES)
3
1 Servidor APX 1
Servidor APX 2
Servidor APX 3
Servidor APX 4
4
FileSystem Aplicativo Completo: Ficheros de configuración /app/{uuaa}/online/cfg/
Ficheros de configuración por entorno /app/{uuaa}/online/cfg/entorno
La Arquitectura estará formada por los siguientes sistemas: 1. 3. 4.
Nodos Runtime Online / Batch. Base de datos de Arquitectura/Aplicaciones/Seguridad. Repositorio de Transacciones.
Componentes Aplicación online/batch /app/{uuaa}/online/jar/module/trx. /app/{uuaa}/online/jar/modules/libs /app/{uuaa}/online/jar/module/reuse /app/{uuaa}/batch/jar/modules/jobs
Ficheros de logs
37
05
INSTALACIÓN DE ENTORNO DE EJECUCIÓN LOCAL
Descomprimir
el archivo "ENTORNO_LOCAL_APX_XXXX.rar" en la
unidad D.
Como se puede apreciar, se trata de los componentes mencionados en la introducción, es decir:
dirBaseRepositorio: Contiene los JAR de arquitectura y los directorios para cargar transacciones.
dirBaseEjecucion: Contiene la configuración necesaria para desplegar las arquitecturas en local. Así mismo, en ella se almacenan los diferentes ficheros de logs de la arquitectura.
logs: Contiene los ficheros de logs de la arquitectura. JBOSS: Servidor de aplicaciones configurado adecuadamente
para
responder en puerto 8101.
Jdk1.7.0_11: Entorno de desarrollo Java necesario para desplegar las arquitecturas.
startOnline:Script local.
de arranque de la arquitectura Online en entorno
05
INSTALACIÓN DE ENTORNO DE EJECUCIÓN LOCAL
startBatch:
Script de arranque de la arquitectura Batch en entorno
local.
startOnline&Batch:Script de arranque de la arquitectura Batch y Online en entorno local.
05
INSTALACIÓN DE ENTORNO DE EJECUCIÓN LOCAL
URLs de utilidad
URL para conexión al bundlor: http://localhost:8101/APX_Repository/ URL para conexión a la consola Félix de Online
http://localhost:8101/APX_Runtime_Online/system/console/bundles La clave y la contraseña para acceder a la consola Felix son respectivamente “admin” y “admin”.
URL para conexión a conector WebService PG
http://localhost:8101/APX_Runtime_Online /PGWebService?wsdl
URL para conexión a la consola Félix de Batch
http://localhost:8101/APX_Runtime_Batch/system/console/bundles La clave y la contraseña para acceder a la consola Felix son respectivamente “admin” y “admin”.
URL para conexión a la consola Batch-admin (para lanzamiento de Jobs)
http://localhost:8101/APX_Portal_Batch/batch/jobs
URL para conexión a consola de administración de JBOSS
http://localhost:8105/console
Pruebas de ejecución de entorno local
07
PRUEBAS DE EJECUCIÓN DE ENTORNO LOCAL
Probar las diversas urls, mencionadas en el punto anterior