W naszym ostatnim artykule, Integracja Oracle BRM z aplikacjami korporacyjnymi, Wyjaśniliśmy Państwu jeden ze sposobów wdrożenia integracji BRM z CRM. Sugerowanym rozwiązaniem było zbudowanie konektora po stronie BRM i połączenie go z aplikacją innej firmy. Możliwe jest jednak również przyjęcie innego podejścia poprzez wykorzystanie Oracle Advanced Queuing, który będzie przedmiotem niniejszego artykułu.
Niedawno braliśmy udział w projekcie, w którym klient chciał “bezpiecznej” integracji bez konieczności działania w czasie rzeczywistym; według nich wystarczyłoby rozwiązanie działające w czasie zbliżonym do rzeczywistego. To, co rozumiemy przez bezpieczną integrację, to posiadanie rozwiązania, które nie wpłynie na żadną wykonaną czynność, taką jak zakup produktu lub utworzenie rachunku, przez niedziałające łącze komunikacyjne (lub jakikolwiek inny błąd) między Oracle BRM a oprogramowaniem innej firmy. Podczas wdrażania niestandardowego konektora dm do integracji danych, każda nieudana operacja spowoduje cofnięcie całej akcji. Chociaż może to być pożądane zachowanie, w tym przypadku tak nie było; dlatego zdecydowaliśmy się na Oracle Advanced Queuing. Zidentyfikowaliśmy, że naszym najgorszym scenariuszem byłyby problemy z bazą danych, ale wystąpiłoby również wiele innych problemów; po pierwsze, system BRM nie działałby prawidłowo.
Inne zalety, które zidentyfikowaliśmy, to trwałość danych (zdarzenia są przechowywane w bazie danych, dopóki aplikacja konsumencka nie będzie gotowa do przetworzenia wiadomości w kolejce) i już sprawdzona technologia Oracle AQ.
Pomyślnie wdrożyliśmy te zmiany w Oracle BRM w wersji 7.3 i 7.3.1 z Oracle Database 10g (10.2.0.1.0 64bit) i 11g (11.2.0.1.0 64bit) z komponentem Oracle Advanced Queuing (AQ).
Proces publikowania zdarzeń biznesowych Oracle BRM przy użyciu Oracle Advanced Queuing można zobaczyć na poniższym rysunku:
Aby opracować taki proces synchronizacji, konieczne jest podjęcie pewnych kroków wstępnych. Obejmują one:
1. Instalacja EAI Manager.
o Moduł EAI Connection Manager (CM) (zawiera kody operacyjne wymagane przez EAI),
o EAI Data Manager,
o Payload Generator External Module (EM) - zwany również EAI Java Server lub eai_js.
2. Po zakończeniu instalacji EAI Manager proszę skonfigurować wartości w plikach konfiguracyjnych CM i EAI DM (pin.conf), a także w pliku właściwości Payload Generator (Infranet.properties).
3. Proszę skonfigurować listę powiadomień o zdarzeniach, którą chcą Państwo opublikować, edytując pliki konfiguracyjne powiadomień o zdarzeniach (pliki $BRM_HOME/sys/data/config/pin_notify*) i scalić je przed uruchomieniem narzędzia load_pin_notify.
4. Proszę zdefiniować zdarzenia biznesowe w pliku konfiguracyjnym Payload Generator EM (payloadconfig.xml).
Po wykonaniu kroków wstępnych nadszedł czas na utworzenie i skonfigurowanie zaawansowanej kolejki Oracle. Oto kroki (trzeci krok może się różnić, ponieważ zależy od konfiguracji):
1. Proszę utworzyć kolejkę:
pin_ifw_sync_oracle.pl create -l $USER/$PASS@$DB -q TEST_QUEUE -t TEST_QUEUE
2. Proszę przetestować kolejkę (krok opcjonalny):
pin_ifw_sync_oracle.pl test -l $USER/$PASS@$DB -q TEST_QUEUE
3. Proszę zalogować się do bazy danych jako użytkownik SYSTEM i ustawić odpowiednie uprawnienia dla ‘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;
Następnie potrzebujemy producenta kolejki, aplikacji, która będzie kolejkować zdefiniowane wcześniej zdarzenia biznesowe. Tworzenie modułu producenta jest podobne do tworzenia niestandardowej aplikacji konektora (patrz tutaj). Konieczne jest zaimplementowanie niestandardowego modułu (biblioteki) i zdefiniowanie go w pliku konfiguracyjnym dm_eai pod wpisem “plugin_name”.
Istnieje również prostszy sposób na wykonanie tego zadania. Jeśli zainstalowali już Państwo “Account Synchronization DM”, to w menedżerze danych dm_ifw_sync znajdą Państwo implementację modułu producenta kolejki. Jeśli jednak wybiorą Państwo tę opcję, wymagane są pewne dodatkowe wpisy w pliku konfiguracyjnym dm_eai.
Po utworzeniu działającego producenta kolejek, proszę wywołać niektóre zdarzenia biznesowe, aby sprawdzić, czy zostaną one umieszczone w kolejce. Kolejki można sprawdzać w tabeli zdefiniowanej podczas tworzenia kolejki.
Wreszcie, potrzebny będzie konsument kolejki, aplikacja, która będzie odczytywać i usuwać wiadomości z kolejki. Dostępnych jest kilka interfejsów programistycznych umożliwiających dostęp do Oracle Streams AQ w następujących językach programowania: Java (JMS), PL/SQL, C (OCI), Visual Basic (OO4O), AQ XML Servlet (IDAP).
Dzięki niestandardowej implementacji klienta będą Państwo mieli pełną kontrolę nad tym, jak szybko, kiedy i ile wiadomości będzie przetwarzanych. Na przykład poza godzinami szczytu mogą Państwo przetwarzać więcej danych niż w godzinach szczytu.
Mamy nadzieję, że daliśmy Państwu kilka ważnych wskazówek dotyczących procesu integracji/synchronizacji między Oracle BRM a systemami i/lub aplikacjami innych firm.





