JP2004528621A - リモート・デバイス間のデータ同期のためのシステム及び方法 - Google Patents

リモート・デバイス間のデータ同期のためのシステム及び方法 Download PDF

Info

Publication number
JP2004528621A
JP2004528621A JP2002554866A JP2002554866A JP2004528621A JP 2004528621 A JP2004528621 A JP 2004528621A JP 2002554866 A JP2002554866 A JP 2002554866A JP 2002554866 A JP2002554866 A JP 2002554866A JP 2004528621 A JP2004528621 A JP 2004528621A
Authority
JP
Japan
Prior art keywords
data
remote device
delta
original
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2002554866A
Other languages
English (en)
Inventor
トロイ エル. バートレット、
ケネス エヌ. ハイ、
バーナード ケイ. ヘンリー、
ブレット エイ. ジョンソン、
ジョン ダブリュー. キッシュ、
グレゴリー エイ. ワンドリック、
デビッド エイ. ウィットラー、
Original Assignee
シンクロロジック インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by シンクロロジック インコーポレイテッド filed Critical シンクロロジック インコーポレイテッド
Publication of JP2004528621A publication Critical patent/JP2004528621A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本発明は、リモート・デバイスのデータの同期を提供するためのシステムと方法を提供する。その構成において、このシステムは、デバイス・データを有するリモート・デバイス、元のデータ及び元のデータの改変されたデータを含むサーバ・デバイス、及び元のデータと改変されたデータの間の変更点だけを示すデルタ・データを含む。また、本発明は、サーバ内の変更されているデータをリモート・デバイスに送信するための方法としても見なされることができる。この方法は、(1)元のデータを提供するステップと、(2)元のデータの更新されたデータを作成するステップと、(3)元のデータと更新されたデータの間の変更点だけを示すデルタ・データを生成するステップと、(4)デルタ・データをリモート・デバイスに送信するステップと、によって動作する。

Description

