ビジネス・イベントの概要
目的の状況が発生したときにビジネス・イベントを起動できます。たとえば、ローン・フローのシナリオで、ローン・プロセスを実行しているBPELプロセス・サービス・コンポーネントは、プロセスの完了時にローン完了イベントを起動できます。このアプリケーションのインフラストラクチャ内の他のシステムは、これらのイベントをリスニングし、イベントのインスタンスの受信時に次の処理を実行できます。
-
イベント・コンテキストを使用して、ビジネス・インテリジェンスまたはダッシュボード・データを導出します。
-
融資パッケージを顧客に送る必要があることをメール部門に知らせます。
-
別のビジネス・プロセスを起動します。
-
Oracle Business Activity Monitoring (BAM)に情報を送信します。
通常、ビジネス・イベントは、ビジネスの状態変化に関する通知を送信するための一方向のfire-and-forget非同期方法です。ビジネス・プロセスは、次の処理を行いません。
-
ビジネス・イベントの完了を受信するサービス・コンポーネントに依存しません。
-
他のサービス・コンポーネントがビジネス・イベントを受信しても関係ありません。
-
サブスクライバの存在(存在する場合)およびデータがサブスクライバに与える影響を知る必要がありません。
これらは、Web Services Description Language (WSDL)ファイル規定に依存する直接サービス起動(SOAPサービス・クライアントなど)とビジネス・イベントの重要な相違点です。イベントの発生がイベントの受信者に依存する場合、メッセージは通常、ビジネス・イベントではなくサービス起動を通して配信する必要があります。直接サービス起動とは異なり、ビジネス・イベントはサーバーからクライアントを分離します。
ビジネス・イベントは、イベント定義言語(EDL)を使用して定義されます。EDLは、ビジネス・イベント定義の作成に使用するスキーマです。アプリケーションは、ビジネス・イベント定義のインスタンスと協調して動作します。
EDLは、次のもので構成されます。
-
定義済イベント
同じネームスペース(
definitions
ルート要素のtargetNamespace
属性)を持つ1つ以上のイベント定義(event-definition
要素)の場合、それぞれがローカル名(event-definition
要素のname
属性)を持ちます。ネームスペースおよびローカル名は、イベント名(QName
)を構成します。 -
ペイロード定義
定義には、XMLスキーマ(XSD)が最も一般的に使用されます。ビジネス・イベントのペイロードは、(
schema-import
要素を介して)EDLにインポートされたXSDで定義されます。定義済の各イベント(つまりevent-definition
要素)には、インポートされたペイロードのXSD要素(content
要素のelement
属性)への参照を含めることができます。スキーマのURIは、ペイロードのルート要素に含まれます。
次の例は、BugReport
イベント定義内に2つのビジネス・イベントbugUpdated
およびbugCreated
があるEDLファイルを示しています。ネームスペース(/model/events/edl/BugReport
)および関連するスキーマ・ファイル(BugReport.xsd
)が参照されます。
<?xml version = '1.0' encoding = 'UTF-8'?> <definitions targetNamespace="/model/events/edl/BugReport" xmlns:ns0="/model/events/schema/BugReport" xmlns="http://schemas.oracle.com/events/edl"> <schema-import namespace="/model/events/schema/BugReport" location="BugReport.xsd"/> <event-definition name="bugCreated"> <content element="ns0:bugCreatedInfo"/> </event-definition> <event-definition name="bugUpdated"> <content element="ns0:bugUpdatedInfo"/> </event-definition> </definitions>
これら2つのイベントはOracle MediatorおよびBPELプロセスのサブスクリプションで使用できます。
ビジネス・イベントは、Oracle Metadata Servicesリポジトリ(MDSリポジトリ)にデプロイされます。ビジネス・イベントをそのアーティファクト(XSDなど)とともにMDSリポジトリにデプロイすることを、EDL (またはイベント定義)の公開とも呼びます。このアクションにより、EDLおよびそのアーティファクトがMDSリポジトリ内の共有領域に転送されます。MDSリポジトリ共有領域内のオブジェクトは、Oracle JDeveloperの「リソース」ウィンドウ内のすべてのアプリケーションで参照できます。EDLは公開後、Oracle MediatorやBPELプロセスなどのSOAコンポーネントでサブスクライブできます。
サブスクリプションは、特定の修飾名(QName)(x.y.z/newOrders
など)に対して行います。QNameはタプル(URI
、localName
)であり、xmlns:prefix=URI
などのネームスペース宣言またはネームスペース・コンテキストとの組合せで、文字列prefix:localName
から導出できます。また、コンテンツ・ベースのフィルタを使用すると、サブスクリプションをさらに絞り込むことができます。
ビジネス・イベントは、EDNに公開されます。EDNはOracle SOA Suiteの各インスタンス内で実行されます。発生したイベントはEDNにより、サブスクライブするサービス・コンポーネントに配信されます。Oracle Mediatorサービス・コンポーネントとBPELプロセス・サービス・コンポーネントはイベントをサブスクライブし、公開できます。
EDNは、Oracle SOA SuiteコンポーネントとOracle SOA Suite以外のコンポーネントとの間のビジネス・イベントベースの相互作用をサポートする、標準のJMSメッセージング・インフラストラクチャに基づいています。EDNは次の2つのJMSベースのタイプを提供します。
-
Oracle WebLogic Server JMS: デフォルトでは、すべてのビジネス・イベントで、1つのデフォルトOracle WebLogic Server JMSトピックを使用します。
-
Oracle Advanced Queueing (AQ) JMS
追加のJMSトピック(Oracle WebLogic Server JMSまたはAQ JMS)を作成して、Oracle Enterprise Manager Fusion Middleware Controlでこれらの追加のJMSトピックに別々のイベント・タイプをマッピングできます。