Oracle® Mobile Application Framework Oracle Mobile Application Frameworkでのモバイル・アプリケーションの開発 2.2.0 E69896-01 |
|
![]() 前 |
![]() 次 |
この章の内容は次のとおりです。
JDeveloperのOracle Mobile Application Framework (MAF)拡張機能には、MAFアプリケーションの開発、テストおよびデプロイメントを容易にする様々な概要エディタやその他のウィザードが用意されています。これらのウィザードを使用すると、MAFアプリケーションの作成、1つ以上のアプリケーション機能の定義、アプリケーション機能へのコンテンツの追加、およびMAFアプリケーションのテスト環境またはデバイスへのデプロイを比較的短時間に行えます。
図2-1は、JDeveloperの「アプリケーション」ウィンドウにWorkBetterサンプル・アプリケーションを表示したもので、このウィンドウではMAFアプリケーションの開発に使用する様々なアイテムを特定します。
MAFアプリケーションを新規作成すると、デフォルトでmaf-features.xml
ファイルの概要エディタが開きます。この概要エディタを使用して、MAFアプリケーションに含めるアプリケーション機能を定義します。
maf-application.xml
ファイルの概要エディタは、特にMAFアプリケーションの名前、アプリケーション用にレンダリングされるデフォルトのナビゲーション・メニュー(ナビゲーション・バーまたはSpringboard)、セキュリティ、およびアプリケーションのデバイス・アクセス・オプションを指定する場合に使用します。
デフォルトで、JDeveloperはMAFアプリケーションを2つのデータ・コントロール(ApplicationFeaturesとDeviceFeatures)とともに作成します。これらのデータ・コントロールでは、MAF AMXページにドラッグ可能な操作を公開し、ユーザーがその操作をページにドロップすると、操作の構成を実行するためのコンテキスト・メニューがJDeveloperによって表示されます。たとえば、hideNavigationBar()
操作をページにドラッグすると、エンド・ユーザーがアプリケーションのナビゲーション・バーを非表示にするコントロールを構成するためのコンテキスト・メニューが、JDeveloperによって表示されます。
WorkBetterサンプル・アプリケーションは、MAFに用意されている様々なサンプル・アプリケーションの1つで、MAFを使用したモバイル・アプリケーションの作成方法を示します。詳細は、「サンプルのMAFアプリケーション」を参照してください。
JDeveloperによってウィザードにデフォルト・オプションが提示されるので、次のように実行すると、1つのMAF AMXページを表示する、1つのアプリケーション機能を備えたMAFアプリケーションを作成できます。
「MAFアプリケーションの作成」の説明に従って、MAFアプリケーションを作成します。
「MAFアプリケーションのアプリケーション機能の定義」の説明に従って、MAFアプリケーションのアプリケーション機能を定義します。
「アプリケーション機能へのコンテンツの追加」の説明に従って、アプリケーション機能にコンテンツを追加します。
図2-1 アプリケーション機能とアプリケーションの概要エディタ
MAFアプリケーションを作成するには、事前にJDeveloperにMAF拡張機能をダウンロード、インストールおよび構成する必要があります。詳細は、『Oracle Mobile Application Frameworkのインストール』を参照してください。このタスクを完了したら、JDeveloperの作成ウィザードを使用してMAFアプリケーションを作成します。
アプリケーションの作成ウィザードを使用して、JDeveloperでMAFアプリケーションを作成します。
MAFアプリケーションの作成手順:
JDeveloperは、MAFアプリケーションを2つのプロジェクト(ApplicationControllerとViewController)および2つのデータ・コントロール(ApplicationFeaturesとDeviceFeatures)とともに作成します。また、MAFアプリケーションの構成用ファイルと、MAFアプリケーションをAndroidまたはiOSプラットフォームにデプロイする際にそのアプリケーションで必要になるファイルも作成されます。
デフォルトで、新規作成したMAFアプリケーションのViewControllerプロジェクト内にあるmaf-features.xml
ファイルの概要エディタが表示されます(図2-2を参照)。この概要エディタを使用して、1つ以上のアプリケーション機能をMAFアプリケーションに追加します。MAFアプリケーションには、少なくとも1つのアプリケーション機能が必要です。MAFアプリケーションへのアプリケーション機能の追加の詳細は、「MAFアプリケーションのアプリケーション機能の定義」を参照してください。
MAFアプリケーションの作成時にJDeveloperによって生成されるファイルおよびアーティファクトの詳細は、「MAFアプリケーションとプロジェクト・ファイル」を参照してください。
図2-2 新規作成したMAFアプリケーション内のアプリケーション機能の概要エディタ
MAFアプリケーションには、少なくとも1つのアプリケーション機能が必要です。たとえば、WorkBetterサンプル・アプリケーションには4つのアプリケーション機能(ダッシュボード、人々、組織およびSpringboard)が含まれています。図2-3は、これらのうち3つのアプリケーション機能が、そのアプリケーションのカスタムSpringboardに表示されている様子を示しています。
図2-3 WorkBetterアプリケーションのSpringboardに表示されるアプリケーション機能
アプリケーション機能を定義した後で行うタスクの1つに、アプリケーション機能へのコンテンツの追加があります。アプリケーション機能のコンテンツのレンダリング・タイプを次の中から選択します。
MAF AMXページ: アプリケーション機能をMAF AMXページとしてレンダリングする場合は、このコンテンツ・タイプを選択します。
MAFタスク・フロー: アプリケーション機能を、タスク・フローを構成するアクティビティのコレクションとしてレンダリングする場合は、このコンテンツ・タイプを選択します。タスク・フローに含めることのできるアクティビティには、ビュー(MAF AMXページの表示)、メソッド・コール(マネージドBeanのメソッドの起動)、タスク・フロー・コール(別のタスク・フローのコール)などがあります。
ローカルHTML: アプリケーション機能をHTMLページとしてレンダリングする場合に選択します。
リモートURL: アプリケーション機能をリモートURLからのコンテンツでレンダリングする場合に選択します。
アプリケーション機能にコンテンツ・タイプを追加する一般的な手順は、すべてのコンテンツ・タイプで同じです。具体的には、maf-features.xml
ファイルの概要エディタにある「機能」ページの「コンテンツ」タブで、アプリケーション機能に追加するコンテンツのタイプを選択します。各コンテンツ・タイプに固有の手順については、「MAFアプリケーション機能のコンテンツ・タイプの定義」を参照してください。
定義時にアプリケーション機能がMAFアプリケーションへ自動的に追加されるようにするには、「アプリケーション機能の定義方法」の説明に従って、「MAF機能の作成」ダイアログで「対応する機能参照をmaf-application.xmlに追加」チェック・ボックスを選択します。
作成時にMAFアプリケーションへ追加しなかったアプリケーション機能を追加する場合は、maf-application.xml
ファイルの概要エディタの「機能参照」ページを使用し、maf-application.xml
ファイルの概要エディタの「機能参照」ページを使用します。
アプリケーション機能を機能アーカイブ(FAR)ファイルからインポートして、MAFアプリケーションに追加することもできます。MAFアプリケーションにアプリケーション機能を追加するには、事前にそのアプリケーション機能をMAFアプリケーションにインポートする必要があります。FARファイルからのインポートの詳細は、「MAFアプリケーション・コンテンツの再使用」を参照してください。
図2-4は、「機能参照」ページを示したもので、このページを使用してMAFアプリケーションにアプリケーション機能を追加します。
図2-4 「機能参照」ページを使用したアプリケーション機能の追加
MAFアプリケーションにアプリケーション機能を追加するには、maf-application.xml
ファイルの概要エディタの「機能参照」ページを使用します。
MAFアプリケーションにアプリケーション機能を追加する手順:
MAFアプリケーションに追加するアプリケーション機能を参照するためのエントリが、JDeveloperによってmaf-application.xml
ファイルに書き込まれます。
maf-application.xml
ファイルの<adfmf:featureReference>
要素のrefId
属性は、maf-feature.xml
ファイル内の対応するアプリケーション機能を特定します。このため、maf-application.xml
ファイル内の<adfmf:featureReference>
要素のrefId
属性の値は、maf-feature.xml
ファイル内の<adfmf:feature>
要素に対して定義されたid
属性の値と一致する必要があります。
一貫した命名規則を使用して、アプリケーション機能IDの一意性を確保します。アプリケーション機能IDはMAFアプリケーション全体を通して一意である必要があります。
例2-1に、WorkBetterサンプル・アプリケーションのmaf-application.xml
ファイルとmaf-feature.xml
ファイルに含まれている人々アプリケーション機能のエントリを示します。
例2-1 WorkBetterアプリケーションに含まれているアプリケーション機能の機能参照と機能ID
<!-- Feature Reference ID in maf-application.xml File --> <adfmf:featureReference id="fr2" refId="People"/> ... <!-- Feature ID in maf-feature.xml File --> <adfmf:feature id="People" name="People" icon="images/people.png" image="images/people.png"> ...
「MAF AMXページの作成」で説明されているように、MAF AMXコンポーネントを使用すると、プラットフォーム固有の言語で作成されたページとまったく同じように実行されるページを構築できます。MAF AMXページでは、コンポーネントのリッチなセットを使用してユーザー・インタフェースを宣言的に作成できます。図2-5に、MAF AMXページの宣言的な開発を示します。
図2-5 MAF AMXページの作成
これらのページは、(MAFアプリケーションを作成し、その中にアプリケーション機能を埋め込む)アプリケーション・アセンブラによって作成される場合や、別の開発者によって作成され、アプリケーション機能またはMAFアプリケーションに対するリソースとしてMAFアプリケーションに組み込まれる場合もあります。
MAF AMXページを作成するプロジェクトによって、このページが単一のアプリケーション機能のユーザー・インタフェース・コンテンツ配信に使用されるのか、またはMAFアプリケーション全体に対するリソースとして使用されるのかが決まります。たとえば、図2-9に示すような、アプリケーション・コントローラ・プロジェクト内で作成されたページは、アプリケーション全体のリソースとして使用されます。
ヒント:
ページの保守を容易にするために、ページをページ・フラグメントと呼ばれる再利用可能なセグメントに分割できます。MAF AMXページは、1つ以上のページ・フラグメントで構成されます。
MAFでは、MAFタスク・フローによりMAF AMXビュー・ページおよび他のアクティビティを適切な順序に配置できます。「タスク・フローの作成」で説明されているように、MAFタスク・フローはアプリケーションのフローを視覚的に表現したものです。これは、(図2-6に示すWorkBetterサンプル・アプリケーションのデフォルトのListページやDetailページなどのビュー・アクティビティのような) MAF AMXで作成されるユーザー・インタフェース・ページや、マネージドBeanでメソッドをコールできる非視覚的なアクティビティで構成されます。タスク・フローの非ビジュアル的な要素は、EL式の評価または別のタスク・フローの呼出しに使用できます。図2-6で示されるように、MAFではタスク・フロー・コンポーネントをダイアグラマにドラッグしてタスク・フローを宣言的に作成できます。MAFには、WorkBetterサンプル・アプリケーションのListページなどの単一のエントリ・ポイントを持つバインド・タスク・フローと、アプリケーション・フローへの複数のエントリ・ポイントを持つバインドなしタスク・フローの2つのタイプのタスク・フローがあります。WorkBetterサンプル・アプリケーションは、開発コンピュータ上のjdev_install
/jdeveloper/jdev/extensions/oracle.maf/Samples
ディレクトリのPublicSamples.zip
ファイル内にあります。
図2-6 MAFタスク・フロー
図2-7に、MAFタスク・フロー、AMXページ、MAFページ・フラグメントと呼ばれるMAF AMXページの再利用可能な部分、およびアプリケーション機能を追加するためにMAFに提供されているウィザードを示します。これらのウィザードにアクセスするには、「アプリケーション」ウィンドウでビュー・コントローラ・プロジェクトまたはアプリケーション・コントローラ・プロジェクトを選択して、「ファイル」→「新規」を選択します。「クライアント層」内の「モバイル・アプリケーション・フレームワーク」を選択した後、いずれかのウィザードを選択します。
図2-7 アプリケーション機能のリソースを作成するウィザード
MAF AMXページ・ウィザードを使用して、アプリケーション機能のユーザー・インタフェースに使用されるAMXページや、MAFアプリケーションを構成するアプリケーション機能の間で共有可能なアプリケーション・レベルのリソース(ログイン・ページなど)として使用されるAMXページを作成できます。アプリケーション機能コンテンツの詳細は、「MAFアプリケーション機能のコンテンツ・タイプの定義」を参照してください。
アプリケーション機能のコンテンツとしてMAF AMXページを作成するには:
「アプリケーション」ウィンドウで、ビュー・コントローラ・プロジェクトを右クリックします。
「ファイル」を選択し、「新規」を選択します。
「新規ギャラリ」の「クライアント層」ノードで、「MAF AMXページ」を選択して、「OK」をクリックします。
「ファイル名」フィールドに名前を入力して、「MAF AMXページの作成」ダイアログの入力を完了します(図2-8を参照)。「ディレクトリ」フィールドに、ファイルの場所を入力します。この場所は、ビュー・コントローラ・プロジェクトのpublic_html
フォルダ内である必要があります。
図2-8 ビュー・コントローラ・プロジェクト内でのMAF AMXページの作成
「パネル・ページ」内で、ヘッダーおよびフッターの作成に使用する「ファセット」を選択(または選択解除)します。「OK」をクリックします。
詳細は、「パネル・ページ・コンポーネントの使用方法」を参照してください。
MAF AMXページを構築します。AMXコンポーネントの使用の詳細は、「MAF AMXページの作成」を参照してください。また、「アプリケーション機能のコンテンツをMAF AMXページまたはタスク・フローとして定義する方法」も参照してください。
MAF AMXアプリケーションに対するリソースとしてMAF AMXページを作成するには:
JDeveloperは、MAF AMXページとタスク・フローを、ビュー・コントローラ・プロジェクトの「Webコンテンツ」ノードに配置します(図2-11
のcustom_springboard.amx
およびViewController-task-flow.xmlを参照。これらは、このプロジェクト内で作成されるタスク・フローのデフォルト名です)。これらのアーティファクトはmaf-feature.xml
ファイル内で参照されています。カスタマイズされたアプリケーション・スプラッシュ画面(または起動)イメージやナビゲーション・バー・イメージなどの他のリソースも「Webコンテンツ」ノードにあります。バインドなしタスク・フローを管理するために、JDeveloperではadfc-mobile-config.xml
ファイルが生成されます。このファイルを使用して、ビュー(ユーザー・インタフェース・ページ)、様々なアクティビティ間の遷移を定義する制御ルール、およびタスク・フローのレンダリング・ロジックを管理するマネージドBeanなどの様々なタスク・フロー・コンポーネントを追加することで、タスク・フローを宣言的に作成または更新できます。
図2-11 アプリケーション・コントローラ・プロジェクトおよびビュー・コントローラ・プロジェクト内のMAF AMXページとタスク・フロー
JDeveloperは、MAF AMXページとタスク・フローを、MAFアプリケーションに対するアプリケーション・リソースとして、アプリケーション・コントローラ・プロジェクトの「Webコンテンツ」ノードに配置します。図2-11に示すように、MAF AMXページ用のファイルはapplication_resource.amx
という名前で、タスク・フローのファイルはApplicationController-task-flow.xml
という名前です(デフォルト名)。
デプロイ時に、MAFアプリケーションをOracle Mobile Security Suite (OMSS)でラップして、そのエンタープライズ・モバイル・アプリケーション管理機能を活用するように選択できます。OMSSにより、リッチなユーザー・エクスペリエンスを維持しながら、モバイル・デバイスから企業のアプリケーションおよびデータにセキュアにアクセスできます。そのモバイル・セキュリティ・コンテナにより、企業または個人が所有しているiOSまたはAndroidデバイス上で、エンタープライズ・ワークスペースが作成されます。従業員は、エンタープライズ・グレードのセキュリティおよびシングル・サインオン認証により、企業のデータおよびアプリケーションにシームレスにアクセスできます。
モバイル・セキュリティ・アプリケーション・コンテナ化ツールを使用すると、標準化されたセキュリティ・レイヤーをネイティブ・モバイル・アプリケーションに追加できます。コンテナ化のプロセスはシンプルで、次のセキュリティ・サービスをアプリケーションに追加します。
セキュアなデータ転送: エンタープライズ・ファイアウォールの背後にあるアプリケーション・バックエンド・リソースへのモバイル・セキュリティ・アクセス・サーバーを介した暗号化済AppTunnel。
認証: Secure Workspaceアプリケーションによる管理、およびセキュアなワークスペース内のアプリケーション間でのシングル・サインオンの提供。
セキュアなデータ記憶域: ファイル、データベース、アプリケーション・キャッシュおよびユーザー・プリファレンスなどのアプリケーション・データの暗号化済記憶域。
データ漏えいの制御: ファイルの共有、コピーや貼付けを他の信頼できるアプリケーションのみに制限する機能。これにより、電子メール、メッセージ送信、出力および保存などのデータ共有を制限できます。
動的ポリシー・エンジン: 認証頻度、ジオフェンスとタイム・フェンスおよびリモート・ロックとワイプなどの50を超える詳細なアプリケーション制御。
OMSSのシングル・サインオン認証およびユーザーIDのMAFアプリケーション・サービスへの伝播は、ログイン接続にWeb SSO認証サーバー・タイプを使用するように構成されているアプリケーションでのみサポートされます。HTTP Basic、OAuthまたはMobile-Social認証を使用するアプリケーションでは、コンテナ認証が成功した後にMAFアプリケーションにログインする必要があります。これらの認証タイプおよびOMSSでそれらが果たす役割の詳細は、「ログイン接続およびコンテナ化されたMAFアプリケーションへのアクセスに関する必知事項」を参照してください。
コンテナ化プロセスは単純で、MAFアプリケーションを開発する方法は変更されません。実際は、コンテナ化に注意して、アプリケーション・コードを具体的に変更しないでください。MAFアプリケーションは、OMSSコンテナ化を有効にしてデプロイするかどうかに関係なく、同じ方法で開発します。
OMSSコンテナ化を有効にしてプリケーションをデプロイする場合、JDeveloperではOMSSが提供するモバイル・セキュリティ・アプリケーション・コンテナ化ツールを実行して、MAFアプリケーションをコンテナ化します。
デプロイメントの後で、MAFアプリケーション開発者はOMSSシステム管理者とともに、OMSSモバイル・アプリケーション・カタログに追加されたアプリケーションを取得し、適切なポリシーを構成します。詳細は、『Oracle Mobile Security Suiteの管理』の「モバイル・アプリケーションの管理」を参照してください。
ユーザーがコンテナ化されたMAFアプリケーションを起動すると、Secure Workspaceアプリケーションはそれをモバイル・セキュリティ・コンテナにリダイレクトし、そのセッションをMAFアプリケーションに戻す前にSSO認証を実行します。コンテナ化されたMAFアプリケーションでは、内部Webサイトまたはサービスとの接続にVPNは不要です。かわりに、アプリケーションとMobile Security Access Server (MSAS)間でセキュアAppTunnelが確立され、モバイル・デバイス・ユーザーによるアクセス用に登録された、内部サイトおよびサービスにアクセスするためのセキュアなトランスポートが提供されます。
OMSSコンテナ化によるMAFアプリケーションへの影響の詳細は、次の各項を参照してください。
OMSSでMAFアプリケーションをコンテナ化するJDeveloperの手順は、「Oracle Mobile Security Suiteでのデプロイ」を参照してください。
コンテナ化されたMAFアプリケーションによる企業のファイアウォールの背後にあるセキュアなWebサービスへのアクセスの詳細は、「Webサービスおよびコンテナ化されたMAFアプリケーションへのアクセスに関する必知事項」を参照してください。
コンテナ化されたMAFアプリケーションの認証プロセスの詳細は、「コンテナ化されたMAFアプリケーションの認証プロセスの概要」を参照してください。
モバイル・デバイスおよびワークスペース・コンテナに関連するOMSS管理タスクの詳細は、OMSSドキュメント・ライブラリの次のリソースのリストを参照してください。
OMSSのバックグラウンド情報は、『Oracle Mobile Security Suiteの管理』の「Oracle Mobile Security Suiteの理解」を参照してください。
システム管理者がOMSSモバイル・セキュリティ・マネージャ・コンソールを使用して、MAFアプリケーション・ユーザーのモバイル・デバイスおよびワークスペースを登録する方法の詳細は、『Oracle Mobile Security Suiteの管理』の「デバイスおよびワークスペースの登録」を参照してください
システム管理者がOMSSモバイル・アプリケーション・カタログを使用して、デバイスおよびワークスペースにプロビジョニングされたMAFアプリケーションを管理する方法の詳細は、『Oracle Mobile Security Suiteの管理』の「モバイル・アプリケーションの管理」を参照してください。
システム管理者がOMSSモバイル・セキュリティ・マネージャ・コンソールを使用して、MAFアプリケーション機能によって共有される企業ファイルへのアクセスを管理する方法の詳細は、『Oracle Mobile Security Suiteの管理』の「モバイル・セキュリティ・ポリシーの管理」を参照してください。
リソースおよび認証の保護に関連するMSAS管理タスクの詳細は、OMSSドキュメント・ライブラリの次のリソースのリストを参照してください。
MSASのバックグラウンド情報は、『Oracle Mobile Security Access Serverの管理』の「モバイル・セキュリティ・アクセス・サーバー・スタート・ガイド」を参照してください。
システム管理者がプロキシ・アプリケーションを作成して、MAFアプリケーションによってアクセスされる保護されたリソース用の転送プロキシURLを定義する方法の詳細は、『Oracle Mobile Security Access Serverの管理』の「モバイル・セキュリティ・アクセス・サーバー・アプリケーションの管理」を参照してください。
システム管理者が事前定義済のセキュリティ・ポリシーを転送プロキシURLにアタッチして、保護されたWebサービスへのMAFアプリケーションによるアクセスを保護する方法の詳細は、『Oracle Mobile Security Access Serverの管理』の「モバイル・セキュリティ・アクセス・サーバー・リソースの保護」を参照してください。
システム管理者がMSAS認証エンド・ポイントを構成して、Secure WorkspaceアプリケーションによるMAFアプリケーション・ユーザーのモバイル・デバイスの認証を処理する方法の詳細は、『Oracle Mobile Security Access Serverの管理』の「モバイル・セキュリティ・アクセス・サーバー・インスタンスの構成」を参照してください。