説明

データの同期のための検索ベースの仕様

データ同期のための検索ベースの仕様のシステムおよび方法が記載される。いくつかの実施形態では、クライアント装置の情報をサーバから同期させる方法は、クライアントにおいて、サーバから通信を受信して、クライアント装置とサーバとの間の情報を同期させることを含み、この情報は、検索機構によって、1つ以上の検索基準に従い、サーバにおける全てのアプリケーションデータから選択され、サーバからの伝送に先立ち、順番に並べられ、かつ、サーバから受信した情報の少なくとも一部に従いクライアントにおけるアプリケーションデータを同期させるオペレーションを行うことを含む。他の実施形態もまた記載される。

【発明の詳細な説明】
【技術分野】
【0001】
[0001] 開示される実施形態は概して、クライアント‐サーバの相互作用の分野に関し、特に、クライアント装置とサーバとの間のデータの同期に関する。
【背景技術】
【0002】
[0002] 多くのソフトウェアアプリケーション(例えば、電子メール)は、クライアント装置およびサーバシステムの両方で、または、サーバシステムからの助力を得てクライアント装置において動作するよう設計されている。こうしたアプリケーションは、ユーザがクライアント装置またはサーバのいずれで操作しているかにかかわらず、ユーザがデータを自由に作成、受信、伝送および修正することを可能にする。クライアントとサーバとの間のデータの同期は、クライアントおよびサーバに存在するアプリケーションデータ間の整合性を維持させることができる。効率性を理由として、クライアント装置は一般的に主にローカルに記憶されたデータを用いて動作するため、同期は重要である。一般的な一実装は、クライアント‐サーバアプリケーションに関連したデータの完全なセットをサーバにおいて記憶し、かつ、ユーザに関連するか、またはユーザによって通常使用されるデータのサブセットをクライアント装置において保持することである。サーバデータをクライアント装置に同期させるとき、同期方法の多くは、同期されたデータの使用を許可する前に、完全なローカルキャッシュのプライミング(priming)を必要とする。実際、同期は典型的に、全か無かのプロセスである。ローカルキャッシュが完全にプライミング(primed)されない場合、データのいずれもクライアントによって使用することができない。
【0003】
[0003] クライアントは一般に、メモリによって制約されるので、サーバに存在するアプリケーションデータのサブセットを含む。クライアントに同期させるためのサーバアプリケーションデータは、クライアントのユーザに最も関連する情報が同期されるように選択されるべきである。従来の同期機構の多くは、同期のためにユーザに関連する情報を選択し優先度を付ける能力を欠いている。例えば、情報データを組織化するためにフォルダを使用する同期システムにおけるデータは限定的である。これらのデータは、データ同期の間、1つのフォルダに関連付けられて分類されるのみでありうる。さらに、アプリケーションデータがフォルダに分類されていないシステムは、同期のためのデータの選択が一層困難になる。既存の同期機構の欠点を克服する、より柔軟なシステムが望ましい。
【発明の概要】
【0004】
[実施形態の概要]
[0004] いくつかの実施形態では、サーバからクライアント装置の情報を同期させるための方法は、クライアントにおいて、サーバから通信を受信して、クライアント装置とサーバとの間の情報を同期させることを含み、この情報は、検索機構によって、1つ以上の検索基準に従い、サーバにおける全てのアプリケーションデータから選択され、サーバからの伝送に先立ち、順番に並べられ、かつ、サーバから受信した情報の少なくとも一部に従いクライアントにおけるアプリケーションデータを同期させるオペレーションを行うことを含む。
【0005】
[0005] 他の実施形態では、本方法は、クライアントへの伝送前に、サーバにおいて並べられたように、高い優先度から低い優先度の順で、クライアントにおけるアプリケーションデータに、オペレーションの追加、削除および修正のうち少なくとも1つを行う命令を有する情報を含む。
【0006】
[0006] また別の実施形態では、本方法の受信は、同時に動作する2つの独立した同期機構を含み、第1の同期機構は、優先度の順に情報の第1の部分を同期させ、第2の同期機構は、時系列で情報の第2の部分を同期させる。
【0007】
[0007] いくつかの実施形態では、本方法は、サーバから情報を受信する責任を負う1つ以上の同期機構から独立している同期機構において、未同期のアプリケーションデータ変更を同時にサーバに対して送信することを含む。
【0008】
[0008] 別の実施形態では、本方法は、選択された情報が、クライアントに伝送される情報を特定の順序で優先度を付けることができるように優先度が付けられうる検索機構によって行われる検索を含む。
【0009】
[0009] 本開示のいくつかの実施形態は、サーバがクライアントと情報を同期させるための方法であって、サーバにおいて、同期に先立ちアプリケーションデータに検索を行うために使用される1つ以上の検索基準を決定することと、サーバにおける検索機構を使用し1つ以上の検索基準に従い、サーバにおける全てのアプリケーションデータから情報を選択することと、選択された情報をクライアントに伝送することと、クライアントに正常に同期された伝送された情報のレコードを付けることとを含む方法を含む。
【0010】
[0010] いくつかの実施形態では、本サーバ方法は、選択された情報をクライアントに伝送する責任を有する1つ以上の同期機構から独立している同期機構において、未同期のアプリケーションデータ変更を同時にクライアントから受信することを含む。別の実施形態では、未同期のアプリケーションデータ変更は、選択された情報をクライアントに伝送する責任を有する同期機構に対して連続的に同期されうる。
【0011】
[0011] 他の実施形態では、本サーバ方法の選択された情報は、サーバにおけるデータアイテムおよびデータへの変更オペレーションの両方を含むことができる。データは、高い優先度から低い優先度に並べられかつクライアントに同期される。変更オペレーションは、サーバで各変更オペレーションがいつ発生したかに基づき古いものから新しいものに時系列で並べられかつ同期される。
【0012】
[0012] いくつかの実施形態では、本サーバ方法の伝送は、同時に動作する2つの独立した同期機構を含み、第1の同期機構は、優先度の順に情報の第1の部分を同期させ、、第2の同期機構は、時系列で情報の第2の部分を同期させる。
【図面の簡単な説明】
【0013】
[0013] 本発明の本質および実施形態の理解を深めるために、以下の実施形態の説明および図面を参照されたい。図面において同様の符号は対応する部分を示す。
【0014】
【図1】[0014] 図1は、本発明のいくつかの実施形態に従うクライアント‐サーバベースのネットワークシステムを示す図である。
【図2】[0015] 図2は、本発明のいくつかの実施形態に従うクライアント‐サーバベースのネットワークシステムにおける例示的なサーバを示すブロック図である。
【図3】[0016] 図3は、本発明のいくつかの実施形態に従うサーバと相互作用する例示的なクライアントを示すブロック図である。
【図4】[0017] 図4は、本発明のいくつかの実施形態に従うサーバとクライアント間の例示的な同期相互作用スキームを示す図である。
【図5】[0018] 図5は、本発明のいくつかの実施形態に従うデータ同期のための検索を行うための例示的な検索仕様を示す図である。
【図6】[0019] 図6は、本発明のいくつかの実施形態に従う例示的なコンフィギュレーション仕様を示す図である。
【図7】[0020] 図7は、本発明のいくつかの実施形態に従うメッセージなどの例示的なデータに含まれる情報を示す図である。
【図8】[0021] 図8(A)〜(D)は、本発明のいくつかの実施形態に従うアプリケーションデータのセットから情報を選択する例示的な検索ベースの機構を示す図である。
【図9】[0022] 図9は、本発明のいくつかの実施形態に従う検索機構によって選択されたサーバデータを受信するクライアントの例示的な方法を示すフロー図である。
【図10】[0023] 図10は、本発明のいくつかの実施形態に従う検索機構によって選択されたサーバアプリケーションデータを送信するサーバの例示的な方法を示すフロー図である。
【発明を実施するための形態】
【0015】
[実施形態の説明]
[0024] 本発明は、クライアント‐サーバシステムに関し、クライアントとサーバとの間のアイテムの同期の方法およびシステムに対応する。本開示は、データの同期のための検索ベース仕様を説明する。この実装は、検索基準に基づく検索のリストによって同期を制御する。検索ベースのデータ同期は、サーバおよびクライアントにおいて独立して操作されうるアプリケーションデータおよびアプリケーションデータ変更を有する全てのタイプのクライアント‐サーバアプリケーションの同期に適用可能である。
【0016】
[0025] 図1は、例示的なクライアント‐サーバベースのネットワークシステムを概略的に示す。クライアント‐サーバベースのネットワークシステムは、サーバ102、通信のためのネットワーク104、および複数のクライアント装置106A−Cを含む。本システムの一般的な実装は、少なくとも1つのサーバ、少なくとも1つの通信ネットワーク、および複数のクライアント装置を有することが理解されるべきである。別のコンフィギュレーションでは、本システムは、複数のサーバ、複数のネットワーク、および複数のクライアント装置を含んでもよい。
【0017】
[0026] いくつかの実施形態では、サーバ102およびクライアント106を接続するネットワーク104は、プライベートまたはパブリックネットワークであることができ、データ交換が可能であるようにサーバ104とクライアント106との間の通信を可能にするために有線または無線であることができる。いくつかの実施形態では、ネットワークは、インターネットであることができ、他の実施形態では、通信ネットワークは、プライベートであるか、またはユーザのグループにアクセスを制限するセキュリティを有しうる。後者の場合、ネットワークはLANでありうる。ネットワーク104の他の実施形態は、WiFiネットワークおよび/またはWiMaxネットワークも含みうる。ネットワーク104の別の実施形態は、携帯電話およびスマートフォンなどのモバイル装置によるデータの伝送および受信を可能にするセルラーネットワークでありうる。このようなセルラーネットワークは、料金を支払った加入者のみがこれにアクセスできる場合、プライベートであるとみなすことができる。
【0018】
[0027] クライアント装置106は、多様な形態を取りうる。いくつかの実施形態では、クライアント装置は、コンピュータサーバと通信するローカルコンピュータでありうる。他の実施形態では、クライアント装置は、パーソナルデジタルアシスタント(PDA)、スマートフォンまたは携帯電話の1つでありうる。クライアント装置は、サーバにおいても動作するソフトウェアアプリケーションを動作させうるか、または、サーバにおいて動作するアプリケーションバックエンドと協働するアプリケーションフロントエンドを動作させうる。サーバ102は、管理、データストレージリクエスト、アプリケーションの組織化および/または実行に関連したオペレーションを行うことができる。本開示においては、クライアント106およびサーバ102は、同期されるアプリケーションデータおよびアプリケーションデータ変更を記憶することができるメモリを含む。サーバおよびクライアントのより詳細な説明は、以下の図2および図3においてそれぞれなされる。
【0019】
[0028] 図2は、図1を参照して記載されたクライアント‐サーバベースのネットワークシステムにおける例示的なサーバのブロック図である。サーバ200は典型的には、1つ以上の処理装置(CPU)202、1つ以上のネットワークまたは他の通信インターフェース206、メモリ205、およびこれらの構成要素を相互に接続するための1つ以上の通信バス204を含む。メモリ205は、DRAM、SRAM,DDR RAMなどの高速ランダムアクセスメモリ、またはその他のランダムアクセス固体記憶装置、および、磁気ディスク記憶装置、光学ディスク記憶装置、フラッシュメモリ素子などの不揮発性メモリ、またはその他の不揮発性固体記憶装置を含む。メモリ205は、CPU202から遠隔に位置する1つ以上の記憶装置を任意に含みうる。
【0020】
[0029] いくつかの実施形態では、メモリ205は、オペレーティングシステム207、通信モジュール208、サーバアプリケーションモジュール209、サーバ同期モジュール210およびデータ構成207を含む、プログラム、モジュールおよびデータ構成またはこれらのサブセットを記憶する。これらの構成要素の図示した編成は、例示であり、構成要素に起因する機能性の代替的な構成または編成を妨げるものでないことを理解されたい。他の実施形態は、これらの構成要素、及びこれらの構成要素のサブセットまたはスーパーセットに起因する機能を任意に組合せることができる。これは、サーバまたはクライアント装置を参照して本明細書において記載される一切のソフトウェア構成要素にも当てはまる。
【0021】
[0030] オペレーティングシステム207は、多様な基本的システムサービスを処理するため、およびハードウェア依存タスクを行うためのプロシージャを含む。
【0022】
[0031] 通信モジュール208は、サーバアプリケーション209を他のサーバまたはクライアント装置にインターフェース接続するために使用される。通信モジュール208を使用するインターフェース接続は、1つ以上の通信ネットワークインターフェース206(有線または無線)および、インターネット、その他の広域ネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなどの1つ以上の通信ネットワークを介して達成される。
【0023】
[0032] アプリケーションモジュール209は、クライアント駆動のまたはサーバ駆動の種々のアプリケーションを含む。アプリケーションがクライアント駆動のアプリケーションである場合で、アプリケーションがサーバにおいてアクティブであるとき、アプリケーション自体は、クライアント装置における対応するアプリケーションから発せられるコマンドによって駆動される。アプリケーションがサーバ駆動のアプリケーションである場合で、アプリケーションがサーバにおいてアクティブであるとき、サーバにおけるアプリケーションは、クライアント装置における対応するアプリケーションを駆動させる。いくつかの実施形態では、アプリケーションは、クライアントとサーバとにより等しく駆動され、携帯電話などのクライアント装置におけるオペレーションのために構成および適応されることができ、かつ、サーバ同期モジュール210を含みうる。
【0024】
[0033] サーバ同期モジュール210は、クライアントおよびサーバにおいて動作するか、またはクライアントとサーバとの間で協働して動作する(電子メールクライアントおよびサーバアプリケーションの場合と同様)1つ以上のアプリケーションによって使用されうるデータの同期に使用される。同期モジュール210は、単一のアプリケーションに特有であるか、1つ以上のアプリケーションに汎化可能な同期コンフィギュレーションを含みうる。一実施形態では、同期モジュール210は、ダウンヒル(downhill)同期モジュール220、アップヒル(uphill)同期モジュール280および同期制御290を含む。これらのモジュールの機能は、図3を参照して記載されるクライアントにおけるその対応モジュールに相当する。
【0025】
[0034] ダウンヒル同期モジュール220は、サーバアプリケーションデータのクライアントへの同期の責任を有する。ダウンヒル同期は、サーバにおけるアプリケーションデータおよび、そのデータへの変更が、クライアントアプリケーションデータに反映されることを確かにする。一実施形態では、ダウンヒル同期は、フォワード(forward)同期およびバックワード(backward)同期を含む。いくつかの実施形態では、フォワード同期は、データへのオペレーションまたは変更(例えば、メッセージに星を追加する、メッセージにラベルを追加または削除する、メッセージを受信する、メッセージを送信する、連絡先をアップデートするなど)を時系列でクライアントに同期させる。他の実施形態では、バックワード同期は、以前の状態からのデータ(例えば、既存のメッセージ、連絡先など)を優先度の順にクライアントに同期させる。
【0026】
[0035] アップヒル同期モジュール230は、クライアントデータ変更(例えば、メッセージが作成された、メッセージが削除された、ラベルが追加または削除された、アポイントメントの情報の変更など)をサーバに同期させる責任を有する。すなわち、アップヒル同期は、クライアントにおけるアプリケーションデータ変更が、サーバアプリケーションデータに反映されることを確かにする。ダウンヒル及びアップヒル同期の両者は、2008年10月に出願された関連する特許出願第xx/xxx,xxx号に、より詳細に開示され、その全体を本明細書の一部を構成するものとしてここに援用する。
【0027】
[0036] 同期制御240は、通信ネットワークへの接続性、未同期のデータの検出またはデータ同期が行われるときに存在する他の条件に従い、データ同期のオペレーションを制御する。一実施形態では、サーバは、クライアントからの同期リクエストにレスポンスすることによって同期を開始するよう構成されるが、その逆もまた可能である。
【0028】
[0037] 検索モジュール250は、クライアントとのダウンヒル同期に先立ち、サーバによって使用され、サーバにおける所定の基準を満たすデータおよびデータ変更を選択し、ソートする。検索モジュール250は、ユーザに最も関連するサーバデータが指定の基準に従い選択され、優先度が付けられ、クライアントに同期されることを可能にし、それにより、最も関連する情報が、より関連しない情報よりも前にクライアントに送信される(expedited)。これらの指定された基準を使用して、検索モジュールは、所望の効果を得るために多様なコンフィギュレーションで検索を行いうる。例えば、一連の基準が使用される場合では、複数の検索が、一度に1つの基準を使用して行われうる。他の実施形態では、単一の検索が基準の組合せを使用して行われうる。種々のコンフィギュレーションの検索の結果は多様なものになる。一実施形態では、種々のコンフィギュレーションの検索は、各データ同期について、データの特定の望ましい順序付けを得るために行われうる。他の実施形態では、様々な時間における同期のため、データまたはデータ変更を種々のグループに分離することが目的でありうる。
【0029】
[0038] データモジュール270は、アプリケーションモジュール209内のアプリケーションによって使用されるアプリケーションデータ277、グローバルヒストリテーブル271およびクライアントデータ273を含む。クライアントデータ273は、個別のクライアント272A、Bのそれぞれについての情報を含む。個別のクライアントのそれぞれについての情報は、同期トークン278、クライアントコンフィギュレーションデータ279、キャッシュされたクライアントデータ276、およびクライアント281についての他のデータを含む。
【0030】
[0039] グローバルヒストリテーブル271は、同期機構の一実施形態では、サーバデータに行われたデータオペレーションについての情報を含み、フォワード同期に使用される。各グローバルヒストリテーブルは、複数のサーバヒストリオペレーション識別(server history operation identifications)(SHO ID)を含み、各SHO IDは、サーバデータの1つに行われた個別のオペレーションを表す。いくつかの実施形態では、グローバルヒストリテーブルにおける情報は、時系列で記憶されている。
【0031】
[0040] 同期トークン278は、サーバが知っているクライアントの状態に関するサーバによって維持されるデータを表す。いくつかの実施形態では、これらの同期トークンは、アップヒル同期においてサーバが処理したクライアントからの最高位のCHO IDを含む。他の実施形態では、同期トークンは、バックワード同期においてクライアントが処理したと確認されたデータの範囲を表す。上述の関連出願で説明したように、これらのトークンは、バックワード同期の間にサーバデータを識別し優先度を付けるために使用される。一意の識別は、正しいデータが同期されることを確かにする。
【0032】
[0041] コンフィギュレーション仕様データ279は、クライアントとの同期を行うためにサーバによって使用されるコンフィギュレーション情報である。コンフィギュレーション情報は、検索基準(例えば、データのフィールド、データのコンテンツ、データに関連づけられたラベルなど)、同期されるアイテム数、同期されるデータの優先度などを含みうるがこれらに限定されない。
【0033】
[0042] キャッシュクライアントデータ276は、特定のクライアントに属するサーバにおける他の全てのデータを含み、その他のクライアントアプリケーションデータを含みうるがこれに限定されない。他のクライアント特有データ281は、他のアプリケーションについての他の同期に特有の情報を含みうるがこれに限定されない。
【0034】
[0043] 図3は、サーバと相互作用する例示的なクライアント300を示すブロック図である。クライアント300は、一般に1つ以上の処理装置(CPU)302、1つ以上のネットワークまたは他の通信インターフェース306、メモリ305、およびこれらの構成要素を相互に接続するための1つ以上の通信バス304を含む。通信バス304は、システム構成要素を相互接続し、これららの間の通信を制御する回路(チップセットとも呼ばれる)を含みうる。
【0035】
[0044] クライアント装置300は、ディスプレイ392といった出力装置、スピーカ(図示せず)などの音声出力およびユーザ入力装置394を有するユーザインターフェース390を含みうる。ディスプレイ392は、アクティブマトリックスディスプレイまたはタッチスクリーンディスプレイなどであることができ、ユーザ入力装置394は、例えば、数値入力キーパッド、ソフトキー、タッチパッド、英数字入力キーバッド、またはタッチスクリーンなどの任意の組合せを含みうる。メモリ305は、高速ランダムアクセスメモリを含むことができ、また、中央処理装置302から遠隔に位置することができる1つ以上の磁気ディスク記憶装置およびフラッシュメモリなどの持ち運び可能な記憶装置などの非不揮発性メモリも含みうる。いくつかの実施形態では、メモリ305は、オペレーティングシステム301、通信モジュール303、グラフモジュール307、メモリキャッシュ308、クライアントアプリケーションモジュール310、クライアント同期モジュール320およびデータ380を含むプログラム、モジュールおよびデータ構成、またはこれらのサブセットを記憶しうる。
【0036】
[0045] オペレーティングシステム301は、多様なベーシックシステムサービスを処理するため、およびハードウェア依存タスクを行うためのプロシージャを含む。
【0037】
[0046] 通信モジュール303は、1つ以上の通信ネットワークインターフェース306(有線または無線)およびインターネット、他の広域ネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、セルラーネットワークなどの1つ以上の通信ネットワークを介して、クライアントアプリケーション310をサーバに接続する。
【0038】
[0047] メモリキャッシュ308は、アクティブなアプリケーションによる素早いアクセスのために情報を一時的に記憶する。記憶される情報の例としては、アプリケーションに特有のメタデータおよび他の情報が含まれうる。一般に、アプリケーションが非アクティブになると、情報は消去される。
【0039】
[0048] クライアントアプリケーションモジュール310は、クライアント装置300において実行されることができる1つ以上のアプリケーションを含む。こうしたアプリケーション310のいくつかは、サーバ200と相互作用し、通信、ユーザインターフェース管理、アプリケーションカスタマイゼーション、および電子メール、カレンダー、テキストメッセージ、メディアプレイヤー、文書編集または閲覧ソフトウェアなどを含む特定のクライアントアプリケーションの管理に関連したタスクを行うよう構成される。クライアントアプリケーションは動作中、クライアント装置によって駆動される。
【0040】
[0049] クライアント同期モジュール320は、クライアント装置またはサーバで独立して動作できるアプリケーションについてのデータの同期に使用される。クライアント同期モジュール320は、単一のアプリケーションに特有であるか、または複数のアプリケーションに汎用的である同期スキームを含みうる。一実施形態では、クライアント同期モジュール320は、ダウンヒル同期モジュール325、アップヒル同期モジュール30、同期制御34、およびラベル検索モジュールを含む。これらのモジュールの機能は、サーバにおけるそれらの対応モジュールに相当する。
【0041】
[0050] ダウンヒル同期モジュール325は、クライアントがサーバからデータ変更を受信することに責任を有する。サーバの対応モジュールと同様に、ダウンヒル同期は、一実施形態では、上述した関連出願においてより詳細に記載される、上述のフォワード同期およびバックワード同期を含む。
【0042】
[0051] サーバの対応モジュールにおいて上述された、アップヒル同期モジュール330は、クライアントデータ変更をサーバに同期させる責任を有する。サーバとクライアントとの間のデータ変更を同期させるための他の同期スキームも考えられうることを理解されたい。
【0043】
[0052] 同期制御340は、通信ネットワークへの接続性、未同期のデータの検出またはデータ同期が行われるときに存在する他の条件に従い、データ同期のオペレーションを制御する。一実施形態では、クライアントは、サーバへの同期リクエストを開始するよう構成されるが、その逆もまた可能である。
【0044】
[0053] データモジュール380は、アプリケーションモジュール310におけるアプリケーションによって使用されるデータファイルおよびサーバとの同期に使用されるデータを含みうる。いくつかの実施形態では、データモジュール380は、サーバとのデータ同期のための同期データ370、キャッシュされたデータ382およびコンフィギュレーション仕様384のうち少なくとも1つを含みうる。
【0045】
[0054] 同期データ370は、いくつかのアプリケーションに特有でありうる同期トークン372、ローカル/クライアントヒストリテーブル374、および同期データ376といった、特有のデータを含みうる。これらのデータは、特にクライアント装置のサーバとの同期に使用される。
【0046】
[0055] 同期トークン372は、クライアントが知っているサーバの状態に関するクライアントによって維持されるデータを表す。いくつかの実施形態では、これらのトークンは、これまでのフォワード同期においてクライアントが処理したサーバからの最高位のSHO IDを含む。他の実施形態では、同期トークンは、サーバから最後に受信した確認によって判定される、クライアントがバックワード同期中に処理したデータの範囲を表す。
【0047】
[0056] ローカル/クライアントヒストリテーブル374は、クライアントにおけるデータ変更に関する情報を含む。このテーブル内の各エントリは、CHO IDを有し、特定のデータオペレーションを表す。特に、ローカル/クライアントヒストリテーブル内の情報は、データのクライアントとのアップヒル同期のために使用されうる。他のアプリケーション376に特有の同期データは、種々のアプリケーションに特有の種々のアプリケーションデータである。
【0048】
[0057] キャッシュされたデータ382は、クライアントにおいて記憶された他のデータを表す。これは、多様な他のアプリケーションに使用されたデータおよびサーバに同期されるデータを含みうる。
【0049】
[0058] コンフィギュレーション仕様384は、クライアント装置についての特有のコンフィギュレーション情報を含む。この情報は、同期、相互作用、およびアプリケーションの起動およびオペレーションのために、クライアントをサーバにまたは他の装置に識別するために使用されうる。例えば、コンフィギュレーション仕様に含まれる情報は、クライアント識別、クライアントの装置仕様、データが同期されるアプリケーションの識別および同期の基準などを含みうるがこれらに限定されない。
【0050】
[0059] 本開示において記載される検索ベース仕様は、サーバとクライアントとの間の全ての形態のデータ同期に適用される。検索は、より大きなデータセットからデータのサブセットを選択することを目的とするので、データセットが完璧であるサーバおいて適用されることが多い。検索は、クライアント装置のユーザにとってのデータの関連性に従い優先度が付けられることができるフォーカスデータセット(a focus data set)を生成する。この検索方法は、上述の関連出願において記載される同期方法を補完する。利点の1つは、ユーザが、サーバにおけるデータ変更の同期のための選択および優先度付けをコントロールできるようになることである。検索ベースのデータ同期は、クライアントデータにも適用されうるが、クライアントにおけるデータがより少ない量であることを考慮すると、本検索方法は、一般にクライアントにおいては実装されない。
【0051】
[0060] 図4は、サーバ402とクライアント404との間の例示的な同期相互作用スキーム400を示す。いくつかの実施形態では、コンフィギュレーション同期は、第1の同期開始(the first start synchronization)および主同期(the main synchronization)の前に起きる。従前のステップは、再検討されてもよく、クライアントは、任意に再構成されることができる。同期開始は、クライアントが要請すれば再度起こる。いくつかの実施形態では、同期開始は、バックワード同期に再び優先度を付ける。例えば、電子メールの文脈では、バックワード同期は、会話をロードすることができ、直近のものから開始し、最も古いもので終了する。それゆえこの場合では、同期開始は、「直近(most recent)」の意味を「現時点(now)」を意味するよう再設定する。いくつかの実施形態では、同期開始ハンドシェーク421は、サーバ402とクライアント404との間で行われ、主同期ハンドシェーク423によって表される実際のデータ同期プロセスを開始する。一般に、同期開始ハンドシェーク421の前に、コンフィギュレーションハンドシェーク422が、クライアントに特有の同期コンフィギュレーションを確認するために起こりうる。同期開始ハンドシェーク421と主同期ハンドシェーク423のいくつかの実施形態は、上述の関連出願において詳述される。例えば、いくつかの実施形態では、同期開始ハンドシェークは、クライアント404がサーバ402と通信しない期間が続いた後(例えば、通信ネットワークの範囲外、クライアント装置の電源が切れている、クライアントにおけるアプリケーションが終了している、または装置またはサーバが通信ネットワークから切断されている)か、または、クライアントとサーバとの間の第1のデータ同期に先立って開始される。
【0052】
[0061] 同期開始ハンドシェーク421は、クライアントをサーバに識別し、データ同期の起点を確立する。同期開始ハンドシェークのそれぞれは、リクエスト411およびレスポンス412を有する。いくつかの実施形態では、リクエスト411は、クライアントから発生し、リクエストが確認された後で、サーバはレスポンス412を送信する。同期開始が、本開示において示されるとおりに主同期の一部として組み込まれてもよく、また完全に除外されてもよいことを理解されたい。さらに、リクエストは、クライアントの代わりにサーバから発生されてもよい。
【0053】
[0062] コンフィギュレーションハンドシェーク422は、サーバとクライアントとの間のデータ同期のためのパラメータを決定し、確認するよう動作する。コンフィギュレーションパラメータは、同期のためのデータを選択し、ソートするサーバにおける検索機構を制御するよう、クライアントを使用しているユーザによって指定されるかまたは修正されることができる。例示的なハンドシェークでは、クライアントは、コンフィギュレーション仕様リクエスト413をサーバに送信し、サーバからコンフィギュレーション仕様レスポンス413を受信し、主同期の前にコンフィギュレーション仕様を確認する。他の実施形態では、コンフィギュレーションハンドシェーク422は、同期開始ハンドシェーク421の一部であるか、または、主同期ハンドシェーク423の一部であってもよい。さらに、リクエストは、サーバからクライアントへ発生し、コンフィギュレーション仕様を確認する。
【0054】
[0063] 主同期ハンドシェーク423は、同期のためのサーバデータの範囲が確立された後に起こる。主同期ハンドシェークのそれぞれは、リクエスト415、417およびレスポンス416、418を有する。例示的な図では、リクエスト415、417は、クライアントから送信され、レスポンス416、418は、サーバによって送信される。いくつかの実施形態では、主同期リクエスト415、417は、サーバへのアップヒル同期においてクライアントデータ変更を含み、主同期レスポンス416、418は、クライアントへのダウンヒル同期においてフォワードおよびバックワード同期と関連づけられたサーバデータおよびサーバ変更オペレーションを含む。いくつかの実施形態では、主同期は、サーバまたはクライアントのいずれかに未同期のデータが残存する限り、直ちに繰り返される。さらに、主同期は、サーバとクライアントとの間にアクティブな接続がある限り、固定のインターバルといった所定の条件に従い、またはサーバまたはクライアントのいずれかに新しいデータまたはデータオペレーションがある場合はいつでも、繰り返される。いくつかの実施形態では、同期開始は、例えば一時間といった、予め決められた特定の時間の長期の切断がない限り、またはアプリケーションが終了し再開する(419)場合には、繰り返されない。
【0055】
[0064] 図5は、データ同期のための検索を行うための例示的な検索仕様を示す。いくつかの実施形態では、検索は、データ同期に先立ちサーバにおいて行われる。他の実施形態では、検索は、データが同期されるのと同時に行われてもよい。いくつかの実施形態では、検索仕様501は、複数の検索を含みうる。検索502、505のそれぞれは、1つ以上の検索基準を含みうる。いくつかの実施形態では、これらの検索は、並列にまたは連続して行われうる。検索はまた、データタイプまたは期間に特有でありうる。いくつかの実施形態では、それぞれの検索における検索基準502−A、Bおよび505−A、Bは、データの種々のアスペクトを表しうる。例えば、基準は、データ作成日、データ修正日、データに関連付けられたラベル、データ内に存在するエントリのフィールドを含みうるが、これらに限定されない。いくつかの特定の例は、電子メールのメッセージに関連付けられたラベル、電子メールの会話に関連付けられたラベル、送信者、電子メールメッセージまたは会話の件名フィールド、アドレス、電話番号、および連絡先の電子メールフィールド、カレンダーエントリの件名、日付および時間などを含みうるがこれらに限定されない。
【0056】
[0065] 図6は、コンフィギュレーションハンドシェーク内のコンフィギュレーション仕様のための例示的なリクエストを示す。コンフィギュレーション仕様は、同期に先立ち、サーバにおけるデータを選択しソートするよう検索を構成するための検索機構によって使用されるパラメータを記述する。いくつかの実施形態では、コンフィギュレーション仕様は、検索基準がどのように定義されているかを含む。例えば、検索基準は、特定の順序で検索を行うためにクライアントを介してユーザが指定した多様なラベルを含みうる。換言すると、ラベルは、基準が並べられた順序と検索の結果とが一致するように順序付けられうる。他の実施形態では、基準は、適宜順序付けられうるが、検索を行うための特定の順序を検索機構に知らせる特定のエントリが存在しうる。いくつかの実施形態では、検索基準は、クライアントによってもたらされることができ、他の実施形態では、検索基準は、サーバによって決定されてもよい。
【0057】
[0066] 図6はまた、同期のためにサーバデータを選択し、優先度を付けるために検索機構によって使用されうる基準の複数のカテゴリを示す。種々のカテゴリの基準が検索に使用されうる。いくつかの実施形態では、検索基準は種々のタイプのラベルを含みうるがこれに限定されない。いくつかの例示的なラベルのカテゴリは、常に含む(always include)602、常に除外(always exclude)603、持続期間(in-duration)604、607、610、持続期間‐含む(in-duration-include)605、608、持続期間‐除外(in-duration-exclude)606、609、および優先度(priority)611を含むがこれらに限定されない。いくつかの実施形態では、「常に含む」リストは、データ同期において常に含まれるラベルを含み、「常に除外」リストは、データ同期から常に除外されるラベルを含む。例示を目的として、「常に含む」リストは、「新規」、「仕事」または「星」でラベル付けられた全てのメッセージ/会話/連絡先/カレンダー/タスクを含みうる。「常に除外」リストは、「ごみ」、またはSPAMとラベル付けられたメッセージ/会話/連絡先/カレンダー/タスクエントリを含みうる。「持続期間」は、データが検索される期間を指定するカテゴリである。
【0058】
[0067] 例示を目的として、3つの持続期間が説明される。これらは、現在から現在の1週間前までの期間、1週間前から4週間前までの期間、および4週間前から8週間前までの期間を含む。これらの持続期間ラベルは、指定の時間フレーム内でアプリケーションを検索するシステムによって適用されうる。さらに、持続期間‐含む、および持続期間‐除外カテゴリはそれぞれ、各検索における包含または除外に関する時間フレーム内に含まれる属性ラベルおよび非属性ラベルを指定しうる。いくつかの単純な検索規則およびラベルの使用を組み合わせることで、アプリケーションデータを選択し順序付けるための無限の数の方法が使用されることができ、それにより、ユーザにとって最も関連のあるデータが選択され、優先順でクライアントに送信される。データ同期は、しばしば任意の理由のために中断されるため、優先度の高い関連データが、優先度の低いデータの前に同期され、クライアントに送信されることが好ましいことから、クライアントに同期されるアプリケーションデータの順序が重要となりうる。
【0059】
[0068] 図7は、本開示において記載された検索機構によって使用されうる電子メールメッセージ形式のデータの例示的アイテムを示す。メッセージ701は、情報の少なくとも2つのカテゴリであるメタデータ710およびコンテンツ750を含む。一実施形態では、メタデータ710は、メッセージの識別、選択およびソートのために同期機構および検索機構によって使用されうる情報を含む。メタデータの種々のフィールドのいくつかの例は、データ/メッセージID711、属性ラベル712、および非属性ラベル713を含む。他のメタデータは図示しないが、人気率と、関連言語、関連ロケール、アプリケーションデータがクライアント装置のユーザのプレファレンス(例えば、個人的嗜好)を具体的に満たしているかどうかを識別するフィーチャといった、アプリケーションデータに付帯的なその他の2次的情報とを含みうるがこれらに限定されない。
【0060】
[0069] それぞれのデータアイテム内のメタデータ710は、ユーザには可視であるか、または不可視であるが、データの状態またはコンテンツが変更されると、システムおよび/またはユーザによって編集されうる。いくつかの実施形態では、データ/メッセージID711は、バックワード同期によって使用される同期トークンと同一でありうる。一実施形態では、このデータ/メッセージID711は、各メッセージ(またはアプリケーションデータ内のアイテム)に対して一意的であり、変更することができない。このデータ/メッセージID711は一般に、同期プロセスの間、データアイテムの識別のために重要である。
【0061】
[0070] 属性ラベル712は、ユーザによって変更できない情報に関するラベルである。これは元来データの一部をなしうる情報を含む。例えば、電子メールメッセージは、常に電子メールメッセージのままであり、連絡先エントリとしてはラベル付けされることはない。
【0062】
[0071] 非属性ラベル713は、ユーザによって変更できるデータのアイテムについての情報を含む。例えば、メッセージはシステムによって当初SPAMラベルを有するSPAMとして分類され、ユーザがユーザを非SPAMとマークしないかぎり、ラベルは変更されることはない。同様に、ユーザが新しいメッセージを読んだ後、メッセージはもはや未読ではなく、ユーザがメッセージを意図的に未読とマークしない限り、システムは新しいメッセージに関連づけられた未読ラベルを自動的に取り除く。同様に、非属性ラベル713は、アプリケーションデータを分類するためにユーザによって設定され、システムによって影響されない(untouched)ラベルを含みうる。システムは、これらのユーザが考案したラベルには関係しない。しかしながら、システムは、削除およびSPAM分類などを含むがこれらに限定されない特定のユーザまたはシステムオペレーションに応答してデータにラベルを適用しうる。
【0063】
[0072] いくつかの実施形態では、メッセージへの添付(図示せず)は、システムによって割り当てられる別個のラベル(例えば、属性ラベル)を有しうる。いくつかの実施形態では、ラベルは、添付であることを単に示す表示でありうるか、または、より洗練された実施においては、添付はさらに、添付が相当するデータタイプによってラベル付けされうる。
【0064】
[0073] 同様に、データアイテム(例えば、メッセージ701)のデータコンテンツ750もまた、メッセージを識別、選択およびソートするための同期機構および検索機構によって使用されうる情報を含みうる。例えば、データコンテンツ750は、さらに、情報の種々のフィールドを含みうる。本例の電子メールメッセージでは、データコンテンツは、送信者751、受信者752、日付753、時間754、件名755、およびメッセージコンテンツ756といったフィールドを含みうる。これらのフィールドのそれぞれは、検索基準として機能することができ、これらのフィールドのそれぞれにおける特定のエントリは、検索機構にとって検索対象でありうる。同期プロセスにおいて、これらのフィールドになされた変更は、データ変更とみなされるため、データ変更がそれぞれサーバまたはクライアントで行われるかにどうかに基づき、データ変更またはアイテム全体がフォワード同期またはアップヒル同期されることになる。
【0065】
[0074] 図8(A)から(D)は、データを選択しソートする検索機構の例示的なプロセスを示す。これらの図は、サーバにおけるデータを選択しソートするプロセスを示すが、このプロセスは、クライアントにおいてまたはデータの選択またはソートのための他の場所においても等しく適用される。また、図8(A)は、サーバにおける例示的なアプリケーションデータとしてのメッセージのリストを示すが、他のタイプのアプリケーションデータが、文書、スプレッドシート、チャート、グラフ、写真、RSSフィードアイテム、インスタントメッセージング(IM)におけるデータ、ショートメッセージサービス(SMS)におけるデータ、連絡先グループ、または他のデータタイプを含みうるがこれらに限定されないことを理解されたい。また例示を目的として、データアイテムが説明に使用されるが、データ変更の枝刈りおよび組織化のために同一の原理がサーバにおいておよびクライアントにおけるヒストリオペレーションに適用されうることを理解されたい。さらに、フォワードまたはアップヒル同期におけるヒストリオペレーションによって表されるデータ変更は、コンフィギュレーション仕様において指定された検索基準に従って検索されることができる。
【0066】
[0075] いくつかの実施形態では、図8(A)のアプリケーションデータのリストは、電子メールアプリケーションに関するサーバにおける電子メールメッセージのリストに対応する。いくつかの実施形態では、電子メールメッセージのリストは、バックワード同期のためのバックワード同期トークン(例えば、BST)によって表される一意の識別子をそれぞれ有するデータのリストに対応する。データのリストは、連絡先情報、カレンダーエントリ、またはクライアント‐サーバアプリケーションによって使用される他のデータの形式でありうることを理解されたい。さらに、データの1つのタイプがリストされていても、データの複数のタイプがリストされ、混合されうることを理解されたい。
【0067】
[0076] 図8(A)におけるメッセージのそれぞれは、検索基準として機能しうる多数のデータ属性(例えば、メッセージコンテンツ、送信者フィールド、日付フィールド、時間フィールド、件名フィールド、ラベルなど)と関連付けられている。本例では、種々のタイプのラベルが主検索基準として使用されており、各メッセージは少なくとも1つのラベルと関連づけられている。上述のとおり、ラベルは、属性ラベルおよび非属性ラベルの少なくとも2つのグループに分類される。メッセージは元来「電子メールメッセージ」という属性ラベル(図示せず)と関連付けられている。図8(A)のメッセージに示すラベルは、一般に非属性ラベルである。例示的説明を目的として、非属性ラベルは、「星」、「仕事」、「プロジェクトX」、「SPAM」、「ごみ」、「車」、「ジョディー」、「写真」、「キャンプ」、「母」、「父」、「カナダ」、「株」、「投資」、「ING」、「プロジェクトY」、「10周年同窓会」、「母の日」、「ユタスキー旅行」、「エバ」、「カレッジ」および「未読」を含むがこれらに限定されない。
【0068】
[0077] 属性および非属性ラベルは、検索のためにさらに分類されうる。例えば、いくつかの実施形態では、図示されるとおりカテゴリは、「常に含む(A‐In‐)」、「常に除外(A‐Ex‐)」、および「持続期間」を含みうるがこれらに限定されない。「常に含む」として分類されるいくつかの非属性ラベルは、ジョディーおよびボビーを含み、「常に除外」として分類されるいくつかの非属性ラベルは、SPAMおよびごみを含む。「持続期間」ラベルは、一般に、期間を定義し、ユーザによって指定されうる。例えば、「持続期間1」は、現在から1週間前までの時間フレームを指し、「持続期間2」は、1週間前から4週間前までの時間フレームを指し、「持続期間3」は、4週間前から8週間前までの時間フレームを指しうる。さらに、「含む」および「除外」サブカテゴリが、これらの「持続期間」カテゴリに追加されてよく、それにより、より詳細なレベルの検索を行うためにラベルはこれらの期間に含まれる(例えば、「持続期間1‐含む」)かまたはこれらの期間から除外されることができる(例えば、「持続期間2−除外」)。いくつかの実施形態では、検索機構が実施される間、検索が行われ、データが選択されるか、または絞り込まれる。選択されたデータは、より広範なデータが特定された後に検索を絞り込むことによって順序付けられうるか、または、データは、検索の連続的な適用に従い順序付けられえ、それにより、検索結果が連続的検索の順番に並べられる。
【0069】
[0078] 例示的な図において、「常に含む」ラベルを有する全てのメッセージおよび「持続期間1、2、3」に該当するメッセージを選択することによる検索機構の適用から図8(B)が得られる。図示するとおり、ラベル「A‐Ex」(例えば、ごみおよびSPAMなどの常に除外)に関連づけられたメッセージ、および「持続期間1、2、3」の範囲の外にある特定の古いメッセージ(例えば、「10周年同窓会」、「母の日」、および「ユタスキー旅行」のラベル)は除外される。
【0070】
[0079] 図8(C)は、検索機構によって持続期間に従いソートされた選択されたメッセージを示す。例示的説明を目的として、クライアント装置のユーザは、まず直近のメッセージを受信することを好みうる。それゆえ、データ同期の目的上、過去1週間(例えば、現在から1週間前まで)のメッセージは、過去1ヶ月(例えば、1週間前から4週間前まで)中のメッセージの前に並べられ、これは過去2ヶ月中(例えば、4週間前から8週間前まで)のメッセージの前に並べられる。
【0071】
[0080] 図8(D)は、データ同期に先立ちユーザが指定したラベルの優先度に従い検索機構によって並べられた、各持続期間におけるメッセージの最終的な順序を示す。例示的説明を目的として、ユーザは、データの全ての範囲について、「未読」、「星」、および「仕事」のラベル順に従いメッセージを優先付けるよう指定することができる。それゆえ、全ての個別の「持続期間」カテゴリにおけるメッセージについて、「未読」メッセージが「星」ラベル付きのメッセージの前に並べられ、「星」ラベル付きのメッセージは、「仕事」ラベル付きのメッセージの前に並べられる。他の実施形態では、ラベルの優先度は、「持続期間」のそれぞれについて個別に指定されうる。残りのメッセージは、適宜並べられうるか、または、検索が行われた順番によって並べられうる。
【0072】
[0081] 例えば、「持続期間‐1」において、ラベル「投資」および「父」は、「持続期間‐1‐含む」に分類され、ラベル「カナダ」は「持続期間‐1‐除外」に分類される。いくつかの実施形態では、「含む」カテゴリと「除外」カテゴリとの間に対立があるときはいつでも、「含む」カテゴリが「除外」分類よりも優先し、「除外」分類を無効にする(override)。本例では、「父、カナダ」のラベルを有するメッセージは、含みかつ除外するという検索からの対立する命令を有することから、このメッセージは含まれる。しかしながら、検索がサイレント(例えば、「母」)である場合、「母、カナダ」と分類されるメッセージは、「カナダ」のラベルを有するメッセージを除外する規則が有効であるため、除外される。この「母、カナダ」のラベルを有するメッセージは、もともとは持続期間1に含まれていたが、それは「母」ラベルのためではなく、メッセージに関連付けられた日付が「持続期間‐1の分類を満たすためである。「A‐In‐ボビー、キャンプ」のラベルを有するメッセージが含まれているが、これは、「キャンプ」ラベルのせいはなく、持続期間1に該当するメッセージであり、常に含まれるメッセージであるためである。
【0073】
[0082] 「持続期間2」内のメッセージについて、メッセージは「未読」、「星」および「仕事」の順に従い並べられる。例示的説明を目的として、ラベル「ミュンヘン」は、「持続期間2‐除外」に含まれるため、「ミュンヘン」とラベル付けされたメッセージは、最終リストから除外される。同様に、「A‐In‐ジョディー、写真」および「ING、投資」とラベル付けられたメッセージは、これらのラベルが「持続期間2‐含む」カテゴリに分類されるため、含まれる。
【0074】
[0083] 「持続期間3」内のメッセージについて、持続期間1および2のように優先度が付けられた「未読」、「星」、「仕事」のラベル順に同様に並べられる。同様に、ラベル「カナダ」は、「持続期間3‐除外」に分類されるので、「カナダ、写真」とラベル付けられたメッセージは除外される。別の実施形態では、ユーザは、持続期間3について、「除外」と関連づけられたラベルが「含む」と関連付けられたラベルに優勢であるよう指定することができるため、ラベル「写真」が「持続期間3‐含む」に分類されているとしても、「カナダ、写真」とラベル付けられたメッセージはやはり除外される。
【0075】
[0084] いくつかの実施形態では、オペレーションのアクションを判定するためにアプリケーションでオペレーションが行われる前および後に、検索ベース機構は適用されうる。例えば、ユーザがメッセージにラベルを追加し、そのラベルがメッセージを同期されることから除外するものである場合、クライアント装置にコピーを有する元のメッセージは、サーバにおける対応するアプリケーションデータにラベルが追加された後にクライアント装置から除去される。同様に、メッセージにラベルを追加することは、元のメッセージがクライアントにおいて存在しなくても、クライアントにメッセージを同期させうる。
【0076】
[0085] 要約すると、検索機構は、サーバにおけるデータに種々の影響を与えうる。第1に、対応するアプリケーションデータがクライアントにおいて存在しない場合、オペレーションは、検索機構がクライアントにおいてアプリケーションデータを追加するか、これを同期させることをもたらしうる。第2に、対応するアプリケーションデータがクライアントにおいて存在する場合、オペレーションは、検索機構がクライアントにおける対応するデータに対して何らのアクションも起こさないことをもたらしうる。第3に、対応するアプリケーションデータがクライアントにおいて存在する場合、オペレーションは、検索機構が対応するクライアントを取り除くことをもたらしうる。第4に、対応するアプリケーションデータがクライアントにおいて存在する場合、オペレーションは、検索機構が、サーバにおけるアプリケーションデータに行われたオペレーションと同様に、対応するデータを編集するかまたはこれに変更を行うことをもたらしうる。
【0077】
[0086] 図9は、検索機構によって選択されたデータをクライアントが受信する例示的な方法を示すフロー図である。いくつかの実施形態では、ブロック931に示すとおり、クライアントはサーバから通信を受信して、クライアント装置とサーバとの間で情報を同期させる。情報は、1つ以上の検索基準に従い全てのサーバアプリケーションデータから検索機構によって選択され、サーバからの伝送前に順番に並べられる。いくつかの実施形態では、検索基準は、クライアントにおいて決定されうる。ブロック932において、クライアントは、サーバから受信した情報の少なくとも一部に従い、クライアントにおけるアプリケーションデータを同期させるオペレーションを行う。
【0078】
[0087] 図10は、検索機構によって選択されたサーバアプリケーションデータをサーバが送信する例示的な方法を示すフロー図である。ブロック1031では、サーバは、同期に先立ちサーバアプリケーションデータに検索を行うために使用される1つ以上の検索基準を決定する。ブロック1032では、サーバは、1つ以上の検索基準に従い、サーバにおける検索機構を使用して全てのサーバアプリケーションデータから情報を選択する。ブロック1033では、サーバは、選択された情報をクライアントに伝送する。ブロック1034では、サーバは、クライアントに正常に同期された伝送された情報のレコードを付ける。
【0079】
[0088] 上述の記載は、特定の実施形態を参照し例示目的で記載されている。しかしながら、上述の説明的記載は、網羅的であること、または開示された明確な形式に本発明を限定することを意図していない。上述の教示に照らして多数の修正及び変形が可能である。実施形態は、本発明の原理およびその実際の適用を最もよく説明するよう選択され記述されており、それによって、当業者が本発明および意図する特定の使用法に適するよう多様に修正された多様な実施形態を最もよく利用することが可能になる。

