ヘッダーをスキップ

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

B31876-01
目次
目次
索引
索引

戻る 次へ

3 融資調達BPELプロセスの確認

この章では、第2章「信用フローのチュートリアル」で作成したBPELプロセスより高度なプロセスの実行方法について説明します。 フォルト処理、非同期サービスとの対話、ユーザーのタスクと手動のタスク、JavaとJ2EEコードの統合およびカスタム・ユーザー・インタフェースとポータルは、すべてが、多くのビジネス・フローにとって主要な要件となります。 この章では、これらすべての要件を満たすBPELプロセスの作成、テスト、デバッグおよび管理の方法を説明します。

この章の内容は次のとおりです。

LoanFlowPlusプロセスの概要

この章ではLoanFlowPlusプロセスについて説明します。このプロセスはOracle BPEL Process Managerのサンプルとともに出荷され、インストール後に次のディレクトリで使用可能になります。

SOA_Oracle_Home¥bpel¥samples¥demos¥LoanDemoPlus

図3-1に、LoanFlowPlusで実装される要件を示します。

図 3-1    LoanFlowPlusの概要


画像の説明

このプロセスは実行時間の長いBPELフローで、融資申込書を入力として受け取り、選択および承認された融資提案を非同期で返します。

このフローでは、プロセス実行の最初に、(ネイティブなEJB Web Services Invocation Framework(WSIF)バインディングを介してサービスとしてアクセスした)Enterprise Java Bean(EJB)から顧客の社会保障番号を取得し、第2章「信用フローのチュートリアル」で説明した同期の信用格付けサービスにアクセスして顧客の信用格付けをリクエストします。

このプロセスは、顧客に信用上のマイナス事例(破産など)が確認された場合に信用格付けサービスから通知される可能性があるマイナスの信用フォルトを処理できるようにコーディングされています。 このような例外が通知された場合、LoanFlowPlusプロセスは顧客サービス担当者が手動で例外を処理するためのヒューマン・タスクを開始し、そのタスクの完了を待機します。 顧客サービス担当者は、ダッシュボード・ユーザー・インタフェースを使用してタスクを表示し、信用格付けを指定したり申込みを取り消すことができます。

信用格付けが提示された後は、手動または自動のアクティビティのどちらを介したものでもプロセスは自動処理に入ります。 次にプロセスは、完了した融資申込みを2つの融資プロセッサに送付します。 各プロセッサが融資提案を返すまでにかかる時間は不定です。 融資プロセッサは、実行時間が長い場合あるため、非同期のサービスとして実装され、BPELプロセスから並列起動されます。

このBPELフローのケースでは、両方の融資提案の受信を待った後、簡単なブランチ・ロジックを使用して最適な提案(最も低金利のもの)を選択します。 最後に、別のヒューマン・タスクによって、顧客は選択された融資提案を確認し承認することができます。 このタスクが完了した後、選択および承認された提案がフローの結果として返されます。

Oracle JDeveloperでのプロセスの作成と確認

この項では、BPELプロセスで使用する外部サービスを作成およびデプロイする方法と、Oracle JDeveloperでプロセスを起動および表示する方法を説明します。

サービスの起動とテスト

第2章「信用フローのチュートリアル」と同様に、LoanFlowPlusプロセスは、antコマンドを使用してすぐに作成およびデプロイできるいくつかの外部サービスに依存しています。 これを実行するには、次のようにします。

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

  2. demos¥LoanDemoPlusディレクトリへ移動します。

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

    ant
    

    これで、LoanFlowPlusプロセス自体も含め、プロセスに必要な外部の融資サービスが作成およびデプロイされます。

Oracle JDeveloperでのLoanFlowPlusプロセスのオープン

  1. Oracle JDeveloperに戻ります。

  2. 「アプリケーション・ナビゲータ」「myBPELapplication」を選択します。

  3. 「ファイル」メイン・メニューから「開く」を選択します。

    「開く」ウィンドウが表示されます。

  4. SOA_Oracle_Home¥bpel¥samples¥demos¥LoanDemoPlus¥LoanFlowPlusディレクトリに移動します。

  5. 「LoanFlowPlus.jpr」を選択して「開く」をクリックします。

    このLoanFlowPlusのプロジェクト・ファイルが、Oracle JDeveloperで表示されます。

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

  7. 「LoanFlowPlus.bpel」をダブルクリックします。

    これでプロセスの「ダイアグラム」ビューが表示されます。


    画像の説明

    creditRatingServiceパートナ・リンクは、第2章「信用フローのチュートリアル」で使用したものと同じ同期のサービスです。 ただし、StarLoanServiceUnitedLoanServiceのパートナ・リンクは非同期のサービスで、一方向の開始操作と融資提案の準備完了後に各サービスからコールされる非同期のonResultコールバックをサポートしています。 これは任意の場所から利用でき、数秒から数日以上かかることがあります。 前のプロセスと同様に、LoanFlowPlusに対するクライアント・インタフェースも非同期です。

  8. 全体プロセス中央のスイムレーンのビジュアルを見てください。Oracle JDeveloperでは、標準的なBPELソースをネイティブ・フォーマットで使用します。 したがって、随時BPELの「ソース」ビューを選択して、基礎となるBPELのソース・コードを表示したり、ビューでコードを変更してすぐに別のビューでこれらの変更を表示することもできます。 「ダイアグラム」ビューには、プロセスが開始していることや、社会保障番号を取得するためのロジックが(例外処理コードも含めて)BPELスコープ内にカプセル化されていることなどが示されます。

    以降の各項では、このプロセスを実装するコードを確認します。

