WebSphere Message Broker, una tecnología de IBM que es relativamente nueva para muchos desarrolladores en el habla hispana, inclusive se puede verificar buscando MQ Broker en Bing o google, efectivamente se darán cuenta que no ha sido muy difundido.
WebSphere Message Broker es conocido en el entorno laboral como MQ Broker(cuando integra MQ) o únicamente Broker, la función de este es incrementar la agilidad del negocio y optimizar los costos haciendo la integración de aplicaciones fácil.
Para explicar exactamente que hace pondré el siguiente ejemplo:
Existe una empresa multinacional, donde el equipo de IT es tan grande que está dividido incluso en los lenguajes que estos utilizan para el desarrollo de software.
El grupo 1 utiliza .Net
El grupo 2 utiliza Java
El grupo 3 utiliza AS400 (RPG)
Con el paso del tiempo cada grupo ha desarrollado una cantidad inimaginable de servicios y sistemas en cada herramienta, pero llega el día en el que un nuevo gerente de ventas desee que en un determinado sistema que está programado en java se utilicen servicios o se realicen procesos que ya están funcionando correctamente en el grupo 1 y grupo 3, los cuales utilizan .Net y AS400 (RPG) respectivamente.
A este punto seria costoso desarrollar un proceso que ya esta funcional en RPG o en .Net para crear un MashUp en una aplicación por lo que la forma más sencilla seria realizar una integración entre los tres grupos por medio de Enterprise Services Bus (ESB), en este caso utilizaremos Broker.
Preguntas comunes,
Por medio de que nos comunicamos con otra aplicación?
Por medio de mensajes, es de ahí el nombre de WebSphere Message Broker, el broker maneja estos mensajes y garantiza que el mensaje sea entregado al solicitante, mientras este mensaje no sea consumido no se elimina.
Un ejemplo seria, si 500 clientes envían mensajes al Broker desde distintas aplicaciones estos serán respondidos directamente a cada cliente, y si dicho cliente no va a traer el mensaje de respuesta el Broker decide cuanto tiempo espera para poder tenerlo, el tiempo puede ser desde segundos hasta ilimitado lo que garantizaría que el mensaje será respondido al cliente aunque este lo solicite una semana después.
Que mas hace el broker para hacer posible la integración?
El broker además de distribuir los mensajes también los transforma, por ejemplo si un sistema desarrollado en java envía una petición en XML y la aplicación que debe procesar esta información es RPG, entonces el Broker puede transformar el XML en una trama que sea entendible para RPG y así RPG procesa la información, posteriormente envía una trama y el Broker nuevamente la transforma, solo que esta vez la transforma en XML para que el sistema en java pueda convertirla fácilmente en un objeto y utilizar dicha información.
*He tratado de explicar lo que es esta tecnología sin usar ningún termino técnico, posteriormente espero estar hablando mas sobre esta tecnología.