【特許請求の範囲】
【請求項1】
クライアントに情報を同期させる方法であって、
サーバにおいて、
同期に先立ちアプリケーションデータに検索を行うために使用される1つ以上の検索基準を決定するステップであって、前記1つ以上の検索基準は前記クライアントによって提供される、ステップと、
前記1つ以上の検索基準に従い、前記サーバにおける検索機構を使用して前記サーバにおける全てのアプリケーションデータから情報を選択するステップと、
前記選択された情報を同期のために前記クライアントに伝送するステップと、
前記クライアントに正常に同期された前記伝送された情報のレコードを付けるステップと、
を含む方法。
【請求項2】
前記クライアントからクライアントアプリケーションデータ変更およびクライアントアプリケーションデータを受信するステップをさらに含み、前記クライアントアプリケーションデータを受信するステップは、前記選択された情報を前記クライアントに前記伝送することから独立して、かつ、これと同時に行われる、請求項1に記載の方法。
【請求項3】
前記選択された情報は、前記サーバにおけるデータおよびデータへの変更オペレーションを含み、前記データは、高い優先度から低い優先度に並べられ、かつ前記クライアントに同期され、前記変更オペレーションは、前記サーバにおいて各変更オペレーションが発生したときに基づき古いものから新しいものに時系列で並べられ、かつ前記クライアントに同期される、請求項1または2に記載の方法。
【請求項4】
前記伝送するステップは、同時に動作する2つの独立した同期機構をさらに含み、第1の同期機構が、優先度の順に前記情報の第1の部分を同期させ、第2の同期機構が、時系列で前記情報の第2の部分を同期させる、請求項1または2に記載の方法。
【請求項5】
前記検索基準は、前記クライアントのユーザによって指定される、請求項1に記載の方法。
【請求項6】
前記検索基準は、前記データコンテンツのラベルおよびフィールドのうちの少なくとも1つに関する、請求項1または5に記載の方法。
【請求項7】
前記ラベルは、ユーザによって変更不能な属性ラベルおよび前記ユーザによって変更可能な非属性ラベルをさらに含む、請求項6に記載の方法。
【請求項8】
クライアント装置と通信するためのサーバであって、
1つ以上のプロセッサと、
前記1つ以上のプロセッサに接続されたメモリと、
前記メモリに記憶され、前記1つ以上のプロセッサによる実行のために構成された1つ以上のプログラムと、
を備え、
前記1つ以上のプログラムは、
同期に先立ちアプリケーションデータに検索を行うために使用される1つ以上の検索基準を決定する命令であって、前記1つ以上の検索基準は、前記クライアントによって提供される、命令と、
前記1つ以上の検索基準に従い、前記サーバにおける検索機構を使用して前記サーバにおける全てのアプリケーションデータから情報を選択する命令と、
前記選択された情報を同期のために前記クライアントに伝送する命令と、
前記クライアントに正常に同期された前記伝送された情報のレコードを付ける命令と、
を含む、サーバ。
【請求項9】
前記クライアントからクライアントアプリケーションデータ変更およびクライアントアプリケーションデータを受信する命令をさらに含み、前記受信する命令は、前記選択された情報を前記クライアントに伝送する命令から独立して、かつこれと同時に実行される、請求項8に記載のサーバ。
【請求項10】
前記選択された情報は、前記サーバにおけるデータおよびデータへの変更オペレーションを含み、前記データは、高い優先度から低い優先度に並べられ、かつ前記クライアントに同期され、前記変更オペレーションは、前記サーバにおいて各変更オペレーションが発生したときに基づき古いものから新しいものに時系列で並べられ、かつ前記クライアントに同期される、請求項8または9に記載のサーバ。
【請求項11】
前記伝送する命令は、同時に動作する2つの独立した同期機構を必要とし、第1の同期機構が、優先度の順に前記情報の第1の部分を同期させ、第2の同期機構が、時系列で前記情報の第2の部分を同期させる、請求項8または9に記載のサーバ。
【請求項12】
前記検索基準は、前記クライアントのユーザによって指定される、請求項8に記載のサーバ。
【請求項13】
前記検索基準は、前記データ内容のラベルおよびフィールドのうち少なくとも1つに関する、請求項8または12に記載のサーバ。
【請求項14】
前記ラベルは、ユーザによって変更不能な属性ラベルおよび前記ユーザによって変更可能な非属性ラベルをさらに含み、前記データ内容の前記フィールドは、電子メールメッセージ、カレンダーエントリ、および連絡先エントリにおける任意のフィールドを含む、請求項13に記載のサーバ。
【請求項15】
サーバに情報を同期させる方法であって、
クライアントにおいて、
サーバから通信を受信して、前記クライアントと前記サーバとの間で情報を同期させるステップと、
前記サーバから前記情報を受信するステップであって、前記情報は、前記クライアントによって提供された1つ以上の検索基準に従い、検索機構によって、前記サーバにおけるアプリケーションデータから選択されるステップと、
前記サーバから受信した前記情報の少なくとも一部に従い、前記クライアントにおけるアプリケーションデータを同期させる動作を行うステップと、
を含む、方法。
【請求項16】
前記情報は、前記クライアントにおけるアプリケーションデータに追加、削除または修正オペレーションのうち少なくとも1つを行う命令を含み、前記情報は、前記クライアントへの伝送前に、前記サーバにおいて高い優先度から低い優先度に並べられる、請求項15に記載の方法。
【請求項17】
前記受信するステップが、同時に動作する2つの独立した同期機構をさらに含み、第1の同期機構が、優先度の順に前記情報の第1の部分を同期させ、第2の同期機構が、時系列で前記情報の第2の部分を同期させる、請求項15または16に記載の方法。
【請求項18】
未同期のクライアントアプリケーションデータ変更および未同期のクライアントアプリケーションデータを前記サーバに同時に送信するステップをさらに含み、前記送信するステップが、前記情報を受信するステップから独立して、かつこれと同時に行われる、請求項15または16に記載の方法。
【請求項19】
前記検索基準は、ユーザによって指定される、請求項15に記載の方法。
【請求項20】
前記検索基準は、前記データ内容のラベルおよびフィールドのうち少なくとも1つに関する、請求項15または19に記載の方法。
【請求項21】
前記ラベルは、ユーザによって変更不能な属性ラベルおよび前記ユーザによって変更可能な非属性ラベルをさらに含み、前記データ内容の前記フィールドは、電子メールメッセージ、カレンダーエントリ、および連絡先エントリにおける任意のフィールドを含む、請求項20に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公表番号】特表2012−510652(P2012−510652A)
【公表日】平成24年5月10日(2012.5.10)
【国際特許分類】
【出願番号】特願2011−533308(P2011−533308)
【出願日】平成21年10月21日(2009.10.21)
【国際出願番号】PCT/US2009/061540
【国際公開番号】WO2010/048329
【国際公開日】平成22年4月29日(2010.4.29)
【出願人】(502208397)グーグル インコーポレイテッド (161)