(57)【要約】【課題】  中央のデータ記憶システムからモバイルコンピューティングデバイスのモバイルデータストアに業務ソリューションエンティティがロードされる同期動作を管理する方法を提供すること。【解決手段】  中央のデータ記憶システムからモバイルコンピューティングデバイスのモバイルデータストアに業務ソリューションエンティティがロードされる同期動作を管理する方法において、同期動作の際にモバイルデータストアにロードすべきエンティティを識別するサブスクリプションが定義される。次いで、モバイルデータストアの残りのデータ記憶容量と、サブスクリプションで識別されるエンティティを記憶するために必要なデータ空間の量に相当するサブスクリプションデータの量が推定される。最後に、サブスクリプションデータの量が残りのデータ記憶容量と比較される。【選択図】  図２１
2005310121.tif 000002
【特許請求の範囲】
【請求項１】
中央のデータ記憶システムからモバイルコンピューティングデバイスのモバイルデータストアに業務ソリューションエンティティがロードされる同期動作を管理する方法であって、
ａ）同期動作の際に前記モバイルデータストアにロードされるべきエンティティを識別するサブスクリプションを定義するステップと、
ｂ）前記モバイルデータストアの残りのデータ記憶容量を推定するステップと、
ｃ）前記サブスクリプションによって識別される前記エンティティを記憶するために必要なデータ空間量に相当するサブスクリプションデータの量を推定するステップと、
ｄ）前記サブスクリプションデータ量と前記残りのデータ記憶容量を比較するステップと
を備えることを特徴とする方法。
【請求項２】
前記サブスクリプションデータの量を表示するステップを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記サブスクリプションデータ量を、前記モバイルデータストアの残りのデータ記憶容量と比較して表示するステップを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記表示ステップは、前記サブスクリプションデータ量のグラフ表現を表示するステップを含むことを特徴とする請求項３に記載の方法。
【請求項５】
前記エンティティはそれぞれカテゴリに関連付けられ、
前記サブスクリプションデータの量のグラフ表現は、前記サブスクリプションデータ量の前記カテゴリごとの内訳を表す
ことを特徴とする請求項４に記載の方法。
【請求項６】
前記サブスクリプションデータ量のグラフ表現は、棒グラフを含むことを特徴とする請求項４に記載の方法。
【請求項７】
前記表示ステップは、前記サブスクリプションデータ量の数値表現を表示するステップを含むことを特徴とする請求項２に記載の方法。
【請求項８】
前記サブスクリプションデータの量が前記モバイルコンピューティングデバイスのデータ記憶容量を上回るときに警告を生成するステップを含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記サブスクリプションデータの量が前記モバイルコンピューティングデバイスの残りのデータ記憶容量を上回る際に、前記モバイルコンピューティングデバイスと前記中央のデータ記憶システム間の前記同期動作を阻止するステップを含むことを特徴とする請求項１に記載の方法。
【請求項１０】
前記モバイルデータストアは、前記エンティティの少なくとも１つに対応するある量のエンティティデータと、前記モバイルデータストアに記憶された合計データ量から前記エンティティデータの量を引いた量に相当するある量の非エンティティデータとを含み、
前記推定ステップｂ）は、前記モバイルデータストアのデータ記憶容量から前記非エンティティデータの量を減算するステップを含む
ことを特徴とする請求項１に記載の方法。
【請求項１１】
前記サブスクリプションデータの量を、前記モバイルデータストアの残りのデータ記憶容量と比較して表示するステップを含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
前記表示ステップは、前記サブスクリプションデータ量のグラフ表現を表示するステップを含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記推定ステップｃ）は、ユーザ入力に応答して行われることを特徴とする請求項１に記載の方法。
【請求項１４】
前記推定ステップｃ）は、前記サブスクリプションの変化に応答して行われることを特徴とする請求項１に記載の方法。
【請求項１５】
モバイルデータストアと、
同期動作の際に中央のデータ記憶システムから前記モバイルデータストアにロードすべき業務ソリューションエンティティを識別するサブスクリプションデータと、
前記サブスクリプションデータによって識別される前記エンティティを記憶するために必要なデータ記憶空間の量に相当するサブスクリプションデータの量の表示と
を備えることを特徴とするモバイルコンピューティングデバイス。
【請求項１６】
前記表示は、前記サブスクリプションデータ量のグラフ表現を含むことを特徴とする請求項１５に記載のデバイス。
【請求項１７】
前記表示は、前記サブスクリプションデータ量の数値表現を含むことを特徴とする請求項１６に記載のデバイス。
【請求項１８】
前記グラフ表現は棒グラフを含むことを特徴とする請求項１６に記載のデバイス。
【請求項１９】
前記サブスクリプションデータによって識別される前記エンティティは、カテゴリに関連付けられ、
前記グラフ表現は、前記サブスクリプションデータ量の前記カテゴリごとの内訳を表す
ことを特徴とする請求項１６に記載のデバイス。
【請求項２０】
前記カテゴリは、取引先、連絡先、機会、および活動からなる群から選択されるカテゴリを含むことを特徴とする請求項１９に記載のデバイス。
【請求項２１】
前記サブスクリプションデータ量の前記グラフ表現は、前記モバイルデータストアの残りのデータ記憶容量と比較して提供されることを特徴とする請求項１６に記載のデバイス。
【請求項２２】
前記モバイルデータストアは、前記エンティティの少なくとも１つに対応するある量のエンティティデータと、前記モバイルデータストアに記憶された合計データ量から前記エンティティデータの量を引いた量に相当するある量の非エンティティデータとを含み、
前記残りのデータ記憶容量は、前記データ記憶容量から前記非エンティティデータの量を引いた量であることを特徴とする請求項２１に記載のデバイス。
【請求項２３】
前記グラフ表現は、前記残りのデータ記憶容量に対応する目盛りを有する棒グラフを含むことを特徴とする請求項２２に記載のデバイス。
【請求項２４】
前記サブスクリプションデータ量の表示は、前記モバイルデータストアの残りのデータ記憶容量と比較して提供されることを特徴とする請求項１５に記載のデバイス。
【請求項２５】
前記モバイルデータストアは、前記エンティティの少なくとも１つに対応するある量のエンティティデータと、前記モバイルデータストアに記憶された合計データ量から前記エンティティデータの量を引いた量に相当するある量の非エンティティデータとを含み、
前記残りのデータ記憶容量は、前記データ記憶容量から前記非エンティティデータの量を引いた量であることを特徴とする請求項２４に記載のデバイス。
【請求項２６】
前記表示は、前記サブスクリプションデータ量のグラフ表現を含むことを特徴とする請求項２５に記載のデバイス。
【請求項２７】
前記グラフ表現は棒グラフを含むことを特徴とする請求項２６に記載のデバイス。
【請求項２８】
前記サブスクリプションデータによって識別される前記エンティティは、カテゴリに関連付けられ、
前記グラフ表現は、前記サブスクリプションデータ量の前記カテゴリごとの内訳を表す
ことを特徴とする請求項２６に記載のデバイス。
【請求項２９】
前記カテゴリは、取引先、連絡先、機会、および活動からなる群から選択されるカテゴリを含むことを特徴とする請求項２８に記載のデバイス。
【請求項３０】
前記表示は、前記サブスクリプションデータ量の数値表現を含むことを特徴とする請求項２６に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般には、モバイルコンピューティングデバイスと中央のデータ記憶システム間の同期動作を管理するシステムおよび方法に関する。
【背景技術】
【０００２】
顧客関係管理（ＣＲＭ）アプリケーションなどの一部の業務用アプリケーションがモバイルコンピューティングデバイスに実装されることが一般的になりつつある。そのようなモバイルコンピューティングデバイスには、携帯情報端末（ＰＤＡ）、携帯電話、および他のモバイルコンピューティングデバイスが含まれる。そのようなシステムのユーザは、一般に、有線または無線のネットワーク接続を通じたサーバの中央データベースとの同期動作を通じてモバイルコンピューティングデバイスのデータベースを更新する。同期動作により、取引先情報などのデータが、モバイルコンピューティングデバイスのユーザによってアクセスできるようになる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
不都合なことに、モバイルコンピューティングデバイスのメモリ容量に制限があるために、中央のデータベースに保持される業務ソリューションデータの完全なアップロードを行うことが望ましくなく、多くの場合は行うことができない。多くの事例では、ユーザの業務ソリューションデータ、あるいはユーザがアクセス権を有するデータは、サイズが１ギガバイトを超える場合がある。このデータ量は、通例、モバイルコンピューティングデバイス、特に携帯電話のローカルの記憶容量を大幅に上回る。大抵の場合、モバイルコンピューティングデバイスで利用できる記憶空間の量と、同期動作を完了するために必要とされる記憶空間の量をユーザが即座に判断することは極めて難しい。その結果、モバイルコンピューティングデバイスに記憶できる容量より多いＣＲＭデータのアップロードを試みることにより、データオーバーフローエラーが発生するのが一般的である。
【０００４】
そのようなエラーは、時間と費用の点から高くつく可能性がある。オーバーフローエラーは、同期動作で、モバイルコンピューティングデバイスで利用できる記憶容量を上回るデータがアップロードされるまで検出されないので、オーバーフローエラーが最初に生じると時間を食う。そのようなエラーの修正は、まずモバイルコンピューティングデバイスでより多くの記憶空間を利用できるようにし、次いで同期動作を再試行する必要性のために、時間がかかる可能性がある。さらに、ユーザは依然として、同期動作の際に受け取る未知の量のデータに対応する記憶容量がモバイルコンピューティングデバイスにあるかどうかを判断することができないので、２度目の同期の試みが成功する保証はない。特に携帯電話と中央のデータベースの間でそのように同期を複数回試みると、一般にネットワーク使用料は分単位であるため、コストが高くつく可能性がある。
【課題を解決するための手段】
【０００５】
本発明は、一般には、中央のデータ記憶システムからモバイルコンピューティングデバイスのモバイルデータストアに業務ソリューションエンティティがロードされる同期動作を管理する方法に関する。この方法では、同期動作の際にモバイルデータストアにロードすべきエンティティを識別するサブスクリプションが定義される。次いで、モバイルデータストアの残りのデータ記憶容量と、サブスクリプションによって識別されるエンティティを記憶するために必要なデータ空間量に相当するサブスクリプションデータの量が推定される。最後に、サブスクリプションデータの量が残りのデータ記憶容量と比較される。
【発明を実施するための最良の形態】
【０００６】
本発明は、一般には、モバイルコンピューティングデバイスと中央のデータ記憶システム間の同期動作を管理するシステムおよび方法に関する。一般に、モバイルコンピューティングデバイスは、ソフトウェアとして実施される業務プロセスまたはアプリケーションを含み、そうしたプロセスまたはアプリケーションで、モバイルコンピューティングデバイスのユーザは、同期動作の際にデータのサブセットがモバイルコンピューティングデバイスにロードされることができるように中央のデータ記憶システムから入手できるデータをフィルタリングすることができる。また、本発明は、ユーザによってサブスクライブされるデータを同期動作の際にモバイルコンピューティングデバイスにアップロードする能力に関する情報をユーザに提供する。そのような情報は同期動作を実行する前にユーザに提供され、それにより、ユーザは、モバイルコンピューティングデバイスに記憶できる以上のデータをアップロードしようとする試みによって生じるオーバーフローエラーを回避することができる。本発明をより詳細に説明する前に、本発明を用いることができる例示的環境の一実施形態について述べる。
【０００７】
（コンピューティング環境）
図１に、本発明を実施することが可能な適切なコンピューティングシステム環境１００の例を示す。コンピューティングシステム環境１００は、適切なコンピューティング環境の一例に過ぎず、本発明の使用または機能の範囲について限定を示唆するものではない。また、コンピューティング環境１００は、例示的動作環境１００に図示される構成要素の１つまたは組み合わせに関連する依存性または必要性を有するものとも解釈すべきでない。
【０００８】
本発明は、多数の他の汎用または特殊目的のコンピューティングシステム環境または構成で動作する。本発明に使用するのに適する可能性があるよく知られるコンピューティングシステム、環境、および／または構成の例には、これらに限定しないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサを利用したシステム、セットトップボックス、プログラム可能な家電製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスを含む分散コンピューティング環境などがある。
【０００９】
本発明は、コンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令との一般的関連で説明することができる。一般に、プログラムモジュールには、特定のタスクを行うか、特定の抽象データ型を実施する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。本発明は、通信ネットワークを通じてリンクされた遠隔の処理デバイスによってタスクが行われる分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含むローカルおよびリモート両方のコンピュータ記憶媒体に置くことができる。
【００１０】
図１を参照すると、本発明を実施する例示的システムは、コンピュータ１１０の形態の汎用コンピューティングデバイスを含む。コンピュータ１１０の構成要素は、これらに限定しないが、処理装置１２０、システムメモリ１３０、およびシステムメモリを含む各種のシステム構成要素を処理装置１２０に結合するシステムバス１２１を含むことができる。システムバス１２１は、各種のバスアーキテクチャのいずれかを使用した、メモリバスまたはメモリコントローラ、ペリフェラルバス、およびローカルバスを含む数種のバス構造のいずれでもよい。限定ではなく例として、そのようなアーキテクチャには、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、およびメザニンバスとも称されるＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスがある。
【００１１】
コンピュータ１１０は、通例、各種のコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０によるアクセスが可能な任意の利用可能媒体でよく、揮発性および不揮発性の媒体、着脱式および固定式の媒体を含む。限定ではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体と通信媒体を含むことができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための方法または技術として実施された、揮発性および不揮発性、着脱式および固定式の媒体が含まれる。コンピュータ記憶媒体には、これらに限定しないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、または他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気記憶装置、または所望の情報の記憶に使用することができ、コンピュータ１１０によるアクセスが可能な他の媒体が含まれる。通信媒体は、通例、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、搬送波や他のトランスポート機構などの変調データ信号として実施し、情報伝達媒体を含む。用語「変調データ信号」とは、信号中に情報を符号化するような方式でその特性の１つまたは複数を変化または設定した信号を意味する。限定ではなく例として、通信媒体には、有線ネットワークや直接配線接続などの有線媒体と、音波、ＲＦ、赤外線、および他の無線媒体などの無線媒体が含まれる。上記の媒体の組み合わせもコンピュータ可読媒体の範囲に含まれる。
【００１２】
システムメモリ１３０は、読み取り専用メモリ（ＲＯＭ）１３１およびランダムアクセスメモリ（ＲＡＭ）１３２などの揮発性メモリおよび／または不揮発性メモリの形態のコンピュータ記憶媒体を含む。起動時などにコンピュータ１１０中の要素間の情報転送を助ける基本ルーチンを含んだ基本入出力システム１３３（ＢＩＯＳ）は、通例、ＲＯＭ１３１に記憶される。ＲＡＭ１３２は通例、処理装置１２０から即座にアクセス可能な、かつ／または現在処理装置１２０によって操作されているデータおよび／またはプログラムモジュールを保持する。限定ではなく例として、図１には、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７を示す。
【００１３】
コンピュータ１１０は、他の着脱式／固定式、揮発性／不揮発性のコンピュータ記憶媒体も含むことができる。単なる例として、図１には、固定式、不揮発性の磁気媒体の読み書きを行うハードディスクドライブ１４１、着脱式、不揮発性の磁気ディスク１５２の読み書きを行う磁気ディスクドライブ１５１、および、ＣＤ−ＲＯＭなどの着脱式、不揮発性の光ディスク１５６または他の光学媒体の読み書きを行う光ディスクドライブ１５５を示す。例示的動作環境で使用することができるこの他の着脱式／固定式、揮発性／不揮発性のコンピュータ記憶媒体には、これらに限定しないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、固体素子ＲＡＭ、固体素子ＲＯＭなどがある。ハードディスクドライブ１４１は通例、インタフェース１４０などの固定式メモリインタフェースを通じてシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は通例、インタフェース１５０などの着脱式メモリインタフェースによりシステムバス１２１に接続される。
【００１４】
上記で説明し、図１に示す、これらのドライブとそれに関連するコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの記憶をコンピュータ１１０に提供する。図１では、例えば、ハードディスクドライブ１４１に、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７が記憶されている。これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７と同じであっても異なってもよいことに留意されたい。ここでは、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７には、それらが少なくとも異なるコピーであることを表すために異なる参照符号を付している。
【００１５】
ユーザは、キーボード１６２、マイクロフォン１６３、およびマウス、トラックボール、タッチパッドなどのポインティングデバイス１６１などの入力装置を通じてコンピュータ１１０にコマンドと情報を入力することができる。他の入力装置（図示せず）には、ジョイスティック、ゲームパッド、衛星受信アンテナ、スキャナなどがある。これらおよび他の入力装置は、多くの場合、システムバスに結合されたユーザ入力インタフェース１６０を通じて処理装置１２０に接続されるが、パラレルポート、ゲームポート、ユニバーサルシリアルバス（ＵＳＢ）などの他のインタフェースおよびバス構造で接続してよい。モニタ１９１または他の種の表示装置も、ビデオインタフェース１９０などのインタフェースを介してシステムバス１２１に接続される。モニタ以外に、コンピュータは、スピーカ１９７やプリンタ１９６などの他の周辺出力装置も含むことができ、それらの出力装置は、出力周辺インタフェース１９５を通じて接続することができる。
【００１６】
コンピュータ１１０は、リモートコンピュータ１８０などの１つまたは複数のリモートコンピュータとの論理接続を使用するネットワーク環境で操作される。リモートコンピュータ１８０は、パーソナルコンピュータ、ハンドヘルドデバイス、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の一般的なネットワークノードであり、通例は、コンピュータ１１０との関連で上述した要素の多くまたはすべてを含む。図１に示す論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１とワイドエリアネットワーク（ＷＡＮ）１７３を含むが、この他のネットワークを含んでもよい。このようなネットワーキング環境は、オフィス、企業内のコンピュータネットワーク、イントラネット、およびインターネットに一般的に見られる。
【００１７】
ＬＡＮネットワーキング環境で使用される場合、コンピュータ１１０は、ネットワークインタフェースあるいはアダプタ１７０を通じてＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境で使用される場合、コンピュータ１１０は通例、インターネットなどのＷＡＮ１７３を通じて通信を確立するためのモデム１７２または他の手段を含む。モデム１７２は、内蔵型でも外付け型でもよく、ユーザ入力インタフェース１６０または他の適切な機構を介してシステムバス１２１に接続することができる。ネットワーク環境では、コンピュータ１１０との関連で図示するプログラムモジュールまたはその一部は、遠隔のメモリ記憶装置に記憶することができる。限定ではなく例として、図１では、リモートアプリケーションプログラム１８５がリモートコンピュータ１８０にある。図のネットワーク接続は例示的なものであり、コンピュータ間に通信リンクを確立する他の手段を使用してよいことは理解されよう。
【００１８】
ソフトウェアとして実施される業務プロセスまたはアプリケーション
本発明の方法およびシステムの一態様は、一般には、オブジェクトリレーショナル（あるいはエンティティリレーショナル）のデータ記憶システムを利用する、ソフトウェアとして実施される業務プロセスまたは業務用アプリケーションのカスタマイズを対象とする。そのようなカスタマイズは、業務の生産性を高めるのに十分な固有性を備え、同時に幅広い顧客基盤を引き付けるだけの一般性を備える、手ごろな価格の業務用アプリケーションの作成を可能にするためにするために望ましい。
【００１９】
本発明の方法およびシステムは、特に、モバイルコンピューティングデバイスで、ＣＲＭ（顧客関係管理）アプリケーションなどの業務用アプリケーションのための業務ソリューションエンティティのカスタマイズとフィルタリングを提供するために使用される場合に有用である。そのようなアプリケーションは、各種の方式で業務を支援するように構成される。例えば、ＣＲＭアプリケーションは、例えば販売部門の社員とサービス部門の社員が、販売の指針（ｌｅａｄ）、顧客の履歴、検索可能な知識ベースなどの情報を共有できるようにすることにより、ビジネスが、収益に結びつく顧客関係を構築することを助ける。例えば、自動車の販売員が顧客の車の走行距離に関心を持つのに対し、保険の販売員は、顧客の年齢や既往歴を知っていることが考えられる。本発明は、自動車販売員および保険販売員、農場経営者、および他の販売員の必要性に合わせてアプリケーションをカスタマイズするために必要なツールを提供する。
【００２０】
図２は、本発明の実施形態による、２００として示すシステムの例の略図である。システム２００は、一般に、中央業務用アプリケーション２０５を有するサーバ２０４上の中央データ記憶システム２０２と、１つまたは複数のモバイルコンピューティングシステム２０６とを含み、各モバイルコンピューティングシステム２０６は、モバイル業務用アプリケーション２０８とモバイルデータ記憶システム２１０を含む。
【００２１】
業務用アプリケーション２０８は、モバイルリレーショナルデータベースあるいはデータベース２１４に含まれるメタデータ２１２によって駆動されることが好ましく、メタデータ２１２は、本発明の一実施形態によれば、中央のデータ記憶システム２０２のリレーショナルデータベースあるいはデータストア２１８に保持される、カスタマイズされたメタデータ２１６のサブセットである。メタデータ（２１２および２１６）は、一般に、システム２０２および２１０のデータ構造の要素を定義し、アプリケーション２０８の動作と表示の方式を制御する。
【００２２】
この手法の利点の１つは、モバイルコンピューティングデバイス２０６のメタデータによって駆動されるアプリケーション２０８を、例えばグラフィカルユーザインタフェースツールを使用したコーディング方法を理解しない管理者によってカスタマイズできることである。また、アプリケーション２０８のコードを再コンパイルすることなく、カスタマイズを、カスタマイズされたメタデータ２１６としてサーバ２０４に、またモバイルメタデータ２１２としてモバイルコンピューティングデバイス２０６（携帯情報端末（ＰＤＡ）、携帯電話など）に容易に展開することができる。さらに、これまでに行われたカスタマイズを一切失わずに、サービスパックのインストールを通じてアプリケーション２０８を更新することができる。その結果アプリケーション２０８は、業務用アプリケーションの開発者の介入を必要とせずに、業務の必要性に合わせて容易に発展することができる。
【００２３】
データ記憶システム２０２および２１０は、エンティティリレーショナル（Ｅ−Ｒ）の記憶システムであることが好ましい。ただし、本発明は、他の種類のデータ記憶システムとともに使用することができ、したがってＥ−Ｒシステムに限定されないことに留意されたい。データ記憶システム２０２および２１０は、それぞれエンティティ（あるいはオブジェクト）のセット２２０および２２２を含み、それらエンティティのセットは、対応するデータベースあるいはデータストア２１８および２１４に記憶されたリレーショナルデータ２２４および２２６に対応する。データ記憶システム２０２および２１０は、データアクセスシステム２２８および２３０も含み、それらはそれぞれ、エンティティリレーショナル（Ｅ−Ｒ）マップ２３２および２３４を使用してデータとエンティティ２２０および２２２とをマッチングさせることにより、リレーショナルデータ２２４および２２６へのアクセスを提供する。ＣＲＭ業務用アプリケーションとの関連で使用することが可能なエンティティの種類の例には、取引先、連絡先、活動、機会、備考、追加アドレス、および、業務用アプリケーションで有用である他の種のエンティティが含まれる。本発明は、他のタイプのエンティティを利用する業務用アプリケーションにも適用されるが、説明を簡略にするために、本発明の実施形態は、ＣＲＭ業務用アプリケーションに関して説明する。
【００２４】
データ記憶システム２０２および２１０は、エンティティ２２０および２２２のオブジェクト間の関係を定義するマップなどの追加的なマップを含むことができる。したがって、取引先のエンティティレコードを、関連する連絡先、活動、および機会のエンティティレコードまたはオブジェクトに対応付けることができる。
【００２５】
データ記憶システム２０２および２１０のエンティティ２２０および２２２は、メタデータ２１６および２１２に従ってレンダリングされることができる。したがって、メタデータ２１６および２１２は、個々のメタデータエンティティからなることができ、各メタデータエンティティは、システム２０２および２１０のエンティティ２２０および２２２の１つを定義する。メタデータ２１６および２１２は、データコンテンツとユーザインタフェースコンテンツを含むエンティティ２２０および２２２の基本的なコンテンツクラスを定義する。データコンテンツは、システムが記憶する情報を表す。例えば、データコンテンツには、顧客、在庫品目、注文などが含まれ、それぞれのコンテンツは、１つのデータフィールドによって定義される。ユーザインタフェースコンテンツは、ユーザが画面またはリポートで目にするコンテンツを含む。ユーザインタフェースコンテンツは、レイアウト情報、メッセージ、データフィールドのラベルなどの事項を含むことができる。これらタイプのコンテンツと他のタイプのコンテンツは、本発明の各種実施形態に従ってカスタマイズすることができる。
【００２６】
メタデータ２１６は、システム２００の管理者またはカスタマイザーからの入力２４２に基づいて、カスタマイズツール２４０を使用してカスタマイズされる。カスタマイズツール２４０は、一般に、メタデータ２１６をカスタマイズする過程でカスタマイザー２４２を支援するグラフィカルユーザインタフェースを提供する。初め、新しい各メタデータエンティティは、デフォルトデータとユーザインタフェースコンテンツの設定を含んだ基本メタデータエンティティからなることができる。カスタマイズツール２４０のユーザインタフェースは、カスタマイザーが、基本メタデータエンティティのデータとユーザインタフェースコンテンツを追加、削除、および変更できるようにすることが好ましい。カスタマイズされたメタデータ２１６がカスタマイザーから提供されると、そのメタデータを使用してモバイルコンピューティングデバイス２０６のアプリケーション２０８がカスタマイズされる。アプリケーション２０８が更新されるか、新しいソフトウェアパッケージがモバイルコンピューティングデバイス２０６にインストールされると、ユーザの介在なしに、そのカスタマイズがインストールされ、自動的に適用される。
【００２７】
図３に、本発明の実施形態によるメタデータ構造とメタデータのカスタマイズを示す。このメタデータ構造は、メタデータ構造ツリー２５０の一部分として表す。図３に示すツリー２５０の部分は、図示上、システム２００のカスタマイズされたメタデータ２１６を定義するはるかに大きなツリーのごく小さな部分に過ぎないことは理解されよう。メタデータ構造ツリーの部分は、データ記憶システム２０２のエンティティ２２０に対応するメタデータエンティティ２５２などのメタデータエンティティを定義する。
【００２８】
図３に示すメタデータ構造ツリーの部分２５０は、このメタデータが、「顧客管理画面」をそれ自体が含む「フォーム」のセクション（ユーザインタフェースコンテンツ）を含むことを表す。「顧客管理画面」は、複数のタブコントロールを有する「フィールド」（データコンテンツ）を含む。「タブコントロール１」には、「フィールド１」が関連付けられている。「フィールド１」は、フィールド名、フィールドの背景色、そのフィールドが使用可能かまたは使用不可にされているか、フィールドの長さ、およびフィールドのデータ型（この場合はＭａｘＶａｌｕｅ）を含む複数のプロパティを有する。言うまでもなく、フィールドは、この他の複数のプロパティも有することができる。
【００２９】
業務ソリューションエンティティ２２０は、対応するメタデータエンティティ２５２によって定義される検索可能なフィールドを含むことができる。例えば、ＣＲＭの業務用アプリケーションに対応する業務ソリューションエンティティは、エンティティタイプのフィールド（取引先、連絡先など）、郵便番号のフィールド、州のフィールド、データフィールド、関連エンティティのフィールド、および他のフィールドを含むことができ、それらのフィールドは、検索可能なデータを含むように構成することができる。下記でより詳細に説明するように、そのようなフィールドは、モバイルコンピューティングデバイス２０６のユーザがサブスクライブし、デバイス２０６にアップロードすることを希望する特定の業務ソリューションエンティティ２２０を識別する目的で使用することができる。
【００３０】
メタデータ構造２５０をカスタマイズするために、カスタマイザー２４２は、カスタマイズツール２４０を通じてカスタマイズの指定を入力する。メタデータ２１６のカスタマイズは、設定の直接的な入力か、またはノードの追加を通じて達成することができる。例えば、名前「ｆｏｏ」を有するフィールドの背景色がメタデータ構造２５０で黄色になっている。カスタマイザーがこの背景色を青に変えたいとする。その場合、カスタマイザーは、カスタマイズツール２４０によって提供されるグラフィカルユーザインタフェースを通じて青への色の変更を直接入力することによって変更を行う。
【００３１】
あるいは、メタデータ２１６のカスタマイズは、差分（ｄｅｌｔａ）を使用して実現することができる。差分は、その元の形態からのメタデータ構造２５０の変化を表す。カスタマイズは、任意数ｎの差分を含むことができ、各差分は、基本構造の既知のインスタンスに対する特定の変化を表す。さらに、差分は、単に既存ノードへの変更を表す必要はなく、メタデータ構造２５０への新しいノードの追加を表すことができる。
【００３２】
例えば、「ｆｏｏ」という名前のフィールドについての上述した変更を行うために、カスタマイザーは、単一の差分を含む単一のカスタマイズを行う。このカスタマイズは、「顧客管理画面」の「タブ１」の下にあるフィールド「ｆｏｏ」に対するものである。カスタマイズは、メタデータストア（データベースあるいはデータストア２１８）の独立した部分、または、リレーショナルデータベース２１８に対応付けられたメタデータカスタマイズエンティティ２５２に記憶することができる。リレーショナルデータベース２１８のメタデータカスタマイズテーブル２５４が、「フォーム」の「顧客管理画面」の部分にある「フィールド」の「タブ１」の下にある「フィールド１」の背景色のプロパティを識別するメタデータＩＤを含んでいる。テーブル２５４は、フィールドの背景色が青に変更された旨の差分を識別する差分情報も含む。このように、差分は、変更されたソースのコピーではない。差分は、構造２５０中で変更すべき値の指定に過ぎない。単に差分を追跡することにより、多くの変更が動的に対象エンティティに適用されることが可能になる。
【００３３】
図４〜６に、メタデータのカスタマイズを通じたアプリケーション２０８のカスタマイズの例を示す。図４〜６に示す例では、自動車の特約販売店Ｍｏｒｔｅｎｓ  Ａｕｔｏｓが、金融ソフトウェアのパッケージを購入すると想定する。このアプリケーションパッケージをインストールし、実行すると、Ｍｏｒｔｅｎｓ  Ａｕｔｏｓは、この製品をカスタマイズして、各顧客の乗用車の好み（色、エンジン、メーカー／車種など）を追跡するフィールド（データコンテンツ）を追加する。また、Ｍｏｒｔｅｎｓ  Ａｕｔｏｓは、顧客の車の好みについての新しいフィールドを顧客画面に追加し、いくつかの使用されないフィールドを削除するとする。
【００３４】
図４に、デフォルトあるいは基本のメタデータエンティティに従って生成された、Ｍｏｒｔｅｎｓ  Ａｕｔｏｓに購入された金融パッケージによって表示されるデフォルトの顧客画面の画面例を示す。画面２６０は、一般に自動車の販売業者業界では使用されない注文一覧のフィールドを含むことが見てとれよう。図４には、メタデータエンティティのカスタマイズが実施された後の同じ顧客画面２６２も示す。当初あった注文一覧のフィールドが、顧客の前回の購入と前回の購入日を示すフィールドに置き換えられている。また、顧客の自動車の好みを表示するための自動車の好みのタブが追加されている。これはすべて、単に、上記のようにシステム２００のカスタマイズツール２４０を使用して、関連付けられたメタデータ２１６をカスタマイズすることによって達成される。
【００３５】
次いで、別の業務ソリューション提供者Ｃｏｎｓｏｔｏがサービスリマインダのための電子メールの通知を導入するとする。さらに、Ｃｏｎｓｏｔｏによって提供される顧客エンティティは、顧客の気に入った技術者の名前に対応する文字列を顧客エンティティに追加し、新しいフィールドのためのテキストボックスを顧客画面に追加するとする。Ｃｏｎｓｏｔｏの顧客画面の例を図５に示す。Ｍｏｒｔｅｎｓ  ＡｕｔｏｓがＣｏｎｓｏｔｏからサービス部門を運営するためのソフトウェアパッケージを購入すると想定する。
【００３６】
インストールされると、手動の介在あるいは手直しを要さずに、それまでに行われたすべてのカスタマイズがなお有効になる。これを図６に示す。例えば、顧客の自動車の好みのフィールドが画面に表示され、本来あった注文のフィールドが画面から削除されている。同様に、Ｃｏｎｓｏｔｏによる顧客画面への変更も提供される。具体的には、顧客エンティティについての新しいフィールドと、顧客画面のテキストボックスが含まれている。上述のように、新しいソフトウェアパッケージがインストールされると、ユーザの介在を要さずに自動的にカスタマイズが有効になる。
【００３７】
（サブスクリプションサービス）
本発明の一態様は、リモートあるいはモバイル型のコンピューティングデバイス２０６上の業務用アプリケーション２０８のサブスクリプションサービスアプリケーションモジュール３００（図２）を対象とする。サブスクリプションサービスアプリケーション３００は、ユーザが、一般にはデスクトップコンピュータなどの非モバイル型のコンピューティングデバイスと比較してデータの記憶容量に制限があるモバイルコンピューティングデバイス２０６に大量の不必要なデータをロードすることを回避できるようにする。また、本発明のこの態様は、ユーザが、自身の業務慣行に関連するエンティティのみを選択できるようにする。
【００３８】
本発明のサブスクリプション態様は、ユーザが、モバイルコンピューティングデバイス２０６におけるエンティティとオブジェクトの表示方式も選択できるようにする。一般に、サブスクリプションは、ユーザによって閲覧されるエンティティの数を、関連するエンティティだけに減らすフィルタとして機能する。エンティティと特定のエンティティオブジェクトをそのようにフィルタリングすると、ユーザは、自分の現在の業務に関連しないモバイルコンピューティングデバイス２０６上の多数のエンティティを選別せずに済むため、モバイルアプリケーション２０８をより効率的に操作することができる。
【００３９】
サブスクリプション３０２は、一般には、それぞれエンティティ２２２、メタデータ２１２、およびデータ２２６としてモバイルデータ記憶システム２１０に記憶するために、同期動作の際に中央の記憶システム２０２からモバイルコンピューティングデバイス２０６に送信すべきエンティティ２２０、対応するメタデータ２１６、およびデータ２２４を識別する。下記でより詳細に説明するように、サブスクリプション３０２は、例えば、エンティティ２２０のリストから直接選択する、エンティティ２２０の各種のカテゴリを選択する、または、所望のエンティティ２２０に対する要求を形成する各種のフィルタクエリ（ＳＱＬ文などのリレーショナルデータベース文）を定義することにより、定義することができる。一旦定義されると、サブスクリプション３０２は、同期動作の際にモバイルコンピューティングデバイス２０６に記憶するために要求あるいは識別されるエンティティ２２０をサーバ２０２から返させる必要なリレーショナルデータベース文を生成することが好ましい。
【００４０】
（サブスクリプションインタフェース）
サブスクリプションサービスアプリケーションモジュール３００は、サブスクリプションインタフェース３０４を生成し、ユーザはこのインタフェース３０４を通じてサブスクリプション３０２を定義する。サブスクリプションインタフェース３０４は、サーバからモバイルコンピューティングデバイス２０６に提供されるサブスクリプションメタデータ３０６に従って生成することができる。サブスクリプションメタデータ３０６は、例えばカスタマイズツール２４０を使用して、利用可能なエンティティ２２０とそれに対応するオブジェクトタイプを選択することにより、サーバの管理者またはカスタマイザー２４２によって構成される。あるいは、メタデータ２１６がサブスクリプションメタデータ３０６を含むことができ、したがって、メタデータ２１６を使用してサブスクリプションインタフェース３０４を生成することもできる。
【００４１】
カスタマイズツール２４０は、管理者２４２によって選択されたエンティティに応じてサブスクリプションメタデータ３０６を生成し、メタデータ３０６には、ヘルプ文字列、ユーザ定義が可能なパラメータ、条件タイプ（テキスト、数など）、ユーザインタフェースコンテンツ、および、モバイルコンピューティングデバイス２０６でサブスクリプションインタフェース３０４を動的に生成するために用いられる他の情報が含まれる。
【００４２】
サブスクリプションインタフェース３０４は、ユーザが、サブエンティティレベルのデータセットまたはレコードへの所望のサブスクリプションを指定するために使用される各種のパラメータを定義するためのグラフィカルユーザインタフェースを含むことが好ましい。初めに、ユーザは、業務用アプリケーション２０８の起動画面３１０を見ることができ、その画面例を図７に示す。起動画面３１０は、ユーザに、サブスクリプションのオプション３１２の選択を通じてサブスクリプションサービスアプリケーションモジュール３０２を起動するオプションを提供する。
【００４３】
サブスクリプションオプション３１２を選択するとサブスクリプション設定のビュー３１４が表示され、その画面例を図８に示す。サブスクリプション設定ビュー３１４は、サブスクリプションメタデータ３０６によって定義されることが好ましく、ユーザがサブスクライブすることが可能なエンティティ２２０の完全で正しい（更新後の）リストを自動的に反映する。
【００４４】
本発明の一態様によれば、エンティティ２２０は、各種のエンティティタイプに分けられる。上記で述べたように、ＣＲＭ業務用アプリケーションの場合のそのようなエンティティタイプには、例えば、取引先、連絡先、機会、活動、およびサブスクリプションメタデータ３０６によって定義される他のタイプのエンティティが含まれる。また、各タイプのエンティティ２２０は、アクティブなエンティティ、非アクティブなエンティティ、郵便番号別のエンティティ、州別のエンティティ、および他のカテゴリなど、カスタマイズされたメタデータ２１６の定義に従ってエンティティ２２０のフィールドで定義される各種のカテゴリに分割することができる。所与のエンティティタイプのカテゴリを選択すると、それによって識別される対応するエンティティ２２０へのサブスクリプション３０２が生成される。そのような選択は、例えば、図８に示す郵便番号別取引先のカテゴリのボックス３１６など、対応するボックスにチェックマークを入れることによって行うことができる。利用可能なカテゴリを選択する他の適切な方法も使用することができる。
【００４５】
図８の例示的なサブスクリプション設定ビュー３１４では、例示的な取引先のエンティティタイプについて利用可能なカテゴリの一部のみを示している。残りの利用可能なエンティティタイプとそれに対応するカテゴリは、取引先のエンティティタイプの一覧の下に提供され、スクロールバー３１８を使用して見ることができる。エンティティタイプごとの独立したタブ付きのページなど、様々なエンティティタイプとカテゴリを表示する代替の方式も使用することができる。
【００４６】
上述のように、業務ソリューションエンティティ２２０は、各種の検索可能なフィールドを含むことができる。本発明の一態様によれば、サブスクリプション３０２は、サブスクリプションメタデータ３０６で定義されたオプションに従って対応するエンティティを取り出すために使用される、パラメータ化されたフィルタを定義するように構成することができる。例えば、ユーザが、郵便番号フィールド、州のフィールド、他のフィールドなど、業務ソリューションエンティティ２２０のフィールドを識別または検索するためのパラメータ化されたフィルタオプションを定義することができる。そして、同期動作の際に、サブスクリプション３０２の検索基準に一致するエンティティ２２０が識別され、モバイルコンピューティングデバイス２０６にアップロードされることができる。本発明で提供される例示的な業務ソリューションエンティティに利用できるカテゴリとフィルタオプションの例は、下記でより詳細に述べる。
【００４７】
（取引先エンティティタイプのサブスクリプションオプション）
取引先のエンティティタイプの場合、カテゴリの選択肢あるいはフィルタオプションは、例えば、Ａｌｌ  Ａｃｃｏｕｎｔｓ、Ｍｙ  Ａｃｔｉｖｅ  Ａｃｃｏｕｎｔｓ、Ａｃｔｉｖｅ  Ａｃｃｏｕｎｔｓ、Ｉｎａｃｔｉｖｅ  Ａｃｃｏｕｎｔｓ（図示せず）などの所定のサブスクリプションを含むことができ、これらを選択するとそれに応じてサブスクリプション３０２が定義される。したがって、Ａｌｌ  Ａｃｃｏｕｎｔｓのカテゴリあるいはフィルタオプションを選択すると、サーバ２０４との同期動作の際に、すべての利用可能な取引先エンティティ２２０または取引先エンティティのレコードがモバイルデバイス２０６にロードされる。同様に、Ｍｙ  Ａｃｔｉｖｅ  Ａｃｃｏｕｎｔｓ、Ａｃｔｉｖｅ  Ａｃｃｏｕｎｔｓ、およびＩｎａｃｔｉｖｅ  Ａｃｃｏｕｎｔｓ（図示せず）を選択すると、それぞれ、ユーザにとってアクティブなすべての取引先、アクティブなすべての取引先、非アクティブなすべての取引先が、モバイルデバイス２０６がサーバ２０４と同期される際にロードされることになる。
【００４８】
上述のように、カテゴリあるいはフィルタオプションは、郵便番号別の取引先および州別の取引先、関連するオブジェクト（図示せず）、および他のフィルタオプションなどの、ユーザによる定義が可能な、あるいはパラメータ化されたフィルタオプションを含むことができる。モバイルコンピューティングデバイス２０６のユーザは、ユーザ定義が可能なフィルタオプションのパラメータを定義することができる各種のビューにアクセスすることができる。そのようなビューは、サブスクリプションメタデータ３０６によって定義され、一般には、ユーザのためのヘルプ文字列または命令と、フィルタパラメータの入力または選択のオプションを含む。
【００４９】
例えば、郵便番号別取引先のカテゴリに対応するアイコン３２０を選択すると、郵便番号のビュー３３０が表示され、その画面例を図９に示す。ユーザは、サブスクライブしたい取引先のエンティティタイプのレコードについて、ビュー３３０で郵便番号のリストを生成することができる。
【００５０】
同様に、州別取引先のオプションのアイコン３３２（図８）を選択すると、州別の取引先のビュー３３４が呼び出され、その画面例を図１０に示す。ユーザは、州別取引先のビュー３３４を使用して、リスト３３６に含まれる州の取引先タイプを有するエンティティにサブスクライブすることができる。リスト３３８から州を選択し、矢印３４０を押すことにより、リスト３３６に州を追加することができる。同様に、リスト３３６で州を選択し、矢印３４２を押すことにより、リスト３３６から州を削除することができる。このようにして、ユーザは、所望の州のリスト３３６を生成し、それにより、リスト３３６に含まれる州に対応する取引先エンティティタイプを有するエンティティ２２０を識別するサブスクリプション３０２を定義することができる。
【００５１】
本発明の一実施形態によれば、サブスクリプション３０２に含めるために、選択されたエンティティまたはエンティティカテゴリに関連する、または関連付けられた、指定されたタイプを有するオブジェクトまたはエンティティを選択するオプションがユーザに与えられる。そのような関係は、選択されたエンティティまたはエンティティカテゴリのＥ−Ｒマッピングデータまたはメタデータによって定義することができる。
【００５２】
例えば、取引先のエンティティカテゴリの１つについて関連するオブジェクトカテゴリあるいはフィルタオプションを選択することができ、それにより、取引先に関連するオブジェクト設定のビュー３４４が開かれ、その画面例を図１１に示す。関連するオブジェクトのオプションには、関連付けられた連絡先、活動、および機会のエンティティタイプが含まれる。備考（サブスクライブされた取引先エンティティレコードに関する備考）、追加アドレス（サブスクライブされる取引先エンティティレコードに関連するアドレス）、および他の関連付けられたオブジェクトなどの追加的な関連オブジェクトも提供することができる。関連付けられた連絡先のエンティティタイプのボックス３４６などの隣接するボックスにチェックマークを入れることにより、関連するエンティティタイプを選択すると、選択されたエンティティタイプに関連付けられ、選択されたエンティティカテゴリのエンティティに対応するエンティティまたはオブジェクトを識別するサブスクリプション３０２が生成される。したがって、ユーザが、サブスクライブするために取引先のエンティティタイプのエンティティカテゴリを選択し、関連付けられた連絡先のエンティティへのサブスクリプションを含めることを選択した場合、サブスクリプション３０２は、選択されたカテゴリに含まれる取引先タイプのエンティティに関連付けられた連絡先タイプのエンティティを識別するように定義される。
【００５３】
再度図８を参照すると、ユーザは、取引先のエンティティタイプに対応するアイコン３４８を選択することもでき、その場合は、取引先のエンティティタイプのレコードまたはオブジェクトが表示されるビューがユーザに対して開かれることができる。サブスクライブされた取引先エンティティのレコードのみが表示されることが好ましい。あるいは、取引先エンティティタイプのすべての利用可能なエンティティ２２０またはレコードが示される。そして、ユーザには、個々のエンティティレコードへのサブスクリプションを追加または削除するオプションが提供されることができる。
【００５４】
（連絡先エンティティタイプのサブスクリプションオプション）
連絡先のエンティティタイプの場合、フィルタオプションは、例えばＡｌｌ  Ｃｏｎｔａｃｔｓ、Ｍｙ  Ａｃｔｉｖｅ  Ｃｏｎｔａｃｔｓ、およびＭｙ  Ｉｎａｃｔｉｖｅ  Ｃｏｎｔａｃｔｓなどの所定のサブスクリプションを含むことができ、それらを選択すると、それぞれ、すべての利用可能な連絡先または連絡先エンティティレコード、ユーザにとってアクティブなすべての連絡先、および、ユーザにとって非アクティブなすべての連絡先を識別するサブスクリプション３０２が生成される。モバイルデバイス２０６をサーバ２０２と同期する際には、サブスクリプション３０２によって識別されるすべてのエンティティ２２０がモバイルデバイス２０６にロードされる。
【００５５】
また、フィルタオプションは、郵便番号別の連絡先、州別の連絡先、関連するオブジェクト、および他のフィルタオプションなどの、ユーザによる定義が可能な、あるいはパラメータ化されたフィルタオプションを含むことができる。ユーザは、各種のビューにアクセスすることができ、そのビューで、上記で取引先エンティティの場合について述べたように、対応する矢印アイコンを選択することにより、ユーザ定義が可能なフィルタオプションのパラメータを定義することができる。そのようなビューは、サブスクリプションメタデータ３０６によって定義され、一般には、ユーザのためのヘルプ文字列または命令と、フィルタパラメータの入力または選択のオプションを含む。
【００５６】
図１２に、連絡先に関連するオブジェクトのビュー３５０の画面例を示し、ここでユーザは、関連する活動（選択されている）、備考、および機会のオブジェクトを追加することができる。州別連絡先のビュー３５２の画面例を図１３に提供する。ユーザは、上記で州別取引先のビューの場合について説明したのと同じ方式で必要とする連絡先にサブスクライブすることができる。郵便番号別の連絡先のビューは、上記で郵便番号別の取引先の場合について説明した方式で動作する。
【００５７】
（活動エンティティタイプのサブスクリプションオプション）
活動のエンティティタイプにも、Ａｌｌ  ＡｃｔｉｖｉｔｉｅｓおよびＭｙ  Ｏｐｅｎ  Ａｃｔｉｖｉｔｉｅｓのサブスクリプションオプションなど、上記と同様のサブスクリプションオプションを提供することができる。あらかじめ定義されたこの他の機会のサブスクリプションオプションには、終了した活動、ある期間（１週間、１カ月など）内に期限がある活動、ある期間（１週間、１カ月など）内に終了する予定の活動、新しい活動、およびユーザが要求する他の事前定義されたサブスクリプションオプションが含まれる。
【００５８】
活動のエンティティタイプには、郵便番号別の活動、州別の活動、活動に関連するオブジェクト、および他のフィルタオプションなど、上記と同様のユーザ定義が可能な、あるいはパラメータ化されたサブスクリプションオプションを提供することができ、ユーザは、上記のように各種のビューを通じてそれらのオプションにアクセスし、定義することができる。活動エンティティには、図１４の画面例に示すように、過去および今後の週に行われる活動および活動のタイプの選択に基づくサブスクリプションなど、ユーザ定義可能な他のサブスクリプションオプションも提供することができる。
【００５９】
（機会エンティティタイプのサブスクリプションオプション）
機会のエンティティタイプには、Ａｌｌ  ＯｐｐｏｒｔｕｎｉｔｉｅｓやＭｙ  Ａｃｔｉｖｅ  Ｏｐｐｏｒｔｕｎｉｔｉｅｓのサブスクリプションオプションなど、上記と同様のサブスクリプションオプションを提供することができる。あらかじめ定義されるその他の機会のサブスクリプションオプションには、終了した機会、ある期間（翌週あるいは翌月など）内に終了する予定の機会、新しい機会、翌週または翌月の新しい機会、先週または先月の新しい機会、および、ユーザの要望に応じた他の事前定義されたサブスクリプションオプションが含まれる。
【００６０】
同様に、郵便番号別の機会、州別の機会、および他のフィルタオプションなど、上記と同様のユーザによる定義が可能な、あるいはパラメータ化されたサブスクリプションオプションを機会エンティティに提供することができ、ユーザは、ユーザ定義可能なサブスクリプションオプションのパラメータを定義することができる各種のビューを通じてそれらのオプションにアクセスすることができる。図１５の画面例に示すように、関連する活動と備考のオブジェクトを含めるオプションなど、機会に関連するオブジェクトのサブスクリプションオプションも提供することができる。
【００６１】
エンティティに固有でないサブスクリプションオプション
本発明のさらに別の実施形態によれば、特定のエンティティタイプ（取引先、連絡先など）に関係なくユーザによる定義が可能なサブスクリプションオプションがユーザに提供される。サブスクリプション３０２は、代わりに、各種のフィールドおよび条件の設定を通じてユーザによって定義されたフィルタクエリを通じてエンティティを識別するように定義される。例えば、ユーザは、日付（図１６）、整数（図１７）、文字列（図１８）、値（図１９）のデータ型、またはその他のデータ型を有する条件およびフィールドに基づくエンティティレコードにサブスクライブすることができる。また、図２０に示すように「所有者」とそれに関連付けられた条件など、より複雑なフィールドをユーザによって設定して、必要とするサブスクリプションを得ることができる。
【００６２】
（同期動作）
ユーザが、自身が事前定義したサブスクリプションの選択と設定に満足すると、ユーザは、図８に示す「ＯＫ」ボタン３６０を選択し、それによりユーザサブスクリプション３０２が設定され、そしてモバイルコンピューティングデバイスが中央のデータ記憶システム２０２と通信状態にあり、ユーザが前回の同期以降の自身のサブスクリプションに変更を行っているか、ユーザの現在のサブスクリプションに新しいデータが利用できるようになっている場合には同期動作が開始される。
【００６３】
中央のデータ記憶システム２０２とモバイルデータ記憶システム２１０間の同期動作の際に、ユーザのサブスクリプション３０２が中央データ記憶システム２０２に送信され、中央アプリケーション２０５によって読み取られて、モバイルコンピューティングデバイス２０６に送信すべきエンティティ２２０とそれに対応するメタデータ２１６およびデータ２２４が判定される。このデータ送信は、図２に示すシンクロナイザ３７０を使用して行われる。シンクロナイザ３７０は、同期エンジン３７２および３７４を含み、この同期エンジンは、中央のデータ記憶システム２０２とモバイルデータ記憶システム２１０間に通信リンクを形成し、システム２００が、周知の方法に従って中央のデータベース２１８とモバイルデータベース２１４間で同期動作を行うことを可能にするように構成される。そのような同期動作は、モバイルコンピューティングデバイス２０６のユーザが途中で中断されることなくアプリケーション２０８にアクセスし、操作できるように、実質的にバックグラウンドで行われることが好ましい。
【００６４】
サブスクリプションリスト２７６で識別されるエンティティ２２０（メタデータ２１６を含む）がモバイルコンピューティングデバイス２０６に送信され、データストア２１４に記憶される。ユーザサブスクリプション３０２で識別されるエンティティ２２０に対応するデータ２２４もモバイルコンピューティングデバイス２０６に送信され、データアクセスシステム２３０によりデータ２２６としてデータストア２１４に記憶されることが好ましい。次いで、アプリケーション２０８は、データストア２１４に保持された対応する送信データ２２６を使用して、カスタマイズされたメタデータエンティティ２１２によって定義されたエンティティ２２２をレンダリングまたは投入する。そして、投入された、またはレンダリングされたエンティティ２２２は、対応するメタデータ２１２によって定義されたフォームまたはビューに従って、モバイルコンピューティングデバイス２０６でユーザに表示されることができる。カスタマイズされたメタデータ２１６とそれに対応するデータ２２４を別々にモバイルコンピューティングデバイス２０６に送信するのに代わる方法の１つは、ユーザのサブスクリプション３０２で識別されるカスタマイズされたエンティティ２０２に対応する、事前に構築されたフォーム（投入されたエンティティ２２０）とビューを送信するものである。
【００６５】
（カスタマイズの方法）
上記の本発明のシステムを使用して、モバイルコンピューティングデバイス２０６でソフトウェアとして実施される業務プロセスをカスタマイズする方法を実施することができる。一般に、システム２００を使用して、メタデータ２１６によって定義されるＣＲＭエンティティ２２０へのサブスクリプション３０２を定義し、そのサブスクリプション３０２で識別されるエンティティ２２０をモバイルコンピューティングデバイス２０６にアップロードすることができる。本発明の各種の実施形態は、サブスクリプション３０２が定義される方式に関する。
【００６６】
本発明の一実施形態によれば、利用可能なエンティティ２２０がユーザに対して表示される。次いで、利用可能エンティティ２２０の少なくとも１つが選択され、選択されたエンティティを識別するサブスクリプション３０２が定義される。
【００６７】
エンティティ２２０には、郵便番号を関連付けることができる。本発明の一実施形態によれば、サブスクリプション３０２を定義するステップは、上記で図８および９を参照して説明したように、郵便番号を選択し、選択された郵便番号に関連付けられたエンティティ２２０を識別するサブスクリプション３０２を定義するステップを含む。
【００６８】
エンティティ２２０には、州を関連付けることもできる。サブスクリプション３０２を定義するステップのさらに別の実施形態によれば、上記で図８、１０、および１３を参照して述べたように、州が選択され、選択された州に関連付けられたエンティティ２２０を識別するサブスクリプション３０２が定義される。
【００６９】
エンティティ２２０には、日付を関連付けることもできる。サブスクリプション３０２を定義するステップの別の実施形態によれば、上記で図１４および１６を参照して述べたように、ある日付またはある範囲にわたる日付が選択され、選択された日付、またはある範囲の日付にある日付に関連付けられたエンティティを識別するサブスクリプション３０２が定義される。
【００７０】
エンティティ２２０は、各種のカテゴリにも関連付けることができる。本発明のさらに別の実施形態によれば、サブスクリプション３０２を定義するステップは、上記で図８を参照して述べたように、利用可能なエンティティカテゴリを表示し、カテゴリを選択し、選択されたカテゴリに対応するエンティティ２２０を識別するサブスクリプション３０２を定義するステップを含む。カテゴリとしては、例えば、アクティブなエンティティ、非アクティブなエンティティ、郵便番号別のエンティティ、州別のエンティティなどが可能である。
【００７１】
また、エンティティ２２０はエンティティタイプに関連付けることができる。エンティティタイプには、例えば取引先、連絡先、機会、活動などが含まれる。本発明の一実施形態によれば、サブスクリプション３０２を定義するステップは、上記で図８、１１、および１２を参照して述べたように、各エンティティタイプのためのカテゴリの１つまたは複数を表示し、エンティティタイプの１つにカテゴリを選択し、選択されたカテゴリに対応するエンティティ２２０を識別するサブスクリプション３０２を定義するステップを含む。
【００７２】
上記の各種方法は、図２に示すシステム２００により、コンピュータ可読媒体に記憶され、マイクロプロセッサによって実行される命令の実行を通じて実施されることができる。この命令は、一般には、サブスクリプションサービスモジュール３００を含むモバイルアプリケーション２０８に対応する。
【００７３】
（記憶容量エステメータ）
分散業務用アプリケーションは、通例、豊富なデータストアを有する。多くの場合、ユーザの個人データストア、あるいはユーザがアクセス権を有するデータストアは、サイズが１ギガバイトを超える可能性がある。このデータ量は、通例、モバイルコンピューティングデバイス２０６、特に携帯電話のローカル記憶容量を大幅に上回る。大半の場合、ユーザが、同期動作を行う前に、自身のモバイルコンピューティングデバイス２０６と同期することができるデータの量と、そのデータ（エンティティ別またはデータレコード別）のサイズがどれほどになるかを迅速に判断することは極めて難しい。そのような情報をユーザに提供すれば、モバイルコンピューティングデバイス２０６が対応できる容量を上回るデータをデバイス２０６にアップロードすることを試みることによって生じるオーバーフローエラーを防ぐために有用と考えられる。
【００７４】
本発明の一態様は、ユーザが同期動作を行って、ユーザが定義したサブスクリプション３０２に対応する業務ソリューションデータまたはエンティティでモバイルコンピューティングデバイスを更新した場合に残るモバイルコンピューティングデバイス２０６のデータ記憶容量をユーザに知らせる記憶容量エステメータ機能を対象とする。この記憶容量エステメータは、一般に、図２１に示す方法を行う。この方法のステップ４００で、ユーザは最初に、上記の要領でサブスクリプション３０２（図２）を定義する。サブスクリプション３０２は、中央のデータ記憶システム２０２との同期動作の際に、モバイルコンピューティングデバイス２０６のモバイルデータストア２１４などにロードすべきエンティティ２２０を識別する。次いで、ステップ４０２で、モバイルコンピューティングデバイス（モバイルデータストア２１４）の残りのデータ記憶容量が推定される。次いでステップ４０４で、サブスクリプションデータの量が推定または計算される。サブスクリプションデータの量は、サブスクリプション３０２によって識別されるエンティティを記憶するために必要とされるデータ空間の量に相当する。最後にステップ４０６で、サブスクリプションデータの量が、残りのデータ記憶容量と比較される。この比較を使用して、サブスクリプション３０２で識別されるエンティティ２２０を受信することにより、モバイルコンピューティングデバイス２０６が中央のデータ記憶システム２０２との同期動作を完了することができるかどうかを評価することができる。
【００７５】
上記の計算または推定のステップ４０２および４０４と、比較のステップ４０６は、例えば、サブスクリプションサービスアプリケーションモジュール３００によりモバイルコンピューティングデバイス２０６で行っても、中央アプリケーション２０５によりリモートシステムで行っても、その両方の組み合わせで行ってもよい。
【００７６】
本発明の一実施形態によれば、同期動作が開始した場合にサブスクリプションデータを受け取るために利用できる残りのデータ記憶容量を推定するステップ４０２は、初めに、モバイルコンピューティングデバイス２０６に現在記憶されている業務ソリューションエンティティ２２２および関連データ（メタデータ２１２およびデータ２２６）に対応するデータの量を判定することによって行われる。同期動作が実行されると、一般には、その結果追加的なエンティティまたはサブスクリプションデータがモバイルデバイス２０６にロードされるか、またはモバイルデバイス２０６に記憶されたエンティティまたはサブスクリプションデータが削除または置き換えられる（更新される）ので、残りのデータ記憶容量を推定する際にはそのようなエンティティデータは考慮に入れないことが好ましい。モバイルデバイス２０６に記憶されたエンティティデータの量は、モバイルアプリケーション２０８により、または、図２に示すようにモバイルデバイス２０６から遠隔に記憶された、またはモバイルデバイス２０６に記憶された、オブジェクトトラッカ（ｔｒａｃｋｅｒ）データ４１０として中央のアプリケーション２０５によって維持することができる。
【００７７】
エンティティデータの量が分かると、モバイルコンピューティングデバイス２０６に記憶された合計データ量から、モバイルコンピューティングデバイス２０６に記憶されたエンティティデータの量を引くことにより、モバイルデバイス２０６に記憶された非エンティティデータの量を求めることができる。そして、データストア２１４のデータ記憶容量などモバイルデバイス２０６のデータ記憶容量から非エンティティデータの量を引くことにより、モバイルデバイス２０６の残りのデータ記憶容量が推定される。
【００７８】
モバイルコンピューティングデバイス２０６のユーザが続いて新しいサブスクリプション３０２を選択するか、既存のサブスクリプション３０２の設定を変更する（方法のステップ４００）と、サブスクリプションデータの量を推定することができる。一般に、サブスクリプションデータの量は、サブスクリプション３０２を中央の業務用アプリケーション２０５に通信し、アプリケーション２０５がそのサブスクリプション３０２に基づいてサブスクリプションデータの量を得ることによって推定される。
【００７９】
上述したように、ステップ４０６は、サブスクリプションデータの量をモバイルデバイス２０６の残りのデータ記憶容量と比較して、オーバーフローエラーを生じずに同期動作が開始することができるかどうかを評価することによって行われる。方法のこのステップは、サブスクリプション設定ビュー３１４（図８）の「推定」ボタン４１２を押すか、同期コマンドを実行することなどを通じて、モバイルデバイス２０６のユーザの要求に応じて開始することができる。あるいは、ユーザがサブスクリプション３０２に変更を行うたびにモバイルコンピューティングデバイス２０６と中央アプリケーション２０５の間で必要な通信を行って、同期動作後に残るモバイルコンピューティングデバイス２０６の推定記憶容量を更新することもできる。
【００８０】
本発明の追加的な実施形態は、現在のサブスクリプション３０２との同期動作を行う能力と、同期動作を行った場合にモバイルコンピューティングデバイスに残るデータ記憶容量に関する情報をユーザに表示することに関する。
【００８１】
本発明の一実施形態によれば、比較ステップ４０６が行われた後、モバイルデバイス２０６が、現在のサブスクリプション３０２との同期動作に対応できるデータ記憶容量を有するかどうかがユーザに通知される。このような通知は、警告メッセージ、同期動作後に残るモバイルコンピューティングデバイス２０６のデータ記憶容量の表示、および他の通知方法を通じてユーザに提供することができる。例えば、モバイルコンピューティングデバイス２０６で利用できる記憶量は、数値で（４２５．６ＭＢ、７０％など）、グラフで（棒グラフ、円グラフなど）、または図８のデータゲージ４１４として表すようにその２つの組み合わせで提供することができる。
【００８２】
ユーザによってサブスクライブされた特定エンティティ２２０のサイズに関する詳細も提供することができる。本発明の一実施形態によれば、そのような詳細な情報には、「詳細」ボタン４１６（図８）を選択して、空間使用状況の詳細ビュー４１８を開くことにより、ユーザがアクセスすることができる。ビュー４１８の画面例を図２２に示す。空間使用状況詳細のビュー４１８は、数値、グラフ表現、またはそれらの組み合わせの表示を通じて、同期動作後に残るモバイルコンピューティングデバイス２０６の記憶容量の情報をユーザに提供することが好ましい。また、図８のサブスクリプション設定のビュー３１４に示すように、取引先エンティティが１００ＭＢなど、エンティティタイプ（取引先、連絡先、活動、機会など）ごとのサブスクリプションのサイズの表示をユーザに提供することができる。そのような情報で、ユーザは、サブスクリプションデータがどのように割り当てられているかを即座に理解することができる。エンティティサブスクリプションのデータサイズを数値として提供する代わりにグラフ表現を使用できることを理解されたい。例えば、棒グラフまたはデータゲージで、特定のエンティティサブスクリプションについての同期動作の合計データ量の比率を示すことができる。
【００８３】
図２３に、本発明の一実施形態による、ユーザが同期動作を続行することを選択した場合に残るモバイルコンピューティングデバイス２０６の記憶容量の推定の表示４２０を示す。表示４２０は、図８のサブスクリプション設定ビュー３１４でデータゲージ４１４に代えて提供することができる。表示４２０は、同期動作が完了した後に残るモバイルコンピューティングデバイス２０６の推定記憶容量と併せて、各エンティティタイプのサブスクリプションのサイズについての詳細な情報をユーザに提供することが好ましい。
【００８４】
本発明の一実施形態によれば、モバイルデバイス２０６の残りの記憶容量の推定を棒グラフ全体４２２によって表す。提案される同期動作の合計データはさらにエンティティタイプごとの構成要素に分割され、構成要素のサイズが、対応するデータ量を表す。図２３に示す例では、棒グラフ全体が、取引先の構成要素４２４、連絡先の構成要素４２６、機会の構成要素４２８、および活動の構成要素４３０に分割されている。棒グラフ４２２の各構成要素は、互いを区別するために異なる網掛けになっている。あるいは、棒グラフ全体の構成要素は、異なる色、見出し、または他の判別可能な特徴を用いて相互に区別することができる。
【００８５】
同期動作後に残るモバイルコンピューティングデバイス２０６の記憶容量の推定（図２１のステップ４０６）で、モバイルコンピューティングデバイス２０６に提案される同期動作を行うのに十分な記憶容量がないことが示される場合、同期動作は行われないことが好ましく、ユーザにその問題が通知される。また、ユーザには、モバイルコンピューティングデバイス２０６の記憶容量が超えた量の推定を提供することができる。そして、ユーザは、サブスクリプションデータの量がモバイルコンピューティングデバイス２０６で対応できる量に減らされるまで、サブスクリプション３０２を変更する機会を与えられる。その結果、本発明は、データ容量のオーバーフローのエラーを回避し、複数回同期動作を試みる必要性をなくす。
【００８６】
本発明について特定の実施形態を参照して説明したが、当業者は、本発明の主旨および範囲から逸脱することなく、形態と詳細に変更を加えてよいことを認識されよう。
【図面の簡単な説明】
【００８７】
【図１】本発明を使用することができる環境のブロック図である。
【図２】本発明の実施形態による、コンピュータによって実施される業務プロセスをカスタマイズするための本発明の方法を実施するように構成されたシステム例のブロック図である。
【図３】本発明の実施形態によるメタデータ構造とカスタマイズの一実施形態の図である。
【図４】本発明の実施形態によるシステム画面のカスタマイズの一例を示す画面例を示す図である。
【図５】本発明の実施形態によるシステム画面のカスタマイズの一例を示す画面例を示す図である。
【図６】本発明の実施形態によるシステム画面のカスタマイズの一例を示す画面例を示す図である。
【図７】本発明の実施形態によるモバイル業務用アプリケーションの起動画面の画面例を示す図である。
【図８】本発明の実施形態によるサブスクリプション設定のビューの画面例を示す図である。
【図９】本発明の実施形態による郵便番号のビューの画面例を示す図である。
【図１０】本発明の各種の実施形態による州のビューの画面例を示す図である。
【図１１】本発明の実施形態による関連オブジェクト（あるいはレコード）設定のビューの画面例を示す図である。
【図１２】本発明の実施形態による関連オブジェクト（あるいはレコード）設定のビューの画面例を示す図である。
【図１３】本発明の実施形態による州のビューの画面例を示す図である。
【図１４】本発明の実施形態による過去および将来の活動のビューの画面例を示す図である。
【図１５】本発明の実施形態による関連レコード設定のビューの画面例を示す図である。
【図１６】本発明の実施形態によるエンティティに固有でないサブスクリプションオプションビューの画面例を示す図である。
【図１７】本発明の実施形態によるエンティティに固有でないサブスクリプションオプションビューの画面例を示す図である。
【図１８】本発明の実施形態によるエンティティに固有でないサブスクリプションオプションビューの画面例を示す図である。
【図１９】本発明の実施形態によるエンティティに固有でないサブスクリプションオプションビューの画面例を示す図である。
【図２０】本発明の実施形態によるエンティティに固有でないサブスクリプションオプションビューの画面例を示す図である。
【図２１】本発明の実施形態による同期動作を行う前にモバイルコンピューティングデバイスの残りの記憶容量を推定する方法を説明するフローチャートを示す図である。
【図２２】本発明の実施形態による空間使用状況の詳細のビューの画面例を示す図である。
【図２３】本発明の一実施形態による、ユーザが同期動作を続行することを選択した場合に残るモバイルコンピューティングデバイスの記憶容量の推定の表示を示す図である。
【符号の説明】
【００８８】
１２０  処理装置
１３０  システムメモリ
１３４、１４４  オペレーティングシステム
１３５、１４５  アプリケーションプログラム
１３６、１４６  他のプログラムモジュール
１３７、１４７  プログラムデータ
１４０  固定式、不揮発性メモリインタフェース
１５０  着脱式、不揮発性メモリインタフェース
１６０  ユーザ入力インタフェース
１６１  ポインティングデバイス
１６２  キーボード
１６３  マイクロフォン
１７０  ネットワークインタフェース
１７１  ローカルエリアネットワーク
１７２  モデム
１７３  ワイドエリアネットワーク
１８０  リモートコンピュータ
１８５  リモートアプリケーションプログラム
１９０  ビデオインタフェース
１９１  モニタ
１９５  出力周辺インタフェース
１９６  プリンタ
１９７  スピーカ
２４２  カスタマイザー
２４０  カスタマイズツール
２０５  アプリケーション
４１０  オブジェクトトラッカ
３０６  サブスクリプションメタデータ
３７０、３７４  同期エンジン
２２８、２３０  データアクセスシステム
２２０、２２２  エンティティ
２１６、２１２  メタデータ
２２４、２２６  データ
２３２、２３４  Ｅ−Ｒマッピング
２０８  アプリケーション
３７４  サブスクリプションサービス
３０４  サブスクリプションインタフェース
３０２  ユーザサブスクリプション
２５２  メタデータカスタマイズエンティティ
２１８  リレーショナルデータベース
２５４  メタデータカスタマイズテーブル
【図１】
2005310121.tif 000003
【図２】
2005310121.tif 000004
【図３】
2005310121.tif 000005
【図４】
2005310121.tif 000006
【図５】
2005310121.tif 000007
【図６】
2005310121.tif 000008
【図７】
2005310121.tif 000009
【図８】
2005310121.tif 000010
【図９】
2005310121.tif 000011
【図１０】
2005310121.tif 000012
【図１１】
2005310121.tif 000013
【図１２】
2005310121.tif 000014
【図１３】
2005310121.tif 000015
【図１４】
2005310121.tif 000016
【図１５】
2005310121.tif 000017
【図１６】
2005310121.tif 000018
【図１７】
2005310121.tif 000019
【図１８】
2005310121.tif 000020
【図１９】
2005310121.tif 000021
【図２０】
2005310121.tif 000022
【図２１】
2005310121.tif 000023
【図２２】
2005310121.tif 000024
【図２３】
2005310121.tif 000025
【外国語明細書】
2005310121000001.pdf