ヘッダーをスキップ

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項「モバイル・アプリケーション・フレームワークの概要」

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

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

- 第1.4項「サンプル・アプリケーション」

## 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(独立系ソフトウェア・ベンダー)は特定の顧客が構成できるアプリケーションを作成できるようになります。

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

- モバイルWebアプリケーション: これらのアプリケーションはサーバー上にホストされます。コードはプラットフォーム間で移植可能ですが、これらのアプリケーションはデバイスのブラウザによって管理されるため、デバイス機能およびローカル・ストレージへのアクセスは制限されることがあります。

- ネイティブ・アプリケーション: これらのアプリケーションはXcodeまたはAndroid SDKのいずれかによって作成されるため、両プラットフォームへの対応の点で制限されます。コードの再利用も同様に制限されます。

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

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

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

- Webビュー: モバイル・デバイスのWebエンジンを使用してWebベースのコンテンツを表示して処理します。MAFアプリケーションでは、Webビューはアプリケーション・マークアップをHTML 5としてレンダリングすることによってユーザー・インタフェースを提供します。次のコンテンツ・タイプのいずれかを実装して、モバイル・アプリケーション機能用のユーザー・インタフェースを作成できます。様々なコンテンツ・タイプから実装されたアプリケーション機能は、同じモバイル・アプリケーション内に共存でき、相互に作用できます。

  - MAF AMXビュー: デバイスのプラットフォーム固有の言語で作成されたアプリケーションのように、コンテンツがMAF Application Mobile XML (AMX)ビューとして実装されたアプリケーションはデバイスに常駐し、最も信頼できるデバイス・ネイティブなユーザー操作性を提供します。MAFでは、モバイル・デバイスのフォーム・ファクタに合せたコンポーネントからユーザー・インタフェースを宣言的に作成できるコード・エディタのセットが提供されます。これらのコンポーネントを使用して、リスト・ビューなどのページ・レイアウトおよび入力フィールドなどの入力コンポーネントを作成できます。MAF AMXビューを開発する際には、データ・コントロールを使用できます。これらのコンポーネントを使用すると、データ・バインドされたユーザー・インタフェース・コンポーネントを宣言的に作成し、Webサービスおよびモバイル・デバイス(カメラ、GPSまたは電子メールなど)のサービスにアクセスできます。実行時に、WebビューのJavaScriptエンジンが、MAF AMXビュー定義をHTML5およびJavaScriptにレンダリングします。

    コントローラ: コントローラはモバイル・アプリケーションのページ間のフローを管理します。コントローラを使用するとアプリケーションのフローをより小さい再利用可能なタスク・フローに分割し、メソッド・コールや判断点などの非ビジュアルなコンポーネントを含めることができます。詳細は、第5.2項「タスク・フローの作成」を参照してください。

  - サーバーHTML: ユーザー・インタフェースは、アプリケーション機能のWebビュー内で開くことができる、サーバーが生成したWebページから提供されます。モバイル・アプリケーション・フレームワークのコンテキスト内で、このコンテンツ・タイプはリモートURLと呼ばれます。これらのブラウザ・ベースのアプリケーションのリソースは、デバイスには常駐しません。そのかわりに、ユーザー・インタフェース、ページ・フロー・ロジック、ビジネス・ロジックがリモート・サーバーから提供されます。これらのリモートでホストされたWebアプリケーションの1つをWebビュー内で開くことができるとき、Cordova JavaScript APIを使用してカメラやGPS機能などの指定されたデバイス・ネイティブ機能またはサービスにアクセスできます。リモートURLコンテンツを使用してアプリケーションを実装する際、モバイルの使用向けに最適化された既存のブラウザ・ベースのアプリケーションを使用するか、特定のタイプのモバイル・デバイスに対して特別に記述されたアプリケーションを使用できます。デスクトップまたはタブレットのブラウザ内で実行できるアプリケーションでは、Oracle ADF Facesのリッチ・クライアント・ベースのコンポーネントにより作成されたアプリケーションを使用してリモートURLコンテンツを実装できます。特別に携帯電話用を対象としたアプリケーションでは、リモートURLコンテンツはMAFを使用して作成されたWebページから提供できます。MAFを使用して作成されたアプリケーションは多様なスマートフォン上でレンダリングできるだけでなく、Apache Trinidad JavaServer Faces (JSF)コンポーネントで構成されたユーザー・インタフェースおよび動的に選択されたスタイル・シートを使用してフィーチャー・フォンで使用できる縮小された機能に正常に下げることができます。詳細は、第12章「リモートURLを使用したアプリケーション機能コンテンツの実装」を参照してください。

    注意: コンテンツがリモートで提供されるため、アプリケーションはサーバー接続がアクティブのままである場合にのみ使用できます。

  - ローカルHTML: MAFアプリケーションの一部としてデバイスで実行するHTMLページ。ローカルHTMLファイルは、CordovaおよびJavaScript APIを介して、デバイス・ネイティブ機能サービスにアクセスできます。

- Cordova: デバイスのネイティブ機能およびサービスをモバイル・アプリケーションに統合するApache CordovaのJavaScript API。これらのAPIをJavaコードから(MAFモバイル・アプリケーションをローカルHTMLとして実装する場合にはJavaScriptを使用して)プログラム的にアクセスできますが、MAFはこれらのAPIをデータ・コントロールとしてパッケージ化するため、MAF AMXページの作成時にデバイス統合を宣言的に追加できます。

