ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Mobile Application Frameworkでのモバイル・アプリケーションの開発
2.0.1
E57592-01
  目次へ移動
目次

前
 
次
 

1 Oracle Mobile Application Frameworkの概要

この章では、Oracle Mobile Application Framework (MAF)の概要を紹介し、iOSとAndroidの両方の電話およびタブレット上でネイティブに実行するモバイル・アプリケーションを作成可能なソリューションについて説明します。

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

1.1 モバイル・アプリケーション・フレームワークの概要

Oracle Mobile Application Frameworkは、ハイブリッド・モバイル・アーキテクチャで、ユーザー・インタフェースのレンダリングにHTML5およびCSSを使用し、アプリケーション・ビジネス・ロジックにJavaを使用し、GPSアクティビティや電子メールなどのデバイス機能へのアクセスにApache Cordovaを使用します。MAFではこれらのクロス・プラットフォーム・テクノロジを使用するため、プラットフォーム固有のツールを使用する必要なく、AndroidとiOSの両方のデバイス用に同じアプリケーションを構築できます。これらをデバイスにデプロイした後、MAFアプリケーションは、Objective CやAndroid SDKなどのプラットフォーム固有のツールを使用して作成されたアプリケーションのように動作します。さらに、MAFを使用すると、スマートフォンまたはタブレット用に同じアプリケーションを構築できるため、同じアプリケーションのビジネス・ロジックを再利用して、様々なタイプのデバイス、画面サイズおよび機能をターゲットにできます。

MAFアプリケーションのコンテンツは、アプリケーション機能として知られる1つ以上の埋込みアプリケーションで構成されており、これらのアプリケーションは、図1-1に示すように、アプリケーションのSpringboardまたはナビゲーション・バー内のアイコンとして表されます。

図1-1 モバイル・アプリケーションのSpringboard

このイメージについては周囲のテキストで説明しています。

アプリケーション機能は、本質的に、モバイル・アプリケーションを構築するブロックです。MAFアプリケーションに統合された各アプリケーション機能によって一連の特定のタスクが実行され、これらの機能をグループ化して、相互の機能が補完されるようにできます。たとえば、顧客のコンタクト先を提供するアプリケーション機能を、製品在庫用のアプリケーション機能と組み合せることができます。各アプリケーション機能には独自クラス・ローダーおよびWebビュー(基本的には、ブラウザとして機能するネイティブUIコンポーネント)があるため、機能は相互に独立しており、1つのMAFアプリケーションを、いくつかの異なる開発チームにより作成されたアプリケーション機能が集められたものとすることができます。また、アプリケーション機能を他のMAFアプリケーションで再利用することもできます。MAFアプリケーション自体を別のアプリケーションのベースとして再利用できることにより、ISV (独立系ソフトウェア・ベンダー)は、特定の顧客が構成できるアプリケーションを作成できます。

デバイス上でローカルに実行するハイブリッド・モバイル・アプリケーションに加え、モバイル・アプリケーションおよび使用可能なリソースの要件に応じて、アプリケーション機能を次のモバイル・アプリケーション・タイプのいずれかとして実装できます。

1.2 モバイル・アプリケーション・フレームワーク・ランタイム・アーキテクチャについて

図1-2に示すように、モバイル・アプリケーション・フレームワークは、デバイスにデプロイされたシン・ネイティブ・コンテナです。これは、モデル・レイヤーとコントローラ・ロジックからプレゼンテーションを区別するmodel-view-controller (MVC)開発アプローチに従っています。シン・ネイティブ・コンテナによって、MAFアプリケーションが両方のプラットフォーム(iOSとAndroid)でネイティブ・アプリケーションとして機能できます。プッシュ通知も有効になります。

図1-2 Oracle Mobile Application Frameworkランタイム・アーキテクチャ

この図は周囲のテキストで説明しています

ネイティブ・コンテナと相互作用するリソースは、次のとおりです。

デバイス・ネイティブ・コンテナを使用すると、次のサーバー側リソースにアクセスできます。

1.3 Oracle Mobile Application Frameworkを使用したアプリケーションの開発について

モバイル・アプリケーションのコンポーネントは単一の開発者が作成できますが、アプリケーションは、様々な開発ロールによって提供されたリソースから構築することが一般的です。アプリケーション開発者は、アプリケーション・データおよびユーザー・インタフェース・ロジックを、アプリケーションまたはアプリケーション機能で使用できる再利用可能なプログラムとして構築します。アプリケーション・アセンブラでは様々なアプリケーション機能を収集して単一のアプリケーションにし、ナビゲート可能なわかりやすい順序に配置します。アプリケーション・デプロイメントは、アプリケーション・デプロイヤによって制御されます。たとえば、MAFアプリケーションのデプロイメントで、証明書およびApple App StoreやGooglePlayなどのパブリック・ベンダー・サイトへのアップロードが必要となる場合があります。


注意:

アプリケーション開発チームのサイズや所属する組織に応じて、1人の個人に複数の異なるロールが割り当てられる場合があります。


一般的に、MAFアプリケーションを構築するときには、次のアクティビティを実行します。

MAFアプリケーションを構築するために実行する手順は、次のようなものです。

  1. 要件の収集: ユーザーが誰で、その不可欠なタスクは何か、およびこれらのタスクはどのような場所やコンテキストで実行するかを説明するユーザー・データを収集して、モバイル・ユースケース(またはユーザー・シナリオ)を作成します。タスクの実行に必要な情報のタイプ、ユーザーが使用できる情報、情報のアクセス方法や提供方法などの要因を考慮します。

  2. 設計: ユースケースを作成した後、アプリケーションのタスク・フロー内のすべてのステップ(および関連するユーザー・ビュー)を示すワイヤフレームを作成します。タスク・フローを作成するときには、ユーザー間でいつどのように相互作用が発生するかを考慮します。データの表示(プッシュ通知など)は、タスクを実行するのに十分ですか。そうでない場合、このタスクにはどの程度のデータ入力量が必要でしょうか。モバイル・コンテキスト内でこれらのタスクを構成するには、デスクトップ・アプリケーションを使用したタスクの実行とモバイル・アプリケーションを使用したタスクの実行とを比較します。単一のデスクトップ・アプリケーションで、複数の異なるモバイル・アプリケーション(または、MAFのコンテキストでは、モバイル・アプリケーションに埋め込まれた複数の異なるアプリケーション機能)にパーティション化された複数の機能を有効化できます。一般的に、モバイル・アプリケーションは短時間(一度に2分程度)で集中的に使用されるため、簡単にナビゲートでき、モバイル・デバイスの制限されたデータ入力に対応している必要があります。

    設計および開発段階中は、モバイル・アプリケーションは、複雑なWebサービスから提供されるデータ量を消費できない場合があるため、モバイル固有のサーバー側リソースのセットが必要な場合があることに注意してください。さらに、モバイル・アプリケーションには、サービスによって戻されるデータを処理するための広範なクライアント側ロジックが必要になる場合もあります。サーバー側のモバイル・アプリケーションに送られてくるデータの形状を指定して、大量すぎるデータを強制的にクライアントで処理させないことが、通常は最適です。

  3. 開発: アプリケーションに最適なテクノロジを選択します。MAF Webビューでは、Apache Trinidad (ADFモバイル・ブラウザ)またはADF Facesリッチ・クライアントのコンポーネントを使用して作成可能なリモート・コンテンツがサポートされていますが、これらのアプリケーションではオフライン使用がサポートされていません。MAF AMXで作成されたアプリケーションは、クライアント上で実行されますが、デバイス・サービスに統合されているため、エンド・ユーザーは、ファイルを表示したりGPSサービスを利用できるだけでなく、電話番号をタップして電話を発信したりテキストを送信して、相互に共同作業を行うこともできます。MAF AMXコンポーネント・セットにはデータ資格化ツール(DVT)が含まれており、このツールを使用すると、分析を追加してモバイル画面上で適切にレンダリングできます。MAF AMXアプリケーションでは、リモート・ソースからデータを転送してローカルで格納することでオフライン使用をサポートしているため、エンド・ユーザーは、接続されていないときに情報を表示できます。

    MAFでは、基本的なアプリケーション自体だけでなく、MAF AMXやローカルHTMLコンテンツから実装されるアプリケーション機能も構築する、一連のウィザードおよびエディタが提供されています。これらのツールを使用すると、モバイル・アプリケーションの構成やそのアプリケーション機能の組込みのための識別子ファイル、スプラッシュ画面用の一連のデフォルト・イメージ、Springboard、サポートされているプラットフォームのフォーム・ファクタに適切なナビゲーション・バー・アイテムなどのアーティファクトが提供されます。

    詳細は、次を参照してください。

  4. デプロイ: MAFアプリケーションは、デバイスまたはシミュレータにデプロイされるまで実行できないため、エンド・ユーザーへの公開というコンテキストだけでなく、テストおよびデバッグ目的でもデプロイします。開発のフェーズに応じて、資格証明署名オプション(デバッグまたはリリース)を指定します。テストの場合は、アプリケーションをモバイル・デバイスまたはシミュレータにデプロイします。本番の場合は、Apple App StoreやGoogle Playなど、アプリケーション・マーケットへの配布用にパッケージ化します。

    アプリケーションをデプロイするには、最初に、ターゲット・プラットフォームおよびそのデバイスとシミュレータを記述するデプロイメント・プロファイルを作成します。デプロイメント・プロファイルの作成には、異なる向き(縦または横)や異なるデバイス(電話またはタブレット)でアプリケーションに使用する、スプラッシュ画面および起動アイコンの選択が含まれます。詳細は、第19章「モバイル・アプリケーションのデプロイ」を参照してください。

  5. テストおよびデバッグ: テストおよびデバッグのステージでは、アプリケーションを様々なシミュレータとデバイスにデバッグ・モードでデプロイした後、JDeveloperおよびプラットフォーム固有のツールで提供されるデバッグ出力を確認して、アプリケーションを最適化します。詳細は、第22章「MAFアプリケーションのテストおよびデバッグ」を参照してください。

  6. 保護: アプリケーションの開発プロセス全体を通して、セキュリティ上のリスクを評価します。モバイル・アプリケーションには固有のセキュリティ上の問題が存在すると同時に、リモートで供給されるデータにアクセスするすべてのアプリケーションと同じ脆弱性も共有しています。クライアント側のセキュリティを保証するために、MAFでは次のような機能を提供しています。

    • クロスサイト・スクリプティング(XSS)やクロスサイト・リクエスト・フォージェリ(CSRF)などのインジェクション攻撃を防ぐホワイトリスト

    • SQLiteデータベースへのアクセスを保護する強いパスワードを生成し、そのデータを暗号化および復号化するAPI

    • SSLをサポートする一連のWebサービス・ポリシー

    • SSLでのデプロイメントを強制する、信頼性のある認証局のcacertsファイル

    MAFのセキュリティ構成には、Oracle Access Mobile and Socialサーバーなどのログイン・サーバーまたは基本的なHTTP認証メカニズムによって保護されているいずれかのWebページの選択や、セッション管理(セッション・タイムアウトおよびアイドル・タイムアウト)の構成が含まれ、また、アプリケーションのユーザー・ロールをホストするアクセス制御サービスのWebサービスへのエンド・ポイントの設定も含まれます。詳細は、第21章「モバイル・アプリケーションの保護」を参照してください。

  7. サーバー側データへのアクセスの有効化: 基本レベルで想定どおりにアプリケーションが機能することを確認したら、サーバー側データにアクセスするためにJavaコードを実装したり、データ・コントロールを使用できます。詳細は、第1.3.1項「接続アプリケーションおよび切断されたアプリケーションについて」を参照してください。

  8. 再デプロイ: 後続のデプロイメントでは、アプリケーションにセキュリティを追加し、サーバー側データへのアクセスを有効にした後、アプリケーション・デプロイメントが想定どおりに実行され、アプリケーションで最後のテストおよびデバッグを行う準備ができていることを確認します。

  9. 再テストおよびデバッグ: 最終回のテストとデバッグでは、セキュリティとサーバー側データのアクセス機能に重点を置き、これらの機能をアプリケーションと統合したときに、エラーや予期しない動作が発生しないことを確認します。

  10. 公開: アプリケーションを本番環境にデプロイする場合、通常は、エンタープライズ・サーバー、Apple App StoreまたはGoogle Playへの公開が行われます。MAFアプリケーションを公開すると、エンド・ユーザーは自分のモバイル・デバイスにダウンロードしたり、指定されたアイコンをタッチしてアクセスできるようになります(付録D「MAFアプリケーションの使用方法」を参照)。アプリケーション機能は指定された表示アイコンで表され、エンド・ユーザーやユーザーのデバイスに適した表示が行われます。

