지난 글에서 Oracle BRM를 엔터프라이즈 애플리케이션과 통합에서 BRM과 CRM의 통합을 구현하는 한 가지 방법을 설명했습니다. 제안된 솔루션은 BRM 측에 커넥터를 구축하여 타사 애플리케이션에 연결하도록 하는 것이었습니다. 그러나 다음을 사용하여 다른 접근 방식을 취할 수도 있습니다. Oracle 고급 대기열이 글의 주제가 될 것입니다.
최근 우리는 고객이 실시간이 아니어도 '안전한' 통합을 원하는 프로젝트에 참여했는데, 고객은 실시간에 가까운 솔루션이면 충분하다고 말했습니다. 안전한 통합이란 Oracle BRM와 타사 소프트웨어 간의 통신 링크 실패(또는 기타 오류)로 인해 제품 구매나 청구서 작성 등 수행되는 작업에 영향을 미치지 않는 솔루션을 의미합니다. 데이터 통합을 위해 사용자 지정 DM 커넥터를 구현할 때 성공적으로 완료되지 않은 작업은 전체 작업을 롤백합니다. 이는 바람직한 동작일 수 있지만, 이 경우에는 그렇지 않았기 때문에 Oracle 고급 큐잉을 사용하기로 결정했습니다. 최악의 시나리오는 데이터베이스 문제이지만, 다른 여러 가지 문제도 발생할 수 있다는 것을 확인했습니다. 우선, BRM 시스템이 제대로 작동하지 않을 것입니다.
데이터 지속성(소비자 애플리케이션이 대기열에 있는 메시지를 처리할 준비가 될 때까지 이벤트가 데이터베이스에 저장됨)과 이미 입증된 Oracle AQ 기술도 장점으로 꼽혔습니다.
이러한 변경 사항은 Oracle BRM 데이터베이스 10g(10.2.0.1.0 64비트) 및 11g(11.2.0.1.0 64비트)와 Oracle 고급 큐잉(AQ) 구성 요소를 사용하여 Oracle 버전 7.3 및 7.3.1에 성공적으로 배포했습니다.
Oracle BRM 고급 대기열 작업을 사용하여 Oracle 비즈니스 이벤트를 게시하는 과정은 아래 그림에서 확인할 수 있습니다:
이러한 동기화 프로세스를 개발하려면 몇 가지 예비 단계를 수행해야 합니다. 여기에는 다음이 포함됩니다:
1. EAI 관리자 설치.
o EAI 연결 관리자(CM) 모듈(EAI에 필요한 연산 코드 포함),
o EAI 데이터 관리자,
o 페이로드 생성기 외부 모듈(EM) - EAI 자바 서버 또는 eai_js라고도 합니다.
2. 2. EAI 매니저 설치를 완료한 후 CM 및 EAI DM 구성 파일(pin.conf)과 페이로드 생성기 속성 파일(Infranet.properties)에서 값을 구성합니다.
3. 이벤트 알림을 위한 구성 파일($BRM_HOME/sys/data/config/pin_notify* 파일)을 편집하여 게시할 이벤트 알림 목록을 구성한 후 load_pin_notify 유틸리티를 실행하기 전에 병합합니다.
4. 페이로드 생성기 EM 구성 파일(payloadconfig.xml)에서 비즈니스 이벤트를 정의합니다.
예비 단계를 완료한 후에는 Oracle 고급 대기열을 생성하고 구성할 차례입니다. 단계는 다음과 같습니다(세 번째 단계는 설정에 따라 다를 수 있음):
1. 대기열을 만듭니다:
pin_ifw_sync_oracle.pl create -l $USER/$PASS@$DB -q TEST_QUEUE -t TEST_QUEUE
2. 2. 테스트 대기열(선택적 단계):
pin_ifw_sync_oracle.pl test -l $USER/$PASS@$DB -q TEST_QUEUE
3. 시스템 사용자로 데이터베이스에 로그인하고 't_user'에 대한 적절한 부여 권한을 설정합니다:
exec dbms_aqadm.grant_queue_privilege('ALL', 'PUSER.TEST_QUEUE', 't_user');
t_user에게 puser.pin_event_ty에 대한 실행 권한을 부여합니다;
t_user에게 sys.dbms_aqin에서 실행 권한을 부여합니다;
다음으로, 앞서 정의한 비즈니스 이벤트를 큐에 대기시킬 애플리케이션인 큐 프로듀서가 필요합니다. 프로듀서 모듈을 개발하는 것은 사용자 지정 커넥터 애플리케이션을 빌드하는 것과 유사합니다(여기를 참조하세요.) 사용자 지정 모듈(라이브러리)을 구현하고 dm_eai 구성 파일에서 "plugin_name" 항목 아래에 정의해야 합니다.
이 작업을 수행하는 더 간단한 방법도 있습니다. 이미 '계정 동기화 DM'을 설치한 경우에는 dm_ifw_sync 데이터 관리자에서 대기열 생성기 모듈의 구현을 찾을 수 있습니다. 하지만 이 옵션을 선택하면 dm_eai 구성 파일에 몇 가지 추가 항목이 필요합니다.
대기열 생성기가 작동하고 나면 비즈니스 이벤트 중 일부를 호출하여 대기열에 추가되는지 확인합니다. 큐는 큐 생성에 정의된 테이블에서 쿼리할 수 있습니다.
마지막으로 큐에 대기 중인 메시지를 읽고 큐를 해제할 애플리케이션인 큐 소비자가 필요합니다. 다음 프로그래밍 언어로 Oracle 스트림 AQ에 액세스하는 데 사용할 수 있는 몇 가지 프로그래밍 인터페이스가 있습니다: Java(JMS), PL/SQL, C(OCI), Visual Basic(OO4O), AQ XML 서블릿(IDAP).
사용자 지정 클라이언트를 구현하면 메시지 처리 속도, 처리 시기, 처리 횟수를 완벽하게 제어할 수 있습니다. 예를 들어, 사용량이 많지 않은 시간대에는 피크 시간대보다 더 많은 데이터를 처리할 수 있습니다.
Oracle BRM와 타사 시스템 및/또는 애플리케이션 간의 통합/동기화 프로세스를 진행하는 방법에 대한 몇 가지 유용한 팁을 얻으셨기를 바랍니다.