【技術分野】
【0001】
関連する出願に対する参照
この出願は、2001年1月3日出願の「レディーシンクゴー(READYSYNCGO)」と題された、米国仮特許出願第60/259,528号の利益を主張する。
【0002】
技術分野
本発明は、ファイルを更新するための方法及びシステムに関し、詳しくは、複数のリモート・デバイスのデータを効率よく同期させるための方法とシステムに関する。
【背景技術】
【0003】
多くの企業環境において、企業の多数の従業員やリモート・ユーザに関するデータを格納するためにサーバが使われている。サーバは通常、リモート・ユーザが情報を利用しやすいように、リモート・コンピュータ・デバイス(「クライアント」)によりアクセスできるようになっている。リモート・コンピュータ・デバイスがアクセスできるファイルをサーバ上に提供することにより、その会社を通じた情報の頒布性が高められる。データに対するリモート・アクセスは、販売員又は多数の従業員が会社から離れて営業活動する環境においては一層重要である。一例として、社外にいる従業員が、在庫の変化、価格データ、及び会社の催し事などについて知らされるべき最新の情報を利用する。サーバに接続されたままで通信料金をかさませるか又は電話線を占用するよりむしろ、リモート・ユーザはサーバのデータにアクセスするために彼等のコンピュータをサーバに間欠的に接続する。これらの環境においては、リモート・コンピュータ・デバイスは通常サーバのデータをローカルに記憶して、そのクライアントがサーバに接続されていないときもリモート・アプリケーションをサポートする。また、この間欠接続は、クライアント・アプリケーションによってなされた変更だけをサーバに、また、関係する1セットの変更だけをサーバからクライアントに送信するために使われる。このタイプのリモート・コンピュータ・システム環境は、間欠接続(IC)環境と呼ばれる。ICは、販売員のための自動化、保険金請求の自動化、及び移動ユーザが存在する移動従業員一般において、多種多様な用途を有する。
【0004】
このタイプのコンピュータ環境のための1つの重要な通信問題は、クライアントとサーバの間の時宜を得た効果的な情報の交換である。「データ転送」という語が、サーバのファイルとクライアントのファイルの間のデータの整合性及び完全性を維持するプロセスを説明するためにしばしば使われる。整合性を維持するための多くの同期方式がある。いくつかの知られているファイル転送方式では、いろいろなプロトコルや方法、例えばファイルを効率的に転送するための圧縮、が使用される。
【0005】
したがって、この業界において、リモート・コンピュータ・デバイスに高速で効率的にダウンロードされるデータの同期における前述の問題に取り組むという、今まで取り上げられていない必要性が存在する。
【0006】
発明の開示
この発明は、リモート・デバイスにダウンロードされたデータを効率的に同期させるためのシステムと方法を提供する。この発明は、デバイス・データを有するリモート・デバイス、元のデータ及び元のデータを改変されたデータを含むサーバ・デバイス、及び元のデータと改変データの間の変更点だけを示すデルタ・データを含むリモート・デバイスのデータ同期システムとして概念的に説明できるであろう。
【0007】
また、本発明は、リモート・デバイスにダウンロードされたデータを効率的に同期させるための方法であって、(1)元のデータを提供するステップと、(2)元のデータの更新されたデータを作成するステップと、(3)元のデータと更新されたデータの間の変更点だけを示すデルタ・データを生成するステップと、(4)デルタ・データをリモート・デバイスに送信するステップと、を含む方法としても概念的に説明されるであろう。
【0008】
発明の詳細な説明
以下で説明する発明は、リモート・デバイスに最新のデータを維持するため、本発明のリモート・デバイス・データ同期システムを利用するすべてのデータ転送に適用できる。以下では単一のコンピュータに関して説明されているが、リモート・デバイス・データ同期システムのためのシステムと方法は、代表的に、複数のコンピュータ・デバイスがローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、又はLAN及びWANの両方の組合せを通じて通信する、ネットワークで接続されたコンピュータ構成において実施される。
【0009】
本発明のリモート・デバイス・データ同期システムは、2つの主要な目的を達成する。すなわち、(1)きわめて重要な個人情報をユーザの個人のコンピュータ・デバイスの間で同じにしておくこと、(2)モーバイル・ユーザに、移動中に、特に状況に即したそして個人化された情報(一般的に、これはある特定の時及び/場所に関係した情報である)を配信することである。
【0010】
移動する専門家は、複数のモーバイル・コンピュータ・デバイスを持ち運ぶであろう。それらのすべてが特定の用途と接続特性を有し、各デバイスをある特定のモーバイル使用状況に対して特別に適したものにしている。デバイスのこの多様性を考えると、明らかなユーザの問題は、これらのリモート・デバイスの情報の同期である。本発明のリモート・デバイス・データ同期システムは、リモート・デバイスのすべてにわたるユーザのコンタクト、カレンダ、しなければならないこと、及びメモの同期を提供する。これらのタイプの情報は、ある特定のデバイスの最高の能力に対して同期させられる。例えば、本発明のリモート・デバイス・データ同期システムは、次の通りである。
【0011】
・オフィスPC(アウトルック、他の個人情報マネージャ(PIM)、その他)
・ホームPC(アウトルック、及び他のPIM、その他)
・パームOSデバイス(生来のPIMアプリケーション、その他)
・WinCE OSデバイス(生来のPIMアプリケーション、その他)
・WAPを基本にした電話(全PIM情報、その他)
・非WAP電話(SMSサポート、その他)
また、本発明のリモート・デバイス・データ同期システムは、ユーザのデバイスに適切なモーバイル情報を配信する。次の3つの広い指針が配信される情報のタイプを説明するのに役立つ。
【0012】
・ユーザの約束によって決まる情報
・ユーザの旅行によって決まる情報
・ユーザがいつ、どこにいても必要とする情報
ユーザのコンタクトデータベースと一緒に働く、カレンダに基づく情報が、モーバイル情報のインテリジェントな配信を駆動する。約束及び旅行の各件名を作成するためのウィザード・タイプのインターフェースによって、ユーザは、適切なタイプの時/場所の情報を指定することができる。この情報に基づいて、本発明のリモート・デバイス・データ同期システムは、いろいろなコンテンツ提供業者からの重要な関係するデータを収集整理したり監視したりすることができ、また、それをユーザのリモート・デバイスに配信することができる。例えば、一人のユーザがシアトルに旅行する予定になっているとき、その旅行の数週間前から、ユーザのリモート・デバイスは、天気、フライト情報、指示、ホテル情報、カー・レンタル情報、タクシなどについての情報を配信されることができる。旅行の後、このシアトルに関する情報はデバイスから削除できる。同様に、カレンダ中の約束に基づいて、ユーザは、その約束を成功させるのに役に立つ指示、会社情報などを受け取ることができる。すべてのコンテンツは、ユーザの異なるデバイスに、デバイスの能力及び異なるユーザのコンフィギュレーション設定に基づいて、インテリジェントに配信される。株価情報や競争相手の会社の情報のような情報も、ユーザのモーバイル・デバイスに同期せしめるように設定することもできる。警告条件を設定して、フライト状況、株価、約束情報、日々の旅行情報などのような関係する項目を監視することもできる。
【0013】
本発明のリモート・デバイス・データ同期システムは、階層構造(すなわち、クライアント、ビジネス・ロジック・サービス、及びデータ格納のために別々の層)であってもよいが、これに限定されない。この階層構造は、拡張性(スケーラビリティー)と共に、中央データベース内のデータと同期を取ったり相互作用したりする複数の方法を提供する。アプリケーションは1つの単一サーバ、又は拡張性及び信頼性のため1クラスタのサーバにおくことができる。
【0014】
各デバイスは中央データ記憶装置を直接にブラウザで閲覧するか、本発明のリモート・デバイス・データ同期システムによりそれのローカル・データ記憶装置を中央データ記憶装置と同期させる。
【0015】
コンテンツはサードパーティの供給業者から送信され、中央データベースに記憶され、本発明のリモート・デバイス・データ同期システムによってフォーマットされる。特定のユーザのためのコンテンツは、例えばウェブ・サイトにおけるように直接に利用でき、また、オフラインで見るために、個人情報に関して同じセッション中にユーザのデバイスに対して同期がなされる。
【0016】
同期を提供するために、同期されるリモート・デバイスの各々にソフトウェアがインストールされる。このソフトウェアは、サーバのデータベースの上位機能版のパーソナル・インフォメーション・マネージャ(PIM)のフォーマットを、同期させられる特定のPIMの特定のフォーマットに変換しマップする。さらに、クライアントは、サーバからのコンテンツの同期と、もはや不必要になったら古くなったオフライン・コンテンツの排除を行う。同期セッション中のクライアント/サーバ通信は。ファイアウォールの問題を解消するために、HTTPにより行うことができる。本発明のリモート・デバイス・データ同期システムは、ISP又は他の安全でないインターネットへの接続により同期を行うユーザのために、HTTPS(SSL)をサポートしてもよい。
【0017】
本発明のリモート・デバイス・データ同期システムは、中央データベース12のような保管庫を含んでもよい。これらの保管庫は、例えば、マイクロソフトSQLサーバ7.0のように拡張可能であってもよいが、これに限定されない。保管庫に対するすべてのアクセスは1組のデータ・アクセスAPIで行われる。これらのデータ・アクセスAPIは、リモート・デバイス・データ同期システムの構成要素とサービスをデータベースから切り離す働きをする。この構造は、データベースへのアクセスを制御しかつプールすることにより拡張性と堅牢性を高め、中核をなす構成要素やサービスに対する変更を行うことなく保管庫を他のRDBMSプラットフォームに移植するための柔軟性を与える。
【0018】
このリモート・デバイス・データ同期システムは、同期させられているデバイスと保管庫の間のデータの変更を照合調整しながら、ユーザの同期セッションを管理する。各リモート・クライアント・デバイスは、同期のためにそのデバイスのために書かれたクライアント・ソフトウェアを使う。クライアントの機能は、パーム(Palm)、OS、マイクロソフト・アウトルック(MS-Outlook)などを含むが、これらに限定されない、クライアント・デバイスの特有のデータ・フォーマットとのインターフェースを行い、リモート・デバイス・データ同期システムとデータの変更を通知する。この通信は、それが安全でありかつファイアウォールの構成に影響を及ぼさないように、HTTP又はHTTPsで行うことができる(ユーザが選択可能)。デバイスのデータ・フォーマットとのインターフェイシングはサーバの介入なしに行われるので、パーソナル・インフォメーション・マネージャPIMアプリケーション又はデバイスの追加は、サーバに対する変更を必要とせずに、新しいクライアントの生成により行われる。
【0019】
また、WAP及びウェブ・サービスもデータ・アクセスAPIにより中央保管庫に接続し、ユーザが中央保管庫に格納されているデータに対して直接に手を加えることを可能にする。ユーザが閲覧している間に保管庫内のデータに対してなされた変更は待ち行列に入れられ、すべての同期させられているデバイスに送られる。ワイヤレス・アプリケーション・プロトコル(WAP)サービスは、無線ハンドセット内のWAPブラウザと共に、ユーザのために働く。リモート・デバイス・データ同期システムはWAPゲートウェイを提供しない、これはユーザの無線キャリヤによって提供される。
【0020】
警告エンジン(通知サービス)は、ユーザのカレンダのデータを監視し、ある警告条件が満たされたときは1つの警告が待ち行列に入れられ、ユーザに送られる。現在、リモート・デバイス・データ同期システムは、毎日の約束及び旅行日程項目の摘要と共に、約束とフライトのための警告を提供する。警告はSMTPサーバにより電子メール・メッセージとして送信されることができ、ショート・メッセージ・サービス(SMS)メッセージとしてフォーマットとされる。これは、リモート・デバイス・データ同期システムが、標準の電子メール・クライアントに加えて、電子メールでアドレス指定可能な無線電話やポケットベルにも警告を送ることを可能にする。
【0021】
また、本発明のリモート・デバイス・データ同期システムは、ユーザが同期を行っているときに新しいバージョンが入手可能な場合には、クライアント・ソフトウェアの自動的な更新を提供する。サーバは、新しいソフトウェアを送信し、同期プロセスの1部としてそれをクライアント・デバイスにインストールする。ユーザ又は管理者による介入は必要でない。
【0022】
リモート・デバイス・データ同期システムはn層構造を採ることができ、それにおいてはデータ層(データベース)、ビジネス・ロジック層、及びウェブ・サーバ層が、クラスタリング及び負荷均等化によって、独立に拡張可能である。これは、ハードウェアを、ある与えられた構成のためにそれが必要とされる層にだけ追加することを可能にする。さらに、これは、層がボトルネックになっているように見える経験的な測定値に基づいて、ハードウェアがいつでも追加できるので、かなり容易な拡張の方法を用意している。
【0023】
次に図面を参照して、図1は、本発明の好ましい実施例に関して使用されるリモート・デバイス・データ同期システムを用いるシステム10の基本的な構成要素を示すものとする。いくつかの図面を通して類似の数字は類似の構成要素を示す、システム10は、リモート・クライアント・システム15、17、18、及び23を含む。各クライアントはアプリケーションを有し、ローカル・ファイル16を有することができる。コンピュータ・サーバ11及び21はアプリケーションを含み、サーバ11はさらにネットワーク13を通してそれぞれ間欠的な接続14(a〜d)によりクライアント・システム15、17、18、及び23によりアクセスされるサーバ・データベース12を含む。サーバ11はコンピュータ・ネットワークのための管理ソフトウェアを動作させており、ネットワーク及びそのデバイスの一部及び全部に対するアクセスを管理する。クライアント・システム15、17、18、及び23はデータベース12に格納されているサーバ・データを共有し、モデムを使って電話線で又は他の似た類似のネットワークで、インターネット、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)のようなネットワーク13を通してサーバ11にアクセスしてもよいが、これらに限定されない。サーバ11は組織内のローカル・エリア・ネットワーク(LAN)に接続されていてもよい。
【0024】
リモート・デバイス・データ同期システム10の構成と動作は、サーバ11とそれに付属するデータベース12が、既知のシステムより効率的にクライアントを処理することを可能にする。特に、本発明のリモート・デバイス・データ同期システムは、サーバ・ファイルのデータを、リモート・クライアント・システムがそれのリモート・ファイルをより効率的に更新することを可能にする更新に組織化する1つのやり方を提供する。周期的に、前回の変更ファイル作成以来のすべての関係する変更を含む変更(「デルタ」又は「更新」)ファイルが、各クライアントのために作成される。クライアント・システム15、17、18、及び23がサーバ11に接続したとき、クライアントに属する変更ファイルが、各クライアントのファイルを更新するために使うために、クライアントに送信される。
【0025】
クライアント・システム15、17、18、及び23はそれぞれリモート・サイトに置かれていてもよい。クライアント・システム15、17、18、及び23はPC、ワークステーション、ラップトップ、PDA、ポケットベル、WAPデバイス、非WAPデバイス、携帯電話、パーム(Palm)デバイスなどを含むが、これらに限定されない。したがって、リモート・クライアント・システム15、17、18、及び23のうちの1つのユーザがサーバ11にある共有ファイルからの最新の情報で更新されることを望むとき、クライアント・システム15、17、18、及び23は、WAN、インターネット、又は電話線のようなネットワーク13を通して通信し、サーバ11にアクセスするが、これらに限定されない。好都合にも、本発明は、クライアント・システムを更新するためにサーバ11内の彼等のリモート・ファイルを最も効率的に転送するためのシステム及び方法を提供する。周期的に、サーバは、前回の評価以来変更があった各クライアントのためのデータを決定し、変更ファイルにそれらの変更を記録する。クライアントがサーバに接続したとき、クライアントはそのクライアントのための変更ファイルを要求し、ダウンロードされた変更ファイルを生成し、それのローカル・ファイルを更新する。
【0026】
サードパーティのベンダのコンピュータ・システム21とデータベース22は、リモート・デバイスに配信するための更新情報を得るために、リモート・デバイス・データ同期システムのサーバ11によってアクセスされることができる。サードパーティのベンダのコンピュータ・システム22とデータベース23から得られるデータは、ユーザのリモート・デバイス15、17、18、及び21に対して後でアクセスを提供するために、リモート・デバイス・データ同期システムのサーバ11に格納できる。ある特定のタイプのデータに対しては、リモート・ユーザ・デバイス15、17、18、及び23はネットワーク13を使ってサードパーティのベンダのデータに直接にアクセスすることができることも考えられている。
【0027】
一般的に、図2に示されるような、ハードウェアの構成に関しては、コンピュータ及びデバイス11、21及び23は、プロセッサ41、記憶装置42メモリ42、及びローカル・インターフェース43を介して通信可能に接続されている1つ又はそれ以上の入力及び/又は出力(I/O)デバイス(周辺装置)を含む。ローカル・インターフェース43は、この分野で知られているように、1つ又はそれ以上のバス又はそれ以外の配線又は無線による接続であってもよいが、これに限定されない。ローカル・インターフェース43は、通信を可能にするために、コントローラ、バッファ(キャッシュ)、ドライバ、中継器、及び受信器などの、簡単化のために省略されている追加の構成要素を含んでもよい。さらに、ローカル・インターフェース43は、前述した構成要素の間の適当な通信を可能にするために、アドレス、コントロール及び/又はデータ接続を含んでもよい。
【0028】
プロセッサ41は、メモリ42に記憶されることができるソフトウェアを実行するためのハードウェア・デバイスである。プロセッサ41は実質的にカスタム・メイド又は市販品のプロセッサ、中央処理ユニット(CPU)又はコンピュータ11及び12に付属するいくつかのコンピュータのうちの1つの補助プロセッサ、及び半導体ベースのマイクロプロセッサ(マイクロチップの形をしたもの)又はマクロプロセッサのどれでもよい。適当な市販品のマイクロプロセッサの例は次のとおりである。すなわち、米国のインテル社からの80x86又はペンティアム(Pentium)シリーズのマイクロプロセッサ、米国のIBM社からパワーPC(PowerPC)マイクロプロセッサ、サン マイクロシステムズ社からのスパーク(Sparc)マイクロプロセッサ、米国のヒューレット・パッカード社からのピーエー−リスク(PA-RISC)シリーズのマイクロプロセッサ、又は米国のモトローラ社からの68xxxシリーズのマイクロプロセッサである。
【0029】
メモリ42は、揮発メモリ要素(例えば、ダイナミック・ランダム・アクセス・メモリ(DRAM)、スタティック・ランダム・アクセス・メモリ(SRAM)などのようなRAM)及び不揮発メモリ要素(例えば、ROM、消去書き込み可能読み出し専用メモリ(EPROM)、電気的に消去書き込み可能読み出し専用メモリ(EEPROM)、書き込み可能読み出し専用メモリ(PROM)、テープ、コンパクト・ディスク読み出し専用メモリ(CD−ROM)、ディスク、ディスケット、カートリッジ、カセットなど)のどれでもよいどれか1つ又はそれらの組合せを含むことができる。さらに、メモリ42は電子、磁気、光学、及び/又はさらに他のタイプの記憶メディアを含んでもよい。メモリ42は、いろいろな構成要素が互いに離れているが、プロセッサ41によってアクセスされ得る、分散された構造を有することもできる。
【0030】
メモリ42内のソフトウェアは、それぞれが論理関数を実現するための実行可能な命令の順番がつけられたリストを含む、1つ又はそれ以上の別々のプログラムを含むことができる。図2の例では、メモリ42内のソフトウェアは適当なオペレーティング・システム(O/S)51と本発明のリモート・デバイス・データ同期システム100を含む。
【0031】
適当な市販のオペレーティング・システム51の例の完全に網羅的でないリストは次のとおりである。すなわち、米国のマイクロソフト社からのウィンドウズ(Windows)オペレーティング・システム、米国のノベル社から入手可能なネットウェア(Netware)オペレーティング・システム、米国のIBM社から入手可能なオペレーティング・システム、多くのベンダから入手可能などれかのリヌクス(LINUX)オペレーティング・システム、又は米国のヒューレット・パッカード社、サンマイクロシステムズ社、及びAT&T社などの多くのベンダから入手可能なユニックス(UNIX)である。オペレーティング・システム51は本質的にリモート・デバイス・データ同期システム100のような他のコンピュータ・プログラムの実行を制御し、また、スケジューリング、入出力制御、ファイル及びデータ管理、メモリ管理、及び通信制御及び関連サービスなどを行う。しかしながら、本発明のリモート・デバイス・データ同期システム100はすべての他の市販のオペレーティング・システム上で使用できるということが、発明者により考えられている。
【0032】
リモート・デバイス・データ同期システムは、ソース・プログラム、実行可能なプログラム(オブジェクト・コード)、スクリプト、又は実行されるべき1組の命令を含むどんな他の実体であってもよい。ソース・プログラムである場合は、プログラムは通常コンパイラ、アセンブラ、インタプリタなどによって翻訳される、そしてO/Sとの関係において正しく動作するために、メモリ42内に含まれていてもいなくてもよい。さらに、リモート・デバイス・データ同期システム100は(a)データのクラスやメソッドを有する、オブジェクト指向のプログラミング言語、又は(b)ルーチン、サブルーチン、及び/又は関数を有する手続き型のプログラミング言語C、C++、Pascal、BASIC、FORTRAN、COBOL、Perl、Java、及びAdaとして書くことができるが、これらに限定されない。
【0033】
I/Oデバイスは入力デバイス、キーボード45、マウス44、スキャナ(図示されていない)、マイクロフォン(図示されてない)ディスプレイなどを含んでもよい。さらに、I/Oデバイスは出力デバイス、例えば、プリンタ(図示されていない)、ディスプレイ46などを含んでもよいが、これらに限定されない。最後に、I/Oデバイスはさらに入力及び出力の両方を行うことができるデバイスとして、NIC又は変調器/復調器47(他のファイル、デバイス、システム、又はネットワークにアクセスするため)、無線周波数(RF)又は他の送受信機(図示されていない)、電話インターフェース(図示されていない)、ブリッジ(図示されていない)、ルータ(図示されていない)などを含んでもよいが、これらに限定されない。
【0034】
コンピュータ11及び12はPC、ワークステーション、インテリジェント・デバイスなどであり、メモリ42内のソフトウェアはさらに基本入出力システム(BIOS)を含んでもよい。BIOSは、スタートアップ時にハードウェアを初期化してテストを行い、O/S52を起動させ、ハードウェア・デバイスの間のデータの転送をサポートする、不可欠のソフトウェアのルーチンのセットである。BIOSは、コンピュータ11、15、16、18、21及び23が起動されるとき実行できるように、ROM内に格納されている。
【0035】
コンピュータ11、15、16、18、21及び23が動作しているときは、プロセス41は、メモリ42内に記憶されているソフトウェアを実行し、メモリ42とデータをやりとりし、そしてソフトウェアに従ってコンピュータ11、15、16、18、21及び23の動作を制御する。リモート・デバイス・データ同期システム100及びO/S52はプロセッサ41によって全部又は一部が読まれ、多分プロセッサ41内でバッファされ、そして実行される。
【0036】
リモート・デバイス・データ同期システム100が、図3A及び3Bに示されているように、ソフトウェアで実現されるときは、リモート・デバイス・データ同期システム100は、コンピュータに関係するシステム又は方法により又はそれらに関係して使用されるために、実際上すべてのコンピュータが可読な媒体に記憶させることができることは留意されるべきである。この文書の内容から、コンピュータが可読な媒体は、電子、磁気、光、又は他の物理的なデバイス、又はコンピュータに関係するシステム又は方法により又はそれらに関連して使用されるためにコンピュータ・プログラムを含むか又は記憶できる手段である。リモート・デバイス・データ同期システム100は、命令実行システム、装置、又はデバイス、例えば、コンピュータをベースにしたシステム、プロセッサを含むシステム、又は命令実行システム、装置、又はデバイスから命令を取り込んでその命令を実行することができるその他のシステムにより、又はそれらと関連して使用されるためのあらゆるコンピュータが可読な媒体に具現化されることができる。
【0037】
この文書の内容との関係においては、「コンピュータが可読な媒体」は、命令実行システム、装置、又はデバイスにより又はそれらと関連して使用されるための、プログラムを記憶し、伝達し、複製し、又は持ち運ぶことができるすべての手段であることができる。コンピュータが読むことができる媒体は、例えば、電子、磁気、光、電磁気、赤外線、又は半導体のシステム、装置、デバイス又は複製媒体であってもよいが、これらに限定されない。コンピュータが読むことができる媒体のより具体的な例(全てを網羅したリストではない)は次のものを含むであろう。すなわち、1つ又は複数の配線を有する電気的な接続(電子)、可搬コンピュータ・ディスケット(磁気)、ランダム・アクセス・メモリ(RAM)(電子)、リード・オンリ・メモリ(ROM)(電子)、消去可能なプログラマブル・リード・オンリ・メモリ(EPROM、EEPROM又はフラッシュ・メモリ)(電子)、光ファイバ(光)、及び可搬コンパクト・ディスク・リード・オンリ・メモリ(CDROM)(光)である。コンピュータが読むことができる媒体は、プログラムが印刷できる紙又は他の適宜な媒体でさえもよいことに注意されたい。プログラムは、例えば紙又は他の媒体の光学走査により電子的に取り込まれ、翻訳され、解釈され、又は必要に応じて適宜な方法で他の処理をされ、それからコンピュータのメモリに記憶されることができるからである。
【0038】
リモート・デバイス・データ同期システム100がハードウェアで実現される別の実施例では、それぞれこの分野でよく知られている次の技術のどれか1つ又はそれらの組合せで実現できる。すなわち、データ信号に論理関数を実行するための論理ゲートを有する個別論理回路、適当な組合せ論理回路を有する特定用途向け集積回路(ASIC)、プログラマブル・ゲート・アレイ(PGA)、フィールド・プログラマブル・ゲート・アレイ(PGA)などである。
【0039】
図3Bに示されているのは、本発明のリモート・デバイス・データ同期システム100を利用するリモート・デバイスの一例である。リモート・デバイス15、17、18及び23は、PC、ワークステーション、ラップトップ、PDA、ポケットベル、WAPデバイス、非WAPデバイス、携帯電話、パーム(Palm)デバイスなどを含むが、これらに限定されない。リモート・デバイス15、17、18及び23の構成要素はほとんどサーバ11(図2)の説明のそれと同じである。しかしながら、ユーザのリモート・デバイス15、17、18及び23内の構成要素の多くがさらに制限されたものであり得ることは考えられる。
【0040】
図4に示されているのは、リモート・デバイスとサーバ11内の本発明の同期システム100の相互作用においてユーザが行うプロセスのフローのフローチャートの一例である。ステップ81において、ユーザは個別化された情報を含むページに到達する。このページの情報は、例えば、ウェブ・ページを含む既知のネットワークを使ってアクセスできるが、これに限定されない。
【0041】
ステップ82において、ユーザはウェブ・ブラウザを使って、本発明のリモート・デバイス・データ同期システム100からページを要求する。ステップ83において、リモート・デバイスは同期サーバ100に対して要求された個別化情報を計算してフォーマットする。個別化情報を計算しフォーマットするための流れ図は、図6及び7に関して、さらに詳しく説明される。
【0042】
ステップ84において、ステップ82で要求されたフォーマットされた個別化情報は、ステップ84においてユーザにより使用されているウェブ・ブラウザに戻される。ステップ85において、プロセスは、ユーザがサーバから要求されるべき個別化情報をさらにまだ有しているか否か判断する。ステップ85においてユーザに対して要求されるべき情報はそれ以上ないことが判断されたら、プロセスはステップ89において抜け出す。しかしながら、ステップ85においてユーザがまだ終わっていないと判断されたときは、プロセスは戻ってステップ82から85を繰り返す。
【0043】
図5に示されているのは、リモート・データ同期システムのプロセス100の動作を示すフローチャートの一例である。まず、リモート・デバイス・データ同期100は、ステップ101において初期化される。
【0044】
ステップ102において、リモート・デバイス・データ同期システム100は、ユーザがユーザのリモート・デバイスの同期ボタンを押したとき、ユーザからの入力を受け入れる。ステップ103において、本発明のリモート・デバイス・データ同期システム100は、中央サーバ11から個別化情報の変更を要求する。
【0045】
ステップ104において、リモート・デバイス・データ同期サーバ11は、現在及び来るべき約束及び旅行日程情報のための個別化情報を、デバイスのタイプに合わせて計算しフォーマットする。この約束及び旅行日程情報は図6及び7に関して、さらに詳しく説明される。ステップ105において、サーバは次に新しい個別化情報と現在リモート・ユーザ・デバイスに在る情報の間の相違を計算する。
【0046】
ステップ106において、その相違は、ユーザのリモート・デバイスのデータを更新するために、リモート・ユーザ・デバイスのクライアントに戻される。そのリモート・デバイス内にある本発明のリモート・デバイス・データ同期システム100は、ステップ107において、要求されたとおりに、その相違を使って個別化された約束及び旅行日程情報を更新する。プロセスは109において抜け出す。
【0047】
図6に示されているのは、本発明のリモート・デバイス・データ同期システム100において使われている、約束の個別化情報を生成するためのプロセスのフローチャートの一例である。
【0048】
ステップ121において、サーバ11は約束の個別化情報に対する要求を受け取る。ステップ122において、リモート・デバイス・データ同期サーバ11は次に、ステップ122における彼等のカレンダ内の約束又は旅行日程のどちらかに基づいて、前の約束の前のユーザの場所を計算する。
【0049】
ステップ123において、同期サーバ11は、マップ・コンテンツ・サービス提供業者から約束のための指示を取り出す。マップ・サービス提供業者は、例えば、マップクエスト(MapQuest)であってもよいが、これに限定されない。ステップ124において、個別化された約束情報は、適当なリモート・デバイスのタイプのためにフォーマットされる。約束個別化情報プロセス120はステップ129で抜け出す。
【0050】
図7に示されているのは、旅行日程個別化情報プロセス140の一例である。まず、個別化された旅行日程情報プロセス140は、ステップ141において、旅行日程個別化情報に対する要求を受け取る。
【0051】
ステップ142において、個別化された旅行日程情報プロセス140は、ユーザの構成要素アクセサリ内の他の約束及び旅行日程に基づいて、そのセグメントの前のユーザの場所を決定する。これらの構成要素アクセサリには、カレンダ、スケジューラ、アウトルック(Outlook)、イーメイル(Email)又は他の電子メールをベースとするシステムが含まれるが、これらに限定されない。ステップ143において、個別化旅行日程情報プロセス140は、ステップ142において決定された場所の各々のための指示を取り出す。指示は、マップクエストを含むが、これに限定されずにどんなタイプのマップ・サービスから得手もよい。ステップ144において、個別化旅行日程情報プロセス140は、その旅行日程に含まれる各都市の天気を取り出す。この天気データは、同期サーバ11又は集中化されたデータベース12又はサードパーティのベンダ23から直接に要求されてもよい。サードパーティのベンダには、アキュウェザー(Accuweather)、マップクエスト(Map Quest)、ザ・ナショナル・ウェザー・サービス(the National Weather Service)、ウェザー.コム(Weather.com)、ザ・ウェザー・チャンネル(The Weather Channel)、インテリキャスト(Intellicast)などが含まれるが、これらに限定されない。ステップ145において、個別化旅行日程情報プロセス140は、その旅行日程の個別化データを、ユーザのリモート・デバイス15、17、18又は23のために適切なフォーマットにフォーマットする。次に、個別化旅行日程情報プロセス140はステップ149において抜け出す。
【0052】
図8に示されているのは、本発明のリモート・デバイス・データ同期システム100より使用されるウェザー・エージェント160の一例である。まず、ウェザー・エージェントはステップ161において初期化される。ステップ162において、ウェザー・エージェントは、天気の更新が起きる時であるか否かを判断する。この天気の更新は、スケジュールされたプロセスであることもできるし、ユーザ及び/又はサーバ・システムの管理者によって設定された、予め決められたタイム・スケジュールに基づいてもよい。ステップ162おいてまだ更新の時でないと判断されたときは、ウェザー・エージェントは、ユーザの旅行日程に選択されている都市の天気状態を更新すべき時であるかどうかチェックする。ステップ161においてまだウェザー・旅行日程を更新する時でないと判断されたときは、ウェザー・エージェント162は適切な時に対する待ちを返す。待ち時間はステップ162で実行される。ウェザー・エージェントは次にステップ162に戻り、天気の更新が起きるべき時か否か判断する。
【0053】
しかしながら、ステップ162おいて天気の更新が起きるべき時であるとの時でないと判断されたときは、ウェザー・エージェントは、現在利用されている世界中の数千の都市の天気データを含む天気テキスト・ファイルを取り出す。例えば、ウェザー・エージェントは、世界中の主な都市のテキスト・ファイルを取り出すか、又は別の実施例として、データベース12(図1)の旅行日程・データをスキャンしてどの都市が現在更新された天気情報を必要としているが決定することができる。ステップ164で天気テキストを取り出した後、ウェザー・エージェント160は、ステップ165においてその天気データ・ファイルを解析し、ステップ166においてリモート・ユーザがその後利用できるようにデータベース12(図1)内の天気データを更新する。ウェザー・エージェントは次にステップ162に戻り、次の天気の更新が起きるべき時かどうかチェックする。
【0054】
図9に示されているのは、本発明のリモート・デバイス・データ同期システム100より使用される旅行日程・エージェント180を説明するフローチャートの一例である。まず、旅行日程・エージェント180はステップ181において初期化される。ステップ182において、旅行日程・プロセスを更新すべき時か否かチェックする。ステップ182おいてまだ旅行日程を更新する時でないと判断されたときは、旅行日程・エージェント180は旅行日程を更新すべき時か否かチェックするためにステップ182に戻る前に、ステップ183において予めきめられた時間待つ。
【0055】
ステップ182おいて旅行日程の更新を行うべき時であると判断されたときは、旅行日程・エージェント180は、ステップ184においてXMLフォーマットの1つの旅行日程を受け取る。ステップ185において、旅行日程・エージェント180はその旅行日程を処理し、その情報を旅行日程・エージェントの内部旅行日程・フォーマットに変換する。
【0056】
ステップ186において、旅行日程・エージェントは次に、ユーザによるその後のアクセスのために、リモート・デバイス・データ同期システムのデータベース12(図1)内のそのリモート・ユーザのカレンダ内の旅行日程を更新する。旅行日程・エージェントは次に最初に戻ってステップ182から186を繰り返す。
【0057】
図10Aから10Cに示されているのは、本発明のリモート・デバイス・データ同期システム100より使用されるリモート・デバイス・データ同期システム・サーバからリモート・デバイスへのコンタクトを同期させるためのプロセスを説明するフローチャートである。
【0058】
まずステップ201において、リモート・デバイス・データ同期システム・サーバ11は、ユーザのリモート・デバイスのアドレス帳に対するコンタクトを同期させる。ステップ202において、リモート・デバイス・データ同期システム・サーバ11は次にステップ203において電話フィールド・タイプの総数を有するコンタクトを調べる。
【0059】
ステップ204において、同期サーバ11は5より多くの電話フィールド・タイプがあるか判断する。ステップ204において電話フィールド・タイプの数が5を越えないと判断されたときは、同期コンタクト・プロセス200は最小化された同期プロセスを実行する。最小化された同期プロセスは図11Bに関してさらに詳しく説明される。最小化されたコンタクト同期プロセス220を実行した後、コンタクト同期プロセス200はステップ209において抜け出す。
【0060】
しかしながら、ステップ204において、5より多くの電話フィールド・タイプがあると判断されたときは、同期コンタクト・プロセス200は最大化された同期プロセス240を実行する。最大化された同期プロセス240は、図11Cに関してさらに詳しく説明される。最大化されたコンタクト同期プロセス240を実行した後、コンタクト同期プロセス200はステップ209において抜け出す。
【0061】
図10Bに示されているのは、最小化されたコンタクト同期プロセス220である。まず、最小化されたコンタクト同期プロセス220は、ステップ221において、各フィールド・タイプのためのステップを取得する。
【0062】
ステップ222において、最小化されたコンタクト同期プロセス220は、各フィールド・タイプに対して、電話フィールドを適当なフィールド・タイプに割り当てる。ステップ223において、最小化されたコンタクト同期プロセス220は、現在のフィールド・タイプに対してまだ電話フィールドがあるかどうか判断する。ステップ223において現在のフィールド・タイプに対してまだ電話フィールドがあると判断されたときは、最小化されたコンタクト同期プロセス220は現在のフィールド・タイプに復帰記号を付加し、ステップ223及びステップ225において同じタイプの次の電話フィールド。ステップ225において同じタイプの次の電話フィールドを得た後、最小化されたコンタクト同期プロセス220はステップ222に戻り、次の電話フィールドを適当なフィールド・タイプに割り当てる。
【0063】
しかしながら、ステップ223において現在のフィールド・タイプに対してもうそれ以上電話フィールドないと判断されたときは、最小化されたコンタクト同期プロセス220は、ステップ226において何か他のフィールド・タイプが残っていないかどうか判断する。ステップ226において他のフィールド・タイプが残っていると判断されたときは、最小化されたコンタクト同期プロセス220はステップ222から226を繰り返す。しかしながら、ステップ226において他のフィールド・タイプが残っていないと判断されたときは、最小化されたコンタクト同期プロセス220はステップ229において抜け出す。
【0064】
図10Cに示されているのは、最大化されたコンタクト同期プロセス240の一例である。まず、最大化されたコンタクト同期プロセス240は、ステップ241において、最初の4スロットにそれら自身のフィールド・タイプを指定する。ステップ242において、最大化されたコンタクト同期プロセス240は、電話フィールドを適当なフィールド・タイプに割り当てる。
【0065】
ステップ243において、最大化されたコンタクト同期プロセス240は、現在のフィールド・タイプに対してまだ電話フィールドがあるかどうか判断する。ステップ243において現在のフィールド・タイプに対してまだ電話フィールドがあると判断されたときは、最大化されたコンタクト同期プロセス240はステップ244を実行して現在のフィールド・タイプに復帰区切り記号を付加し、同じタイプの次の電話フィールド得る。ステップ244において復帰区切り記号を付加しさらに同じタイプの次の電話フィールド得た後、最大化されたコンタクト同期プロセス240はステップ242を繰り返すために戻る。
【0066】
しかしながら、ステップ243において現在のフィールド・タイプに対してもうそれ以上電話フィールドないと判断されたときは、最大化されたコンタクト同期プロセス240は、ステップ245において他のフィールド・タイプが残っていないかどうか判断する。ステップ245において他のフィールド・タイプが残っていると判断されたときは、最大化されたコンタクト同期プロセス240はステップ246において残っているフィールド・タイプが5番目のフィールド・タイプであるか否か判断する。ステップ246において次のフィールド・タイプが5番目のフィールド・タイプでないときは、最大化されたコンタクト同期プロセス240は戻ってステップ242を繰り返す。
【0067】
しかしながら、ステップ246において次のフィールド・タイプが5番目のフィールド・タイプでないときは、最大化されたコンタクト同期プロセス240はステップ251においてその5番目のスロットに他として指定する。
【0068】
ステップ252において、現在のスロットのフィールド・タイプに基づいてラベルが付けられる。ステップ253において、最大化されたコンタクト同期プロセス240は電話フィールドを「他」スロットに割当て、ステップ254において処理されるべき他の残っている電話フィールドがあるか否か判断する。ステップ254において他の電話フィールドが残っているときは、最大化されたコンタクト同期プロセス240はステップ255において復帰区切り記号を付加し、次の電話フィールドを得る。最大化されたコンタクト同期プロセス240はステップ252から255を繰り返すために戻る。
【0069】
しかしながら、ステップ254においてもう他のフィールド・タイプが残っていないときは、最大化されたコンタクト同期プロセス240はステップ259において抜け出す。
【0070】
この分野における専門家には、上に説明された本発明の実施例に対して、本発明の原理から実質的に逸脱することなく、多くの部分変更や変形を加えることができることは明らかであろう。すべてのそのような部分変更や変形は、添付された特許請求範囲に記載された本発明の範囲に含められるように意図されている。
【図面の簡単な説明】
【0071】
特許請求の範囲に規定される本発明は、次の図面を参照することでより良く理解されることができる。図面中の構成要素は必ずしも互いに同じ縮率になっておらず、その代わりに本発明の原理を明瞭に説明することに重点が置かれている。
【図1】図1はサーバ・コンピュータ・システムのためのネットワーク環境及び本発明のリモート・デバイス・データ同期システムを使用するリモート・デバイスの一例を示すブロック図である。
【図2】図2は本発明のリモート・デバイス・データ同期システムを使用するサーバの一例を示すブロック図である。
【図3】図3は本発明のリモート・デバイス・データ同期システムを使用するリモート・デバイスの一例を示すブロック図である。
【図4】図4は、図1〜3に示されるような、リモート・デバイス・データ同期システムのプロセスの流れの一例を示すフローチャートである。
【図5】図5は、図1〜3に示されるような、リモート・デバイス・データ同期システムの動作を示すフローチャートである。
【図6】図6は、図5に示されるような、本発明のリモート・デバイス・データ同期システムに利用される約束個別化情報を生成するためのフローチャートの一例である。
【図7】図7は、図5に示される、本発明のリモート・デバイス・データ同期システムと一緒に動作する旅行日程個人化情報プロセスの一例である。
【図8】図8は、図5に示される、本発明のリモート・デバイス・データ同期システムと一緒に動作するウェザー・エージェントの一例である。
【図9】図9は、図5に示される、本発明のリモート・デバイス・データ同期システムと一緒に動作する旅行日程・エージェントを説明するフローチャートの一例である。
【図10A】図10Aは、図2〜5に示される、本発明のリモート・デバイス・データ同期システムにおいて使用される、リモート・デバイス・データ同期サーバからリモート・デバイスへのコンタクトを同期させるためのプロセスを説明するフローチャートである。
【図10B】図10Bは、図2〜5に示される、本発明のリモート・デバイス・データ同期システムにおいて使用される、リモート・デバイス・データ同期サーバからリモート・デバイスへのコンタクトを同期させるためのプロセスを説明するフローチャートである。
【図10C】図10Cは、図2〜5に示される、本発明のリモート・デバイス・データ同期システムにおいて使用される、リモート・デバイス・データ同期サーバからリモート・デバイスへのコンタクトを同期させるためのプロセスを説明するフローチャートである。