1.3.1 接続アプリケーションおよび切断されたアプリケーションについて

MAFアプリケーションは、ネットワークへの接続中に機能しますが、携帯電話の信号がないような切断モードでも機能します。次に例を示します。

  • Webサービス・データ・コントロールによって直接支えられているユーザー・インタフェースを含む基本的な接続アプリケーション(このWebサービス・データ・コントロールは、サーバーでホストされているWebサービスを起動します)。

  • 中程度の(または複雑な)データ・サービスを使用する接続アプリケーション。このタイプのアプリケーションの場合、データ・コントロールにより公開されたJavaクラス(POJO)は、ユーザー・インタフェースとサービス・データ・ソースの間のデータ問合せをディスパッチします。

  • SQLiteデータベースに格納されたデータを操作する、切断されたアプリケーションでは、アプリケーション・ユーザーがオフラインで作業できます。アプリケーションはWebサービスからデータを取得する必要がある場合がありますが、接続が失われている場合、接続がリストアされると、データはローカルに格納され、同期されます。

1.4 サンプル・アプリケーション

デプロイメント環境の設定(第2章「開発環境の設定」を参照)が完了したら、jdev_install/jdeveloper/jdev/extensions/oracle.maf/Samplesディレクトリ内のPublicSamples.zipファイルにあるMAFサンプル・アプリケーションを実行できます。

図1-3に示すようなWorkBetterアプリケーションなどのサンプル・アプリケーションは、アプリケーションでWebサービスを使用してリモート・データと連動させたり、SQLiteデータベースと相互作用する方法など、MAFアプリケーション機能の範囲を示しています。サンプル・アプリケーションは次の方法を示しています。

詳細は、付録F「サンプルのモバイル・アプリケーション・フレームワーク・アプリケーション」を参照してください。

図1-3 WorkBetterサンプル・アプリケーション

このイメージについては周囲のテキストで説明しています。