Curso BKS Preensamblados V01

Portada

El siguiente documento supone la base escrita del curso de formación sobre la creación y uso de preensamblados en Banksphere.

Resumen de Versiones
====Índice

¿Qué es un preensamblado?
El preensamblado ha de entenderse como un paquete que incluye toda la funcionalidad de un desarrollo que pudiera ser susceptible de ser reutilizada por otros, el cual, no incluirá obligatoriamente todos los módulos de la aplicación.

También es posible reorganizar una aplicación compleja en paquetes binarios modulares más pequeños, persiguiendo la estructuración, y con ello su mantenibilidad, de todo nuestro proyecto para simplificar en gran medida un complejo ensamblado final.

Los proyectos de preensamblado permiten a las aplicaciones empaquetar toda la funcionalidad que quieren exponer al exterior. Los clientes de estos preensamblados los van a reutilizar, en lugar de incluir todas las aplicaciones que están consumiendo, minimizando así los costes en tiempo de reconstrucción y errores en el workspace local.

En un preensamblado, podremos encontrar y reutilizar:


 * Interfaces de Fachada con las que acceder a lógica de negocio.
 * ContextBeans pertenecientes a fachadas que son implementadas en los módulos de negocio.
 * Excepciones Funcionales pertenecientes a las fachadas lanzadas en las implementaciones de los módulos de negocio.
 * Aplicaciones Lógicas de Presentación.
 * Operaciones de Presentación Públicas.

Se distinguen dos tipos de preensamblados, uno de configuración o fuente, y su generado, el preensamblado binario. El preensamblado binario es aquel que se encuentra en disposición de ser reutilizado.

Preensamblado Fuente: Proyecto de configuración
El proyecto de preensamblado fuente tiene como cometido el poder configurar nuestro futuro preensamblado binario.

Un preensamblado fuente se puede componer de:


 * N Módulos de Lógica de Negocio
 * N Aplicaciones Lógicas
 * N Otros Preensamblados Binarios

Un preensamblado se debe entender como un paquete de aplicaciones lógicas y/o módulos de lógica de negocio.

Dicho paquete es como un ensamblado típico y contendrá todos los elementos habituales. Mostrará como puntos de consumo (acceso) y/o exposición:


 * Para los módulos de Lógica de Negocio sus fachadas de acceso (expuestas)
 * Para las Aplicaciones Lógicas de Presentación las fachadas invocadas (consumidas).

Creación de un preensamblado fuente
En BKS contamos con el editor de preensamblados para su creación y parametrización.

Para crear un Proyecto de Preensamblado Fuente tenemos varias opciones:


 * Desde el Navegador Vega, botón derecho, Nuevo > Otro..., siga la ruta Vega > Proyectos > Proyecto de Preensamblado, ó
 * Desde la barra de menú seleccione Archivo > Nuevo > Otro... y elija Vega > Proyectos > Proyecto de Preensamblado.



El siguiente paso será asignar un nombre y una descripción opcional al preensamblado.



Editor de diagrama de preensamblados
En este editor, se incluirán los recursos de aplicaciones susceptibles de ser reutilizados por otros desarrollos, así como referencias a otros preensamblados binarios anteriormente creados.



Como se puede apreciar en la imagen hay tres opciones de adición, una de borrada y la ultima de generación de ensamblado binario:


 * Añadir un módulo de Lógica de Negocio: Contendrá Aplicaciones Lógicas con Operaciones Internas; Componentes Java, SQL, AAL; etc.
 * Añadir Aplicaciones Lógicas: Contendrá Aplicaciones Lógicas de Presentación que contienen Operaciones de Presentación las cuales invocaran al negocio mediante las interfaces de fachada.
 * Añadir Preensamblados Binarios anteriormente construidos.
 * Borrar alguno de los elementos añadidos.
 * Crear proyecto de preensamblado binario.

El proceso de adición de proyectos es muy simple e intuitivo, una vez configurado nuestro Preensamblado Fuente, debemos resolver las dependencias y referencias con el resto de elementos.

Para ello habrá que situarse en la pestaña de referencias.

Referencias
En la vista de referencias tenemos una foto visual de las fachadas expuestas por el preensamblado, además de las dependencias entre el resto de elementos: módulos de negocio (proyectos de LN), aplicaciones lógicas (ALP) y otros preensamblados binarios.



Las referencias entre aplicaciones lógicas y módulos de negocio que vamos incluyendo en la configuración de nuestro preensamblado se van creando de manera automática.

Para crear o modificar asociaciones podemos utilizar el menú contextual, y seleccionar el modo "creación de asociaciones", o hacer clic derecho y seleccionar la opción adecuada.

Configuración y parametrización
Cuando construimos un preensamblado fuente, podremos configurar algunas parametrizaciones propias de las entidades loggeables y parámetros de inicialización de los componentes de los módulos de lógica de negocio, que pasarán al posterior generado preensamblado binario.

Entran aquí las parametrizaciones varias de los componentes SQL.



Generación de Preensamblado binario
Accediendo de nuevo a la pestaña de Principal bastaría con pulsar en el botón de "Crear proyecto de ensamblado binario".

El editor de preensamblados comprueba, avisa y ayuda al desarrollador:


 * Cuando algún módulo de la lógica de negocio ya contiene alguna de las aplicaciones lógicas seleccionadas o a la inversa.
 * Cuando vamos seleccionando módulos de negocio a añadir, dichos módulos van desapareciendo de la lista de los posibles.
 * Cuando al intentar generar un preensamblado binario desde un preensamblado fuente con errores.



Una vez generado el preensamblado binario, quedará disponible para poder ser utilizado en la construcción de otro preensamblado fuente o en la de un ensamblado, así como dejando accesibles los principales elementos vega:


 * ContextBean
 * Excepciones Funcionales
 * Operaciones de Presentación Públicas

