Oracle Application Server Integration InterConnect ユーザーズ・ガイド 10g リリース2 (10.1.2) B15751-02 |
|
この付録では、Interconnect Interoperability feature with plugin for BPEL(BPELプラグイン)の概要と、BPELプラグインによりOracle BPEL Process ManagerとOracleAS Integration InterConnect間の相互作用を可能にする方法について説明します。項目は次のとおりです。
BPELプラグインは、Oracle BPEL Process ManagerとOracleAS Integration InterConnectの架け橋となります。 Oracle BPEL Process Managerに定義されているBPELプロセスをOracleAS Integration InterConnectでビジネス・プロセスの自動化要件に使用できます。
BPELプラグインのメリットは次のとおりです。
この項では、次の項目について説明します。
この項では、Oracle BPEL Process ManagerとInterConnectハブの共存が可能な各種トポロジと、BPELプラグインにより複数のBPELサーバーとInterConnectハブの間で相互作用を可能にする方法について説明します。 この項には、次のシナリオが含まれています。
このシナリオでは、図A-1に示すように、BPELサーバーとInterConnectハブとのすべての相互作用がBPELプラグインの単一インスタンスで処理されます。 このシナリオを実装するには、iStudioでBPELサーバー用のアプリケーションを1つ作成し、このアプリケーションですべての相互作用を定義します。 BPELプラグインは、BPELサーバーを表すアプリケーション名を使用して、InterConnectハブ・キューをパブリッシュおよびサブスクライブします。
このシナリオでは、図A-2に示すように、BPELサーバーと両方のInterConnectハブとのすべての相互作用がBPELプラグインの単一インスタンスで処理されます。 このシナリオを実装するには、各InterConnectハブにBPELサーバー用のアプリケーションを1つ作成します。 BPELプラグインは、両方のInterConnectハブ・キューを、対応するアプリケーション名を使用してパブリッシュおよびサブスクライブします。
このシナリオでは、図A-3に示すようにBPELプラグインのインスタンスが2つ存在します。 このシナリオを実装するには、iStudioでアプリケーションを2つ作成します。 各アプリケーションは、それぞれ1つのBPELサーバーを表します。 BPELプラグインは、InterConnectハブ・キューを、対応するアプリケーション名を使用してパブリッシュおよびサブスクライブします。
このシナリオでは、図A-4に示すように、ロード・バランシング・モードで稼働中のBPELサーバーのインスタンスが2つ存在します。 これらのインスタンスは、実行時は同一です。 したがって、Interconnect Interoperability feature with plugin for BPELのインスタンスが2つ作成されます。 どちらのインスタンスも同じBPELプロセスを提供し、同じアプリケーション名でInterConnectハブ・キューをパブリッシュまたはサブスクライブします。 両方のインスタンスが同じアプリケーション名でハブ・キューをサブスクライブしますが、アドバンスト・キューイング(AQ)によりメッセージは確実に一方にのみ配信されます。
複数のサブスクライバが同じ名前でサブスクライブした場合、AQはメッセージを一方にのみ配信します。
BPELプラグインがメタデータに初めてアクセスすると、メタデータはキャッシュにローカルに格納されます。 BPELプラグインは次のタスクを実行して、アダプタ・メタデータのローカル・キャッシュを作成しリフレッシュします。
Refresh local cache
メッセージの受信用に、このキューのサブスクライブ・スレッドを作成します。 メッセージの受信時に、ローカル・キャッシュがInterConnectリポジトリからの新規メタデータでリフレッシュされます。 「ローカル・メタデータのリフレッシュ」は、iStudioで使用可能な新機能であり、BPELプラグインのメタデータをリフレッシュできます。 BPELプラグインのメタデータをリフレッシュするには、iStudioでBPELアプリケーションを右クリックし、「ローカル・メタデータのリフレッシュ」オプションを選択します。 これによりBPELプラグインがトリガーされ、InterConnectから現行のメタデータを取得してローカルに格納します。 これは、InterConnectアダプタで使用可能な「アダプタを同期化」機能と同様です。
この項では、Oracle BPEL Process ManagerとOracleAS Integration InterConnect間の相互作用のタイプについて説明します。項目は次のとおりです。
BPELプラグインは、Oracle BPEL Process ManagerのOC4Jコンテナに配置されます。Oracle BPEL Process Managerでは、アダプタ・フレームワークを介してBPELプラグインとの通信が処理されます。
BPELプラグインはOracle BPEL Process Managerからメッセージを受信すると、そのメッセージをInterConnectでサポートされている形式に変換します。 BPELプラグインはInterConnectメタデータを検索して受信者リストを識別し、メッセージをInterConnectハブ・キューに置きます。 BPELプラグインはInterConnectハブと直接相互作用します。 ただし、BPELプラグインはInterConnectハブからメッセージを受信すると、XMLRecordオブジェクトに変換してから、そのメッセージをサブスクライブしたBPELプロセスに配信します。
図A-5は、Oracle BPEL Process ManagerとOracleAS Integration InterConnect間の相互作用プロセスを示しています。
アウトバウンド相互作用では、Oracle BPEL Process ManagerがOracleAS Integration InterConnectにメッセージを送信します。 この相互作用には、図A-6に示すようにOracle BPEL Process Managerでのインボーク・アクティビティとOracleAS Integration InterConnectでのパブリッシュ・イベントが関係します。
Oracle BPEL Process ManagerとOracleAS Integration InterConnectの間のアウトバウンド相互作用は、次のステップで構成されます。
BusinessObjectName
、EventName
およびEventVersion
など)に基づいて、Oracle BPEL Process ManagerメッセージとInterConnectメッセージ間のマッピングが確立されます。
インバウンド相互作用では、OracleAS Integration InterConnectがOracle BPEL Process Managerにメッセージを送信します。 この相互作用には、図A-7に示すようにOracle BPEL Process Managerでの受信アクティビティとOracleAS Integration InterConnectでのサブスクライブ・イベントが関係します。
Oracle BPEL Process ManagerとOracleAS Integration InterConnect間のインバウンド相互作用は、次のステップで構成されます。
oc4j-ra.xml
ファイルに構成済のアプリケーション名でハブ・キューをサブスクライブします。 ハブ・キューのサブスクライブ・タスクは、アダプタへのエンドポイント・アクティブ化コール中に実行されます。 BPELプラグインは、同じアプリケーションについてハブ・キューが複数回サブスクライブされないように、すべてのサブスクライブ済ハブ・キューを追跡します。
BusinessObjectName
、Eventname
およびEventVersion
パラメータの値をエンドポイントに対して定義済の値と照合することで、エンドポイントに示されます。
onMessage
メソッドを使用して、受信したイベントをBPELプロセスに渡します。
Oracle BPEL Process ManagerとOracleAS Integration InterConnect間のリクエスト/リプライ相互作用には、次のアクティビティおよびプロシージャが関係します。
Oracle BPEL Process ManagerとOracleAS Integration InterConnect間のリクエスト/リプライ相互作用には、次の2つのシナリオが可能です。
シナリオ1: BPELプロセスがリクエストを送信してリプライを受信する場合このシナリオでは、BPELプロセスが非同期でInterConnectハブにリクエストを送信してリプライを受信します。 この相互作用には、図A-8に示すように、Oracle BPEL Process Managerでインボーク・アクティビティおよび受信アクティビティを使用し、OracleAS Integration InterConnectでインボーク・プロシージャを使用する必要があります。
BPELプロセスがInterConnectにリクエストを送信してリプライを受信するときに、次のステップが実行されます。
ICMsgType
の値をチェックして、メッセージを単純メッセージとして送信するかリクエスト・メッセージとして送信するかを確認します。
correlation id
要素も追加されます。この要素は、レスポンスをリクエストにマップするために使用されます。
correlation id
が含まれています。 BPELプラグインがcorrelation id
要素を抽出してメッセージのインバウンド・ヘッダーに入れます。これがメッセージ・エンドポイントに配信されます。
onMessage
メソッドを起動して、受信したメッセージをBPELプロセスに配信します。
このシナリオでは、BPELプロセスが同期的にInterConnectからリクエストを受信してリプライを送信します。 この相互作用には、図A-9に示すように、Oracle BPEL Process Managerでの受信およびリプライ・アクティビティと、OracleAS Integration InterConnectでの実装プロシージャが関係します。
BPELプロセスがOracleAS Integration InterConnectからリクエストを受信してリプライを送信するときに、次のステップが実行されます。
correlation id
が含まれています。 BPEL-ICアダプタがcorrelation id
を抽出してメッセージのインバウンド・ヘッダーに入れます。これがメッセージ・エンドポイントに配信されます。
onMessage
メソッドを起動して、受信したメッセージをBPELプロセスに配信します。
correlation id
要素が追加されます。
スタンドアロンBPELサーバーから同じホスト上の中間層BPELサーバーにBPELプロセスを配置する場合は、bpel.xml
ファイルのport
パラメータを手動で更新する必要があります。 これは、スタンドアロン・インストールと中間層インストールでは、使用されるポート番号が異なるためです。
ただし、スタンドアロンBPELサーバーから他のホスト上の中間層BPELサーバーにBPELプロセスを配置する場合は、bpel.xml
ファイルのport
およびhost
パラメータを手動で更新する必要があります。 これは、BPELプロセスの開発に使用されたBPELサーバーのホストとポートが、移動先BPELサーバーとは異なる場合があるためです。
Oracle BPEL Process ManagerとOracleAS Integration InterConnect間の相互作用シナリオについて、次の一時構成タスクを実行します。
oc4j-ra.xml
に、接続情報およびアプリケーション名とともに各種InterConnectハブ用のコネクション・ファクトリのJNDIロケーションを追加します。 oc4j-ra.xml
ファイルを編集して次の情報を変更します。このファイルは、ORACLE_BPELHOME
/integration/bpelpm/orabpel/system/
appserver/OC4J/J2EE/home/application-deployements/default/ICAdapter
にあります。
<connector-factory location="eis/ICAdapter" connector-name="Interconnect
Adapter
">
<config-property name="applicationName" value="BPELServer
"/>
<config-property name="connectionString"
value="jdbc:oracle:thin:@HostName:PortNo:SID
"/>
<config-property name="userName" value="ichub904
"/>
<config-property name="password" value="ichub904
"/>
<config-property name="repoName" value="InterConnectRepository
"/>
BPEL_HOME
/integration/orabpel/system/appserver/oc4j/j2ee/home/config
ディレクトリにあるapplication.xml
ファイルで、BPELサーバーのCLASSPATHにInterConnectのoai.jar
ファイルのパスを指定します。 たとえば次のようになります。
<library path="C:¥oracle¥ORACLEMIDDLETIER¥integration¥interconnect¥lib¥oai.jar"/>
OracleBPELPMHOME
¥integration¥orabpel¥system¥services¥config¥
ディレクトリにあるpc.properties
ファイルで、InterConnectリポジトリがCORBAベースであるかRMIベースであるかを指定します。 InterConnectリポジトリがCORBAベースの場合は、pc.properties
ファイルのoracle.tip.adapter.ic.repoConnMode
パラメータの値をCORBA
として指定し、それ以外の場合はRMI
として指定します。 このパラメータのデフォルト値はRMI
です。
構成後は、InterConnectリポジトリを再起動する必要があります。
この項では、次の統合シナリオを設計して実行する方法について説明します。
NewCustomer
イベントをパブリッシュします。
NewCustomer
イベントをサブスクライブします。
AddCustomer
イベントをInterConnectハブ・キューにパブリッシュします。
AddCustomer
イベントをサブスクライブし、承認済の顧客データをデータベースに挿入します。
次の図は、このシナリオの概要を示しています。
このシナリオは次のステップで構成されています。
この例は、アクティビティやパートナ・リンクなどの基本的なBPEL構成メンバーと、BPELプロセスの作成と配置に使用するJDeveloper環境をよく理解していることを前提としています。
XSDファイルの作成このユースケース用に次のファイルを作成する必要があります。
AddCustomerCommonView.xsd
: このファイルの作成には次のコードを使用します。
<?xml version="1.0"?> <schema targetNamespace= "http://oracle.com/interconnect/customer/event/addCustomer" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://oracle.com/interconnect/customer/event/addCustomer"> <element name="Customer" type="ns1:customerType"/> <complexType name="customerType"> <sequence> <element name="id" type="string"/> <element name="title" type="string"/> <element name="name" type="string"/> <element name="email" type="string"/> <element name="street" type="string"/> <element name="city" type="string"/> <element name="state" type="string"/> <element name="zip" type="string"/> </sequence> </complexType> </schema>
NewCustomerCommonView.xsd
: このファイルの作成には次のコードを使用します。
<?xml version="1.0"?> <schema targetNamespace= "http://oracle.com/interconnect/customer/event/newCustomer" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://oracle.com/interconnect/customer/event/newCustomer"> <element name="Customer" type="ns1:customerType"/> <complexType name="customerType"> <sequence> <element name="ID" type="string"/> <element name="Title" type="string"/> <element name="FirstName" type="string"/> <element name="LastName" type="string"/> <element name="Email" type="string"/> <element name="Address" type="ns1:addressType"/> </sequence> </complexType> <complexType name="addressType"> <sequence> <element name="Street" type="string"/> <element name="City" type="string"/> <element name="State" type="string"/> <element name="Zip" type="string"/> </sequence> </complexType> </schema>
NewCustomerFileAppView.xsd
: このファイルの作成には次のコードを使用します。
<?xml version="1.0"?> <schema targetNamespace= "http://oracle.com/interconnect/customer/event/newCustomer" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://oracle.com/interconnect/customer/event/newCustomer"> <element name="Customer" type="ns1:customerType"/> <complexType name="customerType"> <sequence> <element name="ID" type="string"/> <element name="Action" type="string"/> <element name="Name" type="string"/> <element name="Addr" type="ns1:addressType"/> </sequence> </complexType> <complexType name="addressType"> <sequence> <element name="Street" type="string"/> <element name="City" type="string"/> <element name="State" type="string"/> <element name="Zip" type="string"/> </sequence> </complexType> </schema>
次のSQLスクリプトも実行します。
/* ************************************ Create DBAPP Schema ************************************ */ CREATE USER DBAPP PROFILE DEFAULT IDENTIFIED BY WELCOME1 DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP ACCOUNT UNLOCK; /* ************************************ Grant Privileges to DBAPP Schema ************************************ */ GRANT RESOURCE TO DBAPP; GRANT CONNECT TO DBAPP; GRANT EXECUTE ON DBMS_AQ TO DBAPP; GRANT EXECUTE ON UTL_RAW TO DBAPP; GRANT EXECUTE ON DBMS_AQADM TO DBAPP; GRANT EXECUTE ON DBMS_AQIN TO DBAPP; GRANT EXECUTE ANY PROCEDURE TO DBAPP; /* ************************************ Create DBAPP.Customer Table ************************************ */ CREATE TABLE DBAPP.Customer_table ( CustomerId NUMBER NOT NULL, FirstName VARCHAR2(30), LastName VARCHAR2(30), Title VARCHAR2(30), BusinessName VARCHAR2(255), CustomerType VARCHAR2(1), EmailAddress VARCHAR2(255), Address VARCHAR2(30), City VARCHAR2(300), State VARCHAR2(30), Zip NUMBER ) /
さらに、Oracle BPEL Process Managerを、BPELプラグインと併用できるように構成する必要があります。 詳細は、A.3項「構成」を参照してください。
iStudioで共通ビューを作成する手順は、次のとおりです。
ICInteroperability
と入力し、「OK」をクリックします。 「ハブ情報」ダイアログ・ボックスが表示されます。
Customer
と入力します。
AddCustomerCommonView.xsd
を使用して別のイベントAddCustomer
を作成します。
NewCustomer
イベントをパブリッシュするFTPアプリケーションを作成する手順は、次のとおりです。
FTPAPP
と入力し、「OK」をクリックします。
NewCustomerFileAppView.xsd
を選択して「OK」をクリックします。 「XSDルート要素の選択」ダイアログ・ボックスが表示されます。
,
」を入力します。
NewCustomer
イベントをサブスクライブするBPELアプリケーションを作成する手順は、次のとおりです。
BPELServer
と入力し、「OK」をクリックします。
Oracle BPEL Process ManagerからOracleAS Integration InterConnectにAddCustomer
イベントをパブリッシュするBPELアプリケーションを作成する手順は、次のとおりです。
AddCustomer
イベントをサブスクライブするデータベース・アプリケーションを作成する手順は、次のとおりです。
DBAPP
と入力し、「OK」をクリックします。
「共通ビュー」のフィールド | DBAPPビューのフィールド |
---|---|
Title |
TITLE |
|
|
Street |
ADDRESS |
City |
CITY |
State |
STATE |
Zip |
ZIP |
,
」を指定します。
DBAPPアプリケーションのサブスクライブ・イベント用に生成したストアド・プロシージャを配置する手順は、次のとおりです。
BPELサーバーとJDeveloper BPEL Designerが起動していることを確認します。 BPEL PM Serverを起動するには、「スタート」→「すべてのプログラム」→「Oracle - Oracle_Home」→「Oracle BPEL Process Manager version_number」→「Start BPEL PM Server」を順番に選択します。
JDeveloper BPEL Designerを起動するには、「スタート」→「すべてのプログラム」→「Oracle - Oracle_Home」→「Oracle BPEL Process Manager version_number」→「JDeveloper BPEL Designer」を順番に選択します。
受信アクティビティを作成する手順は、次のとおりです。
BPELICIntegration
と入力し、「ディレクトリ名」フィールドでデフォルトのパスを指定します。
CustomerCreation
と入力します。
bpel.xml
、CustomerCreation.bpel
、CustomerCreation.wsdl
およびbuild.xml
ファイルが作成されます。
ReceiveFromIC
と入力します。
LocalBPELServer
、adapters、InterConnect、eis-ICadapter-BPELServer、Subscribed Events、Customer.NewCustomerを順番に選択して「OK」をクリックします。
前述の手順を実行すると、図A-23に示す「パートナ・リンクの作成」ダイアログ・ボックスが表示されます。
顧客作成リクエストの手動承認または拒否を処理するユーザー・タスクを追加する手順は、次のとおりです。
インボーク・アクティビティを作成する手順は、次のとおりです。
SendApprovedCustomer
と入力します。
SendToIC
を選択します。
SendApprovedCustomer_publish_InputVariable
という変数が自動的に作成されます。
前述の手順を実行すると、図A-30に示す「パートナ・リンクの作成」ダイアログ・ボックスが表示されます。
BPELプロセスの設計後に、プロセスをコンパイルしてOracle BPEL Serverに配置する必要があります。 コンパイルと配置に成功すると、Oracle BPEL ConsoleからBPELプロセスを実行し、管理できます。
実行時には、受信ペイロードがコピーされる入力ディレクトリをポーリングするようにFTPアダプタを構成する必要があります。 FTPアダプタの構成方法については、『Oracle Application Server Integration InterConnect Adapter for FTPインストレーションおよびユーザーズ・ガイド』を参照してください。
実行時に、新規顧客に関する情報を含んだXMLファイルを、InterConnect FTPアダプタによりファイルが読み取られるフォルダにコピーします。 次の例は、入力XMLファイルの例を示しています。
<?xml version="1.0" encoding="UTF-8" ?> <Customer xmlns="http://oracle.com/interconnect/customer/event/newCustomer"> <ID xmlns="">1234</ID> <Action xmlns="">Action11</Action> <Name xmlns="">Name12</Name> <Addr xmlns=""> <Street>Street13</Street> <City>City14</City> <State>State15</State> <Zip>4567</Zip> </Addr> </Customer>
FTPアダプタは、このファイルをOAIハブに送信します。 このファイルを、OAIハブからCustomerCreation
BPELプロセスが受信します。 プロセスは、図A-31に示すようにユーザーによる承認を待機します。
「BPELコンソール」を使用してリクエストを受け入れるか拒否できます。 承認後は、CustomerCreation
BPELプロセスによりAddCustomer
メッセージがInterConnectハブ・キューに送信されます。 このメッセージをInterConnectデータベース・アダプタが受信し、Customer_table
表に新規顧客データを挿入します。
|
![]() Copyright © 2006 Oracle Corporation. All Rights Reserved. |
|