ヘッダーをスキップ
Oracle® Enterprise Pack for Eclipse Oracle Mobile Application Framework (OEPE Edition)でのモバイル・アプリケーションの開発
リリース2.0.1
E57593-01
  目次へ移動
目次

前
 
次
 

1 Oracle Mobile Application Frameworkの概要

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

このリリース12c (12.1.3.1)では、Oracle Enterprise Pack for Eclipse (OEPE)により、Oracle Mobile Application Framework (MAF)アプリケーションの作成、構成および実行用に設計されたEclipse IDEのプラグインのセットが提供されます。

この章には次の項が含まれます:

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

Oracle Mobile Application Frameworkは、ハイブリッド・モバイル・アーキテクチャで、Webビューのユーザー・インタフェースのレンダリングに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ビューがあるため、機能は相互に独立しています。1つのMAFアプリケーションを、いくつかの異なる開発チームにより作成されたアプリケーション機能が集められたものとすることができます。アプリケーション機能を他のMAFアプリケーション機能で再利用することもできます。MAFアプリケーション自体を別のアプリケーションのベースとして再利用できるため、ISV(独立系ソフトウェア・ベンダー)は特定の顧客が構成できるアプリケーションを作成できるようになります。

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

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

図1-2に示されるように、モバイル・アプリケーション・フレームワークはデバイスにデプロイされたシン・ネイティブ・コンテナです。これは、モデル・レイヤーとコントローラ・ロジックからプレゼンテーションを区別するmodel-view-controller (MVC)開発アプローチを示しています。シン・ネイティブ・コンテナでは、MAFアプリケーションは、両方のプラットフォーム(iOSとAndroid)上でネイティブ・アプリケーションとして機能でき、ローカルSQLiteデータベース、Cordova APIおよびサーバー側リソースと相互作用できます。また、プッシュ通知も可能になります。

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

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

ネイティブ・コンテナと相互作用するリソースには次のものがあります。

デバイス・ネイティブ・コンテナは、次のサーバー側リソースへのアクセスを可能にします。

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

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


注意:

アプリケーション開発チームの規模および組織に応じて、一人の人が多くの異なるロールを務める場合があります。


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

MAFアプリケーションの構築の手順は、次のようなものです。

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

  2. 設計: ユースケースの構成後、アプリケーションのタスク・フローのすべての手順(および関連するユーザー・ビュー)を示すワイヤーフレームを作成します。タスク・フローの作成時には、様々なユーザーがどのように、いつ相互作用するかを考慮します。表示データ(プッシュ通知など)はタスクの完了に十分か。十分でない場合、タスクではどのくらいのデータ・エントリが必要か。これらのタスクをモバイル・コンテキスト内で組み立てるには、デスクトップ・アプリケーションを使用して完了タスクをモバイル・アプリケーションと比較します。1つのデスクトップ・アプリケーションは、いくつかの異なるモバイル・アプリケーション(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アプリケーションは、デバイスまたはシミュレータにデプロイされるまで実行できないため、MAFアプリケーションをエンド・ユーザーへの公開のコンテキストだけでなくテストおよびデバッグの目的としてもデプロイします。開発の段階に応じて、資格証明署名オプション(デバッグまたはリリース)を指定します。テスト用に、アプリケーションをモバイル・デバイスまたはシミュレータにデプロイします。本番では、Apple App StoreやGoogle Playなどのアプリケーション・マーケットへの配布のためパッケージ化します。

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

  5. テストおよびデバッグ: テストおよびデバッグの段階では、アプリケーションをデバッグモードで様々なシミュレータおよびデバイスにデプロイして最適化し、Oracle Enterprise Pack for Eclipse (OEPE)およびプラットフォーム固有のツールにより提供されるデバッグ出力を確認します。詳細は、第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章「開発環境の設定」を参照)後、「ファイル」→「新」→「MAFサンプル」を選択して、MAFサンプル・アプリケーションを確認できます。

WorkBetterアプリケーションや他の多くのサンプル・アプリケーションは、Webサービスを使用してアプリケーションがどのようにリモート・データとインタフェースし、SQLiteデータベースと相互作用できるかを含めた、MAFアプリケーションの機能の範囲を示します。サンプル・アプリケーションには、次のデモンストレーションが含まれます。

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