2 SOAコンポジット・アプリケーションの開発のスタート・ガイド

この章では、Oracle JDeveloperを使用してSOAコンポジット・アプリケーションを作成する方法について説明します。ここでは、コンポジット、サービス・バインディング・コンポーネント、参照バインディング・コンポーネント、サービス・コンポーネントの作成と、セキュリティ、デプロイメントおよびテストの基本的なステップを、SOAコンポジット・アプリケーションの設計時に考慮が必要な重要な問題とともに説明します。

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

2.1 SOAアプリケーションの作成

新しいアプリケーションの構築での最初のステップは、そのアプリケーションへの名前の割当てとソース・ファイルを保存するディレクトリの指定です。Oracle SOA Suiteのクイック・スタートをインストールすると、Oracle SOA Suite拡張機能がOracle JDeveloperに自動的にインストールされます。この点が、Oracle SOA Suite拡張機能を手動でOracle JDeveloperにインポートした以前のリリースとは異なります。Oracle SOA Suiteのクイック・スタートのインストールの詳細は、『SOA SuiteおよびBusiness Process Management SuiteのQuick Start for Developersのインストール』を参照してください。

2.1.1 SOAアプリケーションおよびプロジェクトの作成

  1. Oracle JDeveloper Studio Editionを起動します。

  2. Oracle JDeveloperを初めて実行する場合は、Java JDKの場所およびOracle JDeveloperを実行するユーザー・ロールを指定します。JDKのバージョンは、1.7.0_15以上である必要があります。

  3. 次のいずれかの方法でSOAアプリケーションを作成します:

    • 「ファイル」メイン・メニューから次の手順を実行します。

      1. 「新規」「アプリケーション」を選択します。

        別のアプリケーション・コンポジットの作成を選択できる「新規ギャラリ」が開きます。

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

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

    • 「アプリケーション」メイン・メニューから次の手順を実行します。

      1. 「新規」を選択します。

        別のアプリケーション・コンポジットの作成を選択できる「新規ギャラリ」が開きます。

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

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

    • 「アプリケーション」ウィンドウの「アプリケーション」メニューから次の手順を実行します:

      1. 左上にある「アプリケーション」ウィンドウで、「アプリケーション」ドロップダウン・リストから「新規アプリケーション」を選択します。

  4. 「アプリケーションの名前付け」ページで、必要に応じて、アプリケーションの名前と場所を変更できます。このアプリケーションが最初のアプリケーションである場合は、「アプリケーション・テンプレート」から「SOAアプリケーション」を選択します。パッケージ接頭辞のデフォルトをそのまま使用して、「次」をクリックします。

    ノート:

    次のアプリケーション命名規則に注意してください。

    • 空白を使用したアプリケーション名は作成できません

    • 空白があるディレクトリ・パスにアプリケーションおよびプロジェクトを作成することはできません(たとえば、c:\Program Files)。

    • UNIXオペレーティング・システムでは、LANGおよびLC_All環境変数をUTF-8文字セットを使用するロケールに設定して、Unicodeサポートを有効にすることをお薦めします。この設定により、オペレーティング・システムではあらゆる文字をUnicodeで処理できるようになります。SOAテクノロジはUnicodeに基づいています。オペレーティング・システムがUTF-8以外のエンコーディングを使用するように構成されている場合は、SOAコンポーネントが想定とは異なって機能する可能性があります。たとえば、ファイル名がASCIIでない場合は、ファイルにアクセスできず、エラーが発生する可能性があります。オペレーティング・システムの制約によって発生する問題はサポート対象外となります。

      設計時環境でOracle JDeveloperを使用している場合は、「ツール」「プリファレンス」「環境」「エンコーディング」「UTF-8」の順に選択して、Unicodeのサポートを有効にします。この設定は、実行時の環境にも適用可能です。

  5. 「プロジェクトの名前付け」ページで、必要に応じて、SOAプロジェクトの名前と場所を変更できます。デフォルトでは、Oracle JDeveloperによって、モデル・プロジェクトに、SOAプロジェクト・テクノロジ、SOAコンポジット・アプリケーションを記述するcomposite.xmlファイル、および必須ライブラリが追加されます。

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

    ノート:

    コンポジット名およびコンポーネント名は、500文字以下にする必要があります。

    同じインフラストラクチャにデプロイされるプロジェクトは、SOAコンポジット・アプリケーション全体で一意の名前である必要があります。コンポジットの一意性はプロジェクト名で判断されます。たとえば、表2-1に説明するような操作は実行しないでください。デプロイ時に、2番目にデプロイされたプロジェクト(コンポジット)で最初にデプロイされたプロジェクト(コンポジット)が上書きされます。

    表2-1 SOAプロジェクトの名前付けに関する制限

    作成するアプリケーションの名前 作成するSOAプロジェクト名

    Application1

    Project1

    Application2

    Project1

    SOAアプリケーションの作成ウィザードのプロジェクトSOA設定ページが表示されます。

  7. SOA設定の構成ページで、この例用に「空のコンポジット」をクリックし、「終了」をクリックします。表2-2で、このページのすべてのオプションについて説明します。

    表2-2 SOA設定の構成ページ

    要素 説明

    空のコンポジット

    空のSOAコンポジット・アプリケーションを作成します。このタイプはデフォルトで選択されています。

    BPELプロセスを使用するコンポジット

    「BPELプロセスの作成」ダイアログが自動的に開き、ここで最初のBPELプロセスを作成します。BPELプロセスでは、一連のビジネス・アクティビティおよびサービスをエンドツーエンドのプロセス・フローに統合するビジネス・プロセスを設計できます。

    メディエータを使用するコンポジット

    「メディエータの作成」ダイアログが自動的に開き、ここで最初のOracle Mediatorサービス・コンポーネントを作成します。Oracle Mediatorを使用すると、異なるコンポーネント間でイベント(メッセージ)をルーティングできます。

    ヒューマン・タスクを使用するコンポジット

    「ヒューマン・タスクの作成」ダイアログが自動的に開き、ここで最初のヒューマン・タスク・サービス・コンポーネントを作成します。ヒューマン・タスク・コンポーネントでは、エンドツーエンドのビジネス・フローの一部として実行されるユーザーまたはグループのタスクを記述するワークフローをモデル化できます。これらのタスクは、プロセスの実行時にOracle BPM Worklistを介してアクセスされます。

    サブプロセスを使用するコンポジット

    サブプロセスを使用してSOAコンポジット・アプリケーションが自動的に作成されます。サブプロセスは、別個のプロセスが特定のプロセッサ内で再利用できるBPELコードのフラグメントです。

    ビジネス・ルールを使用するコンポジット

    「ビジネス・ルールの作成」ダイアログが自動的に開き、ここで最初のビジネス・ルール・サービス・コンポーネントを作成します。ビジネス・ルールにより、ルールに基づくビジネス上の意思決定を設計できます。

    Springを使用したコンポジット

    「Springの作成」ダイアログが自動的に開き、ここでspringコンテキスト・サービス・コンポーネントを作成します。Springコンテキスト・サービス・コンポーネントは、WSDLファイルではなくJavaインタフェースを使用するコンポーネントをSOAコンポジット・アプリケーションに統合できます。Javaインタフェースを使用するコンポーネントを、同じSOAコンポジット・アプリケーション内のWSDLファイルを使用するコンポーネントと統合することもできます。

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

2.1.2 SOAアプリケーションおよびプロジェクト作成時の処理内容

SOAアプリケーションを作成すると、Oracle JDeveloperではアプリケーションに関連するすべてのソース・ファイルを含むプロジェクトが作成されます。したがって、Oracle JDeveloperを使用してアプリケーションに必要な追加プロジェクトを作成できます。

図2-1に、OrderBookingCompositeと呼ばれるプロジェクトのSOAコンポジット・エディタを示します。

図2-1 SOAコンポジット・アプリケーションの新規ワークスペース

図2-1の説明が続きます
「図2-1 SOAコンポジット・アプリケーションの新規ワークスペース」の説明

表2-3で、SOAコンポジット・エディタについて説明します。

図2-3 SOAコンポジット・エディタ

要素 説明

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

SOAプロジェクトに含まれている特定のサービス・コンポーネントの主要なディレクトリおよびファイルが表示されます。環境に合せて必要に応じて構造を変更できます。唯一の制限として、すべてのファイルがSOAディレクトリにある必要があります。

  • Service_component_directory

    追加した各サービス・コンポーネントのアーティファクトのディレクトリが表示されます。

    BPELディレクトリがBPELプロセス用に作成されます。

    MediatorsディレクトリがOracle Mediator用に作成されます。

    HumanTasksディレクトリがヒューマン・タスク用に作成されます。

    oracle/rulesディレクトリがビジネス・ルール用に作成されます。

  • イベント

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

  • スキーマ

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

  • テスト・スイート

    テスト・スイート・ファイルが表示されます。

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

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

  • WSDL

    すべてのWSDLファイル(.wsdl)が表示されます。

  • composite_name

    composite_nameファイルが、SOAプロジェクトの作成時に自動的に作成されます。このファイルでは、サービス、サービス・コンポーネント、参照およびワイヤのコンポジット・アセンブリ全体が記述されます。

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

