ヘッダーをスキップ

Oracle BPEL Process Manager クイック・スタート・ガイド
10g(10.1.3.1.0)

B31876-01
目次
目次
索引
索引

戻る 次へ

2 信用フローのチュートリアル

このチュートリアルでは、Oracle JDeveloperを使用して、初めてのBPELプロセスを設計、デプロイおよびテストする方法について説明します。

このチュートリアルの内容は次のとおりです。

信用フローの概要

このチュートリアルでは、Oracle JDeveloperを使用して、初めてのBPELプロセスを作成、デプロイおよびテストする方法について説明します。このプロセスは、信用格付けサービスをコールするように作成するフローです。このプロセスを実行する際には、社会保障番号をHTMLユーザー・インタフェースに入力します。信用格付けサービスは、その社会保障番号を受け取り、信用格付けを返します。このプロセスは、第3章「融資調達BPELプロセスの確認」で示すような、さらに高度なアプリケーションを作成するための第1歩として作成します。

チュートリアルの使用方法

このチュートリアルの内容は次のとおりです。

Oracle BPEL ServerとOracle JDeveloperの起動

Oracle JDeveloperとOracle BPEL Serverが起動していることを確認します。 手順は、「Oracle BPEL Process Managerコンポーネントの起動および停止」を参照してください。

サービスの起動とテスト

このチュートリアル中に、設計するBPELプロセスと「信用フローの概要」で説明した信用格付けサービスとの通信が行われます。まず、このサービスを起動し、動作することをテストする必要があります。

  1. 「スタート」→「すべてのプログラム」→「Oracle - Oracle_Home」→「Oracle BPEL Process Manager」→「Developer Prompt」を選択して、コマンド・プロンプトをSOA_Oracle_Home¥bpel¥samplesディレクトリで開きます。

  2. utils¥CreditRatingServiceサブディレクトリに移動します。

    cd utils¥CreditRatingService
    
  3. 次のコマンドを入力します。

    ant
    

    これにより、このチュートリアルで使用するために、信用格付けサービスがデプロイおよび起動されます。正常に行われた場合は、次のようなメッセージが最後に表示されます。

    BUILD SUCCESSFUL
    
  4. 「スタート」→「すべてのプログラム」→「Oracle - Oracle_Home」→「Oracle BPEL Process Manager」→「BPEL Control」を選択してOracle Enterprise Manager 10g BPEL Controlにログインします。

  5. Oracle Enterprise Manager 10g BPEL Controlにログインするための次の情報を入力して「ログイン」をクリックします。

    フィールド  値 

    ユーザー名 

    oc4jadmin 

    パスワード 

    password 

    passwordは、インストール時に「Oracle Application Server SOA Suiteのインストール」で入力した値です。

    CreditRatingService、TaskActionHandlerおよびTaskManagerの各サービスが「ダッシュボード」タブに表示されていれば、サービスはすべて稼働しています。

アプリケーションとプロジェクトの作成

はじめに、アプリケーションとプロジェクトを作成する必要があります。BPELプロセスの基本的な要素は、プロジェクトによって自動的に作成されます。これには、次のものが含まれます。

次の手順に従って、信用フロー・プロジェクトを新規作成します。


注意:

プロジェクト名に特殊文字(ピリオドなど)を含めないでください。特殊文字を含めると、プロジェクトのコンパイル時にエラーが表示されます。 


  1. Oracle JDeveloperに戻ります。

  2. メイン・メニューから「ファイル」→「新規」を選択します。

  3. 「項目」ウィンドウで「アプリケーション」をダブルクリックして、「アプリケーションの作成」ウィンドウを表示します。

  4. 「アプリケーション名」フィールドにmyBPELapplicationと入力し、「ディレクトリ名」フィールドではデフォルト・パスを使用します。

  5. 「OK」をクリックします。

  6. 「プロジェクトの作成」ウィンドウで「取消」をクリックします。

  7. 「アプリケーション・ナビゲータ」セクションで「myBPELapplication」を右クリックします。

  8. 「新規プロジェクト」を選択して、新しいBPELプロセス・プロジェクトを定義します。

  9. 「項目」ウィンドウで「BPELプロセス・プロジェクト」をダブルクリックして、「BPELプロジェクト作成ウィザード」ウィンドウを表示します。 このエントリが表示されない場合は、最初に「一般」→「プロジェクト」を選択します。

  10. 「名前」フィールドにmyCreditFlowと入力します。その他すべてのフィールドは、デフォルトで非同期BPELプロセスを作成するための的確な値になります。

  11. 「終了」をクリックします。 BPELプロセス・ファイルが、JDev_Oracle_Home¥jdev¥mywork¥myBPELapplication¥myCreditFlow¥bpelディレクトリに作成されます。

  12. 次のセクションが表示されます。 これらのセクションが表示されない場合は、Oracle JDeveloperで「ダイアグラム」をクリックして、「アプリケーション・ナビゲータ」→「インテグレーション・コンテンツ」セクションで「myCreditFlow.bpel」をクリックします。 Oracle JDeveloperの各セクションの詳細は、Oracle BPEL Process Manager開発者ガイドを参照してください。


    画像の説明

WSDLファイルのソース・コードの確認

ここでは、WSDLファイルのセクションを確認します。

  1. 「アプリケーション・ナビゲータ」セクションで「myCreditFlow.wsdl」をダブルクリックした後、ウィンドウ下部の「ソース」をクリックします。

  2. 次の部分のコードを確認します。2つのポート・タイプが、それぞれ一方向の操作で定義されています。一方の操作は、非同期プロセスを初期化します。他方の操作は、非同期レスポンスでクライアントへコールバックします。

    <portType name="myCreditFlow">
       <operation name="initiate">
          <input message="client:myCreditFlowRequestMessage"/>
       </operation>
    </portType>
    
    <!-- portType implemented by the requester of myCreditFlow BPEL process
    for asynchronous callback purposes
    -->
    <portType name="myCreditFlowCallback">
       <operation name="onResult">
          <input message="client:myCreditFlowResponseMessage"/>
       </operation>
    </portType>
    
  3. 次の部分のコードを確認します。この非同期プロセスのpartnerLinkTypeには、2つのロールがあります。一方のロールはサービス・プロバイダ用、他方のロールはリクエスト元用です。

    <plnk:partnerLinkType name="myCreditFlow">
       <plnk:role name="myCreditFlowProvider">
          <plnk:portType name="client:myCreditFlow"/>
       </plnk:role>
       <plnk:role name="myCreditFlowRequester">
          <plnk:portType name="client:myCreditFlowCallback"/>
       </plnk:role>
    </plnk:partnerLinkType>
    

BPELファイルのソース・コードの確認

ここでは、BPELファイルのセクションを確認します。

  1. 「myCreditFlow.bpel」をダブルクリックします。

  2. Designerウィンドウ下部の「ソース」をクリックします。

  3. 次の部分のコードを確認します。クライアント・インタフェース用に作成されたpartnerLinkには、myRoleとpartnerRoleの2つのロールがあります。通常、非同期BPELプロセスには、クライアント・インタフェース用のロールが2つあります。一方はフロー自体のためのロールで、入力操作を公開します。他方はクライアント用のロールで、非同期にコールバックされます。

    <partnerLinks>
       <partnerLink name="client" partnerLinkType="client:myCreditFlow"
       myRole="myCreditFlowProvider" partnerRole="myCreditFlowRequester"/>
    </partnerLinks>
    
  4. 次の部分のコードを確認します。プロセスの本体の<receive>アクティビティに続いて、リクエスト元への非同期コールバックを実行する<invoke>アクティビティが指定されています。非同期プロセスと同期プロセスの違いに注意してください。同期プロセスは、<reply>アクティビティを使用して、コール元へ同期的に応答します。

      <sequence name="main">
    
        <!-- Receive input from requestor. 
        Note: This maps to operation defined in myCreditFlow.wsdl
        -->
        <receive name="receiveInput" partnerLink="client"
     portType="client:myCreditFlow" operation="initiate" variable="inputVariable"
     createInstance="yes"/>
    
        <!-- Asynchronous callback to the requester.
         Note: the callback location and correlation id is transparently handled 
         using WS-addressing.
         -->
        <invoke name="callbackClient" partnerLink="client"
     portType="client:myCreditFlowCallback" operation="onResult"
     inputVariable="outputVariable"/>
      </sequence>
    </process>
    
  5. 「ダイアグラム」をクリックします。これで、BPELプロセスを設計する準備ができました。