Claims (20)

  1. サーバ内の変更されたデータをリモート・デバイスに送信する方法であって、
    元のデータを提供するステップと、
    前記元のデータの更新されたデータを作成するステップと、
    前記元のデータと前記更新されたデータの間の変更点だけを示すデルタ・データを生成するステップと、
    前記デルタ・データをリモート・デバイスに送信するステップと、
    を含む方法。
  2. 前記デルタ・データを生成するステップが、
    前記元のデータと前記更新されたデータの間の変更点を示す2分木を生成するステップ
    をさらに含む請求項1記載の方法。
  3. 前記デルタ・データを生成するステップが、
    前記デルタ・データを生成するために、個別化されたデータを使い、前記個別化されたデータは、約束データ、旅行日程データ、地図データ、天気データ、カレンダ・データ、フライト・データ、ホテル・データ、タクシー・データ、レンタ・カー・データ及びコンタクト・データを含む一群から選択されるステップ
    をさらに含む請求項1記載の方法。
  4. 前記コンタクト・データが電話データを含む請求項3記載の方法。
  5. 前記デルタ・データとデバイスの元のデータだけを使って前記リモート・デバイスに前記更新されたデータを再生成するステップ
    をさらに含む請求項4記載の方法。
  6. サーバ・デバイス内の変更されたデータをリモート・デバイスに送信するシステムであって、
    デバイス・データを有するリモート・デバイスと、
    元のデータと前記元のデータの改変データを含むサーバ・デバイスと、
    前記元のデータと前記改変されたデータの間の変更点だけを示すデルタ・データと、
    を含むシステム。
  7. 前記リモート・デバイスが、
    前記デルタ・データと前記デバイス・データを使って前記リモート・デバイス上で前記改変されたデータを生成する同期モジュール
    をさらに含む請求項6記載のシステム。
  8. 前記サーバ・デバイスが、
    前記リモート・デバイスが前記改変されたデータを再生成することができるように前記デルタ・データを前記リモート・デバイスに送信する送信モジュール
    をさらに含む請求項6記載のシステム。
  9. 前記サーバ・デバイスが、
    前記元のデータ中の各ブロックのデータを前記改変されたデータ中の各ブロックのデータと比較する比較モジュール
    をさらに含む請求項6記載のシステム。
  10. 前記比較モジュールが、前記デルタ・データを生成するために、個別化されたデータを使い、前記前記個別化されたデータは、約束データ、旅行日程データ、地図データ、天気データ、カレンダ・データ、フライト・データ、ホテル・データ、タクシー・データ、レンタ・カー・データ及びコンタクト・データを含む一群から選択される請求項6記載のシステム。
  11. サーバ内の変更されているデータをリモート・デバイスに送信するロジックのためのコンピュータが可読な媒体であって、
    元のデータを供給するロジックと、
    前記元のデータの更新されたデータを生成するロジックと、
    前記元のデータと前記更新されたデータの間の変更点だけを示すデルタ・データを生成するロジックと、
    前記デルタ・データをリモート・デバイスに送信するロジックと、
    を含む媒体。
  12. 前記生成するロジックが、
    前記元のデータと前記更新されたデータの間の相違点を示す2分木を生成するロジック
    をさらに含む請求項11記載のコンピュータが可読な媒体。
  13. 前記生成するロジックが、前記デルタ・データを生成するために、個別化されたデータを使い、前記個別化されたデータは、約束データ、旅行日程データ、地図データ、天気データ、カレンダ・データ、フライト・データ、ホテル・データ、タクシー・データ、レンタ・カー・データ及びコンタクト・データを含む一群から選択される請求項11記載のコンピュータが可読な媒体。
  14. 前記コンタクト・データが電話データを含む請求項13記載のコンピュータが可読な媒体。
  15. 前記生成するロジックが、
    前記デルタ・データと前記リモート・デバイス内のデータだけを使って前記リモート・デバイス内に前記更新されたデータを再生成するロジックをさらに含む請求項11記載のコンピュータが可読な媒体。
  16. サーバ内の変更されたデータをリモート・デバイスに送信するシステムであって、
    元のデータを供給する手段と、
    前記元のデータの更新されたデータを生成する手段と、
    前記元のデータと前記更新されたデータの間の変更点だけを示すデルタ・データを生成する手段と、
    前記デルタ・データをリモート・デバイスに送信する手段と、
    を含むシステム。
  17. 前記生成するロジックが
    前記元のデータと前記更新されたデータの間の変更点を示す2分木を生成する手段
    をさらに含む請求項16記載のシステム。
  18. 前記生成する手段が、前記デルタ・データを生成するために、個別化されたデータを使い、前記個別化されたデータは、約束データ、旅行日程データ、地図データ、天気データ、カレンダ・データ、フライト・データ、ホテル・データ、タクシー・データ、レンタ・カー・データ及びコンタクト・データを含む一群から選択される請求項16記載のシステム。
  19. 前記コンタクト・データが電話データを含む請求項18記載のシステム。
  20. 前記デルタ・データと前記リモート・デバイス内のデータだけを使って前記リモート・デバイス内に前記更新されたデータを再生成する手段をさらに含む請求項16記載のシステム。