フォルト管理

LoanFlowPlusプロセスは、社会保障番号と信用格付けサービスによって通知された例外を、BPELのフォルト処理を使用して捕捉および管理します。 フォルト・ハンドラは特定のscopeアクティビティに関連付けられており、あるスコープ内で発生してそのスコープで処理されないフォルトは包含するスコープに渡されます。 これは、Javaのtry-catchとまったく同じです。

getCreditRating用に定義されたNegativeCreditフォルト・ハンドラを表示するには、次のようにします。

  1. 「+」記号をクリックして、getCreditRatingのスコープを開きます。


    画像の説明

    これでそのスコープのビューが開きます。

  2. 実行中のメイン・フローがスコープ内で上から下へ表示されます。 また、二次フローが右側に拡張して表示されます。 このフローの最上部には、errorアクティビティservices:NegativeCreditが含まれています。


    画像の説明

  3. 例外フローの中でscopeアクティビティを開き、このフォルト処理のロジックとして実行された手順を表示します。 BPEL内のどのアクティビティでも(複雑なもの、実行時間が短いものや長いものなど)フォルト・ハンドラで使用できます。 この場合、顧客サービス担当者用に例外を手動で処理するためのヒューマン・タスクが定義されています。 また、フォルトを自動化ロジックで処理したり、再通知することもできます。

    フォルト処理を実装するコードの一部を示します。

    <scope name="getCreditRating" variableAccessSerializable="no">
       <variables>
          . . .
          . . .
       </variables>
    <!-- Watch for faults (exceptions) being thrown from creditRatingService -->
       <faultHandlers>
           <catch faultName="services:NegativeCredit" faultVariable="crError">
               . . .
           </catch>
       </faultHandlers>
       <sequence>
       . . .
       . . .
       <!-- Invoke the CreditRating Service, the URL of this service's
                   WSDL is specified in the deployment descriptor -->
           <invoke name="invokeCR" partnerLink="creditRatingService"
                   portType="services:CreditRatingService" operation="process"
                   inputVariable="crInput" outputVariable="crOutput"/>
       . . .
       </sequence>
    </scope>
    

    関連資料:

    例外管理、信頼性およびクラッシュ・テストの詳細は、次のURLにある、リジリエンスがあるBPELプロセスの作成とOracle BPEL Server上でのクラッシュ・テストに関するTechNotes(技術情報)を参照してください。

    http://www.oracle.com/technology/bpel

非同期融資プロセッサ・サービスとの対話

記入が完了すると、融資申込書は2つの非同期融資プロセッサ・サービスへ送付されます。 この項では、BPELプロセス内の非同期サービスとの対話に必要な事項について検討します。 前述のとおり、BPELは根本的に非同期のアクティビティをサポートし、Oracle BPEL Process Managerはデハイドレーション機能をサポートします。 それは、フローが非同期イベントを待機しているときは常に、現在の状態情報とともに確実かつ効率的にデータ・ストアに永続格納されることを意味しています。

また、BPELでは非同期メッセージの相関についていくつかの標準的な方法がサポートされるため、非同期コールバックは適切な待機プロセス・インスタンスを探し出すことができます。 具体的には、Oracle BPEL Serverでは次のメカニズムがサポートされています。

LoanFlowPlusプロセスによるUnitedLoanサービスの起動方法と非同期コールバックの待機方法を確認するには、次のようにします。

  1. scope_collectOffers scopeアクティビティを開きます。

  2. collectOffers flowアクティビティを開きます。

  3. 左側にあるinvokeUnitedLoan invokeアクティビティをダブルクリックします。


    画像の説明