「構造」ウィンドウでは、アクティブ・ウィンドウで現在選択されているドキュメント内のデータの構造ビューを提供します。

デザイナ(中央)

サービス・コンポーネント、サービスおよび参照を「コンポーネント」ウィンドウからデザイナ内のコンポジットにドラッグします。サービス・コンポーネントをデザイナにドラッグ・アンド・ドロップすると、対応するプロパティ・エディタが起動して、そのサービス・コンポーネントに関連する構成タスクを実行できます。たとえば、Oracle Mediatorサービス・コンポーネントをデザイナにドラッグ・アンド・ドロップすると、Mediator Editorが表示され、ここでOracle Mediatorサービス・コンポーネントを構成します。

後続のすべての編集セッションについて、これらのサービス・コンポーネントをダブルクリックして、それぞれのエディタを再度開きます。

プロジェクト名(デザイナの上)

SOAコンポジット・アプリケーションのプロジェクト名を表示します。

左側のスイムレーン(「公開されたサービス」)

左側のスイムレーンは、Webサービス、RESTアダプタ、JCAアダプタなど、SOAコンポジット・アプリケーションへのエントリ・ポイントを提供するサービス用です。

右側のスイムレーン(「外部参照」)

右側のスイムレーンは、WebサービスやJCAアダプタなど、外部にある外部サービスにメッセージを送信する参照用です。

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

「コンポーネント」ウィンドウでは、SOAコンポジットで使用できる様々なリソースが提供されます。次のサービス・コンポーネントおよびアダプタが含まれます。

  • コンポーネント

    デザイナにドラッグ・アンド・ドロップできるBPELプロセス、ビジネス・ルール、ヒューマン・タスク、Oracle MediatorおよびSpringコンポーネントが表示されます。

  • テクノロジ

    左側または右側のスイムレーンにドラッグできるJCAアダプタ(AQ、ファイル、FTP、データベース、JMS、MQ、Oracle User Messaging Service、ソケット、LDAPサーバー、Coherenceキャッシュ)、サード・パーティ・アダプタ、クラウド・アダプタ、Oracle BAM 11gバインディング・コンポーネント、Oracle Healthcareバインディング・コンポーネント、Oracle B2Bバインディング・コンポーネント、EJBバインディング・コンポーネント、ADF-BCバインディング・コンポーネント、アプリケーション・アダプタ(Oracle E-Business Suite、JDE WorldおよびSAP)、直接バインディング・コンポーネント、HTTPバインディング・コンポーネント、Oracle Managed File Transfer (MFT)アダプタ、Representational State Transfer (REST)アダプタおよびWebサービス・バインディング・コンポーネントが表示されます。

「リソース」ウィンドウ(右上 - 「リソース」タブ)

「リソース」ウィンドウには、1つのダイアログが用意されており、ここからローカルなリソースとリモートのリソースの両方を参照できます。たとえば、次のリソースにアクセスできます。

  • MDSリポジトリからのスキーマやWSDLなどの共有データ。

  • HTTP接続、ファイルURLまたはアプリケーション・サーバー接続を介してアクセスできるリモート・リソースを使用するWSILブラウザ機能。

  • Universal Description, Discover, and Integration (UDDI)レジストリに登録されるリモート・リソース。

SOAコンポジット・アプリケーション用のこれらのリソースは、「WSDLチューザ」ダイアログから選択します。このダイアログには、様々な方法でアクセスできます。たとえば、サービス・バインディング・コンポーネントまたはOracle Mediatorサービス・コンポーネントで使用するWSDLファイルを選択した場合、またはBPELプロセスで使用するスキーマ・ファイルを選択した場合に、「SOAリソース・ブラウザ」ダイアログが表示されます。このダイアログの上部の「リソース」をクリックし、使用可能なリソースにアクセスします。

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

「ログ」ウィンドウには、アプリケーションのコンパイル、検証およびデプロイメントに関するメッセージが表示されます。

プロパティ・インスペクタ(右下)

「プロパティ・インスペクタ」には、選択されているサービス・コンポーネント、サービスまたは参照のプロパティが表示されます。

また、BPELアクティビティ・プロパティを編集して、BPELプロセス・サービス・コンポーネントのデプロイメント・ディスクリプタのプロパティも定義できます。

詳細は、「BPELアクティビティをプロパティ・インスペクタで編集する方法」および「プロパティ・インスペクタでデプロイメント・ディスクリプタのプロパティを定義する方法」を参照してください。

アプリケーション・ビュー

アプリケーション・ビューには、SOAコンポジット・アプリケーションのアーティファクトが表示されます。

composite_nameファイル(composite.xmlファイルとも呼ばれます)は、デザイナではタブとして、「アプリケーション」ウィンドウではファイルとして表示されます。このファイルは、新しいSOAプロジェクトの作成時に自動的に作成されます。このファイルには、サービス、サービス・コンポーネントおよび参照のコンポジット構成全体が記述されています。1つのSOAプロジェクトに対して1つのcomposite.xmlファイルがあります。

composite.xmlファイルを使用するには、ほとんどの場合、図2-1に示すようにデザイナ、「構造」ウィンドウおよび「プロパティ・インスペクタ」を使用します。デザイナを使用すると、WYSIWYG環境に多くのファイルを表示できます。さらに、概要エディタにファイルを表示して宣言的に変更したり、ファイルのソース・コードを表示することもできます。「構造」ウィンドウには、現在選択されているファイルの構造が示されます。このウィンドウでオブジェクトを選択し、選択したオブジェクトのプロパティを「プロパティ・インスペクタ」で編集できます。

2.2 サービス・コンポーネントの追加

アプリケーションを作成した後は、通常、次のステップは、そのアプリケーションのビジネス・ロジックまたは処理ルールを実装するサービス・コンポーネントを追加します。SOAコンポジット・エディタの「コンポーネント」ウィンドウを使用して、サービス・コンポーネントをコンポジットにドラッグ・アンド・ドロップできます。

2.2.1 サービス・コンポーネントの追加方法

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

  1. 「コンポーネント」ウィンドウの上部で、「コンポーネント」をクリックします。
  2. 「SOA」セクションから、コンポーネントをデザイナにドラッグします。

    図2-2に、デザイナに追加されるBPELプロセスを示します。

    図2-2 SOAコンポジット・アプリケーションへのBPELプロセスの追加

    図2-2の説明が続きます
    「図2-2 SOAコンポジット・アプリケーションへのBPELプロセスの追加」の説明

    選択したサービス・コンポーネントに固有のダイアログが表示されます。表2-4は、使用可能なエディタを示しています。

    表2-4 サービス・コンポーネント・エディタの起動

    ドラッグするサービス・コンポーネント 起動する対象

    BPELプロセス

    「BPELプロセスの作成」ダイアログが開きます。このダイアログで、一連のビジネス・アクティビティおよびサービスをエンドツーエンドのプロセス・フローに統合するBPELプロセスを作成します。

    ビジネス・ルール

    「ビジネス・ルールの作成」ダイアログが開きます。このダイアログで、ルールに基づいてビジネス・デシジョンを作成します。

    ヒューマン・タスク

    「ヒューマン・タスクの作成」ダイアログが開きます。このダイアログで、ユーザーまたはグループがエンドツーエンドのプロセス・フローの一環として実行するタスクを記述するワークフローを作成します。

    メディエータ

    「メディエータの作成」ダイアログが開きます。このダイアログで、メッセージやイベントのルーティング、フィルタおよびトランスフォーメーションを実行するサービスを定義します。

    Springコンポーネント

    「Springの作成」ダイアログが起動し、JavaインタフェースをSOAコンポジット・アプリケーションに統合するためのSpringコンテキスト・ファイルを作成できます。

  3. サービス・コンポーネントの設定を構成して、「OK」をクリックします。サービス・コンポーネントのダイアログに関するヘルプは、「ヘルプ」をクリックするか、[F1]を押します。

    図2-3は、OrderProcessor BPELプロセスを作成するためにデータが入力された「BPELプロセス」ダイアログを示しています。このプロセスは非同期として選択されています。「SOAPサービスとして公開」チェック・ボックスを選択することで、Oracle JDeveloperによって、インバウンドSOAP Webサービスに接続されたこのサービス・コンポーネントが自動的に作成されます。

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

    図2-3の説明が続きます
    「図2-3 「BPELプロセスの作成」ダイアログ」の説明
  4. 「OK」をクリックします。

    図2-4は、デザイナのOrderProcessor BPELプロセス・サービス・コンポーネントを示しています。左側のスイムレーンにあるorderprocessor_client_epというSOAPサービス・バインディング・コンポーネントは、外部に対してSOAコンポジット・アプリケーションへのエントリ・ポイントを提供します。「BPELプロセスの作成」ダイアログで「SOAPサービスとして公開」オプションを選択しなかった場合、orderprocessor_client_epサービスは表示されません。サービスは、「サービス・バインディング・コンポーネントの追加方法」のステップに従って、後で追加できます。

    図2-4 コンポジット内のBPELプロセス

    図2-4の説明が続きます
    「図2-4 コンポジット内のBPELプロセス」の説明

    サービス・コンポーネントの内容は、現時点でも後からでも詳細に定義できます。このトップダウンの例では、この時点で内容が定義されます。

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