JP2002554866A 2001-01-03 2002-01-03 リモート・デバイス間のデータ同期のためのシステム及び方法 Pending JP2004528621A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US25952801P 2001-01-03 2001-01-03
PCT/US2002/000115 WO2002054236A2 (en) 2001-01-03 2002-01-03 A system and method for data synchronization between remote devices

Publications (1)

Publication Number Publication Date
JP2004528621A true JP2004528621A (ja) 2004-09-16

Family

ID=22985313

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002554866A Pending JP2004528621A (ja) 2001-01-03 2002-01-03 リモート・デバイス間のデータ同期のためのシステム及び方法

Country Status (5)

Country Link
US (1) US20020194207A1 (ja)
EP (1) EP1352343A2 (ja)
JP (1) JP2004528621A (ja)
AU (1) AU2002237758A1 (ja)
WO (1) WO2002054236A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009527055A (ja) * 2006-02-15 2009-07-23 マイクロソフト コーポレーション 同期ピア参加モデル

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7213039B2 (en) * 2001-09-07 2007-05-01 Extended System, Inc. Synchronizing differing data formats
TWI241494B (en) * 2001-09-07 2005-10-11 Fen Peng Data storing and updating method for system document and device thereof
US7373362B2 (en) 2001-11-19 2008-05-13 Extended Systems, Inc. Coordinated synchronization
AU2003209194A1 (en) 2002-01-08 2003-07-24 Seven Networks, Inc. Secure transport for mobile communication network
JP3785640B2 (ja) * 2002-02-25 2006-06-14 ソニー株式会社 サービス提供装置及びサービス提供方法
US7346616B2 (en) 2002-03-20 2008-03-18 Extended System, Inc. Synchronizing data shared between two devices independent of any other devices that may also share the data
US11337047B1 (en) 2002-05-21 2022-05-17 M2M Solutions Llc System and method for remote asset management
GB0211644D0 (en) 2002-05-21 2002-07-03 Wesby Philip B System and method for remote asset management
US7809384B2 (en) 2002-11-05 2010-10-05 Microsoft Corporation User-input scheduling of synchronization operation on a mobile device based on user activity
EP1489862A1 (en) * 2003-06-20 2004-12-22 Axalto S.A. Database synchronization
US7440981B2 (en) * 2003-07-31 2008-10-21 Microsoft Corporation Systems and methods for replicating data stores
US7401103B2 (en) * 2003-07-31 2008-07-15 Microsoft Corporation Replication protocol for data stores
US7457631B2 (en) 2004-02-10 2008-11-25 Research In Motion Limited Apparatus, and associated method, for facilitating synchronization of databases connected by way of a radio air interface
EP2101271A1 (en) * 2004-02-10 2009-09-16 Research In Motion Limited Apparatus, and associated method, for facilitating synchronization of databases connected by way of a radio air interface
US8126842B2 (en) 2004-02-10 2012-02-28 Research In Motion Limited Apparatus, and associated method, for synchronizing databases connected by way of a radio air interface
US20050216524A1 (en) * 2004-03-23 2005-09-29 Integrated Data Corporation Smart and selective synchronization between databases in a document management system
US7966391B2 (en) * 2004-05-11 2011-06-21 Todd J. Anderson Systems, apparatus and methods for managing networking devices
US8122107B2 (en) 2004-06-30 2012-02-21 Jumpstart Wireless Corporation Method for extending business systems to a mobile workforce
GB2417800A (en) * 2004-09-07 2006-03-08 Siemens Ag Data updating management apparatus and method
US7840528B2 (en) * 2004-10-22 2010-11-23 Research In Motion Limited System and method for integrating continuous synchronization on a host handheld device
CN101151841A (zh) 2004-12-23 2008-03-26 捷讯研究有限公司 主机和客户手持设备之间连续pim同步的系统和方法
US7317907B2 (en) 2005-01-31 2008-01-08 Research In Motion Limited Synchronizing server and device data using device data schema
ATE384389T1 (de) * 2005-01-31 2008-02-15 Research In Motion Ltd Synchronisation von server- und geräte-daten unter benutzung von geräte-daten-schemata
EP1703700A1 (en) * 2005-03-17 2006-09-20 International Business Machines Corporation A method and system for rendering and refreshing a web portal page
US8438633B1 (en) 2005-04-21 2013-05-07 Seven Networks, Inc. Flexible real-time inbox access
WO2006136660A1 (en) 2005-06-21 2006-12-28 Seven Networks International Oy Maintaining an ip connection in a mobile network
US7831554B2 (en) * 2005-08-31 2010-11-09 Sap Ag Mobile data management using association table
US7650389B2 (en) * 2006-02-01 2010-01-19 Subhashis Mohanty Wireless system and method for managing logical documents
CN100407656C (zh) * 2005-12-09 2008-07-30 华为技术有限公司 对终端设备进行管理的方法和系统
EP1832988A1 (de) * 2006-03-06 2007-09-12 Siemens Schweiz AG Verfahren zur Nachführung von Daten für eine mobile Anwendung
US20090287726A1 (en) * 2006-04-07 2009-11-19 Mag Productions Holding B.V. Method and system for synchronization of databases
US7890646B2 (en) * 2006-04-27 2011-02-15 Microsoft Corporation Synchronization orchestration
US7539827B2 (en) * 2006-07-19 2009-05-26 Microsoft Corporation Synchronization of change-tracked data store with data store having limited or no change tracking
US7577691B2 (en) * 2006-08-02 2009-08-18 Microsoft Corporation Extending hierarchical synchronization scopes to non-hierarchical scenarios
US8527660B2 (en) * 2006-12-22 2013-09-03 Palm, Inc. Data synchronization by communication of modifications
US8805425B2 (en) 2007-06-01 2014-08-12 Seven Networks, Inc. Integrated messaging
US9002828B2 (en) 2007-12-13 2015-04-07 Seven Networks, Inc. Predictive content delivery
US8862657B2 (en) 2008-01-25 2014-10-14 Seven Networks, Inc. Policy based content service
US20090193338A1 (en) 2008-01-28 2009-07-30 Trevor Fiatal Reducing network and battery consumption during content delivery and playback
US9063993B2 (en) * 2008-01-31 2015-06-23 Microsoft Technology Licensing, Llc Coexistence tools for synchronizing properties between on-premises customer locations and remote hosting services
US7996357B2 (en) 2008-02-29 2011-08-09 Plaxo, Inc. Enabling synchronization with a difference unaware data source
US8909759B2 (en) 2008-10-10 2014-12-09 Seven Networks, Inc. Bandwidth measurement
US8457887B2 (en) * 2008-10-13 2013-06-04 Centurylink Intellectual Property Llc System and method for providing travel-related information associated with a calendar appointment
US20110149086A1 (en) 2009-12-23 2011-06-23 Winbush Iii Amos Camera user content synchronization with central web-based records and information sharing system
US20110179358A1 (en) * 2010-01-19 2011-07-21 Rajesh Gautam System For Managing A Plurality of Appointments, Events, and Reminders
DE102010009755A1 (de) * 2010-03-01 2011-09-01 Deutsche Telekom Ag Kommunikationssystem zur prozessorientierten Erfassung, Speicherung, Übermittlung und Bereitstellung von Daten
US8838783B2 (en) 2010-07-26 2014-09-16 Seven Networks, Inc. Distributed caching for resource and mobile network traffic management
WO2012018430A1 (en) 2010-07-26 2012-02-09 Seven Networks, Inc. Mobile network traffic coordination across multiple applications
US8577767B2 (en) 2010-09-13 2013-11-05 American International Group, Inc. Method and system for processing and optimizing travel insurance transactions
US8843153B2 (en) 2010-11-01 2014-09-23 Seven Networks, Inc. Mobile traffic categorization and policy for network use optimization while preserving user experience
WO2012060995A2 (en) 2010-11-01 2012-05-10 Michael Luna Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
EP3422775A1 (en) 2010-11-22 2019-01-02 Seven Networks, LLC Optimization of resource polling intervals to satisfy mobile device requests
EP2661697B1 (en) 2011-01-07 2018-11-21 Seven Networks, LLC System and method for reduction of mobile network traffic used for domain name system (dns) queries
EP2700019B1 (en) 2011-04-19 2019-03-27 Seven Networks, LLC Social caching for device resource sharing and management
WO2012149216A2 (en) 2011-04-27 2012-11-01 Seven Networks, Inc. Mobile device which offloads requests made by a mobile application to a remote entity for conservation of mobile device and network resources and methods therefor
US8621075B2 (en) 2011-04-27 2013-12-31 Seven Metworks, Inc. Detecting and preserving state for satisfying application requests in a distributed proxy and cache system
KR101597250B1 (ko) 2011-07-20 2016-02-25 네이버 주식회사 메모 데이터의 동기화를 위한 메모 동기화 시스템, 모바일 시스템 및 메모 동기화 방법
WO2013086225A1 (en) 2011-12-06 2013-06-13 Seven Networks, Inc. A mobile device and method to utilize the failover mechanisms for fault tolerance provided for mobile traffic management and network/device resource conservation
US8934414B2 (en) 2011-12-06 2015-01-13 Seven Networks, Inc. Cellular or WiFi mobile traffic optimization based on public or private network destination
GB2498064A (en) 2011-12-07 2013-07-03 Seven Networks Inc Distributed content caching mechanism using a network operator proxy
WO2013086447A1 (en) 2011-12-07 2013-06-13 Seven Networks, Inc. Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol
US20130159511A1 (en) 2011-12-14 2013-06-20 Seven Networks, Inc. System and method for generating a report to a network operator by distributing aggregation of data
US8812695B2 (en) 2012-04-09 2014-08-19 Seven Networks, Inc. Method and system for management of a virtual network connection without heartbeat messages
FR2992445B1 (fr) * 2012-06-22 2014-07-04 Snecma Procede de synchronisation de donnees d'algorithmes de calculateurs asynchrones d'aeronef
WO2014011216A1 (en) 2012-07-13 2014-01-16 Seven Networks, Inc. Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications
US8874761B2 (en) 2013-01-25 2014-10-28 Seven Networks, Inc. Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
US8750123B1 (en) 2013-03-11 2014-06-10 Seven Networks, Inc. Mobile device equipped with mobile network congestion recognition to make intelligent decisions regarding connecting to an operator network
US9065765B2 (en) 2013-07-22 2015-06-23 Seven Networks, Inc. Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network
US10311082B2 (en) * 2015-12-21 2019-06-04 Sap Se Synchronization of offline instances
US11809725B2 (en) 2021-10-13 2023-11-07 International Business Machines Corporation Document storage with blocks split between multiple repositories

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1115761A (ja) * 1997-06-02 1999-01-22 Internatl Business Mach Corp <Ibm> 赤外線通信機能を持つ情報処理装置及びその制御方法
US6226650B1 (en) * 1998-09-17 2001-05-01 Synchrologic, Inc. Database synchronization and organization system and method
EP1016988A3 (en) * 1998-12-29 2001-03-14 Sun Microsystems, Inc. Creating updates for copies of hierarchically structured data

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009527055A (ja) * 2006-02-15 2009-07-23 マイクロソフト コーポレーション 同期ピア参加モデル