「起動」ウィンドウで、このアクティビティが融資申込書を入力変数(loanApplication)としてUnitedLoanServiceに渡します。 「開始」操作はすぐに戻ります。 ただし、次のアクティビティであるonResultコールバックのreceiveアクティビティは、融資提案とともにサービスがコールバックされるまで待機します。

WS-Addressingはメッセージの相関に対して(デフォルトで)使用され、Oracle BPEL Serverで完全に透過的に処理されます。 WS-Addressingの相関情報を確認する場合は、サービスと置き換えられたSOAPメッセージをTCPトンネルを使用して確認できます。

UnitedLoanServiceから返される提案を受け取るinvokeアクティビティおよびreceiveアクティビティのBPELソース・コードは、BPELの「ソース」ビューを選択するか、「ビュー」「ソースに移動」を選択して確認できます。 このソース・コードは次のとおりです。

<sequence>
      <!--  initiate the remote service -->
      <invoke name="invokeUnitedLoan" partnerLink="UnitedLoanService"
              portType="services:LoanService" operation="initiate"
              inputVariable="loanApplication"/>
   . . .
   . . .
 <!--  receive the result of the remote service -->
      <receive partnerLink="UnitedLoanService"
               portType="services:LoanServiceCallback" operation="onResult"
               variable="loanOffer1" createInstance="no"/>
     </sequence>

関連資料:

サービスと置き換えられたSOAPメッセージをTCPトンネリングを使用して確認する方法は、Oracle BPEL Process Manager開発者ガイドを参照してください。 

並列処理の確認

「LoanFlowPlusプロセスの概要」の説明にあるように、LoanFlowPlusは2つの融資サービス・プロバイダを並列起動する必要があります。これは、プロバイダの処理時間が不定なためです。 これにはBPELでflowアクティビティを使用しますが、このアクティビティによりいくつかのアクションの並列実行が可能になります。 この例が、「非同期融資プロセッサ・サービスとの対話」にあるcollectOffers flowアクティビティに示されています。 このflowには、2つの並列アクティビティ、つまりUnitedLoanServiceを起動するシーケンスとStarLoanServiceを起動するシーケンスが含まれています。

このflowアクティビティを実装する簡単なBPELソース・コードは、次のとおりです。

<flow name="collectOffers">
     <!-- ************************************************************
         Invoke the first loan provider (UnitedLoan)
           ************************************************************ -->
     <!-- invoke first loan provider -->
     <sequence>
      <!--  initiate the remote service -->
      <invoke name="invokeUnitedLoan" partnerLink="UnitedLoanService"
              portType="services:LoanService" operation="initiate"
              inputVariable="loanApplication"/>
      <!--  receive the result of the remote service -->
      <receive partnerLink="UnitedLoanService"
               portType="services:LoanServiceCallback" operation="onResult"
               variable="loanOffer1" createInstance="no"/>
     </sequence>
     <!-- ************************************************************
           Invoke the second loan provider (StarLoan)
           ************************************************************ -->
     <sequence>
      <!--  initiate the remote service -->
      <invoke name="invokeStarLoan" partnerLink="StarLoanService"
              portType="services:LoanService" operation="initiate"
              inputVariable="loanApplication"/>
      <!--  receive the result of the remote service -->
      <receive partnerLink="StarLoanService"
               portType="services:LoanServiceCallback" operation="onResult"
               variable="loanOffer2" createInstance="no"/>
     </sequence>
    </flow>

ヒューマン・タスクの確認

BPELには非同期サービスに対する基本的なサポートが用意されており、人と手動タスクをBPELプロセスに統合できます。 一連の組込みサービスがOracle BPEL Serverに統合されており、プロセスにヒューマン・ワークフローを含めることができます。 これを真のBPELサービスとして実装することにより、これらのサービスに対するインタフェースがWSDLで記述され、人をBPELの100%標準のプロセスに含めることができます。 BPELプロセスには、人と手動タスクは他の非同期Webサービスと同じように見えます。

LoanFlowPlusプロセスでは、手動タスクがいくつかの場所で示されています。

