33 サービス・バインディング・コンポーネントおよび参照バインディング・コンポーネントの管理
この章の内容は次のとおりです。
ノート:
Oracle SOA Suiteでは、サービス・バインディング・コンポーネントまたは参照バインディング・コンポーネントに対する複数のバインディング(たとえば、composite.xml
ファイルにSOAP 1.1とSOAP 1.2の両方を指定する)はサポートされていません。サポートの対象は、サービスまたは参照ごとに1つのWebサービス・バインディングのみです。複数のバインディングを指定する場合は、1つを除いてすべてのバインディングを削除し、SOAコンポジット・アプリケーションを再デプロイします。
詳細は、次のドキュメントを参照してください。
-
バインディング・コンポーネントの概念の詳細は、「バインディング・コンポーネントの概要」を参照してください
バインディング・コンポーネントのポリシーの管理
現在デプロイされているSOAコンポジット・アプリケーションに組み込まれているバインディング・コンポーネント(WebサービスやJCAアダプタなど)に対して、セキュリティ・ポリシーをアタッチおよびデタッチできます。ポリシーはメッセージの配信にセキュリティを適用します。Oracle Fusion Middlewareでは、ポリシー・ベースのモデルを使用してWebサービスを管理します。
ノート:
ポリシーをアタッチする前に、使用可能なポリシーの定義およびユーザー環境で使用するポリシーの詳細は、Oracle Web Services ManagerによるWebサービスの保護およびポリシーの管理に関する項を参照してください。
バインディング・コンポーネント・ポリシーを管理するには:
-
次のいずれかのオプションを使用して、このページにアクセスします。
SOAインフラストラクチャのメニューから... ナビゲータのSOAフォルダから... -
「ホーム」を選択します。
-
「デプロイ済コンポジット」タブを選択します。
-
「コンポジット」セクションで、特定のSOAコンポジット・アプリケーションを選択します。
-
soa-infraの下にあるSOAフォルダを展開します。
-
特定のSOAコンポジット・アプリケーションを選択します。
選択したSOAコンポジット・アプリケーションに対する「ダッシュボード」タブが表示されます。このページの「サービスと参照」セクションに、アプリケーションで使用されているバインディング・コンポーネントが表示されます。
-
-
「サービスと参照」セクションで、サービスまたは参照を選択します。
-
「ポリシー」をクリックします。
「ポリシー」ページでは、グローバルにアタッチされたポリシーおよび直接アタッチされたポリシーを表示でき、サービス・バインディング・コンポーネントまたは参照バインディング・コンポーネントとの間でセキュリティ・ポリシーをアタッチまたはデタッチできます。
-
「グローバルにアタッチされたポリシー」表には、グローバルにアタッチされたポリシーの名前、ポリシー・セット、カテゴリ(「管理」、「信頼できるメッセージング」、「MTOMアタッチメント」、「セキュリティ」または「WSアドレス」など)、SOAインフラストラクチャの最後の再起動以降の違反、およびSOAインフラストラクチャの最後の再起動以降の認証、認可、機密性および整合性の失敗が表示されます。
ポリシー・セットを使用すると、ある範囲に含まれる同じタイプのエンドポイントに対して、ポリシーをグローバルにアタッチできます。ポリシー・セットを使用してポリシーをグローバルにアタッチすることによって、開発者、アセンブラまたはデプロイヤがアタッチするポリシーを明示的に指定しなかった状況において、管理者は、すべてのサブジェクトが確実に保護されるようにできます。ポリシー・セットを使用してアタッチされるポリシーは、外部的にアタッチされたと見なされます。ポリシー・セットの作成と管理に関する情報は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』を参照してください。
-
「直接アタッチされたポリシー」表には、直接アタッチされたポリシーの名前、ポリシー参照ステータス(有効または無効)、カテゴリ、SOAインフラストラクチャの最後の再起動以降の違反、およびSOAインフラストラクチャの最後の再起動以降の認証、認可、機密性および整合性の失敗が表示されます。
-
-
「直接アタッチされたポリシー」セクションで、「アタッチ/デタッチ」をクリックします。
複数のコンポーネントが使用可能な場合は、アタッチまたはデタッチを実行するサービスまたはコンポーネントを選択するプロンプトが表示されます。
ノート:
ポリシーをサービス・バインディング・コンポーネント(クライアント)にアタッチして、「Webサービスのテスト」ページでSOAコンポジット・アプリケーションのインスタンスを起動し、ポリシーのアタッチに失敗した場合、Oracle Web Services Manager (OSWM)ポリシー・エラーは生成されず、Oracle Enterprise Manager Fusion Middleware Controlに表示されません。
同じビジネス・フロー・インスタンスが外部で起動された場合は、ポリシー・エラーが生成され、Oracle Enterprise Manager Fusion Middleware Controlに表示されます。
サービス・コンポーネント(BPELプロセスなど)または参照バインディング・コンポーネントの場合は、ビジネス・フロー・インスタンスが外部で起動されたか、「Webサービスのテスト」ページを介して内部で起動されたかに関係なく、ポリシー・エラーは常に生成され、表示されます。
-
ポリシーのアタッチ先またはデタッチ先のサービスまたはコンポーネントを選択します。
ポリシーをアタッチまたはデタッチするためのダイアログが起動します。
「アタッチされたポリシー」セクションに、現在アタッチされているポリシーが表示されます。「使用可能なポリシー」セクションには、アタッチ可能な追加のポリシーが表示されます。
-
使用環境に適した、アタッチ対象のポリシーを選択します。
-
「アタッチ」をクリックします。
-
ポリシーのアタッチを終了した後は、「検証」をクリックします。
-
エラー・メッセージが表示された場合は、検証エラーがなくなるまで必要な修正を行います。
アタッチしたポリシーがポリシー表に表示されます。
-
「OK」をクリックします。
詳細は、次のドキュメントを参照してください。
-
ポリシーのアタッチで表示されるダイアログについては、「SOAコンポジット・アプリケーションのポリシーの管理」を参照してください
-
使用可能なポリシーの定義およびユーザー環境で使用するポリシーの詳細は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』を参照してください。
ポリシー構成プロパティ値のオーバーライド
使用環境には、同じポリシーを持つ複数のサーバーを含めることができます。ただし、各サーバーはそれぞれ固有のポリシー要件を保持できます。実行時要件を満たすために、サービス・バインディング・コンポーネントおよび参照バインディング・コンポーネントにアタッチされている管理ポリシーおよびセキュリティ・ポリシーのプロパティ値をオーバーライドできます。
ポリシー値のオーバーライドの詳細は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』を参照してください。
UDDIレジストリへのWebサービスの公開
サービス・バインディング・コンポーネントを登録済のUDDIソースからUDDIレジストリに公開できます。
ノート:
-
参照バインディング・コンポーネントは、UDDIレジストリには公開できません。
-
UDDIレジストリに公開できるのはWebサービスのみです。たとえば、JCAアダプタは公開できません。
-
Oracle Enterprise Manager Fusion Middleware ControlからデフォルトのOracle Service RegistryビジネスにWebサービスを公開できます。デフォルト以外のビジネスに公開するには、Oracle Service Registryの公開オプションを使用します。
-
ドキュメントを含むOracle Service Registryの詳細は、次のURLを参照してください。
http://www.oracle.com/technetwork/middleware/registry/overview/index.html
UDDIレジストリへのWebサービスの公開の詳細は、Webサービスの管理を参照してください。
UDDIレジストリにWebサービスを公開するには:
-
次のいずれかのオプションを使用して、このページにアクセスします。
SOAインフラストラクチャのメニューから... ナビゲータのSOAフォルダから... -
「サービスと参照」を選択します。
-
「soa-infra」を右クリックします。
-
「サービスと参照」を選択します。
「サービス」ページには、サービスの名前とタイプ、サービスが使用されているSOAコンポジット・アプリケーション、コンポジットがデプロイされているSOAフォルダ、処理されたメッセージの合計数、平均処理時間、およびサービスで発生したフォルトの件数に関する詳細が表示されます。
-
-
「サービス」表で、UDDIレジストリに公開するサービスを選択します。
-
「アクション」リストで、「UDDIに公開」を選択します。
「UDDIへのサービスの公開」ダイアログ・ボックスが表示されます。
-
次の情報を入力します。
フィールド 説明 サービス名
選択したサービスの名前を表示します。
サービスの説明
選択したサービスに関するオプションの説明を入力します。
システム定義の場所
UDDIレジストリに公開するWSDL URLを表示します。たとえば:
http://myhost.mycompany.com:7001/soa-infra/services/default/HelloWorld/client?WSDL
UDDIソース
サービスの登録元のUDDI公開ソースを選択します。
ビジネス名
サービスを公開するビジネスを選択します。これは、UDDIレジストリ内のデータ構造の名前です。ビジネスがすでにUDDIレジストリに登録されていることが前提とされています。
完了すると、「UDDIへのサービスの公開」ダイアログ・ボックスは次のように表示されます。
-
「OK」をクリックします。
Oracle Service Registryと統合している場合のエンドポイント参照およびサービス・キーの変更
SOAコンポジット・アプリケーションの参照バインディング・コンポーネントがOracle Service Registry (OSR)と統合されている場合は、このページの「一般」セクションでエンドポイント参照とサービス・キーを変更できます。
実行時のエンドポイントの解決にUDDIを使用することを選択した場合は、composite.xml
ファイルのbinding.ws
property="oracle.soa.uddi.serviceKey"
の値が「UDDI ServiceKey」フィールドに自動的に表示されます。
SOAコンポジット・アプリケーションがデプロイされた後に、次の目的のために「UDDI ServiceKey」フィールドを編集できます。
-
必要に応じて値を変更するため
-
実行時のエンドポイント解決にUDDIを使用していないコンポジットに追加するため
「エンドポイント・アドレス」フィールドは、composite.xml
ファイルのws.binding
endpointURI
プロパティに定義されているエンドポイントの位置を表します。「エンドポイント・アドレス」フィールドは、SOAコンポジット・アプリケーションをデプロイした後は入力できませんが、具体的なWSDLでエンドポイントの位置をオーバーライドできます。
エンドポイントの位置の優先順位は、次のとおりです。
-
「UDDI ServiceKey」フィールドに、バインディング
oracle.soa.uddi.serviceKey
を実行時に動的に設定します。 -
「エンドポイント・アドレス」フィールドに、バインディング・プロパティ
endpointURI
を実行時に動的に設定します。 -
composite.xml
ファイル(Oracle Enterprise Manager Fusion Middleware Controlで表示および編集可能)のoracle.soa.uddi.serviceKey
のバインディング・プロパティ値を使用します。 -
composite.xml
ファイル(Oracle Enterprise Manager Fusion Middleware Controlで表示および編集可能)のendpointURI
のバインディング・プロパティ値を使用します。 -
具体的なWSDLで指定されている位置を使用します。
図33-1は両方のフィールドを示しています。
OSRと統合されている場合にエンドポイント参照およびサービス・キーを変更するには:
-
「UDDI ServiceKey」フィールドで、実行時に使用するサービス・キーを変更します。
-
「エンドポイント・アドレス」フィールドに、実行時に使用するエンドポイント・アドレスを入力します。
両方のフィールドを編集できます。設計時に「UDDIデプロイメント・オプション」ダイアログで選択した内容に基づいて、片方のフィールドの値が選択および使用されます。これらのフィールドへの変更は、実行時にはcomposite.xml
ファイルで維持されます。
ビジネス・サービスの公開、UDDIレジストリへの接続の作成、レジストリからサービスを起動するためのSOAプロジェクトの構成などの設計時のタスクの詳細は、『Oracle SOAスイートでのSOAアプリケーションの開発』を参照してください。
実行時に照会URLを設定する方法の詳細は、「SOAインフラストラクチャ・プロパティの構成」を参照してください。
WSDL URLのキャッシュの構成
エンドポイントWSDL URLのキャッシングは、デフォルトで実行時に発生します。エンドポイントWSDL URLがorauddiプロトコルを使用して解決された場合、後続の呼出しはWSDL URLをOSRからではなくキャッシュから取得します。照会時にキャッシュのエンドポイントWSDL URLを使用できる時間を増やすには、「UddiCacheLifetime」プロパティを持つサービス・キーを使用します。このプロパティに指定した時間間隔でキャッシュが無効化されます。デフォルト値は86400
秒です。最小値は300
秒です。
WSDL URLのエンドポイントのキャッシュを構成するには:
- 「SOAインフラストラクチャ」メニューから、「管理」→「システムMBeanブラウザ」の順に選択します。
- 「アプリケーション定義のMBean」→「oracle.as.soainfra.config」→「サーバー: soa_server1」→「SoaInfraConfig」→「soa-infra」→「属性」の順に選択します。
- ページの右側にある「UddiCacheLifetime」プロパティをクリックします。
- 値を入力します。
- 「適用」をクリックします。
Oracle Service Registryの公開および参照
Oracle Service Registry (OSR)では、Webサービスを公開したり、Webサービスの情報を検出するための共通の標準が提供されます。この項では、個別にインストールしたOracle SOA Suite環境に対してOSRを構成する方法について説明します。
Oracle SOA Suiteでは、次のバージョンのOSRを使用できます。
-
OSR 11g
-
OSR 10.3 (Oracle WebLogic Server 10.3で使用)
-
OSR 10.1.3
OSRの詳細は、次のURLを参照してください。
http://www.oracle.com/technetwork/middleware/registry/overview/index.html
ノート:
-
この項では、Oracle JDeveloperに組み込まれたOracle WebLogic Serverに対してOSRを構成する方法については説明しません。
-
OSR 10.3は、バージョン10.3.0.0のOracle WebLogic Serverにデプロイされます。
-
OSR 10.3は、バージョン10.3.1.0のOracle WebLogic Serverをサポートしていません。
ビジネス・サービスの公開
この項では、ビジネス・サービスの公開方法の概要を説明します。手順の詳細は、次のURLにあるドキュメントを参照してください。
http://www.oracle.com/technetwork/middleware/registry/overview/index.html
「レジストリ・ドキュメント」リンクをクリックしてドキュメントにアクセスすることもできます。
ビジネス・サービスを公開するには:
レジストリへの接続の作成
レジストリへの接続を作成するには:
ノート:
Oracle JDeveloperの「リソース」ウィンドウの「IDE接続」→「アプリケーション・サーバー」でSOAコンポジット・アプリケーションのWebサービスを右クリックすると、「UDDIにWSDLを公開」オプションは無効になります。
レジストリからサービスを起動するためのSOAプロジェクトの構成
SOAプロジェクトを構成してレジストリからサービスを起動するには:
SOAPエンドポイントの場所の動的解決
SOAPエンドポイントの場所を動的に解決するには:
-
「Webサービスの作成」ダイアログの残りのフィールドを完成し、「OK」をクリックします。
「Webサービスの作成」ダイアログは次のようになります。
-
適切なサービス・コンポーネントを使用して参照に接続します。
-
SOAコンポジット・エディタで「ソース」をクリックします。
composite.xml
ファイルにserviceKey
が表示されます。このプロパティによって、実行時にエンドポイント・バインディングの場所が動的に解決されます。<property name="oracle.soa.uddi.servicekey" type="xs:string" many="false">uddi: d3611b59-1c79-478e-9ae5-874007eb20c4">
-
必要な場合は、「プロパティ・インスペクタ」で
oracle.soa.uddi.servicekey
プロパティを明示的に追加して、SOAPエンドポイントの場所を解決することもできます。この操作によって、Webサービスの外部参照について、実行時にSOAPエンドポイントの場所が動的に解決されます。-
「外部参照」スイムレーンの参照バインディング・コンポーネントをハイライト表示します。
-
「プロパティ・インスペクタ」で「プロパティ」セクションを開きます。
-
「追加」アイコンをクリックします。
-
「名前」リストに、oracle.soa.uddi.servicekeyと入力します。
-
「値」フィールドに、
composite.xml
ファイルのoracle.soa.uddi.servicekeyの値を指定します。
-
エンドポイントの解決
Oracle SOA Suiteは、エンドポイントを解決するためにサービスを呼び出します。例と説明は、表33-1を参照してください。
表33-1 エンドポイントの解決
エンドポイントの解決 | 説明 | 例 |
---|---|---|
正規化されたメッセージUDDI |
OSR UDDI |
たとえば、Oracle Mediatorでは次のようになります。 <copy target="$out.property.oracle.soa.uddi.serviceKey" value="uddi:10a55fa0-99e8-11df-9edf-7d5e3ef09eda"/> |
正規化されたメッセージ |
正規化されたメッセージ |
たとえば、Oracle Mediatorでは次のようになります。 <copy target="$out.property.endpointURI"
value="http://hostname:8001/soa-infra/services
/partition/Project/endpoint_ep"/> |
|
OSR UDDI ノート: これは、Oracle Enterprise Manager Fusion Middleware Controlで上書きできます。 |
<binding.ws port="http://xmlns.oracle.com/UDDIPublishApplication /Proj/BPELProcess1#wsdl.endpoint(bpelprocess1_client _ep/BPELProcess1_pt)" . . .> <property name="oracle.soa.uddi.serviceKey" type="xs:string" many="false">uddi:31040650-9ce7-11df-9ee1-7d5e3e f09eda</property> </binding.ws> |
|
ノート: これは、Oracle Enterprise Manager Fusion Middleware Controlで上書きできます。 |
<binding.ws
port="http://xmlns.oracle.com/UDDIPublishApplica
tion/Project/BPELProcess1#wsdl.endpoint(bpelproc
ess1_client_ep/BPELProcess1_pt)"
. . . >
<property name="oracle.soa.uddi.endpointURI"
value="http://hostname:8001/soa-infra/services/
Partition/Project/bpelprocess1_client_ep"</property>
</binding.ws> |
|
エンドポイントの場所は、 |
<binding.ws
port="http://xmlns.oracle.com/UDDIPublishApplication
/Project/BPELProcess1#wsdl.endpoint(bpelprocess1_
client_ep/BPELProcess1_pt)"
location="http://hostname:8001/soa-infra/services
/Partition/Project/bpelprocess1_client_ep?wsdl"
soapVersion="1.1"> |
エンドポイントを解決するときのフェイルオーバー・シナリオは次のとおりです。
-
正規化されたメッセージUDDI
serviceKey
-
エンドポイント・アクセスでエラー
-
サーバー・エラーをログに記録する
-
ユーザーにエラーを返す
-
-
-
正規化されたメッセージ
endpointURI
-
エンドポイント・アクセスでエラー
-
サーバー・エラーをログに記録する
-
ユーザーにエラーを返す
-
-
-
composite.xml
UDDIserviceKey
-
OSR接続でエラー
-
サーバー・エラーをログに記録する
-
コーディングされている場合は、
composite.xml
endpointURI
を使用する -
それ以外の場合、ユーザーにエラーを返す
-
-
接続で無効な
serviceKey
のエラー-
サーバー・エラーをログに記録する
-
コーディングされている場合は、
composite.xml
endpointURI
を使用する -
それ以外の場合、ユーザーにエラーを返す
-
-
エンドポイント・アクセスでエラー
-
警告エラーをログに記録する
-
存在する場合は、2つ目(または3つ目)のバインディング・テンプレートを使用する
-
それ以外の場合は、
composite.xml
endpointURI
にフェイルオーバーする
-
-
-
composite.xml
endpointURI
-
エンドポイント・アクセスでエラー
-
警告エラーをログに記録する
-
composite.xml
具体WSDLのエンドポイントの場所にフェイルオーバーする
-
-
-
composite.xml
具体WSDLのエンドポイントの場所-
エンドポイント・アクセスでエラー
-
サーバー・エラーをログに記録する
-
ユーザーにエラーを返す
-
-
ランタイムの照会URL、UDDIサービス・キーおよびエンドポイント・アドレスの構成
照会URL、UDDIサービス・キーおよびエンドポイント・アドレスは、実行時にOracle Enterprise Manager Fusion Middleware Controlで設定できます。
ランタイムの照会URL、UDDIサービス・キーおよびエンドポイント参照を構成する手順は、次のとおりです。
レジストリ・コントロールにおけるエンドポイントの場所の変更
レジストリ・コントロールには、エンドポイントの場所を変更するオプションがあります。これは2ステップのプロセスです。次のステップで概要を示します。詳細は、Oracle Service Registryのドキュメントを参照してください。
http://www.oracle.com/technetwork/middleware/registry/overview/index.html
WSDLバインディングを更新するには:
WSDLバインディングのサマリー・ドキュメントを更新するには:
-
レジストリ・コントロールで、「検索」をクリックします。
-
「tModel名」フィールドに名前を入力し、「tModelの検索」をクリックします。
-
「名前」列で、「wsdl:type representing portType」という説明の付いた名前をクリックします。
-
WSDLの詳細が正しく表示されていることを確認します。
-
「編集」ボタンをクリックします。
-
右側で「サマリー・ドキュメント」タブをクリックします。
-
「説明の追加」ボタンの下で、「編集」アイコンをクリックします。
-
新しいURLをクリックします。
-
「更新」をクリックし、変更内容を保存します。
-
検証を行うには、サービスにナビゲートし、WSDLのURLが新しい場所を指していることを確認します。
複数のSOAパーティションからのWSDLの発行
次のステップに従って、レジストリ・コントロールを使用して複数のSOAパーティションからWSDLを発行し、個別のserviceKey
とバインディングを使用してそれらにアクセスします。
複数のSOAパーティションからWSDLを発行するには:
-
レジストリ・コントロールにログインします。
http://host:port/registry/uddi/web
-
最初のパーティションからWSDLを発行します。
-
2番目のパーティションからWSDLを発行します。
-
「パブリッシュ」→「WSDL」をクリックします。
-
「ビジネス・キー」フィールドと「WSDLの場所(URI)」フィールドに値を入力します。
-
「拡張モード」チェック・ボックスを選択します。
-
「公開」をクリックします。
-
左ペインのナビゲーション・ツリーで、エンドポイント、バインディング、ポート・タイプを選択し、「"新規"モード」オプションが選択されていることを確認します。
-
「公開」をクリックします。
-