この章では、SOAコンポジット・アプリケーションでのサービス・コンポーネント、バインディング・コンポーネントおよびワイヤの作成方法を説明することで、SOAコンポジット・エディタの機能を説明します。 また、アプリケーションの設計時に認識する必要がある主要な問題についても説明します。
項目は次のとおりです。
SOAコンポジット・アプリケーションの構成内容は次のとおりです。
サービス・バインディング・コンポーネント
コンポジット
サービス・コンポーネント
参照バインディング・コンポーネント
ワイヤ
これらの構成内容の詳細は、第1章「SOAコンポジット・アプリケーションの概要」を参照してください。
この項では、Oracle JDeveloperでSOAコンポジット・アプリケーションを作成および設計する方法の概要を説明します。 ここでは、コンポーネント作成の基本的な手順の他に、コンポジット・アプリケーションの設計時に認識する必要がある主要な問題についても説明します。
SOAコンポジット・エディタでは、SOAコンポジット・アプリケーションを設計する2つのアプローチのいずれか1つを使用できます。
トップダウン・アプローチ
ボトムアップ・アプローチ
これらのアプローチの詳細は、第1.1項「Oracle SOA Suiteの概要」を参照してください。 この項の例では、トップダウン・アプローチについて説明します。
エンドツーエンドのSOAコンポジット・アプリケーションの設計については、『Oracle Fusion Middleware Oracle SOA Suiteアプリケーションの作成および実行のためのチュートリアル』を参照してください。
警告: 変更内容はツールバー・メニューから「すべて保存」を選択して常に保存してください。 |
最初にSOAプロジェクト用のアプリケーションを作成します。
アプリケーションを作成する手順は、次のとおりです。
Oracle JDeveloper Studio Editionバージョン11.1.1.0.0を起動します。
Oracle JDeveloperを初めて実行する場合は、Java JDKの場所を指定します。
図4-1に、Oracle JDeveloperに初めてアクセスしたときの画面を示します。
表4-1で説明するように、新しいSOAコンポジット・アプリケーションを作成します。
表4-1 SOAコンポジット・アプリケーションの作成
Oracle Jdeveloperの状態 | 操作 |
---|---|
アプリケーションがない 例: Oracle JDeveloperを初めて開いた場合 |
左上の「アプリケーション・ナビゲータ」で、「新規アプリケーション」→「SOAアプリケーション」の順にクリックします。 |
既存のアプリケーションがある |
「ファイル」メイン・メニューからの操作方法:
「アプリケーション」メニューからの操作方法:
|
これにより、SOAアプリケーションの作成ウィザードが起動します。
表4-2に示す値を入力します。
表4-2 SOAコンポジット・アプリケーションの作成値
フィールド | 値 |
---|---|
アプリケーション名 |
アプリケーション名を入力します(この例では、 |
ディレクトリ名 |
デフォルト値をそのまま使用するか、別のディレクトリ・パスを入力します。 |
残りのすべての設定に対するデフォルト値をそのまま使用し、「次へ」をクリックします。
SOAアプリケーションの作成ウィザードの「プロジェクト名」ページが表示されます。
プロジェクトの名前を入力し(この例では「MySOAProject」
)、「次へ」をクリックします。使用するプロジェクト・テクノロジとしてSOAが自動的に選択されます。
注意: コンポジットおよびコンポーネントの名前は、500文字を超えることはできません。 |
同じインフラストラクチャにデプロイするプロジェクトの名前は、SOAコンポジット・アプリケーション全体で一意である必要があります。 これは、コンポジットの一意性は、そのコンポジットのプロジェクト名によって確定されるためです。 たとえば、表4-3に説明するような操作は実行しないでください。 1番目のデプロイ済プロジェクト(コンポジット)は、デプロイメント時に2番目のデプロイ済プロジェクト(コンポジット)によって上書きされます。
SOAアプリケーションの作成ウィザードのプロジェクトのSOA設定ページが表示されます。
「空のコンポジット」を選択し、「終了」をクリックします。
図4-2に示すSOAコンポジット・エディタが表示されます。 composite.xmlファイルが「アプリケーション・ナビゲータ」に表示されます。 このファイルは、プロジェクトの作成時に自動的に作成されます。このファイルには、サービス、サービス・コンポーネントおよび参照のコンポジット構成全体が記述されています。 1つのSOAプロジェクトに対して1つのcomposite.xmlファイルがあります。
SOAコンポジット・エディタの各セクションの詳細は、第2.1項「SOAコンポジット・エディタの概要」を参照してください。
「ファイル」メイン・メニューから「すべて保存」を選択します。
アプリケーションのビジネス・ロジックまたは処理ルールを実装するサービス・コンポーネントを作成します。
サービス・コンポーネントをデザイナにドラッグし、初期プロパティ・エディタを起動します。 これにより、サービス・インタフェース(および非同期BPELプロセスの場合はオプションのコールバック・インタフェース)を定義できます。
表4-4は、使用可能なサービス・コンポーネントを示しています。
表4-4 サービス・コンポーネント・エディタの起動
ドラッグするサービス・コンポーネント | 起動する対象 |
---|---|
BPELプロセス |
「BPELプロセスの作成」ダイアログ: 一連のビジネス・アクティビティとサービスをエンドツーエンドのプロセス・フローに統合するBPELプロセスを作成できます。 |
ビジネス・ルール |
「ビジネス・ルールの作成」ダイアログ: ルールに基づいてビジネス上の意思決定を作成できます。 |
ヒューマン・タスク |
「ヒューマン・タスクの作成」ダイアログ: エンドツーエンドのビジネス・プロセス・フローの一部として、ユーザーまたはグループが実行するタスクを説明するワークフローを作成できます。 |
メディエータ |
「メディエータの作成」ダイアログ: メッセージおよびイベントのルーティング、フィルタリングおよびトランスフォーメーションを実行するサービスを定義できます。 |
次の例は、BPELプロセスをデザイナ内にドラッグした場合に実行する手順を示しています。
サービス・コンポーネントを追加する手順は、次のとおりです。
「コンポーネント・パレット」から「SOA」を選択します。
「サービス・コンポーネント」リストから「BPELプロセス」をデザイナにドラッグします。
「BPELプロセスの作成」ダイアログが表示されます。
表4-5に記載されている詳細を入力します。
表4-5 「BPELプロセスの作成」ダイアログのフィールドと値
フィールド | 値 |
---|---|
名前 |
名前を入力します(この例では |
ネームスペース |
デフォルトの値をそのまま使用します。 |
テンプレート |
「同期BPELプロセス」を選択します。 使用可能なテンプレートの詳細は、オンライン・ヘルプを参照してください。 |
SOAPサービスとして公開 |
このチェック・ボックスの選択を解除します。これは、スタンドアロンBPELプロセスを作成します。 このチェック・ボックスを選択すると、BPELプロセスとインバウンドWebサービス・バインディング・コンポーネントがそれぞれ作成され、接続されます。 |
完了すると、「BPELプロセスの作成」ダイアログが図4-3に示すように表示されます。
「入力」フィールドと「出力」フィールドは、「BPELプロセスの作成」ダイアログにも表示されることに注意してください。 これらのフィールドにより、「タイプ・チューザ」ダイアログまたは「SOAリソース・ブラウザ」ダイアログから、それぞれ特定の入力スキーマおよび出力スキーマを選択またはインポートできます。この例に対しては、文字列の入力値と出力値で構成されているデフォルトのスキーマが使用されます。このスキーマは、発行するメッセージの構造を定義します。
「SOAリソース・ブラウザ」ダイアログからは、「リソース・パレット」にもアクセスできます。この「リソース・パレット」には単一のダイアログがあり、ここからスキーマにアクセスしたり、複数のアプリケーションでスキーマを共有することができます。
残りのすべての設定についてはデフォルト値をそのまま使用します。
「OK」をクリックします。
BPELプロセスは、図4-4に示すデザイナで表示されます。 丸囲みの1本の矢印は、同期する一方向のBPELプロセス・サービス・コンポーネントであることを示します。非同期プロセスは、逆方向を示す丸囲みの2本の矢印によって示されます。2本の矢印は、インタフェースとコール・バック・インタフェースを表します。
BPELプロセスの内容は、現時点でも後からでも詳細に定義できます。このトップダウンの例では、この時点で内容が定義されます。
「ファイル」メイン・メニューから「すべて保存」を選択します。
サービス・コンポーネントの追加については次の詳細に注意してください。
サービス・コンポーネントは、SOAコンポジット・エディタまたは他のコンポーネントのデザイナから作成できます。 たとえば、ヒューマン・タスク・コンポーネントは、SOAコンポジット・エディタまたはOracle BPELデザイナから作成できます。
「リソース・パレット」は、SOAコンポジット・エディタで定義されているか、デプロイされているサービス・コンポーネントを参照するのに使用できます。 参照とワイヤは、SOAコンポジット・エディタまたはデプロイ・リストからのサービス・コンポーネントが使用される場合に作成されます。
サービス・コンポーネントの削除については次の詳細に注意してください。
サービス・コンポーネントを削除するには、該当するサービス・コンポーネントを右クリックして、コンテキスト・メニューから「削除」を選択します。
サービス・コンポーネントが削除されると、それを示す参照はすべて無効になり、すべてのワイヤは削除されます。サービス・コンポーネントも「アプリケーション・ナビゲータ」から削除されます。
別のサービス・コンポーネント内から作成されたサービス・コンポーネントを削除できます。たとえば、Oracle JDeveloperのBPELプロセス・サービス・コンポーネント内で作成されたヒューマン・タスクは、SOAコンポジット・エディタから削除できます。さらに、タスクへのパートナ・リンクも削除できます。パートナ・リンクを削除すると、その.componentType
ファイルから参照インタフェースが削除され、タスクへのワイヤが削除されます。
サービス・コンポーネントに関する特定の詳細を定義するには、表4-6に示すように、該当するサービス・コンポーネントをダブルクリックして適切なエディタを表示します。
表4-6 SOAサービス・コンポーネントのウィザードとダイアログの起動
ダブルクリックするサービス・コンポーネント | 表示対象 |
---|---|
BPELプロセス |
詳細設計のためのOracle BPELデザイナ |
ビジネス・ルール |
詳細設計のためのビジネス・ルール・デザイナ |
ヒューマン・タスク |
詳細設計のためのヒューマン・タスク・エディタ |
メディエータ |
詳細設計のためのOracle Mediatorエディタ |
サービス・コンポーネントを編集する手順は、次のとおりです。
「SayHello」BPELプロセスをダブルクリックします。
これにより、BPELプロセスが編集状態で開きます。
任意のサービス・コンポーネントからSOAコンポジット・エディタに戻るには、ツールバーの「コンポジット・エディタに移動」をクリックします。 または、「アプリケーション・ナビゲータ」のcomposite.xmlをダブルクリックするか、デザイナの上のcomposite.xmlをシングルクリックします。
図4-5に示すように、右上の「コンポーネント・パレット」に移動します。
assignアクティビティをデザイナのreceiveInput receiveアクティビティの下にドラッグします。
assignアクティビティをダブルクリックします。
「コピー操作」タブをクリックします。
図4-6に示すドロップダウン・リストから、「コピー操作」を選択します。
適切な詳細を入力します。 この例では、表4-7に示す詳細が入力されます。
表4-7 「コピー操作」ダイアログのフィールドと値
フィールド | 値 |
---|---|
From |
|
|
式 |
|
concat('Hello ',bpws:getVariableData('inputVariable','payload','/client:SayHelloProcessRequest/client:input')) 注意: 「XPath式ビルダー」にアクセスするには[Ctrl]キーを押しながら[Space]キーを押してください。表示される値のリストをスクロールして、選択する値をダブルクリックします。情報を入力すると、赤い下線が表示されます。 これは、追加情報の入力を求められていることを示します。追加情報を入力するか、[Esc]キーを押して末尾のスラッシュを削除し、情報の入力を完了します。 |
To |
|
|
変数 |
|
「変数」→「プロセス」→「変数」→「outputVariable」→「payload」→「client:SayHelloProcessResponse」→「client:result」の順に展開し、選択します。 |
「OK」をクリックして、「コピー操作の作成」ダイアログと「Assign」ダイアログを閉じます。
「アプリケーション・ナビゲータ」で、デザイナの中のcomposite.xmlをダブルクリックするか、デザイナの上のcomposite.xmlをシングルクリックします。
これにより、SOAコンポジット・エディタに戻ります。
「ファイル」メイン・メニューから「すべて保存」を選択します。
SOAコンポジット・アプリケーションへのエントリ・ポイントとして機能するサービス・バインディング・コンポーネントを外部から追加します。
サービスを左側のスイムレーンにドラッグして、初期プロパティ・エディタを起動します。 これにより、サービス・インタフェースを定義できます。
表4-8は、使用可能なサービスを示しています。
ドラッグするサービス | 起動する対象 |
---|---|
Webサービス |
「Webサービスの作成」ダイアログ: Web呼出しサービスを作成します。 |
アダプタ |
アダプタ構成ウィザード: サービスを、データベース表、データベース・キュー、ファイル・システム、FTPサーバー、Java Message Services(JMS)、IBM WebSphere MQ、BAMサーバー、ソケットまたはOracle E-Business Suiteアプリケーションと統合します。 |
ADF-BCサービス |
「ADF-BCサービスの作成」ダイアログ: サービス・データ・オブジェクト(SDO)呼出しサービスを作成します。 |
B2B |
B2Bウィザード: 文書定義を選択します。 |
EJBサービス |
「EJBサービスの作成」: SDOパラメータをEnterprise JavaBeansで使用するためのEnterprise JavaBeansサービスを作成します。 |
次の例は、Webサービスをデザイナ内にドラッグした場合に実行する手順を示しています。
注意: |
サービスを追加する手順は、次のとおりです。
「コンポーネント・パレット」で「SOA」を選択します。
「Webサービス」を左側のスイムレーンにドラッグします。
図4-7に示す「Webサービスの作成」ダイアログが表示されます。
表4-9に記載されている詳細を入力します。
表4-9 「Webサービスの作成」ダイアログのフィールドと値
フィールド | 値 |
---|---|
名前 |
サービスの名前を入力します(この例では |
タイプ |
Webサービスに対してタイプ(メッセージの方向)を選択します。 Webサービスを左側のスイムレーンにドラッグしているため、「サービス」タイプが正しい選択であり、デフォルトでこのタイプが表示されます。
この例では、SOAコンポジット・アプリケーションへのエントリ・ポイントの作成方法を説明しているため、「サービス」が選択されています。 |
サービスに対するWSDLファイルを選択します。選択には3種類の方法があります。
「WSDL URL」フィールドの右側で、最初のアイコンをクリックし、ローカル・ファイル・システムから既存のWSDLファイルを選択します(この例では、「SayHello.wsdl」が選択されています)。 ダイアログの最上部にあるリストで「ファイルシステム」が自動的に選択されることに注意してください。 図4-8に詳細を示します。
図4-9に示すように、「WSDL URL」フィールドの右側で最初のアイコンをクリックし、ダイアログの最上部にあるリストから「リソース・パレット」を選択します。 選択すると、他のアプリケーションの既存のWSDLファイルを使用できるようになります。
「WSDL URL」フィールドの右側で、2番目のアイコンをクリックして、スキーマからWSDLファイルを自動的に作成します。 図4-10に、「WSDLの作成」ダイアログを示します。
「OK」をクリックして「Webサービスの作成」ダイアログに戻ります。
表4-10に示す追加詳細をメモします。
「OK」をクリックします。
これで、SOAコンポジット・アプリケーションは、図4-11に示すような外観になります。 サービスは左側のスイムレーンにデプロイされます。
「ファイル」メイン・メニューから「すべて保存」を選択します。
注意: WSDLネームスペースは一意にする必要があります。単にWSDLをコピーして名前変更しないでください。ネームスペースも必ず変更してください。 |
最初にサービスを作成し、後でその内容を編集することもできます。 コンポーネントのアイコンをダブルクリックすると、適切なエディタまたはウィザードが表示されます。 表4-11に概要を示します。
サービスの追加については次の詳細に注意してください。
サービス・コンポーネントに新しいサービスが追加されると、そのサービス・コンポーネントには、メタデータを適切に変更できるように通知されます。 たとえば、新しいサービスがBPELサービス・コンポーネントに追加されると、そのBPELサービス・コンポーネントには、receiveまたはon-messageアクティビティに接続可能なパートナ・リンクを作成するように通知されます。
サービスの削除については次の詳細に注意してください。
サービス・コンポーネントにより提供されているサービスが削除されると、そのサービス・コンポーネントに対するすべての参照が無効となり、ワイヤが削除されます。
WSDLファイルは、WSDLを含む新規コンポーネント(例: サービス・バインディング・コンポーネント、Oracle Mediator、BPELプロセスなどのサービス・コンポーネント、または参照バインディング・コンポーネント)を作成するたびに、SOAコンポジット・アプリケーションに追加されます。コンポーネントを削除すると、そのコンポーネントで使用されるWSDLインポートは、別のコンポーネントで使用されていない場合のみ削除されます。WSDLインポートを使用する最後のコンポーネントが削除されると、WSDLインポートは常に削除されます。
サービス・バインディング・コンポーネントまたは参照バインディング・コンポーネントが新しいWSDLを使用するように更新されると、インタフェースが削除されて新しいインタフェースが追加されたかのように処理されます。したがって、古いWSDLインポートは、別のコンポーネントで使用されていない場合のみ削除されます。
サービス・バインディング・コンポーネントまたは参照バインディング・コンポーネントが新しい場所から同じWSDL(porttype
qname
)を使用するように更新されると、WSDLインポートおよび他のすべてのWSDL参照(例: 外部参照WSDLをインポートするBPELプロセスWSDL)は新しい場所を参照するように自動的に更新されます。
composite.xml
ファイルのインポートのソース・ビューで単にWSDLの場所を変更するだけでは不十分です。メタデータ内にはユーザー・インタフェースで必要なWSDL参照があります(コンポジットおよびcomponentTypeのサービスと参照のui:wsdlLocation
属性を参照)。また、実行時に必要なWSDL参照もあります(例: BPELプロセスWSDLなど別のWSDLをインポートするWSDL)。
WSDLの場所は常に、WSDLの場所が指定されたSOAコンポジット・エディタのダイアログ(例: Webサービス、BPELパートナ・リンクなど)で変更してください。URLのホスト・アドレスを変更すると、SOAコンポジット・エディタはすべてのWSDL参照を自動的に更新します。
リビジョン番号を含まないWSDL URLは、デフォルトのコンポジット・アプリケーションによって処理されます。 このため、コール元のコンポジットを変更せずに、コール先サービスのデフォルト・リビジョンを常にコールできます。
WSDLをデフォルトのコンポジット・アプリケーションで処理する必要があるが、WSDL URLにリビジョン番号が含まれている場合、そのリビジョン番号は手動で削除できます。
リビジョン番号を削除しないと、コール元のコンポジットでは、コール先サービスのハードコードされたリビジョン番号を参照します。 このため、デプロイメント後にコール先サービスのデフォルト・リビジョンを変更した場合でも、特定のリビジョンが常にコールされます。
SOAコンポジット・エディタで、削除するWSDLリビジョン番号を含む参照バインディング・コンポーネントをダブルクリックします。
「参照の更新」ダイアログが表示されます。
「WSDL URL」フィールドの右側にあるアイコンをクリックします。
「SOAリソース・ブラウザ」ダイアログが表示されます。
ダイアログ上部にあるリストから「リソース・パレット」を選択します。
適切なアプリケーション・サーバー接続の下にあるノードを展開し、すべてのデプロイ済コンポジットとリビジョンを表示します。
適切なエンドポイントを選択し、「OK」をクリックします。
選択内容が「WSDL URL」フィールドに表示されます。
!
から/
記号までをすべて削除します。 たとえば、リビジョン番号が3.0
であるとします。 元のコードは次のとおりです。
http://pdent12.us.oracle.com:8001/soa-infra/services/default/
VersionedComposite!3.0*e295c89a-b198-4835-ab16-a3a250d3b46c/
Mediator1_ep?WSDL
次のように変更します。
http://pdent12.us.oracle.com:8001/soainfra/services/default/ VersionedComposite/Mediator1_ep?WSDL
WSDLが再ロードされます。
環境に適したポート・タイプを選択します。
「OK」をクリックします。
これにより、WSDLファイルをデフォルトのコンポジット・アプリケーションで処理できます。
WebサービスとBPELプロセス・サービス・コンポーネントをワイヤ(接続)します。次の点に注意してください。
Webサービスはインバウンド・サービスであるため、参照ハンドルは右側に表示されます。アウトバウンド参照であるWebサービスは、右側に参照ハンドルがありません。
定義済のインタフェースは未定義のインタフェースにどちらの方向から(参照からサービスへ、またはサービスから参照へ)でもドラッグできます。未定義のインタフェースは定義済のインタフェースを継承します。このルールにはいくつかの例外があります。
コンポーネントには、新しいインタフェースを却下する権限があります。たとえば、メディエータには1つのインバウンド・サービスしか保持できません。このため、コンポーネントは2番目のサービスが作成されないように却下します。
ビジネス・ルールは参照をサポートしないため、アウトバウンド・サービス(外部参照)をビジネス・ルールにドラッグすることはできません。 ワイヤをドラッグすると、ユーザー・インタフェースでは、有効なターゲットであるインタフェースがハイライト表示されます。
異なるインタフェースを持つサービスとコンポジットは接続できません。 たとえば、同期WSDLファイルで構成されているWebサービスは非同期BPELプロセスに接続できません。 図4-12に詳細を示します。
サービスと参照は一致する必要があります。つまり、インタフェースとコールバックは同じになる必要があります。インタフェースが異なる2つのサービスがある場合は、2つのサービス間にメディエータを配置し、インタフェース間のトランスフォーメーションを実行できます。
サービスとサービス・コンポーネントを接続する手順は、次のとおりです。
図4-13に示すように、Service1参照ハンドルからワイヤをSayHello BPELプロセス・インタフェースにドラッグします。
追加サービス・コンポーネントを作成し、必要に応じてそれらを接続します。
composite.xml
ファイルの内容に関する詳細は、第4.2.11項「参照の追加方法」を参照してください。
「ファイル」メイン・メニューから「すべて保存」を選択します。
ワイヤの追加については次の詳細に注意してください。
サービス・コンポーネントの参照がターゲット・サービス・コンポーネントのサービスと一致する場合、サービス・コンポーネントは別のサービス・コンポーネントに接続できます。一致するという意味は、同じインタフェースとコールバック・インタフェースであることに注意してください。
2つのメディエータ・サービス・コンポーネント間に次のワイヤリングを追加すると、無限ループが発生します。
ビジネス・イベントを作成した場合
メディエータ・サービス・コンポーネントを作成し、イベントをサブスクライブした場合
2番目のメディエータ・サービス・コンポーネントを作成し、同じイベントを公開した場合
最初のメディエータを2番目のメディエータ・サービス・コンポーネントに接続した場合
2つのメディエータ間のワイヤを削除すると、すべてのメッセージについて、2番目のメディエータはイベントを1回公開でき、最初のメディエータはそのイベントをサブスクライブできます。
ワイヤの削除については次の詳細に注意してください。
ワイヤが削除されると、コンポーネントのアウトバウンド参照は自動的に削除され、クリーン・アップ(パートナ・リンクの削除、ルーティング・ルールの消去など)が可能であることがコンポーネントに通知されます。 ただし、コンポーネントのインタフェースは削除されません。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を選択します。
「インタフェースの更新」ダイアログの詳細は、第4.2.14項「コンポーネントのメッセージ・スキーマの更新方法(オプション)」を参照してください。
参照バインディング・コンポーネントを追加できます。このコンポーネントは、外部にある外部サービスにメッセージを送信するためのSOAコンポジット・アプリケーションを有効にします。
参照を右側のスイムレーンにドラッグし、初期プロパティ・エディタを起動します。 これにより、サービス・インタフェースを定義できます。
表4-12は、使用可能な参照を示しています。
表4-12 参照エディタ
ドラッグするサービス | 起動する対象 |
---|---|
Webサービス |
「Webサービスの作成」ダイアログ: Web呼出しサービスを作成します。 |
アダプタ |
アダプタ構成ウィザード: サービスを、データベース表、データベース・キュー、ファイル・システム、FTPサーバー、Java Message Services(JMS)、IBM WebSphere MQ、BAMサーバー、ソケットまたはOracle E-Business Suiteアプリケーションと統合します。 |
ADF-BCサービス |
「ADF-BCサービスの作成」ダイアログ: サービス・データ・オブジェクト(SDO)呼出しサービスを作成します。 |
B2B |
B2Bウィザード: 文書定義を選択します。 |
EJBサービス |
「EJBサービスの作成」ダイアログ: SDOパラメータをEnterprise JavaBeansで使用するためのEnterprise JavaBeansサービスを作成します。 |
次の例は、ファイル・アダプタをデザイナ内にドラッグした場合に実行する手順を示しています。
参照を追加する手順は、次のとおりです。
「コンポーネント・パレット」で「SOA」を選択します。
「ファイル・アダプタ」を右側のスイムレーンにドラッグします。
これにより、アダプタ構成ウィザードが起動されます。
表示されるダイアログに対して適切なレスポンスを指定します。たとえば、ディレクトリ内のファイルに書き込むようにファイル・アダプタを構成するには、次のように指定します。
ファイルへの書込みを選択します。
出力ファイルを書き込むディレクトリを指定します。
スキーマ・ファイルの場所を指定します。
完了すると、デザイナは図4-14のようになります。
BPELプロセス・サービス・コンポーネント内でのパートナ・リンクの作成が、SOAコンポジット・エディタでのパートナ・リンク表示に与える影響は、第5.4項「パートナ・リンクの作成」を参照してください。
「SayHello」BPELプロセスをダブルクリックします。
BPELプロセス設計の残りの部分を完了します。
パートナ・リンクを起動するinvokeアクティビティの作成
変数の作成
変数への戻り値の割当て
「ファイル」メイン・メニューから「すべて保存」を選択します。
最初に参照を作成し、後でその内容を編集することもできます。 コンポーネントのアイコンをダブルクリックすると、適切なエディタまたはウィザードが表示されます。 概要は、表4-11を参照してください。
参照の追加については次の詳細に注意してください。
SOAコンポジット・エディタに新しい参照を追加する唯一の方法は、必要なターゲット・サービス・コンポーネントにサービス・コンポーネントを接続することです。新しい参照が追加されると、メタデータを適切に変更できるように、サービス・コンポーネントに通知されます。たとえば、参照がBPELサービス・コンポーネントに追加されると、BPELサービス・コンポーネントにパートナ・リンクを追加するように通知されます。このパートナ・リンクはinvokeアクティビティで使用可能です。
参照の削除については次の詳細に注意してください。
サービス・コンポーネントに対する参照が削除されると、関連付けられているワイヤも削除され、メタデータを更新できるようにサービス・コンポーネントに通知されます。たとえば、参照がBPELサービス・コンポーネントから削除されると、そのBPELメタデータにあるパートナ・リンクを削除するようにサービス・コンポーネントに通知されます。
ワイヤに接続されている参照を削除すると、その参照とワイヤも消去されます。
ここでBPELプロセスとファイル・アダプタ参照をワイヤ(接続)します。
サービス・コンポーネントと参照を接続する手順は、次のとおりです。
「アプリケーション・ナビゲータ」でcomposite.xmlをダブルクリックするか、デザイナの上でcomposite.xmlをシングルクリックします。
図4-15に示すように、SayHello BPELプロセスからワイヤをWriteFile参照にドラッグします。
SayHello BPELプロセスをダブルクリックすると、図4-16に示すように、右側のスイムレーンにパートナ・リンクとしてWriteFile参照が表示されることに注意してください。
「ファイル」メイン・メニューから「すべて保存」を選択します。
「アプリケーション・ナビゲータ」で、composite.xmlファイルをダブルクリックします。
「ソース」タブをクリックして、作成した内容を確認します。
Service1
サービスは、例4-1に示すように、コンポジットへのエントリ・ポイントを提供します。
<composite name="MySOAProject">
. . .
. . .
<service name="Service1" ui:wsdlLocation="SayHello.wsdl">
<interface.wsdl interface="http://xmlns.oracle.com/MySOAApplication/
MySOAProject/ SayHello#wsdl.interface(SayHello)"/>
<binding.ws port="http://xmlns.oracle.com/MySOAApplication/MySOAProject/
SayHello#wsdl.endpoint
(sayhello_client_ep/SayHello_pt)"/>
</service>
例4-2に、SayHello
BPELプロセス・サービス・コンポーネントを示します。
例4-2 サービス・コンポーネント
<component name="SayHello">
<implementation.bpel src="SayHello.bpel"/>
</component>
例4-3に、WriteFile
という名前の参照バインディング・コンポーネントを示します。 この参照タイプはJCAファイル・アダプタです。 この参照は、外部にある外部サービスへのアクセスを提供します。
例4-3 参照
<reference name="WriteFile" ui:wsdlLocation="WriteFile.wsdl">
<interface.wsdl interface="http://xmlns.oracle.com/pcbpel/adapter/
file/MySOAApplication/MySOAProject/WriteFile%2F#wsdl.interface(Write_ptt)"/>
<binding.jca config="WriteFile_file.jca"/>
</reference>
例4-4では、サービス・コンポーネント間の通信(ワイヤリング)が次のように記述されています。
ソースのService1
Webサービスは、ターゲットのSayHello
BPELプロセス・サービス・コンポーネントに接続されています。ワイヤリングにより、この特定のBPELプロセスとWebサービス・メッセージ通信ができます。
ソースのSayHello
BPELプロセスは、ターゲットのWriteFile
参照バインディング・コンポーネントに接続されています。 これは、外部にある外部サービスへの参照です。
サービス・コンポーネントまたはバインディング・コンポーネントにより使用されているメッセージ・スキーマを更新できます。
コンポーネントのメッセージ・スキーマを更新する手順は、次のとおりです。
図4-17に示すように、コンポーネントのインタフェース・ハンドルをダブルクリックします。この例では、SayHello BPELプロセス・サービス・コンポーネントのインバウンド・インタフェース・ハンドルが選択されています。
図4-18に示す「インタフェースの更新」ダイアログが表示されます。このダイアログでは、インタフェースのWSDLで使用されているすべてのスキーマが表示され、選択されたメッセージ・パートに対する新しいスキーマを選択できます。
次の方法の1つを使用し、更新するメッセージ・スキーマを選択します。
メッセージ・スキーマの行をダブルクリックします。
行を選択して、表の右上にある 「更新」アイコンをクリックします。
「タイプ・チューザ」ダイアログが表示されます。
新しいスキーマ・エレメントを選択し、「OK」をクリックします。
「インタフェースの更新」ダイアログで「OK」をクリックします。これにより、新しいスキーマを使用するためのインタフェースWSDLが更新されます。
コンポーネントのメッセージ・スキーマの更新については次の詳細に注意してください。
いくつかの操作(入力および出力)は同じWSDLメッセージを使用する可能性があります。この場合、同じメッセージが表の複数の行で示されます。ある行でスキーマを更新すると、他の行に変更が反映されます。
インタフェースにより使用されているスキーマが変更されると、そのスキーマに依存しているコンポーネント内で以前構成した機能が無効になる場合があります。たとえば、BPELプロセスまたはメディエータ・サービス・コンポーネントでのトランスフォーメーション手順は、古いスキーマに対して作成されたトランスフォーメーション・マップを使用するため、無効になる場合があります。
インタフェースにコールバックがない場合(この例のBPELプロセス同様)、「インタフェースの更新」ダイアログは「コールバック・ポート・タイプ」表を表示します。
複数のインタフェースが同じWSDLにより定義される可能性があるため、ある相互作用(WSDL)に対する変更は他のインタフェースにも反映されます。
「詳細の表示」を選択すると、表に完全修飾名と完全なファイル・パスが表示されます。
インタフェースがサービス・コンポーネント(サービス・バインディング・コンポーネントまたは参照ではない)に属している場合は、「SOAPバインディングを持つコンポジット・サービスの作成」チェック・ボックスが表示されます。 このチェック・ボックスは、BPELプロセスおよびヒューマン・タスクの作成ダイアログに表示される「SOAPサービスとして公開」チェック・ボックスと同じ機能を提供します。このチェック・ボックスを選択して「OK」をクリックすると、サービスとワイヤが自動的に作成されます。 このチェック・ボックスが選択されている場合(サービスが存在する場合)は、その選択を解除して「OK」をクリックすると、サービスとワイヤが削除されます。
SOAコンポジット・アプリケーションから他のSOAコンポジット・アプリケーションを起動できます。 他のアプリケーションはデプロイ済である必要があります。
他のコンポジットを起動する手順は、次のとおりです。
次のいずれかの方法を使用して、Webサービスまたはパートナ・リンクを作成します。
SOAコンポジット・エディタで、「コンポーネント・パレット」から「外部参照」スイムレーンに「Webサービス」をドラッグします。
Oracle BPELデザイナで、「コンポーネント・パレット」から右側のスイムレーンに「パートナ・リンク」をドラッグします。
作成したサービスのタイプに基づいて「SOAリソース・ブラウザ」ダイアログにアクセスします。
「Webサービスの作成」ダイアログの場合は、「既存のWSDLを検索します。」アイコンをクリックします。
「パートナ・リンクの編集」ダイアログの場合は、「SOAリソース・ブラウザ」アイコンをクリックします。
上部のリストから「リソース・パレット」を選択します。
ツリーを展開して、SOAコンポジット・アプリケーションがデプロイされたOracle WebLogic管理サーバーへのアプリケーション・サーバー接続を表示します (たとえば、「MyConnection」)。
アプリケーション・サーバー接続を展開します。
SOAコンポジット・アプリケーションを展開します。 図4-19に詳細を示します。
図4-20に示すように、コンポジット・サービスを選択します。
「OK」をクリックします。
SOAコンポジット・アプリケーションのデプロイには、SOAコンポジット・アプリケーションのアーカイブの作成とデプロイも含まれます。 詳細は、第43章「SOAコンポジット・アプリケーションのデプロイ」を参照してください。
Oracle JDeveloperの「アプリケーション・サーバー・ナビゲータ」から、デプロイ済のSOAコンポジット・アプリケーションを管理できます。 管理タスクは、SOAコンポジット・アプリケーションの各リビジョンのデプロイ、アンデプロイ、アクティブ化、リタイア、開始および停止で構成されます。
注意: ここで説明する手順は、SOAインフラストラクチャがデプロイされたOracle WebLogic管理サーバーへのアプリケーション・サーバー接続が作成済であることを前提にしています。 Oracle WebLogic管理サーバーへの接続を作成すると、管理対象およびクラスタ化されたOracle WebLogic Serverを同じドメインで参照できます。「ファイル」メイン・メニューから、「新規」→「接続」→「アプリケーション・サーバー接続」の順に選択して、接続を作成します。 |
「表示」メイン・メニューから、「アプリケーション・サーバー・ナビゲータ」を選択します。
接続名を展開します(この例では「myConnection」)。
図4-21に示すように、「デプロイメント」および「SOA」フォルダが表示されます。「SOA」フォルダには、デプロイ済のSOAコンポジット・アプリケーションのリビジョンとサービスがすべて表示されます。 これにより、すべてのOracle WebLogic管理サーバー、管理対象のOracle WebLogic Serverおよびクラスタ化されたOracle WebLogic Serverにデプロイされたすべてのアプリケーションを同じドメインで参照できます。 図4-21に詳細を示します。
「SOA」フォルダを展開します。
図4-22に示すように、デプロイ済のSOAコンポジット・アプリケーションとサービスが表示されます。
デプロイ済のSOAコンポジット・アプリケーションを右クリックします。
実行するオプションを選択します。選択項目として表示されるオプションは、アプリケーションの現在の状態に基づいています。 表4-13に詳細を示します。
表4-13 SOAコンポジット・アプリケーションのオプション
デプロイメント・プロファイルを含むビルトインのSOAコンポジット・アプリケーション・アーカイブをデプロイする場合は、「SOA」フォルダを右クリックし、SOAアーカイブのデプロイを選択します。 アーカイブは、単一アプリケーションのJARファイル、または複数のアプリケーションを含むSOAバンドルZIPファイルで構成されます。
次を選択するように求めるプロンプトが表示されます。
SOAコンポジット・アプリケーションのアーカイブをデプロイするターゲットSOAサーバー。
デプロイするアーカイブ。
アプリケーションに添付する構成プラン。 通常、プロジェクトをある環境から別の環境に(たとえば、テスト環境から本番環境に)移動する場合は、JDBC接続文字列や様々なサーバーのホスト名など、環境固有の値をいくつか変更する必要があります。 これらの値は、構成プランと呼ばれる単一のテキスト(XML)ファイルを使用して変更できます。 構成プランは、Oracle JDeveloperまたはコマンドラインから作成します。 プロセスのデプロイメント時に、構成プランを使用してSOAプロジェクトを検索し、プロジェクトを次に進むターゲット環境に適応させるために置換する必要がある値を検索します。これはオプションです。
同じリビジョンIDを持つ既存のコンポジットを上書きするかどうか。これにより、アプリケーションのリビジョンを再デプロイできます。
詳細は、次のドキュメントを参照してください。
デプロイメント・プロファイルおよび構成プランの作成方法、および既存のSOAアーカイブのデプロイ方法の詳細は第43章「SOAコンポジット・アプリケーションのデプロイ」
デプロイされたSOAコンポジット・アプリケーションをOracle Enterprise Manager Fusion Middleware Controlコンソールから管理する方法の詳細は『Oracle Fusion Middleware Oracle SOA Suite管理者ガイド』