2.2.2 サービス・コンポーネントの追加と削除に関する必知事項

サービス・コンポーネントの追加については次の詳細に注意してください。

  • サービス・コンポーネントは、SOAコンポジット・エディタまたは他のコンポーネントのデザイナから作成します。たとえば、ヒューマン・タスク・コンポーネントは、SOAコンポジット・エディタまたはOracle BPELデザイナから作成できます。

  • 「リソース」ウィンドウを使用して、SOAコンポジット・エディタで定義されていたりデプロイされているサービス・コンポーネントを参照します。

サービス・コンポーネントの削除については次の詳細に注意してください。

  • サービス・コンポーネントを削除するには、該当するサービス・コンポーネントを右クリックして、コンテキスト・メニューから「削除」を選択します。

  • サービス・コンポーネントが削除されると、それを示す参照はすべて無効になり、すべてのワイヤは削除されます。サービス・コンポーネントも「アプリケーション」ウィンドウから削除されます。

  • 別のサービス・コンポーネント内から作成されたサービス・コンポーネントを削除できます。たとえば、Oracle JDeveloperのBPELプロセス・サービス・コンポーネント内で作成されたヒューマン・タスクは、SOAコンポジット・エディタから削除できます。さらに、タスクへのパートナ・リンクも削除できます。パートナ・リンクを削除すると、参照インタフェースが削除され、タスクへのワイヤが削除されます。

2.2.3 サービス・コンポーネントの編集方法

サービス・コンポーネントを編集して、サービス・コンポーネントに関する特定の詳細を定義します。

サービス・コンポーネントを編集するには:

  1. 表2-5に示すように、デザイナで該当するサービス・コンポーネントをダブルクリックして適切なエディタまたはデザイナを表示します。

    表2-5 SOAサービス・コンポーネントのウィザードとダイアログの起動

    ダブルクリックするサービス・コンポーネント 表示対象

    BPELプロセス

    詳細設計のためのOracle BPELデザイナ

    ビジネス・ルール

    詳細設計のためのビジネス・ルール・デザイナ

    ヒューマン・タスク

    詳細設計のためのヒューマン・タスク・エディタ

    メディエータ

    詳細設計のためのOracle Mediatorエディタ

    Springコンポーネント

    詳細設計のためのSpringエディタ

  2. 選択したサービス・コンポーネントの設定を変更します。サービス・コンポーネント・エディタまたはデザイナに関するヘルプは、「ヘルプ」をクリックするか、[F1]を押してください。これらのエディタについては、この後の章で説明します。
  3. 「ファイル」メイン・メニューから、「すべて保存」を選択します。
  4. 「アプリケーション」ウィンドウでcomposite_nameをダブルクリックするか、デザイナ上でcomposite_nameをクリックします。

    この操作により、SOAコンポジット・エディタに戻ります。

2.3 サービス・バインディング・コンポーネントの追加

SOAコンポジット・アプリケーションへのエントリ・ポイントとして機能するサービス・バインディング・コンポーネントを外部から追加します。

2.3.1 サービス・バインディング・コンポーネントの追加方法

ノート:

この項では、サービス・バインディング・コンポーネントを手動で作成する方法を説明します。また、サービス・コンポーネントを作成するときに、「SOAPサービスとして公開」を選択すると、サービス・バインディング・コンポーネントを自動的に作成できます。これを選択すると、BPELプロセス、ヒューマン・タスク・サービスまたはOracle Mediatorサービス・コンポーネントに自動的に接続されるインバウンドWebサービス・バインディング・コンポーネントが作成されます。

SOAコンポジット・エディタの「コンポーネント」ウィンドウを使用して、バインディング・コンポーネントをコンポジットにドラッグ・アンド・ドロップできます。

サービス・バインディング・コンポーネントを追加するには:

  1. 「コンポーネント」ウィンドウで、「SOAP」Webサービスを左側「公開されたサービス」スイムレーンにドラッグして、サービス・インタフェースを定義します。

    図2-5に、デザイナに追加されるSOAP Webサービスを示します。

    図2-5 コンポジットへのSOAP Webサービスの追加

    図2-5の説明が続きます
    「図2-5 コンポジットへのSOAP Webサービスの追加」の説明

    選択したサービスに固有のダイアログが表示されます。表2-6は、使用可能なエディタを示しています。

    表2-6 サービス・エディタ

    ドラッグするサービス 起動する対象

    SOAP

    「Webサービスの作成」ダイアログが起動し、Web呼出しサービスを作成できます。

    アダプタ

    アダプタ構成ウィザードが起動し、データベース表、データベース・キュー、ファイル・システム、FTPサーバー、Java Message Services (JMS)、IBM WebSphere MQ、Oracle User Messaging Service、Oracle BAM 11gサーバー、LDAPサーバー、Coherenceキャッシュ、ソケット、クラウド・アダプタまたはOracle E-Business Suiteアプリケーション、JDE WorldアプリケーションやSAPアプリケーションとサービスを統合できます。

    ADF-BC

    「ADF-BCサービスの作成」ダイアログが起動し、サービス・データ・オブジェクト(SDO)呼出しサービスを作成できます。

    B2B

    「B2B構成」ウィザードによって、ドキュメント定義の選択手順が示されます。

    Healthcare

    「Healthcare構成」ウィザードによって、ヘルスケア・システムとの統合手順が示されます。

    EJB

    「EJBサービスの作成」が起動し、SDOパラメータまたはJavaインタフェースをEnterprise JavaBeansで使用するためのEnterprise JavaBeansサービスを作成できます。

    HTTP

    HTTPバインディングの作成ウィザードが起動し、HTTPバインディングを作成できます。このウィザードを使用すると、HTTPのPOSTおよびGET操作からSOAコンポジット・アプリケーションを起動できます。

    直接

    「直接バインディング・サービスの作成」ダイアログが起動し、インバウンド方向で、SOAコンポジット・アプリケーションを起動し、Remote Method Invocation (RMI)を介してメッセージを交換できます。

    REST

    REST操作をサービス・バインディング・コンポーネントや参照バインディング・コンポーネントとして統合するための「RESTバインディングの作成」ダイアログ

    MFT

    MFT構成ウィザードによって、MFTのソースやターゲットを作成できます。

  2. サービスの設定値を構成します。サービス・エディタに関するヘルプは、「ヘルプ」をクリックするか、[F1]を押してください。Webサービスを追加する場合は、使用するWSDLファイルを選択する必要があります。詳細は、「Webサービスのインタフェース(WSDL)の定義方法」を参照してください。
  3. 「終了」をクリックします。

    図2-6は、OrderProcessor BPELプロセス用のorderprocessor_client_epサービスを作成するためにデータが入力された「Webサービス」ダイアログを示しています。

    図2-6 「Webサービスの作成」ダイアログ

    図2-6の説明が続きます
    「図2-6 「Webサービスの作成」ダイアログ」の説明
  4. 「OK」をクリックします。

    サービス・バインディング・コンポーネントが左側のスイムレーンに表示されます。図2-7に、composite_nameファイルに追加されたorderprocessor_client_ep serviceバインディング・コンポーネントを示します(この例では、OrderBookingCompositeという名前です)。

    図2-7 コンポジット内のWebサービス

    図2-7の説明が続きます
    「図2-7 コンポジット内のWebサービス」の説明
  5. 「ファイル」メイン・メニューから「すべて保存」を選択します。

2.3.2 Webサービスのインタフェース(WSDL)の定義方法

「サービス・バインディング・コンポーネントの追加方法」で説明しているように、Webサービスは、SOAコンポジット・アプリケーションに追加できるバインディング・コンポーネントの一種です。Webサービスのインタフェース(WSDL)ファイルを定義する必要があります。

Webサービスのインタフェース(WSDL)を定義するには:

  1. 「テクノロジ」セクションから、「SOAP」Webサービスを左側「公開されたサービス」スイムレーンにドラッグします。

    図2-6に示す「Webサービスの作成」ダイアログが表示されます。

  2. 表2-7に記載されている詳細を入力します。

    表2-7 「Webサービスの作成」ダイアログのフィールドと値

    フィールド

    名前

    サービスの名前を入力します。

    タイプ

    Webサービスに対してタイプ(メッセージの方向)を選択します。Webサービスを左側のスイムレーンにドラッグしているため、「サービス」タイプが正しい選択であり、デフォルトでこのタイプが表示されます。

    • サービス(デフォルト)

      SOAコンポジット・アプリケーションへのエントリ・ポイントを提供するWebサービスを作成します。

    • 参照

      外部にある外部サービスへのアクセスを提供するWebサービスを作成します。

    この例では、SOAコンポジット・アプリケーションへのエントリ・ポイントの作成方法を説明しているため、「サービス」が選択されています。

  3. サービスに対するWSDLファイルを選択します。選択には3種類の方法があります。
  4. 「入力」表の上の「追加」アイコンをクリックすると、新規WSDLメッセージ・パートを追加するための「メッセージ・パートの追加」ダイアログが表示されます。WSDLファイルに複数のメッセージが含まれる場合、それぞれに1つのメッセージ・パートを追加できます。メッセージ・パートに対して、XMLスキーマの単純型、プロジェクトのスキーマ・ファイルおよびプロジェクトのWSDLファイルを選択できます。

    詳細は、「ヘルプ」をクリックします。

  5. 「OK」をクリックして「Webサービスの作成」ダイアログに戻ります。
  6. 表2-8で説明する追加フィールドに注意してください。

    表2-8 「Webサービスの作成」ダイアログのフィールドと値

    フィールド

    ポート・タイプ

    ポート・タイプが表示されます。

    コールバック・ポート・タイプ

    無効。WSDLファイルが同期サービス用であるためです。このフィールドは非同期サービスの場合に有効になります。

  7. 「OK」をクリックします。
  8. 「ファイル」メイン・メニューから、「すべて保存」を選択します。

    ノート:

    • ソース・ビューでWSDLファイルのWSDLの場所を手動で更新しないでください。この操作はサポートされていません。サポートされているのは、設計ビューでの更新のみです。

    • WSDLネームスペースは一意にする必要があります。単にWSDLをコピーして名前変更しないでください。ネームスペースも必ず変更してください。