Also Published As

Publication number Publication date
WO2002054236A3 (en) 2003-04-24
EP1352343A2 (en) 2003-10-15
US20020194207A1 (en) 2002-12-19
WO2002054236A2 (en) 2002-07-11
AU2002237758A1 (en) 2002-07-16

Similar Documents

Publication Publication Date Title
JP2004528621A (ja) リモート・デバイス間のデータ同期のためのシステム及び方法
EP1532538B1 (en) System and method for automatically updating a wireless device
US20040044674A1 (en) System and method for parsing itinerary data
JP5193056B2 (ja) 無線装置の最新データを維持するための方法及びシステム
US20180032629A1 (en) Transport and administration model for offline browsing
US6694335B1 (en) Method, computer readable medium, and system for monitoring the state of a collection of resources
CN1129083C (zh) 用于更新网络中远程数据库的系统和方法
CN101385017B (zh) 部分项改变跟踪和同步
JP3782975B2 (ja) ユーザの位置を確認するため情報を集計する方法及びシステム
US8843577B2 (en) Method, system, and computer program product for synchronization of similar data objects with event information
US20020188620A1 (en) Calendar-enhanced directory searches including dynamic contact information
US20040215826A1 (en) Accessing data stored in multiple locations
US20030220966A1 (en) System and method for dynamic content dependent conflict resolution
US8468217B2 (en) Maintaining portlet data currency while minimizing latency
JP2009508235A (ja) 移動装置のためのデータ配布方法
EP1623558B1 (en) Accessing data in a computer network
JP2006107488A (ja) コンピュータ・システムを自動的に構成する方法およびコンピュータ・システム
EP1620808A1 (en) Accessing data based on user identity
EP1741026A2 (en) Methods and systems for interfacing applications with a search engine
US6986134B1 (en) Lightweight global distribution mechanism
JP2014209365A (ja) 装置へのコンテンツの分配を管理するシステムと方法とプログラムを提供する記憶媒体
US9813514B2 (en) Information repository system including a wireless device and related method
KR100597586B1 (ko) 세션 관리 기능을 이용한 데이터 동기화 방법
US8516034B1 (en) System and method for modifying application behavior based on network bandwidth

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080304

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080603

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080610

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081028