XSDファイルの編集

BPELプロジェクトを作成したときに、デフォルトのXSDファイルが作成されています。

  1. 「アプリケーション・ナビゲータ」で、「myCreditFlow」→「インテグレーション・コンテンツ」→「スキーマ」の順に開きます。

  2. 「myCreditFlow.xsd」をダブルクリックします。


    画像の説明

  3. 「ソース」をクリックします。

    myCreditFlowProcessRequest要素が入力に使用されます。myCreditFlowProcessResponse要素が出力として返されます。

    <schema attributeFormDefault="unqualified"
          elementFormDefault="qualified"
          targetNamespace="http://xmlns.oracle.com/myCreditFlow"
          xmlns="http://www.w3.org/2001/XMLSchema">
          <element name="myCreditFlowProcessRequest">
                <complexType>
                      <sequence>
                            <element name="input" type="string"/>
                      </sequence>
                </complexType>
          </element>
          <element name="myCreditFlowProcessResponse">
                <complexType>
                      <sequence>
                            <element name="result" type="string"/>
                      </sequence>
                </complexType>
          </element>
    </schema>
    

    ここでは、WSDLファイルの入出力メッセージを編集します。 このWSDLファイルは、「信用フロー・プロセスの実行」でBPELプロセスを実行し、信用格付けをリクエストするときの対話に使用するユーザー・インタフェースに相当します。

  4. 「設計」をクリックします。

    XSDファイルのグラフィカル・ビューが「設計」ウィンドウに表示されます。 左下の「構造」セクションに、完全に開いた状態で編集できるようにXSDファイルの要素が表示されます。


    画像の説明

  5. 「構造」ウィンドウの最初の「要素 - input」をダブルクリックして、「elementのプロパティ」ウィンドウを表示します。

  6. inputをssnに変更します。

  7. 「OK」をクリックします。

  8. 「構造」ウィンドウの2つ目の「要素 - result」をダブルクリックして、「elementのプロパティ」ウィンドウを表示します。

  9. resultをcreditRatingに変更します。

  10. 「アドバンスト・プロパティ」タブをクリックします。

  11. 「type」セクションに移動して、「string」と表示されていることを確認します。

  12. 「string」をクリックします。

  13. 「string」の右にある「...」をクリックして「type」ウィンドウを表示します。

  14. 「名前」フィールドで、出力として返す「string」を「int」に置き換えます。

  15. 「OK」をクリックして、「type」ウィンドウと「elementのプロパティ」ウィンドウを閉じます。

    変更内容がXSDファイルの設計ビューに表示されます。


    画像の説明

  16. 「ファイル」メイン・メニューから「保存」を選択します。

  17. Designerウィンドウ上部の「myCreditFlow.xsd」の「x」をクリックして、XSDファイルを閉じます。

  18. 「アプリケーション・ナビゲータ」セクションで「myCreditFlow.bpel」をダブルクリックします。

  19. 「ダイアグラム」をクリックします。

設計フェーズにおけるプロジェクトの検証

BPELプロジェクトの設計時に、黄色の小さなフラグがアクティビティの上側に表示される場合があります。 これらのアクティビティは、正常に構成しても検証が済んでいない場合があります。

  1. プロセスを検証するには、Designerウィンドウの上部の「検証」をクリックします。

    図 2-1    プロセスの検証


    画像の説明

    アクティビティが正しく検証されると、フラグの表示がなくなります。

  2. 黄色のフラグが残っている場合は、アクティビティに検証エラーがあるか、プロセスの設計が未完成の可能性があります。

  3. 検証エラーの詳細と解決方法を表示するには、アクティビティの上にある黄色のフラグをクリックします。


    注意:

    プロセスをデプロイするとき、「信用フロー・プロセスの検証、コンパイルおよびデプロイ」に説明されているように、プロセスが自動的に検証、コンパイルされ、正常に終了した場合にはデプロイも実行されます。 