2.3.2.1 スキーマを使用した新規WSDLの定義

既存のスキーマを使用して新しいWSDLを定義するか、新しいスキーマを定義します。

  1. 「WSDL URL」フィールドの右側で、「既存のWSDLを検索します。」(1番目)アイコンをクリックします。
  2. 上部で、「ファイル・システム」をクリックします。
  3. 既存のWSDLファイルをローカル・ファイル・システムで選択します(この例では、OrderProcessor.wsdlが選択されています)。図2-8に詳細を示します。

    図2-8 WSDLファイルの選択

    図2-8の説明が続きます
    「図2-8 WSDLファイルの選択」の説明
2.3.2.2 既存のWSDLの選択

コンポーネントのインタフェースを定義したときに作成されたWSDLを選択します。WSDLは、プロジェクト/アプリケーションのブラウザから選択できます。

  1. 「WSDL URL」フィールドの右側で、「既存のWSDLを検索します。」(1番目)アイコンをクリックします。

  2. 上部で、SOA-MDSをクリックします。選択すると、他のアプリケーションの既存のWSDLファイルを使用できるようになります。

2.3.2.3 コンポーネントからのサービス・インタフェースのWSDLの自動定義

コンポーネントからサービス・インタフェースのWSDLを自動的に定義します。

  1. 「WSDL URL」フィールドの右側で、「スキーマからWSDLを生成」(2番目)アイコンをクリックすると、スキーマからWSDLファイルが自動生成されます。

    図2-9は「WSDLの作成」ダイアログを示しています。WSDLファイル名、ディレクトリの場所、ネームスペース、ポート・タイプ、操作名、およびインタフェース・タイプのデフォルト値が表示されます。指定したディレクトリが現在のプロジェクトのサブディレクトリでない場合、警告メッセージが表示されます。指定したディレクトリが存在しない場合、自動作成されます。

    デフォルト値は変更できます。

    図2-9 WSDLファイルの自動生成

    図2-9の説明が続きます
    「図2-9 WSDLファイルの自動生成」の説明

2.3.3 スキーマの表示方法

インタフェースのWSDLファイルで使用するすべてのスキーマを表示でき、必要な場合は、「インタフェースの更新」ダイアログで、選択されたメッセージ・パートに対する新しいメッセージ・スキーマを選択できます。

スキーマを表示するには:

  1. 特定のバインディング・コンポーネントまたはサービス・コンポーネント上に表示される小さい矢印ハンドルをダブルクリックします。図2-10に詳細を示します。

    図2-10 インバウンド・インタフェース・ハンドルの選択

    図2-10の説明が続きます
    「図2-10 インバウンド・インタフェース・ハンドルの選択」の説明

    図2-11に示す「インタフェースの更新」ダイアログには、WSDLファイルで現在使用されているすべてのスキーマが表示されます。

    図2-11 「インタフェースの更新」ダイアログ

    図2-11の説明が続きます
    「図2-11 「インタフェースの更新」ダイアログ」の説明
  2. 新しいメッセージ・スキーマを選択する方法については、「ヘルプ」をクリックするか、[F1]を押してください。

2.3.4 サービス・バインディング・コンポーネントの編集方法

最初にサービスを作成し、後でその内容を編集することもできます。コンポーネントのアイコンをダブルクリックすると、適切なエディタまたはウィザードが表示されます。表2-9に概要を示します。

表2-9 サービスのウィザードとダイアログの起動

ダブルクリックするサービス 用途

SOAP

「サービスの更新」ダイアログが表示されます。

アダプタ

アダプタ構成ウィザードに再入力します。

ADF-BC

「サービスの更新」ダイアログが表示されます。

B2B

B2B構成ウィザードに再入力します。

Healthcare

Healthcare構成ウィザードに再入力します。

EJBサービス

「サービスの更新」ダイアログが表示されます。

HTTP

HTTPバインディング・ウィザードに再入力します。

直接

「サービスの更新」ダイアログに再入力します。

REST

「RESTバインディング」ダイアログに再入力します。

MFT

MFT構成ウィザードに再入力します。

2.3.5 サービスの追加と削除に関する必知事項

サービスの追加については次の詳細に注意してください。

  • サービス・コンポーネントに新しいサービスが追加されると、そのサービス・コンポーネントには、メタデータを適切に変更できるように通知されます。たとえば、新しいサービスがBPELサービス・コンポーネントに追加されると、そのBPELサービス・コンポーネントには、receiveまたはon-messageアクティビティに接続可能なパートナ・リンクを作成するように通知されます。

サービスの削除については次の詳細に注意してください。

  • サービス・コンポーネントにより提供されているサービスが削除されると、そのサービス・コンポーネントに対するすべての参照が無効となり、ワイヤが削除されます。

2.3.6 同じコンポジットの異なるWSDLファイルでの同じネームスペースの使用に関する必知事項

同じSOAコンポジット・アプリケーションの異なる2つのWSDLファイルにおいて、完全修飾された同じネームスペースを使用することはあいまいであり、サポートされていません。これにより、コンパイル時に、重複した定義のエラーによってアプリケーションが失敗します。すべてのWSDLファイルに対して一意のネームスペースを使用するようにしてください。

2.3.7 SOAインフラストラクチャで内部と外部の両方のOracle HTTP Serverを使用する場合における「リソース」ウィンドウのWSDL参照に関する必知事項

Oracle Enterprise Manager Fusion Middleware Controlの「SOAインフラストラクチャの共通プロパティ」ページにある「サーバーURL」フィールドで、内部および外部の両方のOracle HTTP Serverを使用するようにSOAインフラストラクチャを構成している場合、「リソース」ウィンドウを使用してWSDL URLを参照できません。ただし、Webサービス・バインディング・コンポーネントの「サービスの更新」ダイアログの「WSDL URL」フィールドに、適切なWSDL URLを貼り付けることはできます。図2-12に詳細を示します。

図2-12 「WSDL URL」フィールド

図2-12の説明が続きます
「図2-12 「WSDL URL」フィールド」の説明

2.4 参照バインディング・コンポーネントの追加

参照バインディング・コンポーネントを追加します。このコンポーネントは、外部にある外部サービスにメッセージを送信するためのSOAコンポジット・アプリケーションを有効にします。

2.4.1 参照バインディング・コンポーネントの追加方法

SOAコンポジット・エディタの「コンポーネント」ウィンドウを使用して、参照バインディング・コンポーネントをコンポジットにドラッグ・アンド・ドロップできます。

参照バインディング・コンポーネントを追加するには:

  1. 「コンポーネント」ウィンドウで、「SOA」を選択します。
  2. 「テクノロジ」リストから、サービスを右側「外部参照」スイムレーンにドラッグします。

    図2-13に、デザイナに追加されるWebサービスを示します。

    図2-13 コンポジットへのSOAP Webサービスの追加

    図2-13の説明が続きます
    「図2-13 コンポジットへのSOAP Webサービスの追加」の説明

    選択されている参照固有のダイアログまたはウィザードが表示されます。表2-10は、使用可能なエディタを示しています。

    表2-10 参照エディタ

    ドラッグするサービス 起動する対象

    SOAP

    「Webサービスの作成」ダイアログが起動し、Web呼出しサービスを作成できます。

    アダプタ

    アダプタ構成ウィザードが起動し、データベース表、データベース・キュー、ファイル・システム、FTPサーバー、Java Message Services (JMS)、IBM WebSphere MQ、Oracle User Messaging Service、Oracle BAM 11gサーバー、LDAPサーバー、Coherenceキャッシュ、ソケット、クラウド・アダプタまたはOracle E-Business Suiteアプリケーション、JDE WorldアプリケーションやSAPアプリケーションとサービスを統合できます。

    ADF-BC

    「ADF-BCサービスの作成」ダイアログが起動し、サービス・データ・オブジェクト(SDO)呼出しサービスを作成できます。

    B2B

    B2Bウィザードが起動し、ドキュメント定義を選択できます。

    Healthcare

    「Healthcare構成」ウィザードによって、ヘルスケア・システムとの統合手順が示されます。

    EJB

    「EJBサービスの作成」ダイアログが起動し、SDOパラメータをEnterprise JavaBeansで使用するためのEnterprise JavaBeansサービスを作成できます。

    HTTP

    HTTPバインディングの作成ウィザードが起動し、HTTPバインディングを作成できます。このウィザードを使用すると、HTTPのPOSTおよびGET操作からSOAコンポジット・アプリケーションを起動したり、HTTPのPOSTおよびGET操作からHTTPエンドポイントを起動できます。

    直接

    「直接バインディング・サービスの作成」ダイアログが起動し、Oracle Service Busフローまたは別のSOAコンポジット・アプリケーションを起動できます。

    REST

    REST操作をサービス・バインディング・コンポーネントや参照バインディング・コンポーネントとして統合するための「RESTバインディングの作成」ダイアログ

    MFT

    MFT構成ウィザードによって、MFTのソースやターゲットを作成できます。

  3. 参照バインディング・コンポーネントの設定値を構成します。参照エディタに関するヘルプは、「ヘルプ」をクリックするか、[F1]を押してください。
  4. 「終了」をクリックします。

    図2-14は、参照を作成するためにデータが入力された「Webサービスの作成」ダイアログを示しています。

    図2-14 「Webサービスの作成」ダイアログ

    図2-14の説明が続きます
    「図2-14 「Webサービスの作成」ダイアログ」の説明
  5. 「OK」をクリックします。

    図2-15に、SOAコンポジット・アプリケーションの右側のスイムレーンに追加されたStoreFrontService参照バインディング・コンポーネントを示します。

    図2-15 コンポジット内のSOAP Webサービス

    図2-15の説明が続きます
    「図2-15 コンポジット内のSOAP Webサービス」の説明
  6. 「ファイル」メイン・メニューから、「すべて保存」を選択します。