- Java仮想マシン: JavaはMAFアプリケーション用のJavaランタイム環境を提供します。このJava仮想マシン(JVM)は、デバイス・ネイティブなコードに実装され、MAFアプリケーションの各インスタンスに、ネイティブ・アプリケーション・バイナリの一部として埋め込まれます(コンパイルされます)。JVMは、JavaME Connected Device Configuration (CDC)仕様に基づいています。

  - ビジネス・ロジック - JavaはMAFアプリケーションでのビジネス・ロジックを有効にします。マネージドBeanは、サーバーから戻されたデータを処理するための追加のビジネス・ロジックの提供など、モバイル・アプリケーション・フレームワークの機能拡張のために作成できるJavaクラスです。マネージドBeanは、埋込みのJavaサポートによって実行され、JavaME CDC仕様に準拠しています。詳細は、第7章「バインディングの使用とデータ・コントロールの作成」を参照してください。

  - モデル: ビジネス・ロジック・コンポーネントをユーザー・インタフェースに接続するバインディング・レイヤーが含まれます。また、このバインディング・レイヤーでは、SOAPベースのWebサービスを起動するための実行ロジックが提供されます。詳細は、第1.3.1項「接続アプリケーションおよび非接続アプリケーションについて」を参照してください。

  - JDBC: JDBC APIでは、モデル・レイヤーがCRUD (作成、読取り、更新および削除)操作により、暗号化されたSQLiteデータベースのデータにアクセスできます。

- アプリケーション構成とは、Webサービス用のURLエンドポイントやリモートURL接続など、アプリケーション構成をダウンロードおよびリフレッシュできるサービスのことです。アプリケーション構成サービスは、WebDavベースのサーバー側サービスから構成情報をダウンロードします。詳細は、第9章「MAFアプリケーションで使用するエンド・ポイントの構成」を参照してください。

- 資格証明管理、シングル・サインオン(SSO)およびアクセス・コントロール: モバイル・アプリケーション・フレームワークは、Oracle Access Management Mobile and Social (OAMMS) IDM SDKにより、ユーザー認証および資格証明管理を処理します。MAFアプリケーションはオフライン認証を実行するので、接続されているときにユーザーがアプリケーションにログインすると、MAFがユーザー名およびパスワードをデバイスのローカルで管理するため、認証サーバーへの接続が不可になった場合にもユーザーはアプリケーションへのアクセスを継続できます。MAFは、ローカルに保存された情報およびローカルのSQLiteデータベースに保存されたデータを暗号化します。ログイン・サーバーに対する認証後、ユーザーはこの接続によって保護されているすべてのアプリケーション機能にアクセスできるようになります。MAFは、アプリケーション機能(またはアプリケーション機能の特定のファンクション)へのアクセスを制限することによって、アクセス・コントロールの概念もサポートします。リモートで提供されるWebコンテンツには、MAFはホワイトリストを使用して、確実に目的のURIのみがアプリケーション機能のWebビュー内で開く(およびデバイス機能にアクセスする)ことができるようにします。詳細は、第21章「モバイル・アプリケーションの保護」を参照してください。

- プッシュ・ハンドラ: MAFアプリケーションがiOSまたはAndroid通知サーバーからイベントを受信できるようにします。Javaレイヤーが通知処理を行います。

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

- 暗号化されたSQLiteデータベース: 埋込みSQLiteデータベースは軽量のクロスプラットフォームのリレーショナル・データベースで、ローカルに格納されているデータを保護し、JDBCを使用してコールされます。このデータベースは暗号化されるため、デバイスが紛失したり盗難にあった場合にデータを保護します。正しいユーザー名およびパスワードを入力したユーザーのみがローカル・データベースのデータにアクセスできます。詳細は、第10章「ローカル・データベースの使用方法」を参照してください。

- デバイス・サービス: デバイスにネイティブで、Cordova APIによりアプリケーション機能に統合されたサービスおよび機能。

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

- 構成サーバー: アプリケーション構成サービスによって使用される構成ファイルをホストするWebDavベースのサーバー。構成サーバーは、リファレンス実装として提供されます。J2EEサーバー上でホストされている共通のWebDavサービスはどれでも、この目的で使用できます。詳細は、第9章「MAFアプリケーションで使用するエンド・ポイントの構成」を参照してください。

- サーバーが生成したHTML: ブラウザ・ベースのアプリケーション機能に使用されるリモート・サーバーにホストされるWebコンテンツ。詳細は、第12章「リモートURLを使用したアプリケーション機能コンテンツの実装」を参照してください。

- APNSおよびGCMプッシュ・サービス: Apple Push Notification Service (APNS)およびGoogle Cloud Messaging (GCM)は、MAFアプリケーションに通知イベントを送信する通知プロバイダです。

- SOAP Webサービス: リモートでホストされるSOAPベースのWebサービス。これらのサービスは、Javaレイヤーを介してアクセスされます。

  注意: MAF AMXで作成されたアプリケーション機能は、データ・コントロールを介してSOAPベースのデータ・サービスにアクセスします。RESTサービス・アダプタを使用する場合、データ・コントロールは不要です。

## 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、サポートされているプラットフォームのフォーム・ファクタに適したナビゲーション・バー・アイテムなどのアーティファクトが提供されます。

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

   - 第3章「モバイル・アプリケーション開発のスタート・ガイド」

   - 第4章「モバイル・アプリケーションの定義」

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アプリケーションの機能の範囲を示します。サンプル・アプリケーションには、次のデモンストレーションが含まれます。

- 基本的なHelloWorldアプリケーションの作成方法

- アプリケーションがライフサイクル・イベントに反応できるようにする方法

- スキニングの使用方法

- MAF AMXアプリケーション機能の開発方法(ユーザー・インタフェース、ナビゲーション、マネージドBean、データ変更イベントなど)

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