ヘッダーをスキップ

Oracle® Fusion Middleware Oracle Mobile Application Frameworkでのモバイル・アプリケーションの開発 2.0.1 E57592-01 |
| 目次

前 | 次 |

# 9 MAFアプリケーションで使用されるエンド・ポイントの構成

この章では、構成サービスを使用して、MAFアプリケーションで使用されるエンド・ポイントを構成する方法について説明します。

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

- 第9.1項「エンド・ポイントの構成の概要」

- 第9.2項「構成サービスのエンド・ポイントの定義」

- 第9.3項「構成サービスのユーザー・インタフェースの作成」

- 第9.4項「URLの構築について」

- 第9.5項「サーバー上での構成サービスの設定」

- 第9.6項「構成サービスの移行」

## 9.1 エンド・ポイントの構成の概要

構成サービスは、Webサービス、ログイン・ユーティリティおよびMAFアプリケーションのその他の部分で使用されるエンド・ポイントを構成できるツールです。

## 9.2 構成サービスのエンド・ポイントの定義

エンド・ポイント(またはシード) URLは、`connections.xml`ファイルに定義されており、新しい接続エントリはそのファイルに追加する必要があります。この新しい接続はタイプを`HttpURLConnection`にし、その`url`値は構成サーバーのエンド・ポイント(またはシード) URLを指し、その`name`は最終的にJava Beanコードで参照される任意の値に設定されている必要があります。

例9-1は、`connections.xml`ファイルに構成サービスのエンド・ポイントを定義する方法を示しています。

例9-1 connections.xmlファイルでのエンド・ポイントの設定

    <Reference name="ConfigServiceConnection"
                    className="oracle.adf.model.connection.url.HttpURLConnection"
                    credentialStoreKey="ConfigServiceConnection"
                    adfCredentialStoreKey="ConfigServerLogin"
                    xmlns="">
       <Factory className="oracle.adf.model.connection.url.URLConnectionFactory"/>
       <RefAddresses>
          <XmlRefAddr addrType="ADFMFSecuredConfigServer">
             <Contents>
                <urlconnection name="ADFMFSecuredConfigServer"
                               url="http://127.0.0.1"/>
                   <authentication style="challange">
                     <type>basic</type>
                     <realm>myrealm</realm>
                   </authentication>
                </urlconnection>
             </Contents>
          </XmlRefAddr>
          <SecureRefAddr addrType="username"/>
          <SecureRefAddr addrType="password"/>
       </RefAddresses>
    </Reference>
    <Reference name="ConfigServerLogin"
               className="oracle.adf.model.connection.adfmf.LoginConnection"
               adfCredentialStoreKey="ConfigServerLogin"
               partial="false"
               manageInOracleEnterpriseManager="true"
               deployable="true"
               xmlns="">
       <Factory className="oracle.adf.model.connection.adfmf.LoginConnectionFactory"/>
       <RefAddresses>
          <XmlRefAddr addrType="adfmfLogin">
             <Contents>
                <login url="http://127.0.0.1"/>
                <logout url="http://127.0.0.1"/>
                <accessControl url=""/>
                <idleTimeout value="300"/>
                <sessionTimeout value="28800"/>
                <authenticationMode value="remote"/>
                <rememberCredentials>
                   <enableRememberUserName value="true"/>
                   <rememberUserNameDefault value="true"/>
                   <enableRememberPassword value="false"/>
                   <enableStayLoggedIn value="true"/>
                   <stayLoggedInDefault value="true"/>
                </rememberCredentials>
                <userObjectFilter/>
             </Contents>
          </XmlRefAddr>
       </RefAddresses>
    </Reference>

構成サーバーに対してセキュリティが有効である場合、`connections.xml`ファイルには次の追加の定義を含める必要があります。

- URL接続と同じエンド・ポイント(またはシード) URLを指すログイン接続が必要です。ログイン接続と`HttpURLConnection`は、同じ`adfCredentialStoreKey`を共有する必要があります。

エンド・ポイントURLは、エンド・ユーザーから取得する必要があり、`connections.xml`ファイルには設定できない場合があります。この場合は、エンド・ポイントURLの値を取得するためのユーザー・インタフェースを作成し、それをアプリケーション・プリファレンスに設定できます。その後、例9-2に示すとおり、プリファレンスの値をJava Beanメソッドで使用して、接続URL値をオーバーライドできます。

例9-2 接続定義のオーバーライド

    AdfmfJavaUtilities.overrideConnectionProperty("ConfigServerConnection",
                                                  "login",
                                                  "url",
                                                  <Endpoint_URL>);

## 9.3 構成サービスのユーザー・インタフェースの作成

構成サービス・ユーザー・インタフェースの要件がある場合は、それを新規または既存のアプリケーション機能に作成する必要があります。

MAFでは、サーバー上での新たな変更をチェックし、更新をダウンロードできるAPIセットが`oracle.adfmf.config.client.ConfigurationService`クラス内に用意されています。これらのAPIをJava Beanで使用すると、構成サービス・アプリケーション機能を介して該当するメソッドをアクティブ化できます。

次のAPIリストとその使用例では、`_configservice`変数は`oracle.adfmf.config.client.ConfigurationService`クラスのインスタンスを表します。