2.4.2 参照の追加と削除に関する必知事項

参照の追加については次の詳細に注意してください。

  • SOAコンポジット・エディタに新しい参照を追加する唯一の方法は、必要なターゲット・サービス・コンポーネントにサービス・コンポーネントを接続することです。新しい参照が追加されると、サービス・コンポーネントに通知されて適切に変更できます。たとえば、参照がBPELサービス・コンポーネントに追加されると、BPELサービス・コンポーネントにパートナ・リンクを追加するように通知されます。このパートナ・リンクはinvokeアクティビティで使用可能です。

参照の削除については次の詳細に注意してください。

  • サービス・コンポーネントに対する参照が削除されると、関連付けられているワイヤも削除され、メタデータを更新できるようにサービス・コンポーネントに通知されます。たとえば、参照がBPELサービス・コンポーネントから削除されると、そのBPELメタデータにあるパートナ・リンクを削除するようにサービス・コンポーネントに通知されます。

  • ワイヤに接続されている参照を削除すると、その参照とワイヤもクリアされます。

2.4.3 WSDL参照に関する必知事項

WSDLファイルは、WSDLを含む新規コンポーネント(サービス・バインディング・コンポーネント、Oracle MediatorやBPELプロセスなどのサービス・コンポーネント、または参照バインディング・コンポーネント)を作成するたびにSOAコンポジット・アプリケーションに追加されます。コンポーネントを削除すると、そのコンポーネントで使用されていたWSDLインポートは、別のコンポーネントで使用されていない場合にのみ削除されます。WSDLインポートは、そのWSDLインポートを使用していた最後のコンポーネントが削除されると常に削除されます。

サービス・バインディング・コンポーネントまたは参照バインディング・コンポーネントが新しいWSDLを使用するように更新されると、インタフェースが削除されて新しいインタフェースが追加されたかのように処理されます。したがって、古いWSDLインポートは、別のコンポーネントで使用されていない場合のみ削除されます。

サービス・バインディング・コンポーネントまたは参照バインディング・コンポーネントが新しい場所から同じWSDL (porttype qname)を使用するように更新されると、WSDLインポートおよび他のすべてのWSDL参照(たとえば、外部参照WSDLをインポートするBPELプロセスWSDL)は新しい場所を参照するように自動的に更新されます。

composite_name (composite.xml)ファイルのインポートのソース・ビューで単にWSDLの場所を変更するだけでは不十分です。メタデータ内にはユーザー・インタフェースで必要なWSDL参照があります(コンポジット・サービスおよび参照のui:wsdlLocation属性を参照)。また、実行時に必要なWSDL参照もあります(たとえば、BPELプロセスWSDLなど別のWSDLをインポートするWSDL)。このファイル内のWSDL URLが参照されている次の場所を変更してください。

  • ユーザー・インタフェースの場所 - Oracle JDeveloperでのみ使用されます。

  • インポート: デプロイ時に使用されます。

  • 参照定義内のWSDLの場所: 実行時に使用されます。

WSDLの場所は常に、WSDLの場所が指定されたSOAコンポジット・エディタのダイアログ(たとえば、Webサービス、BPELパートナ・リンクなど)で変更してください。URLのホスト・アドレスを変更すると、SOAコンポジット・エディタはすべてのWSDL参照を自動的に更新します。

2.4.4 WSDLファイルでのメッセージ・タイプの混在に関する必知事項

BPELプロセスで、WSDLファイルに複数のWSDLメッセージが宣言され、その他のメッセージにはパートがなんらかの要素となるよう定義されているのに対し、1つ以上のメッセージにそのパートがなんらかのタイプとなるよう定義されている場合、実行時の動作が予測不可能となる可能性があります。これは、これらのWSDLにタイプの混在したメッセージが含まれると見なされるためです。たとえば、assignアクティビティ内に複数のコピー・アクションがあるとします。これらのコピー・アクションでは、次の複数のパートを持つ出力変数の移入が試行されます。

  • パート1はxsd:stringタイプとして宣言されています。

  • パート2はxsd:intタイプとして宣言されています。

  • パート3はカスタム設計の複雑なタイプの要素として宣言されています。

この動作はサポートされていません。

2.4.5 コンポジットのデフォルト・リビジョンの起動に関する必知事項

リビジョン番号を含まないWSDL URLは、デフォルトのコンポジット・アプリケーションによって処理されます。このため、コール元のコンポジットを変更せずに、コール先サービスのデフォルト・リビジョンを常にコールできます。

デフォルトWSDLを選択し、Oracle JDeveloperの「WSDLチューザ」ダイアログで使用します。

コンポジットのデフォルト・バージョンを起動するには:

  1. 「Webサービスの作成」ダイアログで、「WSDL URL」フィールドの右側にあるアイコンをクリックして「WSDLチューザ」ダイアログを起動します。
  2. 上部で、「アプリケーション・サーバー」または「WSIL」を選択します。
  3. ノードを展開し、デプロイされたコンポジットとリビジョンのすべてをリストします。デフォルトのバージョンには、タイトルにDefaultという語が表示されます(たとえば、FaultFlow [Default 1.0])。

    図2-16 「WSDLチューザ」ダイアログ

    図2-16の説明が続きます
    「図2-16 「WSDLチューザ」ダイアログ」の説明
  4. 適切なデフォルトのエンドポイントを選択し、「OK」をクリックします。

2.5 ワイヤの追加

サービス、サービス・コンポーネントおよび参照を接続します。この例では、Webサービスとサービス・コンポーネントを接続します。次の点に注意してください。

  • Webサービスはインバウンド・サービスであるため、参照ハンドルは右側に表示されます。アウトバウンド参照であるWebサービスは、右側に参照ハンドルがありません。

  • 定義済のインタフェースは未定義のインタフェースにどちらの方向から(参照からサービスへ、またはサービスから参照へ)でもドラッグできます。未定義のインタフェースは定義済のインタフェースを継承します。このルールにはいくつかの例外があります。

    • コンポーネントには、新しいインタフェースを却下する権限があります。たとえば、Oracle Mediatorには1つのインバウンド・サービスしか保持できません。このため、コンポーネントは2番目のサービスが作成されないように却下します。

    • ビジネス・ルールは参照をサポートしないため、アウトバウンド・サービス(外部参照)をビジネス・ルールにドラッグすることはできません。ワイヤをドラッグすると、ユーザー・インタフェースでは、有効なターゲットであるインタフェースがハイライト表示されます。

  • インタフェースを一意に識別する際には、ポート・タイプとネームスペースが使用されます。

  • 異なるインタフェースを持つサービスとコンポジットは接続できません。たとえば、同期WSDLファイルで構成されているWebサービスは非同期BPELプロセスに接続できません。図2-17に詳細を示します。

    図2-17 異なるインタフェースを持つサービスとコンポジットの接続に関する制限

    図2-17の説明が続きます
    「図2-17 異なるインタフェースを持つサービスとコンポジットの接続に関する制限」の説明

    サービスと参照は一致する必要があります。つまり、インタフェースとコールバックは同じになる必要があります。インタフェースが異なる2つのサービスがある場合は、2つのサービス間にOracle Mediatorを配置し、インタフェース間のトランスフォーメーションを実行できます。

2.5.1 サービスとサービス・コンポーネントの接続方法

SOAコンポジット・エディタで、サービス・バインディング・コンポーネントをサービス・コンポーネントに接続できます。

