Oracle® Mobile Application Framework Oracle Mobile Application Frameworkでのモバイル・アプリケーションの開発 2.3.1 E77215-01 |
|
![]() 前 |
![]() 次 |
この章の内容は次のとおりです。
構成サービスは、Webサービス、ログイン・ユーティリティおよびMAFアプリケーションのその他の部分で使用されるエンド・ポイントを構成できるツールです。
注意:
ユニバーサルWindowsプラットフォーム上のMAFアプリケーションは、構成サービスの使用をサポートしていません。
エンド・ポイントURLは、connections.xml
ファイルに定義されており、新しい接続エントリはそのファイルに追加する必要があります。この新しい接続はタイプをHttpURLConnection
にし、そのurl
値は構成サーバーのエンド・ポイントURLを指し、そのname
は最終的にJava Beanコードで参照される任意の値に設定されている必要があります。
次の例は、connections.xml
ファイルの構成サービス・エンド・ポイントを定義する方法を示しています。
<RefAddresses> <XmlRefAddr addrType="ConfigServiceConnection"> <Contents> <urlconnection name="ConfigServiceConnection" url="http://127.0.0.1"/> </Contents> </XmlRefAddr> </RefAddresses> </Reference> <!-- Login Server connection for secured configuration service --> <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"/> <authenticationMode value="remote"/> <idleTimeout value="300"/> <sessionTimeout value="28800"/> <maxFailuresBeforeCredentialCleared value="3"/> <injectCookiesToRestHttpHeader value="true"/> <rememberCredentials> <enableRememberUserName value="true"/> <rememberUserNameDefault value="true"/> <enableRememberPassword value="false"/> <enableStayLoggedIn value="false"/> </rememberCredentials> <accessControl/> <userObjectFilter/> </Contents> </XmlRefAddr> </RefAddresses>
構成サーバーに対してセキュリティが有効である場合、connections.xml
ファイルにはURL接続と同じエンド・ポイントURLを指すログイン接続を含める必要があります。前の例に示したように、ログイン接続とHttpURLConnection
は、同じadfCredentialStoreKey
を共有する必要があります。
多くの場合、エンド・ポイントURLはエンド・ユーザーから取得する必要があります。このユース・ケースに対処するには、エンド・ユーザーからエンド・ポイントURLの値を取得するためのユーザー・インタフェースを作成し、それをアプリケーション・プリファレンスに設定します。その後、取得した値をJava Beanメソッドで使用して、接続URL値をオーバーライドできます(例16-1を参照)。
例16-1 接続定義のオーバーライド
AdfmfJavaUtilities.clearSecurityConfigOverrides(<ConfigService_ConnectionName>); AdfmfJavaUtilities.overrideConnectionProperty(<ConfigService_ConnectionName>, "urlconnection", "url", <ConfigService_EndpointURL>); // Required if Config Service is secured and the authentication endpoints are input by the user AdfmfJavaUtilities.clearSecurityConfigOverrides(<ConfigService_AuthenticationConnectionName>); AdfmfJavaUtilities.overrideConnectionProperty(<ConfigService_AuthenticationConnectionName>, "login", "url", <Login_EndpointURL>); AdfmfJavaUtilities.overrideConnectionProperty(<ConfigService_AuthenticationConnectionName>, "logout", "url", <Logout_EndpointURL>); // Final step is to apply the changes. AdfmfJavaUtilities.updateApplicationInformation(false);
構成サービスのユーザー・インタフェースが必要な場合は、新規または既存のアプリケーション機能内に作成する必要があります。
MAFでは、oracle.adfmf.config.client.ConfigurationService
クラス内で一連のAPIが提供され、サーバー上の新しい変更を確認して更新内容をダウンロードできます。これらの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", <ConfigService_ConnectionName>);
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);
ConfigServiceDemoサンプル・アプリケーションは、これらのAPIを使用して構成サーバーと通信する方法を示しています。ConfigServiceDemoアプリケーションは、開発コンピュータ上のjdev_install
/jdeveloper/jdev/extensions/oracle.maf/Samples
ディレクトリ内のPublicSamples.zip
ファイル内にあります。
oracle.adfmf.config.client.ConfigurationService
クラスの詳細は、Oracle Mobile Application Framework Java APIリファレンスを参照してください。
構成サービスは、ユーザーが指定した、またはconnections.xml
ファイルに指定されているエンド・ポイントURLを取得し、それを使用してconnections.xml
ファイルをダウンロードするためのURLを構築します。
たとえば、アプリケーションIDの値がcom.mycompany.appname
のアプリケーションに対して、ユーザーが次のエンド・ポイントURLを指定している場合、
http://my.server.com:port/SomeLocation
構成サーバーは、次のURLを構築してconnections.xml
ファイルをダウンロードします。
http://my.server.com:port/SomeLocation/com.mycompany.appname/connections.xml
構成サービスは、HTTP GET
リクエストを受け入れてconnections.xml
ファイルを返すサービスとして実装できます。
構成サービス・クライアントによって使用されるURLの形式は、次のとおりです。
adf-config.xml/アプリケーション・バンドルIDで構成されたURL/
connections.xml
構成サービスのエンド・ポイントは、HTTPおよびHTTPSを経由する基本認証(BASIC_AUTH
)を使用して保護できます。
エンタープライズ・モバイル管理(EMM)ソフトウェアを使用する管理者が、アプリケーションがエンド・ユーザーにデプロイされるときにその値を構成できるプロパティをMAFアプリケーションで構成する方法について説明します。
プロパティは、アプリケーションのmaf-application.xml
ファイルで<adfmf:emmAppConfig>
要素を使用して構成できます(次のサンプルmaf-application.xml
ファイルを参照。このサンプルでは、複数のプロパティが定義されています)。
<adfmf:emmAppConfig> <adfmf:property name="serverURL" type="String" description=“URL to connect the backend service"/> <adfmf:property name="port" type="Integer" description=“Port number of the backend service”/> <adfmf:property name=“enableEncryption" type=“Boolean" description=“Turn on app level encryption”/> <adfmf:property name=“refreshDate" type=“Date" description=“Date on which application will be refreshed”/> </adfmf:emmAppConfig>
EMM管理者がEMMコンソールでこれらのプロパティの値を構成し、その後EMMソフトウェアがMAFアプリケーションがインストールされているデバイスにこの値をプッシュします。この機能は、AndroidおよびiOSにデプロイされたMAFアプリケーションでのみサポートされます。EMMソフトウェアで、<adfmf:emmAppConfig>
要素で指定されるデータ型がサポートされていることを確認してください。前述の例では、指定されたプロパティのデータ型はString
、Integer
、Boolean
およびDate
です。
EMMコンソールで対応するプロパティ値を構成する方法およびEMMソフトウェアでサポートされるデータ型の詳細は、EMMベンダーのドキュメントを参照してください。
#{EMMConfigProperties}
EL式を使用して、MAFアプリケーションのアプリケーション・ライフサイクル内の任意の時点で、プロパティ値を読み取ることができます。たとえば、serverURLプロパティの値を読み取るには、#{EMMConfigProperties.serverURL}
のようにEL式を記述します。
EMMAppConfigScope.getInstance().addPropertyChangeListener(this);