(57)【特許請求の範囲】
【請求項１】
クライアントとクライアント上のデータのレプリカを記憶した遠隔ホスト・レプリカとの間でデータを同期させる同期サーバであって、
レプリカ・ホストならびに前記クライアントおよび前記遠隔ホストに関連したデータ・タイプ特有のアプリケーション同期論理を同期要求に応答して識別する同期アクセプタ論理であって、前記同期論理が、ネットワーク上の、前記同期サーバおよび前記遠隔ホストに対して遠隔のどこにでも位置することができる同期アクセプタ論理、および
前記同期アクセプタ論理に結合され、前記ネットワークから遠隔同期論理を検索し、前記遠隔ホストに接続し、検索した同期論理を使用して前記クライアントと前記遠隔ホストの間でデータを同期させる同期ハンドラ論理
を備えることを特徴とする同期サーバ。
【請求項２】
前記同期アクセプタ論理がさらに、前記レプリカ・ホストおよび前記遠隔同期論理を識別するための情報を含む同期要求を前記クライアントから受け取る手段を備える、請求項１に記載のサーバ。
【請求項３】
前記同期要求が、前記レプリカ・ホストおよび前記同期論理を識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、
前記同期ハンドラ論理がさらに、前記同期要求に応答して前記情報を検索する手段を備える、
請求項１に記載のサーバ。
【請求項４】
前記同期要求が、同期中に前記クライアントと前記遠隔ホストの間でデータを変換する装置特有の変換コードを識別するための情報を含み、
前記同期ハンドラ論理が、前記情報に基づいて前記変換コードを検索し、前記装置特有の変換コードに基づいて前記クライアントと前記遠隔ホストの間でデータを変換する手段を備える、
請求項１に記載のサーバ。
【請求項５】
前記装置特有の変換コードが、前記ネットワーク上の遠隔地のどこにでも位置することができる、請求項４に記載のサーバ。
【請求項６】
前記同期要求が、前記クライアントと前記遠隔ホストの間でデータを変換する前記装置特有の変換コードを識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、
前記同期ハンドラ論理が、前記情報に基づいて遠隔変換コードを検索し、前記装置特有の変換コードに基づいて前記クライアントと前記遠隔ホストの間でデータを変換する手段を備える、
請求項４に記載のサーバ。
【請求項７】
前記変換コードが、データをフィルタに掛ける手段、変換する手段、および変更する手段のうちの１つまたは複数の手段を備え、これによりデータを、ＣＰＵパワー、メモリ容量および物理構成のうちの１つまたは複数の要素が異なる、異なる計算装置で使用し処理することができる、請求項４に記載のサーバ。
【請求項８】
前記アクセプタ論理に結合され、サーバの計算負荷および計算容量を監視し、前記計算負荷および前記計算容量を協働する同期サーバと共用する負荷マネージャをさらに備え、
前記サーバの計算負荷がしきい値を超えているときに前記負荷マネージャが、前記同期要求をより負荷の小さいサーバに振り替える、
請求項１に記載のサーバ。
【請求項９】
前記同期ハンドラに結合され、前記同期論理を検索し、これをキャッシュ・メモリに記憶するキャッシュ・マネージャ手段をさらに備える、請求項１に記載のサーバ。
【請求項１０】
前記キャッシュ・マネージャ手段がさらに、前記同期論理をプリセットし、これを前記キャッシュ・メモリに記憶する手段を備える、請求項９に記載のサーバ。
【請求項１１】
クライアントと前記クライアント上のデータのレプリカを記憶した遠隔ホスト・レプリカとの間でデータの同期を実行する同期サーバに接続するように適合されたクライアントであって、
中央処理装置（ＣＰＵ）、および
前記ＣＰＵに結合され、前記ＣＰＵ上で実行される実行可能コードを記憶したメモリ
を含み、前記コードが、
前記レプリカ・ホスト、ならびに前記クライアントおよび前記遠隔ホストに関連したデータ・タイプ特有のアプリケーションである同期論理を識別することを求める同期要求を同期サーバに伝達する同期イニシエータであって、前記同期論理が、ネットワーク上の、前記同期サーバおよび前記遠隔ホストに対して遠隔のどこにでも位置することができる同期イニシエータ、
前記同期イニシエータに結合され、前記遠隔ホストとの間で同期したデータを前記同期サーバを介してやりとりする同期ハンドラ論理、および
前記同期ハンドラに結合され、データ管理機能およびレプリカ管理機能の一方または両方を処理するデータ・マネージャ
を含むことを特徴とするクライアント。
【請求項１２】
ハンドへルド・コンピュータ、多機能電話、および高機能ポケットベルからなるグループから選択され、前記ネットワークへの接続を確立する手段を備えた接続解除可能なハンドへルド装置である、請求項１１に記載のクライアント。
【請求項１３】
前記データ管理機能が、データ項目の読取り、データ項目の書込み、データ項目の更新、およびデータ項目の削除のうちの１つまたは複数の機能を含む、請求項１１に記載のクライアント。
【請求項１４】
前記遠隔レプリカ・ホストとの間で、バージョンおよび更新履歴情報を伝達する手段をさらに備える、請求項１１に記載のクライアント。
【請求項１５】
前記同期要求がさらに、前記レプリカ・ホストおよび前記遠隔同期論理を識別するための情報を含む、請求項１１に記載のクライアント。
【請求項１６】
前記同期要求が、前記レプリカ・ホストおよび前記同期論理を識別するための情報を記憶したディレクトリ・サービスのアドレスを含む、請求項１１に記載のクライアント。
【請求項１７】
前記同期要求が、前記クライアントと前記遠隔ホストとの間でデータを変換する装置特有の変換コードを識別するための情報を含む、請求項１１に記載のクライアント。
【請求項１８】
前記装置特有の変換コードが、前記ネットワーク上の遠隔地のどこにでも位置することができる、請求項１７に記載のクライアント。
【請求項１９】
前記同期要求が、同期論理および前記クライアントと前記遠隔ホストとの間でデータを変換する装置特有の変換コードの一方または両方を識別するための情報を記憶したディレクトリ・サービスのアドレスを含む、請求項１７に記載のクライアント。
【請求項２０】
イントラネットおよびインターネットの一方または両方に結合された接続解除可能なハンドへルド装置であって、前記データが、前記遠隔ホストから前記ハンドへルド装置に送られたウェブ・ページに含まれた画像を含み、前記ページを、前記ハンドへルド装置のメモリの制約の範囲内で前記ハンドへルド装置のスクリーンに表示させることができるように前記データが変換される、請求項１７に記載のクライアント。
【請求項２１】
前記要求が、前記メモリに記憶された１つまたは複数の同期サーバのネットワーク・アドレスを含み、１つの同期サーバ・アドレスが、デフォルトの同期サーバ・アドレスとして事前構成されている、請求項１１に記載のクライアント。
【請求項２２】
前記同期イニシエータが、同期させる必要のあるアプリケーションのリストを決定するように適合され、前記アプリケーションが、住所録アプリケーション、メモ帳アプリケーション、予定表アプリケーションおよび電子メール・アプリケーションのうちの１つまたは複数のアプリケーションからなるグループから選択される、請求項１１に記載のクライアント。
【請求項２３】
同期サーバにおいて、クライアントとクライアント上のデータのレプリカを記憶した遠隔ホスト・レプリカとの間でデータを同期させる方法であって、
レプリカ・ホストならびに前記クライアントおよび前記遠隔ホストに関連したデータ・タイプ特有のアプリケーションである同期論理を同期要求に応答して識別する段階であって、前記同期論理が、ネットワーク上の、前記同期サーバおよび前記遠隔ホストに対して遠隔のどこにでも位置することができる段階、
前記要求に基づいて前記ネットワークから遠隔同期論理を検索する段階、および
前記遠隔ホストに接続し、検索した同期論理を使用して前記クライアントと前記遠隔ホストの間でデータを同期させる段階
を含むことを特徴とする方法。
【請求項２４】
前記レプリカ・ホストおよび前記遠隔同期論理を識別するための情報を含む同期要求を前記クライアントから受け取る段階をさらに含む、請求項２３に記載の方法。
【請求項２５】
前記同期要求が、前記レプリカ・ホストおよび前記同期論理を識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、前記方法がさらに、前記同期要求に応答して前記情報を検索する段階を含む、請求項２３に記載の方法。
【請求項２６】
前記同期要求が、同期中に前記クライアントと前記遠隔ホストの間でデータを変換する装置特有の変換コードを識別するための情報を含み、前記方法がさらに、
前記情報に基づいて前記変換コードを検索する段階、および前記装置特有の変換コードに基づいて前記クライアントと前記遠隔ホストの間でデータを変換する手段を含む、
請求項２３に記載の方法。
【請求項２７】
前記装置特有の変換コードが、前記ネットワーク上の遠隔地のどこにでも位置することができる、請求項２６に記載の方法。
【請求項２８】
前記同期要求が、前記クライアントと前記遠隔ホストの間でデータを変換する前記装置特有の変換コードを識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、前記方法がさらに、
前記情報に基づいて遠隔変換コードを検索する段階、および
前記装置特有の変換コードに基づいて前記クライアントと前記遠隔ホストの間でデータを変換する段階
を含む、請求項２６に記載の方法。
【請求項２９】
前記変換コードがさらに、ＣＰＵパワー、メモリ容量および物理構成のうちの１つまたは複数の要素が異なる、異なる計算装置で使用し処理するために、データをフィルタに掛ける段階、変換する段階、および変更する段階のうちの１つまたは複数の段階からなるグループから選択された段階を含む、請求項２６に記載の方法。
【請求項３０】
サーバの計算負荷および計算容量を監視する段階、
前記計算負荷および前記計算容量を協働する同期サーバと共用する段階、および
前記サーバの計算負荷がしきい値を超えているときに、前記同期要求をより負荷の小さいサーバに振り替える段階
をさらに含む、請求項２３に記載の方法。
【請求項３１】
前記同期論理を検索する段階、およびこれをキャッシュ・メモリに記憶する段階をさらに含む、請求項２３に記載の方法。
【請求項３２】
前記同期論理をプリセットする段階、およびこれを前記キャッシュ・メモリに記憶する段階をさらに含む、請求項３１に記載の方法。
【請求項３３】
同期サーバに、クライアントとクライアント上のデータのレプリカを記憶した遠隔ホスト・レプリカとの間でデータを同期させる手順を実行させるプログラムを記録した機械読み取り可能な記憶媒体において、該手順が、
レプリカ・ホスト、ならびに前記クライアントおよび前記遠隔ホストに関連したデータ・タイプ特有のアプリケーションである同期論理を同期要求に応答して識別する手順であって、前記同期論理が、ネットワーク上の、前記同期サーバおよび前記遠隔ホストに対して遠隔のどこにでも位置することができる手順、
前記ネットワークから遠隔同期論理を検索する手順、および
前記遠隔ホストに接続し、検索した同期論理を使用して前記クライアントと前記遠隔ホストの間でデータを同期させる手順
を含むことを特徴とするプログラム記憶媒体。
【請求項３４】
前記手順がさらに、前記レプリカ・ホストおよび前記遠隔同期論理を識別するための情報を含む同期要求を前記クライアントから受け取る手順を含む、請求項３３に記載のプログラム記憶媒体。
【請求項３５】
前記同期要求が、前記レプリカ・ホストおよび前記同期論理を識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、前記手順がさらに、前記同期要求に応答して前記情報を検索する手順を含む、請求項３３に記載のプログラム記憶媒体。
【請求項３６】
前記同期要求が、同期中に前記クライアントと前記遠隔ホストの間でデータを変換する媒体特有の変換コードを識別するための情報を含み、前記手順がさらに、
前記情報に基づいて前記変換コードを検索する手順、および
前記媒体特有の変換コードに基づいて前記クライアントと前記遠隔ホストの間でデータを変換する手段を含む、
請求項３３に記載のプログラム記憶媒体。
【請求項３７】
前記媒体特有の変換コードが、前記ネットワーク上の遠隔地のどこにでも位置することができる、請求項３６に記載のプログラム記憶媒体。
【請求項３８】
前記同期要求が、前記クライアントと前記遠隔ホストの間でデータを変換する前記媒体特有の変換コードを識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、前記手順がさらに、
前記情報に基づいて遠隔変換コードを検索する手順、および
前記媒体特有の変換コードに基づいて前記クライアントと前記遠隔ホストの間でデータを変換する手順
を含む、請求項３６に記載のプログラム記憶媒体。
【請求項３９】
前記変換コードがさらに、ＣＰＵパワー、メモリ容量および物理構成のうちの１つまたは複数の要素が異なる、異なる計算媒体で使用し処理するために、データをフィルタに掛ける手順、変換する手順、および変更する手順のうちの１つまたは複数の手順からなるグループから選択された手順を含む、請求項３６に記載のプログラム記憶媒体。
【請求項４０】
前記手順がさらに、
サーバの計算負荷および計算容量を監視する手順、
前記計算負荷および前記計算容量を協働する同期サーバと共用する手順、および
前記サーバの計算負荷がしきい値を超えているときに、前記同期要求をより負荷の小さいサーバに振り替える手順
を含む、請求項３６に記載のプログラム記憶媒体。
【請求項４１】
前記手順がさらに、前記同期論理を検索する手順、およびこれをキャッシュ・メモリに記憶する手順を含む、請求項３３に記載のプログラム記憶媒体。
【請求項４２】
前記手順がさらに、前記同期論理をプリセットする手順、およびこれを前記キャッシュ・メモリに記憶する手順を含む、請求項４１に記載のプログラム記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は一般に、クライアント内のデータと情報管理システム内のそのデータの複製（レプリカ）との間の更新同期プロセスまたは変換プロセスあるいはその両方に関する。
【０００２】
【従来の技術】
半導体、記憶および表示技術の急速な進歩に伴い、ネットワークに一時的に接続されるハンドヘルド装置またはモバイル装置が次第に普及している。３Ｃｏｍ社のＰＡＬＭ  ＰＩＬＯＴＴＭなどのモバイル装置が使用される形態も非常に多彩になった。例えば、あるＰＡＬＭ  ＰＩＬＯＴＴＭのユーザは、オフィスのデスクトップ・コンピュータにあるＬｏｔｕｓ  ＮＯＴＥＳＴＭの電子メール・システムと同期をとる電子メール・アプリケーションを有している。ＰＡＬＭ  ＰＩＬＯＴＴＭ内に、インターネット上に位置する周知の株価表示サイトと同期させることによって更新される株価表示アプリケーションが置かれている場合もある。家庭用パーソナル・コンピュータ（ＰＣ）の金融ソフトウェアと同期されるＰＡＬＭＰＩＬＯＴＴＭの経費アプリケーションもある。したがって、１台の装置内のさまざまなハンドヘルド・アプリケーションを、ネットワーク化されたコンピュータ上で実行されるさまざまな情報管理システム（Ｌｏｔｕｓ  ＮＯＴＥＳＴＭ、Ｍｉｃｒｏｓｏｆｔ  ＥＸＣＨＡＮＧＥＴＭ、ファイル・システム、リレーショナル・データベース、オブジェクト指向データベースなど）内のさまざまなアプリケーションと同期させる必要がある場合も多い。１つのハンドへルド・アプリケーション（電子メールなど）が、異なるハンドへルド装置（例えば、ＰＡＬＭ  ＰＩＬＯＴＴＭ、シャープ株式会社のＺＡＵＲＵＳＴＭ、Ｐｓｉｏｎ  ＰＬＣ社のＰＳＩＯＮＴＭ、およびＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ  ＣＥＴＭを実行するその他の各種パームトップ装置）向けに異なるバージョンを有する場合もある。
【０００３】
一般に、ＰＡＬＭ  ＰＩＬＯＴＴＭなどのハンドへルド装置がネットワークに接続されるのは一時的に過ぎず、その接続時間も短いので、ハンドへルド装置内のアプリケーションとさまざまなネットワーク・コンピュータ内の対応するアプリケーションとの間の同期プロセスが非常に効率的に実施される（そのため、ハンドへルド装置がネットワークに接続されている間に同期プロセスが正常に完了する）ことが決定的に重要である。ハンドへルド装置が提供する計算用のＣＰＵパワーやメモリは小さいので、同期プロセスがハンドへルド装置内で実施されることは普通ない。
【０００４】
本明細書では、ハンドへルド装置内のデータのレプリカのホストとなるコンピュータを、レプリカ・ホストまたはレプリカ・ソースと呼ぶ。一般に、ハンドへルド装置の計算能力およびメモリはレプリカ・ホストよりも小さいので、ハンドへルド装置は、デスクトップＰＣであるレプリカ・ホストの内部で同期を実施する。同期は一般に、ハンドへルド装置のボタン（例えばＰＡＬＭ  ＰＩＬＯＴＴＭのＨｏｔＳｙｎｃボタン）を押すことによって開始される。ボタンが押されると直ちに、レプリカ・ホスト内の同期管理ソフトウェア（例えば、デスクトップＰＣにあるＰＡＬＭ  ＰＩＬＯＴＴＭ  ＨｏｔＳｙｎｃ  Ｍａｎａｇｅｒ）が同期プロセスを引き継ぐ。ＰＡＬＭ  ＰＩＬＯＴＴＭの場合、ＨｏｔＳｙｎｃ  Ｍａｎａｇｅｒが、ＰＡＬＭ  ＰＩＬＯＴＴＭアプリケーションをそのアプリケーションに特有の論理を介してＰＡＬＭ  ＰＩＬＯＴＴＭとデスクトップＰＣの間で同期させるアプリケーション固有プログラム（ＰＡＬＭ  ＰＩＬＯＴＴＭではＣｏｎｄｕｉｔと呼ばれる）を実行することによって、そのＰＡＬＭ  ＰＩＬＯＴＴＭアプリケーションに対する同期を実施する。複数のアプリケーションを同期させる必要がある場合、ＨｏｔＳｙｎｃ  Ｍａｎａｇｅｒは、それぞれの対応するＣｏｎｄｕｉｔを順番に実行する。この方法によれば同期は常に、１台のＰＣと１台のハンドへルド装置の間で実施される。複数のハンドへルド装置と１台のＰＣの間で同時に同期を実施することはできない。
【０００５】
一般に、レプリカ・ホストで同期プロセスを直接に実施することには制限が多い。理由は、多くの異なるハンドへルド装置（例えばＰＡＬＭ  ＰＩＬＯＴＴＭ、ＺＡＵＲＵＳＴＭ、ＰＳＩＯＮＴＭ）によって共用されるアプリケーション（電子メール、予定表、住所録など）が数多く存在する可能性があるからである。それぞれのアプリケーションに、異なるそれぞれの装置ごとに異なる同期論理が必要となる場合がある。全てのアプリケーション、全ての装置に対して同期を適正に処理するためには、レプリカ・ホストが、さまざまなハンドへルド装置を取り扱うために多くの異なるバージョンの同期プロセスを導入し、管理する必要がある。したがって、レプリカ・ホストで同期プロセスを実施すると、異なるハンドへルド装置およびそれらの同期プロセスを管理する負担が重くなる。多くのレプリカ・ホストにとって最もミッション・クリティカルであるタスクは、さまざまなハンドへルド装置と同期をとることではなく、データベース・サーバなどの情報サーバとして、グループウェア・サーバとして、またはデスクトップＰＣ装置としてランすることである。したがってレプリカ・ホスト上で同期を実行すると、ミッション・クリティカルなタスクの実施を阻害することになる。
【０００６】
複数のハンドへルド装置とレプリカ・ホストとの間の同期を管理するより効率的な方法は、持続性のネットワーク接続を維持する同期プロキシ（または同期サーバ、同期プロキシ・サーバ）を配置し、ハンドへルド装置およびレプリカ・ホストに代わって同期を実施させることである（レプリカのホストである装置も持続性のネットワーク接続を維持する）。
【０００７】
同期の実施にあたり、ハンドへルド装置はまずネットワーク接続を確立する。接続後、ハンドへルド装置は、同期対象のレプリカ・ホストに直接に接続する代わりに同期プロキシに同期要求を発行する。このような要求を受け取ると同期プロキシは、対象レプリカ・ホストとの接続を確立し、次いで、ハンドへルド装置とそのレプリカ・ホストの両方に入力／出力要求を発行することによって同期プロセスを開始する。同期プロキシの単純な設計は、同期プロキシが、これらのレプリカ・ホストがホストとなる全てのタイプの装置および全てのタイプの情報管理システムを取り扱うことができるように、装置およびアプリケーション特有の全ての同期プログラムを維持するものである。このことは、それぞれのアプリケーションが、全てのタイプのハンドへルド装置とハンドへルド・データのレプリカのホストである全ての情報管理システムとの間の任意の組合せに対して特に書かれた特有の同期プログラムを有していなければならないことを意味する。例えば同期プロキシが、ＰＡＬＭ  ＰＩＬＯＴＴＭとＷＩＮＤＯＷＳ  ＣＥＴＭベースのハンドへルド装置、およびＰＣ用のＭｉｃｒｏｓｏｆｔ  ＥＸＣＨＡＮＧＥＴＭ電子メール・システムとＬｏｔｕｓ  ＮＯＴＥＳＴＭ電子メール・システムをサポートするためには、電子メール・アプリケーションに対して４つの異なる同期プログラムを維持していなければならない。第１の同期プログラムは、ＰＡＬＭ  ＰＩＬＯＴＴＭとＥＸＣＨＡＮＧＥＴＭの同期用であり、第２は、ＰＡＬＭ  ＰＩＬＯＴＴＭとＬｏｔｕｓ  ＮＯＴＥＳＴＭの同期用、第３は、ＷＩＮＤＯＷＳ  ＣＥＴＭとＥＸＣＨＡＮＧＥＴＭの同期用、第４は、ＷＩＮＤＯＷＳ  ＣＥＴＭとＬｏｔｕｓ  ＮＯＴＥＳＴＭの同期用である。
【０００８】
同期プロキシのこの単純な設計の他の態様は、同期プロキシとハンドへルド装置のデータのレプリカのホストである特定の情報管理システムとの間の同期入出力インタフェースが、異なるハンドへルド装置に対して同じであるようにするものである。ハンドへルド装置間の相違を処理するのは同期プロキシであって、それぞれのレプリカ・ホストではない。実際の同期プロセスは同期プロキシによって実施される。同期中のハンドへルド装置とレプリカ・ホストの役割は、同期プロキシによってなされた同期入力／出力呼出しに応答することである。これらの呼出しは一般に、情報の追加、検索、削除および更新の形態をとる。したがって、ハンドへルド装置およびレプリカ・ホストの計算の負担、ならびに同期論理の複雑さは大幅に低減される。
【０００９】
この単純な同期プロキシ方法の重要な特徴の１つは、全てのタイプの装置の任意のアプリケーションと全てのレプリカ・ホストの任意の情報管理システムとを適正に同期させるために、同期プロキシが同期タスク中に、対象アプリケーション、装置、および情報管理システムに基づいて特定の同期論理を呼び出すことができなければならないことである。この現在の単純な同期プロキシ方法ではこれを、そのサポートを、少数のアプリケーション、装置および情報管理システムに制限して、適正な同期に必要な同期論理の総数を減らし、同期論理を、そのディスク・メモリに記憶された（同期実行時に）動的にリンク可能なコードとして事前に構成しておくことによって実現する。このような方法の重大な問題は、さまざまな同期論理の全てを管理することが困難であることである。１つの編成でより多くのアプリケーション、装置および管理情報システムをサポートする場合、同期論理の数は劇的に増加する。したがってそれぞれの同期プロキシは、正しい同期論理をリンクさせることができなければならない。さらに、複数の同期プロキシが配置された編成では、同期論理の変更および更新があった場合に、これらを全ての同期プロキシの正しいファイルに伝達する困難なソフトウェア管理タスクが生じる。同期論理管理の改善は本発明の焦点の１つである。
【００１０】
この現在の簡単な同期プロキシ方法の他の特徴は、さまざまな同期論理が、同期プロキシのメーカによって事前にコード化されていることである。いくつかのメーカはさらに、ユーザが同期論理を拡張または変更することができる開発プラットフォームも提供している。同期プロキシのメーカは一般に、アプリケーション、装置または情報管理システムを製作しない。したがってメーカは、このソフトウェアおよびハードウェアの専門的な知識を持たず、そのサポートの範囲を制限せざるをえない。現在の同期プロキシのスケーラビリティは、サポートするハンドへルド・アプリケーション、ハンドへルド装置および管理情報システムを増やすという点で非常に制限されている。本発明はこの限界に取り組む。
【００１１】
さらに、この単純な同期プロキシは、同時に発せられた同期要求の処理に関し、そのスケーラビリティが、その同期プロキシがインストールされたマシンの計算能力によって制限されるスタンドアロン・システムである。負荷平衡についての同期プロキシ間の協働は、この単純な同期プロキシ方法では不可能である。同期プロキシ間で協働がなされないためにプロキシ間に負荷の不平衡が生じ、これによっていくつかの同期要求が遅延したり、または応対されなかったりする。本発明はこの必要性に取り組む。
【００１２】
【発明が解決しようとする課題】
前述の必要性に基づき、本発明は、クライアントとクライアントのデータのレプリカのホストである情報管理システムとの間で更新同期を実行する際の仲介および計算プラットフォームとして機能する同期プロキシ（または同期サーバ）の改良された方法、装置およびプログラム記憶装置を提供する。クライアントの例には、インターネット機器、ハンドへルド装置またはパームトップ装置、多機能電話、高機能ポケットベルが含まれる。ただしこれらに限定されるわけではない。クライアントは、ある時間またはほとんどの時間、ネットワークから切り離されることがあるが、管理システムはほとんどの時間、接続されたままである。クライアント装置または情報管理システムあるいはその両方中のデータは互いに独立に更新されうる。
【００１３】
【課題を解決するための手段】
本発明によれば、クライアントが同期プロキシに同期サービスを要求する方法が提供される。例えば、ハンドへルド装置がこのプロキシに同期要求を発行する。同期要求が、同期させる１つまたは複数のアプリケーションを含んでいてもよい。同期要求を受諾した後、同期プロキシは、このハンドへルド装置に対して同期させるよう求められた全てのアプリケーションの同期を順番に処理する。同期させるそれぞれのアプリケーションについて、ハンドへルド装置が、同期させるアプリケーションの名前、このアプリケーションのレプリカ・ホストのＩＤ、このアプリケーション向けのアプリケーション固有同期論理を含むプログラム（同期論理）のＩＤ、およびこのハンドへルド装置向けの装置固有データ変換方法を含むプログラム（変換コード）のＩＤを含む同期識別子を供給してもよい。これらのＩＤが、これらの情報の検索を可能にする一意の識別子（または一意名）およびネットワーク・アドレスを含むことが好ましい。
【００１４】
代替方法として、アプリケーションの同期処理時にこれらの情報を同期プロキシに直接に送る代わりに、ハンドへルド装置が、ユーザ、ハンドへルド装置および同期させるアプリケーションの識別情報、ならびにアプリケーションの名前、前述の３つの情報（このアプリケーションのレプリカ・ホストのＩＤ、このアプリケーションの同期論理のＩＤ、およびこのハンドへルド装置の変換コードのＩＤ）が記憶されたディレクトリ・サービスのアドレスを含む同期識別子を送ってもよい。
【００１５】
クライアントとクライアント上のデータのレプリカを記憶した遠隔ホスト・レプリカの間でデータを同期させる、本発明の特徴を有した適応同期サーバの一例は、レプリカ・ホストならびにクライアントおよび遠隔ホストに関連したデータ・タイプ特有のアプリケーション同期論理を同期要求に応答して識別する同期アクセプタ論理であって、この同期論理が、ネットワーク上の、同期サーバおよび遠隔ホストに対して遠隔のどこにでも位置することができる同期アクセプタ論理；および同期アクセプタ論理に結合され、ネットワークから遠隔同期論理を検索し、遠隔ホストに接続し、検索した同期論理を使用してクライアントと遠隔ホストの間でデータを同期させる同期ハンドラ論理を含む。同期要求がさらに、同期中にクライアントと遠隔ホストの間でデータを変換する装置特有の変換コードを識別するための情報を含んでもよく、同期ハンドラ論理は、この情報に基づいて変換コードを検索し、この装置特有の変換コードに基づいてクライアントと遠隔ホストの間でデータを変換する手段を含む。装置特有の変換コードは、ネットワーク上のどこにあってもよく、ローカルでも遠隔でもよい。
【００１６】
クライアントとクライアント上のデータのレプリカを記憶した遠隔ホスト・レプリカの間でデータを変換する、本発明の特徴を有した適応同期サーバの他の一例は、レプリカ・ホスト、ならびに遠隔ホスト上のデータをクライアントに関連した装置タイプのデータに変換する装置特有の変換コードを同期要求に応答して識別する同期アクセプタ論理であって、この変換コードが、ネットワーク上の、同期サーバおよび遠隔ホストに対して遠隔のどこにでも位置することができる同期アクセプタ論理；および同期アクセプタ論理に結合され、遠隔変換コードを検索し、装置特有の変換コードに基づいてクライアントと遠隔ホストの間でデータを変換する同期ハンドラ論理を含む。前記要求が、同期要求に基づいて、クライアントおよび遠隔ホストに関連したデータ・タイプ特有のアプリケーションである同期論理を識別する同期要求、およびこの同期論理を検索し、遠隔ホストに接続し、変換中にクライアントと遠隔ホストの間でデータを同期させる手段を含んでいてもよい。
【００１７】
本発明の他の態様によれば、ハンドへルド装置が発した同期要求を同期プロキシが受け取り、受諾し、処理する方法が提供される。本発明では同期プロキシが、ハンドへルド装置から同期要求を受け取ると、１つまたは複数のハンドへルド・アプリケーションに対して同期または変換あるいはその両方を実施する。それぞれのハンドへルド・アプリケーションについて、同期プロキシが、前述のアプリケーション名、レプリカ・ホストのＩＤ、同期論理のＩＤ、および変換コードのＩＤを、要求を発したハンドへルド装置から直接に、または要求を発したハンドへルド装置が指定したディレクトリ・サービスから間接的に受け取る。アプリケーションを同期させるため、同期プロキシが、要求を発したハンドへルド装置から送られたそのアプリケーションに対する同期論理のＩＤに指定されたネットワーク・アドレスから、そのアプリケーションに関連した同期論理を検索する。同期プロキシは次いで、このアプリケーションに関連したレプリカ・ホストとのネットワーク接続を、要求を発したハンドへルド装置から受け取らったそのレプリカ・ホストのＩＤに基づいて確立する。
【００１８】
本発明の他の態様によれば、このアプリケーションに対する同期を処理するため、同期プロキシが、検索されたこのアプリケーションに対する同期論理を実行する。このアプリケーションに対する同期論理の実行中にデータ変換が必要である場合、同期プロキシは、このアプリケーションに関連した変換コードのネットワーク・アドレスに接続する。変換コードのネットワーク・アドレスは、要求を発したハンドへルド装置によって送られた変換コードＩＤの一部である。次いで同期プロキシは、このアプリケーションを同期させる間に、必要に応じて、同期論理の処理中にこの変換コードを実行することによってデータ変換を処理する。本発明では、同期論理を書くのに用いるプログラム言語を指定していないが、同期プロキシが遠隔ホストから同期論理を検索し、この論理を実行する本発明の機能については、アプレットなどのＪａｖａプログラムを、ウェブ・ブラウザが遠隔ホストからダウンロードし、このウェブ・ブラウザがこのプログラムをローカルに実行してウェブ処理を実施する、Ｊａｖａによって可能となる既存のウェブ処理を想定している。
【００１９】
本発明の一実施形態では、アプリケーションに対する同期手順が同期論理と変換コードとに分割される。同期論理は、アプリケーション特有の同期タスク手順であり、変換コードは、２つのタイプの装置間の装置依存変換プロセスである。これらの２つが分離されることは、アプリケーションに対する同期論理を、そのアプリケーションのメーカが提供、維持することができ、変換コードを、その変換コードを供給するハンドへルド装置のメーカが提供、維持することができることを意味する。これによって同期プロキシが、これらの同期または変換手順を記憶し、維持する必要はなくなる。同期プロキシは、適当な同期論理または変換コードあるいはその両方を同期中に検索するだけでよい。この方法は、同期プロキシによる、アプリケーション依存および装置依存の同期または変換手順あるいはその両方の管理プロセスを大幅に改善する。
【００２０】
さらにこのような方法は、アプリケーションおよび装置特有の同期手順を開発することから同期プロキシのメーカを解放する。その結果、サポートするアプリケーション、装置、および管理情報システムを増やすという点に関しての同期プロキシのスケーラビリティは、それぞれの対応するメーカが、アプリケーションおよび装置依存の同期手順を適正に開発し、それを維持し、検索できるようにしておく限りにおいて、高まる。
【００２１】
本発明の他の態様によれば、同期プロキシが、アプリケーションに対する同期論理または変換コードを、この同期プロキシが近い将来に使用するのに備えて一時的に記憶しておくキャッシュを配置する。本発明のキャッシュ機能の一の例を以下に説明する。まず同期プロキシが、１つのメモリ・ブロック（メイン・メモリまたはディスク・スペース）をキャッシュとして確保する。同期プロキシが、キャッシュされた同期論理または変換コードを（例えばそれらの一意名に基づいて）検索し、取り出すための索引付け方法を採用してもよい。キャッシュされた情報（アプリケーションに対する同期論理または変換コード）を検索する際、同期論理は、ネットワークに探索に行く前にまず、そのキャッシュを探索する。情報がキャッシュになかった場合、同期プロキシは、その情報のＩＤに関連したネットワーク・アドレスを訪ね、その情報を検索し、それを用いてプロキシのキャッシュを更新する。情報がキャッシュにあった場合には、同期プロキシはこの情報を、ネットワークからではなくそのキャッシュから検索する。同期プロキシは次いで、この実行可能データ（アプリケーションに対する同期論理または変換コード）を、キャッシュからロードすることによって実行する。
【００２２】
本発明の他の態様によれば、同期プロキシが、その計算負荷（例えば、同時に処理している同期の数）を、ＣＰＵパワー、ＲＡＭおよび記憶メモリのサイズ、ならびにネットワーク帯域幅容量を基に決定されるその計算容量との対比において絶え間なく監視する。同じネットワーク上の全ての同期プロキシは、それらの現在の計算負荷および事前に構成されたそれらの計算容量の相互リアルタイム・シェアリングに加わる。同期要求を受け取ると、同期プロキシは、この同期タスクを現在の計算負荷に加えた場合に、計算負荷がプロキシの計算容量を超えてしまわないかどうかを調べる。超えてしまう場合、このプロキシは、同じネットワークの他のプロキシに、それらの計算負荷および容量情報について問い合わせる。この情報を得るとこのプロキシは、この着信同期要求を、（同じネットワーク上の）計算負荷のより小さい別のプロキシに振り替える。同じネットワーク上の全てのプロキシの計算負荷が限界に達している場合、この同期要求を受け取ったプロキシは要求を発したハンドへルド装置に、全ての同期プロキシの容量がいっぱいであることを指示するメッセージを返す。このプロキシはさらに、要求を発したハンドへルド装置との接続を終了させる。この場合、同期プロセスは実行されない。この機能により本発明はさらに、単純な同期プロキシ方法では不可能な負荷平衡機能を提供する。
【００２３】
本発明のこれらならびにその他の目的、利点、および特徴は、好ましい実施形態の以下の詳細な説明および添付図面からより明白となろう。
【００２４】
【発明の実施の形態】
図１に、本発明の特徴を有する同期サーバを配置したネットワークの全体アーキテクチャの一例を示す。クライアント（１０１、１０２）の例には、ハンドへルドまたはパームトップ装置（ハンドヘルド端末、パームトップ・コンピュータ、インターネット機器とも呼ぶ）が含まれる。ただしこれに限定されるわけではない。ハンドへルド装置は一般に、片手で持ってもう一方の手で操作することができる小型のコンピュータ・ベースの装置を言う。ハンドへルド装置が実施する作業は設計上、大量の情報を一度に表示しなければならない性質のものではないので、ディスプレイは小型のものでよい。ハンドへルド装置は普通、中央コンピュータとの通信または同期あるいはその両方を可能とする通信機器を含む。ハンドへルド装置の例には、３Ｃｏｍ社のＰＡＬＭ  ＰＩＬＯＴＴＭ、シャープ株式会社のＺＡＵＲＵＳＴＭ、Ｐｓｉｏｎ  ＰＬＣ社のＰＳＩＯＮＴＭ、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ  ＣＥＴＭを実行するその他のさまざまな「パーム」タイプ装置、多機能電話、高機能ポケットベルなどが含まれる。ただしこれらに限定されるわけではない。このように好ましい実施形態はハンドへルド装置であるが、当業者なら分かるとおり本発明は、ネットワークを介してデータを同期させる任意のクライアント装置に対して有用である。
【００２５】
クライアントは断続的にサーバ（１０５〜１０７）（同期プロキシ、同期サーバ、同期プロキシ・サーバとも呼ぶ）に接続される。サーバ（１０５、１０６、１０７）の例には、ＰＣ、ワークステーション（ＩＢＭ  ＲＳ６０００ＴＭなど）、メインフレーム・コンピュータが含まれる。ただしこれらに限定されるわけではない。レプリカ・ホスト（１０９、１１０、１１１）は、ハンドへルド装置のデータのレプリカを維持する情報管理システムを実行するコンピュータである。レプリカ・ホストは、ＰＣ、ワークステーション、メインフレームなどである。同期プロキシは、ネットワーク（１０８）を介してレプリカ・ホストに接続される。ハンドへルド装置は、ある時間またはほとんどの時間、ネットワークに接続されていなくてもよいが、同期タスクを実行している間は接続されていなければならない（１０３、１０４）。当業者であれば分かるとおり、ハンドへルド装置は、ネットワークの遠隔アクセス・サーバにモデムを介してダイヤルアップすることによって、またはネットワークに接続されたコンピュータ（デスクトップＰＣなど）に（例えばＰＡＬＭ  ＰＩＬＯＴＴＭクレードルを使用して）直接にシリアル・ポート接続することによって、ネットワーク（インターネット、ローカル・エリア・ネットワークなど）に接続することができる。従来どおりディレクトリ・サーバ（１１２）が、事前構成および情報の記憶を含むサービスをユーザに提供し、要求に基づいてインターネットなどのネットワーク上で情報を動的に検索する検索エンジンを提供する。これらのサービスの例には、Ｎｏｖｅｌｌ社のＮｏｖｅｌｌ  Ｄｉｒｅｃｔｏｒｙ  Ｓｅｒｖｉｃｅ（ＮＤＳ）、Ｍｉｃｒｏｓｏｆｔ社のＡｃｔｉｖｅ  Ｄｉｒｅｃｔｏｒｙが含まれる。これらはともに、ＬＤＡＰ（ライトウェイト・ディレクトリ・アクセス・プロトコル。ディレクトリ情報にアクセスするためのインターネット・プロトコル）を介してアクセス可能なディレクトリ情報を提供する。
【００２６】
本発明によれば、同期論理（１２０）または変換コード（１３０）あるいはその両方が遠隔に記憶される。クライアント（１０１〜１０２）とクライアントのデータのレプリカを記憶した遠隔ホスト・レプリカ（１０９〜１１１）の間でデータを同期させる適応同期サーバの一例は、クライアントおよび遠隔ホストに関連したデータ・タイプ特有のアプリケーション同期論理（１２０）、ならびにレプリカ・ホスト（１０９〜１１１）を同期要求に応答して識別する同期プロキシ論理（図３）を含む。同期論理（１２０）は、ネットワーク上の、同期サーバ（１０５〜１０７）および遠隔ホスト（１０９〜１１１）に対して遠隔のどこに位置してもよい。同期プロキシ論理は、ネットワーク（１０８）から遠隔同期論理を検索し、要求に基づいて遠隔ホストに接続し、検索された同期論理を使用してクライアントと遠隔ホストの間でデータを同期させるように適合される。同期要求はさらに、同期中にクライアントと遠隔ホストの間でデータを変換する装置特有の変換コード（１３０）を識別する情報を含むことができ、この情報に基づいて変換コードを検索し、この装置特有の変換コードに基づいてクライアントと遠隔ホストの間でデータを変換する手段を含む。装置特有の変換コードは、ネットワーク上のどこにあってもよく、ローカルでも遠隔でもよい。
【００２７】
別法ではサーバが、クライアント（１０１〜１０２）とクライアント上のデータのレプリカを記憶した遠隔ホスト・レプリカ（１０９〜１１１）との間でデータを変換するように適合される。同期要求を使用して、適用可能な遠隔レプリカ・ホスト、および遠隔ホスト上のデータをクライアントに関連した装置タイプのデータに変換する変換コード（１３０）を識別する。変換コードは、ネットワーク上の、同期サーバおよび遠隔ホストに対して遠隔のどこに位置してもよい。サーバは、要求に基づいて遠隔変換コード（１３０）を検索し、この装置特有の変換コードに基づいてクライアントと遠隔ホストの間でデータを変換する。この要求は、クライアントおよび遠隔ホストに関連したデータ・タイプ特有のアプリケーションである同期論理（１２０）を同期要求に応答して識別するための情報を有する同期要求を含むことができる。サーバは同期論理を検索し、この情報に基づいて遠隔ホストに接続し、変換中にクライアントと遠隔ホストの間でデータを同期させる。
【００２８】
図２に、本発明に基づいて同期を実行する能力を有するハンドへルド装置として実装されたクライアントの全体アーキテクチャの一例を示す。図示のとおりこのハンドへルド装置は、ＣＰＵ（２０１）、揮発性ＲＡＭなどのメイン・メモリ（２０３）、および記憶メモリ（２０２）を含み、記憶メモリには、例えば不揮発性ＲＡＭ、ＲＯＭ、またはディスクを使用して、システム（オペレーティング・システムなど）、アプリケーション（電子メール、予定表ソフトウェアなど）およびデータ（住所録またはメモ帳の内容など）が記憶される。ほとんどのハンドへルド装置は全ての情報をＲＡＭおよびＲＯＭに記憶し、ディスクは使用しない。メイン・メモリ（２０３）は、本発明のハンドへルド装置論理（２０４）を記憶する。この論理は、記憶メモリ（２０２）からメイン・メモリ（２０３）にロードすることができるコンピュータが実行可能なコードとして実施されることが好ましい。本発明のハンドへルド論理（２０４）は、同期イニシエータ（２０５）（詳細を図５に示す）、同期ハンドラ（２０６）（詳細を図７に示す）およびデータ・マネージャ（２０７）（詳細を図１１に示す）を含む。本発明のハンドへルド論理（２０４）は当初、記憶メモリ（２０２）に記憶されている。同期タスクが開始されるとＣＰＵ（２０１）が、この同期論理（要求に応じてその全部または部分）をメイン・メモリ（２０３）にロードし、同期を実施するためにこの論理の実行を開始する。
【００２９】
図３に、本発明の同期プロキシとして構成された計算装置のアーキテクチャの一例を示す。この例は、ＰＣ、ワークステーション、サーバ、またはメインフレームを含む。ただしこれらに限定されるわけではない。同期プロキシは、ＣＰＵ（３０１）、ディスクなどの記憶装置（３０２）およびＲＡＭなどのメイン・メモリ（３０３）を含むことができる。メイン・メモリ（３０３）は同期プロキシ論理（３０４）を記憶する。この論理は、ディスク（３０２）からメイン・メモリ（３０３）にロードすることができるコンピュータが実行可能なコードとして実施されることが好ましい。この例では同期プロキシ論理（３０４）が、同期アクセプタ（３０５）（詳細を図６に示す）、同期ハンドラ（３０６）（詳細を図８に示す）、キャッシュ・マネージャ（３０７）（詳細を図９に示す）および負荷マネージャ（３０８）（詳細を図１３に示す）を含む。
【００３０】
図４に、本発明のレプリカ・ホストとして構成された計算装置のアーキテクチャの一例を示す。レプリカ・ホストの例には、ＰＣ、ワークステーション、サーバ、メインフレームが含まれる。ただしこれらに限定されるわけではない。図示のとおりレプリカ・ホストは、ＣＰＵ（４０１）、ディスクなどの記憶装置（４０２）およびＲＡＭなどのメイン・メモリ（４０３）を含むことができる。メイン・メモリ（４０３）はレプリカ・ホスト論理（４０４）を記憶する。この論理は、ディスク（４０２）からメイン・メモリ（４０３）にロードすることができるコンピュータが実行可能なコードとして実施されることが好ましい。レプリカ・ホスト論理（４０４）は、レプリカ・アクセプタ（４０５）（詳細を図１２に示す）およびレプリカ・マネージャ（４０６）（詳細を図１１に示す）を含む。
【００３１】
同期タスクを実行するには従来どおり、ハンドへルド装置がまずネットワーク接続を確立する必要がある。インターネットやローカル・エリア・ネットワークなどのネットワークにハンドへルド装置を接続するのに使用可能な技術には多くのものがある。例えばＰＡＬＭ  ＰＩＬＯＴＴＭは、この装置に付属したＴＣＰ／ＩＰソフトウェアを有する。モデムに取り付けられているときＰＡＬＭ  ＰＩＬＯＴＴＭは、このＴＣＰ／ＩＰソフトウェアを実行して、ＩＳＰ（インターネット・サービス・プロバイダ）に電話線を介してダイヤルアップし、インターネットに接続することができる。あるいはこの装置を、ネットワークに接続されたデスクトップＰＣにシリアル・ポートを介して接続することもできる。ＰＣをネットワーク・アクセス・サーバとして使用することを可能にし、このＰＣのシリアル・ポートに接続された任意の装置をネットワークに接続することができるプログラムが市販されている（Ｍｉｃｒｏｓｏｆｔ社のＲｅｍｏｔｅ  Ａｃｃｅｓｓ  Ｓｅｒｖｉｃｅ（ＲＡＳ）など）。クライアント装置のネットワーク接続プロセスは本発明の一部ではないが、本発明において実施される同期方法の前提条件である。
【００３２】
ネットワークへの接続が確立されると、この装置は、図２に同期イニシエータ（２０５）として示した同期イニシエータ・プロセスを開始することによって、同期タスクを実行することができるようになる。同期イニシエータ・プロセスの詳細を図５に示す。同期プロセスを開始するにはまず、同期イニシエータが同期要求を同期プロキシに送る（５０１）。当業者なら分かるとおり、同期プロキシのネットワーク・アドレスをハンドへルド装置に予め知らせておくことができ、同期プロキシのアドレスの１つをデフォルトとして予め構成しておくこともできる。同期を要求するためにハンドへルド装置がプロキシに送る情報は、それが同期要求であることを指示する相互に了解済みのコード、ユーザについての識別情報（ユーザＩＤや、認証／許可のための暗号化されたパスワードまたは共有の秘密など）、装置についての識別情報、ならびにハンドへルド装置のシステム・タイプを含むことができる。認証／許可の方法は本発明の一部ではないが、当業者なら分かるとおり、ネットワークを介した既存の認証／許可技術を、ハンドへルド装置の同期イニシエータ（図２の２０５）と同期プロキシの同期アクセプタ（図３の３０５）の間の協働手順に組み込むことができる。
【００３３】
同期要求が拒絶された場合、同期イニシエータ・プロセスは同期タスクを終了させる（５０４）。そうでない場合には同期イニシエータが、同期させる必要のあるアプリケーションのリストを決定する（５０２）。同期させるアプリケーションには例えば、住所録アプリケーション、メモ帳アプリケーション、予定表アプリケーション、電子メール・アプリケーション、ハンドへルド装置中のその他のアプリケーションが含まれる。当業者なら分かることだが、同期させるアプリケーションのリストの決定には、ユーザからのスクリーン入力（同期させるアプリケーションをユーザ・インタフェースからチェックすることなど）、デフォルトのアプリケーション・セットの検索、同期させるアプリケーションを動的に選択するソフトウェアが含まれることがある。同期させるアプリケーションのリストを決定した後、同期イニシエータ・プロセスは、リストのそれぞれのアプリケーションに対して同期ハンドラ・プロセス（詳細を図７に示す）を開始させる（５０３）。同期プロキシの最初のタスクは、同期アクセプタ（図３の３０５。詳細は図６に関して説明する）を開始させることである。
【００３４】
図６に、本発明のプロキシ同期アクセプタ機能の一例を示す。図示のとおり同期アクセプタは、同期プロキシがハンドへルド装置から同期要求を連続的に受け取る無限ループである（６０１）。同期要求を受け取ると同期アクセプタはまず、自体の計算負荷がその容量に達していないかどうかをチェックする（６０２）。達している場合、同期アクセプタは、負荷マネージャ（詳細を図１３に示す）を開始させ、同じネットワーク上の別の同期プロキシにこの要求を転送する（６０３）。同期プロキシが過負荷でない場合、同期アクセプタは、要求を発したハンドへルド装置から受け取った要求メッセージ中の識別情報に基づいて従来の認証／許可手順を実行する。認証／許可手順が失敗に終わった場合（例えば、ハンドへルド装置のユーザが認証に失敗した場合、または同期プロキシがユーザに同期の許可を与えない場合など）、プロキシは、拒絶メッセージをハンドへルド装置に送り（６０５）、接続を終了させ（６０６）、再び次の同期要求を待つ（６０１）。認証／許可手順が成功した場合、プロキシは、要求を発したハンドへルド装置に受諾メッセージを送る（６０７）。プロキシは次に、プロキシ同期ハンドラを開始させ、この同期タスクに対する同期を実施させる（６０８）。
【００３５】
当業者なら分かるとおり、同期アクセプタ・プロセスは、現在のソフトウェア技術を使用したマルチスレッド方法を用いて実装されることが好ましい。これは、ハンドへルド装置から要求を受け取ると（６０１）、同期アクセプタが新しいスレッドを開始し、この要求に対する残りの段階（６０２〜６０８）を処理することを意味する。６０３から６０１、６０６から６０１、および６０８から６０１への矢印の付いた３本の線はこのスレッドの終了を指示する。これも当業者なら分かることだが、マルチスレッド化をサポートしないオペレーティング・システムでは、新しいスレッドの生成（６０１）を新しいプロセスの生成と考えることができる。したがってスレッドの終了はプロセスの終了と等価である。
【００３６】
次に、ハンドへルド装置に戻って図５を参照する。プロキシから受諾メッセージを受け取ると（６０７）、同期させるそれぞれのアプリケーションに対して同期ハンドラが順番に開始される（５０３）。図７に、（あるアプリケーションに対する）同期ハンドラ論理のより詳細な例を示す。
【００３７】
図７に示すように、特定のアプリケーションに対する同期ハンドラがまず、このアプリケーションに関連した情報を検索する（７０１）。これらの情報には、このアプリケーションに対するレプリカ・ホストのＩＤ、同期論理のＩＤおよび変換コードのＩＤが含まれることが好ましい（７０１）。
【００３８】
あるアプリケーションに対するレプリカ・ホストは、そのアプリケーションのレプリカを記憶したコンピュータ装置である。この装置は、ＰＣ、ワークステーション、サーバまたはメインフレームであり、ネットワーク接続されていなければならない。レプリカ・ホストのＩＤに、レプリカ・ホストのネットワーク・アドレス、およびレプリカ・ホスト内におけるこのアプリケーションのレプリカの位置を含めることができる。当業者なら分かるとおり、現在のインターネット技術に基づけば、ＵＲＬ（ユニバーサル・リソース・ロケータ）はレプリカ・ホストのＩＤを実装する合理的な方法である。
【００３９】
あるアプリケーションに対する同期論理を使用して、矛盾を解消すること、オーバライドする方向を指定すること、またはこのアプリケーションに対する特定の要求を満たすためのアクションを起こさせることができる。同期論理は、実行可能コードとして実施されることが好ましい。例えば、経費保存アプリケーションに対する同期論理は、あるレコード（ホテル経費など）について、レプリカ・ホストのレコードが提案価格を表し、ハンドへルド装置のレコードが実際の請求料金を指定するときに、ハンドへルド装置がレプリカ・ホスト（会社のデータベース・サーバなど）をオーバライドするよう指定する。同期論理のＩＤに、同期論理の一意名、ネットワーク・アドレス、およびこのアドレス内の、この同期論理が記憶されている場所を含めることができる。当業者なら分かるとおり、既存のインターネット技術を使用する場合にここでもＵＲＬは、同期論理のＩＤを実装する合理的な方法である。
【００４０】
特定の装置とアプリケーションとの組合せに対する変換コードを使用して、データをフィルタに掛け、変換し、変更して、ある情報を、異なるＣＰＵパワー、メモリ容量および物理構成を有する計算装置間で適当に使用し処理することができる。変換コードは、実行可能コードとして実施されることが好ましい。例えば、ＰＣレプリカ・ホストからクライアントに送られる画像付きのウェブ・ページが変換コードを実行し、これによって全ての画像を削除したり（フィルタ機能）または非常に粗い解像度に解像度を下げたりして（変換機能）、メモリをあまり占有することなくそのページをクライアントのスクリーン上に表示させることができる。あるアプリケーションに対する変換コードのＩＤには、変換コードの一意名、ネットワーク・アドレス、およびこのアドレス内において変換コードが記憶されている場所を含めることができる。これも当業者なら分かることだが、既存のインターネット技術を使用する場合にここでもＵＲＬは、変換コードのＩＤを実装する合理的な方法である。
【００４１】
本発明の他の特徴によれば、それぞれのアプリケーションに対する前述の３つのＩＤは、事前に構成され、ハンドへルド装置またはそのハンドへルド装置のユーザに対するディレクトリ・サービスに記憶される。そのアプリケーションに対するこれらのＩＤがハンドへルド装置に記憶される場合、ハンドへルド装置の同期ハンドラは同期識別子を同期プロキシに送り（７０１）、ループに入る（７０２）。同期識別子は、これらの３つのＩＤとともに、同期させるアプリケーションの名前を含むことが好ましい。これらのＩＤがディレクトリ・サービスを経由して記憶される場合、同期ハンドラは、ユーザ、装置、アプリケーション、およびディレクトリ・サーバのアドレス（これを使用して同期プロキシがディレクトリ・サービスにアクセス）の識別を含む同期識別子を同期プロキシに送る（７０１）。
【００４２】
当業者なら分かるように、デフォルト値を使用することによってこれらの３つのＩＤのうちの任意のＩＤを送信しなくて済むようにすることができる。例えば、ハンドへルド装置が同期プロキシを用いてデフォルトのアプリケーションを同期させる場合、その同期プロキシが、このハンドへルド装置に対する同期処理中に同期させるアプリケーションの名前を検索する必要はない。この場合、アプリケーション名の指定がないことは、デフォルトのアプリケーションを同期させることを意味する。
【００４３】
同様にハンドへルド装置のユーザが、同期プロキシを用いてデフォルトのレプリカ・ホストまたは装置を構成することもできる。この場合、同期プロキシがこの情報を、ハンドへルド装置またはディレクトリから検索する必要はない。代わりに同期プロキシは、事前に構成されたこのハンドへルド装置に対するデフォルト設定を使用して、その情報を得ることができる。
【００４４】
レプリカ・ホスト、同期論理、変換コードなどの情報のＩＤは、ネットワーク・アドレスおよびそれぞれのアドレスの正確な名前および場所を含むと先に説明したが、ＩＤの他の実装では、対応するネットワーク・アドレスを指定する必要がない。特定のＩＤの正確なネットワーク・アドレスをそのＩＤに含まれる名前に基づいて捜し出すのは同期プロキシの役目である。例えば、変換コードのＩＤがこの装置に対する適正な変換コードのネットワーク・アドレスを含まない場合に、ハンドへルド装置があるアプリケーションに対する同期要求を発するとする。同期プロキシは、変換コードのＩＤを受け取ると、同期要求を発した装置のタイプに基づいて、正しい変換コードが存在する正しいネットワーク位置を求める。
【００４５】
再び図７を参照する。ループ内で（７０２）同期ハンドラはまず、同期プロキシからのＡＰＩ（アプリケーション・プログラム・インタフェース）呼出しを待つ（７０２）。プロキシからの呼出しが、このアプリケーションに対する同期プロセスが完了したことを指示している場合、同期ハンドラは終了となり、同期イニシエータへ戻って同期させる次のアプリケーションを処理する。ＡＰＩ呼出しが、（データベースを開く、レコードを読むなどの）データ管理機能である場合、同期ハンドラはデータ・マネージャ（詳細は図１１で論じる）を開始させこのＡＰＩを処理する（７０３）。
【００４６】
認証／許可手順が完了し、同期要求を受諾した後、同期プロキシ内の同期アクセプタ（図６）は、要求を発したハンドへルド装置に受諾メッセージを送り（図６の６０７）、プロキシ同期ハンドラを開始させ同期を処理する（図６の６０８）。
【００４７】
図８に、プロキシ同期ハンドラの詳細な例を示す。図示のとおりプロキシ同期ハンドラはまず、要求を発したハンドへルド装置から、同期させるアプリケーションの名前、およびレプリカ・ホスト、同期論理、変換コードに対応する３つのＩＤを受け取る（８０１）。この情報は、同期要求を発したハンドへルド装置から直接に受け取ることもできるし、あるいは先に述べたようにディレクトリ・サーバを介して受け取ることもできる。同期させるハンドへルド装置がなくなった場合には、そのことを指示する終了メッセージを送る。前述の３つのＩＤの代わりにこのような終了メッセージを受け取った場合、同期ハンドラは同期プロセスを終了させる。そうでない場合、同期ハンドラは、同期論理のＩＤに基づいて同期論理を検索するようキャッシュ・マネージャに要求する（８０２）。キャッシュ管理の例は図９で論じる。同期論理を検索した後、同期ハンドラは、レプリカ・ホストのＩＤに基づいてこのアプリケーションのレプリカへの接続を確立する（８０３）。接続が確立されると同期ハンドラは、同期論理の実行を開始し、このアプリケーションに対する同期タスクを実行する（８０４）。同期論理の実行の詳細例は、図１０に関して論じる。
【００４８】
図９に、ハンドへルド・アプリケーションに対する同期論理、変換コードなどのオブジェクトのキャッシングおよび検索を管理するために同期プロキシによって配置されるキャッシュ・マネージャの一例を示す。オブジェクトを求める要求を受け取ると（９０１）、キャッシュ・マネージャは、このオブジェクトがキャッシュにあるかどうかを調べる。キャッシュは、メイン・メモリ（３０３）またはディスク（３０２）に置かれる。
【００４９】
要求されたオブジェクトがキャッシュにない場合、キャッシュ・マネージャは、オブジェクトのＩＤに基づいてネットワークからそのオブジェクトを検索する（９０２）。オブジェクトがネットワークから検索されると、オブジェクトはキャッシュに挿入され（９０３）、要求側に戻される（９０４）。オブジェクトがキャッシュ内にあった場合、キャッシュ・マネージャは、キャッシュ内のオブジェクトがカレント・オブジェクトであるかどうかを調べる。そうでない場合、キャッシュ・マネージャは、そのＩＤを使用してネットワークからカレント・オブジェクトを検索する（９０２）。最新のオブジェクトがネットワークから検索されると、古いオブジェクトの代わりにこのオブジェクトがキャッシュに挿入され（９０３）、要求側に戻される（９０４）。オブジェクトが最新のものである場合には、そのオブジェクトが要求側に戻される（９０４）。
【００５０】
キャッシュ・オブジェクトのカレンシの妥当性検査は本発明の特徴ではないが、当業者なら分かるとおり、多くのこのような既存の手法が本発明のキャッシュ・マネージャ機能によって採用される。例えばキャッシュ・マネージャは、一定の期間を超えてキャッシュ内に留まっているオブジェクトを最新のオブジェクトとはみなさないとする方針を採用することができる。他には、キャッシュ・マネージャが、オリジナル・オブジェクトのプロバイダに登録し、オリジナル・オブジェクトが更新される（または生成、または削除される）たびに、このオブジェクトの変更についてプロバイダからキャッシュ・マネージャにメッセージが送られるようにすることもできる。このようなメッセージを受け取ったキャッシュ・マネージャは、そのオブジェクトをキャッシュから削除するか、無効の印を付けるか、または最新のオブジェクトを検索し、これでキャッシュ内の古いオブジェクトを置き換えるかの選択をする。
【００５１】
本発明のプロキシ同期ハンドラ機能（図８）による同期論理の実行（８０４）の一例をより詳細に図１０に示す。図示のとおりこの同期論理は、同期要求を発したハンドへルド装置（１００４）およびこのハンドへルド装置に対するこの同期論理のアプリケーションのレプリカのホストであるレプリカ・ホスト（１００５）からのデータの読取り、ならびにこれらへのデータの書込みを含む。１台のハンドへルド装置内のデータ管理システムとこのハンドへルド装置のレプリカ・ホストに配置された情報管理システムの間（例えば、ＰＡＬＭ  ＰＩＬＯＴTMの電子メール・システムとＬｏｔｕｓ  ＮＯＴＥＳTMの電子メール・システムの間）に多くの相違がある場合がある。例えば、データ・フォーマットが異なる場合がある。ハンドへルド装置とレプリカ・ホスト（例えばＰＡＬＭ  ＰＩＬＯＴTMとワークステーション）の間で記憶容量が異なることもある。両者間でディスプレイ装置が異なることもある（例えばＰＡＬＭ  ＰＩＬＯＴTMの低解像度白黒スクリーンに対して高解像度のＰＣモニタ）。一方（例えばワークステーション・レプリカ・ホスト）から他方（例えばＰＡＬＭ  ＰＩＬＯＴTM）に情報を適正に変換する必要性について、本発明では、変換コードを実行することでこれに対処する。
【００５２】
あるアプリケーションに対する同期論理の実行中（図１０）、同期論理は、ハンドへルド装置とレプリカ・ホストでのこのアプリケーションのそれぞれのデータ項目の更新方向を決定する。例えば、ハンドへルド装置およびレプリカ・ホストの同じ一意のＩＤを有する２つのデータ項目について、同期論理は、ハンドへルド装置のデータ項目でレプリカ・ホストのデータ項目をオーバライドするよう決定するか、またはこの逆とすることがある。同期論理が、これらの２つのデータ項目は同じものであって、データの転送の必要なしと決定することもある。さらに、これらの２つの項目が矛盾する（例えば、ともに独立して更新されている）ことに気付き、それ自体のバージョンを保持しつつ、それぞれの項目を複製するよう決定する可能性もある。
【００５３】
本発明のプロキシ同期ハンドラ機能では、データ項目を１つの装置から別の装置に（例えば、レプリカ・ホストからハンドへルド装置にまたはその逆に）書き込む前に、プロキシ同期ハンドラがデータ変換が適用可能かどうかを調べる。適用可能である場合、プロキシ同期ハンドラはキャッシュ・マネージャに、（同期要求を発したハンドへルド装置から送られたＩＤが指定する）変換コードを要求することができる（１００２）。キャッシュ・マネージャは、図９に示した手順を実施し、要求されたオブジェクトを使用可能にする。同期させるアプリケーションに対する変換コードが使用可能となった後、プロキシ同期ハンドラは、装置に書き込むデータ項目に対してこのコードを実行する（１００３）。
【００５４】
図１１に、データ・マネージャ（２０７）またはレプリカ・マネージャ（４０６）の論理の一例を示す。プロキシ同期ハンドラ（３０６および図８）は従来の手法を使用し、ＡＰＩを介してハンドへルド装置と対応するそれぞれのレプリカ・ホストの両方に、データの読取り（１１０３）および書込み（１１０４）を実施することができる。同期プロキシから受け取ったＡＰＩ呼出しを解釈し、適当なデータまたはレプリカ管理機能を実行するのは、データ・マネージャ（２０７）およびレプリカ・マネージャ（４０６）の役目である。当業者なら分かるとおり、これらのＡＰＩ呼出しは、データ項目の読取り（１１０３）、書込み（１１０４）、更新（１１０５）、削除などの一般的なデータ管理機能である。同期をより効率的に処理するため、あるアプリケーションに対する同期論理を、ハンドへルド装置およびそれらのレプリカ・ホストから使用可能なバージョン情報および更新履歴情報を利用できるように書き、同期処理を迅速化することができる。当業者なら分かるとおり、前述のＡＰＩは、ハンドへルド装置およびレプリカ・ホストからのバージョン情報および更新履歴情報の検索機能（１１０６）または設定機能（１１０７）あるいはその両方を含むことができる。
【００５５】
図１２に、本発明のレプリカ・アクセプタ機能（４０５）の一例を示す。レプリカ・アクセプタはループ・プロセスであり、最初にＡＰＩ呼出しを待つ（１２０１）。ＡＰＩ呼出しが同期プロキシから届くと、要求を発した同期プロキシの識別を検査するため、レプリカ・アクセプタは認証／許可プロセスを開始する（１２０２）。認証／許可プロセスが失敗に終わった場合、レプリカ・アクセプタはＡＰＩ呼出しを拒絶する（１２０３）。成功した場合には、レプリカ・アクセプタがレプリカ・マネージャを開始させ、適当なレプリカ管理機能の処理を実施させる（１２０４）。
【００５６】
図１３に、本発明の同期プロキシの負荷マネージャ機能（３０８）の一例を示す。プロキシ同期アクセプタ（図６）が同期要求を受け取り、この同期プロキシが過負荷であることが検出されると、プロキシ同期アクセプタは負荷マネージャを開始させ、この同期要求を他の同期プロキシに転送する（６０３）。同期要求を転送する要請を受けると（１３０１）、負荷マネージャは、同じネットワークに過負荷となっていない別のプロキシがないかどうかを調べる（１３０２）。これが見つかった場合、負荷マネージャは同期要求をその同期プロキシに転送する（１３０４）。同じネットワーク上の全てのプロキシの負荷が限界に達している場合、負荷マネージャはこの同期要求を拒絶する（１３０３）。当業者なら分かるとおり、全ての同期プロキシの負荷マネージャは、負荷情報を相互に交換するプロトコルに加わっている。同じネットワーク上の他のプロキシからの負荷情報に基づき負荷マネージャは、ネットワーク全体で負荷が平衡するように転送するプロキシを選択する（例えば、現在、計算負荷が最も軽いプロキシを転送先に選択する）方針を採用することもできる。
【００５７】
（６０２）に示した負荷条件以外の条件に基づいてプロキシ同期ハンドラが同期要求の転送を決定するようにすることもできる。複数の同期プロキシを配置したネットワークでは、それぞれの同期プロキシを、特定のハンドへルド装置または情報管理システムに対するデータ同期に特化させることが可能である。例えば、ＰＡＬＭ  ＰＩＬＯＴＴＭおよびＷＩＮＤＯＷＳ  ＣＥＴＭベースの装置を含むハンドへルド装置に対するデータ同期をサポートするネットワークでは、ＰＡＬＭＰＩＬＯＴＴＭに対するデータ同期に特化したプロキシ１とＷｉｎｄｏｗｓ  ＣＥＴＭに対するデータ同期に特化したプロキシ２の２つの同期プロキシが配置される。したがってこの構成に基づけば、時間が経過するにつれて、ＰＡＬＭ  ＰＩＬＯＴＴＭ装置に関連した同期論理および変換コードがプロキシ１にキャッシュされていき、ＷＩＮＤＯＷＳ  ＣＥＴＭ装置に関連した同期論理および変換コードがプロキシ２にキャッシュされていくと考えられる。同期要求を受け取ったときに（６０１）、同期プロキシは、負荷をチェックする（６０２）だけでなく装置タイプについてもチェックし、同期プロキシがその装置タイプに特化していないものであった場合には、この装置タイプに特化したプロキシに要求を転送する。例えば、ＷＩＮＤＯＷＳ  ＣＥＴＭ装置から同期要求を受け取るとプロキシ１は、Ｗｉｎｄｏｗｓ  ＣＥＴＭに対するデータ同期に特化しており、したがってこの同期要求を実行するのに必要な最新の同期論理および変換コードがキャッシュされている可能性が高いプロキシ２にこの要求を転送する。
【００５８】
前述の事前構成された特化分割方式の代わりに、同期プロキシが、それらが共用する負荷条件と同様に、キャッシング状態を動的に一斉送信するようにしてもよい。このようにすればそれぞれの同期プロキシが、キャッシング条件が同期要求の処理により好都合な他の同期プロキシに同期要求を動的に転送することが可能となる。
【００５９】
本発明の好ましい実施形態は、コンピュータ・プログラム製品またはプログラム記憶装置上に実際に実施され、クライアント（１０１、１０２）およびサーバ（１０５〜１０７）に備えられたＣＰＵ（２０１、３０１）上で実行されるソフトウェアとして実装することができる特徴を含む。例えばＳｕｎ社のＪａｖａＴＭなどの一般的なオブジェクト指向のコンピュータ実行可能コードの形態で実装されたソフトウェアは、異なるプラットフォーム間での移植性を提供する。当業者なら分かるとおり、Ｃ＋＋、Ｓｍａｌｔａｌｋなどを含むその他のプロシージャ指向およびオブジェクト指向（ＯＯ）プログラミング環境を使用することもできる。
【００６０】
これも当業者なら分かることだが、本発明の方法を、コンピュータまたは他の処理装置ベースの装置用のソフトウェアとして実装することができる。このソフトウェアを、磁気、電気、光またはその他の持続性プログラム記憶装置またはデータ記憶装置あるいはその両方上に実施することができる。これらの記憶装置には、磁気ディスク、ＤＡＳＤ、バブル・メモリ；テープ；ＣＤ−ＲＯＭ、ＤＶＤ（ディジタル・ビデオ・ディスク）などの光ディスク；および、コア、ＲＯＭ、ＰＲＯＭ、フラッシュ・メモリ、バッテリ・バックアップ付きのＲＡＭなどのその他の持続性（不揮発性）記憶装置が含まれる。ただしこれらに限定されるものではない。当業者なら分かるように、本発明の趣旨および範囲内で、クライアント（１０１、１０２）またはサーバ（１０５〜１０７）のメモリ（２０３）内にインスタンス化された１つまたは複数の構成要素にアクセスし、これらを、ディスク（３０２）、記憶メモリ（２０２）、ネットワーク（１０８）、その他のサーバを介して直接に維持すること、または複数のサーバ上に分散させることができる。
【００６１】
本発明の好ましい実施形態について説明してきたが、現在および将来にわたり、添付の請求の範囲に含まれるさまざまな等価な実施形態、改良形態および強化形態を実施することができることを当業者は理解しよう。したがってこれらの請求項は、最初に開示された本発明の適正な保護を提供し続けるものと理解すべきである。
【００６２】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００６３】
（１）クライアントとクライアント上のデータのレプリカを記憶した遠隔ホスト・レプリカとの間でデータを同期させる適応同期サーバにおいて、
レプリカ・ホストならびに前記クライアントおよび前記遠隔ホストに関連したデータ・タイプ特有のアプリケーション同期論理を同期要求に応答して識別する同期アクセプタ論理であって、前記同期論理が、ネットワーク上の、前記同期サーバおよび前記遠隔ホストに対して遠隔のどこにでも位置することができる同期アクセプタ論理、および
前記同期アクセプタ論理に結合され、前記ネットワークから遠隔同期論理を検索し、前記遠隔ホストに接続し、検索した同期論理を使用して前記クライアントと前記遠隔ホストの間でデータを同期させる同期ハンドラ論理
を備えることを特徴とする適応同期サーバ。
（２）前記同期アクセプタ論理がさらに、前記レプリカ・ホストおよび前記遠隔同期論理を識別するための情報を含む同期要求を前記クライアントから受け取る手段を備える、上記（１）に記載のサーバ。
（３）前記同期論理が、矛盾を解消する手段、オーバライドの方向を指定する手段、およびアプリケーションの特定の要求を満たすためにアクションを起こす手段のうちの１つまたは複数の手段を備える、上記（１）に記載のサーバ。
（４）前記同期要求が、前記レプリカ・ホストおよび前記同期論理を識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、
前記同期ハンドラ論理がさらに、前記同期要求に応答して前記情報を検索する手段を備える、
上記（１）に記載のサーバ。
（５）前記同期要求が、同期中に前記クライアントと前記遠隔ホストの間でデータを変換する装置特有の変換コードを識別するための情報を含み、
前記同期ハンドラ論理が、前記情報に基づいて前記変換コードを検索し、前記装置特有の変換コードに基づいて前記クライアントと前記遠隔ホストの間でデータを変換する手段を備える、
上記（１）に記載のサーバ。
（６）前記装置特有の変換コードが、前記ネットワーク上の遠隔地のどこにでも位置することができる、上記（５）に記載のサーバ。
（７）前記同期要求が、前記クライアントと前記遠隔ホストの間でデータを変換する前記装置特有の変換コードを識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、
前記同期ハンドラ論理が、前記情報に基づいて遠隔変換コードを検索し、前記装置特有の変換コードに基づいて前記クライアントと前記遠隔ホストの間でデータを変換する手段を備える、
上記（５）に記載のサーバ。
（８）前記変換コードが、データをフィルタに掛ける手段、変換する手段、および変更する手段のうちの１つまたは複数の手段を備え、これによりデータを、ＣＰＵパワー、メモリ容量および物理構成のうちの１つまたは複数の要素が異なる、異なる計算装置で使用し処理することができる、上記（５）に記載のサーバ。
（９）前記アクセプタ論理に結合され、サーバの計算負荷および計算容量を監視し、前記計算負荷および前記計算容量を協働する同期サーバと共用する負荷マネージャをさらに備え、
前記サーバの計算負荷がしきい値を超えているときに前記負荷マネージャが、前記同期要求をより負荷の小さいサーバに振り替える、
上記（１）に記載のサーバ。
（１０）前記ネットワークが、イントラネットおよびインターネットの一方または両方を含み、前記変換コードがさらに、前記遠隔ホストから前記ハンドへルド装置に送られたウェブ・ページに含まれた画像をフィルタに掛けるか、または前記画像の解像度を変換する手段を備え、これによって前記ページを、前記ハンドへルド装置のメモリの制約の範囲内で前記ハンドへルド装置のスクリーンに表示させることができる、上記（９）に記載のサーバ。
（１１）前記同期ハンドラに結合され、前記同期論理を検索し、これをキャッシュ・メモリに記憶するキャッシュ・マネージャ手段をさらに備える、上記（１）に記載のサーバ。
（１２）前記キャッシュ・マネージャ手段がさらに、前記同期論理をプリセットし、これを前記キャッシュ・メモリに記憶する手段を備える、上記（１１）に記載のサーバ。
（１３）識別情報がＵＲＬを含む、上記（１）に記載のサーバ。
（１４）クライアントとクライアント上のデータのレプリカを記憶した遠隔ホスト・レプリカとの間でデータを変換する適応サーバにおいて、
前記遠隔レプリカ・ホスト、ならびに前記遠隔ホスト上のデータを前記クライアントに関連した装置タイプのデータに変換する装置特有の変換論理コードを同期要求に応答して識別する同期アクセプタ論理であって、前記変換コードが、ネットワーク上の、前記同期サーバおよび前記遠隔ホストに対して遠隔のどこにでも位置することができる同期アクセプタ論理、および
前記同期アクセプタ論理に結合され、遠隔変換コードを検索し、前記装置特有の変換コードに基づいて前記クライアントと前記遠隔ホストの間でデータを変換する同期ハンドラ論理
を備えることを特徴とする適応サーバ。
（１５）前記同期アクセプタ論理がさらに、前記レプリカ・ホストおよび前記遠隔変換コードを識別するための情報を含む同期要求を前記クライアントから受け取る手段を備える、上記（１４）に記載のサーバ。
（１６）前記同期要求が、前記レプリカ・ホストおよび前記変換コードを識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、
前記同期ハンドラ論理がさらに、前記同期要求に応答して前記情報を検索する手段を備える、
上記（１４）に記載のサーバ。
（１７）前記変換コードが、データをフィルタに掛ける手段、変換する手段、および変更する手段のうちの１つまたは複数の手段を備え、これによりデータを、ＣＰＵパワー、メモリ容量および物理構成のうちの１つまたは複数の要素が異なる、異なる計算装置で使用し処理することができる、上記（１４）に記載のサーバ。
（１８）前記変換コードがさらに、前記遠隔ホストから前記ハンドへルド装置に送られたウェブ・ページに含まれた画像をフィルタに掛けるか、または前記画像の解像度を変換する手段を備え、これによって前記ページを、前記ハンドへルド装置のメモリの制約の範囲内で前記ハンドへルド装置のスクリーンに表示させることができる、上記（１４）に記載のサーバ。
（１９）前記同期要求が、前記クライアントおよび前記遠隔ホストに関連したデータ・タイプ特有のアプリケーションである同期論理を同期要求に応答して識別するための情報を含み、
前記同期ハンドラ論理が、前記同期論理を検索し、前記情報に基づいて前記遠隔ホストに接続し、前記クライアントと前記遠隔ホストの間でデータを同期させる手段を備える、
上記（１４）に記載のサーバ。
（２０）前記同期論理が、矛盾を解消する手段、オーバライドの方向を指定する手段、およびアプリケーションの特定の要求を満たすためにあるアクションを起こす手段のうちの１つまたは複数の手段を備える、上記（１９）に記載のサーバ。
（２１）前記同期論理が、前記ネットワーク上の遠隔地のどこにでも位置することができる、上記（１９）に記載のサーバ。
（２２）前記同期要求が、前記同期論理を識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、
前記同期ハンドラ論理が、前記情報に基づいて遠隔同期論理を検索し、前記同期論理に基づいて前記クライアントと前記遠隔ホストの間でデータを同期させる手段を備える、
上記（２１）に記載のサーバ。
（２３）前記アクセプタ論理に結合され、サーバの計算負荷および計算容量を監視し、前記計算負荷および前記計算容量を協働する同期サーバと共用する負荷マネージャをさらに備え、
前記サーバの計算負荷がしきい値を超えているときに前記負荷マネージャが、前記同期要求をより負荷の小さいサーバに振り替える、
上記（１４）に記載のサーバ。
（２４）前記同期ハンドラに結合され、前記同期論理を検索し、これをキャッシュ・メモリに記憶するキャッシュ・マネージャ手段をさらに備える、上記（１４）に記載のサーバ。
（２５）前記キャッシュ・マネージャ手段がさらに、前記同期論理をプリセットし、これを前記キャッシュ・メモリに記憶する手段を備える、上記（２４）に記載のサーバ。
（２６）識別情報がＵＲＬを含む、上記（１４）に記載のサーバ。
（２７）前記ネットワークがワールド・ワイド・ウェブ、同期サーバがプロキシ・サーバであり、前記クライアントが、ハンドへルド装置、多機能電話、および高機能ポケットベルからなるグループから選択される、上記（２６）に記載のサーバ。
（２８）前記ネットワークがワールド・ワイド・ウェブ、同期サーバがプロキシ・サーバであり、前記クライアントが、ハンドへルド装置、多機能電話、および高機能ポケットベルからなるグループから選択される、上記（１３）に記載のサーバ。
（２９）クライアントと前記クライアント上のデータのレプリカを記憶した遠隔ホスト・レプリカとの間でデータの同期を実行する同期サーバに接続するように適合されたクライアントにおいて、
中央処理装置（ＣＰＵ）、および
前記ＣＰＵに結合され、前記ＣＰＵ上で実行される実行可能コードを記憶したメモリ
を含み、前記コードが、
前記レプリカ・ホスト、ならびに前記クライアントおよび前記遠隔ホストに関連したデータ・タイプ特有のアプリケーションである同期論理を識別することを求める同期要求を同期サーバに伝達する同期イニシエータであって、前記同期論理が、ネットワーク上の、前記同期サーバおよび前記遠隔ホストに対して遠隔のどこにでも位置することができる同期イニシエータ、
前記同期イニシエータに結合され、前記遠隔ホストとの間で同期したデータを前記同期サーバを介してやりとりする同期ハンドラ論理、および
前記同期ハンドラに結合され、データ管理機能およびレプリカ管理機能の一方または両方を処理するデータ・マネージャ
を含むことを特徴とするクライアント。
（３０）ハンドへルド・コンピュータ、多機能電話、および高機能ポケットベルからなるグループから選択され、前記ネットワークへの接続を確立する手段を備えた接続解除可能なハンドへルド装置である、上記（２９）に記載のクライアント。
（３１）前記データ管理機能が、データ項目の読取り、データ項目の書込み、データ項目の更新、およびデータ項目の削除のうちの１つまたは複数の機能を含む、上記（２９）に記載のクライアント。
（３２）前記遠隔レプリカ・ホストとの間で、バージョンおよび更新履歴情報を伝達する手段をさらに備える、上記（２９）に記載のクライアント。
（３３）前記同期要求がさらに、前記レプリカ・ホストおよび前記遠隔同期論理を識別するための情報を含む、上記（２９）に記載のクライアント。
（３４）前記同期要求が、前記レプリカ・ホストおよび前記同期論理を識別するための情報を記憶したディレクトリ・サービスのアドレスを含む、上記（２９）に記載のクライアント。
（３５）前記同期要求が、前記クライアントと前記遠隔ホストとの間でデータを変換する装置特有の変換コードを識別するための情報を含む、上記（２９）に記載のクライアント。
（３６）前記装置特有の変換コードが、前記ネットワーク上の遠隔地のどこにでも位置することができる、上記（３５）に記載のクライアント。
（３７）前記同期要求が、同期論理および前記クライアントと前記遠隔ホストとの間でデータを変換する装置特有の変換コードの一方または両方を識別するための情報を記憶したディレクトリ・サービスのアドレスを含む、上記（３５）に記載のクライアント。
（３８）イントラネットおよびインターネットの一方または両方に結合された接続解除可能なハンドへルド装置であって、前記データが、前記遠隔ホストから前記ハンドへルド装置に送られたウェブ・ページに含まれた画像を含み、前記ページを、前記ハンドへルド装置のメモリの制約の範囲内で前記ハンドへルド装置のスクリーンに表示させることができるように前記データが変換される、上記（３５）に記載のクライアント。
（３９）識別情報がＵＲＬを含む、上記（２９）に記載のクライアント。
（４０）前記要求が、前記メモリに記憶された１つまたは複数の同期サーバのネットワーク・アドレスを含み、１つの同期サーバ・アドレスが、デフォルトの同期サーバ・アドレスとして事前構成されている、上記（２９）に記載のクライアント。
（４１）前記要求が、ユーザＩＤ、暗号化されたパスワード、認証／許可のための共有秘密情報、装置タイプ、およびクライアントに関連したシステム・タイプのうちの１つまたは複数の要素からなるグループから選択された、クライアントまたはユーザについての識別情報を含む、上記（２９）に記載のクライアント。
（４２）前記同期イニシエータが、同期させる必要のあるアプリケーションのリストを決定するように適合され、前記アプリケーションが、住所録アプリケーション、メモ帳アプリケーション、予定表アプリケーションおよび電子メール・アプリケーションのうちの１つまたは複数のアプリケーションからなるグループから選択される、上記（２９）に記載のクライアント。
（４３）クライアントと前記クライアント上のデータのレプリカを記憶した遠隔ホスト・レプリカとの間でデータの変換を実行する適応同期サーバに接続するように適合されたクライアントにおいて、
中央処理装置（ＣＰＵ）、および
前記ＣＰＵに結合され、前記ＣＰＵ上で実行される実行可能コードを記憶したメモリを含み、前記コードが、
前記レプリカ・ホスト、および前記クライアントと前記遠隔ホストの間でデータを変換する装置特有の変換コードを識別することを求める要求を前記サーバに伝達する同期イニシエータであって、前記変換コードが、ネットワーク上の、前記同期サーバおよび前記遠隔ホストに対して遠隔のどこにでも位置することができる同期イニシエータ、
前記同期イニシエータに結合され、前記遠隔ホストとの間で変換されたデータを遠隔サーバを介してやりとりする同期ハンドラ論理、および
前記同期ハンドラに結合され、データ管理機能およびレプリカ管理機能の一方または両方を処理するデータ・マネージャ
を含むことを特徴とするクライアント。
（４４）ハンドへルド・コンピュータ、多機能電話、および高機能ポケットベルからなるグループから選択され、前記ネットワークへの接続を確立する手段を備えた接続解除可能なハンドへルド装置である、上記（４３）に記載のクライアント。
（４５）前記同期要求がさらに、前記レプリカ・ホストおよび前記変換コードを識別するための情報を含む、上記（４３）に記載のクライアント。
（４６）前記同期要求が、前記レプリカ・ホストおよび前記変換コードを識別するための情報を記憶したディレクトリ・サービスのアドレスを含む、上記（４３）に記載のクライアント。
（４７）前記要求が、前記クライアントおよび前記遠隔ホストに関連したデータ・タイプ特有のアプリケーションである同期論理を識別するための情報を含む、上記（４３）に記載のクライアント。
（４８）前記同期論理が、ネットワーク上の、前記サーバおよび前記遠隔ホストに対して遠隔のどこにでも位置することができる、上記（４７）に記載のクライアント。
（４９）前記同期要求が、前記同期論理および前記装置特有の変換コードの一方または両方を識別するための情報を記憶したディレクトリ・サービスのアドレスを含む、上記（４７）に記載のクライアント。
（５０）イントラネットおよびインターネットの一方または両方に接続解除可能な形態で結合されたハンドへルド装置であって、前記データが、前記遠隔ホストから前記ハンドへルド装置に送られたウェブ・ページに含まれた画像を含み、前記ページを、前記ハンドへルド装置のメモリの制約の範囲内で前記ハンドへルド装置のスクリーンに表示させることができるように前記データが変換される、上記（４７）に記載のクライアント。
（５１）識別情報がＵＲＬを含む、上記（４３）に記載のクライアント。
（５２）前記要求が、前記メモリに記憶された１つまたは複数の同期サーバのネットワーク・アドレスを含み、１つの同期サーバ・アドレスが、デフォルトの同期サーバ・アドレスとして事前構成されている、上記（４３）に記載のクライアント。
（５３）前記要求が、ユーザＩＤ、暗号化されたパスワード、認証／許可のための共有秘密情報、装置タイプ、およびハンドへルド装置に関連したシステム・タイプのうちの１つまたは複数の要素からなるグループから選択された、クライアントまたはユーザについての識別情報を含む、上記（４３）に記載のクライアント。
（５４）前記同期イニシエータが、同期させる必要のあるアプリケーションのリストを決定するように適合され、前記アプリケーションが、住所録アプリケーション、メモ帳アプリケーション、予定表アプリケーションおよび電子メール・アプリケーションのうちの１つまたは複数のアプリケーションからなるグループから選択される、上記（４７）に記載のクライアント。
（５５）適応同期サーバにおいて、クライアントとクライアント上のデータのレプリカを記憶した遠隔ホスト・レプリカとの間でデータを適応同期させる方法であって、
レプリカ・ホストならびに前記クライアントおよび前記遠隔ホストに関連したデータ・タイプ特有のアプリケーションである同期論理を同期要求に応答して識別する段階であって、前記同期論理が、ネットワーク上の、前記同期サーバおよび前記遠隔ホストに対して遠隔のどこにでも位置することができる段階、
前記要求に基づいて前記ネットワークから遠隔同期論理を検索する段階、および
前記遠隔ホストに接続し、検索した同期論理を使用して前記クライアントと前記遠隔ホストの間でデータを同期させる段階
を含むことを特徴とする方法。
（５６）前記レプリカ・ホストおよび前記遠隔同期論理を識別するための情報を含む同期要求を前記クライアントから受け取る段階をさらに含む、上記（５５）に記載の方法。
（５７）前記同期論理がさらに、矛盾を解消する段階、オーバライドの方向を指定する段階、およびアプリケーションの特定の要求を満たすためにアクションを起こす段階のうちの１つまたは複数の段階からなるグループから選択された段階を含む、上記（５５）に記載の方法。
（５８）前記同期要求が、前記レプリカ・ホストおよび前記同期論理を識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、前記方法がさらに、前記同期要求に応答して前記情報を検索する段階を含む、上記（５５）に記載の方法。
（５９）前記同期要求が、同期中に前記クライアントと前記遠隔ホストの間でデータを変換する装置特有の変換コードを識別するための情報を含み、前記方法がさらに、
前記情報に基づいて前記変換コードを検索する段階、および前記装置特有の変換コードに基づいて前記クライアントと前記遠隔ホストの間でデータを変換する手段を含む、
上記（５５）に記載の方法。
（６０）前記装置特有の変換コードが、前記ネットワーク上の遠隔地のどこにでも位置することができる、上記（５９）に記載の方法。
（６１）前記同期要求が、前記クライアントと前記遠隔ホストの間でデータを変換する前記装置特有の変換コードを識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、前記方法がさらに、
前記情報に基づいて遠隔変換コードを検索する段階、および
前記装置特有の変換コードに基づいて前記クライアントと前記遠隔ホストの間でデータを変換する段階
を含む、上記（５９）に記載の方法。
（６２）前記変換コードがさらに、ＣＰＵパワー、メモリ容量および物理構成のうちの１つまたは複数の要素が異なる、異なる計算装置で使用し処理するために、データをフィルタに掛ける段階、変換する段階、および変更する段階のうちの１つまたは複数の段階からなるグループから選択された段階を含む、上記（５９）に記載の方法。
（６３）サーバの計算負荷および計算容量を監視する段階、
前記計算負荷および前記計算容量を協働する同期サーバと共用する段階、および
前記サーバの計算負荷がしきい値を超えているときに、前記同期要求をより負荷の小さいサーバに振り替える段階
をさらに含む、上記（５５）に記載の方法。
（６４）前記ネットワークが、イントラネットおよびインターネットの一方または両方を含み、前記変換コードがさらに、前記遠隔ホストから前記ハンドへルド装置に送られたウェブ・ページに含まれた画像をフィルタに掛ける段階、および前記画像の解像度を変換する段階のうちの一方または両方の段階からなるグループから選択された段階を含み、これによって前記ページを、前記ハンドへルド装置のメモリの制約の範囲内で前記ハンドへルド装置のスクリーンに表示させることができる、上記（６３）に記載の方法。
（６５）前記同期論理を検索する段階、およびこれをキャッシュ・メモリに記憶する段階をさらに含む、上記（５５）に記載の方法。
（６６）前記同期論理をプリセットする段階、およびこれを前記キャッシュ・メモリに記憶する段階をさらに含む、上記（６５）に記載の方法。
（６７）識別情報がＵＲＬを含む、上記（５５）に記載の方法。
（６８）適応サーバにおいて、クライアントとクライアント上のデータのレプリカを記憶した遠隔ホスト・レプリカとの間でデータを変換する方法であって、
前記遠隔レプリカ・ホスト、ならびに前記遠隔ホスト上のデータを前記クライアントに関連した装置タイプのデータに変換する装置特有の変換論理コードを要求に応答して識別する段階であって、前記変換コードが、ネットワーク上の、前記同期サーバおよび前記遠隔ホストに対して遠隔のどこにでも位置することができる段階、
前記要求に応答して遠隔変換コードを検索する段階、および
前記装置特有の変換コードに基づいて前記クライアントと前記遠隔ホストの間でデータを変換する段階
を含むことを特徴とする方法。
（６９）前記レプリカ・ホストおよび前記遠隔変換コードを識別するための情報を含む要求を前記クライアントから受け取る段階をさらに含む、上記（６８）に記載の方法。
（７０）前記要求が、前記レプリカ・ホストおよび前記変換コードを識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、前記方法がさらに、前記要求に応答して前記情報を検索する段階を含む、上記（６８）に記載の方法。
（７１）前記変換コードがさらに、ＣＰＵパワー、メモリ容量および物理構成のうちの１つまたは複数の要素が異なる、異なる計算装置で使用し処理するために、データをフィルタに掛ける段階、変換する段階、および変更する段階のうちの１つまたは複数の段階からなるグループから選択された段階を含む、上記（６８）に記載の方法。
（７２）前記変換コードがさらに、前記遠隔ホストから前記ハンドへルド装置に送られたウェブ・ページに含まれた画像をフィルタに掛ける段階、および前記画像の解像度を変換する段階のうちの一方または両方の段階からなるグループから選択された段階を含み、これによって前記ページを、前記ハンドへルド装置のメモリの制約の範囲内で前記ハンドへルド装置のスクリーンに表示させることができる、上記（６８）に記載の方法。
（７３）前記要求が、前記クライアントおよび前記遠隔ホストに関連したデータ・タイプ特有のアプリケーションである同期論理を同期要求に応答して識別するための情報を含み、前記方法がさらに、
前記同期論理を検索する段階、
前記情報に基づいて前記遠隔ホストに接続する段階、および
前記クライアントと前記遠隔ホストの間でデータを同期させる段階を含む、
上記（６８）に記載の方法。
（７４）前記同期論理がさらに、矛盾を解消する段階、オーバライドの方向を指定する段階、およびアプリケーションの特定の要求を満たすためにアクションを起こす段階のうちの１つまたは複数の段階からなるグループから選択された段階を含む、上記（７３）に記載の方法。
（７５）前記同期論理が、前記ネットワーク上の遠隔地のどこにでも位置することができる、上記（７３）に記載の方法。
（７６）前記要求が、前記同期論理を識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、前記方法がさらに、
前記情報に基づいて遠隔同期論理を検索する段階、および
前記同期論理に基づいて前記クライアントと前記遠隔ホストの間でデータを同期させる段階を含む、
上記（７５）に記載の方法。
（７７）サーバの計算負荷および計算容量を監視する段階、
前記計算負荷および前記計算容量を協働する同期サーバと共用する段階、および
前記サーバの計算負荷がしきい値を超えているときに、前記同期要求をより負荷の小さいサーバに振り替える段階
をさらに含む、上記（６８）に記載の方法。
（７８）前記同期論理を検索する段階、およびこれをキャッシュ・メモリに記憶する段階をさらに含む、上記（６８）に記載の方法。
（７９）前記同期論理をプリセットする段階、およびこれを前記キャッシュ・メモリに記憶する段階をさらに含む、上記（７８）に記載の方法。
（８０）識別情報がＵＲＬを含む、上記（６８）に記載の方法。
（８１）前記ネットワークがワールド・ワイド・ウェブ、同期サーバがプロキシ・サーバであり、前記クライアントが、ハンドへルド装置、多機能電話、および高機能ポケットベルからなるグループから選択される、上記（８０）に記載の方法。
（８２）前記ネットワークがワールド・ワイド・ウェブ、同期サーバがプロキシ・サーバであり、前記クライアントが、ハンドへルド装置、多機能電話、および高機能ポケットベルからなるグループから選択される、上記（６８）に記載の方法。
（８３）クライアントとクライアント上のデータのレプリカを記憶した遠隔ホスト・レプリカとの間でデータを適応同期させる手順を実行する、同期サーバによって実行可能な命令プログラムを記録したコンピュータ読み取り可能なプログラム記憶媒体において、前記手順が、
レプリカ・ホスト、ならびに前記クライアントおよび前記遠隔ホストに関連したデータ・タイプ特有のアプリケーションである同期論理を同期要求に応答して識別する手順であって、前記同期論理が、ネットワーク上の、前記同期サーバおよび前記遠隔ホストに対して遠隔のどこにでも位置することができる手順、
前記ネットワークから遠隔同期論理を検索する手順、および
前記遠隔ホストに接続し、検索した同期論理を使用して前記クライアントと前記遠隔ホストの間でデータを同期させる手順
を含むことを特徴とするプログラム記憶媒体。
（８４）前記手順がさらに、前記レプリカ・ホストおよび前記遠隔同期論理を識別するための情報を含む同期要求を前記クライアントから受け取る手順を含む、上記（８３）に記載のプログラム記憶媒体。
（８５）前記同期論理がさらに、矛盾を解消する手順、オーバライドの方向を指定する手順、およびアプリケーションの特定の要求を満たすためにアクションを起こす手順のうちの１つまたは複数の手順からなるグループから選択された手順を含む、上記（８３）に記載のプログラム記憶媒体。
（８６）前記同期要求が、前記レプリカ・ホストおよび前記同期論理を識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、前記手順がさらに、前記同期要求に応答して前記情報を検索する手順を含む、上記（８３）に記載のプログラム記憶媒体。
（８７）前記同期要求が、同期中に前記クライアントと前記遠隔ホストの間でデータを変換する媒体特有の変換コードを識別するための情報を含み、前記手順がさらに、
前記情報に基づいて前記変換コードを検索する手順、および
前記媒体特有の変換コードに基づいて前記クライアントと前記遠隔ホストの間でデータを変換する手段を含む、
上記（８３）に記載のプログラム記憶媒体。
（８８）前記媒体特有の変換コードが、前記ネットワーク上の遠隔地のどこにでも位置することができる、上記（８７）に記載のプログラム記憶媒体。
（８９）前記同期要求が、前記クライアントと前記遠隔ホストの間でデータを変換する前記媒体特有の変換コードを識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、前記手順がさらに、
前記情報に基づいて遠隔変換コードを検索する手順、および
前記媒体特有の変換コードに基づいて前記クライアントと前記遠隔ホストの間でデータを変換する手順
を含む、上記（８７）に記載のプログラム記憶媒体。
（９０）前記変換コードがさらに、ＣＰＵパワー、メモリ容量および物理構成のうちの１つまたは複数の要素が異なる、異なる計算媒体で使用し処理するために、データをフィルタに掛ける手順、変換する手順、および変更する手順のうちの１つまたは複数の手順からなるグループから選択された手順を含む、上記（８７）に記載のプログラム記憶媒体。
（９１）前記手順がさらに、
サーバの計算負荷および計算容量を監視する手順、
前記計算負荷および前記計算容量を協働する同期サーバと共用する手順、および
前記サーバの計算負荷がしきい値を超えているときに、前記同期要求をより負荷の小さいサーバに振り替える手順
を含む、上記（８７）に記載のプログラム記憶媒体。
（９２）前記ネットワークが、イントラネットおよびインターネットの一方または両方を含み、前記変換コードがさらに、前記遠隔ホストから前記ハンドへルド媒体に送られたウェブ・ページに含まれた画像をフィルタに掛ける手順、および前記画像の解像度を変換する手順のうちの一方または両方の手順からなるグループから選択された手順を含み、これによって前記ページを、前記ハンドへルド媒体のメモリの制約の範囲内で前記ハンドへルド媒体のスクリーンに表示させることができる、上記（６３）に記載のプログラム記憶媒体。
（９３）前記手順がさらに、前記同期論理を検索する手順、およびこれをキャッシュ・メモリに記憶する手順を含む、上記（８３）に記載のプログラム記憶媒体。
（９４）前記手順がさらに、前記同期論理をプリセットする手順、およびこれを前記キャッシュ・メモリに記憶する手順を含む、上記（９３）に記載のプログラム記憶媒体。
（９５）識別情報がＵＲＬを含む、上記（８３）に記載のプログラム記憶媒体。
（９６）クライアントとクライアント上のデータのレプリカを記憶した遠隔ホスト・レプリカとの間でデータを適応変換する手順を実行する、同期サーバによって実行可能な命令プログラムを具現化したマシン可読のプログラム記憶媒体において、前記手順が、
前記レプリカ・ホスト、ならびに前記遠隔ホスト上のデータを前記クライアントに関連した媒体タイプのデータに変換する媒体特有の変換論理コードを要求に応答して識別する手順であって、前記変換コードが、ネットワーク上の、前記同期サーバおよび前記遠隔ホストに対して遠隔のどこにでも位置することができる手順、
遠隔変換コードを検索する手順、および
前記媒体特有の変換コードに基づいて前記クライアントと前記遠隔ホストの間でデータを変換する手順
を含むことを特徴とするプログラム記憶媒体。
（９７）前記手順がさらに、前記レプリカ・ホストおよび前記遠隔変換コードを識別するための情報を含む要求を前記クライアントから受け取る手順を含む、上記（９６）に記載のプログラム記憶媒体。
（９８）前記要求が、前記レプリカ・ホストおよび前記変換コードを識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、前記手順がさらに、前記要求に応答して前記情報を検索する手順を含む、上記（９６）に記載のプログラム記憶媒体。
（９９）前記変換コードがさらに、ＣＰＵパワー、メモリ容量および物理構成のうちの１つまたは複数の要素が異なる、異なる計算媒体で使用し処理するために、データをフィルタに掛ける手順、変換する手順、および変更する手順のうちの１つまたは複数の手順からなるグループから選択された手順を含む、上記（９６）に記載のプログラム記憶媒体。
（１００）前記変換コードがさらに、前記遠隔ホストから前記ハンドへルド媒体に送られたウェブ・ページに含まれた画像をフィルタに掛ける手順、および前記画像の解像度を変換する手順のうちの一方または両方の手順からなるグループから選択された手順を含み、これによって前記ページを、前記ハンドへルド媒体のメモリの制約の範囲内で前記ハンドへルド媒体のスクリーンに表示させることができる、上記（９６）に記載のプログラム記憶媒体。
（１０１）前記要求が、前記クライアントおよび前記遠隔ホストに関連したデータ・タイプ特有のアプリケーション同期論理を同期要求に応答して識別するための情報を含み、前記手順がさらに、
前記同期論理を検索する手順、
前記遠隔ホストに接続する手順、および
前記クライアントと前記遠隔ホストの間でデータを同期させる手順を含む、
上記（９６）に記載のプログラム記憶媒体。
（１０２）前記同期論理がさらに、矛盾を解消する手順、オーバライドの方向を指定する手順、およびアプリケーションの特定の要求を満たすためにアクションを起こす手順のうちの１つまたは複数の手順からなるグループから選択された手順を含む、上記（１０１）に記載のプログラム記憶媒体。
（１０３）前記同期論理が、前記ネットワーク上の遠隔地のどこにでも位置することができる、上記（１０１）に記載のプログラム記憶媒体。
（１０４）前記要求が、前記同期論理を識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、前記手順がさらに、
前記情報に基づいて遠隔同期論理を検索する手順、および
前記同期論理に基づいて前記クライアントと前記遠隔ホストの間でデータを同期させる手順を含む、
上記（１０３）に記載のプログラム記憶媒体。
（１０５）前記手順がさらに、
サーバの計算負荷および計算容量を監視する手順、
前記計算負荷および前記計算容量を協働する同期サーバと共用する手順、および
前記サーバの計算負荷がしきい値を超えているときに、前記同期要求をより負荷の小さいサーバに振り替える手順
を含む、上記（９６）に記載のプログラム記憶媒体。
（１０６）前記手順がさらに、前記変換コードを検索する手順、およびこれをキャッシュ・メモリに記憶する手順を含む、上記（９６）に記載のプログラム記憶媒体。
（１０７）前記手順がさらに、前記変換コードをプリセットする手順、およびこれを前記キャッシュ・メモリに記憶する手順を含む、上記（１０６）に記載のプログラム記憶媒体。
（１０８）識別情報がＵＲＬを含む、上記（９６）に記載のプログラム記憶媒体。
（１０９）前記ネットワークがワールド・ワイド・ウェブ、同期サーバがプロキシ・サーバであり、前記クライアントが、ハンドへルド媒体、多機能電話、および高機能ポケットベルからなるグループから選択される、上記（１０８）に記載のプログラム記憶媒体。
（１１０）前記ネットワークがワールド・ワイド・ウェブ、同期サーバがプロキシ・サーバであり、前記クライアントが、ハンドへルド媒体、多機能電話、および高機能ポケットベルからなるグループから選択される、上記（９６）に記載のプログラム記憶媒体。
【図面の簡単な説明】
【図１】同期プロキシ方法のアーキテクチャの一例を示す図である。
【図２】本発明の特徴を有するハンドへルド装置として実装されたクライアントのアーキテクチャの一例を示す図である。
【図３】本発明の同期プロキシのアーキテクチャの一例を示す図である。
【図４】本発明のレプリカ・ホスト機能の一例を示す図である。
【図５】本発明のハンドへルド同期アクセプタ機能の一例を示す図である。
【図６】本発明のプロキシ同期アクセプタ機能の一例を示す図である。
【図７】本発明のハンドへルド同期ハンドラ機能の一例を示す図である。
【図８】本発明のプロキシ同期ハンドラ機能の一例を示す図である。
【図９】本発明のプロキシ・キャッシュ・マネージャ機能の一例を示す図である。
【図１０】プロキシ同期ハンドラのデータ変換処理の一例を示す図である。
【図１１】ホスト・レプリカ中のレプリカ・マネージャまたはハンドへルド装置中のデータ・マネージャの一例を示す図である。
【図１２】本発明のレプリカ・アクセプタ機能の一例を示す図である。
【図１３】本発明のプロキシ負荷マネージャ機能の一例を示す図である。
【符号の説明】
１０１  クライアント
１０２  クライアント
１０３  接続
１０４  接続
１０５  サーバ（同期プロキシ、同期サーバ、同期プロキシ・サーバ）
１０６  サーバ（同期プロキシ、同期サーバ、同期プロキシ・サーバ）
１０７  サーバ（同期プロキシ、同期サーバ、同期プロキシ・サーバ）
１０８  ネットワーク
１０９  レプリカ・ホスト
１１０  レプリカ・ホスト
１１１  レプリカ・ホスト
１１２  ディレクトリ・サーバ
１２０  同期論理
１３０  変換コード
２０１  ＣＰＵ
２０２  記憶メモリ
２０３  メイン・メモリ
２０４  ハンドへルド装置論理
２０５  同期イニシエータ
２０６  同期ハンドラ
２０７  データ・マネージャ
３０１  ＣＰＵ
３０２  記憶装置（ディスク）
３０３  メイン・メモリ
３０４  同期プロキシ論理
３０５  同期アクセプタ
３０６  同期ハンドラ
３０７  キャッシュ・マネージャ
３０８  負荷マネージャ
４０１  ＣＰＵ
４０２  記憶装置（ディスク）
４０３  メイン・メモリ
４０４  レプリカ・ホスト論理
４０５  レプリカ・アクセプタ
４０６  レプリカ・マネージャ
【図１】
0003574017.tif 000002
【図２】
0003574017.tif 000003
【図３】
0003574017.tif 000004
【図４】
0003574017.tif 000005
【図５】
0003574017.tif 000006
【図６】
0003574017.tif 000007
【図７】
0003574017.tif 000008
【図８】
0003574017.tif 000009
【図９】
0003574017.tif 000010
【図１０】
0003574017.tif 000011
【図１１】
0003574017.tif 000012
【図１２】
0003574017.tif 000013
【図１３】
0003574017.tif 000014