ヒューマン・ワークフローの実装方法を確認するには、次のようにします。

  1. 「コンポーネント・パレット」から「プロセス・アクティビティ」を選択します。

  2. 「ヒューマン・タスク」アクティビティを確認してください。これをプロセス・フローにドロップできます。 これにより、ヒューマン・タスク・エディタでタスク定義を作成できるようになります。 このエディタを使用すると、割当て先、承認パターン、通知チャネルなどを選択することができます。


    画像の説明

    「ヒューマン・タスク」というパレット要素は、開発者がヒューマン・タスクをより高いレベルの抽象概念として処理できるようにするテンプレート・アクティビティですが、一連のBPELアクティビティとして実装されています。

  3. LoanOfferReview human taskアクティビティを開きます。

    最初にいくつかのassignアクティビティがあります。 次にプロセスがTaskServiceパートナ・リンクをコールします。 このパートナ・リンクが、タスクに対して必要な操作を公開します。


    画像の説明

    ユーザーに割り当てられたタスクの問合せやタスク・データの更新およびタスクの実行または取消しをクライアントが実行できるように、APIが用意されています。 さらに、タスクに関するグループとロールのサポート有効期間のチェック、エスカレーションおよびその他の一般的なヒューマン・タスクの要件がタスク・サービスによって実装されています。

    LoanFlowPlusプロセスでは、ユーザーの対話はすべてカスタムJava Server PagesでJava APIを使用して処理されます。 顧客による確認中に、次の項目を実行します。

    • LoanFlowPlusUIインタフェース(http://localhost:8888/LoanFlowPlusUI)を介したプロセスとの対話

    • ExceptionDashboardUIインタフェース(http://localhost:8888/ExceptionDashboardUI)を介したプロセスとの対話

    オラクルでは、特別な設定なしでワークフロー対応プロセス内でのヒューマン・インタフェースの処理に使用(およびカスタマイズ)できるOracle BPEL Worklist Applicationも提供しています。

    関連資料:

    BPEL内のヒューマン・ワークフローおよびタスク・サービス・クライアントの作成の詳細は、Oracle BPEL Process Manager開発者ガイドのワークフロー・サービスに関する章を参照してください。 

Webサービスの起動フレームワークの確認

企業では、バックエンド・システムへのアクセスのために既存のJavaコードまたはJava APIをBPELプロセス内で使用する場合がよくあります。 このためには、一般的に次の3つの方法があります。

最初の2つの方法は、Oracle BPEL Process Managerで提供されるいくつかのコード例にわかりやすく示されています。

3つ目の方法の例として、LoanFlowPlusプロセスではWSIFを使用してEJBを起動し、これが顧客の社会保障番号を返します。 BPELプロセスから、EJBサービスをWSDLインタフェースを持つ他のサービスの場合と同じように扱い、そのためのパートナ・リンクをBPELプロセス内に作成することができます。 EJBにより提供される機能は、WSDLがインタフェースをとるサービスにEJBバインディングを介して直接マップされます。 「アプリケーション・ナビゲータ」内のCustomerService.wsdlファイルに、このバインディングが示されています。

  <!-- binding declns -->
  <binding name="EJBBinding" type="tns:CustomerService">
    <ejb:binding/>
    <format:typeMapping encoding="Java" style="Java">
      <format:typeMap typeName="xsd:string" formatType="java.lang.String" />
      <format:typeMap typeName="tns:CustomerNotFoundExceptionType"
 formatType="com.otn.samples.CustomerNotFoundException" />       
    </format:typeMapping>
    <operation name="getCustomerSSN">
      <ejb:operation
         methodName="getCustomerSSN"
         parameterOrder="email"
         interface="remote"
         returnPart="ssn" />
      <input name="GetCustomerSSNRequest"/>
      <output name="GetCustomerSSNResponse"/>
      <fault name="CustomerNotFoundException"/>    
    </operation>   
  </binding>

  <!-- service decln -->
  <service name="CustomerService">
    <port name="EJBPort" binding="tns:EJBBinding">
      <!-- Put appserver vendor-specific deployment information here -->
<ejb:address className="com.otn.samples.CustomerServiceHome"
     jndiName="ejb/session/CustomerService"
     initialContextFactory="com.evermind.server.rmi.RMIInitialContextFactory"
     jndiProviderURL="ormi://${hostname}/CustomerService"/>
      
    </port>
  </service>
  
    <plnk:partnerLinkType name="CustomerService">
    <plnk:role name="CustomerServiceProvider">
      <plnk:portType name="tns:CustomerService"/>
    </plnk:role>
   </plnk:partnerLinkType>  
</definitions>

このコードは、EJBがWSDLで記述されたサービスとしてアクセスされていることを意味しています。ここでは、WSIFが操作をEJBメソッドへマップしています。


注意:

Oracle JDeveloper 10.1.3.1.0では、現在サポートされているSOAPバインディングに加えて、POJO(Plain Old Java Objects)およびEJB用のJavaおよびEJBバインディングを備えたWSDLを自動的に生成します。 


BPELプロセスを開始するためのカスタム・ユーザー・インタフェースの作成

BPELプロセスはすべて、それ自身がWebサービスです。 またOracle BPEL Process Managerには、デプロイされたBPELフローの起動や、アクティブ・インスタンスの状態とステータス情報のフェッチなどのためのJava APIが提供されています。 BPELプロセスは、ポータルまたはその他のカスタム・ユーザー・インタフェースからインスタンス化されることがよくあります。 たとえば、LoanFlowPlusプロセスにはJSP融資インタフェースがあり、顧客はこれを使用して新規の融資申込みの開始や、受け取った提案の確認、提案の承認を行うことができます。 LoanFlowPlusのユーザー・インタフェースは、Oracle BPEL Process Managerと同じアプリケーション・サーバー上にデプロイされ、その全ソースが次の場所のサンプル内にあります。

SOA_Oracle_Home¥bpel¥samples¥demos¥LoanDemoPlus¥LoanFlowPlusUI

デプロイされたBPELプロセスを開始するためのJava APIのJavaDocsは、次のファイルにあります。

SOA_racle_Home¥bpel¥docs¥apidocs¥index.html

さらに、このJava APIをJSPから簡単に使用するためのJSPタグ・ライブラリが利用できます(このタグ・ライブラリは、LoanFlowPlusUIのサンプルで使用されています)。 開発者は、WebサービスのSOAPおよびWSDL APIを使用してBPELプロセスを起動することもできます。 Webサービスを使用する方法では、Webサービスをサポートする任意の言語またはツール・キットからBPELフローを起動したりアクセスできます。

LoanFlowPlusプロセスの開始

ここでは、ポータル・ユーザー・インタフェースを使用してLoanFlowPlusインスタンスを開始および実行し、Oracle Enterprise Manager 10g BPEL Controlを使用してステータス、監査証跡、デバッグ情報、パフォーマンス・メトリックおよびOracle BPEL Serverで自動収集されたその他の情報を表示します。

LoanFlowPlus BPELプロセスは、「サービスの起動とテスト」antコマンドを実行したときに、依存するサービスとポータル・ユーザー・インタフェースとともにコンパイルおよびデプロイされています。 Oracle JDeveloperからも、第2章「信用フローのチュートリアル」の場合と同じようにプロセスを作成およびデプロイできます。

LoanFlowPlusインスタンスを開始および実行するには、次のようにします。

  1. 次のポータル・ユーザー・インタフェースに移動します。

    http://localhost:8888/LoanFlowPlusUI/Homepage.html
    
  2. ポータル・ページの「Initiate New BPEL Loan Flow」リンクをクリックします。


    画像の説明

    融資申込みを発行して新しいLoanFlowPlusインスタンスを開始するためのWebページが表示されます。

  3. ユーザー・インタフェース内の各フィールドを必要に応じて変更し、「Submit Loan Application」ボタンをクリックして新しいプロセス・インスタンスを開始します。


    画像の説明

ビジュアル監査証跡の確認

開発者または管理者のタスクを実行し、Oracle Enterprise Manager 10g BPEL Controlを使用してこのプロセスに関する監査証跡とその他のステータス情報を確認します。

  1. 次のいずれかの方法でOracle Enterprise Manager 10g BPEL Controlにアクセスします。

    • 「スタート」「すべてのプログラム」「Oracle - Oracle_Home」「Oracle BPEL Process Manager」「BPEL Control」を選択します。

    • 次のURLに移動します。

      http://localhost:8888/BPELConsole/
      
  2. Oracle Enterprise Manager 10g BPEL Controlへのログインに必要な次の情報を入力して「ログイン」をクリックします。

    フィールド   

    ユーザー名 

    bpeladmin 

    パスワード 

    password 

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

    BPELプロセスのインスタンスで、進行中のものと終了したものがいくつか表示されます。

  3. 「インスタンス」列でLoanFlowPlusプロセスのアクティブなインスタンスをクリックします。


    画像の説明

    Oracle Enterprise Manager 10g BPEL Controlに表示されるものはすべて、APIでも利用できます。 実際に、Oracle Enterprise Manager 10g BPEL ControlはJSPの集合であり、Oracle BPEL Server APIの使用方法を示すコード例として機能します。 開発者がこれらのAPIを使用して頻繁にプロセスのダッシュボードや検索画面およびその他のインタフェースをカスタマイズするため、ユーザーや管理者はより効率的にプロセス・インスタンスにアクセスおよび管理できます。 これは特に、管理対象のプロセス・インスタンスが何千または何百万にもなる可能性がある本番環境にアプリケーションがデプロイされる場合によくあることです。

    Oracle Enterprise Manager 10g BPEL ControlでLoanFlowPlusインスタンスを選択すると、プロセスの現在のステータスとその実行履歴を示したビジュアル監査証跡が表示されます。 この監査証跡は、Oracle BPEL Serverによって自動的に生成、保守されますが、記録される情報は制御可能です。

  4. ビジュアル監査証跡内のアクティビティをクリックして、そのアクティビティ(この例ではreceiveInput)の詳細情報を表示します。 たとえば次のウィンドウでは、クライアントの開始が選択されており、フローを開始するために送信されたXML入力メッセージが表示されています。


    画像の説明

  5. ビジュアル監査証跡の一番下までスクロールして、このインスタンスの最新のステータスを確認します。 この場合、StarLoanサービスが開始していますが、フローはレスポンスの受信を待機しています(オレンジ色で強調表示されています)。 ただしUnitedLoanサービスは、すでに融資提案とともにコールバックされています。


    画像の説明

  6. テキストの監査証跡を表示するには、「監査」タブをクリックします。 テキストの監査証跡には、サービスとやりとりしたメッセージや、各アクティビティが開始または終了した時のタイムスタンプなどの情報が含まれています。 これは、APIでも構成およびアクセスできます。

進行中のBPELプロセスのデバッグ

  1. 「デバッグ」タブをクリックしてBPEL Debuggerを表示します。このプロセスを実装するBPELソース・コードが取得され、この特定のインスタンスの状態にあわせて表示されます。 実行が現在停止しているコードの位置が黄色で強調表示されます。 このコードの一番下に示されているとおり、プロセスは現在StarLoanサービスによる融資提案のコールバックを待機しています。


    画像の説明

  2. デバッガで、変数を選択してその現在値を調べます。 この図に示されているのは融資提案変数(loanOffer1)の値で、UnitedLoanサービスのコールバック操作の結果が含まれています。 図からわかるとおり、UnitedLoanは融資の申込みを承認し、金利5.7%の融資提案を返しています。

非同期のStarLoanサービスの実行

ここでプロセスを完了させる場合は、StarLoanの顧客サービス担当者のダッシュボードを開始します。これは、StarLoanでは融資申込みの手動処理が必要なためです。 StarLoanはBPELプロセスとしても実装されており(ただしStarLoan がMicrosoft .Net、Apache Axisなどの他のWebサービス・ツール・キットで作成された場合に実装できます)、別のBPELコード例として機能します。

StarLoanの融資担当者の役割を実行するには、次のようにします。

  1. 次のURLに移動します。

    http://localhost:8888/StarLoanUI/home.jsp
    
    
  2. ログインに必要な次の情報を入力して「発行」をクリックします。

    フィールド   

    ユーザー名 

    jcooper 

    パスワード 

    password 

    保留中の融資申込みが表示されます。


    画像の説明

  3. 融資申込みを選択して金利を入力し(自分自身の融資申込みを承認するので低い金利を入力します)、「Approve」をクリックします。 これで、StarLoanサービスはLoanFlowPlusプロセスにコールバックを返します。

  4. Oracle Enterprise Manager 10g BPEL Controlで監査証跡をリフレッシュして、処理が進んで2番目の融資提案を含んだStarLoanコールバックを受け取り、最適な融資提案が選択されたことを確認します。 現在、プロセスは顧客による提案承認を待機しています。


    画像の説明

  5. 融資提案に関する詳細を特に表示するには、「XML文書の表示」をクリックします。

      <?xml version="1.0" encoding="UTF-8" ?> 
    - <loanOffer xmlns="http://www.autoloan.com/ns/autoloan">
      <providerName>Star Loan</providerName> 
      <selected /> 
      <approved>true</approved> 
      <APR>5.5</APR> 
      </loanOffer>
    

ヒューマン・タスクの実行

  1. 顧客融資のポータル・ホームページをリフレッシュします。 これで、選択された融資提案でレビューを待機しているものが表示されます。 これがプロセスの最終ステップです。


    画像の説明

  2. この融資提案を選択すると、顧客がこの提案を受け入れるためのページが表示されます。 これで、LoanFlowPlus BPELプロセスのこのインスタンスの実行が完了します。


    画像の説明

パフォーマンス・チューニング

パフォーマンス(スループットと応答時間の要件を含む)は、BPELプロセスを効率よく実装するための重大な要件となることがよくあります。 Oracle BPEL ServerとOracle Enterprise Manager 10g BPEL Controlに組み込まれているのが、パフォーマンス・チューニングのフレームワークです。 このフレームワークにより、開発者はそのアプリケーションのパフォーマンスを理解し、(開発者のコード、外部サービスまたはOracle BPEL Serverに存在する)ボトルネックを特定して解決することができます。

  1. Oracle Enterprise Manager 10g BPEL Controlに戻ります。

  2. 右上隅の「BPELドメインの管理」をクリックして、「統計」をクリックします。

    完了したフローのパフォーマンス・データを含んだページが表示されます。


    画像の説明

    Oracle Enterprise Manager 10g BPEL Controlでは、デプロイしたすべてのプロセスを、自動生成されたHTMLフォームのインタフェースを介して、または特定のXMLメッセージ・コンテンツを渡すことでテストできます。 このテスト・ページにはストレス・テスト機能が含まれており、デプロイされたBPELプロセスの負荷テストを実行し、ストレスを受けた状態のフローのパフォーマンス統計を表示することができます。

  3. 「ダッシュボード」タブをクリックします。

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

  5. 一番下にスクロールして「ストレス・テストを実行」を選択します。


    注意:

    Oracle Application Server SOAの「基本インストール」タイプに含まれるOracle Database Liteデータベースでは、この組込みストレス・テスト機能を使用しないでください。  



    画像の説明

プロセスのライフサイクルの管理

Oracle BPEL Process ManagerとOracle Enterprise Manager 10g BPEL Controlでは、プロセスのライフサイクル管理がサポートされています。 たとえば、プロセスの新しい実装を、現在進行中の古い実装のインスタンスに影響を与えずにホット・デプロイできるように並列バージョニングがサポートされています。 さらに、Oracle Enterprise Manager 10g BPEL Controlでは、プロセス全体の停止、プロセスのアンデプロイ、または既存のインスタンスは終了可能だが新しいインスタンスは認めない、プロセスのリタイアを実行できます。

  1. デプロイ済のBPELプロセスの名前をOracle Enterprise Manager 10g BPEL Controlで選択し、左側の「管理」タブをクリックします。

    次のページが表示されます。


    画像の説明

    関連資料:

    プロセスのライフサイクルの詳細は、Oracle BPEL Process Manager開発者ガイドを参照してください。 

プロセス・レポートの作成と表示

Oracle BPEL Process Managerには、次のプロセス・レポート機能が用意されています。

レポート・ダッシュボードの作成

ビジネス・プロセスの自動化で重要な機能は、多くの場合、プロセスの状態情報がよりわかりやすく表示されることにあります。 これは、集約サマリー情報やプロセス・インスタンスの状態情報を表示するプロセス・ダッシュボードを作成することで実現される場合がよくあります。 たとえば、経営者にとって、処理の各段階にある現在の融資数、顧客への融資提案に要する平均時間、または進行中のインスタンスと完了したインスタンスに関するその他の主要なパフォーマンス・インディケータが必要な場合があります。

Oracle BPEL Process Managerでは、プロセスの状態に関する大量の情報が保持され、この情報をAPIを介して使用することができます。 また、簡単なレポート・ダッシュボードのテンプレートがいくつかOracle BPEL Serverに付属しており、専門のサービス組織やサポート組織からも入手できます。

LoanFlowPlusプロセスに含まれるテンプレートに、次のURLでアクセスします。

http://localhost:8888/LoanFlowPlusUI/dashboard.jsp

画像の説明

Oracle Enterprise Manager 10g BPEL Controlのレポートの表示

Oracle BPEL Process Managerでは、プロセスの最適化を可能にするための組込みレポートもOracle Enterprise Manager 10g BPEL Controlに提供されています。

  1. Oracle Enterprise Manager 10g BPEL Controlに戻ります。

  2. 「ダッシュボード」タブの「デプロイ済のBPELプロセス」リストで「LoanFlowPlus」をクリックします。

  3. 「レポート」タブをクリックします。

  4. 特定のレポート・タイプを選択し、特定の問合せ詳細を指定して「実行」をクリックします。 レポート・タイプとしてプロセスの時間分布の例を次に示します。


    画像の説明

    関連資料:

    Oracle Enterprise Manager 10g BPEL Controlのレポートの詳細は、Oracle BPEL Process Manager開発者ガイドを参照してください。 

BAMのレポートの表示

オラクルでは、Oracle BPEL Process Managerと統合されたBusiness Activity Monitoring(BAM)コンポーネントも提供しています。 Oracle BAMにより、企業の経営陣は、企業内のビジネス・イベントおよびプロセスの監視、メッセージの関連付けとKPI(キー・パフォーマンス・インディケータ: 重要業績評価指数)の定義、およびライブ・データつまりシン・クライアントのWebインタフェースを介してアクセスされたリアルタイム情報に基づいた警告の定義と修正アクションの実行が可能になります。

図3-2に、情報を表示しているOracle BAMのユーザー・インタフェースの例を示します。

図 3-2    Oracle BAMのレポート


画像の説明

Oracle JDeveloperには、BPELプロセスからOracle BAM Serverに簡単にイベントを送信するためのセンサーのサポートが含まれています。 ただし、Oracle BAM Serverは、BPELプロセス・イベントに限らず、企業内のどのソースのイベントでも(JMSメッセージ、データベース・イベントなど)JMSキューに書き込めるものはすべて収集できます。

開発環境におけるBPELプロセスのテスト

Oracle BPEL Process Managerでは、BPELプロセスを含んだテスト・スイートを作成しOracle BPEL Serverにデプロイできます。 テスト・スイートは、開発環境でBPELプロセスのテストを自動化するためのXMLテスト・ファイルで構成されます。 テストには、パートナWebサービスとの対話のシミュレーション、テスト・データを使用したプロセス・アクションの検証、および単純なアクティビィにおけるソース・コードの実行率の計算を行うために作成した手順が含まれます。 このテストにより、本番環境へのデプロイの前に、プロセスが正常に動作することを確認できます。

テスト・スイートを作成およびデプロイするには、次のようにします。

  1. Oracle JDeveloperで「テスト・スイート」を右クリックし、「テスト・スイートの作成」を選択します。


    画像の説明

  2. テスト・スイートの名前を入力して「OK」をクリックします。

  3. 作成したテスト・スイートを右クリックし、「テスト・スイートの編集」を選択します。


    画像の説明

  4. ベースラインおよびエミュレートされたメッセージ・インスタンスのテスト・ファイルをテスト・スイートに追加します。

  5. BPELプロセスに対するテスト・スイートをOracle BPEL Serverにデプロイします。

  6. Oracle Enterprise Manager 10g BPEL Control(BPEL Processes「BPELプロセス」タブ→「process_instance_name」「テスト・スイート」)またはantからBPELプロセスにテスト・スイートを実行し、XML文書のレポートを作成します。


    画像の説明

    レポート結果を確認し、エラーがあれば修正し、テストの実行を繰り返すことができます。

    関連資料:

    BPELプロセスのテストの詳細は、Oracle BPEL Process Manager開発者ガイドを参照してください。 

Webサービス管理ソリューションとの統合

サービス指向アーキテクチャ(SOA)を採用している企業内で、サービスとそれを統合するBPELプロセスの、両方のセキュリティ保護と管理をどのように実行するのかという質問がよく出されます。 Oracle Web Services Manager(OWSM)などのWebサービス管理(WSM)ソリューションでは、認証、認可、暗号化、ロギングなどの機能がポリシー定義を介してサービスとプロセスに提供されます。 図3-3に示されているとおり、Webサービス管理ソリューションは一般に、Webサービスの前にプロキシまたはゲートウェイを提供します。 これには、様々なテクノロジで実装可能なバックエンドWebサービスと、Oracle BPEL Serverやその他のBPELサーバーにデプロイされたBPELプロセスの両方が含まれます。これは、BPELプロセス自身がWebサービスであるためです。

図 3-3    Webサービス管理


画像の説明

OWSMは、ここで管理対象エンドポイントを提供しているため、BPELプロセスには基礎となるWebサービスとまったく同じように見えます。 BPELプロセスは、サービス自体ではなく管理対象エンドポイントに接続していることを認識する必要はありません。 OWSM(または同じ標準をサポートするその他の製品)は、暗号化、認証、サービスの仮想化およびその他の主要な要件を同じ方法で実装できるように、ステップのパイプラインを提供しています。 同様に、OWSMは、論理的にOracle BPEL Process Managerの前に配置してBPELプロセスへの接続を管理できます。

図3-4図3-5に、Oracle Web Services Managerのユーザー・インタフェースを示します。

図 3-4    Oracle Web Services Managerのユーザー・インタフェース


画像の説明

図 3-5    Oracle Web Services Managerのユーザー・インタフェース


画像の説明

デモおよびチュートリアル

一連のデモ、アクティビティと概念の参照資料、およびチュートリアルも、Oracle BPEL Process Managerの概要に関する知識と実地経験を増やすために用意されています。 これらの資料は、Oracle BPEL Process Managerとともに、SOA_Oracle_Home¥bpel¥samplesディレクトリにインストールされます。

関連資料:

Oracle BPEL Process Managerとともに提供されているデモ、アクティビティと概念の参照資料およびチュートリアルの説明は、Oracle BPEL Process Manager開発者ガイドの第1章を参照してください。 


戻る 次へ
Oracle
Copyright © 2006 Oracle Corporation.

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