El preensamblado binario contiene todo lo necesario para su ejecución, en caso de que tenga dependencias de otro preensamblado binario, este último podrá encontrarse en un repositorio externo.

Dentro del proyecto de preensamblado existe un fichero de dependencias al repositorio (psf), que nos sirve de ayuda para poder descargarnos aquellos preensamblados binarios.



Reutilización de un Preensamblado Binario
Una vez creado o incorporado a nuestro desarrollo un preensamblado binario, podemos reutilizar su Lógica de Negocio o sus Aplicaciones Lógicas de Presentación, en diversos puntos de la construcción de nuestro proyecto.

Para poder reutilizar los elementos de un preensamblado binario, tendremos que actualizar el PathXML del proyecto cliente existente en nuestro workspace para que así queden los elementos vega accesibles.

Niveles de reutilización:


 * Nivel de Proyecto de Lógica de Presentación: podemos reutilizar las fachadas existentes en un preensamblado binario, al igual que acceder a los ContextBean, Excepciones Funcionales y Fachadas incluidas en el mismo. Podremos igualmente invocar a las Operaciones de Presentación Públicas incluidas.
 * Nivel de Aplicación Lógica de Negocio: podemos seleccionar las dependencias de fachadas existentes en el binario, al igual que acceder a los ContextBean, Excepciones Funcionales y Fachadas incluidas en el mismo.
 * Nivel de Escenario: podemos incluir las Aplicaciones Lógicas de Presentación existentes en el binario
 * Nivel de Ensamblado: podemos incluir las Aplicaciones de Lógica de Presentación con sus llamadas a las Fachadas accesibles de los módulos de la lógica de Negocio.

¿Qué elementos no son reutilizables?


 * Operaciones de Presentación Privadas.
 * Operaciones Internas.
 * Páginas JSP y BHTCs compilados de la aplicación.
 * Acciones Java.
 * Tablas de parámetros.
 * Configuraciones.

Visibilidad de un preensamblado binario
En un preensamblado binario podemos visualizar las Aplicaciones Lógicas de Presentación y sus elementos, Operaciones de Presentación, flujos, presentaciones, elementos de contexto. Para ello se debe utilizar la vista vega.



Igualmente, posicionados también desde vista vega se podrán ver los diferentes elementos de la lógica de negocio, podremos navegar y consultar las fachadas expuestas y sus aplicaciones lógicas.



Hay que tener en cuenta que en el preensamblado binario toda interactividad queda bloqueada, siendo únicamente un recorrido visual de consulta. Para efectuar cambios habría que recurrir al preensamblado fuente y volver a generarlo.

Dependencias de Preensamblados
En la definición de preensamblado del inicio del documento se comento de pasada que dentro se podía incluir fichero de dependencias de los preensamblados binarios necesarios de segundo o inferior nivel.



Realmente se trata simplemente de un psf incluido de serie en el preensamblado, bajo la raíz del proyecto. El nombre es arbitrario, pero seria recomendable que siguiese la misma nomenclatura que el resto de XMLs de la carpeta: NombrePreensamblado_dependencies.psf



Este psf es necesario porque tanto a la hora de construir un preensamblado fuente, como a la hora de definir un ensamblado, que reutilicen preensamblados binarios, es necesario que todos los preensamblados binarios se hayan descargado del repositorio y se localicen en nuestro espacio de trabajo.

Existe un problema conocido con el uso de preensamblados cuando un mismo binario sea reutilizado desde diferentes módulos, pero esto se tocara en un apéndice de este documento, al ser un caso peculiar.

Integración de preensamblados
Una vez generado o descargado del CVS un preensamblado binario solo resta integrarlo en el ensamblado de la aplicación que nos interese.

Esta acción es similar a la de añadir cualquier otro tipo de elemento en el editor de ensamblados, sencillamente se selecciona la caja de Preensamblado Binario.



En esta vista solo se podrá acceder a los preensamblados binarios de primer nivel (ver dependencias de preensamblados), es decir, aquellos que son reutilizados por los preensamblados binarios de primer nivel no se mostrarán visualmente, pero si existirán todas las referencias y dependencias necesarias para su correcto funcionamiento, de forma equivalente a introducir un nuevo modulo de Lógica de negocio.

Apéndice: Problemas con reutilización de preensamblados desde varios módulos
Existe un caso puntual más complejo en la integración de preensamblados al proyecto en desarrollo, concretamente cuando se da el caso de que un mismo preensamblado binario sea reutilizado desde diferentes módulos.

Es decir, se quiere utilizar un preensamblado binario en la aplicación, ya sea directamente o reutilizando desde otro preensamblado binario disponible.

La política de compatibilidad es la misma que se aplica con el resto de versionados en BKS, es decir que mantenga constante la versión:


 * Compatible - V01RXXFXX
 * No compatible - V02RYYFYY

Como se comento anteriormente, todos los preensamblados utilizados, bien directa o indirectamente, deben residir en nuestro espacio de trabajo, pero a la hora de construir el ensamblado sólo será necesario seleccionar los preensamblados binarios de los que dependo directamente.

Es aquí donde entra la compatibilidad, el preensamblado seleccionado tendrá que ser compatible con todas sus dependencias (automáticamente se escoge el de mayor Release) y en caso de no ser compatible, no se podrá construir el ensamblado.

El preensamblado binario no es versionable directamente, toma la versión del preensamblado fuente.

Necesidades y duración del Curso
Necesidades materiales del curso:


 * Una maquina para el instructor
 * Proyector

Publico potencial:


 * Desarrollo Banksphere

Duración estimada del curso:


 * 2 horas imparticion + 1 hora demo