ビジネス・イベントの概要

目的の状況が発生したときにビジネス・イベントを起動できます。たとえば、ローン・フローのシナリオで、ローン・プロセスを実行している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はタプル(URIlocalName)であり、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トピックに別々のイベント・タイプをマッピングできます。