- `setDeliveryMechanism`メソッドは、構成サービスの配信メカニズムを設定します。以前のリリースの構成サーバーとの通信がHTTPを介して有効であるため、`http`はこのメソッドの引数として渡されます。

      _configservice.setDeliveryMechanism("http");

  注意: このメソッド引数は構成サービスに対して使用されるWebトランスポートを表しており、HTTPまたはHTTPSと混同しないでください。エンド・ポイントがHTTPS URLである場合、トランスポートをhttpに設定することは引き続き有効です。

- setDeliveryMechanismConfigurationメソッドは、構成サーバー接続およびエンド・ポイントURLを関連付けることができる追加の属性を構成サービスに対して設定します。

      _configservice.setDeliveryMechanismConfiguration("connectionName",
                                                       "ConfigServerConnection");
      _configservice.setDeliveryMechanismConfiguration("root", <Endpoint_URL);

- `isThereAnyNewConfigurationChanges`メソッドは、サーバー上でダウンロード可能な変更があるかどうかをチェックし、ある場合は`true`を返します。

      _configservice.isThereAnyNewConfigurationChanges(<APPLICATION_ID>, <VERSION>);

- `stageAndActivateVersion`メソッドは、構成サービスによる更新のダウンロードをトリガーします。アプリケーションのバージョンが、ハードコードされた値または`Application.getApplicationVersion` APIから取得された値として、このメソッドに引数として渡されます。

      _configservice.stageAndActivateVersion("1.0");

      _configservice.stageAndActivateVersion(Application.getApplicationVersion);

- `addProgressListener`メソッドは、構成サービスに更新進捗リスナーを登録して、更新メッセージおよび進捗状況を受信します。基礎クラスは、`ProgressListener`インタフェースおよび構成サービスから呼び出される`updateProgress`メソッドを実装している必要があります。`updateProgress`メソッドは、進捗更新メッセージおよび更新完了率を受信します。

      _configservice.addProgressListener(this);

- `removeProgressListener`メソッドは、更新進捗リスナーを登録解除します。

      _configservice.removeProgressListener(this);

ConfigServiceという名前のMAFサンプル・アプリケーションは、これらのAPIを使用して構成サーバーと通信する方法を示しています。ConfigServiceアプリケーションは、開発コンピュータ上の`jdev_install``/jdeveloper/jdev/extensions/oracle.maf/Samples`ディレクトリ内の`PublicSamples.zip`ファイル内にあります。

詳細は、Oracle Fusion Middleware Oracle Mobile Application Framework Java APIリファレンスを参照してください。

## 9.4 URLの構築について

構成サービスの各管理対象リソースへのURLが構築されています。これには、次のようにアプリケーションIDとファイル名が含まれています。

URLの`http://my.server.com:port/SomeLocation`とアプリケーションIDの`com.mycompany.appname`がユーザーによって指定されている場合は、次のURLを使用して構成ファイルをダウンロードします。

    http://my.server.com:port/SomeLocation/com.mycompany.appname/connections.xml
    http://my.server.com:port/SomeLocation/com.mycompany.appname/adf-config.xml
    http://my.server.com:port/SomeLocation/com.mycompany.appname/maf-config.xml

## 9.5 サーバー上での構成サービスの設定

構成サービスは、HTTP `GET`リクエストを受け入れ、`connections.xml`ファイルを返すサービスとして実装できます。

構成サービス・クライアントによって使用されるURLの形式は、次のとおりです。

`url configured in adf-config.xml/id in maf-application.xml``/connections.xml`

構成サービスのエンド・ポイントは、HTTPおよびHTTPSを経由する基本認証(`BASIC_AUTH`)を使用して保護できます。

## 9.6 構成サービスの移行

アプリケーションが以前のリリースのMAFを使用して作成され、そのアプリケーションが構成サービスを使用する場合は、手動で移行を実行する必要があります。

移行の主な理由は、現在のリリースでは、MAFは構成サービスの機能の有効化に不可欠な役割を果たしてきた次のAPI、プロパティおよびユーティリティのサポートを解除したことです。

- MAFには以前は、`use-configuration-service-at-startup`プロパティを設定してサービスを有効にし、`adfmf-configuration-service-seed-url`プロパティを設定してエンド・ポイントURLを提供することで、`adf-config.xml`ファイルから構成サービスを操作する手段が用意されていました。

- `checkForUpdates` APIには、構成サービスの更新をチェックする手段が用意されていました。

- 構成サービスは、MAFに用意されているUIから開始しました。

移行を開始するには、第9.2項「構成サービスのエンド・ポイントの定義」の説明に従って、エンド・ポイント(またはシード) URLを`adf-config.xml`ファイルから`connections.xml`ファイルに移動し、新しい接続要素を`connections.xml`ファイルに追加する必要があります。

現在のリリースではMAFに構成サービス用のユーザー・インタフェースが用意されていないため、そのユーザー・インタフェースの要件があることを前提にして、新規または既存のアプリケーション機能にユーザー・インタフェースを作成する必要があります。詳細は、第9.3項「構成サービスのユーザー・インタフェースの作成」を参照してください。

ConfigServiceという名前のMAFサンプル・アプリケーションは、APIを使用して前回のリリースのMAFに含まれていた構成サーバーと通信する方法を示しています。ConfigServiceアプリケーションは、開発コンピュータ上の`jdev_install``/jdeveloper/jdev/extensions/oracle.maf/Samples`ディレクトリ内の`PublicSamples.zip`ファイル内にあります。