Oracle® Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suiteの管理 12c (12.1.3) E54311-05 |
|
前へ |
次へ |
この章の内容は次のとおりです。
注意:
Oracle SOA Suiteでは、サービス・バインディング・コンポーネントまたは参照バインディング・コンポーネントに対する複数のバインディング(例: composite.xml
ファイルにSOAP 1.1とSOAP 1.2の両方を指定する)はサポートされていません。サポートの対象は、サービスまたは参照ごとに1つのWebサービス・バインディングのみです。複数のバインディングを指定する場合は、1つを除いてすべてのバインディングを削除し、SOAコンポジット・アプリケーションを再デプロイします。
詳細は、次のドキュメントを参照してください。
バインディング・コンポーネントの概念の詳細は、「バインディング・コンポーネントの概要」を参照してください
『Oracle SOA Suiteを使用したSOAアプリケーションの開発』
現在デプロイされているSOAコンポジット・アプリケーションに組み込まれているバインディング・コンポーネント(WebサービスやJCAアダプタなど)に対して、セキュリティ・ポリシーをアタッチおよびデタッチできます。ポリシーはメッセージの配信にセキュリティを適用します。Oracle Fusion Middlewareでは、ポリシー・ベースのモデルを使用してWebサービスを管理します。
注意:
ポリシーをアタッチする前に、使用可能なポリシーの定義およびユーザー環境で使用するポリシーの詳細は、Oracle Web Services ManagerによるWebサービスの保護およびポリシーの管理に関する項を参照してください。
バインディング・コンポーネント・ポリシーを管理する手順は、次のとおりです。
次のいずれかのオプションを使用して、このページにアクセスします。
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サービスの保護とポリシーの管理』を参照してください。
サービス・バインディング・コンポーネントを登録済のUDDIソースからUDDIレジストリに公開できます。
注意:
参照バインディング・コンポーネントは、UDDIレジストリには公開できません。
UDDIレジストリに公開できるのはWebサービスのみです。たとえば、JCAアダプタは公開できません。
UDDIレジストリへのWebサービスの公開の詳細は、Webサービスの管理を参照してください。
注意:
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サービスを公開するには、次の手順を実行します。
次のいずれかのオプションを使用して、このページにアクセスします。
SOAインフラストラクチャのメニューから... | ナビゲータの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」をクリックします。
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で指定されている位置を使用します。
図32-1は両方のフィールドを示しています。
OSRと統合されている場合にエンドポイント参照およびサービス・キーを変更する手順は次のとおりです。
「UDDI ServiceKey」フィールドで、実行時に使用するサービス・キーを変更します。
「エンドポイント・アドレス」フィールドに、実行時に使用するエンドポイント・アドレスを入力します。
両方のフィールドを編集できます。設計時に「UDDIデプロイメント・オプション」ダイアログで選択した内容に基づいて、片方のフィールドの値が選択および使用されます。これらのフィールドへの変更は、実行時にはcomposite.xml
ファイルで維持されます。
ビジネス・サービスの公開、UDDIレジストリへの接続の作成、レジストリからサービスを起動するためのSOAプロジェクトの構成などの設計時のタスクの詳細は、『Oracle SOAスイートでのSOAアプリケーションの開発』を参照してください。
実行時に照会URLを設定する方法の詳細は、「SOAインフラストラクチャ・プロパティの構成」を参照してください。
エンドポイントWSDL URLのキャッシングは、デフォルトで実行時に発生します。エンドポイントWSDL URLがorauddiプロトコルを使用して解決された場合、後続の呼出しはWSDL URLをOSRからではなくキャッシュから取得します。照会時にキャッシュのエンドポイントWSDL URLを使用できる時間を増やすには、「UddiCacheLifetime」プロパティを持つサービス・キーを使用します。このプロパティに指定した時間間隔でキャッシュが無効化されます。デフォルト値は86400
秒です。最小値は300
秒です。
WSDL URLのエンドポイントのキャッシュを構成する手順は、次のとおりです。
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プロジェクトを構成してレジストリからサービスを起動する手順は、次のとおりです。
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は、エンドポイントを解決するためにサービスを呼び出します。例と説明は、表32-1を参照してください。
表32-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
UDDI serviceKey
OSR接続でエラー
サーバー・エラーをログに記録する
コーディングされている場合は、composite.xml
endpointURI
を使用する
それ以外の場合、ユーザーにエラーを返す
接続で無効なserviceKey
のエラー
サーバー・エラーをログに記録する
コーディングされている場合は、composite.xml
endpointURI
を使用する
それ以外の場合、ユーザーにエラーを返す
エンドポイント・アクセスでエラー
警告エラーをログに記録する
存在する場合は、2つ目(または3つ目)のバインディング・テンプレートを使用する
それ以外の場合は、composite.xml
endpointURI
にフェイルオーバーする
composite.xml
endpointURI
エンドポイント・アクセスでエラー
警告エラーをログに記録する
composite.xml
具体WSDLのエンドポイントの場所にフェイルオーバーする
composite.xml
具体WSDLのエンドポイントの場所
エンドポイント・アクセスでエラー
サーバー・エラーをログに記録する
ユーザーにエラーを返す
照会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バインディングを更新する手順は、次のとおりです。
レジストリ・コントロールで、「検索」をクリックします。
「tModel名」フィールドに名前を入力し、「tModelの検索」をクリックします。
「名前」列で、「wsdl:type representing portType」という説明の付いた名前をクリックします。
WSDLの詳細が正しく表示されていることを確認します。
「編集」ボタンをクリックします。
右側で「サマリー・ドキュメント」タブをクリックします。
「説明の追加」ボタンの下で、「編集」アイコンをクリックします。
新しいURLをクリックします。
「更新」をクリックし、変更内容を保存します。
検証を行うには、サービスにナビゲートし、WSDLのURLが新しい場所を指していることを確認します。
次の手順に従って、レジストリ・コントロールを使用して複数のSOAパーティションからWSDLを発行し、個別のserviceKey
とバインディングを使用してそれらにアクセスします。
複数のSOAパーティションからWSDLを発行する手順は、次のとおりです。
レジストリ・コントロールにログインします。
http://host:port/registry/uddi/web
最初のパーティションからWSDLを発行します。
2番目のパーティションからWSDLを発行します。
「パブリッシュ」→「WSDL」をクリックします。
「ビジネス・キー」フィールドと「WSDLの場所(URI)」フィールドに値を入力します。
「拡張モード」チェック・ボックスを選択します。
「パブリッシュ」をクリックします。
左ペインのナビゲーション・ツリーで、エンドポイント、バインディング、ポート・タイプを選択し、「"新規"モード」オプションが選択されていることを確認します。
「パブリッシュ」をクリックします。
Oracle Enterprise Manager Fusion Middleware ControlからWSDLサービスを発行する際には、次の制限があります。
異なるSOAパーティションから、または異なるホストから同じターゲット・ネームスペースで同じサービスを発行することはできません。
独自のサービス・キーを入力するオプションはありません。
かわりに、レジストリ・コンソールを使用して、異なるパーティションにデプロイされている同じWSDLサービスをOSRに発行します。
複数のパーティションのUDDIにWSDLを発行する手順は、次のとおりです。