この章では、SOAPおよびREST Webサービス用のADFデータ・コントロールを作成して、ユーザー・インタフェース内でこれらのサービスをより高度に活用できるようにする方法を説明します。
この章の内容は次のとおりです。
企業はWebサービスを使用して、元のアプリケーションのプラットフォームや言語に関係なくビジネス機能を公開できます。これは、ビジネス機能を、他のアプリケーションでも認識され、使用可能な標準XMLコンストラクトで構成されるメッセージに抽象化して公開するからです。
Webサービスは統合と再利用が簡単なモジュール化ビジネス・サービスで、SOA内のコンポーネントとして理想的です。JDeveloperでは、トップダウンWebサービス(WSDLから作成されるサービス)、ボトムアップWebサービス(JavaクラスやデータベースのPL/SQLストアド・プロシージャなどの基礎となる実装から作成されるサービス)、および既存の機能から作成されるサービス(アプリケーション・モジュールをサービスとして公開したものなど)を作成できます。
WebサービスはWebアプリケーションで使用できますが、その一般的な理由は次のとおりです。
アプリケーションとともに開発するには時間がかかる機能を、Webサービスとして即座に提供できます。
異なるアーキテクチャで動作するアプリケーションにアクセスできます。
別チームのアプリケーションを個別にインストール、アップグレード、および管理する必要がある場合、特にデータがローカルでレプリケートされていない場合(つまり他の方法を使用してアプリケーションにアクセスできない場合)に、そのチームが所有しているアプリケーションにアクセスできます。
Webサービス・データ・コントロールを使用する前に、他のOracle ADF機能を理解しておくと役立つ場合があります。また、JDeveloperにおけるWebサービス開発のサポートを理解しておくと役立つことがあります。次に、関連する他の機能へのリンクを示します。
「データ・コントロール」パネルから項目をドラッグし、それを特定のUIコンポーネントとしてページ上にドロップすることで、データバインドされたユーザー・インタフェースを設計できます。データ・コントロールの使用の一般情報については、第2章「ADFデータ・コントロールの使用」を参照してください。
ファイアウォールで保護されている環境で、ファイアウォール外にあるWebサービスを使用する場合は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』の「ブラウザ・プロキシ情報の設定」の説明に従って、JDeveloperでWebブラウザとプロキシの設定を構成する必要があります。
データ・コントロールを通して後で公開するWebサービスを開発している場合、JDeveloperの機能を使用してプロセスを簡素化できます。詳細は、『Oracle Jdeveloperによるアプリケーションの開発』における「Webサービスの開発および管理」を参照してください。
次の各章では、データ・コントロールで使用できる特定のオブジェクトに関する情報を提供しています。
データ・コントロール上のコレクションを使用してフォームを作成する方法については、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』の基本的なデータバインドされたページの作成に関する項を参照してください。
コレクションを使用して表を作成する方法については、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』のデータバインドされたADF表の作成に関する項を参照してください。
マスター/ディテール関係を使用してUIコンポーネントを作成する方法については、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』のマスター/ディテール・データの表示に関する項を参照してください。
リストの作成については、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』のデータバインドされた選択リストとシャトルの作成に関する項を参照してください。
グラフ、チャート、およびその他の視覚化UIコンポーネントの作成については、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』のデータバインドされたグラフおよびゲージ・コンポーネントの作成に関する項を参照してください。
Oracle ADFを使用して開発されたアプリケーションでWebサービスを使用する場合、外部Webサービスのデータ・コントロールを作成するのが最も一般的な方法です。これは、アプリケーションとともに開発するには時間がかかる機能を、Webサービスとして即座に提供でき、異なるアーキテクチャで動作するアプリケーションにアクセスできるからです。
また、Oracle ADFで作成されたコンポーネントを再利用して、他のアプリケーションからアクセス可能なWebサービスとして提供することもできます。
JDeveloperでは、サービスにWSDLのみを使用して既存のWebサービスのデータ・コントロールを作成できます。ローカル・ファイル・システムまたはUDDIレジストリでWSDLを検索するか、WSDL URLを直接入力します。
注意: ファイアウォールで保護されている環境で、ファイアウォール外にあるWebサービスを使用する場合は、JDeveloperでWebブラウザとプロキシの設定を構成する必要があります。詳細は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』のブラウザ・プロキシ情報の設定に関する項を参照してください。 |
始める前に:
ADFアプリケーションでのWebサービス・データ・コントロールの使用方法に関する知識があると、役立つ場合があります。詳細は、5.2項「Webサービス・データ・コントロールの作成」を参照してください。
また、他のWebサービス機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、5.1.2項「ADFアプリケーションのWebサービス・データ・コントロールの追加機能」を参照してください。
次のタスクを完了する必要があります。
SOAPベースのWebサービス用のデータ・コントロールを作成する手順は次のとおりです。
「アプリケーション」ウィンドウで、Webサービス・データ・コントロールを作成する先のプロジェクトを右クリックして、「新規」→「ギャラリから」を選択します。
「新規ギャラリ」で、「ビジネス層」を展開して「Webサービス」を選択し、「Webサービス・データ・コントロール(SOAP/REST)」を選択して「OK」をクリックします。
「Webサービス・データ・コントロールの作成」ウィザードの「データ・ソース」ページで、データ・コントロールの名前を入力し、「SOAP」ラジオ・ボタンを選択して、WSDL URLを入力し、データ・コントロールによってアクセスする特定のWebサービスを指定します。
「データ・コントロール操作」ページで、データ・コントロールによってサポートする操作を「選択済」に移動します。
オプションで、「HTTPヘッダー・パラメータを含める」チェック・ボックスを選択します。詳細は、5.2.3項「Webサービス・データ・コントロール用のヘッダー・パラメータの含み方」
「レスポンス・フォーマット」ページで、SOAPレスポンスのフォーマットを指定します。
「エンドポイント認証」ページで、エンドポイントURLの認証詳細を指定し、「終了」をクリックします。
JDeveloperにより、Webサービスへの接続と、呼び出すメソッドのスキーマを使用して、REST Webサービス用のデータ・コントロールを作成できます。
始める前に:
ADFアプリケーションでのWebサービス・データ・コントロールの使用方法に関する知識があると、役立つ場合があります。詳細は、5.1項「ADFアプリケーションのWebサービス・データ・コントロールについて」を参照してください。
また、他のWebサービス機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、5.1.2項「ADFアプリケーションのWebサービス・データ・コントロールの追加機能」を参照してください。
次のタスクを完了する必要があります。
アプリケーション・ワークスペースを作成し、プロジェクトをそのワークスペース内で作成します。プロジェクトの編成方法に応じて、既存のアプリケーション・ワークスペースとプロジェクトを使用することも、新規に作成することもできます。アプリケーション・ワークスペースの追加については、『Oracle JDeveloperによるアプリケーションの開発』のアプリケーションとプロジェクトの作成に関する項を参照してください。
レスポンス・フォーマットまたはペイロード・フォーマットを記述する際に含める必要があるローカルXSDファイルがある場合、5.2.9項「XMLスキーマをRESTデータ・コントロールで利用できるようにする方法に関する必知事項」の説明に従って、これらをプロジェクトのリソース・パスにコピーします。
RESTful Webサービス用のデータ・コントロールを作成する手順は次のとおりです。
「アプリケーション」ウィンドウで、Webサービス・データ・コントロールを作成する先のプロジェクトを右クリックして、「新規」→「ギャラリから」を選択します。
「新規ギャラリ」で、「ビジネス層」を展開して「Webサービス」を選択し、「Webサービス・データ・コントロール(SOAP/REST)」を選択して「OK」をクリックします。
「Webサービス・データ・コントロールの作成」ウィザードの「データソース」ページで、データ・コントロールの名前を指定して「REST」ラジオ・ボタンを選択します。
「接続」フィールドで、使用するURL接続を選択します。
URL接続を確立していない場合は、「新規URL接続の作成」アイコンをクリックして「URL接続の作成」ダイアログを開きます。そのダイアログで、接続の名前とベースURLを入力します。URLにはリソースまたはパラメータを含めないでください。
注意: 「URL接続の作成」ダイアログで、「接続のテスト」をクリックして、URLに接続できることを確認できます。ただし、URLのサーバーがベースURLに対するリクエストを受け入れないように構成されている場合、テストは失敗します。失敗しても関係なく、「OK」をクリックして接続を作成できます。 このようなベースURLを使用していて、サービスに接続できることを確認する必要がある場合は、URLに一時的にリソースを追加して、接続をテストしてから、「OK」をクリックする前にリソースを削除できます。 |
「リソース」ページで、リソースごとに次のサブステップを実行して、接続のリソースを指定します。
「追加」ボタンをクリックしてリソース・パスを追加します。
リソース・パスの名前をインラインで入力します。
リソース・パスの一部として、パス・パラメータを入力することもできます。
パス・パラメータは、##
paramName
##
の形式で入力します。たとえば、アクセス対象のWebサービスが株式相場を提供している場合に、株の1つを表すリソースの完全なURLがhttp://www.example.com/quotes/ACOMPANY
で、パス・パラメータ名がticker
の場合は、リソース・パスとして/quotes/##ticker##
のように入力します。
注意: パラメータを使用して、ソース・パスに動的入力を提供することもできます(たとえば、 |
問合せパラメータを指定してリソースを作成する場合は(つまり、?
ParamName
=
ParamValue
の形式をとるパラメータ)、ウィザードの次のページでこれらのパラメータを指定できます。
ダイアログの右側で、チェック・ボックスの1つを選択してリソース・パスのRESTメソッドを指定し、そのメソッドを「データ・コントロール」パネルで識別するために使用できる名前を入力します。
データ・コントロールに組み込むリソースごとに、ステップ5を繰り返します。
図5-1は、2つのリソースが入力されたウィザードの「リソース」ページを示しており、2つ目のリソースにパス・パラメータが含まれています。図に示したように、2つ目のリソースが選択され、そのリソースに対してGETメソッドが指定されています。
「メソッドの詳細」ページで、メソッドを選択して、そのメソッドのレスポンス・フォーマットを提供するXSDを指定します。
提供するXSDファイルがローカルである場合、5.2.9項「XMLスキーマをRESTデータ・コントロールで利用できるようにする方法に関する必知事項」の説明に従って、最初にこれらをプロジェクトのリソース・パスに配置する必要があります。
応答フォーマットのスキーマがない場合は、ドキュメントに基づいてリソースのXMLを再作成し、そのXMLファイルからXSDを作成することによって、ユーザーが独自にスキーマを作成できます。JDeveloperでは、「ファイル」→「新規」→「ギャラリから」→「XML」→「XMLドキュメントからのXMLスキーマ」を選択することによって、XMLドキュメントからXSDファイルを生成できます。
ヒント: XSLスタイル・シートを使用して、レスポンスXMLに基づいてデータ・コントロールに含めるカスタム要素を定義することもできます。このアプローチを使用する場合、「レスポンスXSD」フィールドで指定するスキーマは、「レスポンスXSL」フィールドで指定するスタイル・シートに基づいている必要があります。詳細は、5.2.7項「REST Webサービス・データ・コントロールへのカスタム属性の追加方法」を参照してください。 |
メソッドがPUT
またはPOST
メソッドの場合は、「ペイロードXSD」フィールドでリクエスト・ペイロードのスキーマを指定します。
選択したメソッドに対して、URLパラメータとデフォルト値を指定します。
リソース・パスに含まれていたパラメータの場合は、パラメータ名が「URLパラメータ」リストに含まれています。これらのパラメータに対しては、デフォルト値を入力する必要があります。
たとえば、ステップ5に示したサンプル・パラメータでは、ticker
がパラメータ名、ACOMPANY
がデフォルト値です。
GETメソッドのパス・パラメータについては、ステップ7でメソッドのレスポンスXSDを指定してある場合、デフォルト値を指定する必要はありません。
オプションで、「HTTPヘッダー・パラメータを含める」チェック・ボックスを選択します。詳細は、5.2.3項「Webサービス・データ・コントロール用のヘッダー・パラメータの含み方」
図5-2に示す「メソッドの詳細」ページでは、getDetails
メソッドが選択され、応答XSDが指定され、そのdeptId
パラメータにデフォルト値が設定されています。
「終了」ページで、生成するデータ・コントロールの詳細を確認して、「終了」をクリックします。
Webサービス・データ・コントロールを使用する場合、HTTPリクエストの起動時にHTTPヘッダーにカスタム・パラメータを追加する場合があります。このようなパラメータは、セキュリティや通知など、様々な目的で役立ちます。たとえば、リクエストを呼び出すときにエンタープライズIDをHTTPヘッダーに追加できます。リクエスト内のエンタープライズIDによって、Webサービス・データ・コントロールは、リクエストの転送先クラウド・サービスを指定できます。
ヘッダー・パラメータを使用するようにWebサービス・データ・コントロールを構成するには、「Webサービス・データ・コントロールの作成」ウィザードで、「HTTPヘッダー・パラメータを含める」を選択します。SOAPベースのWebサービス・データ・コントロールの場合、これは「データ・コントロール操作」ページにあります。RESTベースのWebサービス・データ・コントロールの場合は、「メソッドの詳細」ページにあります。
データ・コントロールの作成後、「データ・コントロール」パネル内のWebサービス・データ・コントロールのメソッドの「パラメータ」ノードの下に、HttpHeaderが表示されます。また、Webサービス・データ・コントロールのAdapterDataControl
要素(.dcx
ファイル内)に、<httpHeaders paramName="HttpHeader"/>
要素が含まれています。
HttpHeader
パラメータを使用するには、Webサービス・データ・コントロール用のユーザー・インタフェース・プロジェクトでバッキングBeanを作成する必要があります。HttpHeader
パラメータの値はバッキングBean経由で提供されます。バッキングBeanはMap
の型のプロパティを持ち、HTTPヘッダーの名前/値のペアをそのプロパティに追加する必要があります。さらに、Map
の型は<String, List<String>>
または<String,String>
でなければならず、例5-1のように、getterおよびsetterメソッドを使用してプロパティを公開する必要があります。
例5-1 バッキングBeanによるWebサービス・データ・コントロールでのHttpヘッダー・パラメータのサポート
public class BackingBean { private Map<String,Object> httpHeadersMap = new HashMap<String,Object>(); public BackingBean() { List<String> headersList = new ArrayList<String>(); headersList.add("Oracle"); httpHeadersMap.put("enterpriseID",headersList); } public void setHttpHeadersMap(Map<String,Object> httpHeadersMap) { this.httpHeadersMap = httpHeadersMap; } public Map<String,Object> getHttpHeadersMap() { return httpHeadersMap; } }
「データ・コントロール」パネルからページに操作を「ADFパラメータ・フォーム」としてドラッグ・アンド・ドロップする際、フィールド・リストからHttpHeaderを削除します。次に、「アクション・バインディングの編集」ダイアログの「パラメータ」セクションで、バッキングBeanのMap
プロパティを指す式を提供することで、HttpHeaderパラメータの値を指定します。
Webサービス・データ・コントロールを開発すると、エンドポイントを変更できます。これは、アプリケーションをテスト環境から本番環境に移行する場合などに便利です。
始める前に:
ADFアプリケーションでのWebサービス・データ・コントロールの使用方法に関する知識があると、役立つ場合があります。詳細は、5.2項「Webサービス・データ・コントロールの作成」を参照してください。
また、他のWebサービス機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、5.1.2項「ADFアプリケーションのWebサービス・データ・コントロールの追加機能」を参照してください。
Webサービス・データ・コントロールのエンドポイントを変更する手順:
「アプリケーション」ウィンドウで、Webサービス・データ・コントロールのDataControls.dcx
ファイルを選択します。
「構造」ウィンドウで、Webサービス・データ・コントロールを右クリックして「Webサービス接続の編集」を選択します。
「Webサービス接続の編集」ダイアログで、必要に応じてエンドポイントのURLとポート名を変更します。
「OK」をクリックします。
SOAPベースのWebサービス・データ・コントロールの更新後、Webサービス操作のメソッド・シグネチャ、戻り型、または構造が変更されています。この場合、作成しなおさなくても、データ・コントロールを更新できます。
始める前に:
ADFアプリケーションでのWebサービス・データ・コントロールの使用方法に関する知識があると、役立つ場合があります。詳細は、5.2項「Webサービス・データ・コントロールの作成」を参照してください。
また、他のWebサービス機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、5.1.2項「ADFアプリケーションのWebサービス・データ・コントロールの追加機能」を参照してください。
SOAPベースのWebサービス・データ・コントロールの操作をリフレッシュする手順は次のとおりです。
「アプリケーション」ウィンドウで、Webサービス・データ・コントロールのDataControls.dcx
ファイルを選択します。
「構造」ウィンドウで、該当するWebサービス操作を右クリックし、「更新」を選択します。
JDeveloperはWebサービスを問い合せ、Webサービス・データ・コントロールを更新して、選択した操作の最新の状態を反映します。
SOAPベースのWebサービスにデータ・コントロールを作成すると、そのデータ・コントロールは公開された任意のコレクションに対する主キー操作をサポートします。
Webサービス定義で参照されるスキーマで、要素または属性がxsd:ID
型として定義されている場合、その属性はデータ・コントロールによってキー属性として公開され、コレクションでsetCurrentRowWithKey
およびsetCurrentRowWithKeyValue
データ・コントロール操作の使用が可能になります。
たとえば、<xsd:attribute>
要素を次のように使用することにより、スキーマでdeptno
属性を主キーとして設定できます。
<xsd:attribute name="deptno" type="xsd:ID" use="required"/>
また、<xsd:element>
要素を次のように使用しても、スキーマでdeptno
属性を主キーとして設定できます。
xsd:element name="deptno" type="xsd:ID"/>
注意: WebサービスをJavaクラスから作成し、キーを表すフィールドまたはgetterメソッドに、JAXB |
前述のいずれかの方法でコレクションにID
を定義していない場合は、データ・コントロールにより、索引に基づく主キーとなる非表示の属性がコレクションに作成されます。その後、setCurrentRowWithKey
またはsetCurrentRowWithKeyValue
データ・コントロール操作を使用して、行の索引を渡すことができます。
注意: コレクションの |
RESTful Webサービスに基づいてデータ・コントロールを作成する前に、XSLスタイル・シートを作成して、データ・コントロールに組み込むRESTサービスのコンテンツをカスタムXMLフォーマットに変換することができます。たとえば、サービスによって返された他の要素から計算される要素を作成し、これらの要素を、UIコンポーネントを作成する際のベースにすることができる属性として、データ・コントロールで公開することが可能です。
例5-2は、レスポンスXMLから直接導出されるNAME
およびDEPTID
要素を定義するスタイル・シートを示しています。また、このスタイル・シートはCUSTOMNAME
およびUNIQUEID
要素を定義し、この値はNAME
およびDEPTID
要素から計算されます。このスタイル・シートに基づいて作成されたデータ・コントロールは、これらの4つの要素すべてを属性として公開します。
例5-2 RESTレスポンスのフォーマットをカスタマイズするためのXSLスタイル・シート
<?xml version="1.0" encoding="windows-1252" ?> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="DEPARTMENTS"> <DEPARTMENTS> <xsl:for-each select="DEPT"> <DEPT> <NAME><xsl:value-of select="NAME"/></NAME> <DEPTID><xsl:value-of select="DEPTID"/></DEPTID> <CUSTOMNAME><xsl:value-of select="concat('CUST_',NAME)"/></CUSTOMNAME> <UNIQUEID><xsl:value-of select="DEPTID * 2"/></UNIQUEID> </DEPT> </xsl:for-each> </DEPARTMENTS> </xsl:template> </xsl:stylesheet>
スタイル・シートを作成したら、カスタム要素を組み込むXMLスキーマを作成する必要があります。このプロセスを簡素化する方法の1つは、カスタム要素を含むXMLファイルをレスポンス・フォーマットに基づいて作成し、次にそのXMLファイルに基づいてJDeveloperのXMLツールを使用してスキーマを生成することです。
例5-3は、例5-2に示すスタイル・シートで定義されているベース要素とカスタム要素の両方を含むXMLファイルを示しています。
例5-3 カスタム要素によって変更されたXMLレスポンス
<?xml version="1.0" encoding="UTF-8"?> <DEPARTMENTS> <DEPT> <NAME>Marketing</NAME> <DEPTID>20</DEPTID> <CUSTOMNAME>CUST_Marketing</CUSTOMNAME> <UNIQUEID>40</UNIQUEID> </DEPT> <DEPT> <NAME>Marketing</NAME> <DEPTID>20</DEPTID> <CUSTOMNAME>CUST_Marketing</CUSTOMNAME> <UNIQUEID>40</UNIQUEID> </DEPT> </DEPARTMENTS>
例5-4は、変更済のXMLレスポンスに基づいたスキーマを示しています。
例5-4 カスタム要素を含むXMLスキーマ・ファイル
<?xml version="1.0" encoding="windows-1252" ?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.example.org" targetNamespace="http://www.example.org" elementFormDefault="qualified"> <xsd:element name="DEPARTMENTS"> <xsd:complexType> <xsd:sequence> <xsd:element name="DEPT" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:element name="NAME" type="xsd:string"/> <xsd:element name="DEPTID" type="xsd:integer"/> <xsd:element name="CUSTOMNAME" type="xsd:string"/> <xsd:element name="UNIQUEID" type="xsd:integer"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema>
始める前に:
ADFアプリケーションでのWebサービス・データ・コントロールの使用方法に関する知識があると、役立つ場合があります。詳細は、5.2項「Webサービス・データ・コントロールの作成」を参照してください。
また、他のWebサービス機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、5.1.2項「ADFアプリケーションのWebサービス・データ・コントロールの追加機能」を参照してください。
RESTデータ・コントロールにカスタム属性を追加する手順は次のとおりです。
Webサービスから返されたデータの構造に基づいてXSLスタイル・シートを作成し、組み込むカスタム要素を含めます。
メソッドのレスポンスXMLに対するフォーマットに基づいて、カスタム要素も含むXMLドキュメントを作成します。
注意: 1つのリソースが特定のタイプの複数のリソースをネストできる場合、これらのネストされたリソースの2つ以上がXMLファイルに含まれていることを確認してください。これにより、次のステップで生成されるスキーマに1対多カーディナリティが反映されます。 |
前のステップで作成されたXMLドキュメントに基づいてXMLスキーマを作成します。
JDeveloperでこれを実行するには、「新規ギャラリ」を開いて、「一般」→「XML」→「XMLドキュメントからのXMLスキーマ」を順に選択します。
5.2.2項「RESTful Webサービス用のデータ・コントロールを作成する方法」の説明に従って、データ・コントロールを作成します。
手順のステップ7で、レスポンスXSL (作成済のXSLスタイル・シート )とレスポンスXSD (作成済のXMLスキーマ)の両方を指定します。
他の種類のデータ・コントロールと同様に、「データ・コントロール」パネルから項目をドラッグし、それを特定のUIコンポーネントとしてページ上にドロップすることで、データバインドされたユーザー・インタフェースを設計できます。詳細は、2.3.1項「データ・コントロール」パネルの使用方法」を参照してください。
「データ・コントロール」パネルでは、各データ・コントロール・オブジェクトがアイコンで表されます。表5-1は、各アイコンが表すもの、「データ・コントロール」パネルの階層内で表示される場所、そのアイコンを使用して作成できるコンポーネントを示しています。
表5-1 Webサービスの「データ・コントロール」パネルのアイコンおよびオブジェクト階層
アイコン | 名前 | 説明 | 作成できるコンポーネント |
---|---|---|---|
|
データ・コントロール |
データ・コントロールを表します。データ・コントロール自体を使用してUIコンポーネントを作成することはできませんが、その下に表示される子オブジェクトは、いずれも使用できます。通常、各Webサービスに対するデータ・コントロールは1つです。 |
他のオブジェクトのコンテナとして機能し、コンポーネント作成には使用されません。 |
|
コレクション |
サービスの操作から返されるデータ・コントロールを表現します。コレクションは、メソッド戻りオブジェクト、他のコレクション、または構造化属性の下の子としても表示されます。コレクションの下の子は、属性、他のコレクション、カスタム・メソッド、コレクションに対して実行できる組込み操作などです。 |
フォーム、表、グラフ、ツリー、レンジ・ナビゲーションの各コンポーネント、およびマスター/ディテール・コンポーネント。 詳細は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』の基本的なデータバインドされたページの作成に関する項、データバインドされたADF表の作成に関する項、マスター/ディテール・データの表示に関する項、およびデータバインドされたグラフおよびゲージ・コンポーネントの作成に関する項 を参照してください。 |
|
属性 |
オブジェクト内の個別のデータ要素(行の属性など)を表します。属性は、自分の属するコレクションまたはメソッド戻りの下に、子として表示されます。 |
ラベル、テキスト・フィールド、日付、値リスト、および選択リストの各コンポーネント。 詳細は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』のデータ・コントロール属性を使用したテキスト・フィールドの作成に関する項を参照してください。 |
|
構造化属性 |
複合型でありコレクションではない、返されたオブジェクトを表します。たとえば、構造化属性は、現在のサービス・リクエストに割り当てられた単一のユーザーを表現します。 |
ラベル、テキスト・フィールド、日付、値リスト、および選択リストの各コンポーネント。 詳細は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』のデータ・コントロール属性を使用したテキスト・フィールドの作成に関する項、およびデータバインドされた選択リストとシャトルの作成に関する項を参照してください。 |
|
メソッド |
データ・コントロールの操作またはその公開された構造のいずれかを表し、パラメータの受入れや、ビジネス・ロジックの実行を行ったり、オプションで単一の値、構造、またはそれらのコレクションを戻すことができます。 |
コマンド・コンポーネント。 パラメータを受け入れるメソッドの場合: コマンド・コンポーネントおよびパラメータ付きフォーム。 詳細は、コマンド・コンポーネントを使用したビュー・レイヤーの機能の呼出しに関する項を参照してください。 |
|
メソッド戻り |
Webサービス・メソッドによって戻されたオブジェクトを表します。戻されたオブジェクトは、単一の値またはコレクションです。 メソッド戻りは、これを戻すメソッドの下に、子として表示されます。メソッドの戻りオブジェクトの下の子として表示されるオブジェクトは、該当コレクションの属性、親コレクションに関連するアクションを実行する他のメソッド、および親コレクション上で実行可能な操作です。 単一値のメソッド戻り値がドロップされると、メソッドはフレームワークにより自動的に起動されなくなります。メソッドを起動するために、対応するメソッドをボタンとしてドロップする必要があります。また、タスク・フローを使用している場合は、メソッド・アクティビティを作成できます。実行可能ファイルの詳細は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』のページ定義ファイルで定義される実行可能ファイル・バインディング・オブジェクトに関する項を参照してください。 |
コレクションと属性、および問合せフォームの場合と同じコンポーネント。 問合せフォームの詳細は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』のデータバインドされたADF検索フォームの作成に関する項を参照してください。 |
|
操作 |
親オブジェクトに対してアクションを実行する、組込みデータ・コントロール操作を表します。データ・コントロール操作は、コレクションの下の「操作」ノードにあります。1つ以上のパラメータが操作に必要な場合、それらのパラメータは操作の下の「パラメータ」ノードにリストされます。 現在行のナビゲーションと設定のために、 |
ボタン、リンクおよびメニューなどのUIコマンド・コンポーネント。 詳細は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』のデータ・コントロール操作を使用したコマンド・コンポーネントの作成に関する項、および入力フォームの作成に関する項を参照してください。 |
|
パラメータ |
メソッドまたはその下に表示される操作によって宣言されたパラメータ値を表します。パラメータは、メソッドまたは操作の下の「パラメータ」ノード内に表示されます。 配列および構造化パラメータは、データ・コントロールの下の更新可能な構造化属性およびコレクションとして公開され、UI上にADFフォームまたは更新可能な表としてドロップできます。UIを使用して配列または複合オブジェクト(標準のJava型ではない)のパラメータを作成できます。 |
ラベル、テキストおよび選択リストの各コンポーネント。 |
通常、RESTデータ・コントロールの一部としてXMLスキーマを含めると、データ・コントロール定義には参照が絶対パスとして格納されます。これは、指定したXSDがネットワーク・リソースである場合にうまく機能します。指定したXSDがローカル・リソースである場合、プロジェクトのリソース・パスにXSDを配置できます。これにより、XSDはアプリケーションにパッケージされ、それへの参照は相対パスとして格納されます。
プロジェクトのリソース・パスにないXSDファイルのローカル・コピーへの参照を提供する場合、そのリソースへの参照は絶対パスとして格納されます。この場合、アプリケーション・サーバーのローカル・インスタンス上でアプリケーションを実行すると、XSDがアプリケーションで利用可能になります。ただし、リモート・サーバーにアプリケーションをデプロイすると、アプリケーションはXSDにアクセスにできなくなります。
リモート・サーバー・インスタンスにデプロイしたときにアプリケーションがXSDのローカル・コピーを利用できるようにするには、データ・コントロールを作成する前にそのXSDをプロジェクトのリソース・パスに手動でコピーする必要があります。
プロジェクトのリソース・パスは、「プロジェクト・プロパティ」ダイアログで指定できます。
プロジェクトのリソース・パスを指定する手順は次のとおりです。
プロジェクトのノードを右クリックして、「プロジェクト・プロパティ」を選択します。
図5-3に示すように、「プロジェクト・プロパティ」ダイアログで、「プロジェクトのソース・パス」ノードを開き、「リソース」ノードを選択します。
「リソース」フィールドにリストされているフォルダは、プロジェクトのリソース・パスです。
Webサービスを使用すると、アプリケーションは定義済アプリケーション・プログラミング・インタフェースからデータと情報を交換できます。SSL (Secure Sockets Layer)は、信頼性の低いネットワークでの安全なデータ転送を提供しますが、SSLは2点間でのみ機能します。データが相手側に到達すると、SSLセキュリティは解除され、データはそのままの形式でアクセスできるようになります。複雑なWebサービス・トランザクションでは、データの複数メッセージが異なるシステムに送信されることがありますが、SSLはエンドツーエンドのセキュリティを提供できないため、データは盗み読みされる危険があります。
Webサービスでは、あらゆる形態のセキュリティで、次の問題に対応する必要があります。
データの真正性と整合性
データのプライバシと機密性
認証と認可
非拒否
DoS攻撃
この項では、「クライアント」とは、デプロイされたWebサービスにSOAPまたはRESTメッセージを送信するWebサービス・データ・コントロールを指します。デプロイされたWebサービスは次のいずれかです。
Oracle WebLogic Server上で実行されているWebサービス
インターネット経由でアクセスできる、世界のどこでも実行可能なWebサービス
Oracle Web Services Manager (WSM)ポリシー・フレームワークを使用して、組織全体にわたって整合的にWebサービスを管理および保護できます。ポリシー・フレームワークは、WS-Policy標準を使用して構築されます。この標準は、複数のセキュリティ・テクノロジを統一し、システムおよびプラットフォーム間での安全なWebサービスの相互運用性を実現します。
Oracle WSMポリシー・フレームワークは、主に次のような面でWebサービスのセキュリティ問題を解決します。
認証と認可
データの送信者のアイデンティティが確認され、セキュリティ・システムによって、送信者がデータ・トランザクションを実行する権限を持っていることが確認されます。
認証型はプレーン・テキストまたは信頼性の高いX509認証チェーンで送信される、基本的なusername/passwordペアです。SAMLアサーション・トークンを使用して、クライアントがサービスに対する認証を受けたり、フェデレートされたSSO環境に参加できるようにすることもできます。この場合、認証の詳細は、ベンダー固有の方法を使用してドメイン間で共有します。
データの真正性、整合性および否認防止
業界標準メッセージを使用するXMLデジタル署名は、アルゴリズムをダイジェスト化し、SOAPメッセージにデジタル署名します。
データ・プライバシ
業界標準の暗号化アルゴリズムを使用するXML暗号化により、メッセージを暗号化します。
DoS攻撃
SOAPメッセージにタイム・スタンプを押すXML構造を定義します。サーバーは、タイム・スタンプを使用して、定義された間隔後SOAPメッセージを無効にします。
Webサービス・セキュリティの詳細は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』を参照してください。
キー・ストアを使用して、メッセージ・レベルのセキュリティに対応するようにWebサービスを構成できます。メッセージ保護のためのキー・ストアの作成と使用の詳細は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』のメッセージ保護の構成に関する項を参照してください
JDeveloperプロジェクトにSOAPベースのWebサービス・データ・コントロールを作成したら、「データ・コントロール・ポリシーの編集」ダイアログを使用して、データ・コントロールのセキュリティを定義できます。
始める前に:
Webサービス・データ・コントロールでのセキュリティの使用方法に関する知識があると役立つ場合があります。詳細は、5.3項「Webサービス・データ・コントロールのセキュリティ保護」を参照してください。
また、他のWebサービス機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、5.1.2項「ADFアプリケーションのWebサービス・データ・コントロールの追加機能」を参照してください。
SOAP Webサービス・データ・コントロールのセキュリティを定義する手順は次のとおりです。
「アプリケーション」ウィンドウで、Webサービス・データ・コントロールのDataControls.dcx
ファイルを選択します。
「構造」ウィンドウで、Webサービス・データ・コントロールを右クリックして「Webサービス・セキュリティの定義」を選択します。
JDeveloperは「データ・コントロール・ポリシーの編集」ダイアログに「ポリシー・ストア」の場所を表示します。
注意: 別のポリシー・ストアを使用するには、「プリファレンス」ダイアログの「WSポリシー・ストア」ページでそのポリシー・ストアをまず指定する必要があります。このためには、メイン・メニューで「ツール」→「プリファレンス」を選択し、「WSポリシー・ストア」ページを選択します。 |
「ポート」ドロップダウン・リストから、指定したポリシーを適用するポートを選択します。
「MTOM」ドロップダウン・リストから、使用するMTOM (メッセージ送信最適化メカニズム)ポリシーを選択します。このフィールドを空白のままにすると、MTOMポリシーは使用されません。
「信頼性」ドロップダウン・リストから、使用する信頼性ポリシーを選択します。このフィールドを空白のままにすると、信頼性ポリシーは使用されません。
「アドレス指定」ドロップダウン・リストから、使用するアドレス指定ポリシーを選択します。このフィールドを空白のままにすると、アドレス指定ポリシーは使用されません。
「セキュリティ」リストで、適用する追加のポリシーを任意に指定できます。ポリシーを追加するには、そのポリシーのチェック・ボックスを選択します。
「WS構成」リストで、適用する追加のWebサービス構成ポリシーを任意に指定できます。ポリシーを追加するには、そのポリシーのチェック・ボックスを選択します。
構成ポリシーの詳細は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』の構成ポリシーに関する項を参照してください
「管理」リストで、適用する追加の管理ポリシーを任意に指定できます。ポリシーを追加するには、そのポリシーのチェック・ボックスを選択します。
必要な場合は、ポリシーに対応するチェック・ボックスを選択解除して、「セキュリティ」リストと「管理」リストからポリシーを削除することもできます。
「プロパティのオーバーライド」をクリックして、オプションで「セキュリティ」リストおよび「管理」リスト内のポリシーのプロパティをオーバーライドできます。
「OK」をクリックします。
事前定義済ポリシーおよびポリシーとそのプロパティの構成の詳細は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』の構成ポリシーに関する項を参照してください