Oracle Advanced Queuing y Oracle BRM

Servicios Oracle BRM

Compartir en

30/05/2011

Índice

En nuestro último artículo, Integración de Oracle BRM con las aplicaciones empresariales, explicamos una forma de implementar una integración de BRM a CRM. La solución sugerida consistía en construir un conector en el lado de BRM y hacer que se conectara a una aplicación de terceros. Sin embargo, también es posible adoptar un enfoque diferente utilizando Colas avanzadas de Oracle, que será el tema de este artículo.

Recientemente, hemos participado en un proyecto en el que el cliente quería una integración "segura" sin necesidad de que fuera en tiempo real; una solución casi en tiempo real sería suficiente, dijeron. Lo que entendemos por integración segura es disponer de una solución que no afecte a ninguna acción realizada, como la compra de un producto o la creación de una factura, por un fallo en el enlace de comunicación (o cualquier otro error) entre Oracle BRM y el software de terceros. Al implementar un conector dm personalizado para la integración de datos, cualquier operación completada sin éxito revertirá toda la acción. Aunque éste puede ser un comportamiento deseado, en este caso no lo era; por lo tanto, decidimos optar por Oracle Advanced Queuing. Hemos identificado que nuestro peor escenario aquí serían los problemas con la base de datos, pero también habría otros numerosos problemas; para empezar, el sistema BRM no funcionaría correctamente.
Otras ventajas que hemos identificado han sido la persistencia de los datos (los eventos se almacenan en la base de datos hasta que la aplicación consumidora está lista para procesar los mensajes en cola) y una tecnología Oracle AQ ya probada.

Hemos implantado con éxito estos cambios en Oracle BRM versión 7.3 y 7.3.1 con Oracle Database 10g (10.2.0.1.0 64bit) y 11g (11.2.0.1.0 64bit) con el componente Oracle Advanced Queuing (AQ).

El proceso de publicación de eventos de negocio de Oracle BRM mediante Oracle Advanced Queuing funciona puede verse en la siguiente figura:

Imagen 1: El proceso de sincronización de datos mediante Oracle Advanced Queuing.

Para desarrollar un proceso de sincronización de este tipo, es necesario dar algunos pasos preliminares. Entre ellos se incluyen:
1. Instalación de EAI Manager.
o Módulo EAI Connection Manager (CM) (incluye los op-codes requeridos por EAI),
o Gestor de datos EAI,
o Módulo externo generador de carga útil (EM) - también llamado servidor Java EAI o eai_js.
2. Una vez completada la instalación de EAI Manager, configure los valores en los archivos de configuración de CM y EAI DM (pin.conf), así como en el archivo de propiedades del generador de carga útil (Infranet.properties).
3. Configure la lista de notificación de eventos que desea publicar editando los archivos de configuración para la notificación de eventos (archivos $BRM_HOME/sys/data/config/pin_notify*) y fusiónelos antes de ejecutar la utilidad load_pin_notify.
4. Defina los eventos en el archivo de configuración del generador de carga útil EM (payloadconfig.xml).

Una vez completados los pasos preliminares, es hora de crear y configurar la cola avanzada de Oracle. Estos son los pasos (el tercer paso puede variar, ya que depende de su configuración):
1. Cree una cola:
pin_ifw_sync_oracle.pl create -l $USER/$PASS@$DB -q TEST_QUEUE -t TEST_QUEUE
2. Cola de prueba (paso opcional):
pin_ifw_sync_oracle.pl test -l $USER/$PASS@$DB -q TEST_QUEUE
3. Acceda a su base de datos como usuario SYSTEM y establezca los privilegios de concesión adecuados para su 't_user':
exec dbms_aqadm.grant_queue_privilege('ALL', 'PUSER.TEST_QUEUE', 't_user');
grant execute on puser.pin_event_ty to t_user;
grant execute on sys.dbms_aqin to t_user;

A continuación, necesitamos un productor de colas, una aplicación que va a poner en cola los eventos comerciales definidos anteriormente. Desarrollar un módulo productor es similar a crear su aplicación de conector personalizada (véase aquí.) Es necesario implementar un módulo personalizado (biblioteca) y definirlo en el archivo de configuración dm_eai en la entrada "plugin_name".
También hay una forma más sencilla de realizar esta tarea. Si ya ha instalado "Sincronización de cuentas DM", encontrará una implementación de un módulo productor de colas en el gestor de datos dm_ifw_sync. Sin embargo, si elige esta opción, se requieren algunas entradas adicionales en el archivo de configuración dm_eai.

Una vez que tenga un productor de colas en funcionamiento, siga adelante e invoque algunos de sus eventos empresariales para ver si se ponen en cola. Las colas pueden consultarse en la tabla definida en la creación de colas.

Por último, necesitará un consumidor de colas, una aplicación que leerá y pondrá en cola sus mensajes en cola. Existen varias interfaces programáticas disponibles para acceder a Oracle Streams AQ en los siguientes lenguajes de programación: Java (JMS), PL/SQL, C (OCI), Visual Basic (OO4O), AQ XML Servlet (IDAP).
Con la implementación de su cliente personalizado, tendrá un control total sobre la velocidad, el momento y la cantidad de mensajes que se van a procesar. Por ejemplo, durante las horas valle, podrá procesar más datos que durante las horas punta.

Esperamos haberle dado algunas indicaciones válidas sobre cómo llevar a cabo el proceso de integración/sincronización entre Oracle BRM y los sistemas y/o aplicaciones de terceros.

Imagen de Aleš
Aleš
Ales Pristovnik es el director general de Tridens Technology, una empresa eslovena especializada en el desarrollo de soluciones de software para la industria del automóvil. Tiene una larga trayectoria en el sector de las TI, ya que ha trabajado para varias grandes empresas en el pasado. Le apasionan la tecnología y la innovación, y su objetivo actual es desarrollar soluciones que mejoren la seguridad y la eficacia de la industria automovilística. Posee una sólida formación en liderazgo y gestión, y se ha comprometido a impulsar su empresa en un sector tecnológico en constante evolución.

Visite noticias en su bandeja de entrada


    0 0 vota
    Article Rating
    Suscríbase a
    Notificar a
    invitado

    0 Comments
    El más antiguo
    Más reciente Más votados
    Feedbacks en línea
    Ver todos los comentarios