JP3574017B2 - サーバ、クライアント、適応同期方法、データ変換方法およびプログラム記憶媒体 - Google Patents

サーバ、クライアント、適応同期方法、データ変換方法およびプログラム記憶媒体 Download PDF

Info

Publication number
JP3574017B2
JP3574017B2 JP29104199A JP29104199A JP3574017B2 JP 3574017 B2 JP3574017 B2 JP 3574017B2 JP 29104199 A JP29104199 A JP 29104199A JP 29104199 A JP29104199 A JP 29104199A JP 3574017 B2 JP3574017 B2 JP 3574017B2
Authority
JP
Japan
Prior art keywords
synchronization
client
logic
data
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.)
Expired - Lifetime
Application number
JP29104199A
Other languages
English (en)
Other versions
JP2000132444A (ja
Inventor
ユン・ウー・ホアン
フィリップ・シー=ルン・ユー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2000132444A publication Critical patent/JP2000132444A/ja
Application granted granted Critical
Publication of JP3574017B2 publication Critical patent/JP3574017B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users

Description

【0001】
【発明の属する技術分野】
本発明は一般に、クライアント内のデータと情報管理システム内のそのデータの複製(レプリカ)との間の更新同期プロセスまたは変換プロセスあるいはその両方に関する。
【0002】
【従来の技術】
半導体、記憶および表示技術の急速な進歩に伴い、ネットワークに一時的に接続されるハンドヘルド装置またはモバイル装置が次第に普及している。3Com社のPALM PILOTTMなどのモバイル装置が使用される形態も非常に多彩になった。例えば、あるPALM PILOTTMのユーザは、オフィスのデスクトップ・コンピュータにあるLotus NOTESTMの電子メール・システムと同期をとる電子メール・アプリケーションを有している。PALM PILOTTM内に、インターネット上に位置する周知の株価表示サイトと同期させることによって更新される株価表示アプリケーションが置かれている場合もある。家庭用パーソナル・コンピュータ(PC)の金融ソフトウェアと同期されるPALMPILOTTMの経費アプリケーションもある。したがって、1台の装置内のさまざまなハンドヘルド・アプリケーションを、ネットワーク化されたコンピュータ上で実行されるさまざまな情報管理システム(Lotus NOTESTM、Microsoft EXCHANGETM、ファイル・システム、リレーショナル・データベース、オブジェクト指向データベースなど)内のさまざまなアプリケーションと同期させる必要がある場合も多い。1つのハンドへルド・アプリケーション(電子メールなど)が、異なるハンドへルド装置(例えば、PALM PILOTTM、シャープ株式会社のZAURUSTM、Psion PLC社のPSIONTM、およびMicrosoft Windows CETMを実行するその他の各種パームトップ装置)向けに異なるバージョンを有する場合もある。
【0003】
一般に、PALM PILOTTMなどのハンドへルド装置がネットワークに接続されるのは一時的に過ぎず、その接続時間も短いので、ハンドへルド装置内のアプリケーションとさまざまなネットワーク・コンピュータ内の対応するアプリケーションとの間の同期プロセスが非常に効率的に実施される(そのため、ハンドへルド装置がネットワークに接続されている間に同期プロセスが正常に完了する)ことが決定的に重要である。ハンドへルド装置が提供する計算用のCPUパワーやメモリは小さいので、同期プロセスがハンドへルド装置内で実施されることは普通ない。
【0004】
本明細書では、ハンドへルド装置内のデータのレプリカのホストとなるコンピュータを、レプリカ・ホストまたはレプリカ・ソースと呼ぶ。一般に、ハンドへルド装置の計算能力およびメモリはレプリカ・ホストよりも小さいので、ハンドへルド装置は、デスクトップPCであるレプリカ・ホストの内部で同期を実施する。同期は一般に、ハンドへルド装置のボタン(例えばPALM PILOTTMのHotSyncボタン)を押すことによって開始される。ボタンが押されると直ちに、レプリカ・ホスト内の同期管理ソフトウェア(例えば、デスクトップPCにあるPALM PILOTTM HotSync Manager)が同期プロセスを引き継ぐ。PALM PILOTTMの場合、HotSync Managerが、PALM PILOTTMアプリケーションをそのアプリケーションに特有の論理を介してPALM PILOTTMとデスクトップPCの間で同期させるアプリケーション固有プログラム(PALM PILOTTMではConduitと呼ばれる)を実行することによって、そのPALM PILOTTMアプリケーションに対する同期を実施する。複数のアプリケーションを同期させる必要がある場合、HotSync Managerは、それぞれの対応するConduitを順番に実行する。この方法によれば同期は常に、1台のPCと1台のハンドへルド装置の間で実施される。複数のハンドへルド装置と1台のPCの間で同時に同期を実施することはできない。
【0005】
一般に、レプリカ・ホストで同期プロセスを直接に実施することには制限が多い。理由は、多くの異なるハンドへルド装置(例えばPALM PILOTTM、ZAURUSTM、PSIONTM)によって共用されるアプリケーション(電子メール、予定表、住所録など)が数多く存在する可能性があるからである。それぞれのアプリケーションに、異なるそれぞれの装置ごとに異なる同期論理が必要となる場合がある。全てのアプリケーション、全ての装置に対して同期を適正に処理するためには、レプリカ・ホストが、さまざまなハンドへルド装置を取り扱うために多くの異なるバージョンの同期プロセスを導入し、管理する必要がある。したがって、レプリカ・ホストで同期プロセスを実施すると、異なるハンドへルド装置およびそれらの同期プロセスを管理する負担が重くなる。多くのレプリカ・ホストにとって最もミッション・クリティカルであるタスクは、さまざまなハンドへルド装置と同期をとることではなく、データベース・サーバなどの情報サーバとして、グループウェア・サーバとして、またはデスクトップPC装置としてランすることである。したがってレプリカ・ホスト上で同期を実行すると、ミッション・クリティカルなタスクの実施を阻害することになる。
【0006】
複数のハンドへルド装置とレプリカ・ホストとの間の同期を管理するより効率的な方法は、持続性のネットワーク接続を維持する同期プロキシ(または同期サーバ、同期プロキシ・サーバ)を配置し、ハンドへルド装置およびレプリカ・ホストに代わって同期を実施させることである(レプリカのホストである装置も持続性のネットワーク接続を維持する)。
【0007】
同期の実施にあたり、ハンドへルド装置はまずネットワーク接続を確立する。接続後、ハンドへルド装置は、同期対象のレプリカ・ホストに直接に接続する代わりに同期プロキシに同期要求を発行する。このような要求を受け取ると同期プロキシは、対象レプリカ・ホストとの接続を確立し、次いで、ハンドへルド装置とそのレプリカ・ホストの両方に入力/出力要求を発行することによって同期プロセスを開始する。同期プロキシの単純な設計は、同期プロキシが、これらのレプリカ・ホストがホストとなる全てのタイプの装置および全てのタイプの情報管理システムを取り扱うことができるように、装置およびアプリケーション特有の全ての同期プログラムを維持するものである。このことは、それぞれのアプリケーションが、全てのタイプのハンドへルド装置とハンドへルド・データのレプリカのホストである全ての情報管理システムとの間の任意の組合せに対して特に書かれた特有の同期プログラムを有していなければならないことを意味する。例えば同期プロキシが、PALM PILOTTMとWINDOWS CETMベースのハンドへルド装置、およびPC用のMicrosoft EXCHANGETM電子メール・システムとLotus NOTESTM電子メール・システムをサポートするためには、電子メール・アプリケーションに対して4つの異なる同期プログラムを維持していなければならない。第1の同期プログラムは、PALM PILOTTMとEXCHANGETMの同期用であり、第2は、PALM PILOTTMとLotus NOTESTMの同期用、第3は、WINDOWS CETMとEXCHANGETMの同期用、第4は、WINDOWS CETMとLotus NOTESTMの同期用である。
【0008】
同期プロキシのこの単純な設計の他の態様は、同期プロキシとハンドへルド装置のデータのレプリカのホストである特定の情報管理システムとの間の同期入出力インタフェースが、異なるハンドへルド装置に対して同じであるようにするものである。ハンドへルド装置間の相違を処理するのは同期プロキシであって、それぞれのレプリカ・ホストではない。実際の同期プロセスは同期プロキシによって実施される。同期中のハンドへルド装置とレプリカ・ホストの役割は、同期プロキシによってなされた同期入力/出力呼出しに応答することである。これらの呼出しは一般に、情報の追加、検索、削除および更新の形態をとる。したがって、ハンドへルド装置およびレプリカ・ホストの計算の負担、ならびに同期論理の複雑さは大幅に低減される。
【0009】
この単純な同期プロキシ方法の重要な特徴の1つは、全てのタイプの装置の任意のアプリケーションと全てのレプリカ・ホストの任意の情報管理システムとを適正に同期させるために、同期プロキシが同期タスク中に、対象アプリケーション、装置、および情報管理システムに基づいて特定の同期論理を呼び出すことができなければならないことである。この現在の単純な同期プロキシ方法ではこれを、そのサポートを、少数のアプリケーション、装置および情報管理システムに制限して、適正な同期に必要な同期論理の総数を減らし、同期論理を、そのディスク・メモリに記憶された(同期実行時に)動的にリンク可能なコードとして事前に構成しておくことによって実現する。このような方法の重大な問題は、さまざまな同期論理の全てを管理することが困難であることである。1つの編成でより多くのアプリケーション、装置および管理情報システムをサポートする場合、同期論理の数は劇的に増加する。したがってそれぞれの同期プロキシは、正しい同期論理をリンクさせることができなければならない。さらに、複数の同期プロキシが配置された編成では、同期論理の変更および更新があった場合に、これらを全ての同期プロキシの正しいファイルに伝達する困難なソフトウェア管理タスクが生じる。同期論理管理の改善は本発明の焦点の1つである。
【0010】
この現在の簡単な同期プロキシ方法の他の特徴は、さまざまな同期論理が、同期プロキシのメーカによって事前にコード化されていることである。いくつかのメーカはさらに、ユーザが同期論理を拡張または変更することができる開発プラットフォームも提供している。同期プロキシのメーカは一般に、アプリケーション、装置または情報管理システムを製作しない。したがってメーカは、このソフトウェアおよびハードウェアの専門的な知識を持たず、そのサポートの範囲を制限せざるをえない。現在の同期プロキシのスケーラビリティは、サポートするハンドへルド・アプリケーション、ハンドへルド装置および管理情報システムを増やすという点で非常に制限されている。本発明はこの限界に取り組む。
【0011】
さらに、この単純な同期プロキシは、同時に発せられた同期要求の処理に関し、そのスケーラビリティが、その同期プロキシがインストールされたマシンの計算能力によって制限されるスタンドアロン・システムである。負荷平衡についての同期プロキシ間の協働は、この単純な同期プロキシ方法では不可能である。同期プロキシ間で協働がなされないためにプロキシ間に負荷の不平衡が生じ、これによっていくつかの同期要求が遅延したり、または応対されなかったりする。本発明はこの必要性に取り組む。
【0012】
【発明が解決しようとする課題】
前述の必要性に基づき、本発明は、クライアントとクライアントのデータのレプリカのホストである情報管理システムとの間で更新同期を実行する際の仲介および計算プラットフォームとして機能する同期プロキシ(または同期サーバ)の改良された方法、装置およびプログラム記憶装置を提供する。クライアントの例には、インターネット機器、ハンドへルド装置またはパームトップ装置、多機能電話、高機能ポケットベルが含まれる。ただしこれらに限定されるわけではない。クライアントは、ある時間またはほとんどの時間、ネットワークから切り離されることがあるが、管理システムはほとんどの時間、接続されたままである。クライアント装置または情報管理システムあるいはその両方中のデータは互いに独立に更新されうる。
【0013】
【課題を解決するための手段】
本発明によれば、クライアントが同期プロキシに同期サービスを要求する方法が提供される。例えば、ハンドへルド装置がこのプロキシに同期要求を発行する。同期要求が、同期させる1つまたは複数のアプリケーションを含んでいてもよい。同期要求を受諾した後、同期プロキシは、このハンドへルド装置に対して同期させるよう求められた全てのアプリケーションの同期を順番に処理する。同期させるそれぞれのアプリケーションについて、ハンドへルド装置が、同期させるアプリケーションの名前、このアプリケーションのレプリカ・ホストのID、このアプリケーション向けのアプリケーション固有同期論理を含むプログラム(同期論理)のID、およびこのハンドへルド装置向けの装置固有データ変換方法を含むプログラム(変換コード)のIDを含む同期識別子を供給してもよい。これらのIDが、これらの情報の検索を可能にする一意の識別子(または一意名)およびネットワーク・アドレスを含むことが好ましい。
【0014】
代替方法として、アプリケーションの同期処理時にこれらの情報を同期プロキシに直接に送る代わりに、ハンドへルド装置が、ユーザ、ハンドへルド装置および同期させるアプリケーションの識別情報、ならびにアプリケーションの名前、前述の3つの情報(このアプリケーションのレプリカ・ホストのID、このアプリケーションの同期論理のID、およびこのハンドへルド装置の変換コードのID)が記憶されたディレクトリ・サービスのアドレスを含む同期識別子を送ってもよい。
【0015】
クライアントとクライアント上のデータのレプリカを記憶した遠隔ホスト・レプリカの間でデータを同期させる、本発明の特徴を有した適応同期サーバの一例は、レプリカ・ホストならびにクライアントおよび遠隔ホストに関連したデータ・タイプ特有のアプリケーション同期論理を同期要求に応答して識別する同期アクセプタ論理であって、この同期論理が、ネットワーク上の、同期サーバおよび遠隔ホストに対して遠隔のどこにでも位置することができる同期アクセプタ論理;および同期アクセプタ論理に結合され、ネットワークから遠隔同期論理を検索し、遠隔ホストに接続し、検索した同期論理を使用してクライアントと遠隔ホストの間でデータを同期させる同期ハンドラ論理を含む。同期要求がさらに、同期中にクライアントと遠隔ホストの間でデータを変換する装置特有の変換コードを識別するための情報を含んでもよく、同期ハンドラ論理は、この情報に基づいて変換コードを検索し、この装置特有の変換コードに基づいてクライアントと遠隔ホストの間でデータを変換する手段を含む。装置特有の変換コードは、ネットワーク上のどこにあってもよく、ローカルでも遠隔でもよい。
【0016】
クライアントとクライアント上のデータのレプリカを記憶した遠隔ホスト・レプリカの間でデータを変換する、本発明の特徴を有した適応同期サーバの他の一例は、レプリカ・ホスト、ならびに遠隔ホスト上のデータをクライアントに関連した装置タイプのデータに変換する装置特有の変換コードを同期要求に応答して識別する同期アクセプタ論理であって、この変換コードが、ネットワーク上の、同期サーバおよび遠隔ホストに対して遠隔のどこにでも位置することができる同期アクセプタ論理;および同期アクセプタ論理に結合され、遠隔変換コードを検索し、装置特有の変換コードに基づいてクライアントと遠隔ホストの間でデータを変換する同期ハンドラ論理を含む。前記要求が、同期要求に基づいて、クライアントおよび遠隔ホストに関連したデータ・タイプ特有のアプリケーションである同期論理を識別する同期要求、およびこの同期論理を検索し、遠隔ホストに接続し、変換中にクライアントと遠隔ホストの間でデータを同期させる手段を含んでいてもよい。
【0017】
本発明の他の態様によれば、ハンドへルド装置が発した同期要求を同期プロキシが受け取り、受諾し、処理する方法が提供される。本発明では同期プロキシが、ハンドへルド装置から同期要求を受け取ると、1つまたは複数のハンドへルド・アプリケーションに対して同期または変換あるいはその両方を実施する。それぞれのハンドへルド・アプリケーションについて、同期プロキシが、前述のアプリケーション名、レプリカ・ホストのID、同期論理のID、および変換コードのIDを、要求を発したハンドへルド装置から直接に、または要求を発したハンドへルド装置が指定したディレクトリ・サービスから間接的に受け取る。アプリケーションを同期させるため、同期プロキシが、要求を発したハンドへルド装置から送られたそのアプリケーションに対する同期論理のIDに指定されたネットワーク・アドレスから、そのアプリケーションに関連した同期論理を検索する。同期プロキシは次いで、このアプリケーションに関連したレプリカ・ホストとのネットワーク接続を、要求を発したハンドへルド装置から受け取らったそのレプリカ・ホストのIDに基づいて確立する。
【0018】
本発明の他の態様によれば、このアプリケーションに対する同期を処理するため、同期プロキシが、検索されたこのアプリケーションに対する同期論理を実行する。このアプリケーションに対する同期論理の実行中にデータ変換が必要である場合、同期プロキシは、このアプリケーションに関連した変換コードのネットワーク・アドレスに接続する。変換コードのネットワーク・アドレスは、要求を発したハンドへルド装置によって送られた変換コードIDの一部である。次いで同期プロキシは、このアプリケーションを同期させる間に、必要に応じて、同期論理の処理中にこの変換コードを実行することによってデータ変換を処理する。本発明では、同期論理を書くのに用いるプログラム言語を指定していないが、同期プロキシが遠隔ホストから同期論理を検索し、この論理を実行する本発明の機能については、アプレットなどのJavaプログラムを、ウェブ・ブラウザが遠隔ホストからダウンロードし、このウェブ・ブラウザがこのプログラムをローカルに実行してウェブ処理を実施する、Javaによって可能となる既存のウェブ処理を想定している。
【0019】
本発明の一実施形態では、アプリケーションに対する同期手順が同期論理と変換コードとに分割される。同期論理は、アプリケーション特有の同期タスク手順であり、変換コードは、2つのタイプの装置間の装置依存変換プロセスである。これらの2つが分離されることは、アプリケーションに対する同期論理を、そのアプリケーションのメーカが提供、維持することができ、変換コードを、その変換コードを供給するハンドへルド装置のメーカが提供、維持することができることを意味する。これによって同期プロキシが、これらの同期または変換手順を記憶し、維持する必要はなくなる。同期プロキシは、適当な同期論理または変換コードあるいはその両方を同期中に検索するだけでよい。この方法は、同期プロキシによる、アプリケーション依存および装置依存の同期または変換手順あるいはその両方の管理プロセスを大幅に改善する。
【0020】
さらにこのような方法は、アプリケーションおよび装置特有の同期手順を開発することから同期プロキシのメーカを解放する。その結果、サポートするアプリケーション、装置、および管理情報システムを増やすという点に関しての同期プロキシのスケーラビリティは、それぞれの対応するメーカが、アプリケーションおよび装置依存の同期手順を適正に開発し、それを維持し、検索できるようにしておく限りにおいて、高まる。
【0021】
本発明の他の態様によれば、同期プロキシが、アプリケーションに対する同期論理または変換コードを、この同期プロキシが近い将来に使用するのに備えて一時的に記憶しておくキャッシュを配置する。本発明のキャッシュ機能の一の例を以下に説明する。まず同期プロキシが、1つのメモリ・ブロック(メイン・メモリまたはディスク・スペース)をキャッシュとして確保する。同期プロキシが、キャッシュされた同期論理または変換コードを(例えばそれらの一意名に基づいて)検索し、取り出すための索引付け方法を採用してもよい。キャッシュされた情報(アプリケーションに対する同期論理または変換コード)を検索する際、同期論理は、ネットワークに探索に行く前にまず、そのキャッシュを探索する。情報がキャッシュになかった場合、同期プロキシは、その情報のIDに関連したネットワーク・アドレスを訪ね、その情報を検索し、それを用いてプロキシのキャッシュを更新する。情報がキャッシュにあった場合には、同期プロキシはこの情報を、ネットワークからではなくそのキャッシュから検索する。同期プロキシは次いで、この実行可能データ(アプリケーションに対する同期論理または変換コード)を、キャッシュからロードすることによって実行する。
【0022】
本発明の他の態様によれば、同期プロキシが、その計算負荷(例えば、同時に処理している同期の数)を、CPUパワー、RAMおよび記憶メモリのサイズ、ならびにネットワーク帯域幅容量を基に決定されるその計算容量との対比において絶え間なく監視する。同じネットワーク上の全ての同期プロキシは、それらの現在の計算負荷および事前に構成されたそれらの計算容量の相互リアルタイム・シェアリングに加わる。同期要求を受け取ると、同期プロキシは、この同期タスクを現在の計算負荷に加えた場合に、計算負荷がプロキシの計算容量を超えてしまわないかどうかを調べる。超えてしまう場合、このプロキシは、同じネットワークの他のプロキシに、それらの計算負荷および容量情報について問い合わせる。この情報を得るとこのプロキシは、この着信同期要求を、(同じネットワーク上の)計算負荷のより小さい別のプロキシに振り替える。同じネットワーク上の全てのプロキシの計算負荷が限界に達している場合、この同期要求を受け取ったプロキシは要求を発したハンドへルド装置に、全ての同期プロキシの容量がいっぱいであることを指示するメッセージを返す。このプロキシはさらに、要求を発したハンドへルド装置との接続を終了させる。この場合、同期プロセスは実行されない。この機能により本発明はさらに、単純な同期プロキシ方法では不可能な負荷平衡機能を提供する。
【0023】
本発明のこれらならびにその他の目的、利点、および特徴は、好ましい実施形態の以下の詳細な説明および添付図面からより明白となろう。
【0024】
【発明の実施の形態】
図1に、本発明の特徴を有する同期サーバを配置したネットワークの全体アーキテクチャの一例を示す。クライアント(101、102)の例には、ハンドへルドまたはパームトップ装置(ハンドヘルド端末、パームトップ・コンピュータ、インターネット機器とも呼ぶ)が含まれる。ただしこれに限定されるわけではない。ハンドへルド装置は一般に、片手で持ってもう一方の手で操作することができる小型のコンピュータ・ベースの装置を言う。ハンドへルド装置が実施する作業は設計上、大量の情報を一度に表示しなければならない性質のものではないので、ディスプレイは小型のものでよい。ハンドへルド装置は普通、中央コンピュータとの通信または同期あるいはその両方を可能とする通信機器を含む。ハンドへルド装置の例には、3Com社のPALM PILOTTM、シャープ株式会社のZAURUSTM、Psion PLC社のPSIONTM、Microsoft Windows CETMを実行するその他のさまざまな「パーム」タイプ装置、多機能電話、高機能ポケットベルなどが含まれる。ただしこれらに限定されるわけではない。このように好ましい実施形態はハンドへルド装置であるが、当業者なら分かるとおり本発明は、ネットワークを介してデータを同期させる任意のクライアント装置に対して有用である。
【0025】
クライアントは断続的にサーバ(105〜107)(同期プロキシ、同期サーバ、同期プロキシ・サーバとも呼ぶ)に接続される。サーバ(105、106、107)の例には、PC、ワークステーション(IBM RS6000TMなど)、メインフレーム・コンピュータが含まれる。ただしこれらに限定されるわけではない。レプリカ・ホスト(109、110、111)は、ハンドへルド装置のデータのレプリカを維持する情報管理システムを実行するコンピュータである。レプリカ・ホストは、PC、ワークステーション、メインフレームなどである。同期プロキシは、ネットワーク(108)を介してレプリカ・ホストに接続される。ハンドへルド装置は、ある時間またはほとんどの時間、ネットワークに接続されていなくてもよいが、同期タスクを実行している間は接続されていなければならない(103、104)。当業者であれば分かるとおり、ハンドへルド装置は、ネットワークの遠隔アクセス・サーバにモデムを介してダイヤルアップすることによって、またはネットワークに接続されたコンピュータ(デスクトップPCなど)に(例えばPALM PILOTTMクレードルを使用して)直接にシリアル・ポート接続することによって、ネットワーク(インターネット、ローカル・エリア・ネットワークなど)に接続することができる。従来どおりディレクトリ・サーバ(112)が、事前構成および情報の記憶を含むサービスをユーザに提供し、要求に基づいてインターネットなどのネットワーク上で情報を動的に検索する検索エンジンを提供する。これらのサービスの例には、Novell社のNovell Directory Service(NDS)、Microsoft社のActive Directoryが含まれる。これらはともに、LDAP(ライトウェイト・ディレクトリ・アクセス・プロトコル。ディレクトリ情報にアクセスするためのインターネット・プロトコル)を介してアクセス可能なディレクトリ情報を提供する。
【0026】
本発明によれば、同期論理(120)または変換コード(130)あるいはその両方が遠隔に記憶される。クライアント(101〜102)とクライアントのデータのレプリカを記憶した遠隔ホスト・レプリカ(109〜111)の間でデータを同期させる適応同期サーバの一例は、クライアントおよび遠隔ホストに関連したデータ・タイプ特有のアプリケーション同期論理(120)、ならびにレプリカ・ホスト(109〜111)を同期要求に応答して識別する同期プロキシ論理(図3)を含む。同期論理(120)は、ネットワーク上の、同期サーバ(105〜107)および遠隔ホスト(109〜111)に対して遠隔のどこに位置してもよい。同期プロキシ論理は、ネットワーク(108)から遠隔同期論理を検索し、要求に基づいて遠隔ホストに接続し、検索された同期論理を使用してクライアントと遠隔ホストの間でデータを同期させるように適合される。同期要求はさらに、同期中にクライアントと遠隔ホストの間でデータを変換する装置特有の変換コード(130)を識別する情報を含むことができ、この情報に基づいて変換コードを検索し、この装置特有の変換コードに基づいてクライアントと遠隔ホストの間でデータを変換する手段を含む。装置特有の変換コードは、ネットワーク上のどこにあってもよく、ローカルでも遠隔でもよい。
【0027】
別法ではサーバが、クライアント(101〜102)とクライアント上のデータのレプリカを記憶した遠隔ホスト・レプリカ(109〜111)との間でデータを変換するように適合される。同期要求を使用して、適用可能な遠隔レプリカ・ホスト、および遠隔ホスト上のデータをクライアントに関連した装置タイプのデータに変換する変換コード(130)を識別する。変換コードは、ネットワーク上の、同期サーバおよび遠隔ホストに対して遠隔のどこに位置してもよい。サーバは、要求に基づいて遠隔変換コード(130)を検索し、この装置特有の変換コードに基づいてクライアントと遠隔ホストの間でデータを変換する。この要求は、クライアントおよび遠隔ホストに関連したデータ・タイプ特有のアプリケーションである同期論理(120)を同期要求に応答して識別するための情報を有する同期要求を含むことができる。サーバは同期論理を検索し、この情報に基づいて遠隔ホストに接続し、変換中にクライアントと遠隔ホストの間でデータを同期させる。
【0028】
図2に、本発明に基づいて同期を実行する能力を有するハンドへルド装置として実装されたクライアントの全体アーキテクチャの一例を示す。図示のとおりこのハンドへルド装置は、CPU(201)、揮発性RAMなどのメイン・メモリ(203)、および記憶メモリ(202)を含み、記憶メモリには、例えば不揮発性RAM、ROM、またはディスクを使用して、システム(オペレーティング・システムなど)、アプリケーション(電子メール、予定表ソフトウェアなど)およびデータ(住所録またはメモ帳の内容など)が記憶される。ほとんどのハンドへルド装置は全ての情報をRAMおよびROMに記憶し、ディスクは使用しない。メイン・メモリ(203)は、本発明のハンドへルド装置論理(204)を記憶する。この論理は、記憶メモリ(202)からメイン・メモリ(203)にロードすることができるコンピュータが実行可能なコードとして実施されることが好ましい。本発明のハンドへルド論理(204)は、同期イニシエータ(205)(詳細を図5に示す)、同期ハンドラ(206)(詳細を図7に示す)およびデータ・マネージャ(207)(詳細を図11に示す)を含む。本発明のハンドへルド論理(204)は当初、記憶メモリ(202)に記憶されている。同期タスクが開始されるとCPU(201)が、この同期論理(要求に応じてその全部または部分)をメイン・メモリ(203)にロードし、同期を実施するためにこの論理の実行を開始する。
【0029】
図3に、本発明の同期プロキシとして構成された計算装置のアーキテクチャの一例を示す。この例は、PC、ワークステーション、サーバ、またはメインフレームを含む。ただしこれらに限定されるわけではない。同期プロキシは、CPU(301)、ディスクなどの記憶装置(302)およびRAMなどのメイン・メモリ(303)を含むことができる。メイン・メモリ(303)は同期プロキシ論理(304)を記憶する。この論理は、ディスク(302)からメイン・メモリ(303)にロードすることができるコンピュータが実行可能なコードとして実施されることが好ましい。この例では同期プロキシ論理(304)が、同期アクセプタ(305)(詳細を図6に示す)、同期ハンドラ(306)(詳細を図8に示す)、キャッシュ・マネージャ(307)(詳細を図9に示す)および負荷マネージャ(308)(詳細を図13に示す)を含む。
【0030】
図4に、本発明のレプリカ・ホストとして構成された計算装置のアーキテクチャの一例を示す。レプリカ・ホストの例には、PC、ワークステーション、サーバ、メインフレームが含まれる。ただしこれらに限定されるわけではない。図示のとおりレプリカ・ホストは、CPU(401)、ディスクなどの記憶装置(402)およびRAMなどのメイン・メモリ(403)を含むことができる。メイン・メモリ(403)はレプリカ・ホスト論理(404)を記憶する。この論理は、ディスク(402)からメイン・メモリ(403)にロードすることができるコンピュータが実行可能なコードとして実施されることが好ましい。レプリカ・ホスト論理(404)は、レプリカ・アクセプタ(405)(詳細を図12に示す)およびレプリカ・マネージャ(406)(詳細を図11に示す)を含む。
【0031】
同期タスクを実行するには従来どおり、ハンドへルド装置がまずネットワーク接続を確立する必要がある。インターネットやローカル・エリア・ネットワークなどのネットワークにハンドへルド装置を接続するのに使用可能な技術には多くのものがある。例えばPALM PILOTTMは、この装置に付属したTCP/IPソフトウェアを有する。モデムに取り付けられているときPALM PILOTTMは、このTCP/IPソフトウェアを実行して、ISP(インターネット・サービス・プロバイダ)に電話線を介してダイヤルアップし、インターネットに接続することができる。あるいはこの装置を、ネットワークに接続されたデスクトップPCにシリアル・ポートを介して接続することもできる。PCをネットワーク・アクセス・サーバとして使用することを可能にし、このPCのシリアル・ポートに接続された任意の装置をネットワークに接続することができるプログラムが市販されている(Microsoft社のRemote Access Service(RAS)など)。クライアント装置のネットワーク接続プロセスは本発明の一部ではないが、本発明において実施される同期方法の前提条件である。
【0032】
ネットワークへの接続が確立されると、この装置は、図2に同期イニシエータ(205)として示した同期イニシエータ・プロセスを開始することによって、同期タスクを実行することができるようになる。同期イニシエータ・プロセスの詳細を図5に示す。同期プロセスを開始するにはまず、同期イニシエータが同期要求を同期プロキシに送る(501)。当業者なら分かるとおり、同期プロキシのネットワーク・アドレスをハンドへルド装置に予め知らせておくことができ、同期プロキシのアドレスの1つをデフォルトとして予め構成しておくこともできる。同期を要求するためにハンドへルド装置がプロキシに送る情報は、それが同期要求であることを指示する相互に了解済みのコード、ユーザについての識別情報(ユーザIDや、認証/許可のための暗号化されたパスワードまたは共有の秘密など)、装置についての識別情報、ならびにハンドへルド装置のシステム・タイプを含むことができる。認証/許可の方法は本発明の一部ではないが、当業者なら分かるとおり、ネットワークを介した既存の認証/許可技術を、ハンドへルド装置の同期イニシエータ(図2の205)と同期プロキシの同期アクセプタ(図3の305)の間の協働手順に組み込むことができる。
【0033】
同期要求が拒絶された場合、同期イニシエータ・プロセスは同期タスクを終了させる(504)。そうでない場合には同期イニシエータが、同期させる必要のあるアプリケーションのリストを決定する(502)。同期させるアプリケーションには例えば、住所録アプリケーション、メモ帳アプリケーション、予定表アプリケーション、電子メール・アプリケーション、ハンドへルド装置中のその他のアプリケーションが含まれる。当業者なら分かることだが、同期させるアプリケーションのリストの決定には、ユーザからのスクリーン入力(同期させるアプリケーションをユーザ・インタフェースからチェックすることなど)、デフォルトのアプリケーション・セットの検索、同期させるアプリケーションを動的に選択するソフトウェアが含まれることがある。同期させるアプリケーションのリストを決定した後、同期イニシエータ・プロセスは、リストのそれぞれのアプリケーションに対して同期ハンドラ・プロセス(詳細を図7に示す)を開始させる(503)。同期プロキシの最初のタスクは、同期アクセプタ(図3の305。詳細は図6に関して説明する)を開始させることである。
【0034】
図6に、本発明のプロキシ同期アクセプタ機能の一例を示す。図示のとおり同期アクセプタは、同期プロキシがハンドへルド装置から同期要求を連続的に受け取る無限ループである(601)。同期要求を受け取ると同期アクセプタはまず、自体の計算負荷がその容量に達していないかどうかをチェックする(602)。達している場合、同期アクセプタは、負荷マネージャ(詳細を図13に示す)を開始させ、同じネットワーク上の別の同期プロキシにこの要求を転送する(603)。同期プロキシが過負荷でない場合、同期アクセプタは、要求を発したハンドへルド装置から受け取った要求メッセージ中の識別情報に基づいて従来の認証/許可手順を実行する。認証/許可手順が失敗に終わった場合(例えば、ハンドへルド装置のユーザが認証に失敗した場合、または同期プロキシがユーザに同期の許可を与えない場合など)、プロキシは、拒絶メッセージをハンドへルド装置に送り(605)、接続を終了させ(606)、再び次の同期要求を待つ(601)。認証/許可手順が成功した場合、プロキシは、要求を発したハンドへルド装置に受諾メッセージを送る(607)。プロキシは次に、プロキシ同期ハンドラを開始させ、この同期タスクに対する同期を実施させる(608)。
【0035】
当業者なら分かるとおり、同期アクセプタ・プロセスは、現在のソフトウェア技術を使用したマルチスレッド方法を用いて実装されることが好ましい。これは、ハンドへルド装置から要求を受け取ると(601)、同期アクセプタが新しいスレッドを開始し、この要求に対する残りの段階(602〜608)を処理することを意味する。603から601、606から601、および608から601への矢印の付いた3本の線はこのスレッドの終了を指示する。これも当業者なら分かることだが、マルチスレッド化をサポートしないオペレーティング・システムでは、新しいスレッドの生成(601)を新しいプロセスの生成と考えることができる。したがってスレッドの終了はプロセスの終了と等価である。
【0036】
次に、ハンドへルド装置に戻って図5を参照する。プロキシから受諾メッセージを受け取ると(607)、同期させるそれぞれのアプリケーションに対して同期ハンドラが順番に開始される(503)。図7に、(あるアプリケーションに対する)同期ハンドラ論理のより詳細な例を示す。
【0037】
図7に示すように、特定のアプリケーションに対する同期ハンドラがまず、このアプリケーションに関連した情報を検索する(701)。これらの情報には、このアプリケーションに対するレプリカ・ホストのID、同期論理のIDおよび変換コードのIDが含まれることが好ましい(701)。
【0038】
あるアプリケーションに対するレプリカ・ホストは、そのアプリケーションのレプリカを記憶したコンピュータ装置である。この装置は、PC、ワークステーション、サーバまたはメインフレームであり、ネットワーク接続されていなければならない。レプリカ・ホストのIDに、レプリカ・ホストのネットワーク・アドレス、およびレプリカ・ホスト内におけるこのアプリケーションのレプリカの位置を含めることができる。当業者なら分かるとおり、現在のインターネット技術に基づけば、URL(ユニバーサル・リソース・ロケータ)はレプリカ・ホストのIDを実装する合理的な方法である。
【0039】
あるアプリケーションに対する同期論理を使用して、矛盾を解消すること、オーバライドする方向を指定すること、またはこのアプリケーションに対する特定の要求を満たすためのアクションを起こさせることができる。同期論理は、実行可能コードとして実施されることが好ましい。例えば、経費保存アプリケーションに対する同期論理は、あるレコード(ホテル経費など)について、レプリカ・ホストのレコードが提案価格を表し、ハンドへルド装置のレコードが実際の請求料金を指定するときに、ハンドへルド装置がレプリカ・ホスト(会社のデータベース・サーバなど)をオーバライドするよう指定する。同期論理のIDに、同期論理の一意名、ネットワーク・アドレス、およびこのアドレス内の、この同期論理が記憶されている場所を含めることができる。当業者なら分かるとおり、既存のインターネット技術を使用する場合にここでもURLは、同期論理のIDを実装する合理的な方法である。
【0040】
特定の装置とアプリケーションとの組合せに対する変換コードを使用して、データをフィルタに掛け、変換し、変更して、ある情報を、異なるCPUパワー、メモリ容量および物理構成を有する計算装置間で適当に使用し処理することができる。変換コードは、実行可能コードとして実施されることが好ましい。例えば、PCレプリカ・ホストからクライアントに送られる画像付きのウェブ・ページが変換コードを実行し、これによって全ての画像を削除したり(フィルタ機能)または非常に粗い解像度に解像度を下げたりして(変換機能)、メモリをあまり占有することなくそのページをクライアントのスクリーン上に表示させることができる。あるアプリケーションに対する変換コードのIDには、変換コードの一意名、ネットワーク・アドレス、およびこのアドレス内において変換コードが記憶されている場所を含めることができる。これも当業者なら分かることだが、既存のインターネット技術を使用する場合にここでもURLは、変換コードのIDを実装する合理的な方法である。
【0041】
本発明の他の特徴によれば、それぞれのアプリケーションに対する前述の3つのIDは、事前に構成され、ハンドへルド装置またはそのハンドへルド装置のユーザに対するディレクトリ・サービスに記憶される。そのアプリケーションに対するこれらのIDがハンドへルド装置に記憶される場合、ハンドへルド装置の同期ハンドラは同期識別子を同期プロキシに送り(701)、ループに入る(702)。同期識別子は、これらの3つのIDとともに、同期させるアプリケーションの名前を含むことが好ましい。これらのIDがディレクトリ・サービスを経由して記憶される場合、同期ハンドラは、ユーザ、装置、アプリケーション、およびディレクトリ・サーバのアドレス(これを使用して同期プロキシがディレクトリ・サービスにアクセス)の識別を含む同期識別子を同期プロキシに送る(701)。
【0042】
当業者なら分かるように、デフォルト値を使用することによってこれらの3つのIDのうちの任意のIDを送信しなくて済むようにすることができる。例えば、ハンドへルド装置が同期プロキシを用いてデフォルトのアプリケーションを同期させる場合、その同期プロキシが、このハンドへルド装置に対する同期処理中に同期させるアプリケーションの名前を検索する必要はない。この場合、アプリケーション名の指定がないことは、デフォルトのアプリケーションを同期させることを意味する。
【0043】
同様にハンドへルド装置のユーザが、同期プロキシを用いてデフォルトのレプリカ・ホストまたは装置を構成することもできる。この場合、同期プロキシがこの情報を、ハンドへルド装置またはディレクトリから検索する必要はない。代わりに同期プロキシは、事前に構成されたこのハンドへルド装置に対するデフォルト設定を使用して、その情報を得ることができる。
【0044】
レプリカ・ホスト、同期論理、変換コードなどの情報のIDは、ネットワーク・アドレスおよびそれぞれのアドレスの正確な名前および場所を含むと先に説明したが、IDの他の実装では、対応するネットワーク・アドレスを指定する必要がない。特定のIDの正確なネットワーク・アドレスをそのIDに含まれる名前に基づいて捜し出すのは同期プロキシの役目である。例えば、変換コードのIDがこの装置に対する適正な変換コードのネットワーク・アドレスを含まない場合に、ハンドへルド装置があるアプリケーションに対する同期要求を発するとする。同期プロキシは、変換コードのIDを受け取ると、同期要求を発した装置のタイプに基づいて、正しい変換コードが存在する正しいネットワーク位置を求める。
【0045】
再び図7を参照する。ループ内で(702)同期ハンドラはまず、同期プロキシからのAPI(アプリケーション・プログラム・インタフェース)呼出しを待つ(702)。プロキシからの呼出しが、このアプリケーションに対する同期プロセスが完了したことを指示している場合、同期ハンドラは終了となり、同期イニシエータへ戻って同期させる次のアプリケーションを処理する。API呼出しが、(データベースを開く、レコードを読むなどの)データ管理機能である場合、同期ハンドラはデータ・マネージャ(詳細は図11で論じる)を開始させこのAPIを処理する(703)。
【0046】
認証/許可手順が完了し、同期要求を受諾した後、同期プロキシ内の同期アクセプタ(図6)は、要求を発したハンドへルド装置に受諾メッセージを送り(図6の607)、プロキシ同期ハンドラを開始させ同期を処理する(図6の608)。
【0047】
図8に、プロキシ同期ハンドラの詳細な例を示す。図示のとおりプロキシ同期ハンドラはまず、要求を発したハンドへルド装置から、同期させるアプリケーションの名前、およびレプリカ・ホスト、同期論理、変換コードに対応する3つのIDを受け取る(801)。この情報は、同期要求を発したハンドへルド装置から直接に受け取ることもできるし、あるいは先に述べたようにディレクトリ・サーバを介して受け取ることもできる。同期させるハンドへルド装置がなくなった場合には、そのことを指示する終了メッセージを送る。前述の3つのIDの代わりにこのような終了メッセージを受け取った場合、同期ハンドラは同期プロセスを終了させる。そうでない場合、同期ハンドラは、同期論理のIDに基づいて同期論理を検索するようキャッシュ・マネージャに要求する(802)。キャッシュ管理の例は図9で論じる。同期論理を検索した後、同期ハンドラは、レプリカ・ホストのIDに基づいてこのアプリケーションのレプリカへの接続を確立する(803)。接続が確立されると同期ハンドラは、同期論理の実行を開始し、このアプリケーションに対する同期タスクを実行する(804)。同期論理の実行の詳細例は、図10に関して論じる。
【0048】
図9に、ハンドへルド・アプリケーションに対する同期論理、変換コードなどのオブジェクトのキャッシングおよび検索を管理するために同期プロキシによって配置されるキャッシュ・マネージャの一例を示す。オブジェクトを求める要求を受け取ると(901)、キャッシュ・マネージャは、このオブジェクトがキャッシュにあるかどうかを調べる。キャッシュは、メイン・メモリ(303)またはディスク(302)に置かれる。
【0049】
要求されたオブジェクトがキャッシュにない場合、キャッシュ・マネージャは、オブジェクトのIDに基づいてネットワークからそのオブジェクトを検索する(902)。オブジェクトがネットワークから検索されると、オブジェクトはキャッシュに挿入され(903)、要求側に戻される(904)。オブジェクトがキャッシュ内にあった場合、キャッシュ・マネージャは、キャッシュ内のオブジェクトがカレント・オブジェクトであるかどうかを調べる。そうでない場合、キャッシュ・マネージャは、そのIDを使用してネットワークからカレント・オブジェクトを検索する(902)。最新のオブジェクトがネットワークから検索されると、古いオブジェクトの代わりにこのオブジェクトがキャッシュに挿入され(903)、要求側に戻される(904)。オブジェクトが最新のものである場合には、そのオブジェクトが要求側に戻される(904)。
【0050】
キャッシュ・オブジェクトのカレンシの妥当性検査は本発明の特徴ではないが、当業者なら分かるとおり、多くのこのような既存の手法が本発明のキャッシュ・マネージャ機能によって採用される。例えばキャッシュ・マネージャは、一定の期間を超えてキャッシュ内に留まっているオブジェクトを最新のオブジェクトとはみなさないとする方針を採用することができる。他には、キャッシュ・マネージャが、オリジナル・オブジェクトのプロバイダに登録し、オリジナル・オブジェクトが更新される(または生成、または削除される)たびに、このオブジェクトの変更についてプロバイダからキャッシュ・マネージャにメッセージが送られるようにすることもできる。このようなメッセージを受け取ったキャッシュ・マネージャは、そのオブジェクトをキャッシュから削除するか、無効の印を付けるか、または最新のオブジェクトを検索し、これでキャッシュ内の古いオブジェクトを置き換えるかの選択をする。
【0051】
本発明のプロキシ同期ハンドラ機能(図8)による同期論理の実行(804)の一例をより詳細に図10に示す。図示のとおりこの同期論理は、同期要求を発したハンドへルド装置(1004)およびこのハンドへルド装置に対するこの同期論理のアプリケーションのレプリカのホストであるレプリカ・ホスト(1005)からのデータの読取り、ならびにこれらへのデータの書込みを含む。1台のハンドへルド装置内のデータ管理システムとこのハンドへルド装置のレプリカ・ホストに配置された情報管理システムの間(例えば、PALM PILOTTMの電子メール・システムとLotus NOTESTMの電子メール・システムの間)に多くの相違がある場合がある。例えば、データ・フォーマットが異なる場合がある。ハンドへルド装置とレプリカ・ホスト(例えばPALM PILOTTMとワークステーション)の間で記憶容量が異なることもある。両者間でディスプレイ装置が異なることもある(例えばPALM PILOTTMの低解像度白黒スクリーンに対して高解像度のPCモニタ)。一方(例えばワークステーション・レプリカ・ホスト)から他方(例えばPALM PILOTTM)に情報を適正に変換する必要性について、本発明では、変換コードを実行することでこれに対処する。
【0052】
あるアプリケーションに対する同期論理の実行中(図10)、同期論理は、ハンドへルド装置とレプリカ・ホストでのこのアプリケーションのそれぞれのデータ項目の更新方向を決定する。例えば、ハンドへルド装置およびレプリカ・ホストの同じ一意のIDを有する2つのデータ項目について、同期論理は、ハンドへルド装置のデータ項目でレプリカ・ホストのデータ項目をオーバライドするよう決定するか、またはこの逆とすることがある。同期論理が、これらの2つのデータ項目は同じものであって、データの転送の必要なしと決定することもある。さらに、これらの2つの項目が矛盾する(例えば、ともに独立して更新されている)ことに気付き、それ自体のバージョンを保持しつつ、それぞれの項目を複製するよう決定する可能性もある。
【0053】
本発明のプロキシ同期ハンドラ機能では、データ項目を1つの装置から別の装置に(例えば、レプリカ・ホストからハンドへルド装置にまたはその逆に)書き込む前に、プロキシ同期ハンドラがデータ変換が適用可能かどうかを調べる。適用可能である場合、プロキシ同期ハンドラはキャッシュ・マネージャに、(同期要求を発したハンドへルド装置から送られたIDが指定する)変換コードを要求することができる(1002)。キャッシュ・マネージャは、図9に示した手順を実施し、要求されたオブジェクトを使用可能にする。同期させるアプリケーションに対する変換コードが使用可能となった後、プロキシ同期ハンドラは、装置に書き込むデータ項目に対してこのコードを実行する(1003)。
【0054】
図11に、データ・マネージャ(207)またはレプリカ・マネージャ(406)の論理の一例を示す。プロキシ同期ハンドラ(306および図8)は従来の手法を使用し、APIを介してハンドへルド装置と対応するそれぞれのレプリカ・ホストの両方に、データの読取り(1103)および書込み(1104)を実施することができる。同期プロキシから受け取ったAPI呼出しを解釈し、適当なデータまたはレプリカ管理機能を実行するのは、データ・マネージャ(207)およびレプリカ・マネージャ(406)の役目である。当業者なら分かるとおり、これらのAPI呼出しは、データ項目の読取り(1103)、書込み(1104)、更新(1105)、削除などの一般的なデータ管理機能である。同期をより効率的に処理するため、あるアプリケーションに対する同期論理を、ハンドへルド装置およびそれらのレプリカ・ホストから使用可能なバージョン情報および更新履歴情報を利用できるように書き、同期処理を迅速化することができる。当業者なら分かるとおり、前述のAPIは、ハンドへルド装置およびレプリカ・ホストからのバージョン情報および更新履歴情報の検索機能(1106)または設定機能(1107)あるいはその両方を含むことができる。
【0055】
図12に、本発明のレプリカ・アクセプタ機能(405)の一例を示す。レプリカ・アクセプタはループ・プロセスであり、最初にAPI呼出しを待つ(1201)。API呼出しが同期プロキシから届くと、要求を発した同期プロキシの識別を検査するため、レプリカ・アクセプタは認証/許可プロセスを開始する(1202)。認証/許可プロセスが失敗に終わった場合、レプリカ・アクセプタはAPI呼出しを拒絶する(1203)。成功した場合には、レプリカ・アクセプタがレプリカ・マネージャを開始させ、適当なレプリカ管理機能の処理を実施させる(1204)。
【0056】
図13に、本発明の同期プロキシの負荷マネージャ機能(308)の一例を示す。プロキシ同期アクセプタ(図6)が同期要求を受け取り、この同期プロキシが過負荷であることが検出されると、プロキシ同期アクセプタは負荷マネージャを開始させ、この同期要求を他の同期プロキシに転送する(603)。同期要求を転送する要請を受けると(1301)、負荷マネージャは、同じネットワークに過負荷となっていない別のプロキシがないかどうかを調べる(1302)。これが見つかった場合、負荷マネージャは同期要求をその同期プロキシに転送する(1304)。同じネットワーク上の全てのプロキシの負荷が限界に達している場合、負荷マネージャはこの同期要求を拒絶する(1303)。当業者なら分かるとおり、全ての同期プロキシの負荷マネージャは、負荷情報を相互に交換するプロトコルに加わっている。同じネットワーク上の他のプロキシからの負荷情報に基づき負荷マネージャは、ネットワーク全体で負荷が平衡するように転送するプロキシを選択する(例えば、現在、計算負荷が最も軽いプロキシを転送先に選択する)方針を採用することもできる。
【0057】
(602)に示した負荷条件以外の条件に基づいてプロキシ同期ハンドラが同期要求の転送を決定するようにすることもできる。複数の同期プロキシを配置したネットワークでは、それぞれの同期プロキシを、特定のハンドへルド装置または情報管理システムに対するデータ同期に特化させることが可能である。例えば、PALM PILOTTMおよびWINDOWS CETMベースの装置を含むハンドへルド装置に対するデータ同期をサポートするネットワークでは、PALMPILOTTMに対するデータ同期に特化したプロキシ1とWindows CETMに対するデータ同期に特化したプロキシ2の2つの同期プロキシが配置される。したがってこの構成に基づけば、時間が経過するにつれて、PALM PILOTTM装置に関連した同期論理および変換コードがプロキシ1にキャッシュされていき、WINDOWS CETM装置に関連した同期論理および変換コードがプロキシ2にキャッシュされていくと考えられる。同期要求を受け取ったときに(601)、同期プロキシは、負荷をチェックする(602)だけでなく装置タイプについてもチェックし、同期プロキシがその装置タイプに特化していないものであった場合には、この装置タイプに特化したプロキシに要求を転送する。例えば、WINDOWS CETM装置から同期要求を受け取るとプロキシ1は、Windows CETMに対するデータ同期に特化しており、したがってこの同期要求を実行するのに必要な最新の同期論理および変換コードがキャッシュされている可能性が高いプロキシ2にこの要求を転送する。
【0058】
前述の事前構成された特化分割方式の代わりに、同期プロキシが、それらが共用する負荷条件と同様に、キャッシング状態を動的に一斉送信するようにしてもよい。このようにすればそれぞれの同期プロキシが、キャッシング条件が同期要求の処理により好都合な他の同期プロキシに同期要求を動的に転送することが可能となる。
【0059】
本発明の好ましい実施形態は、コンピュータ・プログラム製品またはプログラム記憶装置上に実際に実施され、クライアント(101、102)およびサーバ(105〜107)に備えられたCPU(201、301)上で実行されるソフトウェアとして実装することができる特徴を含む。例えばSun社のJavaTMなどの一般的なオブジェクト指向のコンピュータ実行可能コードの形態で実装されたソフトウェアは、異なるプラットフォーム間での移植性を提供する。当業者なら分かるとおり、C++、Smaltalkなどを含むその他のプロシージャ指向およびオブジェクト指向(OO)プログラミング環境を使用することもできる。
【0060】
これも当業者なら分かることだが、本発明の方法を、コンピュータまたは他の処理装置ベースの装置用のソフトウェアとして実装することができる。このソフトウェアを、磁気、電気、光またはその他の持続性プログラム記憶装置またはデータ記憶装置あるいはその両方上に実施することができる。これらの記憶装置には、磁気ディスク、DASD、バブル・メモリ;テープ;CD−ROM、DVD(ディジタル・ビデオ・ディスク)などの光ディスク;および、コア、ROM、PROM、フラッシュ・メモリ、バッテリ・バックアップ付きのRAMなどのその他の持続性(不揮発性)記憶装置が含まれる。ただしこれらに限定されるものではない。当業者なら分かるように、本発明の趣旨および範囲内で、クライアント(101、102)またはサーバ(105〜107)のメモリ(203)内にインスタンス化された1つまたは複数の構成要素にアクセスし、これらを、ディスク(302)、記憶メモリ(202)、ネットワーク(108)、その他のサーバを介して直接に維持すること、または複数のサーバ上に分散させることができる。
【0061】
本発明の好ましい実施形態について説明してきたが、現在および将来にわたり、添付の請求の範囲に含まれるさまざまな等価な実施形態、改良形態および強化形態を実施することができることを当業者は理解しよう。したがってこれらの請求項は、最初に開示された本発明の適正な保護を提供し続けるものと理解すべきである。
【0062】
まとめとして、本発明の構成に関して以下の事項を開示する。
【0063】
(1)クライアントとクライアント上のデータのレプリカを記憶した遠隔ホスト・レプリカとの間でデータを同期させる適応同期サーバにおいて、
レプリカ・ホストならびに前記クライアントおよび前記遠隔ホストに関連したデータ・タイプ特有のアプリケーション同期論理を同期要求に応答して識別する同期アクセプタ論理であって、前記同期論理が、ネットワーク上の、前記同期サーバおよび前記遠隔ホストに対して遠隔のどこにでも位置することができる同期アクセプタ論理、および
前記同期アクセプタ論理に結合され、前記ネットワークから遠隔同期論理を検索し、前記遠隔ホストに接続し、検索した同期論理を使用して前記クライアントと前記遠隔ホストの間でデータを同期させる同期ハンドラ論理
を備えることを特徴とする適応同期サーバ。
(2)前記同期アクセプタ論理がさらに、前記レプリカ・ホストおよび前記遠隔同期論理を識別するための情報を含む同期要求を前記クライアントから受け取る手段を備える、上記(1)に記載のサーバ。
(3)前記同期論理が、矛盾を解消する手段、オーバライドの方向を指定する手段、およびアプリケーションの特定の要求を満たすためにアクションを起こす手段のうちの1つまたは複数の手段を備える、上記(1)に記載のサーバ。
(4)前記同期要求が、前記レプリカ・ホストおよび前記同期論理を識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、
前記同期ハンドラ論理がさらに、前記同期要求に応答して前記情報を検索する手段を備える、
上記(1)に記載のサーバ。
(5)前記同期要求が、同期中に前記クライアントと前記遠隔ホストの間でデータを変換する装置特有の変換コードを識別するための情報を含み、
前記同期ハンドラ論理が、前記情報に基づいて前記変換コードを検索し、前記装置特有の変換コードに基づいて前記クライアントと前記遠隔ホストの間でデータを変換する手段を備える、
上記(1)に記載のサーバ。
(6)前記装置特有の変換コードが、前記ネットワーク上の遠隔地のどこにでも位置することができる、上記(5)に記載のサーバ。
(7)前記同期要求が、前記クライアントと前記遠隔ホストの間でデータを変換する前記装置特有の変換コードを識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、
前記同期ハンドラ論理が、前記情報に基づいて遠隔変換コードを検索し、前記装置特有の変換コードに基づいて前記クライアントと前記遠隔ホストの間でデータを変換する手段を備える、
上記(5)に記載のサーバ。
(8)前記変換コードが、データをフィルタに掛ける手段、変換する手段、および変更する手段のうちの1つまたは複数の手段を備え、これによりデータを、CPUパワー、メモリ容量および物理構成のうちの1つまたは複数の要素が異なる、異なる計算装置で使用し処理することができる、上記(5)に記載のサーバ。
(9)前記アクセプタ論理に結合され、サーバの計算負荷および計算容量を監視し、前記計算負荷および前記計算容量を協働する同期サーバと共用する負荷マネージャをさらに備え、
前記サーバの計算負荷がしきい値を超えているときに前記負荷マネージャが、前記同期要求をより負荷の小さいサーバに振り替える、
上記(1)に記載のサーバ。
(10)前記ネットワークが、イントラネットおよびインターネットの一方または両方を含み、前記変換コードがさらに、前記遠隔ホストから前記ハンドへルド装置に送られたウェブ・ページに含まれた画像をフィルタに掛けるか、または前記画像の解像度を変換する手段を備え、これによって前記ページを、前記ハンドへルド装置のメモリの制約の範囲内で前記ハンドへルド装置のスクリーンに表示させることができる、上記(9)に記載のサーバ。
(11)前記同期ハンドラに結合され、前記同期論理を検索し、これをキャッシュ・メモリに記憶するキャッシュ・マネージャ手段をさらに備える、上記(1)に記載のサーバ。
(12)前記キャッシュ・マネージャ手段がさらに、前記同期論理をプリセットし、これを前記キャッシュ・メモリに記憶する手段を備える、上記(11)に記載のサーバ。
(13)識別情報がURLを含む、上記(1)に記載のサーバ。
(14)クライアントとクライアント上のデータのレプリカを記憶した遠隔ホスト・レプリカとの間でデータを変換する適応サーバにおいて、
前記遠隔レプリカ・ホスト、ならびに前記遠隔ホスト上のデータを前記クライアントに関連した装置タイプのデータに変換する装置特有の変換論理コードを同期要求に応答して識別する同期アクセプタ論理であって、前記変換コードが、ネットワーク上の、前記同期サーバおよび前記遠隔ホストに対して遠隔のどこにでも位置することができる同期アクセプタ論理、および
前記同期アクセプタ論理に結合され、遠隔変換コードを検索し、前記装置特有の変換コードに基づいて前記クライアントと前記遠隔ホストの間でデータを変換する同期ハンドラ論理
を備えることを特徴とする適応サーバ。
(15)前記同期アクセプタ論理がさらに、前記レプリカ・ホストおよび前記遠隔変換コードを識別するための情報を含む同期要求を前記クライアントから受け取る手段を備える、上記(14)に記載のサーバ。
(16)前記同期要求が、前記レプリカ・ホストおよび前記変換コードを識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、
前記同期ハンドラ論理がさらに、前記同期要求に応答して前記情報を検索する手段を備える、
上記(14)に記載のサーバ。
(17)前記変換コードが、データをフィルタに掛ける手段、変換する手段、および変更する手段のうちの1つまたは複数の手段を備え、これによりデータを、CPUパワー、メモリ容量および物理構成のうちの1つまたは複数の要素が異なる、異なる計算装置で使用し処理することができる、上記(14)に記載のサーバ。
(18)前記変換コードがさらに、前記遠隔ホストから前記ハンドへルド装置に送られたウェブ・ページに含まれた画像をフィルタに掛けるか、または前記画像の解像度を変換する手段を備え、これによって前記ページを、前記ハンドへルド装置のメモリの制約の範囲内で前記ハンドへルド装置のスクリーンに表示させることができる、上記(14)に記載のサーバ。
(19)前記同期要求が、前記クライアントおよび前記遠隔ホストに関連したデータ・タイプ特有のアプリケーションである同期論理を同期要求に応答して識別するための情報を含み、
前記同期ハンドラ論理が、前記同期論理を検索し、前記情報に基づいて前記遠隔ホストに接続し、前記クライアントと前記遠隔ホストの間でデータを同期させる手段を備える、
上記(14)に記載のサーバ。
(20)前記同期論理が、矛盾を解消する手段、オーバライドの方向を指定する手段、およびアプリケーションの特定の要求を満たすためにあるアクションを起こす手段のうちの1つまたは複数の手段を備える、上記(19)に記載のサーバ。
(21)前記同期論理が、前記ネットワーク上の遠隔地のどこにでも位置することができる、上記(19)に記載のサーバ。
(22)前記同期要求が、前記同期論理を識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、
前記同期ハンドラ論理が、前記情報に基づいて遠隔同期論理を検索し、前記同期論理に基づいて前記クライアントと前記遠隔ホストの間でデータを同期させる手段を備える、
上記(21)に記載のサーバ。
(23)前記アクセプタ論理に結合され、サーバの計算負荷および計算容量を監視し、前記計算負荷および前記計算容量を協働する同期サーバと共用する負荷マネージャをさらに備え、
前記サーバの計算負荷がしきい値を超えているときに前記負荷マネージャが、前記同期要求をより負荷の小さいサーバに振り替える、
上記(14)に記載のサーバ。
(24)前記同期ハンドラに結合され、前記同期論理を検索し、これをキャッシュ・メモリに記憶するキャッシュ・マネージャ手段をさらに備える、上記(14)に記載のサーバ。
(25)前記キャッシュ・マネージャ手段がさらに、前記同期論理をプリセットし、これを前記キャッシュ・メモリに記憶する手段を備える、上記(24)に記載のサーバ。
(26)識別情報がURLを含む、上記(14)に記載のサーバ。
(27)前記ネットワークがワールド・ワイド・ウェブ、同期サーバがプロキシ・サーバであり、前記クライアントが、ハンドへルド装置、多機能電話、および高機能ポケットベルからなるグループから選択される、上記(26)に記載のサーバ。
(28)前記ネットワークがワールド・ワイド・ウェブ、同期サーバがプロキシ・サーバであり、前記クライアントが、ハンドへルド装置、多機能電話、および高機能ポケットベルからなるグループから選択される、上記(13)に記載のサーバ。
(29)クライアントと前記クライアント上のデータのレプリカを記憶した遠隔ホスト・レプリカとの間でデータの同期を実行する同期サーバに接続するように適合されたクライアントにおいて、
中央処理装置(CPU)、および
前記CPUに結合され、前記CPU上で実行される実行可能コードを記憶したメモリ
を含み、前記コードが、
前記レプリカ・ホスト、ならびに前記クライアントおよび前記遠隔ホストに関連したデータ・タイプ特有のアプリケーションである同期論理を識別することを求める同期要求を同期サーバに伝達する同期イニシエータであって、前記同期論理が、ネットワーク上の、前記同期サーバおよび前記遠隔ホストに対して遠隔のどこにでも位置することができる同期イニシエータ、
前記同期イニシエータに結合され、前記遠隔ホストとの間で同期したデータを前記同期サーバを介してやりとりする同期ハンドラ論理、および
前記同期ハンドラに結合され、データ管理機能およびレプリカ管理機能の一方または両方を処理するデータ・マネージャ
を含むことを特徴とするクライアント。
(30)ハンドへルド・コンピュータ、多機能電話、および高機能ポケットベルからなるグループから選択され、前記ネットワークへの接続を確立する手段を備えた接続解除可能なハンドへルド装置である、上記(29)に記載のクライアント。
(31)前記データ管理機能が、データ項目の読取り、データ項目の書込み、データ項目の更新、およびデータ項目の削除のうちの1つまたは複数の機能を含む、上記(29)に記載のクライアント。
(32)前記遠隔レプリカ・ホストとの間で、バージョンおよび更新履歴情報を伝達する手段をさらに備える、上記(29)に記載のクライアント。
(33)前記同期要求がさらに、前記レプリカ・ホストおよび前記遠隔同期論理を識別するための情報を含む、上記(29)に記載のクライアント。
(34)前記同期要求が、前記レプリカ・ホストおよび前記同期論理を識別するための情報を記憶したディレクトリ・サービスのアドレスを含む、上記(29)に記載のクライアント。
(35)前記同期要求が、前記クライアントと前記遠隔ホストとの間でデータを変換する装置特有の変換コードを識別するための情報を含む、上記(29)に記載のクライアント。
(36)前記装置特有の変換コードが、前記ネットワーク上の遠隔地のどこにでも位置することができる、上記(35)に記載のクライアント。
(37)前記同期要求が、同期論理および前記クライアントと前記遠隔ホストとの間でデータを変換する装置特有の変換コードの一方または両方を識別するための情報を記憶したディレクトリ・サービスのアドレスを含む、上記(35)に記載のクライアント。
(38)イントラネットおよびインターネットの一方または両方に結合された接続解除可能なハンドへルド装置であって、前記データが、前記遠隔ホストから前記ハンドへルド装置に送られたウェブ・ページに含まれた画像を含み、前記ページを、前記ハンドへルド装置のメモリの制約の範囲内で前記ハンドへルド装置のスクリーンに表示させることができるように前記データが変換される、上記(35)に記載のクライアント。
(39)識別情報がURLを含む、上記(29)に記載のクライアント。
(40)前記要求が、前記メモリに記憶された1つまたは複数の同期サーバのネットワーク・アドレスを含み、1つの同期サーバ・アドレスが、デフォルトの同期サーバ・アドレスとして事前構成されている、上記(29)に記載のクライアント。
(41)前記要求が、ユーザID、暗号化されたパスワード、認証/許可のための共有秘密情報、装置タイプ、およびクライアントに関連したシステム・タイプのうちの1つまたは複数の要素からなるグループから選択された、クライアントまたはユーザについての識別情報を含む、上記(29)に記載のクライアント。
(42)前記同期イニシエータが、同期させる必要のあるアプリケーションのリストを決定するように適合され、前記アプリケーションが、住所録アプリケーション、メモ帳アプリケーション、予定表アプリケーションおよび電子メール・アプリケーションのうちの1つまたは複数のアプリケーションからなるグループから選択される、上記(29)に記載のクライアント。
(43)クライアントと前記クライアント上のデータのレプリカを記憶した遠隔ホスト・レプリカとの間でデータの変換を実行する適応同期サーバに接続するように適合されたクライアントにおいて、
中央処理装置(CPU)、および
前記CPUに結合され、前記CPU上で実行される実行可能コードを記憶したメモリを含み、前記コードが、
前記レプリカ・ホスト、および前記クライアントと前記遠隔ホストの間でデータを変換する装置特有の変換コードを識別することを求める要求を前記サーバに伝達する同期イニシエータであって、前記変換コードが、ネットワーク上の、前記同期サーバおよび前記遠隔ホストに対して遠隔のどこにでも位置することができる同期イニシエータ、
前記同期イニシエータに結合され、前記遠隔ホストとの間で変換されたデータを遠隔サーバを介してやりとりする同期ハンドラ論理、および
前記同期ハンドラに結合され、データ管理機能およびレプリカ管理機能の一方または両方を処理するデータ・マネージャ
を含むことを特徴とするクライアント。
(44)ハンドへルド・コンピュータ、多機能電話、および高機能ポケットベルからなるグループから選択され、前記ネットワークへの接続を確立する手段を備えた接続解除可能なハンドへルド装置である、上記(43)に記載のクライアント。
(45)前記同期要求がさらに、前記レプリカ・ホストおよび前記変換コードを識別するための情報を含む、上記(43)に記載のクライアント。
(46)前記同期要求が、前記レプリカ・ホストおよび前記変換コードを識別するための情報を記憶したディレクトリ・サービスのアドレスを含む、上記(43)に記載のクライアント。
(47)前記要求が、前記クライアントおよび前記遠隔ホストに関連したデータ・タイプ特有のアプリケーションである同期論理を識別するための情報を含む、上記(43)に記載のクライアント。
(48)前記同期論理が、ネットワーク上の、前記サーバおよび前記遠隔ホストに対して遠隔のどこにでも位置することができる、上記(47)に記載のクライアント。
(49)前記同期要求が、前記同期論理および前記装置特有の変換コードの一方または両方を識別するための情報を記憶したディレクトリ・サービスのアドレスを含む、上記(47)に記載のクライアント。
(50)イントラネットおよびインターネットの一方または両方に接続解除可能な形態で結合されたハンドへルド装置であって、前記データが、前記遠隔ホストから前記ハンドへルド装置に送られたウェブ・ページに含まれた画像を含み、前記ページを、前記ハンドへルド装置のメモリの制約の範囲内で前記ハンドへルド装置のスクリーンに表示させることができるように前記データが変換される、上記(47)に記載のクライアント。
(51)識別情報がURLを含む、上記(43)に記載のクライアント。
(52)前記要求が、前記メモリに記憶された1つまたは複数の同期サーバのネットワーク・アドレスを含み、1つの同期サーバ・アドレスが、デフォルトの同期サーバ・アドレスとして事前構成されている、上記(43)に記載のクライアント。
(53)前記要求が、ユーザID、暗号化されたパスワード、認証/許可のための共有秘密情報、装置タイプ、およびハンドへルド装置に関連したシステム・タイプのうちの1つまたは複数の要素からなるグループから選択された、クライアントまたはユーザについての識別情報を含む、上記(43)に記載のクライアント。
(54)前記同期イニシエータが、同期させる必要のあるアプリケーションのリストを決定するように適合され、前記アプリケーションが、住所録アプリケーション、メモ帳アプリケーション、予定表アプリケーションおよび電子メール・アプリケーションのうちの1つまたは複数のアプリケーションからなるグループから選択される、上記(47)に記載のクライアント。
(55)適応同期サーバにおいて、クライアントとクライアント上のデータのレプリカを記憶した遠隔ホスト・レプリカとの間でデータを適応同期させる方法であって、
レプリカ・ホストならびに前記クライアントおよび前記遠隔ホストに関連したデータ・タイプ特有のアプリケーションである同期論理を同期要求に応答して識別する段階であって、前記同期論理が、ネットワーク上の、前記同期サーバおよび前記遠隔ホストに対して遠隔のどこにでも位置することができる段階、
前記要求に基づいて前記ネットワークから遠隔同期論理を検索する段階、および
前記遠隔ホストに接続し、検索した同期論理を使用して前記クライアントと前記遠隔ホストの間でデータを同期させる段階
を含むことを特徴とする方法。
(56)前記レプリカ・ホストおよび前記遠隔同期論理を識別するための情報を含む同期要求を前記クライアントから受け取る段階をさらに含む、上記(55)に記載の方法。
(57)前記同期論理がさらに、矛盾を解消する段階、オーバライドの方向を指定する段階、およびアプリケーションの特定の要求を満たすためにアクションを起こす段階のうちの1つまたは複数の段階からなるグループから選択された段階を含む、上記(55)に記載の方法。
(58)前記同期要求が、前記レプリカ・ホストおよび前記同期論理を識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、前記方法がさらに、前記同期要求に応答して前記情報を検索する段階を含む、上記(55)に記載の方法。
(59)前記同期要求が、同期中に前記クライアントと前記遠隔ホストの間でデータを変換する装置特有の変換コードを識別するための情報を含み、前記方法がさらに、
前記情報に基づいて前記変換コードを検索する段階、および前記装置特有の変換コードに基づいて前記クライアントと前記遠隔ホストの間でデータを変換する手段を含む、
上記(55)に記載の方法。
(60)前記装置特有の変換コードが、前記ネットワーク上の遠隔地のどこにでも位置することができる、上記(59)に記載の方法。
(61)前記同期要求が、前記クライアントと前記遠隔ホストの間でデータを変換する前記装置特有の変換コードを識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、前記方法がさらに、
前記情報に基づいて遠隔変換コードを検索する段階、および
前記装置特有の変換コードに基づいて前記クライアントと前記遠隔ホストの間でデータを変換する段階
を含む、上記(59)に記載の方法。
(62)前記変換コードがさらに、CPUパワー、メモリ容量および物理構成のうちの1つまたは複数の要素が異なる、異なる計算装置で使用し処理するために、データをフィルタに掛ける段階、変換する段階、および変更する段階のうちの1つまたは複数の段階からなるグループから選択された段階を含む、上記(59)に記載の方法。
(63)サーバの計算負荷および計算容量を監視する段階、
前記計算負荷および前記計算容量を協働する同期サーバと共用する段階、および
前記サーバの計算負荷がしきい値を超えているときに、前記同期要求をより負荷の小さいサーバに振り替える段階
をさらに含む、上記(55)に記載の方法。
(64)前記ネットワークが、イントラネットおよびインターネットの一方または両方を含み、前記変換コードがさらに、前記遠隔ホストから前記ハンドへルド装置に送られたウェブ・ページに含まれた画像をフィルタに掛ける段階、および前記画像の解像度を変換する段階のうちの一方または両方の段階からなるグループから選択された段階を含み、これによって前記ページを、前記ハンドへルド装置のメモリの制約の範囲内で前記ハンドへルド装置のスクリーンに表示させることができる、上記(63)に記載の方法。
(65)前記同期論理を検索する段階、およびこれをキャッシュ・メモリに記憶する段階をさらに含む、上記(55)に記載の方法。
(66)前記同期論理をプリセットする段階、およびこれを前記キャッシュ・メモリに記憶する段階をさらに含む、上記(65)に記載の方法。
(67)識別情報がURLを含む、上記(55)に記載の方法。
(68)適応サーバにおいて、クライアントとクライアント上のデータのレプリカを記憶した遠隔ホスト・レプリカとの間でデータを変換する方法であって、
前記遠隔レプリカ・ホスト、ならびに前記遠隔ホスト上のデータを前記クライアントに関連した装置タイプのデータに変換する装置特有の変換論理コードを要求に応答して識別する段階であって、前記変換コードが、ネットワーク上の、前記同期サーバおよび前記遠隔ホストに対して遠隔のどこにでも位置することができる段階、
前記要求に応答して遠隔変換コードを検索する段階、および
前記装置特有の変換コードに基づいて前記クライアントと前記遠隔ホストの間でデータを変換する段階
を含むことを特徴とする方法。
(69)前記レプリカ・ホストおよび前記遠隔変換コードを識別するための情報を含む要求を前記クライアントから受け取る段階をさらに含む、上記(68)に記載の方法。
(70)前記要求が、前記レプリカ・ホストおよび前記変換コードを識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、前記方法がさらに、前記要求に応答して前記情報を検索する段階を含む、上記(68)に記載の方法。
(71)前記変換コードがさらに、CPUパワー、メモリ容量および物理構成のうちの1つまたは複数の要素が異なる、異なる計算装置で使用し処理するために、データをフィルタに掛ける段階、変換する段階、および変更する段階のうちの1つまたは複数の段階からなるグループから選択された段階を含む、上記(68)に記載の方法。
(72)前記変換コードがさらに、前記遠隔ホストから前記ハンドへルド装置に送られたウェブ・ページに含まれた画像をフィルタに掛ける段階、および前記画像の解像度を変換する段階のうちの一方または両方の段階からなるグループから選択された段階を含み、これによって前記ページを、前記ハンドへルド装置のメモリの制約の範囲内で前記ハンドへルド装置のスクリーンに表示させることができる、上記(68)に記載の方法。
(73)前記要求が、前記クライアントおよび前記遠隔ホストに関連したデータ・タイプ特有のアプリケーションである同期論理を同期要求に応答して識別するための情報を含み、前記方法がさらに、
前記同期論理を検索する段階、
前記情報に基づいて前記遠隔ホストに接続する段階、および
前記クライアントと前記遠隔ホストの間でデータを同期させる段階を含む、
上記(68)に記載の方法。
(74)前記同期論理がさらに、矛盾を解消する段階、オーバライドの方向を指定する段階、およびアプリケーションの特定の要求を満たすためにアクションを起こす段階のうちの1つまたは複数の段階からなるグループから選択された段階を含む、上記(73)に記載の方法。
(75)前記同期論理が、前記ネットワーク上の遠隔地のどこにでも位置することができる、上記(73)に記載の方法。
(76)前記要求が、前記同期論理を識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、前記方法がさらに、
前記情報に基づいて遠隔同期論理を検索する段階、および
前記同期論理に基づいて前記クライアントと前記遠隔ホストの間でデータを同期させる段階を含む、
上記(75)に記載の方法。
(77)サーバの計算負荷および計算容量を監視する段階、
前記計算負荷および前記計算容量を協働する同期サーバと共用する段階、および
前記サーバの計算負荷がしきい値を超えているときに、前記同期要求をより負荷の小さいサーバに振り替える段階
をさらに含む、上記(68)に記載の方法。
(78)前記同期論理を検索する段階、およびこれをキャッシュ・メモリに記憶する段階をさらに含む、上記(68)に記載の方法。
(79)前記同期論理をプリセットする段階、およびこれを前記キャッシュ・メモリに記憶する段階をさらに含む、上記(78)に記載の方法。
(80)識別情報がURLを含む、上記(68)に記載の方法。
(81)前記ネットワークがワールド・ワイド・ウェブ、同期サーバがプロキシ・サーバであり、前記クライアントが、ハンドへルド装置、多機能電話、および高機能ポケットベルからなるグループから選択される、上記(80)に記載の方法。
(82)前記ネットワークがワールド・ワイド・ウェブ、同期サーバがプロキシ・サーバであり、前記クライアントが、ハンドへルド装置、多機能電話、および高機能ポケットベルからなるグループから選択される、上記(68)に記載の方法。
(83)クライアントとクライアント上のデータのレプリカを記憶した遠隔ホスト・レプリカとの間でデータを適応同期させる手順を実行する、同期サーバによって実行可能な命令プログラムを記録したコンピュータ読み取り可能なプログラム記憶媒体において、前記手順が、
レプリカ・ホスト、ならびに前記クライアントおよび前記遠隔ホストに関連したデータ・タイプ特有のアプリケーションである同期論理を同期要求に応答して識別する手順であって、前記同期論理が、ネットワーク上の、前記同期サーバおよび前記遠隔ホストに対して遠隔のどこにでも位置することができる手順、
前記ネットワークから遠隔同期論理を検索する手順、および
前記遠隔ホストに接続し、検索した同期論理を使用して前記クライアントと前記遠隔ホストの間でデータを同期させる手順
を含むことを特徴とするプログラム記憶媒体。
(84)前記手順がさらに、前記レプリカ・ホストおよび前記遠隔同期論理を識別するための情報を含む同期要求を前記クライアントから受け取る手順を含む、上記(83)に記載のプログラム記憶媒体。
(85)前記同期論理がさらに、矛盾を解消する手順、オーバライドの方向を指定する手順、およびアプリケーションの特定の要求を満たすためにアクションを起こす手順のうちの1つまたは複数の手順からなるグループから選択された手順を含む、上記(83)に記載のプログラム記憶媒体。
(86)前記同期要求が、前記レプリカ・ホストおよび前記同期論理を識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、前記手順がさらに、前記同期要求に応答して前記情報を検索する手順を含む、上記(83)に記載のプログラム記憶媒体。
(87)前記同期要求が、同期中に前記クライアントと前記遠隔ホストの間でデータを変換する媒体特有の変換コードを識別するための情報を含み、前記手順がさらに、
前記情報に基づいて前記変換コードを検索する手順、および
前記媒体特有の変換コードに基づいて前記クライアントと前記遠隔ホストの間でデータを変換する手段を含む、
上記(83)に記載のプログラム記憶媒体。
(88)前記媒体特有の変換コードが、前記ネットワーク上の遠隔地のどこにでも位置することができる、上記(87)に記載のプログラム記憶媒体。
(89)前記同期要求が、前記クライアントと前記遠隔ホストの間でデータを変換する前記媒体特有の変換コードを識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、前記手順がさらに、
前記情報に基づいて遠隔変換コードを検索する手順、および
前記媒体特有の変換コードに基づいて前記クライアントと前記遠隔ホストの間でデータを変換する手順
を含む、上記(87)に記載のプログラム記憶媒体。
(90)前記変換コードがさらに、CPUパワー、メモリ容量および物理構成のうちの1つまたは複数の要素が異なる、異なる計算媒体で使用し処理するために、データをフィルタに掛ける手順、変換する手順、および変更する手順のうちの1つまたは複数の手順からなるグループから選択された手順を含む、上記(87)に記載のプログラム記憶媒体。
(91)前記手順がさらに、
サーバの計算負荷および計算容量を監視する手順、
前記計算負荷および前記計算容量を協働する同期サーバと共用する手順、および
前記サーバの計算負荷がしきい値を超えているときに、前記同期要求をより負荷の小さいサーバに振り替える手順
を含む、上記(87)に記載のプログラム記憶媒体。
(92)前記ネットワークが、イントラネットおよびインターネットの一方または両方を含み、前記変換コードがさらに、前記遠隔ホストから前記ハンドへルド媒体に送られたウェブ・ページに含まれた画像をフィルタに掛ける手順、および前記画像の解像度を変換する手順のうちの一方または両方の手順からなるグループから選択された手順を含み、これによって前記ページを、前記ハンドへルド媒体のメモリの制約の範囲内で前記ハンドへルド媒体のスクリーンに表示させることができる、上記(63)に記載のプログラム記憶媒体。
(93)前記手順がさらに、前記同期論理を検索する手順、およびこれをキャッシュ・メモリに記憶する手順を含む、上記(83)に記載のプログラム記憶媒体。
(94)前記手順がさらに、前記同期論理をプリセットする手順、およびこれを前記キャッシュ・メモリに記憶する手順を含む、上記(93)に記載のプログラム記憶媒体。
(95)識別情報がURLを含む、上記(83)に記載のプログラム記憶媒体。
(96)クライアントとクライアント上のデータのレプリカを記憶した遠隔ホスト・レプリカとの間でデータを適応変換する手順を実行する、同期サーバによって実行可能な命令プログラムを具現化したマシン可読のプログラム記憶媒体において、前記手順が、
前記レプリカ・ホスト、ならびに前記遠隔ホスト上のデータを前記クライアントに関連した媒体タイプのデータに変換する媒体特有の変換論理コードを要求に応答して識別する手順であって、前記変換コードが、ネットワーク上の、前記同期サーバおよび前記遠隔ホストに対して遠隔のどこにでも位置することができる手順、
遠隔変換コードを検索する手順、および
前記媒体特有の変換コードに基づいて前記クライアントと前記遠隔ホストの間でデータを変換する手順
を含むことを特徴とするプログラム記憶媒体。
(97)前記手順がさらに、前記レプリカ・ホストおよび前記遠隔変換コードを識別するための情報を含む要求を前記クライアントから受け取る手順を含む、上記(96)に記載のプログラム記憶媒体。
(98)前記要求が、前記レプリカ・ホストおよび前記変換コードを識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、前記手順がさらに、前記要求に応答して前記情報を検索する手順を含む、上記(96)に記載のプログラム記憶媒体。
(99)前記変換コードがさらに、CPUパワー、メモリ容量および物理構成のうちの1つまたは複数の要素が異なる、異なる計算媒体で使用し処理するために、データをフィルタに掛ける手順、変換する手順、および変更する手順のうちの1つまたは複数の手順からなるグループから選択された手順を含む、上記(96)に記載のプログラム記憶媒体。
(100)前記変換コードがさらに、前記遠隔ホストから前記ハンドへルド媒体に送られたウェブ・ページに含まれた画像をフィルタに掛ける手順、および前記画像の解像度を変換する手順のうちの一方または両方の手順からなるグループから選択された手順を含み、これによって前記ページを、前記ハンドへルド媒体のメモリの制約の範囲内で前記ハンドへルド媒体のスクリーンに表示させることができる、上記(96)に記載のプログラム記憶媒体。
(101)前記要求が、前記クライアントおよび前記遠隔ホストに関連したデータ・タイプ特有のアプリケーション同期論理を同期要求に応答して識別するための情報を含み、前記手順がさらに、
前記同期論理を検索する手順、
前記遠隔ホストに接続する手順、および
前記クライアントと前記遠隔ホストの間でデータを同期させる手順を含む、
上記(96)に記載のプログラム記憶媒体。
(102)前記同期論理がさらに、矛盾を解消する手順、オーバライドの方向を指定する手順、およびアプリケーションの特定の要求を満たすためにアクションを起こす手順のうちの1つまたは複数の手順からなるグループから選択された手順を含む、上記(101)に記載のプログラム記憶媒体。
(103)前記同期論理が、前記ネットワーク上の遠隔地のどこにでも位置することができる、上記(101)に記載のプログラム記憶媒体。
(104)前記要求が、前記同期論理を識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、前記手順がさらに、
前記情報に基づいて遠隔同期論理を検索する手順、および
前記同期論理に基づいて前記クライアントと前記遠隔ホストの間でデータを同期させる手順を含む、
上記(103)に記載のプログラム記憶媒体。
(105)前記手順がさらに、
サーバの計算負荷および計算容量を監視する手順、
前記計算負荷および前記計算容量を協働する同期サーバと共用する手順、および
前記サーバの計算負荷がしきい値を超えているときに、前記同期要求をより負荷の小さいサーバに振り替える手順
を含む、上記(96)に記載のプログラム記憶媒体。
(106)前記手順がさらに、前記変換コードを検索する手順、およびこれをキャッシュ・メモリに記憶する手順を含む、上記(96)に記載のプログラム記憶媒体。
(107)前記手順がさらに、前記変換コードをプリセットする手順、およびこれを前記キャッシュ・メモリに記憶する手順を含む、上記(106)に記載のプログラム記憶媒体。
(108)識別情報がURLを含む、上記(96)に記載のプログラム記憶媒体。
(109)前記ネットワークがワールド・ワイド・ウェブ、同期サーバがプロキシ・サーバであり、前記クライアントが、ハンドへルド媒体、多機能電話、および高機能ポケットベルからなるグループから選択される、上記(108)に記載のプログラム記憶媒体。
(110)前記ネットワークがワールド・ワイド・ウェブ、同期サーバがプロキシ・サーバであり、前記クライアントが、ハンドへルド媒体、多機能電話、および高機能ポケットベルからなるグループから選択される、上記(96)に記載のプログラム記憶媒体。
【図面の簡単な説明】
【図1】同期プロキシ方法のアーキテクチャの一例を示す図である。
【図2】本発明の特徴を有するハンドへルド装置として実装されたクライアントのアーキテクチャの一例を示す図である。
【図3】本発明の同期プロキシのアーキテクチャの一例を示す図である。
【図4】本発明のレプリカ・ホスト機能の一例を示す図である。
【図5】本発明のハンドへルド同期アクセプタ機能の一例を示す図である。
【図6】本発明のプロキシ同期アクセプタ機能の一例を示す図である。
【図7】本発明のハンドへルド同期ハンドラ機能の一例を示す図である。
【図8】本発明のプロキシ同期ハンドラ機能の一例を示す図である。
【図9】本発明のプロキシ・キャッシュ・マネージャ機能の一例を示す図である。
【図10】プロキシ同期ハンドラのデータ変換処理の一例を示す図である。
【図11】ホスト・レプリカ中のレプリカ・マネージャまたはハンドへルド装置中のデータ・マネージャの一例を示す図である。
【図12】本発明のレプリカ・アクセプタ機能の一例を示す図である。
【図13】本発明のプロキシ負荷マネージャ機能の一例を示す図である。
【符号の説明】
101 クライアント
102 クライアント
103 接続
104 接続
105 サーバ(同期プロキシ、同期サーバ、同期プロキシ・サーバ)
106 サーバ(同期プロキシ、同期サーバ、同期プロキシ・サーバ)
107 サーバ(同期プロキシ、同期サーバ、同期プロキシ・サーバ)
108 ネットワーク
109 レプリカ・ホスト
110 レプリカ・ホスト
111 レプリカ・ホスト
112 ディレクトリ・サーバ
120 同期論理
130 変換コード
201 CPU
202 記憶メモリ
203 メイン・メモリ
204 ハンドへルド装置論理
205 同期イニシエータ
206 同期ハンドラ
207 データ・マネージャ
301 CPU
302 記憶装置(ディスク)
303 メイン・メモリ
304 同期プロキシ論理
305 同期アクセプタ
306 同期ハンドラ
307 キャッシュ・マネージャ
308 負荷マネージャ
401 CPU
402 記憶装置(ディスク)
403 メイン・メモリ
404 レプリカ・ホスト論理
405 レプリカ・アクセプタ
406 レプリカ・マネージャ

Claims (42)

  1. クライアントとクライアント上のデータのレプリカを記憶した遠隔ホスト・レプリカとの間でデータを同期させる同期サーバであって、
    レプリカ・ホストならびに前記クライアントおよび前記遠隔ホストに関連したデータ・タイプ特有のアプリケーション同期論理を同期要求に応答して識別する同期アクセプタ論理であって、前記同期論理が、ネットワーク上の、前記同期サーバおよび前記遠隔ホストに対して遠隔のどこにでも位置することができる同期アクセプタ論理、および
    前記同期アクセプタ論理に結合され、前記ネットワークから遠隔同期論理を検索し、前記遠隔ホストに接続し、検索した同期論理を使用して前記クライアントと前記遠隔ホストの間でデータを同期させる同期ハンドラ論理
    を備えることを特徴とする同期サーバ。
  2. 前記同期アクセプタ論理がさらに、前記レプリカ・ホストおよび前記遠隔同期論理を識別するための情報を含む同期要求を前記クライアントから受け取る手段を備える、請求項1に記載のサーバ。
  3. 前記同期要求が、前記レプリカ・ホストおよび前記同期論理を識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、
    前記同期ハンドラ論理がさらに、前記同期要求に応答して前記情報を検索する手段を備える、
    請求項1に記載のサーバ。
  4. 前記同期要求が、同期中に前記クライアントと前記遠隔ホストの間でデータを変換する装置特有の変換コードを識別するための情報を含み、
    前記同期ハンドラ論理が、前記情報に基づいて前記変換コードを検索し、前記装置特有の変換コードに基づいて前記クライアントと前記遠隔ホストの間でデータを変換する手段を備える、
    請求項1に記載のサーバ。
  5. 前記装置特有の変換コードが、前記ネットワーク上の遠隔地のどこにでも位置することができる、請求項4に記載のサーバ。
  6. 前記同期要求が、前記クライアントと前記遠隔ホストの間でデータを変換する前記装置特有の変換コードを識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、
    前記同期ハンドラ論理が、前記情報に基づいて遠隔変換コードを検索し、前記装置特有の変換コードに基づいて前記クライアントと前記遠隔ホストの間でデータを変換する手段を備える、
    請求項4に記載のサーバ。
  7. 前記変換コードが、データをフィルタに掛ける手段、変換する手段、および変更する手段のうちの1つまたは複数の手段を備え、これによりデータを、CPUパワー、メモリ容量および物理構成のうちの1つまたは複数の要素が異なる、異なる計算装置で使用し処理することができる、請求項4に記載のサーバ。
  8. 前記アクセプタ論理に結合され、サーバの計算負荷および計算容量を監視し、前記計算負荷および前記計算容量を協働する同期サーバと共用する負荷マネージャをさらに備え、
    前記サーバの計算負荷がしきい値を超えているときに前記負荷マネージャが、前記同期要求をより負荷の小さいサーバに振り替える、
    請求項1に記載のサーバ。
  9. 前記同期ハンドラに結合され、前記同期論理を検索し、これをキャッシュ・メモリに記憶するキャッシュ・マネージャ手段をさらに備える、請求項1に記載のサーバ。
  10. 前記キャッシュ・マネージャ手段がさらに、前記同期論理をプリセットし、これを前記キャッシュ・メモリに記憶する手段を備える、請求項9に記載のサーバ。
  11. クライアントと前記クライアント上のデータのレプリカを記憶した遠隔ホスト・レプリカとの間でデータの同期を実行する同期サーバに接続するように適合されたクライアントであって、
    中央処理装置(CPU)、および
    前記CPUに結合され、前記CPU上で実行される実行可能コードを記憶したメモリ
    を含み、前記コードが、
    前記レプリカ・ホスト、ならびに前記クライアントおよび前記遠隔ホストに関連したデータ・タイプ特有のアプリケーションである同期論理を識別することを求める同期要求を同期サーバに伝達する同期イニシエータであって、前記同期論理が、ネットワーク上の、前記同期サーバおよび前記遠隔ホストに対して遠隔のどこにでも位置することができる同期イニシエータ、
    前記同期イニシエータに結合され、前記遠隔ホストとの間で同期したデータを前記同期サーバを介してやりとりする同期ハンドラ論理、および
    前記同期ハンドラに結合され、データ管理機能およびレプリカ管理機能の一方または両方を処理するデータ・マネージャ
    を含むことを特徴とするクライアント。
  12. ハンドへルド・コンピュータ、多機能電話、および高機能ポケットベルからなるグループから選択され、前記ネットワークへの接続を確立する手段を備えた接続解除可能なハンドへルド装置である、請求項11に記載のクライアント。
  13. 前記データ管理機能が、データ項目の読取り、データ項目の書込み、データ項目の更新、およびデータ項目の削除のうちの1つまたは複数の機能を含む、請求項11に記載のクライアント。
  14. 前記遠隔レプリカ・ホストとの間で、バージョンおよび更新履歴情報を伝達する手段をさらに備える、請求項11に記載のクライアント。
  15. 前記同期要求がさらに、前記レプリカ・ホストおよび前記遠隔同期論理を識別するための情報を含む、請求項11に記載のクライアント。
  16. 前記同期要求が、前記レプリカ・ホストおよび前記同期論理を識別するための情報を記憶したディレクトリ・サービスのアドレスを含む、請求項11に記載のクライアント。
  17. 前記同期要求が、前記クライアントと前記遠隔ホストとの間でデータを変換する装置特有の変換コードを識別するための情報を含む、請求項11に記載のクライアント。
  18. 前記装置特有の変換コードが、前記ネットワーク上の遠隔地のどこにでも位置することができる、請求項17に記載のクライアント。
  19. 前記同期要求が、同期論理および前記クライアントと前記遠隔ホストとの間でデータを変換する装置特有の変換コードの一方または両方を識別するための情報を記憶したディレクトリ・サービスのアドレスを含む、請求項17に記載のクライアント。
  20. イントラネットおよびインターネットの一方または両方に結合された接続解除可能なハンドへルド装置であって、前記データが、前記遠隔ホストから前記ハンドへルド装置に送られたウェブ・ページに含まれた画像を含み、前記ページを、前記ハンドへルド装置のメモリの制約の範囲内で前記ハンドへルド装置のスクリーンに表示させることができるように前記データが変換される、請求項17に記載のクライアント。
  21. 前記要求が、前記メモリに記憶された1つまたは複数の同期サーバのネットワーク・アドレスを含み、1つの同期サーバ・アドレスが、デフォルトの同期サーバ・アドレスとして事前構成されている、請求項11に記載のクライアント。
  22. 前記同期イニシエータが、同期させる必要のあるアプリケーションのリストを決定するように適合され、前記アプリケーションが、住所録アプリケーション、メモ帳アプリケーション、予定表アプリケーションおよび電子メール・アプリケーションのうちの1つまたは複数のアプリケーションからなるグループから選択される、請求項11に記載のクライアント。
  23. 同期サーバにおいて、クライアントとクライアント上のデータのレプリカを記憶した遠隔ホスト・レプリカとの間でデータを同期させる方法であって、
    レプリカ・ホストならびに前記クライアントおよび前記遠隔ホストに関連したデータ・タイプ特有のアプリケーションである同期論理を同期要求に応答して識別する段階であって、前記同期論理が、ネットワーク上の、前記同期サーバおよび前記遠隔ホストに対して遠隔のどこにでも位置することができる段階、
    前記要求に基づいて前記ネットワークから遠隔同期論理を検索する段階、および
    前記遠隔ホストに接続し、検索した同期論理を使用して前記クライアントと前記遠隔ホストの間でデータを同期させる段階
    を含むことを特徴とする方法。
  24. 前記レプリカ・ホストおよび前記遠隔同期論理を識別するための情報を含む同期要求を前記クライアントから受け取る段階をさらに含む、請求項23に記載の方法。
  25. 前記同期要求が、前記レプリカ・ホストおよび前記同期論理を識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、前記方法がさらに、前記同期要求に応答して前記情報を検索する段階を含む、請求項23に記載の方法。
  26. 前記同期要求が、同期中に前記クライアントと前記遠隔ホストの間でデータを変換する装置特有の変換コードを識別するための情報を含み、前記方法がさらに、
    前記情報に基づいて前記変換コードを検索する段階、および前記装置特有の変換コードに基づいて前記クライアントと前記遠隔ホストの間でデータを変換する手段を含む、
    請求項23に記載の方法。
  27. 前記装置特有の変換コードが、前記ネットワーク上の遠隔地のどこにでも位置することができる、請求項26に記載の方法。
  28. 前記同期要求が、前記クライアントと前記遠隔ホストの間でデータを変換する前記装置特有の変換コードを識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、前記方法がさらに、
    前記情報に基づいて遠隔変換コードを検索する段階、および
    前記装置特有の変換コードに基づいて前記クライアントと前記遠隔ホストの間でデータを変換する段階
    を含む、請求項26に記載の方法。
  29. 前記変換コードがさらに、CPUパワー、メモリ容量および物理構成のうちの1つまたは複数の要素が異なる、異なる計算装置で使用し処理するために、データをフィルタに掛ける段階、変換する段階、および変更する段階のうちの1つまたは複数の段階からなるグループから選択された段階を含む、請求項26に記載の方法。
  30. サーバの計算負荷および計算容量を監視する段階、
    前記計算負荷および前記計算容量を協働する同期サーバと共用する段階、および
    前記サーバの計算負荷がしきい値を超えているときに、前記同期要求をより負荷の小さいサーバに振り替える段階
    をさらに含む、請求項23に記載の方法。
  31. 前記同期論理を検索する段階、およびこれをキャッシュ・メモリに記憶する段階をさらに含む、請求項23に記載の方法。
  32. 前記同期論理をプリセットする段階、およびこれを前記キャッシュ・メモリに記憶する段階をさらに含む、請求項31に記載の方法。
  33. 同期サーバに、クライアントとクライアント上のデータのレプリカを記憶した遠隔ホスト・レプリカとの間でデータを同期させる手順を実行させるプログラムを記録した機械読み取り可能な記憶媒体において、該手順が、
    レプリカ・ホスト、ならびに前記クライアントおよび前記遠隔ホストに関連したデータ・タイプ特有のアプリケーションである同期論理を同期要求に応答して識別する手順であって、前記同期論理が、ネットワーク上の、前記同期サーバおよび前記遠隔ホストに対して遠隔のどこにでも位置することができる手順、
    前記ネットワークから遠隔同期論理を検索する手順、および
    前記遠隔ホストに接続し、検索した同期論理を使用して前記クライアントと前記遠隔ホストの間でデータを同期させる手順
    を含むことを特徴とするプログラム記憶媒体。
  34. 前記手順がさらに、前記レプリカ・ホストおよび前記遠隔同期論理を識別するための情報を含む同期要求を前記クライアントから受け取る手順を含む、請求項33に記載のプログラム記憶媒体。
  35. 前記同期要求が、前記レプリカ・ホストおよび前記同期論理を識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、前記手順がさらに、前記同期要求に応答して前記情報を検索する手順を含む、請求項33に記載のプログラム記憶媒体。
  36. 前記同期要求が、同期中に前記クライアントと前記遠隔ホストの間でデータを変換する媒体特有の変換コードを識別するための情報を含み、前記手順がさらに、
    前記情報に基づいて前記変換コードを検索する手順、および
    前記媒体特有の変換コードに基づいて前記クライアントと前記遠隔ホストの間でデータを変換する手段を含む、
    請求項33に記載のプログラム記憶媒体。
  37. 前記媒体特有の変換コードが、前記ネットワーク上の遠隔地のどこにでも位置することができる、請求項36に記載のプログラム記憶媒体。
  38. 前記同期要求が、前記クライアントと前記遠隔ホストの間でデータを変換する前記媒体特有の変換コードを識別するための情報を記憶したディレクトリ・サービスのアドレスを含み、前記手順がさらに、
    前記情報に基づいて遠隔変換コードを検索する手順、および
    前記媒体特有の変換コードに基づいて前記クライアントと前記遠隔ホストの間でデータを変換する手順
    を含む、請求項36に記載のプログラム記憶媒体。
  39. 前記変換コードがさらに、CPUパワー、メモリ容量および物理構成のうちの1つまたは複数の要素が異なる、異なる計算媒体で使用し処理するために、データをフィルタに掛ける手順、変換する手順、および変更する手順のうちの1つまたは複数の手順からなるグループから選択された手順を含む、請求項36に記載のプログラム記憶媒体。
  40. 前記手順がさらに、
    サーバの計算負荷および計算容量を監視する手順、
    前記計算負荷および前記計算容量を協働する同期サーバと共用する手順、および
    前記サーバの計算負荷がしきい値を超えているときに、前記同期要求をより負荷の小さいサーバに振り替える手順
    を含む、請求項36に記載のプログラム記憶媒体。
  41. 前記手順がさらに、前記同期論理を検索する手順、およびこれをキャッシュ・メモリに記憶する手順を含む、請求項33に記載のプログラム記憶媒体。
  42. 前記手順がさらに、前記同期論理をプリセットする手順、およびこれを前記キャッシュ・メモリに記憶する手順を含む、請求項41に記載のプログラム記憶媒体。
JP29104199A 1998-10-23 1999-10-13 サーバ、クライアント、適応同期方法、データ変換方法およびプログラム記憶媒体 Expired - Lifetime JP3574017B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/178,100 US6477543B1 (en) 1998-10-23 1998-10-23 Method, apparatus and program storage device for a client and adaptive synchronization and transformation server
US09/178100 1998-10-23

Publications (2)

Publication Number Publication Date
JP2000132444A JP2000132444A (ja) 2000-05-12
JP3574017B2 true JP3574017B2 (ja) 2004-10-06

Family

ID=22651194

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29104199A Expired - Lifetime JP3574017B2 (ja) 1998-10-23 1999-10-13 サーバ、クライアント、適応同期方法、データ変換方法およびプログラム記憶媒体

Country Status (9)

Country Link
US (1) US6477543B1 (ja)
EP (1) EP1014266B1 (ja)
JP (1) JP3574017B2 (ja)
KR (1) KR100343823B1 (ja)
CN (1) CN1210656C (ja)
AT (1) ATE385330T1 (ja)
DE (1) DE69938077T2 (ja)
ES (1) ES2297914T3 (ja)
TW (1) TW474077B (ja)

Families Citing this family (166)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8078727B2 (en) 1998-10-09 2011-12-13 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US7293107B1 (en) 1998-10-09 2007-11-06 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US8060656B2 (en) 1998-10-09 2011-11-15 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US7778260B2 (en) 1998-10-09 2010-08-17 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US6546425B1 (en) * 1998-10-09 2003-04-08 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US7673323B1 (en) 1998-10-28 2010-03-02 Bea Systems, Inc. System and method for maintaining security in a distributed computer network
US6678741B1 (en) * 1999-04-09 2004-01-13 Sun Microsystems, Inc. Method and apparatus for synchronizing firmware
AU4831500A (en) * 1999-05-10 2000-11-21 Andrew L. Di Rienzo Authentication
US7882247B2 (en) 1999-06-11 2011-02-01 Netmotion Wireless, Inc. Method and apparatus for providing secure connectivity in mobile and other intermittent computing environments
JP3963417B2 (ja) * 1999-11-19 2007-08-22 株式会社東芝 データ同期処理のための通信方法および電子機器
US20060235945A1 (en) * 2000-01-14 2006-10-19 Frietas Nathaniel X Software architecture for wireless data and method of operation thereof
US6671715B1 (en) * 2000-01-21 2003-12-30 Microstrategy, Inc. System and method for automatic, real-time delivery of personalized informational and transactional data to users via high throughput content delivery device
US7003571B1 (en) 2000-01-31 2006-02-21 Telecommunication Systems Corporation Of Maryland System and method for re-directing requests from browsers for communication over non-IP based networks
US8370435B1 (en) 2000-01-31 2013-02-05 Telecommunication Systems, Inc. System and method for servers to send alerts to connectionless devices
US6435164B1 (en) 2000-12-07 2002-08-20 Ford Global Technologies, Inc. Fuel weathering method for vehicle evaporative emission system
US6738766B2 (en) * 2000-02-02 2004-05-18 Doongo Technologies, Inc. Apparatus and methods for providing personalized application search results for wireless devices based on user profiles
US6842861B1 (en) * 2000-03-24 2005-01-11 Networks Associates Technology, Inc. Method and system for detecting viruses on handheld computers
US6671700B1 (en) * 2000-05-23 2003-12-30 Palm Source, Inc. Method and apparatus for parallel execution of conduits during simultaneous synchronization of databases
US6785868B1 (en) * 2000-05-31 2004-08-31 Palm Source, Inc. Method and apparatus for managing calendar information from a shared database and managing calendar information from multiple users
EP1350163B1 (en) * 2000-09-11 2017-05-03 iAnywhere Solutions, Inc. Method, system, and computer program product for synchronization of similar data objects with event information
ATE457570T1 (de) * 2000-09-12 2010-02-15 Motorola Inc Ad hoc telekommunikationsnetzwerkverwaltung und vermittlung
US7051069B2 (en) * 2000-09-28 2006-05-23 Bea Systems, Inc. System for managing logical process flow in an online environment
US6856999B2 (en) * 2000-10-02 2005-02-15 Microsoft Corporation Synchronizing a store with write generations
KR20020033275A (ko) * 2000-10-30 2002-05-06 정정호 로컬 단말기와 서버간에 데이터 파일을 동기화시키는동기화 푸시 서비스 방법 및 시스템
US7363388B2 (en) * 2001-03-28 2008-04-22 Siebel Systems, Inc. Method and system for direct server synchronization with a computing device
TWI220199B (en) * 2001-03-30 2004-08-11 Compal Electronics Inc Personal data assistant (PDA) using a remote server to process
US7613834B1 (en) * 2001-04-04 2009-11-03 Palmsource Inc. One-to-many device synchronization using downloaded/shared client software
US20030069848A1 (en) * 2001-04-06 2003-04-10 Larson Daniel S. A User interface for computer network management
WO2002082229A2 (en) * 2001-04-09 2002-10-17 America Online Incorporated Server-based browser system
US7499948B2 (en) 2001-04-16 2009-03-03 Bea Systems, Inc. System and method for web-based personalization and ecommerce management
DE10118827A1 (de) * 2001-04-17 2002-10-31 Bucko Software Gmbh Verfahren zum automatischen Abgleich einer Datenmenge sowie Versandlogistiksystem
US6981062B2 (en) * 2001-04-20 2005-12-27 Sbc Technology Resources, Inc. World wide web content synchronization between wireless devices
US20020169863A1 (en) * 2001-05-08 2002-11-14 Robert Beckwith Multi-client to multi-server simulation environment control system (JULEP)
US7392546B2 (en) 2001-06-11 2008-06-24 Bea Systems, Inc. System and method for server security and entitlement processing
US6883036B1 (en) * 2001-06-25 2005-04-19 Bellsouth Intellectual Property Corporation System and method for managing network directories
US7801941B2 (en) * 2001-07-09 2010-09-21 Palm, Inc. Apparatus and method for exchanging data between two devices
US7668535B2 (en) * 2001-07-09 2010-02-23 Palm, Inc. Notification infrastructure for sending device-specific wireless notifications
US20030014672A1 (en) * 2001-07-13 2003-01-16 Meera Desikamani Authentication protocol with dynamic secret
US7725584B1 (en) 2001-07-30 2010-05-25 Western Digital Ventures, Inc. Using multiple communication channels to synchronize a mobile terminal based on data type
US7275116B1 (en) 2001-07-30 2007-09-25 Western Digital Ventures, Inc. Mobile terminal synchronizing components of a document separately
US7962622B2 (en) 2001-08-07 2011-06-14 Motorola Mobility, Inc. System and method for providing provisioning and upgrade services for a wireless device
US7743119B2 (en) * 2001-08-07 2010-06-22 Motorola, Inc. System and method for mapping identification codes
US7243163B1 (en) 2001-08-07 2007-07-10 Good Technology, Inc. System and method for full wireless synchronization of a data processing apparatus with a messaging system
US7596565B2 (en) * 2001-08-07 2009-09-29 Good Technology System and method for maintaining wireless file folders at a wireless device
US20030033351A1 (en) * 2001-08-10 2003-02-13 Aleta Ricciardi Group proxy and method for grouping services in a distributed computing application
US20030061106A1 (en) * 2001-09-21 2003-03-27 Sunday Orhomuru Data transfer or transfer of data using wireless mobile phone and any other wireless mobile devices
US7415539B2 (en) * 2001-09-28 2008-08-19 Siebel Systems, Inc. Method and apparatus for detecting insufficient memory for data extraction processes
US7526575B2 (en) * 2001-09-28 2009-04-28 Siebel Systems, Inc. Method and system for client-based operations in server synchronization with a computing device
US7761535B2 (en) * 2001-09-28 2010-07-20 Siebel Systems, Inc. Method and system for server synchronization with a computing device
US7257649B2 (en) * 2001-09-28 2007-08-14 Siebel Systems, Inc. Method and system for transferring information during server synchronization with a computing device
US8046343B2 (en) * 2001-09-29 2011-10-25 Siebel Systems, Inc. Computing system and method for automatic completion of pick field
US20030115292A1 (en) * 2001-10-24 2003-06-19 Griffin Philip B. System and method for delegated administration
US7149805B2 (en) * 2001-10-31 2006-12-12 Hewlett-Packard Development, L.P. Wireless trusted point of access to a computer network
FI112015B (fi) 2001-11-12 2003-10-15 Nokia Corp Datan synkronoinnin järjestäminen tietoliikennejärjestelmässä
US7350226B2 (en) 2001-12-13 2008-03-25 Bea Systems, Inc. System and method for analyzing security policies in a distributed computer network
US7054910B1 (en) * 2001-12-20 2006-05-30 Emc Corporation Data replication facility for distributed computing environments
US8799464B2 (en) * 2001-12-28 2014-08-05 Motorola Mobility Llc Multi-modal communication using a session specific proxy server
KR20030068624A (ko) * 2002-02-15 2003-08-25 홍정기 인터넷망을 기반으로 하는 클라이언트 정보 동기화 방법
JP3585468B2 (ja) * 2002-02-28 2004-11-04 株式会社コナミコンピュータエンタテインメント東京 ゲーム装置、プログラム及びゲーム装置の制御方法
US20080228904A1 (en) * 2002-03-20 2008-09-18 Daniel Crespo-Dubie Home Gateway Architecture and State Based Distributed System and Method
US20030191750A1 (en) * 2002-04-04 2003-10-09 Mayel Espino Method, system and computer program product for lightweight directory access protocol applications
US20030191748A1 (en) * 2002-04-04 2003-10-09 Mayel Espino Method, device and computer program product including a lightweight directory access protocol client architecture
US7783593B2 (en) * 2002-04-04 2010-08-24 Verizon Business Global Llc Method, device and computer program product including a lightweight directory access protocol client
EP2309411A3 (en) * 2002-04-23 2011-06-15 Panasonic Corporation Method and system for controlled distribution of software programs
US7447799B2 (en) 2002-04-24 2008-11-04 Good Technology, Inc. System and method for automatically updating a wireless device
US7725560B2 (en) * 2002-05-01 2010-05-25 Bea Systems Inc. Web service-enabled portlet wizard
US9813514B2 (en) 2002-06-12 2017-11-07 Good Technology Holdings Limited Information repository system including a wireless device and related method
US8516034B1 (en) 2002-07-08 2013-08-20 Good Technology Software, Inc System and method for modifying application behavior based on network bandwidth
US20040015537A1 (en) * 2002-07-15 2004-01-22 Richard Doerksen Handheld client framework system
GB2392800A (en) * 2002-09-04 2004-03-10 Matchtip Ltd Backup system for data stored in remote data storage systems
US20040230670A1 (en) * 2002-11-25 2004-11-18 Markus Schmidt-Karaca Method and system for representing, configuring and deploying distributed applications
DE60221673T2 (de) * 2002-11-25 2008-04-30 T-Mobile Deutschland Gmbh Verfahren und System zur Vereinfachung des Zugriffs auf ein Email-Konto über ein Mobilfunknetz
US7035879B2 (en) * 2002-12-26 2006-04-25 Hon Hai Precision Ind. Co., Ltd. System and method for synchronizing data of wireless devices
US7243158B1 (en) * 2003-01-28 2007-07-10 Thomas Gutchigian Method, system and computer program for identification of data and translation of data between storage locations
US20050021371A1 (en) * 2003-01-31 2005-01-27 Basone Michael A. System for facilitating weight control incorporating hand-held computing device
FR2850814A1 (fr) * 2003-02-03 2004-08-06 France Telecom Systeme et procede de synchronisation de donnees entre des portails de services et plate-forme d'acces a des services utilisant un tel systeme de synchronisation
US7653930B2 (en) 2003-02-14 2010-01-26 Bea Systems, Inc. Method for role and resource policy management optimization
US7591000B2 (en) 2003-02-14 2009-09-15 Oracle International Corporation System and method for hierarchical role-based entitlements
US8831966B2 (en) 2003-02-14 2014-09-09 Oracle International Corporation Method for delegated administration
US7562298B2 (en) 2003-02-20 2009-07-14 Bea Systems, Inc. Virtual content repository browser
US7415478B2 (en) 2003-02-20 2008-08-19 Bea Systems, Inc. Virtual repository complex content model
US7293286B2 (en) 2003-02-20 2007-11-06 Bea Systems, Inc. Federated management of content repositories
US7840614B2 (en) 2003-02-20 2010-11-23 Bea Systems, Inc. Virtual content repository application program interface
US20040167880A1 (en) * 2003-02-20 2004-08-26 Bea Systems, Inc. System and method for searching a virtual repository content
US7483904B2 (en) 2003-02-20 2009-01-27 Bea Systems, Inc. Virtual repository content model
US20040172622A1 (en) * 2003-02-28 2004-09-02 Nokia Inc. Systems, methods and computer program products for performing a task in a software application
US7810036B2 (en) 2003-02-28 2010-10-05 Bea Systems, Inc. Systems and methods for personalizing a portal
US7562353B2 (en) * 2003-05-16 2009-07-14 Hewlett-Packard Development Company, L.P. Methods and systems for transforming Java applications of behalf of another device
US8161116B2 (en) * 2003-05-23 2012-04-17 Kirusa, Inc. Method and system for communicating a data file over a network
US7370051B2 (en) * 2003-06-24 2008-05-06 Microsoft Corporation Database driven type extensibility
US20050010646A1 (en) * 2003-07-08 2005-01-13 Toshio Shiina E-mail management server, attachment file output system, attachment file output method, recording medium, and program data signal
US7636776B2 (en) * 2003-07-31 2009-12-22 Microsoft Corporation Systems and methods for synchronizing with multiple data stores
US8166101B2 (en) 2003-08-21 2012-04-24 Microsoft Corporation Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system
US8131739B2 (en) * 2003-08-21 2012-03-06 Microsoft Corporation Systems and methods for interfacing application programs with an item-based storage platform
US8238696B2 (en) 2003-08-21 2012-08-07 Microsoft Corporation Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system
US20050097186A1 (en) * 2003-10-08 2005-05-05 International Business Machines Corporation Method, system, and computer program product for managing interaction between remote devices and server resources
US20070180127A1 (en) * 2003-11-11 2007-08-02 Nokia Corporation Preconfigured syncml profile categories
JP2005157712A (ja) * 2003-11-26 2005-06-16 Hitachi Ltd リモートコピーネットワーク
US20050193326A1 (en) * 2004-02-26 2005-09-01 International Business Machines Corporation Tool for configuring available functions of an application
US20050192922A1 (en) * 2004-02-27 2005-09-01 Edlund Stefan B. Client-server computing system capable of validating cached data based on data transformation
US20060161778A1 (en) * 2004-03-29 2006-07-20 Nokia Corporation Distinguishing between devices of different types in a wireless local area network (WLAN)
US7774601B2 (en) * 2004-04-06 2010-08-10 Bea Systems, Inc. Method for delegated administration
US20050251503A1 (en) * 2004-04-13 2005-11-10 Bea Systems, Inc. System and method for content and schema versioning
US20060041558A1 (en) * 2004-04-13 2006-02-23 Mccauley Rodney System and method for content versioning
US7236989B2 (en) * 2004-04-13 2007-06-26 Bea Systems, Inc. System and method for providing lifecycles for custom content in a virtual content repository
US20050235279A1 (en) * 2004-04-14 2005-10-20 Heng-Chien Chen Method of updating software in a host-client network
US20050256899A1 (en) * 2004-05-14 2005-11-17 Bea Systems, Inc. System and method for representing hierarchical data structures
US20050256906A1 (en) * 2004-05-14 2005-11-17 Bea Systems, Inc. Interface for portal and webserver administration-efficient updates
US7761439B1 (en) * 2004-06-30 2010-07-20 Google Inc. Systems and methods for performing a directory search
US7506006B2 (en) 2004-09-03 2009-03-17 Microsoft Corporation Synchronization for smart clients
US7558783B2 (en) * 2004-09-03 2009-07-07 Microsoft Corporation Conversion between application objects and smart client objects
US20060075100A1 (en) * 2004-09-28 2006-04-06 Nokia Corporation System, device, software and method for providing enhanced UPnP support on devices
US7783670B2 (en) * 2004-11-18 2010-08-24 Bea Systems, Inc. Client server conversion for representing hierarchical data structures
EP1667021A1 (de) * 2004-12-03 2006-06-07 Jerry Muse Woldeab Datensicherungsverfahren für ein Kommunikationsgerät
US7587596B2 (en) * 2005-02-24 2009-09-08 International Business Machines Corporation Method and apparatus for updating information stored in multiple information handling systems
CN100352231C (zh) * 2005-04-11 2007-11-28 深圳市天路软件开发有限公司 异地数据同步的传输方法及系统
EP1889918B1 (en) * 2005-05-02 2011-04-06 Oji Paper Co., Ltd. Analysis apparatus and analysis method for glycosylated hemoglobin
US7493351B2 (en) * 2005-05-05 2009-02-17 International Business Machines Corporation Rapid integration mechanism for directory based applications
US20060277282A1 (en) * 2005-06-02 2006-12-07 International Business Machines Corporation Federated scheduling method and system
US20070014243A1 (en) * 2005-07-14 2007-01-18 Yahoo! Inc. System and method for provisioning a user device
US20070033086A1 (en) * 2005-08-04 2007-02-08 International Business Machines Corporation System and method for interacting with participants of a future event
US8473971B2 (en) 2005-09-06 2013-06-25 Microsoft Corporation Type inference and type-directed late binding
US7818344B2 (en) 2005-09-26 2010-10-19 Bea Systems, Inc. System and method for providing nested types for content management
US7953734B2 (en) 2005-09-26 2011-05-31 Oracle International Corporation System and method for providing SPI extensions for content management system
US7752205B2 (en) 2005-09-26 2010-07-06 Bea Systems, Inc. Method and system for interacting with a virtual content repository
US7917537B2 (en) 2005-09-26 2011-03-29 Oracle International Corporation System and method for providing link property types for content management
EP1770954A1 (en) * 2005-10-03 2007-04-04 Amadeus S.A.S. System and method to maintain coherence of cache contents in a multi-tier software system aimed at interfacing large databases
US7844251B2 (en) * 2005-10-12 2010-11-30 Qualcomm Incorporated Peer-to-peer distributed backup system for mobile devices
US20070100843A1 (en) * 2005-10-20 2007-05-03 Chen Daniel Q System and method for mapping between different information management systems
US8015319B2 (en) * 2005-10-27 2011-09-06 Huawei Technologies Co., Ltd. Method, system, client and server for implementing data sync
US7464117B2 (en) * 2006-01-20 2008-12-09 Microsoft Corporation Using directory historical data to facilitate automated file updates
US7620392B1 (en) 2006-02-27 2009-11-17 Good Technology, Inc. Method and system for distributing and updating software in wireless devices
US7890646B2 (en) * 2006-04-27 2011-02-15 Microsoft Corporation Synchronization orchestration
US7792792B2 (en) * 2006-05-22 2010-09-07 Microsoft Corporation Synchronizing structured web site contents
US8745106B2 (en) * 2006-08-30 2014-06-03 Red Hat, Inc. Numeric identifier assignment in a networked computer environment
US7861290B2 (en) * 2006-09-22 2010-12-28 Oracle International Corporation Non-invasive insertion of pagelets
US8463852B2 (en) 2006-10-06 2013-06-11 Oracle International Corporation Groupware portlets for integrating a portal with groupware systems
US7627595B2 (en) * 2006-12-06 2009-12-01 Verizon Data Services Inc. Apparatus, method, and computer program product for synchronizing data sources
US8005903B2 (en) * 2006-12-13 2011-08-23 International Business Machines Corporation Method and apparatus for managing locally stored E-mail messages
JP4789819B2 (ja) * 2007-01-31 2011-10-12 株式会社日立製作所 アプリケーションとデータの管理方法、管理システム、それに用いられるシンクライアント端末、管理サーバ、および、リモート計算機
ES2330816B1 (es) * 2007-04-18 2010-09-27 Comercial De Canalizaciones Y Maquinaria, S.L. Sistema de proteccion antifuego.
US8060653B2 (en) * 2007-04-23 2011-11-15 Ianywhere Solutions, Inc. Background synchronization
US20080320453A1 (en) * 2007-06-21 2008-12-25 Microsoft Corporation Type inference and late binding
US10671600B1 (en) 2007-07-24 2020-06-02 Avaya Inc. Communications-enabled dynamic social network routing utilizing presence
US8478880B2 (en) * 2007-08-31 2013-07-02 Palm, Inc. Device profile-based media management
US20090157615A1 (en) * 2007-12-18 2009-06-18 General Motors Corporation Synching online address book sources for a vehicle user
US8274935B2 (en) * 2008-02-11 2012-09-25 Amdocs Software Systems Limited Mobile communication device notifier
US7747784B2 (en) 2008-03-04 2010-06-29 Apple Inc. Data synchronization protocol
US7991740B2 (en) 2008-03-04 2011-08-02 Apple Inc. Synchronization server process
US20090228542A1 (en) * 2008-03-06 2009-09-10 Microsoft Corporation Occasionally-connected support through off-line service-supplied proxies
US8112537B2 (en) 2008-09-29 2012-02-07 Apple Inc. Trickle sync protocol
US8572591B2 (en) * 2010-06-15 2013-10-29 Microsoft Corporation Dynamic adaptive programming
KR101824647B1 (ko) * 2010-10-12 2018-02-02 삼성전자주식회사 디바이스간 동기화 방법, 유저 디바이스, 및 컴퓨터로 읽을 수 있는 저장 매체
US9146936B2 (en) 2011-01-24 2015-09-29 Cox Communications, Inc. Systems and methods for automatically synchronizing data using a mobile communications device
KR101249719B1 (ko) * 2011-05-04 2013-04-03 주식회사 인프라웨어테크놀러지 어플리케이션 클론 실행 방법, 컴퓨터로 판독가능한 기록매체, 및 이를 지원하는 클론단말
US9256401B2 (en) 2011-05-31 2016-02-09 Microsoft Technology Licensing, Llc Editor visualization of symbolic relationships
JP5817348B2 (ja) 2011-08-31 2015-11-18 富士通株式会社 ファイル同期方法、ファイル同期サーバ装置及びファイル同期プログラム
CN102999491B (zh) * 2011-09-08 2018-02-23 百度在线网络技术(北京)有限公司 一种用于实现用户设备间浏览器操作同步的方法与设备
US9160697B2 (en) 2012-01-01 2015-10-13 Qualcomm Incorporated Data delivery optimization
EP3296868A1 (en) 2012-06-06 2018-03-21 Huawei Device (Dongguan) Co., Ltd. Application management method and terminal
CN103905498B (zh) * 2012-12-27 2018-05-18 鼎捷软件股份有限公司 服务信息管理方法及服务信息管理系统
CN103747008A (zh) * 2014-01-22 2014-04-23 李南南 一种具有加密功能的互联网存储设备及其技术
WO2016070374A1 (zh) * 2014-11-06 2016-05-12 北京安奇智联科技有限公司 移动终端和web终端之间互连及同步通讯信息的方法
WO2017105882A1 (en) * 2015-12-17 2017-06-22 SpringAhead, Inc. Dynamic data normalitzation and duplicate analysis
CA3159276A1 (en) * 2018-04-10 2019-10-17 Huawei Technologies Co., Ltd. Point-to-point database synchronization over a transport protocol
CN110413418B (zh) * 2019-06-25 2022-04-05 北京三快在线科技有限公司 缓存同步装置及方法,缓存同步系统、电子设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2048306A1 (en) * 1990-10-02 1992-04-03 Steven P. Miller Distributed configuration profile for computing system
US5434994A (en) * 1994-05-23 1995-07-18 International Business Machines Corporation System and method for maintaining replicated data coherency in a data processing system
US5729735A (en) * 1995-02-08 1998-03-17 Meyering; Samuel C. Remote database file synchronizer
US5757669A (en) * 1995-05-31 1998-05-26 Netscape Communications Corporation Method and apparatus for workgroup information replication
CA2227432C (en) * 1995-07-20 2001-05-22 Novell, Inc. Transaction synchronization in a disconnectable computer and network
US5884323A (en) * 1995-10-13 1999-03-16 3Com Corporation Extendible method and apparatus for synchronizing files on two different computer systems
US5884324A (en) * 1996-07-23 1999-03-16 International Business Machines Corporation Agent for replicating data based on a client defined replication period
US6044381A (en) * 1997-09-11 2000-03-28 Puma Technology, Inc. Using distributed history files in synchronizing databases
US5943676A (en) * 1996-11-13 1999-08-24 Puma Technology, Inc. Synchronization of recurring records in incompatible databases
CN1141846C (zh) * 1997-05-09 2004-03-10 美国阿尔卡塔尔资源有限合伙公司 服务控制点的数据库迁移

Also Published As

Publication number Publication date
EP1014266B1 (en) 2008-01-30
EP1014266A2 (en) 2000-06-28
ES2297914T3 (es) 2008-05-01
DE69938077T2 (de) 2009-01-22
ATE385330T1 (de) 2008-02-15
KR100343823B1 (ko) 2002-07-19
CN1210656C (zh) 2005-07-13
EP1014266A3 (en) 2007-04-11
TW474077B (en) 2002-01-21
DE69938077D1 (de) 2008-03-20
KR20000028677A (ko) 2000-05-25
CN1252565A (zh) 2000-05-10
JP2000132444A (ja) 2000-05-12
US6477543B1 (en) 2002-11-05

Similar Documents

Publication Publication Date Title
JP3574017B2 (ja) サーバ、クライアント、適応同期方法、データ変換方法およびプログラム記憶媒体
JP4757384B2 (ja) ネットワークにおいて遠隔データベースを更新するためのシステムおよび方法
US7240091B1 (en) Method and system for supporting off-line mode of operation and synchronization
JP3532854B2 (ja) ネットワーク全体にわたって電子メールを同期させるシステムおよび方法
JP3967806B2 (ja) リソースの位置を指名するためのコンピュータ化された方法及びリソース指名機構
US8620926B2 (en) Using a hashing mechanism to select data entries in a directory for use with requested operations
US9736017B2 (en) Server-side protocol configuration of accessing clients
US20030018740A1 (en) Contents sharing system and software program executed by devices of the system
US20030037097A1 (en) Accessing information content
US20030101267A1 (en) Peer-to-peer caching network
US7711804B2 (en) Methods and devices for the asynchronous delivery of digital data
US20110191771A1 (en) Feature Manager System for Facilitating Communication and Shared Functionality Among Components
WO2004066362A2 (en) System and method for sharing objects among two or more electronic devices
JPH08307451A (ja) データ伝送システム及び方法
KR100556716B1 (ko) 네트워크를 통해 서로 연결된 복수개의 단말들 간의 분산정보 공유 방법 및 시스템
JP2003140956A (ja) ファイル共有プロキシシステム及びファイル共有制御方法
JP2003251897A (ja) ユーザ位置特定機能を有する画像形成装置及び情報処理システム
JP4950389B2 (ja) ネットワークベースのアプリケーション、それを処理するためのアーキテクチャ及びシステム、ならびにそれを実行するための方法
Botía et al. Creating and optimizing client-server applications on mobile devices
JP2002169741A (ja) 端末入力関連情報提供装置、及び端末入力関連情報提供プログラムを記録した記録媒体
JP2004151799A (ja) リクエスト転送方法
JPH06259363A (ja) 処理実行システムおよび処理実行方法
KR19990047341A (ko) 세션 캐시의 적중률을 높이기 위한 클라이언트와 서버의 연결방법

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040622

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040630

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 3574017

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070709

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080709

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080709

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090709

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100709

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110709

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110709

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120709

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130709

Year of fee payment: 9

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term