Nel nostro ultimo articolo, Integrazione dell'Oracle BRM con le applicazioni aziendaliAbbiamo spiegato un modo per implementare un'integrazione BRM-CRM. La soluzione suggerita era quella di costruire un connettore sul lato BRM e farlo collegare a un'applicazione di terze parti. Tuttavia, è anche possibile adottare un approccio diverso utilizzando Oracle Accodamento avanzatoche sarà oggetto di questo articolo.
Recentemente, siamo stati coinvolti in un progetto in cui il cliente desiderava un'integrazione "sicura", senza la necessità di essere in tempo reale; una soluzione quasi in tempo reale sarebbe stata sufficiente, hanno detto. Ciò che intendiamo per integrazione sicura è avere una soluzione che non influisca su nessuna azione eseguita, come l'acquisto di un prodotto o la creazione di una fattura, a causa di un mancato collegamento di comunicazione (o di qualsiasi altro errore) tra Oracle BRM e il software di terze parti. Quando si implementa un connettore dm personalizzato per l'integrazione dei dati, qualsiasi operazione completata senza successo comporta il rollback dell'intera azione. Sebbene questo possa essere un comportamento desiderato, in questo caso non lo era; pertanto, abbiamo deciso di scegliere Oracle Advanced Queuing. Abbiamo identificato che il nostro scenario peggiore sarebbe stato quello dei problemi del database, ma ci sarebbero stati anche numerosi altri problemi; per cominciare, il sistema BRM non avrebbe funzionato correttamente.
Altri vantaggi che abbiamo identificato sono stati la persistenza dei dati (gli eventi vengono memorizzati nel database fino a quando l'applicazione consumer non è pronta a elaborare i messaggi in coda) e una tecnologia Oracle AQ già collaudata.
Abbiamo distribuito con successo queste modifiche a Oracle BRM versione 7.3 e 7.3.1 con Oracle Database 10g (10.2.0.1.0 64bit) e 11g (11.2.0.1.0 64bit) con il componente Oracle Advanced Queuing (AQ).
Il processo di pubblicazione degli eventi aziendali Oracle BRM utilizzando le funzioni di accodamento avanzato Oracle è visibile nella figura seguente:
Per sviluppare un tale processo di sincronizzazione, è necessario compiere alcuni passi preliminari. Questi includono:
1. Installazione di EAI Manager.
o Modulo EAI Connection Manager (CM) (include i codici op richiesti da EAI),
o EAI Data Manager,
o Modulo esterno del generatore di payload (EM) - chiamato anche EAI Java Server o eai_js.
2. Dopo aver completato l'installazione di EAI Manager, configuri i valori nei file di configurazione CM e EAI DM (pin.conf), nonché il file delle proprietà del Generatore di Payload (Infranet.properties).
Configuri l'elenco di notifica degli eventi che desidera pubblicare modificando i file di configurazione per la notifica degli eventi (file $BRM_HOME/sys/data/config/pin_notify*) e li unisca prima di eseguire l'utilità load_pin_notify.
4. Definisca gli eventi aziendali nel file di configurazione del Payload Generator EM (payloadconfig.xml).
Dopo aver completato le fasi preliminari, è il momento di creare e configurare la coda avanzata Oracle. Ecco i passaggi (il terzo passaggio può variare, in quanto dipende dalla sua configurazione):
1. Creare la coda:
pin_ifw_sync_oracle.pl create -l $USER/$PASS@$DB -q TEST_QUEUE -t TEST_QUEUE
2. Coda di prova (fase opzionale):
pin_ifw_sync_oracle.pl test -l $USER/$PASS@$DB -q TEST_QUEUE
3. Acceda al suo database come utente SYSTEM e imposti i privilegi di concessione appropriati per il suo 't_user':
exec dbms_aqadm.grant_queue_privilege('ALL', 'PUSER.TEST_QUEUE', 't_user');
concedere l'esecuzione su puser.pin_event_ty a t_user;
concedere l'esecuzione su sys.dbms_aqin a t_user;
Successivamente, abbiamo bisogno di un produttore di code, un'applicazione che metterà in coda gli eventi aziendali definiti in precedenza. Lo sviluppo di un modulo produttore è simile alla costruzione dell'applicazione connettore personalizzata (vedere qui). È necessario implementare un modulo personalizzato (libreria) e definirlo nel file di configurazione dm_eai sotto la voce "plugin_name".
Esiste anche un modo più semplice per svolgere questo compito. Se ha già installato "Account Synchronization DM", troverà un'implementazione di un modulo produttore di code sotto dm_ifw_sync data manager. Tuttavia, se sceglie questa opzione, sono necessarie alcune voci aggiuntive nel file di configurazione dm_eai.
Dopo aver creato un produttore di code funzionante, può invocare alcuni eventi aziendali per vedere se vengono messi in coda. Le code possono essere interrogate nella tabella definita al momento della creazione della coda.
Infine, avrà bisogno di un consumatore di coda, un'applicazione che leggerà e decodificherà i messaggi in coda. Sono disponibili diverse interfacce programmatiche per accedere a Oracle Streams AQ nei seguenti linguaggi di programmazione: Java (JMS), PL/SQL, C (OCI), Visual Basic (OO4O), AQ XML Servlet (IDAP).
Con l'implementazione del suo client personalizzato, avrà il pieno controllo della velocità, del momento e del numero di messaggi da elaborare. Ad esempio, durante le ore non di punta, può elaborare più dati rispetto alle ore di punta.
Speriamo di averle dato alcune indicazioni valide su come affrontare il processo di integrazione/sincronizzazione tra Oracle BRM e sistemi e/o applicazioni di terze parti.