(57)【特許請求の範囲】
【請求項１】
サーバが、モバイル装置からの第１のビューに対する要求に応じた第１のページ定義に基づいて第１のビューコンポーネントを選択するステップと、
前記サーバが、前記第１のビューコンポーネントを前記第１のページ定義と併合し、当該併合結果に第１のビューＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ）および第１のターゲットビューＵＲＩを追加することにより、第１のビュー定義を生成するステップと、
前記モバイル装置が、前記第１のビュー定義を、データ通信リンクを介して前記サーバから受信するステップと、
前記モバイル装置が、前記第１のビュー定義をメモリに、第１のアドレスによって識別された場所で格納するステップと、
前記モバイル装置が、テーブルにおいて前記第１のアドレスを前記第１のビューＵＲＩにマッピングするステップと、
前記モバイル装置が、オフライン中に、前記第１のビューＵＲＩにマッピングされた前記第１のアドレスで前記メモリから前記第１のビュー定義を読み出すステップと、
前記モバイル装置が、オフライン中に、読み出された前記第１のビュー定義をレンダリングすることにより前記第１のビューを表示するステップとを含み、
前記第１のビューは、第２のビューを要求するためにユーザにより起動されるアクション可能なビューコンポーネントを含み、
前記第１のターゲットビューＵＲＩは、前記アクション可能なビューコンポーネントにリンクされており、
前記モバイル装置が、オフライン中に、前記第１のビューにおいて表示されている前記アクション可能なビューコンポーネントの起動に応答して、前記メモリに格納された第２のビュー定義を読み出すステップと、
前記モバイル装置が、オフライン中に、読み出された前記第２のビュー定義をレンダリングすることにより前記第２のビューを表示するステップとを含む、方法。
【請求項２】
前記サーバが、オフラインになる前の前記モバイル装置からの前記第２のビューに対する要求に応じた第２のページ定義に基づいて第２のビューコンポーネントを選択するステップと、
前記サーバが、前記第２のビューコンポーネントを前記第２のページ定義と併合し、当該併合結果に前記第１のターゲットビューＵＲＩである第２のビューＵＲＩと第２のターゲットビューＵＲＩとを追加することにより、前記第２のビュー定義を生成するステップと、
前記モバイル装置が、オフラインになる前に、前記第２のビュー定義を、前記データ通信リンクを介して前記サーバから受信するステップと、
前記モバイル装置が、前記第２のビュー定義を前記メモリに、第２のアドレスによって識別された場所で格納するステップと、
前記モバイル装置が、前記テーブルにおいて前記第２のアドレスを前記第２のビューＵＲＩにマッピングするステップとを含み、
前記第２のビュー定義を読み出すステップは、前記第２のビューＵＲＩにマッピングされた前記第２のアドレスで前記メモリから前記第２のビュー定義を読み出すことを含む、請求項１に記載の方法。
【請求項３】
命令をモバイル装置に、そのメモリへの格納のために送信するステップを含む、方法であって、前記モバイル装置は、前記命令の実行に応答して方法を実施するように構成されており、前記方法は、
第１のビュー定義を、データ通信リンクを介してサーバから受信するステップを含み、
前記第１のビュー定義は、前記モバイル装置からの第１のビューに対する要求に応じた第１のページ定義に基づいて選択された第１のビューコンポーネントと前記第１のページ定義との併合結果に、第１のビューＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ）と第１のターゲットビューＵＲＩとを追加することにより生成され、
前記方法は、
前記第１のビュー定義をメモリに、第１のアドレスによって識別された場所で格納するステップと、
テーブルにおいて前記第１のアドレスを前記第１のビューＵＲＩにマッピングするステップと、
オフライン中に、前記第１のビューＵＲＩにマッピングされた前記第１のアドレスで前記メモリから前記第１のビュー定義を読み出すステップと、
オフライン中に、読み出された前記第１のビュー定義をレンダリングすることにより前記第１のビューを表示するステップとをさらに含み、
前記第１のビューは、第２のビューを要求するためにユーザにより起動されるアクション可能なビューコンポーネントを含み、
前記第１のターゲットビューＵＲＩは、前記アクション可能なビューコンポーネントにリンクされており、
前記方法は、
オフライン中に、前記第１のビューにおいて表示されている前記アクション可能なビューコンポーネントの起動に応答して、前記メモリに格納された第２のビュー定義を読み出すステップと、
オフライン中に、読み出された前記第２のビュー定義をレンダリングすることにより前記第２のビューを表示するステップとをさらに含む、方法。
【請求項４】
オフラインになる前に、前記第２のビュー定義を、前記データ通信リンクを介して前記サーバから受信するステップをさらに含み、
前記第２のビュー定義は、前記モバイル装置からの前記第２のビューに対する要求に応じた第２のページ定義に基づいて選択された第２のビューコンポーネントと前記第２のページ定義との併合結果に前記第１のターゲットビューＵＲＩに対応する第２のビューＵＲＩと第２のターゲットビューＵＲＩとを追加することにより生成され、
前記方法は、
前記第２のビュー定義を前記メモリに、第２のアドレスによって識別された場所で格納するステップと、
前記テーブルにおいて前記第２のアドレスを前記第２のビューＵＲＩにマッピングするステップとをさらに含み、
前記第２のビュー定義を読み出すステップは、前記第２のビューＵＲＩにマッピングされた前記第２のアドレスで前記メモリから前記第２のビュー定義を読み出すことを含む、請求項３に記載の方法。
【請求項５】
前記方法は、前記テーブルにおいて、各アドレスにマッピングされているターゲットビューＵＲＩを識別するステップをさらに含む、請求項３に記載の方法。
【請求項６】
前記識別されたターゲットビューＵＲＩを示すように前記第１のビュー定義を更新するステップをさらに含む、請求項５に記載の方法。
【請求項７】
命令を格納するメモリであって、モバイル装置が前記命令の実行に応答して方法を実施し、前記方法は、
第１のビュー定義を、データ通信リンクを介してサーバから受信するステップを含み、
前記第１のビュー定義は、前記モバイル装置からの第１のビューに対する要求に応じた第１のページ定義に基づいて選択された第１のビューコンポーネントと前記第１のページ定義との併合結果に、第１のビューＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ）と第１のターゲットビューＵＲＩとを追加することにより生成され、
前記方法は、さらに、
前記第１のビュー定義をメモリに、第１のアドレスによって識別された場所で格納するステップと、
テーブルにおいて前記第１のアドレスを前記第１のビューＵＲＩにマッピングするステップと、
オフライン中に、前記第１のビューＵＲＩにマッピングされた前記第１のアドレスで前記メモリから前記第１のビュー定義を読み出すステップと、
オフライン中に、読み出された前記第１のビュー定義をレンダリングすることにより前記第１のビューを表示するステップとを含み、
前記第１のビューは、第２のビューを要求するためにユーザにより起動されるアクション可能なビューコンポーネントを含み、
前記第１のターゲットビューＵＲＩは、前記アクション可能なビューコンポーネントにリンクされており、
前記方法は、さらに、
オフライン中に、前記第１のビューにおいて表示されている前記アクション可能なビューコンポーネントの起動に応答して、前記メモリに格納された第２のビュー定義を読み出すステップと、
オフライン中に、読み出された前記第２のビュー定義をレンダリングすることにより前記第２のビューを表示するステップとを含む、メモリ。
【請求項８】
前記方法は、オフラインになる前に、前記第２のビュー定義を、前記データ通信リンクを介して前記サーバから受信するステップをさらに含み、
前記第２のビュー定義は、前記モバイル装置からの前記第２のビューに対する要求に応じた第２のページ定義に基づいて選択された第２のビューコンポーネントと前記第２のページ定義との併合結果に前記第１のターゲットビューＵＲＩに対応する第２のビューＵＲＩと第２のターゲットビューＵＲＩとを追加することにより生成され、
前記方法は、さらに、
前記第２のビュー定義を前記メモリに、第２のアドレスによって識別された場所で格納するステップと、
前記テーブルにおいて前記第２のアドレスを前記第２のビューＵＲＩにマッピングするステップとを含み、
前記第２のビュー定義を読み出すステップは、前記第２のビューＵＲＩにマッピングされた前記第２のアドレスで前記メモリから前記第２のビュー定義を読み出すことを含む、請求項７に記載のメモリ。
【請求項９】
前記方法は、前記テーブルにおいて、各アドレスにマッピングされているターゲットビューＵＲＩを識別するステップをさらに含む、請求項７に記載のメモリ。
【請求項１０】
前記方法は、前記識別されたターゲットビューＵＲＩを示すように前記第１のビュー定義を更新するステップをさらに含む、請求項９に記載のメモリ。
【請求項１１】
命令を格納するコンピュータ読取可能メモリであって、サーバが前記命令の実行に応答して方法を実施し、前記方法は、
モバイル装置からの第１のビューに対する要求に応じた第１のページ定義に基づいて第１のビューコンポーネントを選択するステップと、
前記第１のビューコンポーネントを前記第１のページ定義と併合し、当該併合結果に第１のビューＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ）および第１のターゲットビューＵＲＩを追加することにより、第１のビュー定義を生成するステップと、
前記第１のビュー定義を前記モバイル装置に送信するステップとを含み、
前記モバイル装置は方法を実施し、当該方法は、
前記第１のビュー定義を、データ通信リンクを介して前記サーバから受信するステップと、
前記第１のビュー定義をメモリに、第１のアドレスによって識別された場所で格納するステップと、
テーブルにおいて前記第１のアドレスを前記第１のビューＵＲＩにマッピングするステップと、
オフライン中に、前記第１のビューＵＲＩにマッピングされた前記第１のアドレスで前記メモリから前記第１のビュー定義を読み出すステップと、
オフライン中に、読み出された前記第１のビュー定義をレンダリングすることにより前記第１のビューを表示するステップとを含み、
前記第１のビューは、第２のビューを要求するためにユーザにより起動されるアクション可能なビューコンポーネントを含み、
前記第１のターゲットビューＵＲＩは、前記アクション可能なビューコンポーネントにリンクされており、
前記モバイル装置により実施される方法は、さらに、
オフライン中に、前記第１のビューにおいて表示されている前記アクション可能なビューコンポーネントの起動に応答して、前記メモリに格納された第２のビュー定義を読み出すステップと、
オフライン中に、読み出された前記第２のビュー定義をレンダリングすることにより前記第２のビューを表示するステップとを含む、コンピュータ読取可能メモリ。
【請求項１２】
前記サーバにより実施される方法は、さらに、
オフラインになる前の前記モバイル装置からの前記第２のビューに対する要求に応じた第２のページ定義に基づいて第２のビューコンポーネントを選択するステップと、
前記第２のビューコンポーネントを前記第２のページ定義と併合し、当該併合結果に前記第１のターゲットビューＵＲＩである第２のビューＵＲＩと第２のターゲットビューＵＲＩとを追加することにより、前記第２のビュー定義を生成するステップとを含み、
前記モバイル装置により実施される方法は、さらに、
オフラインになる前に、前記第２のビュー定義を、前記データ通信リンクを介して前記サーバから受信するステップと、
前記第２のビュー定義を前記メモリに、第２のアドレスによって識別された場所で格納するステップと、
前記テーブルにおいて前記第２のアドレスを前記第２のビューＵＲＩにマッピングするステップとを含み、
前記第２のビュー定義を読み出すステップは、前記第２のビューＵＲＩにマッピングされた前記第２のアドレスで前記メモリから前記第２のビュー定義を読み出すことを含む、請求項１１に記載のコンピュータ読取可能メモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本願は、「オフライン可能なビュー／コントローラグラフを定義するための方法およびシステム」（Method and System for Defining an Offlinable View/Controller Graph）と題され、２０１３年９月２１日に出願された米国仮特許出願連続番号第６１／８８０，８９８号、ならびに「オフライン可能なビュー／コントローラグラフを定義するための方法およびシステム」と題され、２０１３年１０月３１日に出願された米国特許出願連続番号第１４／０６８，２９８号の、米国特許法第１１９条（ｅ）による国内利益を主張する。当該出願は全体として、およびあらゆる目的のために、ここに完全にかつ十分に述べられているかのようにこれによって引用により援用される。
【背景技術】
【０００２】
発明の背景
企業アプリケーションは、有益なサービスを企業に提供する。たとえば、企業アプリケーションは、顧客関係管理（customer relationship management：ＣＲＭ）、資源計画、人材管理などを提供する。この発明は、セールスサービスおよびマーケティングサービスを提供する例示的なＣＲＭに関して説明されるが、この発明はそれに限定されるべきでないということが理解されるであろう。
【０００３】
ＣＲＭは、会社と顧客とのやりとりを管理するために広く実施されている戦略である。ＣＲＭサービスは、モバイル装置（たとえば、スマートフォンまたはタブレットコンピュータ）を通してアクセスされ得る。この発明は、ユーザのモバイル装置を介してユーザにＣＲＭサービスを提供することに関して説明されるが、この発明はそれに限定されるべきでないということが理解されるであろう。
【発明の概要】
【課題を解決するための手段】
【０００４】
概要
オフライン可能なビュー／コントローラグラフを定義するための方法およびシステムが開示される。この方法の一実施形態では、第１の識別子を含む第１のビュー定義が、データ通信リンクを介してサーバから受信される。第１のビュー定義は、メモリに、第１のユニバーサルリソースロケータ（universal resource locator：ＵＲＬ）によって識別された場所で格納される。テーブルにおいて第１のＵＲＬは第１の識別子にマッピングされる。
【０００５】
図面の簡単な説明
添付図面を参照することにより、この発明はよりよく理解され、その多くの目的、特徴、および利点が当業者には明らかになるであろう。
【図面の簡単な説明】
【０００６】
【図１】モバイルＣＲＭを採用する例示的なシステムの関連コンポーネントを示すブロック図である。
【図２】図１で採用された例示的なサーバの関連コンポーネントのブロック図である。
【図３】図１で採用されたモバイル装置上に表示される例示的なページを図式化した図である。
【図４】図１で採用されたモバイル装置上に表示される例示的なページを図式化した図である。
【図５】図１で採用されたモバイル装置上に表示される例示的なページを図式化した図である。
【図６】例示的なモバイル装置の関連コンポーネントを示すブロック図である。
【図７Ａ】図６で採用されたモバイル装置に格納された例示的なビューテーブルを図式化した図である。
【図７Ｂ】図６で採用されたモバイル装置に格納された例示的なビューテーブルを図式化した図である。
【図７Ｃ】図６で採用されたモバイル装置に格納された例示的なビューテーブルを図式化した図である。
【図８】図６のモバイル装置によって実施されるプロセスの関連局面を示すフローチャートである。
【図９】図１で採用されたモバイル装置上に表示される例示的なページを図式化した図である。
【図１０】図１で採用されたモバイル装置上に表示される例示的なページを図式化した図である。
【発明を実施するための形態】
【０００７】
異なる図面における同じ参照符号の使用は、同様または同一の項目を示す。
詳細な説明
今日のセールス労働力は、かつてないほどモバイルである。モバイルのセールス労働力をよりよく支援するために、多くの企業がモバイルＣＲＭを採用しており、それは、ユーザが、モバイル装置上に表示されるユーザインターフェイスまたは「ビュー」を通して、セールス案件（sales opportunities）、セールスアカウント、連絡先などを作成し、見直し、および／または更新するといったＣＲＭサービスをより効率的に使用できるようにする。
【０００８】
図１は、モバイルＣＲＭを提供する例示的なシステム１００の関連コンポーネントをブロック図の形で示す。システム１００は、サーバ１０６上で実行されるＣＲＭと無線データ通信するモバイル装置（たとえば、スマートフォン）１０４を含む。ＣＲＭによって提供されるサービスは、モバイル装置１０４によって表示されるビューを通してアクセスされ得る。
【０００９】
一実施形態では、ＣＲＭは、モデル・ビュー・コントローラ・アーキテクチャを実現する。ＣＲＭは、モバイル装置１０４によって表示され得るビューの基礎を形成する複数のページ定義を含む単一の状態駆動アプリケーションを含む。モバイル装置１０４からのビュー要求の受信に応答して、ＣＲＭは、論理データモデルからのビューコンポーネント（たとえば、アカウント名、連絡先名など）を、選択されたページ定義と併合または結合し、その結果が、追加処理（たとえば、レンダリング、ＵＲＩ挿入、および／またはシリアライゼーション（serialization））後に返答でビュー定義としてモバイル装置１０４に送信される。モバイル装置１０４はビュー定義を受信し、表示のためにレンダリングする。説明の目的のため、この開示は、モバイル装置によって受信されたどのビュー定義も、レンダリングおよび次の表示のための状態にある併合されたビューコンポーネント（たとえば、アカウント名、連絡先名など）を含む、と仮定する。モバイル装置は、ビュー定義が次の表示のためにレンダリングされる前に、前処理（たとえば、デシリアライゼーション）を行なってもよい。
【００１０】
図１を引き続き参照して、図２は、関連コンポーネントがブロック図の形で示されたサーバ１０６の一例を示す。メモリ２０２は、ＣＲＭのためのアプリケーション定義を格納する。アプリケーション定義はページ定義を含み、それらのうちのいくつかはメモリ２０２に表わされる。論理データモデル内のミニアプリケーションまたは高レベルビジネスオブジェクトへのユーザアクセスを可能にする、モバイル装置上での表示用のスプリングボードビューをレンダリングするために、「スプリングボード」ページ定義が使用可能である。アカウント、案件および連絡先の名前をそれぞれリストパターンで提示する、モバイル装置上での表示用のビューをレンダリングするために、「アカウント集合（Accounts）」、「案件集合（Opportunities）」および「連絡先集合（Contacts）」ページ定義が使用可能である。アカウント、案件および連絡先についての詳細な情報をそれぞれあるフォームで提供する、表示用のビューをレンダリングするために、「アカウント（Account）」、「案件（Opportunity）」および「連絡先（Contact）」ページ定義が使用可能である。アカウント、案件および連絡先からの情報をそれぞれユーザが編集可能なフォームで提供する、表示用のビューをレンダリングするために、「アカウントフォーム」、「案件フォーム」および「連絡先フォーム」ページ定義が使用可能である。メモリ２０２における他のページ定義が考えられる。一般に、ページ定義は、論理データモデル２０４を、モバイル装置上に表示されるビューを介したモバイル装置のユーザによるやりとりにとって好適なフォームへとレンダリングするために使用可能である。ある意味では、論理データモデル２０４は、アカウント集合、連絡先集合、案件集合などを含むビジネスオブジェクトへのアクセスを提供しており、それらのうちのいくつかを図２に示す。
【００１１】
メモリ２０２におけるアプリケーション定義は、Ｊａｖａ（登録商標）サーバ・フェイシズ（Java Server Faces：ＪＳＦ）技術を使用して構築される状態駆動アプリケーションとして実現可能であるが、この発明はそれに限定されるべきでないということが理解されるであろう。ＪＳＦは、ビューのためのページを作成するための再使用可能な標準コンポーネントを提供する。ＪＳＦは、ビュー定義を増強するための有用な特殊タグを提供する。以下により十分に説明されるように、この発明は、ビュー定義がモバイル装置に送信される前に新しいタイプのタグ（たとえばＵＲＩ）をビュー定義に挿入することを可能にする新しい特徴を用いて、ＪＳＦ（または、状態駆動アプリケーションを構築するための同様の技術）を拡張することができる。これらの新しいタグは、以下により十分に説明されるように、複数の特徴を可能にする。たとえば、モバイル装置が「オフライン」である場合、またはＣＲＭとのデータ通信を欠く場合に、タグはモバイル装置がビューを表示することを可能にする。
【００１２】
プロセッサ上で実行される命令の形を取り得る制御論理２０６は、アプリケーション定義とデータ通信する。制御論理２０６は、インターフェイス２０８を介してモバイル装置１０４からビュー要求を受信できる。ビュー要求の受信に応答して、制御論理２０６は、返答を作成するのに適切なページ定義を選択するために、メモリ２０２におけるアプリケーション定義またはビューナビゲーションスタック（図示せず）にアクセスしてもよい。ページ定義は、ビュー要求に含まれる情報および他の情報に基づいて選択され得る。
【００１３】
ページ定義は、論理データモデル２０４から必要とされるビューコンポーネント（たとえば、アカウント名、連絡先名など）を検索するために使用され得るメタデータを含む。制御論理２０６は、必要とされるビューコンポーネントを検索するために、論理データモデル２０４に呼出しを行なうことができる。制御論理２０６は次に、選択されたページ定義を検索されたコンポーネントと結合または併合でき、その結果が、何らかの追加処理後に返答でビュー定義として要求元のモバイル装置に送信される。図３〜５は、ＣＲＭからの返答の受信に応答してモバイル装置１０４によって表示される例示的なビューを示す。
【００１４】
図２を引き続き参照して、図３は、ユーザがＣＲＭとのモバイルセッションを初めて呼出したことに応答してモバイル装置１０４のタッチセンシティブスクリーン３００上に表示される例示的なビュー３０２を示す。より特定的には、ユーザがモバイルセッションを呼出すと、モバイル装置１０４は、スプリングボードビューに対する要求を生成して送信する。要求の受信に応答して、制御論理２０６は、メモリ２０２におけるスプリングボードページ定義を選択する。何らかの処理後、制御論理２０６は、返答でスプリングボードビュー定義をモバイル装置に送信する。それに応答して、モバイル装置１０４は、アクション可能なスプリングボードビューコンポーネント３０６〜３１０を有するビュー３０２を受信し、次に表示する。
【００１５】
スプリングボードビュー３０２がモバイル装置１０４に表示されると、ユーザは、コンポーネント３０６〜３１０の起動を介して、モバイル装置１０４上での表示用の追加の関連ビューを要求できる。例示すると、ユーザは、ＣＲＭから連絡先集合リストを検索するために、「連絡先集合」を起動できる。連絡先集合の起動に応答して、モバイル装置１０４は、連絡先集合ビューに対する要求を生成してＣＲＭに送信する。ビュー要求は、ＣＲＭとモバイル装置１０４とのセッションを一意的に識別するセッション識別または他の情報を含んでいてもよい。ＣＲＭおよび／または制御論理２０６は、それぞれのモバイル装置のためのビューナビゲーションスタックを管理するためにセッション識別を使用でき、それらは次に、返答を形成するために必要とされる適当なページ定義およびコンポーネントを選択するために使用され得る。
【００１６】
例示された例を続けると、制御論理２０６は、モバイル装置１０４から連絡先集合リストビュー要求を受信し、それに応答して、メモリ２０２から連絡先集合ページ定義を選択する。制御論理２０６は、返答のために必要とされる、モデル２０４からのビューコンポーネント（たとえば、連絡先名）を選択して併合する。コンポーネント選択は、選択されたページ定義における情報および／または他の情報に基づいていてもよい。現在の例では、制御論理２０６は、連絡先ページ定義によって直接的にまたは間接的に識別された連絡先名を選択する。選択され検索されたコンポーネントは、制御論理２０６によって連絡先集合ページ定義と併合され、その結果が、何らかの追加処理後に連絡先集合ビュー定義としてモバイル装置１０４に送信される。この追加処理は、制御論理２０６が、併合されたページ定義またはレンダリングされ併合されたページ定義の内容に基づいて、ビューＵＲＩおよび／またはターゲットビューＵＲＩを選択的に追加することを含んでいてもよいが、それに限定されるべきでない。モバイル装置１０４に送信された例示的な連絡先集合ビュー定義の一部を、以下に提供する。
【００１７】
連絡先集合ビュー定義
【００１８】
【数１】
0006461926.tif 000002
【００１９】
図４は、モバイル装置１０４がＣＲＭから返答を受信した後に表示する、例示的な「連絡先集合」ビュー４０２を示す。リストパターンで提示される他のビューと同様に、ビュー４０２は、連絡先名をリストで示す。ビューに表示される多くのコンポーネントは、アクション可能である。たとえば、「Labron James」というコンポーネントは、Labron Jamesについての連絡先詳細を提供する対応するビューを要求するために、ユーザ起動され得る（たとえば「クリックされ得る」）。起動に応答して、モバイル装置１０４は、Labron James詳細ビューに対する要求を生成してＣＲＭに送信する。制御論理２０６はこの要求を受信し、この要求における情報に基づいて連絡先ページ定義を選択する。制御論理２０６は、連絡先ページ定義によって直接的にまたは間接的に識別されたコンポーネント（たとえば、連絡先に関連付けられたアカウント）を選択する。選択されたコンポーネントは連絡先ページ定義と併合され、ＵＲＩが追加され、その結果が何らかの追加処理後にモバイル装置１０４に送信される。モバイル装置１０４によって受信されたLabron Jamesについての例示的な連絡先ビュー定義の一部を、以下に提供する。
【００２０】
Labron James連絡先ビュー定義
【００２１】
【数２】
0006461926.tif 000003
【００２２】
連絡先集合ビュー定義の例と同様に、連絡先ビュー定義の例は、ビューＵＲＩおよびターゲットビューＵＲＩを含む。より十分に説明されるように、モバイル装置１０４のようなモバイル装置は、ビューのオフラインレンダリングおよび表示を可能にするために、上述の連絡先集合ビュー定義およびLaBron James連絡先ビュー定義の例のようなＣＲＭからのビュー定義をローカルメモリに格納できる。ビューＵＲＩおよびターゲットビューＵＲＩは、ユーザのモバイル装置がオフラインである場合でもユーザが自分のモバイル装置上でビュー間をナビゲートできるように、ビュー、ビューコンポーネント、およびビュー定義間のグラフまたは関係を提供する。ターゲットビューＵＲＩは、ビュー定義内のアクション可能なコンポーネントにリンクされる。モバイル装置がオフラインである間にユーザが表示されたビューコンポーネントをクリックすると、ターゲットビューＵＲＩによって識別され、表示されたビューコンポーネントにリンクされたビュー定義がローカルメモリから検索され、次に表示のためにレンダリングされ得る。
【００２３】
図５は、モバイル装置１０４がＣＲＭから返答を受信してレンダリングした後に表示するLabron James連絡先ビュー５０２の一例を示す。ビュー５０２は、あるフォームフォーマットで表示された詳細連絡先コンポーネントを示す。ビュー５０２は、図４に示すビュー４０２など、モバイル装置１０４によって表示される他のビューの外観および雰囲気を有する。たとえば、ビュー４０２および５０２は双方とも、前のビューへと逆戻りしてナビゲートするために使用され得る「戻る」ボタンを含む。ビュー５０２の「戻る」ボタンが起動されると、モバイル装置１０４は、「戻る」要求を生成してＣＲＭに送信するであろう。一実施形態では、いずれかのビューにおけるいずれかの「戻る」ボタンが起動されるたびに、同じ包括的な「戻る」要求がモバイル装置１０４によって送信される。「戻る」要求に応答して、制御論理２０６は、ビューナビゲーションスタックから最後の項目を取出すことができ、その項目はビュー５０２に関連する情報を含む。次に、制御論理２０６は、最も新しく追加されたスタック項目におけるページ定義（たとえば、連絡先集合ページ定義）と、モデルからのコンポーネントとを使用して、ビュー４０２をもたらした返答を再作成することができる。返答は、モバイル装置１０４への次の送信のために再作成される。ビューの再表示は、その間に変化した論理データモデルからのあらゆるコンポーネントを除き、同じであるべきである。
【００２４】
大抵の場合、図１に示すモバイル装置１０４などのモバイル装置は、サーバ１０６上で実行されるＣＲＭなどのＣＲＭとデータ通信する。「オンライン」またはデータ通信中、モバイル装置はＣＲＭからビュー定義を受信できる。しかしながら、ＣＲＭとモバイル装置とのデータ通信は、自発的にまたは非自発的に中断される場合がある。たとえば、モバイル装置１０４は、ユーザが無線通信を不能にできるようにする特徴（たとえば「機内モード」）を有する場合があり、または、モバイル装置は、通信塔から遠過ぎて無線信号通信を交換できない場合がある。モバイル装置のユーザは、自分たちのモバイル装置が自発的にまたは非自発的にオフラインである場合、ＣＲＭデータおよびサービスへのアクセスを有することを好む。
【００２５】
図６は、ＣＲＭデータおよび／またはサービスへのオフラインアクセスを可能にするモバイル装置１０４の関連コンポーネントを示す。より特定的には、図６は、ビューコントローラ６０２およびモバイルＣＲＭクライアント６０６とデータ通信するビュー要求ハンドラ６０４をブロック図の形で示す。一実施形態では、コンポーネント６０２〜６０６は、モバイル装置１０４の１つ以上のプロセッサ上で実行される命令の形を取ってもよい。加えて、図６は、ファイルシステム６１２とデータストア６１４とを格納するように構成されたメモリサブシステム６１０を示す。一実施形態では、データストア６１４は、以下により十分に説明されるビューテーブルなどの１つ以上のテーブルを格納するデータベースの形を取ってもよい。
【００２６】
モバイルＣＭＲクライアント６０６は、表示されたアクション可能なビューコンポーネントのユーザ起動に応答して、上述の連絡先集合ビューに対する要求など、ビューに対する要求を生成する。モバイル装置１０４がオンラインであるかまたはサーバ１０６とデータ通信する場合、要求ハンドラ６０４は要求を受信して、要求をＣＲＭに転送するように構成される。その他の場合、以下により十分に説明されるように、要求ハンドラ６０４はビュー要求をビューコントローラ６０２に転送する。
【００２７】
モバイル装置がオンラインである場合、ビューコントローラ６０２は、上述の連絡先集合ビュー定義の例などのビュー定義を含む要求返答をサーバ１０６から受信するように構成される。ビューコントローラ６０２は、ビュー定義のコピーをファイルシステム６１２に格納し、ビュー定義のためのビューＵＲＩを格納されたコピーにリンクさせる。一実施形態では、ビューコントローラ６０２は、ビューＵＲＩをファイルシステム６１２に格納されたビュー定義のためのそれぞれのＵＲＬまたはアドレスにマッピングするビューテーブルをデータストア６１４内に作成し、および／またはそれにアクセスする。ビューコントローラ６０２はまた、以下により十分に説明されるように、モバイル装置１０４がオフラインモードにある場合、要求に応じてビュー定義をモバイルＣＲＭクライアント６０６に提供するように構成される。
【００２８】
図７Ａは、データストア６１４内に含まれる例示的なビューテーブル７００を示す。このビューテーブルは、ビューＵＲＩをファイルシステムＵＲＬにマッピングするエントリを含み、それらは、ビュー定義が格納されているファイルシステム６１２内のそれぞれの場所を識別する。図７Ａに示すビューテーブルは、ビューコントローラによってアクセス可能である。図７Ａの例に示すように、ビューテーブル７００は４つのエントリを含み、それらのうちの１つだけがＵＲＩをファイルシステムＵＲＬにマッピングする。説明の目的のため、図７Ａは、モバイル装置１０４が上に述べられた連絡先集合ビュー定義およびLabron James連絡先ビュー定義を要求する前のビューテーブル７００の状態を表わす。
【００２９】
図８は、ＣＲＭデータおよび／またはサービスへのオフラインアクセスを可能にするためにビューコントローラ６０２および要求ハンドラ６０４によって採用される例示的なプロセスを示す。このプロセスは、モバイル装置１０４のユーザがレンダリングされたビュー定義の表示されたアクション可能なビューコンポーネントを起動する（たとえばクリックする）と、始まる。レンダリングされたビュー定義において、ビューコンポーネントは、ターゲットビューＵＲＩを介して別のビュー定義にリンクされてもよい。ユーザ起動に応答して、モバイルＣＲＭクライアント６０６は、起動されたビューコンポーネントに対応するビュー要求を生成する。起動されたビューコンポーネントがターゲットビューＵＲＩにリンクされる場合、レンダリングされたビュー定義からのＵＲＩは、モバイルＣＲＭクライアント６０６によって生成された要求に含まれていてもよい。
【００３０】
要求ハンドラ６０４はビュー要求を受信して、モバイル装置１０４がオンラインモードで動作するかどうかを判断する。モバイル装置１０４がオンラインモードで動作している場合、プロセスは、ハンドラ６０４が要求をＣＲＭに送信するステップ８０５に進む。これに応答して、ビューコントローラ６０２は、ステップ８０６に示すように、ビュー定義を含む返答をＣＲＭから受信するであろう。ビュー定義は一意的なビューＵＲＩを含むべきであり、それによって識別される。ビュー定義はまた、ビュー定義におけるコンポーネント（たとえば、連絡先集合）をそれぞれのビュー定義にリンクさせる１つ以上のターゲットビューＵＲＩを含んでいてもよい。
【００３１】
ステップ８０６で受信されたビュー定義は次に、ビューコントローラ６０２によって処理される。より特定的には、ビューコントローラ６０２は、ビューテーブル７００がビュー定義のためのビューＵＲＩを含むかどうかを判断するために、ビューテーブル７００にアクセスする。ビューテーブルがビューＵＲＩを含むエントリを欠く場合、ビューコントローラ６０２は新規エントリを作成し、ビューＵＲＩを新規エントリに追加する。ステップ８０６で受信されたビュー定義は、一実施形態では、ファイルシステム６１２内の一意的なＵＲＬによって識別されたファイルに格納される。ステップ８２０に示すように、ビューコントローラ６０２は、ビューテーブルの新規エントリにおいてこのＵＲＬをビューＵＲＩにマッピングする。一実施形態では、あるビューは、モバイル装置における格納を保証しておらず、その結果、モバイル装置上のビュー格納は選択的である。たとえば、最新の株価または天気予報を示すビューは格納されない。
【００３２】
ビューコントローラ６０２がステップ８１０で、ビューテーブルは受信されたビュー定義のためのビューＵＲＩとそれにマッピングされたＵＲＬとを含み、このため、ファイルシステム６１２がステップ８０６で受信されたビュー定義の前のバージョンを含むことを示すと判断する場合、そのＵＲＬで格納されたビュー定義の前のバージョンは、ステップ８０６で受信されたビュー定義で上書きされる。一方、ビューテーブル７００がステップ８０６で受信されたビュー定義のためのビューＵＲＩを含むものの、テーブルにおけるビューＵＲＩがＵＲＬにマッピングされていない場合、ステップ８２２で、ステップ８０６で受信されたビュー定義は、ファイルシステム６１２に、一意的なＵＲＬで格納される。ビューテーブル７００は次に、ステップ８２２のＵＲＬで更新される。ステップ８０６で受信されたビュー定義は、１つ以上のターゲットビューＵＲＩを含んでいてもよい。図８には図示されていないが、ビューコントローラ６０２は、ビューテーブルに存在しないターゲットビューＵＲＩごとに、ビューテーブル７００において新規エントリを作成する。
【００３３】
ステップ８１８、８２０、または８２４の後で、ステップ８０６でＣＲＭから受信されたビュー定義は、レンダリングおよび次のモバイル装置１０４上での表示のためにモバイルＣＲＭクライアント６０６に送信され、図８のプロセスは終了する。
【００３４】
要求ハンドラ６０４がモバイルＣＲＭクライアント６０６からビュー要求を受信する場合、モバイル装置１０４はオフラインモードにあってもよい。モバイル装置がオフラインモードにある場合、要求ハンドラ６０４はビュー要求をビューコントローラ６０２に転送する。この要求は、レンダリングされたビュー定義において、ステップ８０２で起動されたビューコンポーネントにマッピングされたビューＵＲＩ（すなわち、ターゲットビューＵＲＩ）を含むべきである。ビューコントローラ６０２は、ビューＵＲＩにマッピングされているＵＲＬを読出すために、テーブル７００にアクセスする。ファイルシステム６１２は、そのＵＲＬでビュー定義を読出すためにアクセスされ、それは次に、８３２に示すようにレンダリングおよび表示のためにモバイルＣＲＭクライアント６０６に転送される。その後、プロセスは終了する。
【００３５】
図７Ａは、モバイル装置１０４が例示的な連絡先集合リストビュー定義および例示的なLabron James連絡先ビュー定義を受信する前の例示的なビューテーブルを示す。図７Ｂは、モバイル装置１０４が例示的な連絡先集合ビュー定義を受信した後に、ビューコントローラ６０２が図８のプロセスに従って図７Ａに示すビューテーブルに行なった変更を示す。例示的な連絡先集合リストビュー定義のためのビューＵＲＩ（すなわち、view://ntacts#list）と、ファイルシステムに格納された例示的なビュー定義のためのＵＲＬ（すなわち、file://...contacts#list）とをマッピングするエントリ５は、ビューコントローラ６０２がステップ８２０に従って新規エントリを作成した結果を示す。例示的な連絡先集合ビュー定義のターゲットビューＵＲＩを含むエントリ６〜９は、ビューコントローラ６０２が例示的な連絡先集合ビュー定義に含まれるターゲットビューのために新規エントリを作成した結果を示す。
【００３６】
図７Ｃは、モバイル装置が図８のプロセスに従って例示的なLabron James連絡先ビュー定義を受信して処理した後に、ビューコントローラ６０２が図７Ｂに示すビューテーブルに行なった変更を示す。見てわかるように、エントリ６は、LaBron James連絡先定義ファイルが格納されるＵＲＬを含むように更新されている。
【００３７】
図７Ｃおよび図８を引き続き参照して、図９および図１０は、オフラインモードで動作する場合にモバイル装置１０４によって表示される例示的なビューを示す。図７Ｃには図示されていないが、モバイル装置１０４のファイルシステムは、図３に示すスプリングボードビューのためのビュー定義を格納する。モバイル装置１０４がオフラインモードにある間、このビュー定義はレンダリングされ、図３に示すものと同様のモバイル装置１０４上に表示され得る。モバイル装置１０４がオフラインモードにある間、モバイル装置１０４のユーザは、スプリングボードの連絡先集合ビューコンポーネント（図３参照）を起動できる。これに応答して、モバイルＣＲＭクライアント６０６は、連絡先集合ビュー定義に対する要求を生成する。この要求は、レンダリングされたスプリングボードビュー定義内の連絡先集合ビューコンポーネントにリンクされたビューＵＲＩ（すなわち、view://contacts#list)を含むであろう。モバイル装置１０４はオフラインであるため、要求ハンドラ６０４は、図８に示すプロセスに従って、モバイルＣＲＭクライアントからビューコントローラ６０２に要求を転送するであろう。これに応答して、ビューコントローラ６０２は、要求のビューＵＲＩ（すなわち、view://contacts#list）にマッピングされているＵＲＬ（すなわち、file://...contacts#list）を読出すために、図７Ｃに示すビューテーブル７００にアクセスする。ビューコントローラ６０２は、マッピングされたＵＲＬで格納された連絡先集合ビュー定義を検索するためのプロセスを開始し、それは最終的に、レンダリングおよび表示のためにモバイルＣＲＭクライアント６０６に転送される。しかしながら、一実施形態では、ビュー定義がモバイルＣＲＭ６０２に転送される前に、ビューコントローラ６０２は連絡先集合ビュー定義を分析して、そのターゲットビューＵＲＩがある場合にそれらのうちのどれがビューテーブル７００においてそれぞれのＵＲＬにマッピングされているかを識別することができる。ビューコントローラ６０２は、ビューテーブル内でＵＲＬにマッピングされているそれらのターゲットビューＵＲＩを示すように連絡先集合ビュー定義を更新でき、それからビュー定義はモバイルＣＲＭクライアント６０６に送信される。モバイルＣＲＭクライアント６０６は、図９に示すように、連絡先集合ビューをレンダリングし、表示する。連絡先集合ビュー定義を表示する場合、モバイルＣＲＭクライアント６０６は、ＵＲＬにマッピングされているとしてビューコントローラ６０２によって以前に識別された対応するターゲットビューＵＲＩに基づいて、アクション可能なそれらのビューコンポーネントを視覚的に識別するであろう。一実施形態では、アクション可能なビューコンポーネントは、モバイル装置１０４によって表示される、結果として生じるビューにおいて、太字で示される。図９に示す例では、LaBron James連絡先ビューコンポーネントが太字で示されており、こうしてこのコンポーネントがオフラインモードでアクション可能であることを示す。
【００３８】
図９に表示されたLaBron Jamesコンポーネントなどのアクション可能なコンポーネントをユーザが起動するのに応答して、図８に示すプロセスに従って作用するモバイルＣＲＭ６０６は、LaBron James連絡先定義ビューに対するビュー要求を生成する。この要求は、表示のためにレンダリングされる連絡先集合ビュー定義内の「LaBron James」コンポーネントにリンクされた、連絡先ビュー定義要求のためのビューＵＲＩ（すなわち、view://contacts/101#detail）を含むであろう。モバイル装置１０４はオフラインであるため、この要求はビューコントローラ６０２に提供され、それは次に、マッピングされたＵＲＬ（すなわち、file://...contacts/101#detail）でファイルシステム定義からLaBron James連絡先ビューを読出すプロセスを開始する。連絡先ビュー定義は、次のレンダリングおよび表示のためにモバイルＣＲＭクライアントに転送される。図１０は、モバイル装置１０４がオフラインモードにある間にモバイル装置１０４によって表示されるLaBron James連絡先ビューを示す。
【００３９】
いくつかの実施形態に関連してこの発明を説明してきたが、この発明は、ここに述べられた特定の形に限定されるよう意図されてはいない。逆に、この発明は、そのような代替、修正および均等物を、添付された請求項によって定義されるようなこの発明の範囲に妥当に含まれ得るとして網羅するよう意図されている。
【図１】
0006461926.tif 000004
【図２】
0006461926.tif 000005
【図３】
0006461926.tif 000006
【図４】
0006461926.tif 000007
【図５】
0006461926.tif 000008
【図６】
0006461926.tif 000009
【図７Ａ】
0006461926.tif 000010
【図７Ｂ】
0006461926.tif 000011
【図７Ｃ】
0006461926.tif 000012
【図８】
0006461926.tif 000013
【図９】
0006461926.tif 000014
【図１０】
0006461926.tif 000015