Ruteo de Servicios Web con Oracle Service Bus (Parte 1)

Por Deiby Gómez Robles
Publicado en agosto 2013

Índice de contenidos

1. Ruteo de Servicios Web con Oracle Service Bus (Parte 1)
2. Ruteo de Servicios Web con Oracle Service Bus (Parte 2)
3. Ruteo de Servicios Web con Oracle Service Bus (Parte 3)
4. Ruteo de Servicios Web con Oracle Service Bus (Parte 4)

Reciban un cordial saludo estimados colegas de Oracle, como bien se sabe la cultura de servicios web día con día se está expandiendo, reforzado por el surgimiento de la Arquitectura Orientada a Servicios (SOA) y de la necesidad que tienen los clientes de comunicarse con socios y demás. Dentro del contexto de una arquitectura orientada a servicios se destaca el concepto "Bus de servicios", cuyo objetivo es proveer una capa de virtualización de servicios entre los proveedores y los clientes. Si hacemos referencia a la matriz de madurez que provee The Open Group (www.opengroup.org) llamada OSIMM (Open group Service Integration Maturity Model), el Bus de Servicios es el encargado de cumplir con el nivel de madurez llamado "Servicios Virtualizados", tal como lo vemos en la siguiente imagen:

Servicios Virtualizados

Es muy importante contar con esta capa de virtualización pues de esta manera los clientes no consumirán directamente los servicios expuestos por los proveedores, proporcionando agilidad para poder realizar transformaciones, orquestaciones, cambio en interfaces y desacoplamiento entre los servicios expuestos y/o los servicios consumidores.

Beneficios de utilizar OSB:

• Virtualización de Servicios
• Ruteos
• Orquestamiento
• Cambio en interfaces
• SLA's a nivel de servicios
• Balanceo entre varios servicios desplegados en distintos servidores
• Desacoplamiento entre los clientes y los proveedores
• Aseguramiento de Servicios
• Agilidad en los cambios de interfaces
• Migraciones virtuales de servicios
• Cambios ágiles en las interfaces sin afectar a los clientes

Los componentes elementales del bus de servicios son dos:

1. Business Service
2. Proxy Service

Business Service: Es el servicio final que expone un determinado proveedor.
Proxy Service: Es un servicio virtual que provee el bus de servicios y en el cual se puede realizar ruteos, orquestaciones y demás.

Flujo de datos:

Un cliente consume el servicio virtual expuesto por el bus de servicios, dentro de éste servicio virtual (Proxy Service) se realiza algunas transformaciones y/o ruteos, luego los datos transformados son enviados al servicio final (Business Service), éste procesa la información y nuevamente regresa el resultado al servicio virtual, para después ser entregado al cliente.

En la siguiente imagen se puede observar cómo interactúa el "Business Service" con el "Proxy Service":

Proxy Service

En esta oportunidad se utilizará una de las muchas funcionalidades que se pueden realizar dentro del bus de servicios, me refiero al ruteo de servicios web.

"Oracle Service Bus" provee varias funciones para poder llevar a cabo el ruteo, entre ellas están:

• Pipeline Pair
• Conditional Branch
• Operational Branch
• Error Handler

En esta primera parte del articulo únicamente se mostrará paso a paso cómo crear los elementos básicos ("Business Service" y "Proxy Service") antes de pasar al ruteo que será tratado en las próximas partes.

Ejemplo: Creación de "Business Service" y "Proxy Service"

Todos los ejemplos del articulo se realizaron con el siguiente ambiente:

Sistema Operativo: Oracle Linux 5.7 x86-64
WebLogic: 10.3.5
Oracle Service Bus: 11.1.1.5

El servicio de negocio que se está utilizando está hecho en Java y contiene las siguientes cuatro operaciones

• int suma (int num1, int num2)
• int resta (int num1, int num2)
• int multiplicacion (int num1, int num2)
• int division (int num1, int num2)

El WSDL del servicio está publicado en la siguiente ruta:

http://deibygomez:7001/OSB1-osb1-context-root/operacionesWSPort?wsdl

1. Realizar "Login" en el Bus de Servicios:

Login

2. Crear una sesión

Crear una sesión

3. Subir el WSDL del Servicio de Negocio al Bus de Servicios: El WSDL se puede subir mediante la función "Resources from URL" y también desde la opción "WSDL", en la primera opción basta con indicar el URL donde está el WSDL y en la segunda opción se necesita tener el archivo físico de WSDL el cual será cargado al Bus de Servicios.

WSDL del Servicio de Negocio al Bus de Servicios

4. Ingresar la ruta del archivo WSDL

ruta del archivo WSDL

5. Importar los artefactos

Importar los artefactos

6. Crear el "Business Service" desde el WSDL anteriormente creado:

Business Service

7. Seleccionar el archivo WSDl que se creó anteriormente

Business Service

8. Aprobar el archivo WSDL Seleccionado

Aprobar el archivo WSDL

9. En la siguiente imagen se puede observar que en el campo "Load Balancing Algorithm" es posible seleccionar varios tipos de balanceo de carga por medio de diferentes algoritmos. Los servicios web se registran en el campo "Endpoint URI".

Load Balancing Algorithm

Load Balancing Algorithm

Load Balancing Algorithm

Load Balancing Algorithm

Load Balancing Algorithm

10. Creación del "Proxy Service"

Proxy Service

11. Seleccionar el "Business Service"

Business Service

12. Dejar los valores por defecto

Business Service

Dejar los valores por defecto

Dejar los valores por defecto

Dejar los valores por defecto

Dejar los valores por defecto

13. Activar la sesion

Activar la sesion

Hasta aquí, los elementos "Business Service" y "Proxy Service" deberían de estar creados dejando la mayoría de las opciones con el valor por defecto. En el siguiente articulo trataré el elemento "Operational Branch" para orquestamiento dentro del Bus de Servicios el cual es muy útil cuando varias operaciones son incluidas dentro de un mismo servicio y se requieren diferentes transformaciones para los datos que recibe cada operación.

 


Deiby Gómez es un DBA, con experiencia en administración de dominios “WebLogic” e implementaciones de Arquitecturas Orientadas a Servicios (SOA). De forma frecuente es conferencista en diversos eventos Oracle en Guatemala, entre ellos OTN LAD Tour 2013 y otros. Ha brindado consultoría en implementaciones de SOA y Bases de datos en diversas empresas de su país de residencia ( Guatemala ), actualmente es Consultor en Datum S.A. de Guatemala. Deiby es OCP11g y Oracle SOA Implementation Certified Expert.