BPELプロセス・サービス・コンポーネントの追加方法

SOAコンポジット・エディタで、BPELプロセス・サービス・コンポーネントをSOAコンポジット・アプリケーションに追加します。

BPELプロセス・サービス・コンポーネントを追加するには:

  1. 表4-1の説明に従って、Oracle JDeveloperを起動します。

    表4-1 Oracle JDeveloperの起動

    起動対象 Windowsでの手順 UNIXでの手順

    Oracle JDeveloper

    1. JDev_Oracle_Home\jdeveloper\JDev\bin\jdev.exeをクリックするか、ショートカットを作成します。

    1. $ORACLE_HOME/jdeveloper/jdev/bin/に移動します。

    2. 次のコマンドを実行します。

      ./jdev
  2. 次のいずれかの方法を使用して、BPELプロセス・サービス・コンポーネントを追加します。

    既存のSOAコンポジット・アプリケーションのサービス・コンポーネントとして追加する方法:

    「コンポーネント」ウィンドウの「コンポーネント」セクションから、「BPELプロセス」 サービス・コンポーネントをSOAコンポジット・エディタにドラッグします。これにより、図4-1に示す「BPELプロセスの作成」ダイアログが表示されます。

    新規アプリケーションに追加する方法:

    1. 「アプリケーション」ウィンドウから、「ファイル」「新規」「アプリケーション」の順に選択します。

    2. 「カテゴリ」リスト「一般」で、「アプリケーション」を選択します。

    3. 「項目」リストで「SOAアプリケーション」を選択し、「OK」をクリックします。

      これにより、SOAアプリケーションの作成ウィザードが起動します。

    4. 「アプリケーション名」ダイアログで、「アプリケーション名」フィールドにアプリケーション名を入力します。

    5. 「ディレクトリ」フィールドで、デフォルトの場所を受け入れるか、SOAコンポジット・アプリケーションを作成する新しいディレクトリ・パスを入力します。

    6. 「次へ」をクリックします。

    7. 「プロジェクト名」ダイアログで、「プロジェクト名」フィールドに名前を入力します。

    8. 「ディレクトリ」フィールドで、デフォルトの場所を受け入れるか、プロジェクトを作成する新しいディレクトリ・パスを入力します。

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

    10. 「開始」セクションでは、「標準コンポジット」が選択されていることを確認してください。他の選択である「SOAテンプレート」により、SOAプロジェクトの再利用可能な部分を作成して、新規プロジェクトを進めることができます。詳細は、「Oracle SOA Suiteテンプレートおよび再使用可能なサブプロセス」を参照してください。

    11. 「プロジェクトのSOA設定」ダイアログで、BPELプロセスを使用するコンポジットを選択します。

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

      これにより、図4-1に示す「BPELプロセスの作成」ダイアログが表示されます。

    図4-1 「BPELプロセスの作成」ダイアログ

    図4-1の説明が続きます
    「図4-1 「BPELプロセスの作成」ダイアログ」の説明
  3. 表4-2に示すように、必要な詳細を指定します。

    ノート:

    同じ.bpelファイルでBPEL 1.1とBPEL 2.0の構文を使用することはできません。ただし、同じSOAコンポジット・アプリケーションにBPEL 1.1プロジェクトとBPEL 2.0プロジェクトを含めることができます。

    表4-2 「BPELプロセスの作成」ダイアログ

    フィールド 説明

    BPEL仕様

    作成するBPELプロセスのタイプを選択します。

    • BPEL 2.0仕様

      BPEL 2.0仕様をサポートするBPELプロジェクトを作成します。これはデフォルト選択です。

    • BPEL 1.1仕様

      BPEL 1.1仕様をサポートするBPELプロジェクトを作成します。

    名前

    BPELプロセスの名前を入力するか、またはデフォルト名をそのまま使用します。入力した名前が、「アプリケーション」ウィンドウのBPELプロセスおよびWeb Services Description Language (WSDL)ファイルのファイル名になります。

    BPELプロセスの作成時は、必ず完全に一意の名前を使用してください。次のものを作成しないでください。

    • 先頭が数値のプロセス名(1SayHelloなど)。

    • ハイフンを含むプロセス名(Say-Helloなど)。

    • 同じ名前で、大/小文字が異なる2つのプロセス名(SayHellosayhelloなど)。

      ビジネス・インテリジェンス(BI)のデータ・オブジェクト名は、Oracle BAMサーバーではすべて大文字の形式で生成されるため、これが特に重要です。たとえば、BPELProcess1という名前のBPELプロセスを作成する場合、デプロイ後のOracle BAM BIデータ・オブジェクトとしてはBI_DEFAULT_PROJECT1_BPELPROCESS1というBI名が生成されます。BPELProcess1およびBPELPRocess1の2つのBPELプロセスを作成すると、同じBIデータ・オブジェクト名が生成されます。

    • 500文字を超えるプロセス名。

    • ASCIIでないプロセス名。BPELプロセス名はSOAプロジェクトのディレクトリおよびファイルの名前に使用されますが、これが問題を引き起こす可能性があります。

    ネームスペース

    ネームスペースのデフォルトのパスを使用するか、カスタム・パスを入力します。

    ディレクトリ

    BPELプロセス・サービス・コンポーネントのアーティファクトを配置するディレクトリを指定するか、project_root_directory/SOA/BPELのデフォルト・ディレクトリをそのまま使用します。

    ディレクトリ・パスを変更できますが、ディレクトリがSOAフォルダ(つまりproject_root_directory/SOA)の下にあることを確認してください。ディレクトリをSOAの外部に指定すると、エラー・メッセージが表示され、BPELプロセスは作成されません。

    テンプレート

    設計するBPELプロセス・サービス・コンポーネントのタイプに基づくテンプレートを選択します。テンプレートによって、「アプリケーション」ウィンドウにデフォルト・ファイルの基本セット(process_name.wsdlおよびprocess_name.bpel)が提供され、これらのファイルを使用してBPELプロセス・サービス・コンポーネントの設計を開始できます。

    • 非同期BPELプロセス: BPELプロセス・コンポーネント・フローを開始するreceiveアクティビティ(デフォルト)、およびクライアントを非同期にコールバックするinvokeアクティビティを使用して、非同期プロセスを作成します。このタイプはデフォルトで選択されています。詳細は、「BPELプロセスからの非同期Webサービスの起動」を参照してください。

    • 同期BPELプロセス: BPELプロセス・サービス・コンポーネント・フローを開始するreceiveアクティビティ(デフォルト)、および結果を返すreplyアクティビティを使用して、同期プロセスを作成します。詳細は、「BPELプロセスからの同期Webサービスの起動」を参照してください。

    • 一方向BPELプロセス: 一方向コール・インタフェース定義でプロセスを作成します。

    • サービスを後で定義: アクティビティを含まない空のBPELプロセス・サービス・コンポーネントを作成する場合に選択します。

    • WSDLに基づく: 既存のWSDLファイルによって定義されたインタフェースを使用してBPELプロセスを作成します。使用するWSDL Uniform Resource Locator (URL)、ポート・タイプおよびコールバック・ポート・タイプを指定する必要があります。

    • イベントのサブスクライブ: ビジネス・イベントをサブスクライブできるBPELプロセスを作成します。このオプションを選択すると、ダイアログがリフレッシュされてイベント表が表示されます。「追加」アイコンをクリックすると、サブスクライブするイベントを選択できます。選択した内容は、イベント表に表示されます。その後、一貫性レベルと、このイベントをパブリッシュするかどうかを選択できます。「フィルタ」アイコンをクリックして、選択したイベントのフィルタ式を作成することもできます。この選択によって、「式ビルダー」ダイアログが表示されます。詳細は、「ビジネス・イベントおよびイベント配信ネットワークの使用」を参照してください。

    サービス名

    デフォルト値をそのまま使用するか、またはこのプロセスで公開されているサービス名を入力します。invoke、receive、OnMessageまたはreplyアクティビティを開くと、デフォルトで、サービス名が「パートナ・リンク」フィールドに表示されます。この名前はパートナ・リンクと同じ名前です。

    SOAPサービスとして公開

    インバウンドSimple Object Access Protocol (SOAP) Webサービス・バインディング・コンポーネントに自動的に接続(連結)されるBPELプロセス・サービス・コンポーネントを作成する場合は、このチェック・ボックスを選択します。このチェック・ボックスを選択しないと、BPELプロセス・サービス・コンポーネントは、SOAコンポジット・エディタでスタンドアロン・コンポーネントとして作成されます。このBPELプロセス・サービス・コンポーネントは後からサービスに明示的に関連付けることができます。このチェック・ボックスはデフォルトで選択されています。

    配信

    ノート: このフィールドは、「テンプレート」リストで次のいずれかのテンプレートを選択した場合に表示されます。

    • 非同期BPELプロセス

    • 一方向BPELプロセス

    • イベントのサブスクライブ

    配信レイヤーでのプロセスの永続ポリシーを設定します。このリストを使用すると、oneWayDeliveryPolicyデプロイメント・ディスクリプタのプロパティの値を指定できます。有効な値は、次のとおりです。

    • async.persist: メッセージはデータベースに保存されます。この設定の場合、信頼性は確保されますが、データベースのパフォーマンスに多少の影響が出ます。システムの全体的なパフォーマンスに影響が出ることもあります。これはデフォルト値です。

    • async.cache: 受信した配信メッセージはインメモリー・キャッシュにのみ保存されます。信頼性よりパフォーマンスを優先する場合は、この設定を検討してください。async.cacheに設定すると、一方向メッセージの到着頻度が配信の頻度よりかなり高い場合や、サーバー障害が発生した場合には、メッセージが失われる可能性があります。また、システムが過負荷の状態になり(メッセージがスケジュール済キューにたまり)、メモリー不足エラーが発生することもあります。各自のユースケース・シナリオを検討し、この設定が適切かどうかを判断してください。

      高可用性環境でoneWayDeliveryPolicyasync.cacheに設定すると、サーバー・クラッシュ発生時に実行途中の起動メッセージおよびコールバック・メッセージが失われたり、重複したりすることがあります。async.cacheに対しては、サーバーのフェイルオーバーはサポートされていません。

    • sync: 同じスレッドで直接起動が発生します。呼出しキューのメッセージのスケジューリングはバイパスされ、BPELインスタンスが同期的に呼び出されます。この設定は、データベースのパフォーマンスに影響を与えることがあります。

    このプロパティのトランザクションおよびフォルト伝播のセマンティクスの詳細は、「BPELプロセスでのトランザクションおよびフォルト伝播のセマンティクス」を参照してください。

    プロパティ・インスペクタでこのプロパティの値を変更する方法については、「プロパティ・インスペクタでデプロイメント・ディスクリプタのプロパティを定義する方法」を参照してください。

    トランザクション

    ノート: このフィールドは、「テンプレート」リストで「同期BPELプロセス」を選択した場合に表示されます。

    コールを開始するBPELインスタンスのトランザクション動作を設定します。このリストを使用すると、transactionデプロイメント・ディスクリプタのプロパティの値を指定できます。有効な値は、次のとおりです。

    • required: リクエスト/レスポンス(開始)環境では、この設定によって、トランザクションがある場合はコール元トランザクションが結合され、トランザクションがない場合は新規トランザクションが作成されます。「配信」リスト値(oneWayDeliveryPolicyプロパティ)がsyncに設定されている一方向開始環境では、起動メッセージは、同じトランザクションの同一スレッドを使用して処理されます。これはデフォルト値です。

    • requiresNew: 新規トランザクションが実行のために作成され、既存のトランザクションがある場合はそのトランザクションが一時停止されます。この動作は、リクエスト/レスポンス(開始)環境、および「配信」リスト値(oneWayDeliveryPolicyプロパティ)がsyncに設定されている一方向開始環境の両方に適用されます。

    • notSupported: ビジネス・トランザクションのアクティビティをトランザクションなしで実行できます。

    ノート: このプロパティは、中間プロセスのreceiveアクティビティには適用されません。この場合は、別のトランザクションの別のスレッドを使用してメッセージが処理されます。これは、相関が必要であり、常に非同期で処理されるためです。

    このプロパティのトランザクションおよびフォルト伝播のセマンティクスの詳細は、「BPELプロセスでのトランザクションおよびフォルト伝播のセマンティクス」を参照してください。

    プロパティ・インスペクタでこのプロパティの値を変更する方法については、「プロパティ・インスペクタでデプロイメント・ディスクリプタのプロパティを定義する方法」を参照してください。

    入力

    デフォルトの入力XSDスキーマをそのまま使用するか、「検索」アイコンをクリックして別のXSDを選択します。「検索」アイコンをクリックすると、「タイプ・チューザ」ダイアログが表示されます。インポートしたスキーマを参照して、入力要素(注文書など)を選択します。「タイプ・チューザ」ダイアログで、既存のスキーマまたはWSDLをインポートすることもできます。

    「タイプ・チューザ」ダイアログには、使用するコンテキストに基づいて情報が表示されます。たとえば、変数に対して単純、メッセージまたは要素のタイプを選択した場合、ダイアログには、XMLスキーマ単純型、WSDLファイル・メッセージ・タイプまたはXMLスキーマ要素がそれぞれ表示されます。メッセージ・パートのタイプを選択すると、プロジェクトのスキーマ・ファイル、XMLスキーマ単純型およびプロジェクトのWSDLファイルがダイアログに表示されます。

    出力

    デフォルトの出力XSDスキーマをそのまま使用するか、「検索」アイコンをクリックして別のXSDを選択します。「検索」アイコンをクリックすると、「タイプ・チューザ」ダイアログが表示されます。インポートしたスキーマを参照して、出力要素(注文書など)を選択します。

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

    図4-2に示すセクションがOracle BPELデザイナに表示されます。

    図4-2 Oracle BPELデザイナのセクション

    図4-2の説明が続きます
    「図4-2 Oracle BPELデザイナのセクション」の説明

    このビューの各セクションを使用して、特定の設計およびデプロイメント・タスクを実行できます。表4-3に、図4-2にリストされている各セクションを示します。

    表4-3 Oracle JDeveloperのセクション

    要素 説明

    「アプリケーション」ウィンドウ(左上)

    SOAプロジェクトのディレクトリとファイルが表示されます。「SOA」フォルダの下にある主要なディレクトリとファイルには、次が含まれています。

    • BPEL

      BPELプロセス・サービス・コンポーネント・ファイル(.bpel)が表示されます。

    • イベント

      ビジネス・イベント・ファイル(.edn)が表示されます。

    • スキーマ

      BPELプロセス・スキーマ・ファイルが表示されます。

    • テスト・スイート

      テスト・スイート・ファイルが表示されます。詳細は、「SOAコンポジット・アプリケーションのテストの自動化」を参照してください。

    • トランスフォーメーション

      トランスフォーメーションXSLTマッパー・ファイル(.xsl)およびXQueryマッパー・ファイル(.xqy)が表示されます。

    • WSDL

      BPELプロセスWSDLファイルが表示されます。

    • composite_name

      SOAコンポジット・アプリケーション全体(composite.xmlファイルと呼ぶ場合があります)を説明します。このファイルの詳細は、「SOAアプリケーションおよびプロジェクト作成時の処理内容」を参照してください。

    Oracle BPELデザイナ(「設計」タブ)

    設計するBPELプロセス・サービス・コンポーネントがグラフィカルに表示されます。このビューは、次のいずれかの処理を実行すると表示されます。

    • 「アプリケーション」ウィンドウで.bpelファイル名をダブルクリックした場合

    • .bpelファイルを選択して、デザイナの下部にある「設計」タブをクリックした場合

    • SOAコンポジット・エディタでBPELプロセス・コンポーネントをダブルクリックした場合

    アクティビティのドラッグ、パートナ・リンクの作成などによるBPELプロセス・サービス・コンポーネントの設計に応じて、「設計」ウィンドウは変化します。

    「コンポーネント」ウィンドウ(右上)

    BPELプロセス・サービス・コンポーネントに追加可能なアクティビティが表示されます。アクティビティはビルディング・ブロックです。「コンポーネント」ウィンドウの 「BPELコンストラクト」「サブプロセス」 (最初は空です)および「Oracle Extensions」のセクションでは、BPELプロセス・サービス・コンポーネントのデザイナにドラッグするサブプロセスとアクティビティのセットが表示されます。「コンポーネント」ウィンドウには、デザイナの状態に関連があるページのみが表示されます。「BPELコンストラクト」「サブプロセス」および「Oracle Extensions」は、ほぼ常に表示されます。ただし、transformアクティビティでトランスフォーメーションを設計している場合、「コンポーネント」ウィンドウには、「文字列関数」「数学関数」「ノードセット関数」など、そのアクティビティに関連する選択項目のみが表示されます。

    「構造」ウィンドウ(左下)

    デザイナで現在選択しているBPELプロセス・サービス・コンポーネントのデータが構造的に表示されます。このウィンドウから、次のような様々なタスクを実行できます。

    • スキーマのインポート。

    • メッセージ・タイプの定義。

    • 変数、エイリアス、相関セット、パートナ・リンクなどの要素の管理(作成、編集および削除)

    • デザイナに表示するBPELプロセス・フロー・シーケンスのアクティビティの編集。

    「ログ」ウィンドウ(中央下)

    検証およびコンパイルのステータスに関するメッセージが表示されます。BPELプロセス・サービス・コンポーネントで検証が正しく行われるように、次のことを確認する必要があります。

    • BPELプロセス・サービス・コンポーネントに入力変数が指定されていること。

    • パートナ・リンクが選択されていること。

    • パートナ・ロールが選択されていること。

    • 操作が空でないこと。

    • 入力変数タイプとパートナ・リンク操作タイプが一致していること。

    デプロイメントに失敗した場合は、エラーのタイプと場所を示すメッセージが表示されます。

    「ソース」タブ

    BPELプロセス・サービス・コンポーネント・ファイル内部の構文が表示されます。アクティビティやパートナ・リンクをドラッグしたり、別のタスクを実行すると、これらのソース・ファイルの構文が即時に更新され、変更内容が反映されます。

    「履歴」タブ

    ファイルのリビジョン履歴や、ファイルの読取り専用バージョンと編集可能バージョンが並べて表示されます。

    プロパティ・インスペクタ

    アクティビティに関する詳細が表示されます。「設計」ウィンドウでアクティビティをクリックすると、編集用に開きます。詳細は、「BPELアクティビティをプロパティ・インスペクタで編集する方法」を参照してください。

    ノート:

    これらのセクションについてさらに学習するには、該当するセクション内にカーソルを置いて[F1]を押し、オンライン・ヘルプを表示することもできます。

  5. Oracle BPELデザイナの上部にある「プロパティ構造」リストで「情報」を選択して、BPELプロジェクトのバージョン(1.1または2.0)を表示します。図4-3に詳細を示します。

    図4-3 BPELプロジェクトのバージョン

    図4-3の説明が続きます
    「図4-3 BPELプロジェクトのバージョン」の説明

    「情報」ダイアログが表示されます。