miércoles, 21 de octubre de 2015

'TEMPLATEs' & 'REUSE PROJECT' IN OSB 12c


Una característica muy resaltante e importante que brinda ‘Oracle Service Bus 12c’ (OSB), es la capacidad de definir y manejar Templates para diferentes tipos de proyectos OSB, en los cuales uno puede estandarizar dichos Templates en un SVN por ejemplo y compartirlos con el equipo de desarrollo para que realicen las implementaciones de los ‘Servicios Virtuales’ requeridas. Esto es importante ya que todo lo definido en los Templates se ajustan a reglas y directrices (estándares) del proyecto, esto significa eliminar la costumbre común de copiar y pegar de ciertas nodos del OSB (versión anterior 11g), y favorece la reutilización al 100%. OSB 12c cumple con tener un entorno de desarrollo mucho más integrado (vía Enterprise Manager) y con un más fácil modo de instalación como parte de todo la SOA Suite 12c.

En este artículo trataré de mostrar cómo utilizar esta nueva funcionalidad a base de Templates en OSB 12c, que tal como se comentó facilitará la construcción y reutilización de una gran cantidad de servicios a través de diferentes proyectos. Así mismo, comentaré son la reutilización de proyectos por referencia para manejar todo lo relacionado a recursos utilitarios de diferentes tipos a nivel general.

I. TEMPLATE:
El manejo de Templates se puede manejar de diferentes formas que son las siguientes:

A. En base a un proyecto existente:
En base a un proyecto existente, se puede generar un Template de la manera mostrada en la imagen, pero esto puede problemas y errores debido a las dependencias con Xquerys y archivos los cuales se tenga dependencia a nivel de rutas.


B. Definiendo Template desde cero:

El Template es creado desde cero desde la barra de menú:


Se define la ruta donde se almacenará el Template:


Dependiendo como se desee manejar el .WSDL a futuro, se define este punto. En mi caso recomiento manejarlo como WSDL SOAP (independiente de la versión), para que cuando se autogenere se exija el manejo del TopDown.



RECOMENDACIÓN:
Una recomendación que daría para el manejo de Templates, es de la siguiente manera:

Definir formalmente (estandarizar) Templates específicando, como se requieren manejar con relación a su implementación de los 'Servicios Virtuales' en sus organizaciones:

En mi caso he definido 3 posibles Templates:


- VirtualServiceAgnosticSOAP_Template.ptx:
Plantilla para AUTOGENERAR la estructura de un 'Servicio Virtual' con comunicacion AGNÓSTICA (Sin Transformación), el .WSDL debe ser reutilizado para la creación del 'Business Service' como para el 'Proxy Service'.


- VirtualServiceTransformSOAP_Template.ptx:
Plantilla para AUTOGENERAR la estructura de un 'Servicio Virtual' SIN comunicacion AGNÓSTICA (Con Transformación), el .WSDL requiere de modificaciones (campos extras) y/o modificación a nivel de Namespace. Debido a ellos los .WSDL's del 'Business Service' como para el 'Proxy Service', deben ser diferentes y america una transformación intermedia.


- VirtualServiceTransformGeneric_Template.ptx:
Plantilla para AUTOGENERAR la estructura de un 'Servicio Virtual' genérico, con espacio para para una implementación de tipo Secuencial.


- IMPORTANTE:
Los servicios en paralelos basados en 'Split-Join', NO pueden ser trabajados con Plantillas. En este caso deberán ser desarrollados como 'Servicios Virtuales' a medida.

El manejo recomendada a base de Templates, puede implementarse fácilmente tal como se muestra en la imágen, todos en un mismo proyecto y manejada la estructura, tal como se recomendó en un post anterior. Esto asegurará un correcto, rápido y estandarizado manejo con la organización.


II. REUSE PROJECT:
El manejo de reutilización de proyectos OSB, por referencia se maneja para casos como el que procederé a explicar.

Imaginemos que tal como se recomendó seguimos un estándar a nivel de estructura de directorios, y tenemos gran cantidad de 'Servicios Virtuales' que manejan de similar y repetida manera: (Xquery. Jar, Xsd, etc). Debido a este motivo es necesario definir y estandarizar también un mecanismo que permita reutilizar entre todos los proyectos lo mencionado.

Para ello es importante crear un estándar de proyecto OSB a modo utilitario donde se maneje todo lo explicado anteriormente. La propuesta de manejo sería la siguiente: 

Un directorio OSB en mi caso: UTILITY_OSB, que contenga en su interior los recursos:

  • ALERT: Alertas por nivel para ser referenciadas desde el interior de todos los proyectos. 
  • JAR: Librerías Java para ser referenciadas estáticamente para lo que son Log y Properties externos.
  • TEMPLATE: Plantillas base estándar para la generación de proyectos OSB por tipo.
  • XQUERY: Archivos de tipo XQuery para ser referenciadas desde el interior de todos los proyectos.
  • XSD: Archivos de tipo Xsd para el manejo de Auditoría, para ser incrustado a modo import/include en los .wsdl creados de todos los proyectos.

Este tipo de proyecto utilitario debe ser desplegado en el servidor (Cluster y Nodos), ya que la referencia será manejada a modo local, desarrollo como en los demás ambientes existentes en el servidor Weblogic.

No olvidar que las referencias todos los Templates estandarizados, deben estar totalmente documentados, para poder uno como desarrollador saber y tener conocimiento lo que ya está definido y falta agregar para implementar. Así mismo, todas las Templates están directamente relacionados con el tema de: Reuse Project, ya que sus recursos reutilizables referencian a lo existente en dicho proyecto utilitario OSB.  

 

Finalmente, se debe recordar tanto el manejo de: Templates, como el manejo de Reuse Project y el de Estructura de Directorios en OSB, es un tema también considerado como buenas prácticas en lo relacionado a estandarizar todo el proyecto, esto para llevar un mejor control de tal así como favorecer el desarrollo y mantenimiento respectivamente.


Para los interesados en los Templates propuestos, estos se pueden descargar desde aquí:



No hay comentarios: