この章の構成は、次のとおりです。
ここでは、サンプルを使用するために必要なコンポーネントとシステムの準備方法について説明します。
前提条件
この例を使用するために必要なインストールと構成の要件は次のとおりです。
Microsoft Windows XPまたはWindows Server 2003が動作し、1GBのRAMを搭載したパーソナル・コンピュータであること。
使用しているTuxedoアダプタ(Tuxedo、Tuxedo QueueまたはTuxedo Gateway)をOracle Application Serverに配置してあること。
OracleAS Tuxedo Adapterをアウトバウンドまたはインバウンド処理用に構成してあること。
Oracle JDeveloperをインストールしてあること。
レガシー・アダプタを配置してあること。
必要なマシンがロードされたOracle Studioがあること。「Oracle StudioでのOracleAS Adapter for Tuxedoの構成」を参照してください。
この章では、BPELを使用してOracle Tuxedoアダプタを使用する場合の構成手順の例を示します。これらの例を使用する前に、次のことをよく理解していることが必要です。
J2CA接続の作成方法。 詳細は、第6章「OC4JとのOracleAS Adapter for Tuxedoの統合」を参照してください。
Oracle Studioを使用したOracleAS Adapters for Tuxedoの構成方法。 詳細は、第3章「OracleAS Adapter for Tuxedoの構成」を参照してください。
OracleAS Adapters for TuxedoとBPELを統合するには、次のプロセスを実行します。
デザインタイム: 第3章「OracleAS Adapters for Tuxedoの構成」で説明されているように、OracleAS Adapters for TuxedoはOracle Studioで構成します。
ランタイム: BPELプロセスをJDeveloperで配置した後、構成をテストできます。「ランタイムの構成」を参照してください。
この項では、Tuxedoアダプタに接続するBPELインバウンド・プロセスの作成方法について説明します。
BPEL Process Managerでプロセスを構成するには、JDeveloperを使用します。 この項では、JDeveloperを使用してTuxedoアダプタ用のBPELインバウンド・プロセスを作成する方法について説明します。 このインバウンド・プロセスのサンプルの実行には、次の2つの構成タイプが必要です。
インバウンド・プロセスを設計する前に、OracleAS Adapter for TuxedoとBPEL Process Managerの統合と接続を確認します。詳細は、第7章「Oracle BPEL Process ManagerとのOracleAS Adapter for Tuxedoの統合」を参照してください。
インバウンド・プロセスの設計を始める前に、次のことを実行する必要があります。
OracleAS Adapter for VSAMをOC4Jと統合します。詳細は、「OC4JとのOracleAS Adapter for Tuxedoの統合」を参照してください。
J2CA VSAMリソース・アダプタに対する接続を構成します。この作業は、コネクション・ファクトリを作成して行います。 この方法の詳細は、「Tuxedo Queueインバウンド・アダプタの構成」を参照してください。
スキーマ・ファイルを記述します。まず、Oracle Studioを使用してfindDoctor
という相互作用を作成します。 詳細は、「Tuxedo Queueインバウンド・アダプタの構成」を参照してください。
BPEL PMサーバー接続をJDeveloperで作成します。
相互作用のためのWSDLを作成します。この作業は、JDeveloperでエンドポイントの作成を始める前に、JDeveloper接続エクスプローラで行います。作成した相互作用に基づいて、JDeveloperによりWSDLが自動的に作成されます。 接続エクスプローラで、Oracle Studioで構成したOracle Connectサーバーを参照し(「Oracle Connectのインストール」を参照)、「findDoctor」という相互作用をダブルクリックし、WSDLを表示して作成します。
この項では、BPELインバウンド・プロセスを配置するために必要なデザインタイムの手順について説明します。
JDeveloperを使用して、使用しているOracleASアダプタへのパートナ・リンクを作成します。 このプロセスはアダプタによって開始されるため、インバウンド・プロセスによってOracleASタイプが定義されます。 BPELプロジェクトを作成する手順は、次のとおりです。
JDeveloperの「表示」メニューで、「アプリケーション・ナビゲータ」を選択し、次に「作成」を選択して新しいアプリケーションを作成します。 「アプリケーションの作成」ダイアログ・ボックスが表示されます。
「アプリケーション名」フィールドに、BPELAppDemoなどの名前を入力します。
「アプリケーション・ナビゲータ」タブで、ステップ2で作成したアプリケーションを右クリックし、「新規プロジェクト」を選択します。「新規ギャラリ」ダイアログ・ボックスが表示されます。
「項目」リストで、「BPELプロセス・プロジェクト」を選択して、「OK」をクリックします。「BPELプロジェクト作成ウィザード-プロジェクトの設定」ダイアログ・ボックスが表示されます。
「BPELプロジェクト作成ウィザード-プロジェクトの設定」ダイアログ・ボックスで、次の作業をします。
BPELプロセスの名前を入力します。たとえば、BPELInbound1と入力します。
「テンプレート」リストで、「空のBPELプロセス」を選択します。
「次へ」をクリックして、入出力のスキーマ要素を確認するか、「終了」をクリックします。
インバウンド・プロセスの設計手順を始める前に、使用するWSDLファイルをWindowsファイル・システムで検索します。 このファイルをテキスト・エディタで開き、XSDスキーマ・セクションを新しいファイルにコピーします。 ファイルをmessage.xsd
という名前で保存します。
インバウンドWSDLの使用の詳細は、「インバウンドWSDLの構成」を参照してください。
BPELインバウンド・プロセスを定義する手順は、次のとおりです。
「コンポーネント・パレット」-「プロセス・アクティビティ」ペインから、「BPELインバウンド・プロセス用のBPELプロジェクトの作成」のステップで作成したプロセスのエディタに「Receive」、「Assign」および「Invoke」の各プロセスをドラッグします。
「パートナ・リンク」をビジュアル・エディタのサービス・レーンにドラッグします。「パートナ・リンクの作成」ダイアログ・ボックスが表示されます。
「パートナ・リンクの作成」ダイアログ・ボックスで、「サービス・エクスプローラ」ボタンをクリックします。このボタンは左から2番目のボタンで、前のステップの図に示されています。
「サービス・エクスプローラ」ダイアログ・ボックスが表示されます。
サービス・エクスプローラで、使用する接続、アダプタ、アプリケーションの順に開き、使用するWSDLファイルが見つかるまで参照を続けます。
ファイルを選択し、「OK」をクリックします。
選択したWSDLファイルへのパスが、「パートナ・リンクの作成」ダイアログ・ボックスの「WSDLファイル」フィールドに表示されます。WSDLファイルに定義されているパートナ・リンクが、「パートナ・リンク・タイプ」フィールドに表示されます。
「パートナ・リンクの作成」ダイアログ・ボックスで次の作業をします。
「パートナ・ロール」リストで、「指定されていません」を選択します。
「マイ・ロール」リストで、選択されているWSDLファイルのロールを選択します。
「OK」をクリックします。 新しいパートナ・リンクがビジュアル・エディタに表示されます。 ファイルを保存します。
ビジュアル・エディタで、「Receive」アクティビティをパートナ・リンクに接続します。Receiveの編集ダイアログ・ボックスが開きます。
Receiveの編集ダイアログ・ボックスで、次の作業をします。
Receiveアクティビティの名前を入力します。
変数を必ず作成します。 「変数」フィールドの右側の最初のボタンをクリックし、表示される「変数の作成」ダイアログ・ボックスで「OK」をクリックします。
「インスタンスの作成」チェック・ボックスが選択されていることを確認します。
「OK」をクリックし、ダイアログ・ボックスを閉じて、情報を受け入れます。
この項では、使用しているアダプタ・ファイルへの接続を作成する方法について説明します。 接続を作成する手順は、次のとおりです。
ファイル・アダプタを作成し、WriteRes
などの名前を付けます。
「次へ」をクリックし、「Write File」を選択します。 ファイルにWrite Message
などの名前を付けます。
「次へ」をクリックし、書込み先のメッセージ・ファイルのパスを入力します。
メッセージ・スキーマの選択画面で、ファイルmessage.xsd
を参照します。 このファイルはこのプロセスの開始前に作成されています。 詳細は、「BPELインバウンド・プロセスの設計」を参照してください。
「メッセージ・タイプ」で「bigOrderEvent
」を選択し、「OK」をクリックします。
Invokeアクティビティに対し、デフォルト名を使用して入力変数を作成します。
Assignedアクティビティに対し、コピー操作を作成します。
作成したBPELインバウンド・プロセスを配置する手順は、次のとおりです。
「アプリケーション・ナビゲータ」ペインでプロセス・フローを右クリックします。
「デプロイ」を選択してBPEL PMサーバー接続を選択し、「デフォルトのドメインに配布」を選択します。
プロンプトが表示されたら、BPEL PMサーバーのパスワードを入力し、「OK」をクリックします。
デプロイメント・プロセスが自動的に開始されます。
この項では、プロジェクトをテストして、インバウンド・プロセスが正しく実行されることを確認するための方法について説明します。 XMLユーティリティを使用して、作成したファイル・アダプタに定義されているイベントをOracle Connectで呼び出します。 「接続の作成」を参照してください。 このイベントはOracle Connectから呼び出されるため、インバウンド・イベントになります。 OracleASのSOAサービスで開始されるイベントはアウトバウンド・イベントです。 詳細は、「BPELアウトバウンド・プロセスの配置」を参照してください。 インバウンドのランタイムの構成には、「XMLユーティリティを使用したイベントのトリガ」という1つのステップがあります。
XMLユーティリティを使用してSQL文を作成し、リクエストしているイベントをトリガします。 イベントをトリガする手順は、次のとおりです。
「スタート」メニューから「すべてのプログラム」→「Oracle」→「サーバー・ユーティリティ」→「XMLユーティリティ」を選択します。 XMLユーティリティが表示されます。
次の情報をXMLユーティリティの「接続」セクションに入力します。
サーバー: Tuxedo用OracleASアダプタが配置されているマシンの名前。
ワークスペース: Tuxedo用OracleASアダプタが配置されているワークスペースの名前。 使用可能なワークスペースのリストがこのフィールドのリストに表示されます。 ワークスペースはOracle Studioで定義します。
アダプタ: Tuxedo用OracleASアダプタの名前。 使用可能なアダプタのリストがこのフィールドのリストに表示されます。 アダプタはOracle Studioで定義します。
「接続」をクリックして、選択されているマシンに接続します。
「相互作用」フィールドに、呼び出す相互作用の名前を入力します。 これはOracle Studioで定義します。
「入力」ウィンドウに、相互作用を呼び出す文を入力します。 上の図の例を参照してください。
「実行」をクリックします。 実行に成功すると、次の例のような出力が返されます。
<?xml version="1.0"?> <bigOrderEvent ORDER_ID="1"ORDERED_BY="1" xmlns+"noNamespace://ordersQueue"/>
この項では、Tuxedoアダプタに接続するBPELアウトバウンド・プロセスの作成方法について説明します。
BPEL Process Managerでプロセスを構成するには、JDeveloperを使用します。 この項では、JDeveloperを使用してTuxedoアダプタ用のBPELアウトバウンド・プロセスを作成する方法について説明します。次のセクションでは、BPELアウトバウンド・プロセスの配置方法について説明します。 このアウトバウンド・サンプルの実行には、次の2つの構成タイプが必要です。
アウトバウンド・プロセスを設計する前に、OracleAS Adapter for TuxedoとBPEL Process Managerの統合と接続を確認します。詳細は、第7章「Oracle BPEL Process ManagerとのOracleAS Adapter for Tuxedoの統合」を参照してください。
アウトバウンド・プロセスの設計をはじめる前に、次のことを実行する必要があります。
OracleAS Adapter for VSAMをOC4Jと統合します。詳細は、「OC4JとのOracleAS Adapter for Tuxedoの統合」を参照してください。
J2CA VSAMリソース・アダプタに対する接続を構成します。この作業は、コネクション・ファクトリを作成して行います。 この方法の詳細は、「J2CA 1.5 Tuxedo Gateway同期インバウンド・アダプタの構成」を参照してください。
BPEL PMサーバー接続をJDeveloperで作成します。
相互作用のためのWSDLを作成します。この作業は、JDeveloperでエンドポイントの作成を始める前に、JDeveloper接続エクスプローラで行います。作成した相互作用に基づいて、JDeveloperによりWSDLが自動的に作成されます。 接続エクスプローラで、Oracle Studioで構成したOracle Connectサーバーを参照し(「WindowsプラットフォームでのOracle Connectのインストール」を参照)、「findDoctor」という相互作用をダブルクリックし、WSDLを表示して作成します。
このセクションでは、2つのBPELアウトバウンド・プロセスを配置するために必要なデザインタイムの手順について説明します。 これらのプロセスでは、TOUPPERというWebサービスが使用されています。 このサービスは、小文字の文字列を読み取り、大文字で書き込みます。アウトバウンド・プロセスを作成するために必要な手順は、次のとおりです。
アウトバウンド・プロセスを設計する前に、Oracle Studioを使用してToupper
相互作用を定義してください。 次に、TOUPPERSchema.xsd
というスキーマ・ファイルを作成してメッセージ・スキーマを定義します。 TOUPPERSchema.xsd
ファイルの例を次に示します。
<schema targetNamespace="http://xmlns.oracle.com/Esb/ToUpperData" xmlns:cust="http://xmlns.oracle.com/Esb/ToUpperData" xmlns="http://www.w3.org/2001/XMLSchema"> <element name="ToUpperData" type="cust:ToUpperDataType"/> <complexType name="ToUpperDataType"> <sequence> <element name="Record1" type="string"/> </sequence> </complexType></schema>
アウトバウンド用のBPELプロジェクトを作成するには、次の作業をします。
JDeveloperの「表示」メニューで、「アプリケーション・ナビゲータ」を選択します。
アプリケーション・ナビゲータで、使用するアプリケーションを右クリックして、「新規プロジェクト」を選択します。「新規ギャラリ」ダイアログ・ボックスが表示されます。
「項目」リストで、「BPELプロセス・プロジェクト」を選択して、「OK」をクリックします。「BPELプロジェクト作成ウィザード-プロジェクトの設定」ダイアログ・ボックスが表示されます。
「BPELプロジェクト作成ウィザード-プロジェクトの設定」ダイアログ・ボックスで、次の作業をします。
BPELプロセスの名前を入力します。たとえば、BPELOutbound1と入力します。
「テンプレート」リストで、「空のBPELプロセス」を選択します。
「次へ」をクリックして、入出力のスキーマ要素を確認するか、「終了」をクリックします。
ファイルを文字列入力として読み取るためのファイル・アダプタを作成します。 SOAはこの文字列を読み取り、リソース・アダプタに渡します。 リソース・アダプタはこの文字列の情報を処理し、大文字で返します。 ファイル・アダプタを作成する手順は、次のとおりです。
「パートナ・リンク」をビジュアル・エディタのサービス・レーンにドラッグします。「パートナ・リンクの作成」ダイアログ・ボックスが表示されます。
アダプタ・ウィザード・ボタンをクリックします。前述の図に示すとおり、このボタンは、「パートナ・リンクの作成」ダイアログ・ボックスの「WSDL設定」セクションの3番目のボタンです。
アダプタ構成ウィザードに、次の情報を入力します。
ステップ1、「アダプタ・タイプ」: 「ファイル・アダプタ」を選択します。
ステップ2、「サービス名」: ReadStr
と入力します。
ステップ3、「操作」:
「操作タイプ」: 「Read File」を選択します。
「操作名」: ReadLowerStr
と入力します。
ステップ4、「ファイル・ディレクトリ」
ディレクトリ名は次の方法で指定します: 「物理パス」を選択します。
着信ファイル用のディレクトリ(物理パス): 着信ファイルを保存するフォルダへのフルパスを入力します。たとえば、C:\temp
のように入力します。
ステップ5、「ファイルのフィルタ処理」
インクルード・ファイルの名前パターン: *xml
と入力します。
ステップ6、「ファイル・ポーリング」:
ポーリング頻度: 1
と入力して、リストから「秒」を選択します。
ステップ7、「メッセージ」:
スキーマ・ファイルのURL: TOUPPERSchema.xsd
と入力します。
スキーマ要素: ToUpperData
と入力します。
「Finish」をクリックします。
このステップでは、BPELプロセスを設計します。BPELアウトバウンド・プロセスを設計するには、次の作業をします。
「コンポーネント・パレット」-「プロセス・アクティビティ」ペインから、「BPELアウトバウンド・プロセス用のBPELプロジェクトの作成」のステップで作成したプロセスのエディタに「Receive」、「Assign」および「Invoke」の各アクティビティをドラッグします。
ビジュアル・エディタで、「Receive_1」アクティビティをReadStrファイル・アダプタに接続します。Receiveの編集ダイアログ・ボックスが開きます。
Receiveの編集ダイアログ・ボックスで、次の作業をします。
Receiveアクティビティの名前を入力します。たとえば、Receive_1
のように入力します。
変数を必ず作成します。「変数」フィールドの右側の最初のボタンをクリックし、表示される「変数の作成」ダイアログ・ボックスで「OK」をクリックします。
「インスタンスの作成」チェック・ボックスが選択されていることを確認します。
「OK」をクリックし、ダイアログ・ボックスを閉じて、情報を受け入れます。
このステップでは、使用しているTuxedoアダプタへのパートナ・リンクを作成します。パートナ・リンクを作成するには、次の作業をします。
「パートナ・リンク」をビジュアル・エディタのサービス・レーンにドラッグします。「パートナ・リンクの作成」ダイアログ・ボックスが表示されます。
「パートナ・リンクの作成」ダイアログ・ボックスで、「サービス・エクスプローラ」ボタンをクリックします。このボタンは左から2番目のボタンで、前のステップの図に示されています。「サービス・エクスプローラ」ダイアログ・ボックスが表示されます。
サービス・エクスプローラで、使用する接続、アダプタ、アプリケーションの順に開き、使用するWSDLファイルが見つかるまで参照を続けます。ファイルを選択し、「OK」をクリックします。
選択したWSDLファイルへのパスが、「パートナ・リンクの作成」ダイアログ・ボックスの「WSDLファイル」フィールドに表示されます。WSDLファイルに定義されているパートナ・リンクが、「パートナ・リンク・タイプ」フィールドに表示されます。
「パートナ・リンクの作成」ダイアログ・ボックスに、次の情報を入力します。
「パートナ・ロール」リストで、「TOUPPERRole」を選択します。
「マイ・ロール」リストで、「指定されていません」を選択します。
ビジュアル・エディタに追加したInvoke_1
アクティビティを編集して、TOUPPER
サービスが起動するようにします。Invoke_1
アクティビティを編集するには、次のようにします。
Invoke_1
アクティビティをダブルクリックして編集します。「Invoke」ダイアログ・ボックスが表示されます。
「Invoke」ダイアログ・ボックスで、「パートナ・ロールWebサービス・インタフェース」セクションに次の値が設定されていることを確認します。
パートナ・リンク: TOUPPER
操作: TOUPPER
「入力変数の自動作成」ボタンをクリックします。このボタンは、「入力変数」フィールドの右の最初のボタンで、前のステップの図に示されています。「変数の作成」ダイアログ・ボックスに入力変数が表示されます。
「入力変数」はInvoke_1_TOUPPER_InputVariable
にします。「OK」をクリックします。
「出力変数」フィールドの「入力変数の自動作成」ボタンをクリックします。
「出力変数」はInvoke_1_TOUPPER_OutputVariable
にします。「OK」をクリックします。
Assignアクティビティを使用して、リソース・アダプタに値を割り当てます。Assign_1
アクティビティを編集するには、次のようにします。
Assign_1
アクティビティをダブルクリックして編集します。「Assign」ダイアログ・ボックスが表示されます。
「作成」リストをクリックして、「コピー操作」を選択します。「コピー操作の作成」ダイアログ・ボックスが表示されます。
「From」側で「変数」→「Read_1_ReadLowerStr_InputVariable」→「nsx:ToUpperData」の順に開いて、「Record1」を選択します。
「To」側で、「変数」→「Read_1_ReadLowerStr_InputVariable」→「input:ToUPPER」→「nsx:Record1」の順に開いて、「Record1_data」を選択します。
「OK」をクリックします。「Assign」ウィンドウの「コピー操作」タブが更新されて、作成した規則が表示されます。
小文字の文字列を読み取るプロセスを作成した後、文字列を大文字で書き込む別のプロセスを作成します。 文字列を大文字で書き込むプロセスを作成する手順は、次のとおりです。
「文字列を読み取るためのファイル・アダプタの作成」の手順に従ってファイル・アダプタを作成します。 文字列を書き込むには、次の値を使用します。
サービス名: WriteStr
操作タイプ: Write File
操作名: WriteUpperStr
着信ファイル用のディレクトリ: C:\tempOut
「ファイル名パターン」: *.xml
AssignアクティビティとInvokeアクティビティをビジュアル・エディタに追加します。
Invoke_2アクティビティをダブルクリックして編集します。 Invokeアクティビティの編集方法の詳細は、「Invoke_1アクティビティの編集」を参照してください。 Invoke_2アクティビティには次の値を使用します。
パートナ・リンク: WriteStr
操作: WriteStr
入力変数: Invoke_2_WriteStr_InputVariable
出力変数: Invoke_1_TOUPPER_OutputVariable
Assign_2
アクティビティをダブルクリックして編集します。 Assignアクティビティの編集方法の詳細は、「Assign_1アクティビティの編集」を参照してください。 Assign_2アクティビティには次の値を使用します。
「From」側: 「変数」→「Invoke_1_TOUPPER_InputVariable」→「output:ToUPPER」→「nsx:TOUPPER_Response」の順に開いて、「Record1_data」を選択します。
「To」側: 「変数」→「Invoke_2_1_WriteStr_InputVariable」→「ToUpperData」→「nsx:ToUpperData」の順に開いて、「Record1」を選択します。
次の図は、最後のプロセスの概要を示しています。
このセクションでは、プロジェクトをテストして、アウトバウンド・プロセスが正しく実行されることを確認するための方法について説明します。アウトバウンド・プロセスをテストするには、次の作業をします。
次の例に示すように、ファイルを作成してToUpperIn.xml
という名前にします。
<?xml version="1.0" encoding="UTF-8"?><CU:ToUpperData xmlns:CU="http://xmlns.oracle.com/Esb/ToUpperData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Record1>tuxedo</Record1></CU:ToUpperData>
最初のファイル・アダプタ用に定義したC:\temp
フォルダにファイルを保存します。 SOAサーバーがファイルを読み取って処理を完了すると、ファイルは削除されます。
2番目のファイル・アダプタで定義したC:\tempOut
フォルダを開きます。次の内容のファイルがこのフォルダにコピーされます。
<?xml version="1.0"?> <ToUpperData xmlns="http://xmlns.oracle.com/Esb/ToUpperData"> <Record1 xmlns>="">TUXEDO</Record1>