この章の内容は次のとおりです。
Oracle JDeveloperでのセンサーとセンサー・アクションの構成
Oracle Enterprise Manager Fusion Middleware Controlでのセンサーの定義とセンサー・アクションの定義の表示
Oracle BPEL Process Managerセンサーの詳細は、「センサー・パブリック・ビューとセンサー・アクションXSDの理解」を参照してください。
センサーは、BPELプロセス・インスタンスのライフ・サイクル全体を通じて特定のイベントに対する関心を宣言するために使用されます。ビジネス・プロセスでは、このようなイベントとして、特定のアクティビティのアクティブ化と完了、またはビジネス・プロセス内の変数値の変更があります。
センサーがトリガーされると、特定のセンサー値が作成されます。たとえば、センサーでBPELスコープの完了に対する関心を宣言した場合、センサー値は、BPELスコープの名前とアクティビティの完了時点のタイムスタンプ値で構成されます。センサー値でBPELプロセス変数に対する関心を宣言している場合、そのセンサー値は次のもので構成されます。
変数が変更された時点でのその変数の値
変数が変更されたときのタイムスタンプ
BPEL変数を変更したアクティビティ名およびタイプ
センサー値のデータ・フォーマットは、XMLスキーマを使用して正規化され、適切に定義されます。
センサー・アクションは、センサー値の処理方法に関する指示です。Oracle BPEL Process Managerによってセンサーがトリガーされると、そのセンサーに新しいセンサー値が作成されます。その後、そのセンサーに関連付けられているすべてのセンサー・アクションが実行されます。通常、センサー・アクションは、センサー値をデータベースに保持するか、正規化されたセンサー値データをJMSキューまたはトピックに送信します。Oracle BAMと統合すると、センサー値をOracle BAMアダプタに送信できます。
Oracle JDeveloperを使用するか、センサー構成ファイルを手動で指定することで、次のタイプのセンサーを定義できます。
アクティビティ・センサー
アクティビティ・センサーは、BPELプロセス内のアクティビティの実行を監視します。たとえば、invokeアクティビティの実行時間や、このアクティビティによるスコープ完了までの時間を監視できます。アクティビティ・センサーに加え、アクティビティの変数も監視できます。
変数センサー
変数センサーは、BPELプロセスの変数(または1つの変数の複数部分)を監視する際に使用します。たとえば、変数センサーで、BPELプロセスの入力データと出力データを監視できます。
フォルト・センサー
フォルト・センサーは、BPELフォルトを監視する際に使用します。
センサーは、通常、アクティビティ、フォルトおよび変数のBPELモデリングの一環として追加または編集します。
これらのセンサーは、次のパブリックSQLビューを使用して公開されます。
BPEL_ACTIVITY_SENSOR_VALUES
BPEL_FAULT_SENSOR_VALUES
BPEL_VARIABLE_SENSOR_VALUES
これらのビューをBPEL_PROCESS_INSTANCES
ビューと結合し、センサー値と、センサー値を作成したBPELプロセス・インスタンスを関連付けることができます。詳細は、「センサー・パブリック・ビューとセンサー・アクションXSDの理解」を参照してください。
Oracle JDeveloperでセンサーをモデル化すると、BPELプロセス・アーカイブの一部として、次の2つの新規ファイルが作成されます。
bpel_process_name
_
sensor.xml
BPELプロセスのセンサー定義が格納されます。
bpel_process_name
_
sensorAction.xml
BPELプロセスのセンサー・アクション定義が格納されます。
これらのファイルの作成方法の詳細は、「アクティビティ、変数、フォルトの各センサーの構成方法」および「センサー・アクションの構成方法」を参照してください。
BPELプロセスにセンサーを定義した後は、センサー・アクションを構成して、そのセンサー・データを指定された宛先にパブリッシュする必要があります。センサーにセンサー・アクションが定義されていない場合、実行時は何も行われません。
センサー・アクションには、次の情報が必要です。
名前
パブリッシュ・タイプ
パブリッシュ・タイプは、センサー・データの送信が必要な宛先を指定します。次の宛先にセンサー・データをパブリッシュできます。
データベース
センサー・データをデータベースのレポート・スキーマにパブリッシュします。これにより、センサー・データは、SQLを使用して問い合せることができます。
JMSキュー
センサー・データをJMSキューにパブリッシュします。XMLデータは、Sensor.xsd
ファイルに従って転送されます。このファイルは、Oracle JDeveloperで次のディレクトリにあります。
/soa/integration/seed/soa/shared/bpel/Sensor.xsd
Sensor.xsd
ファイルは、次のディレクトリにもあります。
/soa/integration/jdeveloper/seed/soa/shared/bpel/Sensor.xsd
JMSトピック
センサー・データをJMSトピックにパブリッシュします。XMLデータは、JMSキューで使用されるファイルと同じSensor.xsd
ファイルに従って転送されます。
カスタム
データをカスタムJavaクラスにパブリッシュします。
JMSアダプタ
JMSアダプタは、リモート・キューやトピックおよび様々なJMSプロバイダへのパブリッシュに使用します。「JMSキュー」および「JMSトピック」パブリッシュ・タイプでは、ローカルJMS宛先にのみパブリッシュします。
センサーのリスト
センサー・アクションに対応するセンサーです。
BPELセンサーは、BPELプロセス・インスタンスのライフ・サイクル全体を通じて特定のイベントに対する関心を宣言するために使用されますが、コンポジット・センサーは、メッセージにトラッキング可能フィールドを実装する手段を提供します。コンポジット・センサーを使用すると、次のタスクを実行できます。
受信メッセージおよび送信メッセージを監視できます。
受信メッセージおよび送信メッセージから計算されたJMSデータをパブリッシュします。
ビジネス・イベント・サブスクリプションによって開始されたコンポジット・インスタンスを追跡します。
コンポジット・センサーの詳細は、「コンポジット・センサーの定義」を参照してください。
Oracle JDeveloperでは、センサー・アクションとセンサーは、「監視」ビューの一部として表示されます。
センサーとセンサー・アクションにアクセスする手順は、次のとおりです。
図18-1 に示すように、Oracle BPELデザイナの上部にある監視ビューに変更を選択します。
図18-2 は、「構造」ウィンドウのセンサー・アクションとセンサーを示しています。
センサーは、通常、アクティビティ、フォルトおよび変数のBPELモデリングの一環として追加または編集します。
「センサー・アクション」フォルダを右クリックし、「作成」→「センサー・アクション」の順に選択し、センサー・アクションを追加します。
次の手順に従って、アクティビティ・センサー、変数センサーまたはフォルト・センサーを追加します。
「センサー」フォルダを開きます。
適切な「アクティビティ」、「変数」または「フォルト」サブフォルダを右クリックします。
「作成」をクリックします。
アクティビティを右クリックして「作成」→「センサー」の順に選択し、センサーを個々のアクティビティに追加します。図18-3に詳細を示します。
次の各項では、センサーとセンサー・アクションの構成方法について説明します。
この項では、アクティビティ・センサー、変数センサーおよびフォルト・センサーを構成する方法について説明します。
ここでは、融資フロー・アプリケーションを監視して、次の情報を把握すると仮定します。
GetCreditRatingというスコープの開始時点
このスコープの完了時点
完了時点での顧客の信用格付け
この問題を解決するには、図18-4 に示すように、Oracle BPELデザイナでGetCreditRatingスコープのアクティビティ・センサーを作成します。
Oracle BPELデザイナの上部にある監視ビューに変更を選択します。
「構造」ウィンドウで、「センサー」フォルダを開きます。
「アクティビティ」を右クリックし、「作成」を選択します。
「アクティビティ名」フィールドの右側で、「参照」アイコンをクリックして、センサーを作成するアクティビティを選択します。これは必須フィールドです。
センサーが関連付けられたアクティビティは、Oracle BPELデザイナでは拡大鏡で識別されます。
センサーの起動タイミングは、図18-4 に示す「評価時間」リストを使用して制御します。
次の中から選択します。
すべて:
アクティブ化、完了、フォルト、補正および再試行の各フェーズを通して監視します。
アクティブ化
センサーは、アクティビティの実行直前に起動されます。
完了
センサーは、アクティビティの実行直後に起動されます。
フォルト
センサーは、アクティビティの実行中にフォルトが発生した場合に起動されます。この値は、単純なアクティビティを監視するセンサーにのみ選択してください。
補正
センサーは、関連するscopeアクティビティが補正されたときに起動されます。この値は、スコープを監視するセンサーにのみ選択してください。
再試行
センサーは、関連するinvokeアクティビティが再試行されたときに起動されます。
bpel_process_name
_sensor.xml
ファイルに新規エントリが作成されます。
<sensor sensorName="CreditRatingSensor" classname="oracle.tip.pc.services.reports.dca.agents.BpelActivitySensorAgent" kind="activity" target="GetCreditRating"> <activityConfig evalTime="all"> <variable outputNamespace="http://www.w3.org/2001/XMLSchema" outputDataType="int" target="$crOutput/payload//services:rating"/> </activityConfig> </sensor>
アクティビティで変数センサーを作成するには、「アクティビティ変数センサー」セクションで「追加」アイコンをクリックします。これはオプションのフィールドです。
アクティビティに対するセンサー・アクションを追加するには、「センサー・アクション」セクションで「追加」アイコンをクリックします。詳細は、「センサー・アクションの構成方法」を参照してください。
「OK」をクリックします。
注意:
「アクティビティ変数センサー」と「センサー・アクション」のセクションで値を指定しなかった場合、Oracle JDeveloperの「ログ」ウィンドウやログ・ファイルで検証のエラー・メッセージや警告メッセージを受信しません。これは予想された動作です。
すべての着信融資申請を記録する場合、変数センサーを作成できます。
Oracle BPELデザイナの上部にある監視ビューに変更を選択します。
「構造」ウィンドウで、「センサー」フォルダを開きます。
「変数」を右クリックし、「作成」を選択します。
図18-5 に示すように、「ターゲット」フィールドの右側にある「編集」アイコンをクリックして、変数に変数センサー(この例ではinputという名前)を作成します。
「ターゲット」フィールドの選択内容に基づいて、「出力ネームスペース」フィールドと「出力データ型」フィールドは自動的に入力されます。
bpel_process_name
_
sensor.xml
ファイルに新規エントリが作成されます。
<sensor sensorName="LoanApplicationSensor" classname="oracle.tip.pc.services.reports.dca.agents.BpelVariableSensorAgent" kind="variable" target="$input/payload"> <variableConfig outputNamespace="http://www.autoloan.com/ns/autoloan" outputDataType="loanApplication"/> </sensor>
フォルトを監視(この例ではアイデンティティ・サービスから)する場合、フォルト・センサーを作成できます。
Oracle BPELデザイナの上部にある監視ビューに変更を選択します。
「構造」ウィンドウで、「センサー」フォルダを開きます。
「フォルト」を右クリックし、「作成」を選択します。
図18-6 に示すように、「ネームスペース」 フィールドの上にある「参照」アイコンをクリックして、フォルト・センサーを作成します。
選択内容に基づいて、「ネームスペース」フィールドと「ローカル・パート」フィールドは自動的に入力されます。
フォルトに対するセンサー・アクションを追加するには、「センサー・アクション」セクションで「追加」アイコンをクリックします。詳細は、「センサー・アクションの構成方法」を参照してください。
「OK」をクリックします。
bpel_process_name
_sensor.xml
ファイルに新規エントリが作成されます。
<sensor sensorName="IdentityServiceFault" classname="oracle.tip.pc.services.reports.dca.agents.BpelFaultSensorAgent" kind="fault" target="is:identityServiceFault"> <faultConfig/> </sensor>
「JMSキュー」および「JMSトピック」パブリッシュ・タイプでは、ローカルJMS宛先にのみパブリッシュします。センサー・データをリモート・トピックおよびキューにパブリッシュする場合は、図18-11 に示すように、「JMSアダプタ」パブリッシュ・タイプを使用します。
JMSアダプタでは、センサー・データをリモート・トピックおよびキューにパブリッシュでき、さらに、次のように様々なJMSプロバイダがサポートされます。
サード・パーティJMSプロバイダ(Tibco JMS、IBM WebSphere MQ JMS、SonicMQなど)
Oracle Enterprise Messaging Service (OEMS)プロバイダ(メモリー/ファイル、データベースなど)
「JMSアダプタ」パブリッシュ・タイプを選択した場合は、weblogic-ra.xml
ファイルにエントリを作成する必要があり、このファイルはでの編集によって更新されます。このコンソールで作成されるJMSコネクション・ファクトリ(プール)の各エントリは、weblogic-ra.xml
の1つのJNDIエントリに相当します。「センサー・アクション」ダイアログは、JMSコネクション・ファクトリ(プール)の作成時に選択したJNDI名で更新してください。
JMSアダプタの詳細は、『テクノロジ・アダプタの理解』を参照してください。
カスタム・データ・パブリッシャを作成するには、次の各手順を実行します。
カスタム・データ・パブリッシャを作成する手順は、次のとおりです。
注意:
データ・パブリッシャの実装に必要な追加のJavaライブラリがクラスパスに存在していることが必要です。
Oracle BPEL Process Managerでは、複数のプロセス・インスタンスを同時に実行できるため、データ・パブリッシャのコードをスレッド・セーフとするか、適切な同期ブロックを追加する必要があります。高いスループットを確保するには、同期が必要な共有データ・オブジェクトを使用しないでください。
Oracle JDeveloperは、composite.xml
ファイルを自動的に更新し、次の例に示すように、センサーとセンサー・アクションの適切なプロパティを取り込みます。
<composite name="JMSQFComposite" applicationName="JMSQueueFilterApp" revision="1.0" label="2007-04-02_14-41-31_553" mode="active" state="on"> <import namespace="http://xmlns.oracle.com/JMSQueueFilter" location="JMSQueueFilter.wsdl" importType="wsdl"/> <service name="client"> <interface.wsdl interface="http://xmlns.oracle.com/ JMSQueueFilter#wsdl.interface(JMSQueueFilter)"/> <binding.ws port="http://xmlns.oracle.com/JMSQueueFilter#wsdl.endpoint(client/ JMSQueueFilter_pt)"/> </service> <component name="JMSQueueFilter"> <implementation.bpel src="JMSQueueFilter.bpel"/> <property name="configuration.sensorLocation" type="xs:string" many="false">JMSQueueFilter_sensor.xml</property> <property name="configuration.sensorActionLocation" type="xs:string" many="false">JMSQueueFilter_sensorAction.xml</property> </component> <wire> <source.uri>client</source.uri> <target.uri>JMSQueueFilter/client</target.uri> </wire> </composite>
前の例のように、<property name= ...>
を使用して追加のプロパティを指定できます。
Oracle Enterprise Manager Fusion Middleware Controlでは、センサーのメタデータ、センサー・アクション、およびプロセス実行の一部として作成されたセンサー・データの表示をサポートしています。
詳細は、『Oracle SOA SuiteおよびOracle Business Process Management Suiteの管理』を参照してください。
注意:
関連するデータベース・センサー・アクションがあるセンサーのみが、Oracle Enterprise Manager Fusion Middleware Controlに表示されます。JMSキュー、JMSトピック、リモートJMSまたはカスタム・センサー・アクションに関連するセンサーは表示されません。
BPELプロセス分析には次の機能があります。
Oracle BPMN、ヒューマン・ワークフローおよびBPELプロセスなどのOracle SOA Suiteコンポーネントにおいて分散データを収集するための共通測定メカニズム。
測定イベントの評価、公開および合成を行うためのランタイム・インフラストラクチャ。
BPELプロセス分析のOracle Business Activity Monitoring (BAM)との統合の詳細は、『Oracle BAMでのビジネス・アクティビティのモニタリング』の「Oracle SOA Suiteとの統合」および『Oracle SOA Suiteの理解』の「Oracle Business Activity Monitoringによるビジネス・インサイトの取得」を参照してください。
ビジネス・インジケータがSOAコンポジット・アプリケーションで定義され、コンポーネントの分析とメトリック計算に寄与するオブジェクトを識別します。ビジネス・インジケータは、次のタイプで構成されています。
メジャー
売上金額や従業員の給料などの変数の値を格納します。 メジャーは連続的なデータ型のみ有効で、一般的に数値です。
ディメンション
グループをラベルしたりメジャーをフィルタします。
カウンタ
マークされた要素をプロセス・インスタンスが完了した回数をトラッキングします。
メタデータが指定されたディメンションとメジャーが、測定の一部として取得されます。
コンポジット内にある複数のBPELプロセスで共有したりバインドできるようにビジネス・インジケータを設計します。分析実行時にコンポジットが実行する際、あるプロセスから別のプロセスへ変化する値をこれによって監視できます。
標準サンプリング・ポイントとは、コンポーネントでは本質的に測定イベントの作成を試行するコンポーネント・パスのポイントです。測定メタデータでは測定をこれらの標準サンプリング・ポイントで構成できます。適切な測定メタデータが存在すると、それによって標準サンプリング・ポイント測定イベントの一部またはすべてでこれらの測定イベントの生成、公開および処理ができます。たとえば、プロセスの標準サンプリング・ポイントは、次にできます。
プロセスの起動と停止
アクティビティの起動と停止
フォルト
これらは、コンポーネントで指定可能なサンプリング・ポイントです。
測定マーク:
指定されたメジャーの測定における単一の点です。
測定間隔:
一般的にコンポーネントで取得されるパスに沿って開始点と終了点で構成される測定です(したがって、測定間隔名で識別される間隔を構成します)。
測定カウンタ:
コンポーネントで取得されるパスにおいて指定された点の出現を識別する測定です。
測定とは、実行時に実行される選択ビジネス・インジケータとサンプリング・ポイントの組合せです。測定の詳細は、「測定を定義する方法」を参照してください。
Oracle BPELデザイナにおいてビジネス・インジケータと測定をBPELプロセスの分析ビューで編集します。
分析ビューにアクセスするには:
作成中にビジネス・インジケータをBPEL XPath式関数にバインドできます。コンポジット内にある複数のBPELプロセスで共有したりバインドできるようにビジネス・インジケータを設計します。分析実行時にコンポジットが実行する際、あるプロセスから別のプロセスへ変化する値をこれによって監視できます。
次のビジネス・インジケータをBPELプロセスで定義できます。
BPELプロセスのカウンタ・バインディングを定義します。利用可能なカウンタが選択され、BPELプロセスにバインドされます。その際、XPathの指定は不要です。カウンタとは、BPELアクティビティが実行時に実行される回数をカウントするものです。バインドでXPath式の指定が不要であることをこれは意味します。
BPELプロセスのディメンション・バインディングを定義します。利用可能なディメンションが選択され、BPEL XPath式にバインドされます。
BPELプロセスのメジャー・バインディングを定義します。利用可能なメジャーが選択され、BPEL XPath式にバインドされます。
ビジネス・インジケータの詳細は、「ビジネス・インジケータの概要」を参照してください。
「ビジネス・インジケータをビジネス・インジケータ概要エディタで編集する方法」で説明されているように、定義後、ビジネス・インジケータ概要エディタでビジネス・インジケータの編集と削除ができます。
「コンポーネント」ウィンドウは、図18-20 に示す測定タイプで構成されます。
デザイナで初期作成を行うために測定タイプをBPELプロセス・アクティビティにドラッグします。測定はBPELプロセスの読取り専用アクティビティの上部でフロータと定義されます。測定は、プロパティ・インスペクタまたは測定をダブルクリックすることで、後で編集できます。測定フロータはBPELプロセスの上部でマウスにより周囲に移動して、必要なトポロジを実現できます。
各測定タイプには2つのタブが含まれています。
「一般」タブ: 影響されるアクティビティを定義するために、取得される測定をトリガーする評価イベント、測定の説明、および測定が有効にされているかどうかがあります。
「ビジネス・インジケータ」タブ: 測定のビジネス・インジケータを選択するためのものです。
分析サンプリング・ポイント(プロセスの起動/停止、アクティビティの起動/停止)をSOAコンポジット・アプリケーション・レベルで構成できます。コンポジット・レベル構成は、コンポジットですべてのBPELプロセスに適用されます。分析を特定BPELプロセス・レベルで構成する方法の詳細は、「プロセス・レベル分析サンプリング・ポイントを構成する方法」を参照してください。
コンポジット・レベル分析サンプリング・ポイントを構成するには:
分析サンプリング・ポイント(プロセスの起動/停止、アクティビティの起動/停止)を個々のBPELプロセス・レベルで構成できます。プロセス・レベル構成は、特定のBPELプロセスで標準分析イベントの生成にのみ適用されます。プロセスのユーザー定義測定イベントの生成に影響しません。有効にされている場合、ユーザー定義測定は必ず、測定イベントを生成します。
分析をSOAコンポジット・アプリケーション・レベルで構成する方法の詳細は、「コンポジット・レベル分析サンプリング・ポイントを構成する方法」を参照してください。
プロセス・レベル分析サンプリング・ポイントを構成するには:
ビジネス・インジケータ概要エディタでSOAコンポジット・アプリケーション用ビジネス・インジケータの作成、編集および削除ができます。その際、これらのビジネス・インジケータが特定のBPELプロセスにバインドされたかどうかは関係ありません。このエディタではこれらのビジネス・インジケータのバインディングは、削除されていないかぎり変更されません。ビジネス・インジケータが削除されると、特定のBPELプロセスのバインディングもすべて削除されます。
ビジネス・インジケータ概要エディタは、ビジネス・インジケータの編集と削除を行うための唯一の方法です。「構造」ウィンドウまたはプロパティ・インスペクタからアクセスするカウンタ、ディメンションおよびメジャーの様々なダイアログからは、ビジネス・インジケータを編集または削除できません。BPELプロセスへのバインディングのみ編集できます。「構造」ウィンドウやプロパティ・インスペクタからのビジネス・インジケータのビューは実際、ビジネス・インジケータのバインド・ビューであり、すべてのビジネス・インジケータのビューでありません。バインドされていないビジネス・インジケータは、「構造」ウィンドウやプロパティ・インスペクタに表示されません。
ビジネス・インジケータ概要エディタにおける関連の変更は、「構造」ウィンドウやプロパティ・インスペクタに反映されます。「構造」ウィンドウやプロパティ・インスペクタにおける関連の変更は、ビジネス・インジケータ概要エディタに反映されます。
ビジネス・インジケータをビジネス・インジケータ概要エディタで編集するには:
分析構成はSOAコンポジット・アプリケーションのデプロイメントに含まれています。コンポジットで定義されている分析がない場合、分析はデプロイされません。
SOA分析デプロイメントでは、次の手順が実行されます。
分析定義(コンポジット、プロセス、アクティビティおよびロール)データ・オブジェクトが移入されます。
コンポジット固有の物理データ・オブジェクトと論理データ・オブジェクト(プロセスとアクティビティ)が作成されます。
データ移入がコンポジット・レベルまたはコンポーネント・レベル(BPELプロセス)で行われるかどうかに基づいて、分析デプロイメントは2つの手順に分かれています。
コンポジット・レベルの分析デプロイメント
コンポジット定義データ・オブジェクトが移入され、コンポジット固有の物理データ・オブジェクトと論理データ・オブジェクトが作成されます(プロセスとアクティビティ)。コンポジットがデプロイされる際にコンポジット・レベルの分析デプロイメントが起動されます。このデプロイメント手順はコンポジットで一度実行されます。
コンポーネント・レベルの分析デプロイメント
プロセス、アクティビティおよびロール定義データ・オブジェクトが移入されます。コンポーネントがデプロイされる際にコンポーネント・レベルの分析デプロイメントが起動されます。このデプロイメント手順はコンポジットの各コンポーネントで実行されます。
デプロイされた分析メタデータに基づいて、測定イベントがトリガーされます。開始や停止などのBPELプロセスおよびアクティビティ・イベントによって、測定イベントがトリガーされます。測定用に定義したビジネス・インジケータのすべての値をBPELプロセス・サービス・エンジンから測定イベントで取得し、合成してOracle BAMに公開できます。
BPELプロセスとアクティビティ・イベント自体は、分析サンプリング・コントロールに基づいて、Oracle BAMにも公開できます。BPELプロセスとアクティビティ・イベントでも、適用可能なビジネス・インテリジェンスの値が取得されます。
BPEL測定イベントは、SOA分析データ・オブジェクト(プロセスとアクティビティ)にBAMで公開されます。
BPELプロセス分析のOracle Business Activity Monitoring (BAM)との統合の詳細は、『Oracle BAMでのビジネス・アクティビティのモニタリング』の「Oracle SOA Suiteとの統合」および『Oracle SOA Suiteの理解』の「Oracle Business Activity Monitoringによるビジネス・インサイトの取得」を参照してください。