サービスとサービス・コンポーネントを接続するには:

  1. 図2-18に示すように、サービス参照ハンドルからワイヤをサービス・コンポーネント・インタフェースにドラッグします。
  2. サービス・コンポーネントがBPELプロセスの場合は、BPELプロセスをダブルクリックしてOracle BPELデザイナを開きます。図2-19に示すように、サービスは、左側のスイムレーンにパートナ・リンクとして表示されることに注意してください。

    図2-19 BPELプロセスにおけるパートナ・リンクとしてのサービスの表示

    図2-19の説明が続きます
    「図2-19 BPELプロセスにおけるパートナ・リンクとしてのサービスの表示」の説明
  3. 「ファイル」メイン・メニューから「すべて保存」を選択します。

2.5.2 サービス・コンポーネントと参照の接続方法

SOAコンポジット・エディタで、サービス・コンポーネントを参照バインディング・コンポーネントに接続できます。

サービス・コンポーネントと参照を接続するには:

  1. 「アプリケーション」ウィンドウでcomposite_nameをダブルクリックするか、デザイナ上でcomposite_nameをクリックします。
  2. 図2-20に示すように、サービス・コンポーネントからワイヤを参照にドラッグします。

    図2-20 サービス・コンポーネントと参照のワイヤリング

    図2-20の説明が続きます
    「図2-20 サービス・コンポーネントと参照のワイヤリング」の説明
  3. サービス・コンポーネントがBPELプロセスの場合は、BPELプロセスをダブルクリックしてOracle BPELデザイナを開きます。図2-21に示すように、参照は、右側のスイムレーンにパートナ・リンクとして表示されることに注意してください。

    図2-21 BPELプロセスにおけるパートナ・リンクとしての参照の表示

    図2-21の説明が続きます
    「図2-21 BPELプロセスにおけるパートナ・リンクとしての参照の表示」の説明
  4. 「ファイル」メイン・メニューから「すべて保存」を選択します。
  5. 「アプリケーション」ウィンドウで、composite_nameファイルを選択します。
  6. 「ソース」タブをクリックして、作成した内容を確認します。

    orderprocessor_client_epサービス・バインディング・コンポーネントは、コンポジットへのエントリ・ポイントを提供します。

    <service name="orderprocessor_client_ep"    
             ui:wsdlLocation="oramds:/apps/FusionOrderDemoShared
    /services/orderbooking/OrderBookingProcessor.wsdl">
        <interface.wsdl interface= "http://www.globalcompany.example.com/ns
    /OrderBookingService#wsdl.interface(OrderProcessor)"
        <binding.adf serviceName="OrderProcessorService" registryName=""/>
        <callback>
          <binding.ws port="http://www.globalcompany.example.com/ns
    /OrderBookingService#wsdl.endpoint(orderprocessor_clientep/OrderProcessorCallback_
    pt)"/>
        </callback>
      </service>
    

    OrderProcessor BPELプロセス・サービス・コンポーネントが表示されます。

    <component name="OrderProcessor">
       <implementation.bpel src="OrderProcessor.bpel"/>
    </component>
    

    StoreFrontServiceという名前の参照バインディング・コンポーネントが表示されます。この参照は、外部にある外部サービスへのアクセスを提供します。

    <reference name="StoreFrontService"
                 ui:wsdlLocation="oramds:/apps/FusionOrderDemoShared
    /services/oracle/fodemo/storefront/store/service/common/serviceinterface/StoreFron
    tService.wsdl">
        <interface.wsdl
     interface="www.globalcompany.example.com#wsdl.interface(StoreFrontService)"/>
        <binding.ws
    port="www.globalcompany.example.com#wsdl.endpoint(StoreFrontService/StoreFrontServ
    iceSoapHttpPort)"
    location="oramds:/apps/FusionOrderDemoShared/services/oracle/fodemo/storefront/sto
    re/service/common/serviceinterface/StoreFrontService.wsdl"/>
    </reference>
    

    サービス・コンポーネント間の通信(またはワイヤリング)は、次のようになっています。

    • ソースのorderprocessor_client_epサービス・バインディング・コンポーネントは、ターゲットのOrderProcessor BPELプロセス・サービス・コンポーネントに接続されています。ワイヤリングにより、この特定のBPELプロセスとWebサービス・メッセージ通信ができます。

    • ソースのOrderProcessor BPELプロセスは、ターゲットのStoreFrontService参照バインディング・コンポーネントに接続されています。これは、外部にある外部サービスへの参照です。

      <wire>
        <source.uri>orderprocessor_client_ep</source.uri>
        <target.uri>OrderProcessor/orderprocessor_client_ep</target.uri>
      </wire>
    
      <wire>
        <source.uri>OrderProcessor/StoreFrontService</source.uri>
        <target.uri>StoreFrontService</target.uri>
      </wire>

2.5.3 ワイヤの追加と削除に関する必知事項

ワイヤの追加については次の詳細に注意してください。

  • サービス・コンポーネントの参照がターゲット・サービス・コンポーネントのサービスと一致する場合、サービス・コンポーネントは別のサービス・コンポーネントに接続できます。一致するという意味は、同じインタフェースとコールバック・インタフェースであることに注意してください。

  • 2つのOracle Mediatorサービス・コンポーネント間に次のワイヤリングを追加すると、無限ループが発生します。

    • ビジネス・イベントを作成した場合

    • Oracle Mediatorサービス・コンポーネントを作成し、イベントをサブスクライブした場合。

    • 2番目のOracle Mediatorサービス・コンポーネントを作成し、同じイベントを公開した場合。

    • 最初のOracle Mediatorを2番目のOracle Mediatorコンポーネント・サービスに接続した場合。

    2つのOracle Mediator間のワイヤを削除すると、すべてのメッセージについて、2番目のOracle Mediatorはイベントを公開でき、最初のOracle Mediatorはそのイベントをサブスクライブできます。

ワイヤの削除については次の詳細に注意してください。

  • ワイヤが削除されると、コンポーネントのアウトバウンド参照は自動的に削除され、クリーン・アップ(パートナ・リンクの削除、ルーティング・ルールのクリアなど)が可能であることがコンポーネントに通知されます。ただし、コンポーネントのサービス・インタフェースは削除されません。Oracle SOA Suiteのすべてのサービスは、WSDLインタフェースで定義されます。コンポーネントのインタフェースが定義されると、SOAコンポジット・エディタでサービス・インタフェースが自動的に削除されることはありません。

    サービスのWSDLインタフェースを変更する必要がある場合は、次のような回避策があります。

    • ほとんどの場合、変更が必要なのはインバウンド・サービス定義ではなくスキーマです。SOAコンポジット・エディタで、WSDLを使用するインタフェース・アイコンをクリックします。たとえば、Webサービス・インタフェース・アイコンやOracle Mediatorサービス・アイコンをクリックできます。この結果、「インタフェースの更新」ダイアログが起動し、このダイアログでWSDLメッセージのスキーマを変更できます。

    • Oracle Mediatorサービス・コンポーネントを使用している場合は、Oracle Mediatorエディタの「WSDLからの操作のリフレッシュ」アイコンを使用して、(新しい操作を追加した後に)Oracle Mediator WSDLをリフレッシュまたは置換できます。ただし、現在の操作を削除しようとすると警告が表示されます。このアイコンを使用してWSDLを新規インバウンド・サービスWSDLに変更すると、インタフェースが変更されるため、通常は接続が切断されます。その後に、Oracle Mediatorを新規サービスに接続できます。

    • 多くの場合、新規サービスでは完全に新しいOracle Mediatorが必要です。古いOracle Mediatorを削除し、新しいOracle Mediatorを作成して新規サービスに接続します。

    • BPELプロセス・サービス・コンポーネントを使用している場合は、「パートナ・リンクの編集」ダイアログで新規のWSDLを選択します。

    「インタフェースの更新」ダイアログの詳細は、「スキーマの表示方法」を参照してください。

2.6 SOAコンポジット・アプリケーションへの説明の追加

コンポジットの上にある「TODOタスク」アイコンにカーソルを合せると表示されるSOAコンポジット・アプリケーションの説明を追加できます。SOAコンポジット・アプリケーションのサービス、参照およびサービス・コンポーネントのアクションを説明で説明できます。

2.6.1 説明をSOAコンポジット・アプリケーションに追加する方法

説明をSOAコンポジット・アプリケーションに追加するには:

  1. SOAコンポジット・エディタの上で、「TODOタスク」アイコンをクリックします。図2-22に詳細を示します。

    図2-22 「TODOタスク」アイコン

    図2-22の説明が続きます
    「図2-22 「TODOタスク」アイコン」の説明
  2. 表行でダブルクリックし、説明を追加します。
  3. 完了すると、表行の外側をクリックしてから、「閉じる」をクリックします。
  4. SOAコンポジット・アプリケーションの上にある「TODOタスク」アイコンにカーソルを合せると、説明が表示されます。図2-23に詳細を示します。

    図2-23 SOAコンポジット・アプリケーションの説明

    図2-23の説明が続きます
    「図2-23 SOAコンポジット・アプリケーションの説明」の説明

2.7 コンポーネントとアーティファクトの名前変更、削除および移動

Oracle JDeveloperの次のセクションでは、一部のコンポーネントおよびアーティファクトの名前変更、削除および移動ができます(リファクタとも呼ばれます)。

  • SOAコンポジット・エディタ

    コンポーネントの名前の変更および削除が可能です。これらのアクションは、Oracle SOA Suiteメタデータに影響します(必ずしも特定のアーティファクトには当てはまりません)。

  • 「アプリケーション」ウィンドウ

    WSDL、スキーマなどのアーティファクトの名前の変更、削除および移動が可能です。これらのアクションは、Oracle JDeveloperアーティファクトに影響します。

