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

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)

En el artículo anterior se trató el procedimiento para la creación de los "Business Service" y los "Proxy Service", dejando la mayoría de las opciones por defecto. También se vio que existían varios algoritmos de balanceo de servicios web que mantienen una lógica de negocio idéntica pero que están desplegados en diferentes servidores. El objetivo de crear "Business Service" y "Proxy Service" es lograr el desacoplamiento entre los clientes y los proveedores, de esta manera, cuando un cambio ocurra en el servicio del proveedor, será posible hacer transformaciones y/o ruteos para que esos cambios sean en su mayoría transparentes a los clientes. Un ejemplo clásico de este concepto es la "migración virtual". Imaginen que una empresa expone 50 servicios web y estos están creados en versión "10g", los clientes que dependen de estos servicios web son aproximadamente 500, esto implica que un cambio que se necesite realizar en los servicios del proveedor afectará a todos los servicios web de los clientes y necesitaremos "obligar" a los clientes a que se adapten a estos cambios, y bien se sabe que esto no es agradable para ellos, implica gastos en desarrollo, tiempo, etc.

Con "Oracle Service Bus" se puede crear un desacoplamiento entre el proveedor y el cliente, de tal manera que el proveedor pueda migrar sus servicios web a "11g" y los clientes no serán afectados de ninguna manera, es decir, la migración será totalmente transparente a los clientes. ¿Cómo logramos esto? pues simple, creando "Business Services" de los servicios web migrados a 11g, "Proxy Services" con interfaz 10g y por ultimo un pequeño ruteo entre el "Proxy Service" y el o los "Business Service". El proveedor podrá migrar sus servicios a una versión más reciente, en este caso es 11g, y los clientes seguirán viendo una interfaz de servicios en versión 10g, ¿Muy útil verdad?.

En éste articulo compartiré con ustedes "los primeros pasos" dentro del amplio campo que es El Ruteo de Servicios Web con Oracle Service Bus. La funcionalidad que se tratará en esta parte del artículo será "Operational Branch" la cual permite crear una rama de ruteo para cada operación que contenga un determinado Servicio Web.

Ejemplo: Creación de un "Operational Branch"

1. Realizar "Login" en el OSB

Login

2. Crear una sesión

Proxy Service

3. Seleccionar el "Proxy Service" creado en la Parte 1 del artículo

icono

4. Dar clic en el icono

5. Eliminar el actual Ruteo que contiene el "Proxy Service"

Proxy Service

6. Agregar un "Operational Branch"

Operational Branch

7. Editar el "Operational Branch"

Operational Branch

8. Agregar una rama de ruteo para cada operación que tenga el Servicio Web

Servicio Web

Servicio Web

Servicio Web

9. Editar la rama de ruteo "multiplicación"

multiplicación

10. Agregar un ruteo

Agregar un ruteo

11. Editar el ruteo:

Editar el ruteo

12. Agregar un ruteo estático

Agregar un ruteo estático

13. Seleccionar el Servicio de Negocio "operacionesWS"

operacionesWS

14. Elegir la operación "multiplicación" del servicio "operacionesWS"

operacionesWS

15. Regresar a la Raíz del "Proxy Service":

Proxy Service

16. Repetir los pasos del 9 al 15 con las operaciones "resta", "suma" y "división" respectivamente.

17. Guardar todos los cambios

18. Activar la sesión:

Activar la sesión

19. Una vez creado los ruteos para cada una de las operaciones definidas en el "Proxy Service", se procederá a realizar una prueba, de esta manera se comprobará que los ruteos hayan quedado correctos.

Proxy Service

20. Seleccionar cada una de las operaciones e ingresar datos para comprobar los ruteos

ingresar datos para comprobar los ruteos

21. Clic en "Execute"

22. Validar el resultado:

Validar el resultado

23. Repetir los pasos 19 al 22 para cada una de las operaciones restantes.

En la próxima parte de este artículo se tratará la función "Conditional Branch", la cual permite en base a una serie de decisiones realizar ruteos hacia diferentes servicios Web, esta función trabaja de una manera muy parecida a "if-else-then", por lo que provee cierto nivel de dinamismo.

 


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.