(57)【要約】【課題】  ３層同期システム内で動作するように構成されたバイパス装置を提供することにある。【解決手段】  このバイパス装置は、インターセプタと推論エンジンとを含むことができる。インターセプタは、同期サーバを伴う同期イベントが開始される前に同期要求をインターセプトすることができる。推論エンジンは、データ・ストアと他のデータ・ストアとを同期させるべきかどうかを判断することができ、推論エンジンの判断に基づいて同期イベントを選択的に開始することができる。たとえば、同期をとるべきではないと推論エンジンが判断した場合、バイパス装置は、同期要求を処理するよう同期サーバに要求せずに、インターセプトされた同期要求の送信元に、いかなる更新も必要ではないという通知を伝達することができる。同期をとるべきであると推論エンジンが判断した場合、バイパス装置は、処理のために、インターセプトされた同期要求を中間同期サーバに伝達することができる。【選択図】  図１
2008524677.tif 000002
【特許請求の範囲】
【請求項１】
クライアントと、同期サーバと、データ・サーバとを有する３層同期システム内で空更新イベントを処理するための方法において、前記方法が、
前記クライアントのデータ・ストアを前記データ・サーバのデータ・ストアと同期させるための同期要求を検出するステップと、
前記同期要求が前記同期サーバに伝達される前に、事前確立指標に基づいて、データ更新が必要であるかどうかを判断するステップと、
前記判断ステップの結果に基づいて同期イベントを選択的に開始するステップと、
を含む方法。
【請求項２】
データ更新が必要ではないことを前記判断ステップが示す場合に、前記同期要求を前記同期サーバに伝達せずに、いかなる更新も必要ではないという通知を前記クライアントに伝達する、請求項１に記載の方法。
【請求項３】
空更新イベントが前記同期要求の結果として発生することを前記指標が示す場合に、データ更新が必要ではないことを前記判断ステップが示す、請求項１または請求項２に記載の方法。
【請求項４】
データ更新が必要であることを前記判断ステップが示す場合に、前記通知要求を前記同期サーバに伝達し、それが前記クライアントと前記データ・サーバとの間の同期アクションを開始する、請求項１に記載の方法。
【請求項５】
前記検出ステップの前に、データ更新が必要であるかどうかを判断するために前記データ・サーバにポーリングするステップと、
データ更新が必要であると前記ポーリング・ステップが判断した場合に、データ更新が必要であることを示すための指標値を確立し、前記指標値が前記検出ステップの前記事前確立指標の範囲内で確立されるステップと、
前記指標に関するデフォルト状態がいかなるデータ更新も必要ではないことを示し、データ更新が必要であると前記ポーリング・ステップが判断するまで前記ポーリング・ステップを間欠的に繰り返すステップ
のうちの少なくとも１つをさらに含む、請求項１に記載の方法。
【請求項６】
コンピュータ・システム内にロードされ、そこで実行されたときに、請求項１ないし５のいずれか１項に記載の前記方法のすべてのステップを前記コンピュータ・システムに実行させるためのコンピュータ・プログラム・コードを含むコンピュータ・プログラム。
【請求項７】
データ・ストアを備えたクライアントと、中間同期サーバと、前記同期サーバを使用して間欠的に前記データ・ストアとの同期がとられる他のデータ・ストアを備えたデータ・サーバとを有する３層同期システム内で動作するように構成されたバイパス装置において、前記バイパス装置が、
前記同期サーバを伴う同期イベントが開始される前に同期要求をインターセプトするためのインターセプタと、
前記データ・ストアと前記他のデータ・ストアとを同期させるべきかどうかを判断する推論エンジンであって、前記推論エンジンの判断に応答して前記同期イベントが選択的に開始される推論エンジンと、
を有するバイパス装置。
【請求項８】
同期をとるべきではないと前記推論エンジンが判断した場合に、前記バイパス装置が、インターセプトされた同期要求の送信元に、いかなる更新も必要ではないという通知を伝達する、請求項７に記載のバイパス装置。
【請求項９】
同期をとるべきであると前記推論エンジンが判断した場合に、前記バイパス装置が、処理のために、インターセプトされた同期要求を前記同期サーバに伝達する、請求項７または請求項８に記載のバイパス装置。
【請求項１０】
更新について前記データ・サーバと前記同期サーバのうちの少なくとも１つを非同期的にポーリングし、前記データ・ストアを同期させるべきかどうかを判断するために前記推論エンジンが使用する前記ポーリングの結果を保管するように構成された更新検出エンジンと、
各バイパス・フラグが固有のクライアント／データ・サーバ関係に関連付けられている前記更新検出エンジンによって生成された複数のバイパス・フラグを保管するように構成されたバイパス・フラグ・データ・ストアであって、前記データ・ストアと前記他のデータ・ストアとを同期させるべきかどうかを判断する際に前記推論エンジンが前記バイパス・フラグを使用するバイパス・フラグ・データ・ストア
のうちの少なくとも１つをさらに有する、請求項７または請求項８に記載のバイパス装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ・ストア同期に関し、詳細には、３層同期システムの同期サーバを状況に応じてバイパスするための技法に関する。
【背景技術】
【０００２】
電子メール、連絡先情報、カレンダ・イベント、タスクなどがハンドヘルド・デバイスとリモートに位置するコンピュータとの間で一貫したものになるように、ハンドヘルド・デバイスは一般にそのコンピュータとの同期がとられる。従来、ハンドヘルド・デバイス上のデータを同期させるために、３層手法が取られる。この３層手法では、ハンドヘルド・デバイス上に存在する同期クライアントが同期サーバと呼ばれる中間サーバに接続し、次にその同期サーバがリモートに位置するコンピュータ上に存在する個人情報管理（ＰＩＭ：personal information management）サーバまたはその他のデータ・サーバに接続する。
【０００３】
より具体的には、同期動作は、典型的には、同期要求を同期サーバに伝達するためにＳｙｎｃＭＬなどの適切に定義された通信プロトコルを使用する同期クライアントによって制御される。同期サーバは、ＰＩＭサーバが同期クライアント内に存在するデータより最新のデータを含むかどうかを照会するためにＰＩＭサーバに接続する。データを更新する必要がある場合、そのデータは同期サーバによってＰＩＭサーバから検索され、同期クライアントに伝達される。データを更新する必要がない場合、同期サーバは、同期クライアントが現行情報を含むことを示す通知を同期クライアントに伝達する。同様に、同期サーバは、更新済み情報について同期クライアントに照会することができ、更新済みデータが検出された場合にはそのデータを同期クライアントからＰＩＭサーバに適宜、伝達することができる。
【０００４】
しかし、従来の３層同期方法では、同期クライアントに伝達する必要がある情報がＰＩＭサーバ上にまったくない場合ならびにＰＩＭサーバに伝達する必要がある情報が同期クライアント上にまったくない場合に同期クライアントが同期要求を提示することは一般的なことである。結果的に同期クライアントとＰＩＭサーバとの間でいかなるデータも伝達されない同期試行は、「空更新（empty update）」と呼ぶことができる。
【０００５】
結果的に空更新になる同期試行の場合、同期サーバ（ＰＩＭサーバと同期クライアントの両方との接続を確立し、両方のデータ・ストアに照会するもの）内で相当な量の処理が行われるので、空更新は問題になる可能性がある。また、いかなる情報も更新する必要がないことがハンドヘルド・デバイスのユーザに通知される前に、そのユーザにとって相当な遅延（典型的には１５〜３０秒）が発生する可能性もある。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
朝、職場に到着したときなど、複数のユーザがほぼ同時に同期サーバを介して自分自身のハンドヘルド・デバイスを更新しようと試みると、同期サーバで相当な処理ボトルネックが発生する可能性があるので、遅延および処理オーバヘッドは、ますます厄介なものになる可能性がある。ユーザ遅延を削減でき、同期サーバ・リソースを節約でき、ＰＩＭサーバ・リソースを節約できるように、空更新を検出し、同期サーバへのアクセスをバイパスするための方法が必要である。
【課題を解決するための手段】
【０００７】
第１の態様では、本発明は、クライアントと、同期サーバと、データ・サーバとを有する３層同期システム内で空更新イベントを処理するための方法を提供し、前記方法は、クライアントのデータ・ストアをデータ・サーバのデータ・ストアと同期させるための同期要求を検出するステップと、同期要求が同期サーバに伝達される前に、事前確立指標（indicator）に基づいて、データ更新が必要であるかどうかを判断するステップと、判断ステップの結果に基づいて同期イベントを選択的に開始するステップとを含む。
【０００８】
好ましくは、データ更新が必要ではないことを判断ステップが示す場合、同期要求を同期サーバに伝達せずに、いかなる更新も必要ではないという通知をクライアントに伝達する。
【０００９】
好ましくは、空更新イベントが同期要求の結果として発生することを指標が示す場合、判断ステップはデータ更新が必要ではないことを示す。
【００１０】
好ましくは、データ更新が必要であることを判断ステップが示す場合、同期要求を同期サーバに伝達し、これによりクライアントとデータ・サーバとの間の同期アクションを開始する。
【００１１】
この方法は、検出ステップの前に、データ更新が必要であるかどうかを判断するためにデータ・サーバにポーリングするステップをさらに含むことができる。
【００１２】
この方法は、データ更新が必要であるとポーリング・ステップが判断した場合、データ更新が必要であることを示すための指標値を確立し、その指標値が前記検出ステップの事前確立指標の範囲内で確立されるステップをさらに含むことができる。
【００１３】
好ましくは、前記指標に関するデフォルト状態はいかなるデータ更新も必要ではないことを示し、前記方法は、データ更新が必要であるとポーリング・ステップが判断するまで前記ポーリング・ステップを間欠的に繰り返すステップをさらに含む。
【００１４】
この方法は、検出ステップの前に、データ更新が必要であるかどうかを判断するために同期サーバにポーリングするステップをさらに含むことができる。
【００１５】
この方法は、クライアントのデータ・ストアを第２のデータ・サーバのデータ・ストアと同期させるための同期要求を検出するステップと、第２のデータ・サーバに関連する同期要求が第２のデータ・サーバに関連する同期サーバに伝達される前に、事前確立指標に基づいて、データ更新が必要であるかどうかを判断するステップと、非空更新イベントが結果として発生することを指標が示す場合のみ、第２のデータ・サーバに関連する同期要求が第２のデータ・サーバに関連する同期サーバに伝達されるように、判断ステップの結果に基づいて同期イベントを選択的に開始するステップとをさらに含むことができる。
【００１６】
好ましくは、クライアントはハンドヘルド・デバイス内に存在し、データ・サーバは個人情報管理（ＰＩＭ）データ・サーバである。
【００１７】
好ましくは、クライアントはハンドヘルド・デバイス内に存在し、データ・サーバは書式サーバ（form server）である。
【００１８】
好ましくは、クライアントはハンドヘルド・デバイス内に存在し、データ・サーバはリレーショナル・データベース・サーバである。
【００１９】
好ましくは、クライアントとデータ・サーバとの間のデータの同期は、ＳｙｎｃＭＬプロトコルを使用する。
【００２０】
第２の態様では、本発明は、コンピュータ・システム内にロードされ、そこで実行されたときに、第１の態様の方法のすべてのステップを前記コンピュータ・システムに実行させるためのコンピュータ・プログラム・コードを含むコンピュータ・プログラムを提供する。
【００２１】
本発明は、クライアントと、同期サーバと、データ・サーバとを有する３層同期システム内で空更新イベントを処理するための機械可読記憶装置を提供することができ、この機械可読記憶装置は複数のコード・セクションを有するコンピュータ・プログラムをそこに保管しており、前記コード・セクションは、クライアントのデータ・ストアをデータ・サーバのデータ・ストアと同期させるための同期要求を検出するステップと、同期要求が同期サーバに伝達される前に、事前確立指標に基づいて、データ更新が必要であるかどうかを判断するステップと、判断ステップの結果に基づいて同期イベントを選択的に開始するステップとを機械に実行させるために機械によって実行可能である。
【００２２】
第３の態様では、本発明は、データ・ストアを備えたクライアントと、中間同期サーバと、同期サーバを使用して間欠的にデータ・ストアとの同期がとられる他のデータ・ストアを備えたデータ・サーバとを有する３層同期システム内で動作するように構成されたバイパス装置（bypasser）を提供し、このバイパス装置は、同期サーバを伴う同期イベントが開始される前に同期要求をインターセプトするためのインターセプタ（interceptor）と、データ・ストアと他のデータ・ストアとを同期させるべきかどうかを判断する推論エンジン（inference engine）であって、推論エンジンの判断に応答して同期イベントが選択的に開始される推論エンジンとを有する。
【００２３】
好ましくは、同期をとるべきではないと推論エンジンが判断した場合、バイパス装置は、インターセプトされた同期要求の送信元に、いかなる更新も必要ではないという通知を伝達する。
【００２４】
好ましくは、同期をとるべきであると推論エンジンが判断した場合、バイパス装置は、処理のために、インターセプトされた同期要求を同期サーバに伝達する。
【００２５】
バイパス装置は、更新についてデータ・サーバと同期サーバのうちの少なくとも１つを非同期的にポーリングし、データ・ストアを同期させるべきかどうかを判断するために推論エンジンが使用するポーリングの結果を保管するように構成された更新検出エンジン（update detection engine）をさらに有することができる。
【００２６】
バイパス装置は、各バイパス・フラグが固有のクライアント／データ・サーバ関係に関連付けられている更新検出エンジンによって生成された複数のバイパス・フラグを保管するように構成されたバイパス・フラグ・データ・ストア（bypass flag data store）をさらに有することができ、データ・ストアと他のデータ・ストアとを同期させるべきかどうかを判断する際に推論エンジンが前記バイパス・フラグを使用する。
【００２７】
好ましくは、クライアントはハンドヘルド・コンピューティング・デバイスであり、データ・サーバはリモートに位置する個人情報管理（ＰＩＭ）サーバである。
【００２８】
好ましくは、ハンドヘルド・コンピューティング・デバイスは同期要求を初期設定し、その同期要求は、同期サーバに伝達される前にバイパス装置に伝達される。
【００２９】
好ましくは、同期をとるべきではないと推論エンジンが判断した場合、初期設定された同期要求に関する照会が同期サーバに伝達されずに、いかなる更新も必要ではないという通知がハンドヘルド・コンピューティング・デバイスに伝達される。
【００３０】
本発明の一態様は、３層同期システム内で動作するように構成されたバイパス装置を含むことができる。３層同期システムは、データ・ストアを備えたクライアントと、中間同期サーバと、中間同期サーバを使用して間欠的にクライアントのデータ・ストアとの同期がとられる他のデータ・ストアを備えたデータ・サーバとを含むことができる。３層同期システムによって実行される同期動作は、クライアントのデータ・ストアとサーバのデータ・ストアとの間ならびにサーバのデータ・ストアとクライアントのデータ・ストアとの間で同期がとられるような双方向動作を含むことができる。
【００３１】
バイパス装置は、インターセプタと推論エンジンとを含むことができる。インターセプタは、同期サーバを伴う同期イベントが開始される前に同期要求をインターセプトすることができる。推論エンジンは、データ・ストアと他のデータ・ストアとを同期させるべきかどうかを判断することができ、推論エンジンの判断に基づいて同期イベントを選択的に開始することができる。
【００３２】
たとえば、同期をとるべきではないと推論エンジンが判断した場合、バイパス装置は、同期要求を処理するよう同期サーバに要求せずに、インターセプトされた同期要求の送信元に、いかなる更新も必要ではないという通知を伝達することができる。同期をとるべきであると推論エンジンが判断した場合、バイパス装置は、処理のために、インターセプトされた同期要求を中間同期サーバに伝達することができる。
【００３３】
本発明の他の態様は、クライアントと、同期サーバと、データ・サーバとを有する３層同期システム内で空更新イベントを処理するためのコンピュータ化された方法を含むことができる。この方法は、クライアントのデータ・ストアをデータ・サーバのデータ・ストアと同期させるための同期要求を検出するステップを含むことができる。同期要求が同期サーバに伝達される前に、データ更新が必要であるかどうかを判断するために、事前確立指標に基づく判断を行うことができる。同期イベントは、前の判断の結果に基づいて選択的に開始することができる。
【００３４】
本発明は、制御コンピュータが本明細書に記載された機能を実現するためのプログラムとして、またはコンピュータが本明細書に開示されたステップに対応するプロセスを実行できるようにするためのプログラムとして、実現可能であることに留意されたい。このプログラムは、磁気ディスク、光ディスク、半導体メモリ、任意のその他の記録媒体にプログラムを保管することによって提供するか、またはネットワークを介して配布することができる。
【００３５】
次に、添付図面に関連して、一例としてのみ、本発明の好ましい一実施形態について説明する。
【発明を実施するための最良の形態】
【００３６】
図１は、本明細書に開示された発明の配置の一実施形態による３層同期システム１００を例示する概略図である。システム１００は、同期クライアント１０５と、同期サーバ１１０と、エンタープライズ・データ・サーバ１１５と、バイパス装置１２０とを含むことができる。
【００３７】
同期クライアント１０５は、関連データ・ストア１０８を有するコンピュータ・デバイス上のクライアント・アプリケーションにすることができる。データ・ストア１０８は、エンタープライズ・データ・サーバ１１５のデータ・ストア１１８と間欠的に同期させることができる。したがって、同期クライアント１０５は、バックエンド・コンポーネント（エンタープライズ・データ・サーバ１１５）にリンクされているフロントエンド・コンポーネントを表すことができる。同期クライアント１０５は任意のプラットフォームまたはコンピューティング・デバイス上に存在する任意のタイプのアプリケーションにすることができ、同期クライアント１０５は、携帯情報端末（ＰＤＡ：personal data assistant）、携帯電話、ポータブル・メディア・プレーヤ、コンピュータ・タブレットなどのハンドヘルド・デバイス上に存在する連絡先管理アプリケーションのコンポーネントである場合が多い。たとえば、同期クライアント１０５は、連絡先、カレンダ、およびタスクに関するＰＡＬＭ  ＰＩＭアプリケーションを含むことができる。
【００３８】
エンタープライズ・データ・サーバ１１５は、関連データ・ストア１１８を有するコンピューティング・デバイス上のサーバ・アプリケーションを含むことができる。エンタープライズ・データ・サーバ１１５は、デスクトップＰＩＭアプリケーションのようなスタンドアロン・アプリケーションを含むことができ、ネットワーク化管理情報システムに関するデータ・サービスを提供するバックエンド・システムも含むことができる。たとえば、エンタープライズ・データ・サーバ１１５は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ社（ＩＢＭ）によるＬＯＴＵＳ  ＤＯＭＩＮＯサーバ、マサチューセッツ州ウォルサムのノベル社によるＮＯＶＥＬＬ  ＧＲＯＵＰＷＩＳＥサーバなどを含むことができる。
【００３９】
エンタープライズ・データ・サーバ１１５は、データ・ストア１０８内のデータがデータ・ストア１１８内のデータと双方向式に同期をとれるようにする、いくつかの異なる同期技術により構成することができる。たとえば、本発明の種々の実施形態では、エンタープライズ・データ・サーバ１１５は、ＰＩＭサーバ、リレーショナル・データベース・サーバ、書式サーバ、およびその他のタイプの双方向データ・サーバを含むことができる。
【００４０】
本明細書で使用するＰＩＭサーバは、カレンダ項目、タスク、アドレス情報などの連絡先情報を１つまたは複数の同期クライアント１０５に提供するように設計されたサーバである。一般に、ＰＩＭサーバはデスクトップ・マシン上に位置することができ、同期クライアント１０５は１つまたは複数のモバイル・デバイス内に位置することができる。また、ＰＩＭサーバが、複数のデスクトップ・マシンおよびモバイル・クライアント・デバイスにＰＩＭ情報を供するエンタープライズ・サーバであることも一般的なことである。特定の実施形態では、ＰＩＭサーバ（またはその他のタイプのエンタープライズ・データ・サーバ１１５）は、処理ボトルネックを削減するために、または１次サーバに障害が発生した場合にバックアップ・サーバによってサーバ動作を実行できるように、あるレベルの冗長性を提供するために、あるいはその両方のために、複数のクローン・サーバ（cloned server）として実現することができる。
【００４１】
ＰＩＭサーバ（またはその他のタイプのエンタープライズ・データ・サーバ１１５）は、クライアント固有の設定により１つまたは複数の同期クライアント１０５と自動的に同期するように構成することができる。クライアント固有の設定のそれぞれは、同期レベル、同期頻度、およびその他のクライアント固有の統合パラメータを指定することができる。
【００４２】
たとえば、ＰＩＭサーバは、内部データ・ストアと、ＰＤＡの対応するデータ・ストアとの間で、毎日、スケジューリング・データ、カレンダ情報、および住所を含む連絡先情報を同期させるように構成することができる。同じＰＩＭサーバは、内部データ・ストアと、携帯電話の対応するデータ・ストアとの間で、毎週、電子メール・アドレスおよび電話番号を含む連絡先情報を同期させるように構成することができ、これは、同じユーザによって使用され、同じＰＩＭサーバのデータ・ストアとの同期がとられるＰＤＡとは異なる同期クライアント１０５である。
【００４３】
リレーショナル・データベース・サーバによって使用される技術は、リレーショナル・データベース・サーバに関連するデータ・ストア１１８内でまたは同期クライアント１０５に関連するデータ・ストア１０８内で独立して変更を行うことができるという点で、ＰＩＭサーバによって使用されるものと同様である。クライアント１０５は、随時、リレーショナル・データベース・サーバに通信可能にリンクすることができ、情報は双方向で調整または更新することができる。同期がとられたデータ・ストア内に保管された情報は、任意のタイプの情報を含むことができ、ＰＩＭサーバに特有な連絡先情報に限定されない。
【００４４】
本明細書で使用する書式サーバは、Ｗｅｂベースの書式に関連するサーバにすることができる。書式サーバは、ユーザがオンライン中に書式に記入できるようにするとともに、ユーザが書式サーバに直接接続されていない場合にユーザの都合の良いときに記入できるオフライン書式を提供することができる。エンタープライズ・データ・サーバ１１５が書式サーバである場合、同期サーバ１１０は、オフライン書式内に含まれる情報を、書式サーバの書式に必要な情報に適合させることができる。
【００４５】
とりわけ、完成したオフライン書式に関連するデータ・ストア１０８は、書式サーバに関連するオンライン書式に対応するデータ・ストア１１８内に含まれるものとはいくらか異なるフォーマットの異なる情報を含むことができる。たとえば、管理者は、書式サーバ内の書式のフォーマットを変更し、対応する完成したオフライン書式とはいくらか異なるようにすることができるが、完成したオフライン書式は前にユーザに提供されたものであり、管理者が行った変更を含んでいないものである。他の例では、１つまたは複数の汎用オフライン書式を使用して、書式サーバの特定の書式内で一般的に要求されるフィールドを自動的に記入することができる。すなわち、オフライン書式は、ユーザの時間を節約するために要求されたときに書式サーバに自動的に提供される、名前、電子メール・アドレス、電話番号のような一般的に要求されるユーザ情報を含むことができる。
【００４６】
同期サーバ１１０は、同期クライアント１０５とエンタープライズ・データ・サーバ１１５との間の同期動作を調整する、３層システム１００内のミドルウェアを含むことができる。同期サーバ１１０は、ＩＢＭによるＤＯＭＩＮＯ  ＥＶＥＲＹＰＬＡＣＥサーバまたはテキサス州ダラスのＪＰ  Ｍｏｂｉｌｅ  ＩｎｃｏｒｐｏｒａｔｅｄによるＳＵＲＥＷＡＶＥ  ＥＮＴＥＲＰＲＩＳＥサーバのようなエンタープライズ・サーバを含むことができる。また、同期サーバ１１０は、ＩＢＭによるＥＡＳＹＳＹＮＣ、カリフォルニア州サンノゼのＩｎｔｅｌｌｉｓｙｎｃ  ＣｏｒｐｏｒａｔｉｏｎによるＩＮＴＥＬＬＩＳＹＮＣ、およびカリフォルニア州ミルピータスのＰａｌｍ  Ｏｎｅ  ＩｎｃｏｒｐｏｒａｔｅｄによるＨＯＴＳＹＮＣのようなアプリケーションを使用する、スモール・オフィスまたはデスクトップ・サーバを含むこともできる。
【００４７】
同期サーバ１１０は、同期クライアント１０５またはエンタープライズ・データ・サーバ１１５のいずれかによって開始される自動または手動同期動作のために構成することができる。さらに、同期サーバ１１０は、複数の同期クライアント１０５を複数のエンタープライズ・データ・サーバ１１５に同期させることができる。たとえば、同期サーバ１１０は、データ・ストア１０８の一部分をデータ・ストア１１８内のデータに同期させ、データ・ストア１０８の異なる部分を異なるデータ・サーバ（図示せず）に関連するデータ・ストア（図示せず）に同期させることができる。その上、同期サーバ１１０は、同期クライアント１０５を同時に複数のデータ・サーバにユーザ透過式に同期させることができる。
【００４８】
さらに、同期サーバ１１０は、１つの集中コンピューティング・デバイスとして、または通信可能にリンクされた分散コンピューティング・デバイスのグループとして実現することができる。また、同期サーバ１１０は、地上配備の通信ポートと、無線通信用のアクセス・ポイント（ＡＰ：access point）として機能する１つまたは複数の無線トランシーバとを含むこともできる。たとえば、同期サーバ１１０は、拡張サービス・セット（ＥＳＳ：extended service set）プロトコルなどの確立されたプロトコルにより、１つまたは複数の戦略的に配置されたアクセス・ポイント（ＡＰ）を含むことができる。
【００４９】
システム１００は、同期クライアント１０５とエンタープライズ・データ・サーバ１１５との間のデータを同期させるときに任意の適切な標準を使用することができ、複数のネットワーク、プラットフォーム、およびデバイス間のリモート・データの一貫した同期を促進するために、本発明の特定の配置でＳｙｎｃＭＬなどの公開された移植可能標準を有利に使用できることを認識されたい。
【００５０】
バイパス装置１２０は、同期サーバ１１０に送信された同期要求をインターセプトし、情報更新が不要であるときに直接同期要求を提供するように構成されたミドルウェアまたは中間エージェントにすることができる。同期要求の結果として空更新が発生すると思われる場合、更新情報は不要である。バイパス装置１２０は、同期クライアント１０５からの同期要求をインターセプトすることができ、データ更新が必要であるかどうかを判断することができ、それに応答して、その判断に基づくアクションを開始することができる。
【００５１】
通信可能にリンクされたサーバのプールまたはグループとして同期サーバ１１０が実現される諸実施形態では、バイパス装置１２０は、通信可能にリンクされたサーバのプールとして同様に実現することができる。このような実現例を使用すると、同期サーバ１１０またはバイパス装置１２０あるいはその両方の機能を分散して処理負荷を分配するか、または問題回復のために冗長コンポーネントを使用するか、あるいはその両方を行うことができる。
【００５２】
バイパス装置１２０は、インターセプタ１２２と、推論エンジン１２４と、更新検出エンジン１２６とを含むことができる。インターセプタ１２２は、同期サーバ１１０を伴う同期イベントが開始される前に同期要求をインターセプトすることができる。同期イベントは、更新アクションが必要であるかどうかを判断するためにデータ・ストア１０８またはデータ・ストア１１８に照会することを含むことができる。さらに、同期イベントは、データ・ストア１０８または１１８あるいはその両方のデータを更新することを含むことができる。
【００５３】
推論エンジン１２４は、データ・ストア１０８および１１８が相互に同期がとられるかどうかを判断し、それにより、データ・ストア１０８または１１８のいずれかの更新が必要であるかどうかを判断することができる。同期をとるべきではないと推論エンジン１２４が判断した場合、バイパス装置１２０は、インターセプトされた同期要求の送信元に、いかなる更新も必要ではないという通知を伝達することができる。同期をとるべきであると推論エンジン１２４が判断した場合、バイパス装置１２０は、処理のために、インターセプトされた同期要求を同期サーバ１１０に伝達することができる。一実施形態では、推論エンジン１２４は、バイパス・フラグ・データ・ストア１３０内に保管された１つまたは複数の事前確立指標またはバイパス・フラグに基づいてその判断を行うことができる。
【００５４】
更新検出エンジン１２６は、推論エンジン１２４によって使用されるバイパス・フラグ・データ・ストア１３０内のフラグまたは指標を設定することができる。更新検出エンジン１２６は、間欠式または反復式に、同期サーバ１１０、エンタープライズ・データ・サーバ１１５、またはこの２つの組み合わせを非同期的にポーリングして、データ・ストア１１８が更新されたかどうかを判断することができる。一実施形態では、更新検出エンジン１２６は、同期クライアント１０５もポーリングして、データ・ストア１０８が更新されたかどうかを判断することができる。バイパス・フラグは、特定の１つのデータ・ストア、２つの異なるデータ・ストア間の関係、またはデータ・ストアと前の同期動作との関係に関連付けることができる。たとえば、バイパス・フラグは、データ・ストア１０８とデータ・ストア１１８との間で最後の同期動作が実行されてからデータ・ストア１１８が更新されたかどうかを示すことができる。
【００５５】
ネットワーク１４０、１４２、１４４、１４６、１４８、および１５０は、コード化された電磁信号を使用して内容が伝達される限り、様々な方式のいずれかで実現できることに留意されたい。さらに、顧客所有設備（ＣＰＥ：customer premise equipment）、コンピュータ、モデム、ルータ、交換機、アクセス・ポイントなどの様々な通信装置のいずれかをネットワーク１４０、１４２、１４４、１４６、１４８、および１５０内に含めることができる。
【００５６】
ネットワーク１４０、１４２、１４４、１４６、１４８、および１５０のそれぞれは、パケットベースまたは回線ベースで内容を伝達することができる。さらに、ネットワーク１４０、１４２、１４４、１４６、１４８、および１５０のそれぞれは、陸上通信線または無線データ通信方法を介して内容を伝達することができる。たとえば、ネットワーク１４０、１４２、１４４、１４６、１４８、および１５０のそれぞれは、イントラネット、ローカル・エリア・ネットワーク、広域ネットワーク、またはこれらの組み合わせを別々に含むことができる。他の例では、ネットワーク１４０、１４２、１４４、１４６、１４８、および１５０のそれぞれは、移動体無線網または公衆交換電話網（ＰＳＴＮ：public switched telephone network）のような電話網を含むことができる。
【００５７】
データ・ストア１０８、１１８、および１３０は、磁気ディスク、光ディスク、半導体メモリなどの任意の記録媒体に情報を保管することができる。さらに、データ・ストア１０８、１１８、および１３０のそれぞれは、ファイルベースの記憶技法またはデータベース記憶技法を含む任意の情報保存技法を使用することができる。その上、データ・ストア１０８、１１８、および１３０のそれぞれは、１つの地理的位置に固定された記憶域またはネットワーク空間内に分散された記憶域にすることができる。
【００５８】
図１に図示されている配置は例示のみのためのものであり、本発明はこれに関して限定されないことを認識されたい。様々なコンポーネントに起因する機能は、本明細書に例示されているものとは異なる方法で結合または分離することができる。たとえば、バイパス装置１２０は、本発明の一実施形態において同期サーバ１１０の１つの統合コンポーネントとして実現することができる。本発明の他の実施形態では、推論エンジン１２４と更新検出エンジン１２６は、単一のソフトウェア・コンポーネントとして統合することができる。
【００５９】
図２は、本明細書に開示された発明の配置の一実施形態によるデータ・ストアの同期の実行における情報の流れを例示するプロセス流れ図である。この情報の流れは、同期クライアント２０５と、同期サーバ２１０と、エンタープライズ・データ・サーバ２１５と、バイパス装置２２０と、フラグ・ストア２３０とを含むことができる。図１のシステム１００などの任意の３層同期システムに関連して同期を実行することができる。したがって、同期クライアント２０５は同期クライアント１０５と同様に構成することができ、同期サーバ２１０は同期サーバ１１０と同様に構成することができ、エンタープライズ・データ・サーバ２１５はエンタープライズ・データ・サーバ１１５と同様に構成することができ、バイパス装置２２０はバイパス装置１２０と同様に構成することができ、フラグ・ストア２３０はバイパス・フラグ１３０と同様に構成することができる。
【００６０】
バイパス装置２２０は、処理リソースが許すように間欠的にエンタープライズ・データ・サーバ２１５、同期サーバ２１０、同期クライアント２０５、またはそれらの組み合わせにポーリングすることにより、フラグ・ストア２３０内のフラグを設定することができる。たとえば、プロセス・フロー２５０〜２５８は、バイパス装置２２０がエンタープライズ・データ・サーバ２１５にポーリングしてフラグ・ストア２３０内のフラグを設定する動作を例示している。さらに、バイパス装置２２０は、プロセス・フロー２６０〜２７２によって示される通り、同期要求をインターセプトし、フラグ・ストア２３０内のフラグに基づいて、更新が適切であるかどうかを判断することができる。プロセス・フロー２５０〜２５８は、プロセス・フロー２６０〜２７２に対して非同期式に反復して行うことができる。
【００６１】
フラグ・ストア２３０内のフラグの設定を例示するために、フロー２５０でバイパス装置２２０は、更新についてエンタープライズ・データ・サーバ２１５にポーリングすることができる。フロー２５２で、ポーリングに応答していかなる更新も示されない場合、バイパス装置２２０は、フラグ・ストア２３０内の関連フラグがデフォルト状態のままになるようにすることができ、そのデフォルト状態はいかなる更新も行われなかったことを示すことになるであろう。このデフォルトが存続する限り、フロー２５４に示されている通り、バイパス装置２２０による定期ポーリングを行うことができ、そこでもう一度ポーリングが行われる。ポーリングが更新を示す場合、フロー２５６に示されている通り、更新表示をエンタープライズ・データ・サーバ２１５からバイパス装置２２０に伝達することができる。バイパス装置２２０は、フロー２５８によって示される通り、フラグ・ストア２３０内に更新フラグを設定することができる。更新フラグが設定されると、バイパス装置２２０は、確立されたフラグが関連するデータ・ストアの同期に関して、さらに更新するかどうかについてエンタープライズ・データ・サーバ２１５にポーリングし続ける必要はない。
【００６２】
フラグ・ストア２３０内のフラグの使用を例示するために、フロー２６０で同期クライアント２０５はバイパス装置２２０に同期要求を伝達することができる。バイパス装置２２０は、フロー２６２でフラグ・ストア２３０に照会して、同期動作が適切であるかどうかを判断することができる。いかなる更新も適切ではない場合、フロー２６４に示されている通り、この趣旨の表示をバイパス装置２２０に伝達することができる。その結果として、フロー２６６でバイパス装置２２０は、いかなる更新も必要ではないという通知を同期クライアント２０５に伝達することができる。
【００６３】
フロー２６８によって示される通り、更新が必要であることをフラグ・ストア２３０内のフラグが示す場合、更新必要表示をフラグ・ストア２３０からバイパス装置２２０に伝達することができる。フロー２７０でバイパス装置２２０はこれに応答して同期要求を同期サーバ２１０に伝達することができる。同期要求の受信に応答して、同期サーバ２１０は、フロー２７２によって示される通り、同期動作を実行することができ、それにより、同期クライアント２０５とエンタープライズ・データ・サーバ２１５とを同期させることができる。
【００６４】
本発明は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせで実現することができる。本発明は、１つのコンピュータ・システム内で集中方式で、または種々の要素が複数の相互接続コンピュータ・システム内に分配される分散方式で実現することができる。本明細書に記載された方法を実行するために適合させたものであれば、どのような種類のコンピュータ・システムまたはその他の装置も適している。ハードウェアとソフトウェアの典型的な組み合わせは、ロードされ実行されたときに、本明細書に記載された方法を実行するようにコンピュータ・システムを制御するコンピュータ・プログラムを備えた汎用コンピュータ・システムにすることができる。
【００６５】
また、本発明は、本明細書に記載された方法の実現を可能にするすべての特徴を含み、コンピュータ・システム内にロードされたときに、これらの方法を実行することができるコンピュータ・プログラム製品に組み込むことができる。これに関連してコンピュータ・プログラムとは、直接またはａ）他の言語、コード、または表記への変換、またはｂ）異なる物質的形式による複製のいずれか一方または両方の後、情報処理機能を有するシステムに特定の機能を実行させるための１組の命令を任意の言語、コード、または表記で表した任意の表現を意味する。
【図面の簡単な説明】
【００６６】
【図１】本明細書に開示された発明の配置の一実施形態による３層同期システムを例示する概略図である。
【図２】本明細書に開示された発明の配置の一実施形態によるデータ・ストアの同期の実行における情報の流れを例示するプロセス流れ図である。
【図１】
2008524677.tif 000003
【図２】
2008524677.tif 000004
【国際調査報告】
2008524677.tif 000005
2008524677.tif 000006
2008524677.tif 000007