信用格付けサービス用のパートナ・リンクの作成と構成

ここでは、同期型の信用格付けサービス用のパートナ・リンクを作成および構成します。

この項では、次のタスクについて説明します。

信用格付けサービスのパートナ・リンクの作成

注意:

パートナ・リンクは、BPELプロセスと対話する外部サービスを定義します。信用格付けサービス用にパートナ・リンクを作成する必要があります。  

  1. Oracle JDeveloperの右上にある「コンポーネント・パレット」セクションのドロップダウン・リストで、「サービス」が選択されていることを確認します。

  2. 「サービス」セクションの下にあるPartnerLinkアクティビティを、Oracle JDeveloperの右側にドラッグ・アンド・ドロップします。

    「パートナ・リンクの作成」ウィンドウが表示されます。

  3. 次の値を入力して、信用格付けサービス用のパートナ・リンクを作成します。


    注意:

    下側の「WSDLファイル」フィールドでは、「サービスの起動とテスト」でデプロイした信用格付けサービスを自動的に選択するために、懐中電灯(左から2番目の「サービス・エクスプローラ」という名前のアイコン)をクリックして、次の図に示す「サービス・エクスプローラ」ウィンドウにアクセスします。 



    画像の説明

    フィールド  値 

    名前 

    CreditRatingService 

    WSDLファイル 

    このURLにアクセスするには、「サービス・エクスプローラ」の懐中電灯アイコンをクリックしてBPEL Services→「my_integration_server_connection」→「プロセス」→「デフォルト」→「CreditRatingService」の順に開いて選択します。

    my_integration_server_connectionは、手順17で指定したサーバー接続名です。

    http://localhost:8888/orabpel/default/CreditRatingService/CreditRatingService?wsdl

    関連項目: 「サービス・エクスプローラ」ウィンドウでWSDLファイルを追加しようとして、解析エラーが表示された場合は、「Webブラウザ設定でのホスト名の確認」を参照してください。 

    パートナ・リンク・タイプ 

    CreditRatingService 

    パートナ・ロール 

    CreditRatingServiceProvider 

    マイ・ロール 

    未指定のままにします。これは同期パートナ・リンクであり、ロールは必要ないためです。

     

  4. 「OK」をクリックします。

    「CreditRatingService」パートナ・リンクが設計ウィンドウの右側に表示されます。


    画像の説明

  5. 「ファイル」メイン・メニューから「保存」を選択します。

Scopeアクティビティの作成

概要:

この項では、まず、Scopeアクティビティを作成します。Scopeアクティビティは、独自のローカル変数、フォルト・ハンドラなどを保持できるアクティビティの集まりで構成されています。Scopeアクティビティは、プログラミング言語での{ }ブロックに似ています。

このScopeアクティビティ内で、クライアントの信用格付けのバックグラウンドが識別されます。 

  1. 「コンポーネント・パレット」セクションに移動して「プロセス・アクティビティ」を選択します。

  2. Scopeアクティビティを、receiveInputアクティビティとcallbackClientアクティビティの間にドラッグ・アンド・ドロップします。

  3. このScopeアクティビティをダブルクリックして、「Scope」ウィンドウを表示します。

  4. 「一般」タブの「名前」フィールドに、GetCreditRatingと入力します。

  5. 「OK」をクリックします。

  6. 「ファイル」メイン・メニューから「保存」を選択します。

Scopeアクティビティ内でのInvokeアクティビティの作成

概要:

この項では、Invokeアクティビティを作成します。Invokeアクティビティを使用すると、(パートナ・リンクによって識別された)サービスを起動するための操作を指定できます。