Muy bien explicado, no entendia para que se utiliza el message broker pero ahora ya me queda claro. Solo una duda, que tiene que ver Message Broker con websphere MQ? es la herramienta que de IBM que contiene el broker? Bueno, eso lo investigo despues. Saludos!
Me alegra que te haya servido el post.
Jose Luis el Websphere MQ es una herramienta de IBM que se encarga de administrar las colas que utiliza el WMB para recoger y dear mensajes XML.
Que tal, espero me puedan ayudar con est pequeño pero fundamental concepto. Cuando se dice que una aplicación utiliza un servicio de otra, a que se refiere exactamente? a caso se refiere a una funcionalidad del sistema?
Bueno, un servicio puede ser una consulta a una base de datos por ejemplo.
Pero imagínate que esa consulta actualmente la hace un sistema en .Net, pero tu necesitas los datos que retorna esa consulta desde una nueva funcionalidad para un sistema hecho en Java.
Entonces por ejemplo, a través de un web Service le mandas una petición al sistema en .net para que haga la consulta, y así tu obtienes en tu sistema en java la consulta de un cliente que está en una base de datos en otro servidor.
El punto aquí es el concepto de SOA, es de decir la reutilización de servicios.
Otro servicio puede ser por ejemplo, que tu envías un usuario y una contraseña, entonces tu solo envías estos dos parámetros sin saber absolutamente nada de la base de datos, y el servicio solo te retornara si el usuario es válido y que perfil tiene el usuario para poder darle acceso a las aplicaciones.
Y lo más importante es, si algo ya está hecho en un determinado lenguaje o sistema, para que hacerlo en otro sistema (por ejemplo un sistema para un celular)? Mejor reutilizas eso que necesitas, pero para poder reutilizar algo con mayor facilidad, tienes que orientar todo tu sistema a servicios, es decir que cuando necesitas añadir dinero a una cuenta bancaria, debes hacer un servicio donde solo debes enviar ciertos parámetros y te retornara si el ingreso de efectivo ha sido exitoso o no. De esta forma, los demás sistemas o programadores que desarrollen una nueva funcionalidad desde un sistema para un celular necesiten ingresar dinero en un sistema, solo necesitan utilizar ese servicio, y no tienen que saber ni siquiera el nombre de los campos o la tabla en la base de datos.
Gracias por visitar mi blog.
Hola muy buena explicación, solo me queda una duda, para consumir un servicio de Websphere Message Broker siempre se tiene que hacer a través de Websphere M.Q.?
Que tal Alberto, gracias por visitar mi blog.
Si lo defines como web service, lo puedes hacer por peticion tipo los servicios web de oracle sin necesidad de MQ. Broker es como un transformador de mensajes y redireccionador. rl Webpshere MQ es el manejador de colas de IBM, es decir que los podes tener independientes.
Hola benjamin…..
me gusto mucho… la informacion acerca de wmb… tu me puedes explicar la diferencia de wmb y wps
Gracias por la explicación sobre message broker. Si sabes más avisame. Recientemente estuve trabajando con una aplicación en SIEBEL y comunicándose con el AS/400 a travéz de java y MQ y me parece que es una buena solución para la comunicación entre los sistemas que no están en AS400. el problema que tuve fue que cuando me llegaba el mensaje desde siebel a la cola de datos el mensaje desaparecía bien rápido, por lo que tenìa que debuggear, el problema estaba en que el usuario que estaba en el otro lado es decir en siebel, él si podìa ver el mensaje sin debuggearlo, existe alguna herramienta que te ayude por el lado del AS400 sin tener que debuggear el mensaje recibido en xml?
En espera de tus comentarios. Muy Agradecido.
El Salvador.
La solucion para ver el mensaje es trabajar utilizando el comando del Iseries WRKLNK si el mensaje no se ve y se esta recibiendo un XML solo hay que buscarlo en el sistema integrado de archivos utilizando el comando mencionado.
Saludos y Gracias!
Saludos
Buena la explicacion , donde yo trabajo estan pensando en adquirilo por eso ando buscando opiniones del broker
alguien de aqui ya lo ah usado ???
Yo lo he usado, que exactamente necesitarias saber?
Hola Benjamin, es un gusto saludarte y darte las gracias por este post.
Estoy iniciándome en el mundo de Webpshere, y quisiera conocer donde puedo conseguir material para realizar ejercicios y como puedo armar un entorno para relizar las prácticas.
Mi fuerte en desarrollo es Delphi y C/C# y por cuestiones del trabajo ahora me toca entrarle a IBM Websphere Message Broker.
Saludos adelante con el trabajo de compartir tu conocimiento.
Buenos dìas, gracias por la explicaciòn. Me gustaría saber algo más: tengo una aplicación que se comunica por TCP (definiendo IP y Puerto)esta comunicacion es administrada por la primera capa de la aplicacion y que a su vez le envia los mensajes a traves de colas de datos (no el websphire MQ) a la segunda capa que gestiona la transaccion. La preguta es como uso el Message Broker como integrador? debo eliminar la primera capa? y hacer que de alguna manera los mensajes lleguen directamente a las dtaq de la segunda capa?
Agradesco mucho tu ayuda y/o aclaración.
Buen día,
Me parece muy clara la explicación acerca del funcionamiento del MB, sin embargo tngo una duda, yo veo al MB como un integrador, yo puedo tener un WS que se conecte con as/400 a través de MQ para resolver transacciones o el MB es el que hace la interface con el MB, o ambos escenarios son valido, que se deberia hacer mejor?
El WS esta en el AS/400, se requiere que se construya para recibir unas tramas y las envie a traves de MQ al AS/400, en el cual esta la aplicación que los procesará.
Agradezco tus comentarios.
Exacto, el MB es un integrador… pero tambien puedes darle mas poder, las nuevas versiones tienen para programar en java, base de datos entre otras cosas.
Ambos escenarios son validos, directamente entre al AS/400 y WS por medio de MQ, o AS/400, Broker y WS siempre pasando por el MQ.