ノート:

Oracle BPELデザイナ、ヒューマン・タスク・エディタおよびその他のエディタを開いた状態でリファクタ・タスクを実行しないでください。行う場合は、リファクタ後にエディタを閉じてから再度開いてください。たとえば、BPELプロセスが開いた状態で、「アプリケーション」ウィンドウでBPELプロセスのWSDLファイルの名前を変更するとします。これによって、基礎となるBPELファイルは変更されますが、完全に終了するまでOracle BPELデザイナでこの変更は反映されず、同期化されない状態になります。Oracle BPELデザイナを閉じてから再度開いてください。変更が同期されます。

2.7.1 SOAコンポジット・エディタでのコンポーネントの名前変更および削除方法

表2-11では、SOAコンポジット・エディタで実行可能なリファクタ・タスクを既知の制限とともに説明します。この機能を使用する前に、これらの制限をよく確認してください。

表2-11 コンポーネントのリファクタ

アクション SOAコンポジット・エディタでのステップ

サービス・コンポーネントまたはバインディング・コンポーネントの名前の変更

  1. コンポーネントを右クリックし、「名前の変更」を選択します。名前を変更すると、コンポジットでコンポーネントへの参照のすべてが更新されます。

以下の制限に注意してください。

  • ヒューマン・ワークフロー、サブプロセスまたはビジネス・ルールのコンポーネントの名前は変更できません。

サービス・コンポーネント、バインディング・コンポーネントまたはBPELサブプロセスの削除

  1. コンポーネントまたはサブプロセスを右クリックして、「削除」を選択します。

別のフォルダへのサービス・コンポーネントまたはバインディング・コンポーネントの移動

このタスクはSOAコンポジット・エディタからは実行できません。

2.7.2 「アプリケーション」ウィンドウでのアーティファクトの名前変更、移動および削除方法

表2-12では、「アプリケーション」ウィンドウで実行可能なリファクタ・タスクを既知の制限とともに説明します。この機能を使用する前に、これらの制限をよく確認してください。

表2-12 コンポーネント・アーティファクトのリファクタ

アクション 「アプリケーション」ウィンドウでのステップ

サービス・コンポーネントまたはバインディング・コンポーネントのアーティファクトの名前の変更

  1. コンポーネント・ファイルを右クリックし、「リファクタ」「名前の変更」を選択します。

以下の制限に注意してください。

  • SOAコンポジット・エディタでコンポーネントの名前を変更しても、コンポーネント実装ファイル(.bpel.mplanなど)の名前は変更されません。これによって問題は発生しません。実装ファイルを同じ名前に変更する場合は、「アプリケーション」ウィンドウを使用してください。

  • ヒューマン・ワークフロー、サブプロセスまたはビジネス・ルールのコンポーネントの名前は変更できません。

  • ビジネス・ルールおよびヒューマン・タスクのアーティファクトの名前変更または移動はサポートされていません。たとえば、ヒューマン・タスクのスキーマ・ファイル(HumanTaskPayload.xsdなど)の名前は変更できますが、.taskファイル内のこのXSDへの参照は更新されません。

  • ポート・タイプ、操作および要素の名前は、WSDLエディタおよびXSDエディタでは変更できません。

  • ディレクトリまたはアーティファクトの名前は、空白を使用して変更しないでください。名前に空白があると、参照が無効になります。

  • SOAプロジェクトおよびコンポジットの名前は変更できません。

サービス・コンポーネント、バインディング・コンポーネントまたはBPELサブプロセスのアーティファクトの削除

  1. コンポーネント・ファイルを右クリックし、「リファクタ」「削除」を選択します。

以下の制限に注意してください。

  • 「アプリケーション」ウィンドウでアーティファクトを削除すると、「使用方法の表示」オプションが含まれたメッセージが表示されます。「使用方法の表示」が選択されていると、ファイル内部からアーティファクトへの参照や使用方法が表示されます。「削除」オプションが実行されると、サブプロセス・ファイルのみが削除され、参照は削除されません。必ず最初に「使用方法の表示」を選択してから、削除するファイルへの参照を手動で削除してください。

別のフォルダへのサービス・コンポーネントまたはバインディング・コンポーネントの移動

  1. コンポーネント・ファイルを右クリックし、「リファクタ」「移動」を選択します。

以下の制限に注意してください。

  • データベース・アダプタのアーティファクトを移動すると、データベース・アダプタには多数のアーティファクトがあり、それらが暗黙的に名前で参照されていて同じディレクトリに存在する必要があるため、問題が発生する可能性があります。

  • コンポーネントの実装ファイル(.mplan.bpel.sbpel.task.rules.springなど)は、「アプリケーション」ウィンドウでは移動できません。ただし、これらのファイルの名前は変更できます。

  • ディレクトリまたはアーティファクトの名前は、空白を使用して移動しないでください。名前に空白があると、参照が無効になります。

  • XSLTファイルを移動する場合、現在の拡張およびスクロールされた状態やXSLTマップ・エディタで最後に選択された項目などの機能が失われます。これは、NonDeployedFilesディレクトリがXSLTファイルと同じフォルダに作成されるためです。このフォルダは、テスト・ファイル、ディクショナリ・ファイル、レポート・ファイル、DVM/XREFテスト・サポート・ファイルなどのデフォルトの場所です。 このディクショナリは、このフォルダには複数のXSLTファイルで使用されるファイルが含まれており、このXSLTファイルとフォルダ内のファイル名には直接的な関係がないため、XSLTファイルが移動された場合も移動されません。 

2.8 プロパティ・インスペクタにおけるコンポーネント詳細の表示

プロパティ・インスペクタには、SOAコンポジット・エディタの選択サービス・コンポーネントやバインディング・コンポーネントに関する詳細が表示されます。

プロパティをプロパティ・インスペクタで表示するには:

  1. サービス、サービス・コンポーネントまたは参照を選択します。この例では、BPELプロセス・サービス・コンポーネントが選択されます。

    プロパティ・インスペクタがリフレッシュされ、一般的なコンポーネント詳細、デプロイメント・ディスクリプタのプロパティを追加するためのセクション、およびアタッチされたセキュリティ・ポリシーが表示されます。図2-24に詳細を示します。

    図2-24 プロパティ・インスペクタ

    図2-24の説明が続きます
    「図2-24 プロパティ・インスペクタ」の説明

    BPELアクティビティをOracle BPELデザイナで編集するには、プロパティ・インスペクタを使用することもできます。詳細は、「BPELアクティビティをプロパティ・インスペクタで編集する方法」および「プロパティ・インスペクタでデプロイメント・ディスクリプタのプロパティを定義する方法」を参照してください。

2.9 セキュリティ・ポリシーの追加

SOAコンポジット・アプリケーションを作成する際に、サービス・バインディング・コンポーネント、サービス・コンポーネントおよび参照バインディング・コンポーネントにポリシーを添付してWebサービスを保護できます。ポリシーの実装の詳細は、「ポリシーおよびメッセージ暗号化を使用したセキュリティの有効化」を参照してください。

2.10 SOAコンポジット・アプリケーションのデプロイ

SOAコンポジット・アプリケーションのデプロイには、Oracle WebLogic Serverへの接続の作成、およびOracle WebLogic Server管理対象サーバーへのSOAコンポジット・アプリケーションのアーカイブのデプロイも含まれます。SOAコンポジット・アプリケーションのデプロイの詳細は、「SOAコンポジット・アプリケーションのデプロイ」を参照してください。

2.10.1 デプロイ済SOAコンポジット・アプリケーションの起動方法

SOAコンポジット・アプリケーションから、デプロイ済のSOAコンポジット・アプリケーションを起動できます。

デプロイ済SOAコンポジット・アプリケーションを起動するには:

  1. 次のいずれかの方法を使用して、Webサービスまたはパートナ・リンクを作成します。

    1. SOAコンポジット・エディタで、「コンポーネント」ウィンドウから「外部参照」スイムレーンに「SOAP」アイコンをドラッグします。

    2. Oracle BPELデザイナで、「コンポーネント」ウィンドウの「BPELコンストラクト」セクションから右側のスイムレーンに「パートナ・リンク」をドラッグします。

  2. 作成したサービスのタイプに基づいて「SOAリソース・ブラウザ」ダイアログにアクセスします。

    1. 「Webサービスの作成」ダイアログから、「既存のWSDLを検索します。」アイコンをクリックします。「WSDLチューザ」ダイアログの「アプリケーション・サーバー」セクションが表示されます。

    2. 「パートナ・リンクの編集」ダイアログから、「SOAリソース・ブラウザ」アイコンをクリックします。「WSDLチューザ」ダイアログの「アプリケーション・サーバー」セクションが表示されます。

  3. 「アプリケーション・サーバー」が選択されていない場合、選択します。

  4. ツリーを開いて、SOAコンポジット・アプリケーションがデプロイされたサーバーへのアプリケーション・サーバー接続を表示します。

  5. アプリケーション・サーバー接続を展開します。

  6. SOAフォルダおよびパーティションを開きます。図2-25に詳細を示します。

    図2-25 SOAコンポジット・アプリケーションの参照

    図2-25の説明が続きます
    「図2-25 SOAコンポジット・アプリケーションの参照」の説明
  7. コンポジット・サービスを選択します。

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