このInvokeアクティビティは、クライアントと信用格付けサービスとの間の最初の相互作用の操作となります。  

  1. 「+」記号をクリックして、GetCreditRating Scopeアクティビティを開きます。

  2. Invokeアクティビティを、「コンポーネント・パレット」セクションからGetCreditRating Scopeアクティビティ内にドラッグ・アンド・ドロップします。

  3. このInvokeアイコンをダブルクリックして、「起動」ウィンドウを表示します。

  4. 次の情報を入力します。

    フィールド  値 

    名前 

    invokeCRS 

    パートナ・リンク 

    CreditRatingService 

    「操作」(process)フィールドは自動的に入力されます。

  5. 「入力変数」フィールドの右側にある最初のアイコンをクリックします。これは、変数自動作成アイコンです。


    画像の説明

  6. 表示される「変数の作成」ウィンドウで「OK」をクリックします。

    invokeCRS_process_InputVariableという名前の変数が「入力変数」フィールドに自動的に作成されます。この変数には、メッセージ・タイプのCreditRatingServiceRequestMessageが自動的に割り当てられます。

  7. 「出力変数」フィールドの右側にある最初のアイコンをクリックします。

  8. 表示される「変数の作成」ウィンドウで「OK」をクリックします。

    invokeCRS_process_OutputVariableという名前の変数が「出力変数」フィールドに自動的に作成されます。この変数には、メッセージ・タイプのCreditRatingServiceResponseMessageが自動的に割り当てられます。

  9. 「OK」をクリックします。

  10. 「ファイル」メイン・メニューから「保存」を選択します。

Scopeアクティビティ内での1つ目のAssignアクティビティの作成

概要:

この項では、このチュートリアルの2つのAssignアクティビティの1つ目を作成します。Assignアクティビティは、ある変数の内容を別の変数にコピーするなど、単純なデータ操作を行うための方法を提供します。

このAssignアクティビティは、クライアントの社会保障番号を入力として取り込み、信用格付けを割り当てるために信用格付けサービスにコンタクトします。 

  1. Assignアクティビティを、「コンポーネント・パレット」セクションからinvokeCRS Invokeアクティビティの上側にドラッグ・アンド・ドロップします。


    画像の説明

  2. このAssignアイコンをダブルクリックして、「割当て」ウィンドウを表示します。

  3. 「一般」タブの「名前」フィールドに、assignSSNと入力します。

  4. 「適用」をクリックします。

  5. 「コピー操作」タブをクリックします。

  6. 「作成」をクリックし「コピー操作」を選択して、「コピー操作の作成」ウィンドウを表示します。

  7. 次の値を入力します。

    フィールド  値 

    送信元 

     

    • タイプ

     

    変数 

    • 変数

     

    「変数」→「inputVariable」→「ペイロード」→「client:myCreditFlowProcessRequest」→「client:ssn」の順に開いて選択します。

    注意: ネームスペース番号の値(ns1、ns2など)は変わります。自動的に表示されるネームスペース値を使用してください。  

    宛先 

     

    • タイプ

     

    変数 

    • 変数

     

    「変数」→「invokeCRS_process_InputVariable」→「payload」→「ns1:ssn」の順に開いて選択します。 

     

  8. 「OK」をクリックして、「コピー操作」ウィンドウと「割当て」ウィンドウを閉じます。

  9. 「ファイル」メイン・メニューから「保存」を選択します。

Scopeアクティビティ内での2つ目のAssignアクティビティの作成

注意:

このAssignアクティビティは、クライアントに割り当てられた信用格付けに関する詳細情報を返します。  

  1. 2つ目のAssignアクティビティを、「コンポーネント・パレット」セクションからGetCreditRating Scopeアクティビティ内のinvokeCRS Invokeアクティビティの下にドラッグ・アンド・ドロップします。

  2. このAssignアイコンをダブルクリックして、「割当て」ウィンドウを表示します。

  3. 「一般」タブの「名前」フィールドに、assignCreditRatingと入力します。

  4. 「適用」をクリックします。

  5. 「コピー操作」タブをクリックします。

  6. 「作成」をクリックし「コピー操作」を選択して、「コピー操作の作成」ウィンドウを表示します。

  7. 次の値を入力します。

    フィールド  値 

    送信元 

     

    • タイプ

     

    変数 

    • 変数

     

    「変数」→「invokeCRS_process_OutputVariable」→「ペイロード」→「ns1:rating」の順に開いて選択します。

    注意: ネームスペース番号の値(ns1、ns2など)は変わります。自動的に表示されるネームスペース値を使用してください。  

    宛先 

     

    • タイプ

     

    変数 

    • 変数

     

    「変数」→「outputVariable」→「payload」→「client:myCreditFlowProcessResponse」→「client:creditRating」の順に開いて選択します。 

     

  8. 「OK」をクリックして、「コピー操作」ウィンドウと「割当て」ウィンドウを閉じます。

    このScopeアクティビティは次のようになります。


    画像の説明

  9. 「ファイル」メイン・メニューから「保存」を選択します。

    これで、信用格付けサービスの設計が完了し、次の項で説明する検証、コンパイルおよびデプロイの各タスクに進む準備ができました。

信用フロー・プロセスの検証、コンパイルおよびデプロイ

この時点で、BPELプロセスをデプロイする準備ができています。

  1. 「アプリケーション・ナビゲータ」セクションに移動します。

  2. 「myCreditFlow」を右クリックします。

  3. 「デプロイ」→「my_integration_server_connection」→「defaultドメインにデプロイ」の順に選択します。

    my_integration_server_connectionは、手順17で指定した統合サーバー接続名です。

  4. 「OK」をクリックします。

    これにより、BPELプロセスがコンパイルされます。エラーがないかウィンドウの下部を確認します。エラーがない場合は、次のメッセージが表示されます。

    BUILD SUCCESSFUL
    
  5. ウィンドウ下部のボタンをクリックしてエラーの有無の確認します。 「メッセージ」ボタンで表示されないエラーを、「Apache Ant」ボタンで表示できる場合があります。

    エラーがない場合、デプロイメントは成功しました。 エラーがある場合は、そのエラーをダブルクリックしてエラーのタイプと場所の詳細を表示します。

  6. 訂正して、再度デプロイします。

信用フロー・プロセスの実行

この時点で、融資の申込みと融資提案の受取りのプロセスを起動する準備ができています。

  1. 「スタート」→「すべてのプログラム」→「Oracle - Oracle_Home」→「Oracle BPEL Process Manager」→「BPEL Control」を選択してOracle Enterprise Manager 10g BPEL Controlにログインします。

  2. 次の情報を入力してOracle Enterprise Manager 10g BPEL Controlにログインします。

    フィールド  値 

    ユーザー名 

    oc4jadmin 

    パスワード 

    password 

    Oracle Enterprise Manager 10g BPEL Controlの「ダッシュボード」タブが表示されます。

  3. 「デプロイ済のBPELプロセス」リストで「myCreditFlow」をクリックします。

  4. HTMLフォームの「ssn」フィールドに、先頭がゼロでない9桁の整数値を入力し、「XMLメッセージの転送」をクリックします。 ユーザー・インタフェースに表示される名前のssnは、「XSDファイルの編集」で入力した値であることに注意してください。

    「BPELプロセス」タブに次のようなメッセージが表示されます。

    テスト・インスタンスが開始されました
    
    インスタンス''39e706a46ad531be:858bf1:fcc240f310:-7ffc''は非同期で処理中です。
    
  5. プロセス・インスタンスの現在の状態のビジュアル監査証跡を表示するには、「ビジュアル・フロー」をクリックします。


    画像の説明

    プロセスの現在の状態を示す監査証跡が表示されます。これは、信用格付けサービスが正常に起動したことを示します。

  6. 監査証跡で「callbackClient」をクリックし、信用格付けサービスからクライアントに返された信用格付け(560)を含めた融資提案の結果を参照します。


    画像の説明

  7. 追加情報を確認するには、上部の「監査」リンクをクリックします。


    画像の説明


戻る 次へ
Oracle
Copyright © 2006 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引