アプリケーション・サーバー接続の作成方法の詳細は、「アプリケーション・サーバー接続の作成」を参照してください。

2.11 SOAコンポジット・アプリケーションの管理とテスト

SOAコンポジット・アプリケーションを作成してデプロイした後は、Oracle JDeveloperOracle Enterprise Manager Fusion Middleware Controlを組み合せて使用して、そのSOAコンポジット・アプリケーションを管理およびテストします。

2.11.1 Oracle JDeveloperでのデプロイ済SOAコンポジット・アプリケーションの管理方法

Oracle JDeveloperの「アプリケーション・サーバー・ナビゲータ」から、デプロイ済のSOAコンポジット・アプリケーションを管理できます。管理タスクには、SOAコンポジット・アプリケーション・リビジョンのアンデプロイ、アクティブ化、リタイア、有効化および無効化があります。

ノート:

ここで説明する手順は、SOAインフラストラクチャがデプロイされたOracle WebLogic管理サーバーへのアプリケーション・サーバー接続が作成済であることを前提にしています。Oracle WebLogic管理サーバーへの接続を作成すると、管理対象およびクラスタ化されたOracle WebLogic Serverを同じドメインで参照できます。「ファイル」メイン・メニューから、「新規」「アプリケーション」「接続」「アプリケーション・サーバー接続」を選択して、接続を作成します。

  1. 「ウィンドウ」メイン・メニューから、「アプリケーション・サーバー」を選択します。
  2. 接続名を展開します(この例では「MyConnection」)。

    図2-26に示すように、「SOA」フォルダが表示されます。「SOA」フォルダには、デプロイ済のSOAコンポジット・アプリケーションのリビジョンとサービスがすべて表示されます。これにより、すべてのOracle WebLogic管理サーバー、管理対象のOracle WebLogic Serverおよびクラスタ化されたOracle WebLogic Serverにデプロイされたすべてのアプリケーションを同じドメインで参照できます。図2-26に詳細を示します。

    図2-26 アプリケーション・サーバー・ナビゲータ

    図2-26の説明が続きます
    「図2-26 アプリケーション・サーバー・ナビゲータ」の説明
  3. 「SOA」フォルダを展開します。
  4. コンポジット・アプリケーションがデプロイされたパーティションを展開します。

    図2-27に示すように、デプロイ済のSOAコンポジット・アプリケーションとサービスが表示されます。

    図2-27 デプロイ済のSOAコンポジット・アプリケーション

    図2-27の説明が続きます
    「図2-27 デプロイ済のSOAコンポジット・アプリケーション」の説明
  5. デプロイされているSOAコンポジット・アプリケーションを右クリックします。
  6. 実行するオプションを選択します。選択肢として表示されるオプションは、アプリケーションの現在の状態に基づきます。表2-13に詳細を示します。

    表2-13 SOAコンポジット・アプリケーションのオプション

    オプション 説明

    停止

    実行中のSOAコンポジット・アプリケーションのリビジョンを停止します。コンポジットが停止されると、そのコンポジットへのすべてのリクエスト(開始またはコールバック)は拒否されます。

    ノート: 使用するバインディング・コンポーネントによって動作が異なります。たとえば、Webサービス・リクエストの場合は、却下されてコール元に戻されます。JCAアダプタ・バインディング・コンポーネントでは、このような場合、異なる動作になることがあります(リクエストが拒否表に配置されるなど)。

    このオプションは、コンポジット・アプリケーションが起動されているときに表示されます。

    開始

    停止したコンポジット・アプリケーションのリビジョンを再起動します。これにより、新規リクエストを処理できるようになります(却下されません)。メッセージのリカバリは発生しません。

    このオプションは、コンポジット・アプリケーションが停止されているときに表示されます。

    リタイア

    選択したコンポジットのリビジョンをリタイア状態にします。プロセスのライフ・サイクルがリタイア状態の場合、新しいインスタンスは作成できません。既存インスタンスは正常に完了できます。

    コンポジット・アプリケーションへの開始リクエストは拒否されてクライアントに返されます。拒否の際の異なるバインディング・コンポーネントの動作については、停止オプションの場合と同様です。

    開始されたコンポジット・アプリケーション・インスタンスへのコールバックは正常に実行されます。

    このオプションは、コンポジット・アプリケーションがアクティブなときに表示されます。

    アクティブ化

    リタイア状態のコンポジット・アプリケーションのリビジョンをアクティブ化します。このオプションでの次の動作に注意してください。

    • デプロイされると、すべてのコンポジット・アプリケーションは自動的にアクティブになります。

    • 新しくデプロイされたコンポジット・アプリケーションの他のリビジョンはアクティブのままで、自動的にリタイアされることはありません。必要であれば、これらは明示的にリタイアする必要があります。

    このオプションは、アプリケーションがリタイアされているときに表示されます。

    アンデプロイ

    選択したコンポジット・アプリケーションのリビジョンをアンデプロイします。このアクションの結果は次のようになります。

    • コンポジット・アプリケーションのこのリビジョンは、構成およびモニターできなくなります。

    • コンポジット・アプリケーションのこのリビジョンのインスタンスは処理できなくなります。

    • すでに完了したプロセスは表示できません。

    • 現在実行中のインスタンスの状態が中止になり、このコンポジットに送信された新しいメッセージは処理されません。

    • コンポジット・アプリケーションのデフォルトのリビジョン(たとえば2.0)をアンデプロイすると、そのコンポジット・アプリケーションの次に利用可能なリビジョン(たとえば1.0)がデフォルトになります。

    デフォルトのリビジョンの設定

    選択したコンポジット・アプリケーション・リビジョンをデフォルトとして設定します。

  7. デプロイメント・プロファイルが含まれるビルトインのSOAコンポジット・アプリケーション・アーカイブをデプロイする場合、SOAフォルダを右クリックし、「SOAアーカイブのデプロイ」を選択します。このアーカイブは単一アプリケーションのJARファイルまたは複数のアプリケーションが含まれるSOAバンドルZIPファイルで構成されます。

    次を選択するように求めるプロンプトが表示されます。

    • SOAコンポジット・アプリケーションのアーカイブをデプロイするターゲットSOAサーバー。

    • デプロイするアーカイブ。

    • アプリケーションに添付する構成プラン。通常、プロジェクトをある環境から別の環境に(たとえば、テスト環境から本番環境に)移動する場合は、JDBC接続文字列や様々なサーバーのホスト名など、環境固有の値をいくつか変更する必要があります。これらの値は、構成プランと呼ばれる単一のテキスト(XML)ファイルを使用して変更できます。構成プランは、Oracle JDeveloperまたはコマンドラインから作成します。構成プランは、プロセスのデプロイメント時に、プロジェクトを別のターゲット環境に適合させるために置換する必要のある値に関するSOAプロジェクトを検索する際に使用されます。これはオプションです。

    • 同じリビジョンIDを持つ既存のコンポジットを上書きするかどうか。これにより、アプリケーションのリビジョンを再デプロイできます。

    図2-28に詳細を示します。

    図2-28 「SOAアーカイブのデプロイ」ダイアログ

    図2-28の説明が続きます
    「図2-28 「SOAアーカイブのデプロイ」ダイアログ」の説明

詳細は、次のドキュメントを参照してください。

2.11.2 デプロイ済SOAコンポジット・アプリケーションのテストおよびデバッグ方法

SOAコンポジット・アプリケーションをデプロイすると、Oracle Enterprise Manager Fusion Middleware Controlの「Webサービスのテスト」ページからそのテスト・インスタンスを開始して、XMLペイロード・データを検証することができます。テスト・インスタンスの開始の詳細は、『Oracle SOA SuiteおよびOracle Business Process Management Suiteの管理』を参照してください。

テスト・インスタンスの作成に加え、次のテスト・タスクおよびデバッグ・タスクもOracle JDeveloperで実行できます。

  • 本番環境へのデプロイメントの前に、SOAコンポジット・アプリケーションとそのWebサービス・パートナ間の相互作用をシミュレートします。これにより、本番環境へのデプロイメント準備が完了するまでに、プロセスとWebサービス・パートナの相互作用が期待どおりであるかを確認できます。ユニット・テストの作成方法の詳細は、「SOAコンポジット・アプリケーションのテストの自動化」を参照してください。

  • Oracle JDeveloperでは、SOAデバッガを使用して、SOAコンポジット・アプリケーションをテストおよびデバッグします。SOAデバッガは、Oracle JDeveloper内でトラブルシューティング環境を提供することによって、SOAコンポジット・アプリケーションの開発サイクルを短縮します。これにより、SOAコンポジット・アプリケーションをOracle JDeveloperでビルドし、それをSOAインフラストラクチャにデプロイし、Oracle Enterprise Manager Fusion Middleware Controlを起動して監査証跡とフロー・トレースのテストまたは表示を行ってから、Oracle JDeveloperに戻って作業を繰り返すという時間のかかるプロセスが必要なくなります。詳細は、「SOAコンポジット・アプリケーションのデバッグおよび監査」を参照してください。