JP5294867B2 - データ同期を実行する方法、システム、クライアントおよびサーバ - Google Patents

データ同期を実行する方法、システム、クライアントおよびサーバ Download PDF

Info

Publication number
JP5294867B2
JP5294867B2 JP2008536915A JP2008536915A JP5294867B2 JP 5294867 B2 JP5294867 B2 JP 5294867B2 JP 2008536915 A JP2008536915 A JP 2008536915A JP 2008536915 A JP2008536915 A JP 2008536915A JP 5294867 B2 JP5294867 B2 JP 5294867B2
Authority
JP
Japan
Prior art keywords
synchronization
address
folder
command
node
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.)
Active
Application number
JP2008536915A
Other languages
English (en)
Other versions
JP2009514074A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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
Priority claimed from CN 200510116802 external-priority patent/CN1794724A/zh
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2009514074A publication Critical patent/JP2009514074A/ja
Application granted granted Critical
Publication of JP5294867B2 publication Critical patent/JP5294867B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Small-Scale Networks (AREA)

Description

本発明は、オープン・モバイル・アライアンス(Open Mobile Alliance、OMA)によって規定された同期マークアップ言語(Synchronization Markup Language、SyncML)のデータ同期(data sync)の規格の分野に関し、特に、SyncMLプロトコルに基づいてデータ同期を実行する方法、システム、クライアントおよびサーバに関する。
複数のプラットホームおよびネットワーク間で個人の情報および企業のデータをデータ同期する標準規格を制定するために、OMAはSyncMLデータ同期規格を提案している。SyncML開発の目的は、任意の端末装置を使用してどこでもいつでも任意のネットワークのデータにアクセスできるようにするために、端末ユーザ、装置開発事業者、基本コンポーネント開発事業者、データ提供事業者間の共同作業を可能にすることにある。代表的なシナリオは、移動装置/アプリケーションサーバとネットワークサーバとの間のデータ同期である。これに加えて、SyncMLは、2つのパソコン(PC)間のデータ同期など、ピア・ツー・ピアのデータ同期に使用することもできる。
図1は、SyncML規格に基づくデータ同期を示す概略図である。データ同期の開始フェーズにおいてパラメータを取り決め(negotiate)た後、クライアントおよびサーバは、両者間でデータが同期していることを保証するために、変更のあったデータを相互に送信し合う。
データ同期クライアント(Data Synchronization Client、DSクライアント)とは、一般に、PCソフトウェア、移動電話機または携帯情報端末(Personal Digital Assistant、PDA)など、インテリジェントな端末のことである。住所録、カレンダー、メモ帳、ショートメッセージ、電子メールなど、ユーザデータを格納するために、装置中にクライアントデータベースが構成される。これら全てのデータの形式は標準規格で規定されており、DSクライアントは、データを標準形式に変換し、変換されたデータを、データを処理してデータベース中に格納するDSサーバに送信することができる。
DSサーバは同期コマンドを含む同期メッセージをDSクライアントから受信してもよく、また同期メッセージをDSクライアントに返信してもよい。DSサーバはネットワークサーバまたはPCであってもよい。DSサーバのデータを格納するために、DSサーバ中にサーバデータベースが構成される。
データ識別子がDSクライアントおよびDSサーバの両方に格納される。DSクライアントはローカルな一意性識別子(Local Unique Identifier、LUID)をデータ識別子として使用し、一方、DSサーバはグローバルな一意性識別子(Global Unique Identifier、GUID)をデータ識別子として使用する。
図2は、DSクライアントおよびDSサーバのデータ蓄積装置を示す概略図である。図2に示すように、DSクライアントにおいては種々のLUIDとデータとの間の対応関係のみを保持すればよいが、DSサーバにおいては、種々のGUIDとデータとの間の対応関係のみならず、種々のGUIDとLUIDとの間の対応関係をも保持する必要がある。表1に示すように、複数のデータ同期のタイプが存在する。
さらに、SyncML規格に規定されたデータ同期手順は、通常、3つのフェーズを含む。
1.同期開始フェーズであり、このフェーズでは、認証、同期対象である同期データベースの折衝、同期ケーパビリティ(どのデータ形式および同期タイプをクライアントおよび/またはサーバがサポートするかを含む)の折衝が主であり、またそのような折衝の手順が複数回実行されねばならない場合もある。
2.同期フェーズであり、主に、DSクライアントおよびDSサーバのうちの一方が他の一方へ、データ状態の変更に従う操作コマンドを介して変更のあったデータを送信すること、および他の一方が、そのデータを用いてデータ同期の目的を果たすべくそれ自身のデータを更新するために、操作コマンド(例えば、更新、削除、または追加の操作コマンド)を実行することを含む。
3.同期完成フェーズであり、主に、DSクライアントおよびDSサーバが、同期の完成を相互に確認することを含む。
従来技術では、フォルダおよびファイルの蓄積のやり方はデータについて定義されており、それはPCにおけるフォルダおよびファイルに基づく木構造をシミュレートする。論理的または物理的に階層関係を有するデータについては、そのデータは少なくとも1つのノードを含む木構造で表現することができ、その各ノードはフォルダノード(フォルダ項目とも言う)または項目ノード(データ項目とも言う)であってよい。しかし、従来技術では、内容またはサブ木(sub-tree)を有する特定ノードを要求に従って同期化することはできない。さらに、グループ別の住所録を同期化する方法はvCard中のグループフィールドを基にフィルタ技術を使用して実行されるが、その欠点は、同期プロトコルが、全データ形式に一般的でない特定のデータ形式と緊密に結びついていることであり、そのため内容または木構造中のサブ木を有する特定ノードは要求通りに同期化されない場合がある。
しかしながら、今日では、論理的または物理的に階層関係を有する実際の木構造として蓄積された、同期を必要とする大量のデータが存在する。例えば、住所録、カテゴリ分けされたショートメッセージおよびメールボックスで構成された電子メールなど、フォルダによって木構造状に構成され、ユーザの携帯電話機中に論理的または物理的に存在するデータもある。さらに、カレンダーまたは添付ファイル付き電子メールも、階層的なやり方で構成されると考えられよう。従来技術に従えば、ユーザは、データベースの一部ではなく、データベース全体を同期化できるのみである。ショートメッセージを例にとると、ユーザはショートメッセージのデータベース全体を同期化できるのみであり、ショートメッセージの“bless”という名の1カテゴリだけを同期して、“joke”という名の別カテゴリを今回は同期しないでおくことはできない。カレンダー/電子メールの外部に格納される添付文書については、それら添付文書を同期化することはできず、添付文書とカレンダーまたは電子メールとの階層関係は従来技術では記述できない。それと同時に、1つのデータ項目が2つのカテゴリ中に存在することを実現することはできない。例えば、Zhang Sanは、住所録において同時に、「大学グループ」および「友人グループ」のグループに属するのにである。
まとめると、既存のデータ同期技術は現実の要求を満足させることができず、特に、1つのデータ項目を階層的に考えることまたは階層構造中の任意のノードレベルのデータ同期をサポートすることができない。
本発明の一実施形態は、複数の装置を同期化する方法を開示し、本方法は、第2装置の複数の情報ノードからなる情報ノードの拡張アドレスを第1装置によって取得するステップと、情報ノードの同期を可能にするべく、木構造中の情報ノードを見つけるために拡張アドレスを使用するステップと、を有し、複数の情報ノードは、階層的木構造状に配置され、拡張アドレスは、情報ノードの階層的位置を含むことを特徴とする。
また、本発明の一実施形態は、複数の装置を同期化するシステムを開示し、本システムは、第2装置との通信を行う機能を有した第1装置を具備し、第2装置は、階層的木構造中に複数の情報ノードを格納し、第1装置は、第2装置の複数のノードからなるノードの拡張アドレスを取得し、拡張アドレスは、情報ノードの階層的位置を用いて拡張され、拡張アドレスは、前記情報ノードの同期を可能とするべく、木構造中で特定の情報ノードを見つけるために使用することができることを特徴とする。
本発明の一実施形態は、複数の装置を同期化する別の方法を開示し、本方法は、第2装置によって第1装置から同期コマンドを受信するステップと、第2装置によって第2装置における階層的木構造中に格納された情報ノードを同期化するステップと、を有し、情報ノードを同期化するステップは、同期コマンドに応答して実行され、要求は、階層的木構造中の情報ノードの位置を表す拡張アドレスを含むことを特徴とする。
以上により、本発明の実施形態は、データ同期を効率的に実行することおよびシステムリソースを節約すること、さらには実際のユーザの要求を満たすことができるよう、データ同期中にクライアントおよびサーバ間でデータベース全体のデータを送信することなく、あるレベルについてのデータ同期を柔軟に実行するために採用される。
添付の図面および特定の実施形態を参照して、以下に本発明を詳細に説明する。
本発明の実施形態はデータ同期を実行する方法を開示するが、その方法では、クライアントおよびサーバのうちの一方が他の一方に第1同期コマンドを送信する。第1同期コマンドを送信する前に、クライアントおよびサーバは同期対象ノードのアドレスを決定する。第1同期コマンドの受信後、第1同期コマンドの受信側は、受信した第1同期コマンドに従って、決定した同期対象ノードのデータ同期を実行する。同期対象ノードは階層木構造中の任意のノード、例えば、データベース全体、論理的または物理的フォルダ、またはデータ項目、であってよい。
SyncMLプロトコルによれば、データ同期は3つのフェーズに分けることができ、同期開始フェーズ、同期フェーズおよび同期完成フェーズを含む。本発明の実施形態における同期完成フェーズのプロセスは従来技術におけるものと同じであり、したがって、同期開始フェーズおよび同期フェーズのみをこれから説明する。
同期開始フェーズでは、第2同期コマンドの送信によるクライアントとサーバとの折衝により、同期対象ノードのアドレスが指定されることになっており、それはデータベースアドレス、論理的または物理的フォルダ識別子、またはデータ項目識別子であってよい。クライアントおよびサーバのうちの一方が同期対象ノードのアドレスを伝える第2同期コマンドを他の一方へ送信すると、それは第2同期コマンドで伝えられる同期対象ノードのアドレスに従ってその時の同期対象であるノードを決定する。同期対象ノードは1つ以上のノードを含んでもよい。同期対象ノードが2つ以上のノードを含む場合、クライアントおよびサーバのうちの一方が、全てのノードに関する第2同期コマンド、これは全てのノードのアドレスを伝える、を他の一方へ送信すると、他の一方は第2同期コマンドで伝えられる全てのノードのアドレスに従って、その時同期対象となるノードに含まれる全てのノードを決定する。クライアントおよびサーバのうちの一方が、各々のノードに関して1つの第2同期コマンド、これはそのノードのアドレスを伝える、を他の一方へ送信すると、他の一方は各々の第2同期コマンドで伝えられる各々のノードアドレスに従って、その時の同期対象となるノードに含まれる全てのノードを1つずつ決定する。あるいは、同期開始フェーズにおいて第2同期コマンドを介して同期対象ノードを取り決める必要がないよう、同期対象ノードのアドレスがクライアントおよびサーバ中に事前に構成されてもよい。本発明の実施形態で述べられる同期対象ノードは、データベース、フォルダ、データ項目、または少なくとも1つのフォルダおよび少なくとも1つの項目からなる組合せを含んでもよい。本発明の実施形態の原理を明らかにするため、少なくとも1つのフォルダを含む同期対象ノードに関する本発明の実施形態の実行についてこれから説明する。同期対象ノードのその他の考え得る組み合わせについては明記しないが、しかし、それでもそれは本発明の保護範囲に含まれる。
以下に示すように、具体的には、同期対象ノードのアドレスを第2同期コマンドで伝えるステップを実現する2種類のやり方がある(少なくとも1つのフォルダを含む同期対象ノードの場合、同期対象ノードのアドレスは同期対象フォルダのアドレスである)。
やり方1:既存プロトコルにおいてターゲット(target)データベースを指示する要素(同期対象データのアドレスを伝える要素とも呼ばれる)が、同期対象フォルダ(実際には、木構造中の任意のノードを指示できる)を指示できるように拡張される。元来はデータベースレベルのアドレスを指示する要素であるものが、任意のレベルのノードアドレスを指示できる要素に拡張される。詳細な実行プロセスは、統一資源識別子(URI、Uniform Resource Identifier)の形式を事前に定義するステップ、すなわち、データベースレベルのアドレスを識別するレベルのURIおよびノードレベルのアドレスを識別するレベルのURIを事前に指定するステップ、および事前に定義されたURIによって同期対象ノードを指示するステップ、を含んでもよい。例えば、“/files”というURIはデータベースレベルのアドレスであり、“/files/folder1 ID”というURIはデータベース中のfolder1という名前のフォルダのアドレスであって、ここで、“files”はデータベースの名前であり、そして“folder1 ID”はフォルダ識別子である、と指定するステップである。データベースまたはフォルダまたはデータ項目の一意性識別子(Unique Identifier、UID)は、同期対象ノードのアドレスをより正確に指定するために、URI中で使用することができる。例えば、“/4980”は同期対象データベースのアドレスであると指定され、“/4980/4560”は、UID4980によって識別される第4980データベース中の、UID4560で識別されるサブフォルダのアドレスであると指定される。データベース中にさらに多くのレベルが存在する場合、“/4560/4980/556”など、多重レベル構造を有するURIが採用される。“/files/4980”など、UDI番号をフォルダ名と混成したものを使用するURI指示法が採用されてもよい。複数の同期対象フォルダが存在する場合、これらのフォルダを指示するために複数のURIが与えられてよいことは勿論である。さらに、階層構造では、1つのフォルダノードは少なくとも1つのサブフォルダおよび/または少なくとも1つのデータ項目ノードを有してもよく、それゆえ、同期対象ノードのアドレスはフォルダ識別子およびデータ項目識別子を含んでもよい。例えば、ノードアドレス“/Macy/03/05”では、“03”はデータベース“Macy”に属するデータ項目の識別子であり、“05”は親ノードであるデータ項目“03”のサブ項目(例えば、添付文書)の識別子である。
やり方2:既存プロトコルにおいてフィルタ条件を指示する要素が同期対象フォルダ(実際には、木構造中の任意のノードを指示できる)を指示するように拡張される。具体的な実装は、既存のフィルタ条件(例えば、フィルタコマンド)を、同期対象フィルタを指示するように拡張することを含む。同期対象フォルダが1つ以上存在する場合、これらのフォルダを同時にフィルタ条件に指示できるのは勿論である。
同期対象フォルダを指示するためのこれらの2つのやり方をこれから詳細に説明する。
I.やり方1は、既存プロトコルにおけるターゲットデータベースを指示する要素の拡張により、同期対象フォルダの取り決めを行う方式であって、ターゲットデータベースを指示する要素で伝えられる同期対象フォルダのアドレスは、通常、URIと呼ばれる。
本発明の実施形態では、第2同期コマンドを送信することによって同期対象フォルダを取り決める一方、クライアントおよびサーバは同期タイプ折衝パラメータ(sync type negotiation parameter)をさらに取り決めてもよい。クライアントおよびサーバが第2同期コマンドの送信によって同期対象フォルダを取り決める時、同期タイプ折衝パラメータを第2同期コマンドでさらに伝えることができ、それに従ってその時の同期タイプを決定できる。第2同期コマンドは、同期マークアップ言語(SyncML)プロトコルにおけるAlert(警告)要素を使用して実行することができ、ここで、同期対象フォルダのアドレスを伝える要素はAlert要素のサブ要素(例えば、Item(項目)要素)であってもよく、そして同期タイプ折衝パラメータを伝える要素がAlert要素のサブ要素(例えば、Item要素)であってもよい。Alert要素を使用して実行される第2同期コマンドは、Sync Alert(同期警告)コマンドと呼ぶこともできる。第2同期コマンドとして機能するAlert要素中のその他のサブ要素、Code(コード)要素など、は、同期タイプ折衝パラメータおよび同期対象フォルダのアドレスを伝えるためにも使用でき、そしてAlert要素の属性もまた同期タイプ折衝パラメータおよび同期対象フォルダのアドレスを伝えるために使用できる。これらのケースにおけるコマンド構造を本明細書に逐一示すことはしないが、それらは本発明の保護範囲に含まれるものとする。そして、将来の仕様においては、これらの要素、サブ要素または属性の名前および構造は変化する場合もあろうが、これらの変化が本発明を限定するものとはみなすことはできない。
Alertコマンドを1つ以上の同期対象フォルダの指定に使用できるようさらに拡張して、複数フォルダの同期を実行するようにしてもよい。その機能を実装する方式を以下に示す。
同期開始フェーズでは、同期対象フォルダの折衝はクライアントによりサーバに対して開始されるものとして、折衝のプロセスは以下のようになる。
クライアントは同期対象フォルダのアドレスを伝えるAlertコマンドをサーバに送信するが、そのアドレスは同期対象フォルダのURIであってもよい。次いで、サーバはクライアントに応答を返してもよい。Alertコマンドの例をこれから示す。例えば、クライアントが指定する同期対象フォルダはfolder1と名付けられている。クライアントは、同期タイプおよび同期対象フォルダのアドレス(例えば、URI)を伝えるAlertコマンドをサーバに送信する。クライアントのフォルダ構造がサーバのものと同じである場合(同期対象ノードが少なくとも1つのフォルダを含むだけで、フォルダ構造がデータ階層構造に言及する場合)、クライアントは、それのローカルフォルダ構造に従って、同期対象フォルダのローカルアドレスがサーバにおける同期対象フォルダのアドレスであると直ちに決定する。クライアントのフォルダ構造がサーバのものと異なる場合、クライアントはサーバにおける同期対象フォルダのアドレスを決定する必要がある場合もあり、この場合、以下のように幾つかの決定方法が存在する。すなわち、1.クライアントはまずサーバからサーバのフォルダ構造を取得し、そして取得したフォルダ構造に従ってサーバ中の同期対象フォルダのアドレスを決定する。2.サーバが同期対象フォルダのアドレス(例えば、UIDまたはURI)をクライアントに送信する。3.クライアントが同期対象フォルダのアドレスを直接に指定し、指定されたアドレスがサーバにおいて存在しない場合、サーバはクライアントが指定したアドレスに同期対象フォルダを作成する。4.クライアントは、ユーザが入力した情報に従って同期対象フォルダのアドレスを決定する。すなわち、ユーザが同期対象フォルダのアドレスを決定する。5.クライアントおよびサーバが同期対象フォルダのアドレスを前もって設定する。たとえクライアントのフォルダ構造がサーバのフォルダ構造と同一である場合でもまた、クライアントは、上記の方法を使用して同期対象フォルダ決定する。例えば、クライアントおよびサーバの両者は、バックアップ(backup)同期の実行が予定される場合、サーバのデータベース中に“backup”という名前のフォルダを準備するものとする。上記のフォルダ構造は作成後にサーバ中に格納されてもよく、またはサーバ中に格納されず、クライアントが要求した場合にサーバが指定したデータベースに実時間で作成される。同期手順を開始するためにサーバがAlertコマンドを送信する場合、同期対象フォルダのアドレスは、クライアント中の同期対象フォルダのアドレス(すなわち、送信元アドレス)およびサーバ中のそれ(すなわち、宛先アドレス)を含んでもよい。2つのアドレスは同じでもよく異なってもよい。同期発信元のクライアントについては、同期対象フォルダのローカルアドレス(すなわち、送信元アドレス)は、例えば、送信元アドレスを予め構成する、またはユーザが送信元アドレスを指定する、または送信元アドレスをユーザがクライアントに送信するなど、複数の手段で取得できる。しかしながら、サーバ中の同期対象フォルダのアドレス(すなわち、宛先アドレス)は、同期手順の開始時にクライアントがサーバに指示しなければならない。ここで説明するのは、同期発信元として機能するクライアントがサーバに宛先アドレスを指示する方法であり、クライアントが送信元アドレスを決定する方法はここでは論じない。
クライアントによるサーバのフォルダ構造の取得は、独立した同期セッションによって実行することができ、その場合は、同期タイプ折衝パラメータを伝えるAlertコマンドにおいて新しいサブ要素または属性が拡張または定義されるものとし、そしてデータベースのフォルダ構造を取得するためのみの、データベースの同期は目的としない、新しい同期タイプも定義されるものとする。データベースのフォルダ構造および同期データを取得するための別の同期タイプが定義されてもよい。フォルダ構造を取得するための実行方式をこれから示す。
1.クライアントは同期セッションを引き起こすコマンドをサーバへ送信する。同期対象フォルダのアドレスを決定するAlertコマンドを送信する前に、クライアントはターゲットデータベースのフォルダ構造を取得するための同期コマンドをサーバに送信する。ターゲットデータベースのフォルダ構造を取得するこの同期コマンドを上述の2つの同期コマンドと区別するため、その同期コマンドを第3同期コマンドと呼ぶものとする。第3同期コマンドは、例えば、以下の例で示されるGetコマンドの例のようなGet(取得)要素を使用して実行できる。既存のGetコマンドは、装置性能情報を取得するために使用されるのみであり、そのため、データベースのフォルダ構造の取得を要求するために、既存のGetコマンドの定義を拡張するものとし、データベースのフォルダ構造の取得の要求を指示する識別子が定義に追加される。
<Get>

......

<Target><LocURI>/contacts?List=struct</LocURI></Target>......

</Get>
上記のGetコマンドの例に示されるTarget要素では、“/contacts”はターゲットデータベースのURIを指し、“?List=struct”はデータベースのフォルダ構造を取得する要求を指示する識別子を指す。そしてGetコマンドの受信後、サーバはターゲットデータベースのURIに対応するデータベースを見つける。
2.サーバは、Getコマンドへの応答、例えば、Results(結果)コマンド、によりターゲットデータベースのフォルダ構造をクライアントへ返す。サーバのデータベースのフォルダ構造は次のようであるとする。すなわち、“/contacts”のルートフォルダ(すなわち、第1レベルのフォルダノード)の配下に、4つのサブノードA、B、CおよびDが存在し、それらは第2レベルのフォルダと呼ばれる。そして、A1およびA2というサブノードが第2レベルのフォルダノードAの配下にあり、その2つのサブノードは第3レベルのフォルダノードと呼ばれる。ここで、返されたResultsコマンドは以下の幾つかのやり方で構成できる。
(1)1つのItem要素が、フォルダ構造中の1つのノードのURIを指示するために使用される。Resultsコマンドの受信後、クライアントは、各Item要素で指示されるURIに従ってサーバのフォルダ構造を構築する。Resultsコマンドの形式は以下のとおりである。
<Results> ......

<Item> ......

<Source><LocURI>/A</LocURI></Source>.....

</Item>

<Item>.....

<Source><LocURI>/A/A1</LocURI></Source>......

</Item>

</Results>
(2)全てのフォルダ構造データは、1つの要素にカプセル化される。例えば、フォルダ構造データは、Item要素中のData要素中にカプセル化することができ、そのItem要素はResults要素のサブ要素であり、Data要素中にカプセル化されたフォルダ構造データはファイルとして存在してもよい。この場合、Resultsコマンドの形式は以下のようになる。
<Results> ......

<Item> ......

<Data>フォルダ構造データ</Data>

</Item>

</Results>
別のサブ要素または属性もまた、フォルダ構造を取得する要求を指示するために、第3同期コマンドとして機能するGet要素中で使用されてよい。これらのケースでのGet要素およびResults要素のコマンド構造を逐一示すことはしないが、どの種類のGet要素およびResults要素が一緒に使用されるかに関係なく、それらもまた本発明の保護の範囲に含まれるものとする。同様に、Add(追加)コマンドまたはReplace(置換)コマンドもまた、階層構造データを伝えるように拡張されてよく、その拡張のやり方はResultsコマンドのそれと同じであり、そしてこれも本発明の保護範囲に含まれるものとする。
あるいは、クライアントは、サーバが主導権をもってクライアントへ同期対象フォルダのアドレスを送信することにより、同期対象フォルダのアドレスを決定してもよい。サーバによる同期対象フォルダのアドレスの送信は、クライアントへの通知(notification)の送信により実行されてもよい。通知の形式はデータ同期プロトコルにおける通知形式であってもよく、またはその通知はサーバによって別のエンジン、例えば、ショートメッセージサービス(Short Messaging Service、SMS)、ワイヤレス・アプリケーション・プロトコル・プッシュ(Wireless Application Protocol Push、WAP Push)サービス、セッション開始プロトコル(Session Initiating Protocol、SIP)メッセージ、マルチメディアメッセージサービス(Multimedia Message Service、MMS)など、を介して送信してもよい。クライアントは任意の種類の同期対象階層構造のURIを取得してよい。
同期対象フォルダのアドレスを決定すると、クライアントは、決定した送信元および同期対象のターゲットアドレスを伝えるAlertコマンドをさらに送信してもよく、同期対象フォルダのアドレスおよび同期タイプ折衝パラメータはItem要素中で伝えることもでき、Alertコマンドの形式は以下のようになる。すなわち、
<Alert>

<Sync type>Two-way sync</Sync type>

<Item>

<Target><LocURI>/files/folder1(サーバ中のfolder1という名前の同期対象フォルダのURI)</LocURI></Target>

<Source><LocURI>/files/folder1(クライアント中のfolder1という名前の同期対象フォルダのURI)</LocURI></Source> ......

</Item> ......

</Alert>
複数の同期対象フォルダが存在する場合、1つの同期タイプおよび複数のItem要素をAlertコマンドで伝えることができ、そして各Item要素は1つのフォルダのアドレスを伝えるために使用され、ここで、複数の同期対象フォルダの同期タイプは同一である。
クライアントが送信したAlertコマンドの受信後、サーバはクライアントへ同期対象フォルダの折衝結果を伝える応答を返し、そこで、クライアントは、サーバに同期データを送信することにより続行するかまたは取り決めをし直すかを決定してよい。応答は、既存プロトコルにおける状態コードを返送する同期コマンド、例えば、Statusコマンド、であってもよい。
複数の同期対象フォルダが存在する場合、サーバがクライアントへ応答を返すやり方は次のものを含む。すなわち、全ての同期対象フォルダについて、サーバは全てのフォルダについての折衝結果を伝える1つの応答を返す、またはサーバは各フォルダについてそのフォルダの折衝結果を伝える1つの応答を返し、ここで、これらのフォルダの折衝結果を返すために複数のStatusコマンドを複数のフォルダそれぞれについて使用でしてよい(折衝の結果は状態コードと呼ばれる場合もある)。
異なるフォルダについて異なる同期タイプを採るためには、以下の方式を使用できる。
1.複数の同期対象フォルダについて、クライアントはサーバへ全てのフォルダのアドレスおよび各フォルダに対応する同期タイプ折衝パラメータを伝えるAlertコマンドを送信する。サーバは、Alertコマンドで伝えられる全てのフォルダのアドレスに従って全ての同期対象フォルダを決定し、そしてフォルダそれぞれに対応する同期タイプを決定する。ここで、Alertコマンドは、元来は同期対象の宛先データベースのアドレスを伝えるために使用され、ノードレベルアドレスおよび同期タイプを指示できるように拡張された、複数の要素(例えば、Item要素)を伝え、そして1つの同期対象フォルダ(実際には、木構造中の任意のノードを指示できる)のアドレスおよび1つのフォルダの同期タイプを担うために使用される。
2.各同期対象フォルダについて、クライアントは1つのフォルダのアドレスおよびその1つのフォルダの同期タイプ折衝パラメータを伝えるAlertコマンドをサーバに送信する。サーバは、各々のAlertコマンド中のフォルダのフォルダアドレスおよび同期タイプ折衝パラメータに従って、各々の同期対象フォルダおよび同期タイプを決定する。ここで、Alertコマンドは、元来は同期対象宛先データベースのアドレスを伝えるために使用される1つの要素、およびノードレベルアドレスを指示できるよう拡張された、元来は同期タイプを伝えるために使用される、1つの要素を伝え、そして同期対象フォルダ(実際には、木構造中の任意のノードを指示できる)のアドレスを担うために使用される。元来は同期タイプを伝えるために使用されるその1つの要素は同期タイプ折衝パラメータを担うために使用される。
しかしながら、複数の同期対象フォルダが存在してその複数のフォルダの同期タイプが同じである場合、全ての同期対象フォルダについて、クライアントはサーバへ全てのフォルダのアドレスおよびこれらのフォルダの同期タイプ折衝パラメータを伝える1つのAlertコマンドを送信する。サーバはAlertコマンド中の全てのフォルダのアドレスおよび折衝パラメータに従って、全ての同期対象フォルダの同期タイプを決定する。ここで、そのAlertコマンドは、元来は同期対象宛先データベースのアドレスを伝えるために使用される複数の要素(例えば、Item要素)および元来は同期タイプを伝えるために使用される1つの要素(例えば、Data要素)を伝え、ここで、元来は同期対象宛先データベースのアドレスを伝えるために使用される各要素はノードレベルアドレスを指示することができる1つの要素に拡張され、同期対象フォルダのアドレスを担うために使用される。元来は同期タイプを伝えるために使用されるその要素は、1つの同期タイプ折衝パラメータを担う。第2同期コマンドとして動作するAlert要素はまた、同期タイプ折衝パラメータ、同期対象フォルダのアドレスなどを伝えるために別のサブ要素または属性を使用してもよい。これらの場合におけるコマンド構造を逐一示すことはしないが、それらは本発明の保護範囲に含まれるものとする。
II.やり方2は、同期対象フォルダのアドレスをフィルタリングメカニズムを使用して決定するやり方である。
既存のフィルタリングメカニズムは、ファイルレベルおよび項目レベルのフィルタリングのみを実行でき、これは同期対象データの形式に主に依存する。そして、本発明の一実施形態では、既存のフィルタリングメカニズムはノードレベル(ここで、ノードレベルはフォルダレベルを指す)へ拡張され、それは同期対象データの形式によって制限されず、全ての種類のデータ形式に使用できる。例えば、フォルダレベルのフィルタリング条件を伝えるサブ要素をSyncMLプロトコルにおける既存のFilter要素に挿入することにより、その要素はFolderLebelと名付けることができ、ここで、同期対象フォルダを指示するためにCGI(Common Gateway Interface)構文を使用できる。Filter要素の属性または新たに追加されたサブ要素はまた、フォルダレベルのフィルタリング条件を伝えるために使用してもよく、この場合のコマンド構造をこの後示すことはしないが、これは本発明の保護範囲に含まれるものとする。
Filterコマンドの形式は以下のように与えられ、それぞれ112および113と番号を付された2つの同期対象フォルダを伝える。
<Filter> ......

<NodeLevel>

<Item>

<Meta><Type>syncml:filtertype-cgi</Type></Meta>

<Data>&LUID &EQ; 112 &AND; &LUID &EQ; 113 (112および113を含む同期対象フォルダの番号を指示するために、Filter要素のCGI構文を使用) </Data>

</Item>

</NodeLevel> ......

</Filter>
同期フェーズでは、どのやり方に基づく同期の操作タイプも、第1同期コマンドの送信によって指示され、それは同期対象フォルダのアドレスをさらに指示してもよく、またはデータ内容をさらに伝えてもよい。
同期対象フォルダのアドレスを第1同期コマンドで伝える場合、同期対象データのアドレスを既存のSync(同期化)コマンドで伝えるために使用される要素を、同期の粒度(granularity)をデータベースレベルから任意のノードのレベルへ拡張するよう、拡張することができる(例えば、Target要素)。例えば、ノードレベルのアドレスを指示できるTarget要素をSyncコマンドで伝えることができる。既存のSyncコマンドは、同期対象データベースのアドレスを指示できるのみのTarget要素を伝えるのみである。しかしながら、本発明の実施形態によるSyncコマンドは、任意のノードレベルのアドレスを指示することができ、データベース全体の全てのデータではなく、指示されたアドレスの範囲に属するデータを伝えることができる。
上記の解決法では、1つのSyncコマンドは1つの同期対象フォルダのアドレスを伝えることができ、複数の同期対象フォルダが存在する場合、それら複数のフォルダのアドレスは複数のSyncコマンドでそれぞれ、又は1つのSyncコマンドでも伝えることができる。例えば、2つの同期対象フォルダ、それぞれfolder1およびfolder2と名付けられる、のアドレスは2つのSyncコマンドでそれぞれ伝えることができる。第1同期コマンドとして動作する上記のSync要素では、別のサブ要素または属性が同期対象フォルダのアドレスを伝えるために使用されてもよく、またこれらの場合のコマンド構造を逐一示すことはしないが、しかしそれらは本発明の保護範囲に含まれるものとする。
第1同期コマンド(例えば、Syncコマンド)が操作タイプを伝える時、操作タイプを伝える具体的なやり方は従来技術のものと同じであり、操作タイプを伝えるためにAdd(追加)、Replace(置換)、Delete(削除)、Move(移動)などの要素を使用することになる。例えば、サブ要素をSync(同期化)コマンドで伝えることができ、そのサブ要素は追加操作を指示するAdd要素、または置換操作を指示するReplace要素、または削除操作を指示するDelete要素、または移動操作を指示するMove要素などであってもよい。このようにして、第1同期コマンドを受信する受信側は、第1同期コマンドが伝える操作タイプに従って、操作タイプによって指定された同期操作を同期対象フォルダについて実行できる。その結果、実際の状況に従って、Add要素、Replace要素、Delete要素、またはMove要素を選択でき、そしてその選択された要素を種々の操作タイプを指定するSyncコマンドで伝えることができる。
本発明の実施形態である、以上に述べた第1、第2および第3同期コマンドの全てで伝えられる、例えば、同期対象ノードのデータ、ノードレベルのアドレス、フィルタリング条件、同期タイプ、階層構造データなど、種々の情報は、以上に示されたサブ要素または属性で伝えることができるだけでなく、別の要素または属性でも伝えることができる。これらのコマンドについては非常に多くの実行ケースが存在することに鑑み、これらのコマンドの形式をここで逐一示すことはしないが、しかしそれらは本発明の保護範囲に含まれるものとする。
幾つかの具体的な実施形態について、同期フェーズをこれから説明する。クライアントによって開始された同期手順はサーバによって開始された同期手順と同様であるので、これからは、クライアントが同期フェーズを開始し、サーバがデータ同期操作を実行する例を取り上げて、同期フェーズについて説明する。以下の実施形態では、第1同期コマンドはSyncMLプロトコルのSync要素を使用して実行され、そのSync要素は、追加、置換、削除または移動などの操作タイプを伝えてもよい。
ユーザが物理的または論理的フォルダを作成でき、再帰的および非再帰的に同期化する任意のフォルダを指定できるよう、クライアントおよびサーバ中にそれぞれ3つのテーブルが構成される。
1.データ項目テーブル(Data Item table) データ項目のUIDと内容(Data)の対応関係を含む、全てのデータ項目の情報を格納するために使用され、ここで、データ項目のUIDはクライアントおよびサーバにおいてそれぞれItem LUIDおよびItem GUIDで示される。
2.フォルダテーブル(Folder Table) 全てのフォルダの情報を格納するために使用され、各フォルダの情報は、フォルダの番号、フォルダの名前(Name)、そのフォルダが属する親フォルダ(Parent Source)、フォルダの状態(Folder Status)およびそれらの対応関係を含み、ここで、フォルダの状態は主に、Existing(現存、Eで示される)、Adding(追加、Aで示される)、Deleting(削除、Dで示される)、Moving(移動、Mで示される)およびCopying(コピー、Cで示される)を含む。状態Deletingは2つの状態、Permanent Deletion(永久削除、P−Dで示され、Hard Deletionとも呼ばれる)およびNon-permanent Deletion(非永久削除、P−NDで示され、Soft Deletionとも呼ばれる)、をさらに含んでもよく、フォルダのUIDはクライアントおよびサーバにおいてそれぞれFolder LUIDおよびFolder GUIDで示される。従来は、LUIDは、GUIDとは異なる。しかしながら、これらは同一であるとみなすことができる。LUID-GUIDの仕組みの発展は、この発明の範囲に影響しない。
3.「データ項目−フォルダ」の索引テーブル(Index Table) データ項目の所属を格納するために使用され、データ項目のUID、親項目(Parent Source)、データ項目の状態(Data Status)、およびそれらの対応関係を含み、ここで、データ項目のUIDはクライアントおよびサーバにおいてそれぞれItem LUIDおよびItem GUIDで示される。
さらに、クライアントにおけるデータのUIDとサーバにおけるそれとの間の対応関係のテーブルがサーバ中に格納されるものとする、すなわち、GUIDとLUIDとの間の対応関係である。
本発明の第1に、ユーザは新しいフォルダ“bless”をショートメッセージ用のルートフォルダ(例えば、/sms)の配下に追加し、“Spring Festival”および“Mid-autumn Festival”2つのサブフォルダをフォルダ“bless”の配下に追加して、それぞれのフォルダの配下にデータ、すなわち、データN1をフォルダ“bless”の配下に追加し、データN2をフォルダ“Spring Festival”の配下に追加し、そしてデータN3をフォルダ“Mid-autumn Festival”の配下に追加する。
図3aおよび図3bに示されるように、図3aは本発明の第1実施形態においてユーザが定義するデータ構造を示す概略図であり、ここで、四角のフレームはFolderを示し、円はデータ項目を示し、実線はExisting(現存)の状態を示し、そして点線はNew(新規)の状態を示す。図3bは、本発明の第1実施形態におけるクライアントのデータ蓄積装置を示す概略図である。クライアントにおいては、データ項目テーブル、フォルダテーブルおよび「データ項目−フォルダ」の索引テーブルが格納される。各テーブル中に付加されたデータ状態は図3b中に対応して示される。
ユーザがフォルダ“bless”を同期化するよう要求すると、クライアントは以下の同期コマンドを整然と作成する。
第1に、ユーザからのフォルダ“bless”を同期化するコマンドに従って同期対象データがフォルダであることを決定した後、クライアントはフォルダテーブルに従って、フォルダ“bless”の状態がN(新規)であると決定する。その後、クライアントは、フォルダの追加を指示する同期コマンドを構築する。例えば、Addサブ要素がSyncコマンドに追加され、Syncコマンドのサブコマンドと呼ばれる場合もあるAdd同期コマンドが構築される。構築されるAddコマンドでは、データタイプがフォルダであることを示すためにMetaフィールドが使用される。データタイプはフォルダテーブルに従って決定されるが、そこでは、同期対象データのUIDが1006であることを示すためにLUIDフィールドが使用され、データ内容が“bless”であることを示すためにDataフィールドが使用され、そして親フォルダがルートフォルダであることを示すためにSourceParentフィールドが使用される。
第2に、クライアントはフォルダ“bless”配下のデータ項目の状態を決定し、そして索引テーブル中のデータ項目2001に対応する状態がNであるので、Add同期コマンドが構築される。データ項目テーブルに基づいてデータ項目2001に対応するデータ内容はN1であると決定した後、構築されるAdd同期コマンドでは、データタイプがvCard(一種のData Itemとして知られる)であることを示すためにMetaフィールドが使用され、同期対象データのUIDが2001であることを示すためにLUIDフィールドが使用され、データ内容がN1であることを示すためにDataフィールドが使用され、そして親フォルダが1006であることを示すためにSourceParentフィールドが使用される。
クライアントが、フォルダ“bless”の配下には新たに追加されるデータ項目は存在しないと決定した場合、それは次いでフォルダ“bless”配下のサブフォルダの状態をチェックするが、それの実行はフォルダ“bless”の決定についてのそれと同じである。2つのAdd同期コマンドが構築され、一方のAddコマンドには、データタイプがFolderであることを示すMetaフィールド、同期対象データのUIDが1007であることを示すLUIDフィールド、データ内容が“Spring Festival”であることを示すDataフィールド、および親フォルダが1006であることを示すSourceParentフィールドが存在し、そして他方のAddコマンドには、データタイプがFolderであることを示すMetaフィールド、同期対象データのUIDが1008であることを示すLUIDフィールド、データ内容が“Mid-autumn Festival”であることを示すDataフィールド、および親フォルダが1006であることを示すSourceParentフィールドが存在する。
フォルダ“bless”の配下には新たに追加されるデータ項目は存在しないと決定した後、クライアントはフォルダ“Spring Festival”およびフォルダ“Mid-autumn Festival”の配下のデータ項目の状態をチェックするが、それの実行はN1の決定についてのそれと同じである。すなわち、クライアントは2つのAdd同期コマンドをそれぞれ構築する。
このようにして、再帰的同期は、新たに追加される各データ項目についてAdd同期コマンドを送信することにより実行される。非再帰的同期は、次のケースのようになる。1.1つのフォルダを同期化するだけであり、そのフォルダ配下のデータ項目は同期化しない、例えば、フォルダ名の変更、2.1つのフォルダおよびその配下のデータ項目を同期化するだけであり、サブフォルダは同期化しない。
最後に、構築されたAdd同期コマンドの全てがサーバに送信される。1つのAddコマンド内のデータ量が比較的小さい場合、複数のAddコマンドを1つのメッセージ中に含めて、1回の交換によりサーバへ送信することができる。また、1つのAddコマンド内のデータ量が比較的大きい場合、複数のAddコマンドを伝えるために1つ以上のメッセージが必要となり、全てのAddコマンドは複数の交換によりサーバに送信することができる。実際上は、複数のフォルダおよびデータ項目を含むAdd同期コマンドは1つのみを送信することができ、その1つのAdd同期コマンドを複数の論理的なAddコマンドとみなすものとする。
サーバが上記のAddコマンドを受信した後の同期操作を実行するプロセスをこれから説明する。このプロセスに関係するテーブルは図3bに示すテーブルと同様である。
フォルダ“bless”を追加する同期コマンドの受信後、サーバは、受信した同期コマンドに含まれるMetaフィールドに従って同期対象データのタイプがFolderであり、LUIDフィールドに従って同期対象データのUIDが1006であり、Dataフィールドに従って同期対象フォルダの名前が“bless”であり、そしてSourceParentフィールドに従って親フォルダがルートフォルダであると決定する。その後、同期対象データに、サーバのローカルUID(Folder GUID)が、例えば、100006と、割り当てられる。次いで、対応する項目がローカルに構築されたフォルダテーブルに追加される。例えば、100006、bless、ルートフォルダ、データ項目の状態およびそれらの対応関係を含む項目が追加される。これに加えて、クライアントにおける同期対象データのUID(すなわち、LUID)、サーバにおける同期対象データのUID(すなわち、GUID)およびそれらの対応関係が、LUIDとGUIDとの間の対応関係について構成されたテーブルに格納される。すなわち、1006、100006およびそれらの対応関係が格納される。
サーバがデータ項目N1を追加する同期コマンド受信した場合、それは、受信した同期コマンドに含まれるMetaフィールドに従って同期対象データのタイプはData Itemであり、LUIDフィールドに従ってクライアント中のデータのUIDは2001であり、Dataフィールドに従ってデータ内容はN1であり、そしてSourceParentフィールドに従って親フォルダは1006であると決定する。その後、データ項目N1はローカルデータベースに格納され、次いで、200001など、サーバのローカルUID(Folder GUID)が同期対象データに割り当てられ、200001、N1およびそれらの対応関係など、対応する項目がローカルに構成されたデータ項目テーブルに追加され、200001、100006、データ項目N1の状態およびそれらの対応関係など、対応する項目が索引テーブルに追加され、そしてクライアント中の同期対象データのUID、サーバ中の同期対象データのUIDおよびそれらの対応関係、すなわち、2001、200001およびそれらの対応関係、がLUIDとGUIDとの間の対応関係について構成されたテーブルに格納される。
サーバにおいてフォルダ“Spring Festival”および“Mid-autumn Festival”を追加するやり方は、フォルダ“bless”を追加するものと同じであり、そしてデータ項目N2およびN3を追加するやり方はデータ項目N1を追加するものと同じである。
さらに、注目すべきは、同期操作を実行するためにサーバが同期コマンドをクライアントへ送信する場合、サーバ中の同期対象データのUIDはその同期コマンド中に含まれ、同期操作の実行後、クライアントはサーバへ、クライアント中の同期対象データのUIDとサーバ中のそれとの間の対応関係、すなわち、LUIDとGUIDとの間の対応関係、を返し、サーバは受信した対応関係をLUIDとGUIDとの間の対応関係についてローカルに構成されたテーブルに格納する。
こうして、データを追加する同期操作を実行することができ、ここで、そのデータはユーザの要望に従って作成した特定のデータ項目またはフォルダであってよく、それはシステムの物理的なデータ構造によって限定されない。本発明の実施形態の利点は、データ構造中の複数のノードに属するかもしれないデータについて、複数のノードのデータ同期化においてそのデータの1つのコピーのみが転送され、またそのデータの1つのコピーのみが同期操作を実行する側によって格納され、それによりネットワークおよび装置のリソースが大幅に節減されることにあることがわかる。例えば、N1がフォルダ“bless”、“Spring Festival”および“Mid-autumn Festival”に属するものとすると、サーバでの同期操作中に、2つの対応するエントリ、すなわち、項目1「200001、100007、データN1の状態およびそれらの対応関係」および項目2「200001、100008、データN1の状態およびそれらの対応関係」、を索引テーブルに追加するものとする。
第2実施形態では、ユーザは、ショートメッセージ用のルートフォルダ(/sms)配下のフォルダ“bless”の属性、フォルダ“bless”中のデータ項目U1、およびフォルダ“Spring Festival”中のデータ項目U2、を更新する。この実施形態では、U2はフォルダ“Spring Festival”および“Mid-autumn Festival”に属する。
図4aおよび図4bに示すように、図4aは、本発明の第2実施形態においてユーザが定義したデータ構造を示す概略図であり、ここで、四角のフレームはFolderを示し、円はデータItemを示し、実線はその状態がExisting(現存)であることを示し、そして点線はその状態がUpdate(更新)であることを示す。図4bは、本発明の第2実施形態におけるクライアントのデータ蓄積装置を示す概略図である。データ項目テーブル、フォルダテーブルおよび索引テーブルはクライアント中に格納されている。各テーブル中のデータ状態は図4b中に対応して示される。
ユーザがフォルダ“bless”の同期を要求した場合、クライアントは以下の同期コマンドを整然と作成する。
まず、ユーザから受信したフォルダ“bless”の同期のためのコマンドに従って、同期対象データがフォルダであると決定すると、クライアントは、フォルダテーブルのフォルダ“bless”の状態はU(更新)であると決定し、更新を指示する同期コマンド、例えば、Syncコマンドのサブコマンドとも呼べる、Replace同期コマンドを構築する。そして、構築したReplaceコマンドにおいて、データタイプがFolderである−これはフォルダテーブルに従って決定される−ことを示すためにMetaフィールドが使用され、同期対象データのUIDが1006であることを指示するためにLUIDフィールドが使用され、具体的なデータが“bless”であることを指示するためにDataフィールドが使用され、そして親フォルダがルートフォルダであることを指示するためにSourceParentフィールドが使用される。
その後、クライアントは、フォルダ“bless”中のデータ項目の状態を索引テーブルに従って決定し、番号1006に対応するデータ項目は状態がUである2001であると決定して、Replace同期コマンドが構築される。データ項目2001に対応する具体的なデータ内容がデータ項目テーブルからN1であると決定された後、構築されるReplace同期コマンドでは、データタイプがvCard(一種のData Itemとして知られる)であることを指示するためにMetaフィールドが使用され、同期対象データのUIDが2001であることを指示するためにLUIDフィールドが使用され、具体的なデータがU1であることを指示するためにDataフィールドが使用され、そしてデータ項目が属する親フォルダが1006であることを指示するためにSourceParentフィールドが使用される。
次いで、フォルダ“bless”中には置換対象データ項目は存在しないと決定した後、クライアントはフォルダ“bless”の1つ以上のサブフォルダの状態をチェックするが、その実行はフォルダ“bless”を決定するためのそれと同じである。そして、この実施形態では、フォルダ“bless”のサブフォルダの状態には変更はなく、そのためサブフォルダは処理する必要がない。
最後に、フォルダ“bless”の配下に同期対象サブフォルダが存在しないと決定した時、クライアントはサブフォルダ“Spring Festival”中のデータ項目の状態をチェックするが、これの実行はデータ項目U1を決定するのと同じである。すなわち、クライアントはReplace同期コマンドを構築し、そして、番号2002に対応する具体的なデータ内容がデータ項目テーブルからU2であると決定した後、構築されるReplace同期コマンドにおいて、データタイプがvCard(一種のData Itemとして知られる)であることを指示するためにMetaフィールドが使用され、同期対象データのUIDが2002であることを指示するためにLUIDフィールドが使用され、具体的なデータがU2であることを指示するためにDataフィールドが使用され、そしてデータ項目が属する親フォルダが1007であることを指示するためにSourceParentフィールドが使用される。
このようにして、再帰的同期は、置換される各データ項目についてReplace同期コマンドを送信することにより実行される。勿論、非再帰的同期も実行可能であるが、その実行の原理は再帰的同期のものと同様であり、それについてはここではこれ以上説明しない。再帰的同期を実行するかどうかは、同期開始フェーズでの同期対象フォルダの取り決めにおいて決定することができ、ここで、再帰的同期識別子が本発明の実施形態による第2同期コマンドでさらに伝えられる。値“true(真)”を有する再帰的同期識別子は、同期対象フォルダに対して再帰的同期が実行されるべきことを示し、その結果、同期対象フォルダのルートノードおよび全てのサブノードに対してデータ同期が実行されることになる。値“false(偽)”を有する再帰的同期識別子が第2同期コマンドで伝えられる場合、それは、同期対象フォルダに対して非再帰的同期が実行されるべきことを示し、その結果、同期対象フォルダのルートノードに対してのみ、データ同期が実行されることになる。値“true(真)”を有する再帰的同期識別子が示されてない場合、常に再帰的同期とみなすことができる。同期開始フェーズにおいて、再帰的同期が同期対象フォルダに対して実行されるものと決定された場合、同期フェーズでクライアントまたはサーバによって送信される第1同期コマンドで伝えられるデータ内容は、同期対象フォルダのルートフォルダおよび各サブフォルダのデータ内容を含み、そして第1同期コマンドの受信側は、第1同期コマンドで伝えられたデータ内容に従って、同期対象フォルダのルートフォルダおよび各サブフォルダのデータ内容を順々に同期化する。そして、同期開始フェーズにおいて、非再帰的同期が同期対象フォルダに対して実行されるものと決定された場合、同期フェーズでクライアントまたはサーバによって送信される第1同期コマンドで伝えられるデータ内容は、同期対象フォルダのルートフォルダのデータ内容を含み、そして第1同期コマンドの受信側は、同期対象フォルダのルートフォルダのデータ内容のみを同期化する。ここで、本発明の実施形態において述べられるデータ内容は、同期対象フォルダのフォルダおよびデータ項目の内容、例えば、フォルダ名(Name)およびデータ項目のデータ(Data)、を示す。
その後、全ての構築されたReplace同期コマンドはサーバへ送信されるが、その詳細な転送方法はAdd同期コマンドの転送についてのものと同じであり、ここではそれ以上説明しないものとする。
サーバが上記のReplaceコマンドを受信した後、同期操作を実行するプロセスについてこれから説明する。このプロセスに関係するテーブルは図4bに示されたテーブルと同様であり、ここでは示さない。
フォルダ“bless”を置換する同期コマンドの受信後、サーバは、受信した同期コマンドのMetaフィールドに従って同期対象データのタイプがFolderであり、LUIDフィールドに従って同期対象データのUIDが1006であり、Dataフィールドに従って同期対象フォルダの名前が“bless”であり、そしてSourceParentフィールドに従って同期対象データの親フォルダがルートフォルダであると決定する。その後、ローカルサーバにおける同期対象データ−それが置換される−の番号、例えば、100006、がLUIDとGUIDとの間の対応関係について構成されたテーブルから取得される。次いで、構成されたフォルダテーブルにおいて対応する項目が置換される、すなわち、項目中の“bless”の属性情報が置換され、ここで、その項目は、100006、bless、ルートフォルダ、データ項目“bless”の状態およびそれらの対応関係を含む。
データ項目U1を置換する同期コマンドの受信後、サーバは、受信した同期コマンドのMetaフィールドに従って同期対象データのタイプがData itemであり、LUIDフィールドに従ってクライアント中のデータのUIDが2001であり、Dataフィールドに従って具体的なデータ内容がU1であり、そしてSourceParentフィールドに従って親フォルダが1006であると決定する。その後、ローカルサーバ(例えば、200001)における同期対象データ−それが置換される−のUIDが、LUIDとGUIDとの間の対応関係について構成されたテーブルから取得され、そして同期対象データのローカルUIDに対応する項目がローカルに構成されたデータ項目テーブル中で置換される。すなわち、項目200001中のU1の情報、U1およびそれらの対応関係が置換される。
サーバにおいてU2を置換する方法はU1を置換する方法と同じであり、ここでこれ以上述べることはしない。
注目すべきは、この実施形態では、U2はフォルダ“Spring Festival”および“Mid-autumn Festival”の両方に属するが、U2を置換するためにはReplaceコマンドは1度だけ送ればよく、サーバにおいてU2は1度だけ置換すればよく、それで2つのフォルダの両方の中のU2を置換することができる。サーバにおいては実際にはデータのコピーが1つだけ格納されており、データの帰属が索引テーブルに示されているからである。本発明の実施形態の方法を使用することにより冗長データが最大限に削減され、リソースを節減できることがわかる。
第3実施形態では、ユーザはデータ項目“M1”をフォルダ“music”からフォルダ“favorite”へ移動し、そしてフォルダ “mp3” 全体を“favorite”へ移動する。
図5aおよび図5bに示すように、図5aは、本発明の第3実施形態においてユーザが定義したデータ構造を示す概略図であり、ここで、四角のフレームはFolderを示し、円はデータItemを示し、実線はその状態がExisting(現存)であることを示し、そして点線はその状態がMove(移動)であることを示す。図5bは、本発明の第3実施形態におけるクライアントのデータ蓄積装置を示す概略図である。データ項目テーブル、フォルダテーブルおよび索引テーブルはクライアント中に格納されている。各テーブル中のデータ状態は図5b中に対応して示される。
ユーザがルートフォルダの同期を要求した場合、クライアントは以下の同期コマンドを整然と作成する。
まず、クライアントは、ユーザから受信したルートフォルダを同期化するコマンドに従って、ルートフォルダの全てのサブフォルダの状態をチェックする。この実施形態では、ルートフォルダの全てのサブフォルダの状態に変更がなく、処理される必要はない。次いで、クライアントはルートフォルダ配下のデータ項目の状態が変更されているかどうかをチェックする。この実施形態では、ルートフォルダ配下のデータ項目の状態は変更がなく、処理の必要はない。
その後、クライアントは各サブフォルダの状態が変更されているかどうかを順々にチェックする。この実施形態では、クライアントはmusicフォルダ配下の“mp3”サブフォルダの状態がM(移動)であると決定し、次いでMove同期コマンドを構築する。Move同期コマンドはSyncコマンドのサブコマンドと呼ばれてもよく、これは、懸案の移動データを伝えるために使用される。構築されるMoveコマンドでは、データタイプがFolderであることを示すためにMetaフィールドが使用され、データタイプはフォルダテーブルに従って決定され、同期対象データの番号が1006であることを示すためにLUIDフィールドが使用され、そしてフォルダの移動後の親フォルダが1004であることを示すためにSourceParentフィールドが使用される。
次いで、クライアントは、musicフォルダ配下のデータ項目の状態を、1006に対応するデータ項目は索引テーブルで2001であってその状態はM(移動)と決定し、Move同期コマンドが構築され、そしてその構築されたコマンドにおいて、データタイプがItemであることを指示するためにMetaフィールドが使用され、同期対象データの番号が2001であることを指示するためにLUIDフィールドが使用され、そしてフォルダの移動後の親フォルダが1004であることを指示するためにSourceParentフィールドが使用される。
このようにして、本実施形態では他に移動されるデータは存在せず、それ以上の処理はない。
その後、全ての構築されたMove同期コマンドはサーバへ送信される。詳細な転送のやり方はAdd同期コマンドの転送のものと同じであり、ここではこれ以上説明しない。
サーバが上記のMoveコマンドを受信した後の同期操作を実行するプロセスについてこれから説明する。このプロセスに関係するテーブルは、図5bに示されるテーブルと同様であり、ここではテーブルは示さない。
mp3フォルダの移動を指示するMove同期コマンドの受信後、サーバは、受信したMove同期コマンドのMetaフィールドに従って同期対象のデータタイプがFolderであると決定し、そしてLUIDフィールドに従ってクライアントにおける同期対象データの番号が1006であると決定し、さらにSourceParentフィールドに従ってmp3フォルダが移動した後の親フォルダが1004であると決定する。その後、サーバにおける懸案の移動データの番号(例えば、100006)が、LUIDとGUIDとの間の対応関係について構成されたテーブルから取得され、そしてローカルに構成されたフォルダテーブルの同期対象ローカルデータの番号に対応する項目において、親フォルダが、受信Move同期コマンドで伝えられた親フォルダに変更される、すなわち、テーブル中の100006に対応する親フォルダが1005から1004に変更される。
M1データ項目の移動を指示するMove同期コマンドの受信後、サーバは、受信したMove同期コマンドのMetaフィールドに従って同期対象のデータタイプがItemであることを決定し、そしてLUIDフィールドに従ってクライアントにおける同期対象データの番号が2001であることを決定し、さらにSourceParentフィールドに従ってM1データ項目の移動後の親フォルダが1004であると決定し、その後、ローカルサーバにおける同期対象データの置換された番号、例えば、200001、がLUIDとGUIDとの間の対応関係について構成されたテーブルから取得され、ローカルに構成された索引テーブルにおけるローカルな同期対象データの番号に対応する項目において、親フォルダが受信同期コマンドで伝えられた親フォルダに変更される、すなわち、テーブル中の200001に対応する親フォルダが1005から1004へ変更される。
本発明の実施形態による方法は、移動同期操作を実行するとき、対応するデータテーブルの対応関係の変更を必要とするだけであり、実際のデータの移動を必要とせず、その結果、限られたリソースが最大限に節約されることがわかる。
注目すべきは、フォルダのみならずそのサブフォルダおよびデータ項目が移動する時、例えば、mp3フォルダが移動する時、mp3フォルダに関係する1つのMoveコマンドのみが送信されればよく、mp3フォルダ配下のサブフォルダおよびデータ項目に関係するその他のMoveコマンドは、そのサブフォルダおよびそれらデータ項目が属する親フォルダが変化しないので、送信の必要がないことである。
第1同期コマンドで伝えられる操作タイプが削除であって、同期対象フォルダ配下のデータ項目を同期化するステップが、同期対象フォルダのデータ項目のデータ内容が同期対象フォルダの配下のみに格納されているかどうか、もしそうである場合、第1同期コマンドで値“true”を有する永久削除識別子をさらに伝えるか、もしそうでない場合、第1同期コマンドで値“false”を有する永久削除識別子をさらに伝えるか、を決定するステップを含む時、第1同期コマンドによって同期対象フォルダに対して実行されるデータ同期操作は、値“true”を有する永久削除識別子が第1同期コマンドで伝えられたかどうかを決定するステップを含み、もしそうである場合は同期対象フォルダ配下のデータ項目のデータ内容を削除するステップを、もしそうでない場合はデータ項目と同期対象フォルダとの間の対応関係を廃棄するステップを、含む。値“true(真)”を有する永久削除識別子が示されてない場合、常に永久削除とみなすことができる。
第4実施形態では、ユーザは“bless”フォルダ配下の“D1”データ項目を削除し、そして“Spring Festival”フォルダ配下のデータ“U2”について永久削除を選択し、そして“Spring Festival”フォルダ配下のデータ“D3”について非永久削除を選択する。この実施形態では、データ項目の削除についてのみ説明する。
図6aおよび図6bに示すように、図6aは、本発明の第4実施形態を使用してユーザが定義したデータ構造を示す概略図であり、ここで、四角のフレームはFolderを示し、円はデータItemを示し、実線はその状態がExisting(現存)であることを示し、そして点線はその状態がDelete(削除)であることを示す。図6bは、本発明の第4実施形態を使用するクライアントのデータ蓄積装置を示す概略図である。データ項目テーブル、フォルダテーブルおよび索引テーブルはクライアント中に格納されている。各テーブル中のデータ状態は図6b中に対応して反映されている。
ユーザが“bless”フォルダの同期を要求した場合、クライアントは以下の同期コマンドを整然と作成する。
クライアントはblessフォルダ配下のデータ項目の状態を決定する。データ項目2001の状態はP−Dであるので、Delete同期コマンドが構築される。Delete同期コマンドは、あるデータの削除を伝えるために使用されるSyncコマンドのサブコマンドと呼ばれる場合もあり、構築されるDelete同期コマンドでは、データタイプがItemであることを示すためにMetaフィールドが使用され、同期対象データの番号が2001であることを指示するためにLUIDフィールドが使用され、そして永久削除を指示する識別子もまたDelete同期コマンドに含められる必要がある。
blessフォルダ配下に削除データ項目が存在しないと決定した後、クライアントはblessフォルダ配下のサブフォルダの状態をチェックする。この実施形態では、blessフォルダ配下のサブフォルダ状態には変更がなく、処理の必要がない。
blessフォルダ配下に削除サブフォルダは存在しないと決定した後、クライアントは“Spring Festival”サブフォルダ配下のデータ項目の状態を決定する。その方法の詳細はD1を決定するものと同じである。すなわち、最終結果は2つのDelete同期コマンドを構築することであり、一方のDelete同期コマンドでは、データタイプがvCard(一種のData Itemとして知られる)であることを示すためにMetaフィールドが使用され、同期対象データの番号が2002であることを指示するためにLUIDフィールドが使用され、そして永久削除を指示する識別子、例えば、P−D、もまたそのコマンドに含められる必要がある。そして、もう一方のDeleteコマンドでは、データタイプがvCard(一種のData Itemとして知られる)であることを示すためにMetaフィールドが使用され、同期対象データの番号が2003であることを指示するためにLUIDフィールドが使用され、そして非永久削除を指示する識別子、例えば、NP−D、もまたそのコマンドに含められる必要がある。

構築されたDelete同期コマンドは懸案の削除データを含まなくてよく、懸案の削除データのタイプおよびUIDを、永久削除か非永久削除かのシナリオで指示しさえすればよい。以上は、Deleteコマンドの1つの実行のやり方であり、すなわち、そのコマンドは、タイプ、UIDおよび永久削除か非永久削除かを伝えるために使用される識別子の3種類の情報を含むが、勿論、別の実行のやり方も存在し、例えば、Deleteコマンドを2つのコマンド、一方をP-Deleteコマンド、他方をNP-Deleteコマンド、に分割すれば、各々の削除コマンドは、タイプおよび懸案削除データの番号を含みさえすればよい。
最後に、削除を伝えるために使用される全ての構築された同期コマンドはサーバへ送信される。
サーバが上記Deleteコマンドを受信した後の同期操作で実行されるプロセスをこれから説明する。
D1データ項目の削除を指示する同期コマンドの受信後、サーバは、受信した同期コマンドのMetaフィールドに従って同期対象データのタイプがItemであると決定し、LUIDフィールドに従ってクライアントにおける同期対象データの番号は2001であると決定し、削除が永久削除であると決定し、その後、ローカルサーバにおける懸案の削除データ番号−例えば、200001−がLUIDとGUIDとの間の対応関係について構成されたテーブルから取得され、データ項目テーブルおよび索引テーブル中で、同期対象データのローカル番号に対応する項目がそれぞれ削除される、すなわち、200001と番号を付された全項目が削除される。同時に、ローカルデータベースにおいてデータD1が削除される。
D2データ項目の削除を伝えるために使用されるDelete同期コマンドの受信後、サーバは対応するデータテーブルの全項目を削除するが、D2を削除する方法はD1を削除するものと同じであり、ここでそれ以上説明しない。
D3データ項目の削除を伝えるために使用されるDelete同期コマンドの受信後、サーバは、受信したDelete同期コマンドのMetaフィールドに従って同期対象データのタイプがItemであると決定し、LUIDフィールドに従ってクライアントにおける同期対象データの番号が2003であると決定し、削除が非永久削除であると決定し、その後、ローカルサーバにおける懸案の削除データ番号−例えば、200003−がLUIDとGUIDとの間の対応関係について構成されたテーブルから取得され、索引テーブルにおいて、同期対象データのローカルデータの番号に対応する項目のみが削除される、すなわち、200003と番号を付された全項目が削除され、D3データはローカルデータベースでは削除されない。
本発明の実施形態による本方法は、削除の同期操作を実行する時に、クライアントとサーバとの間で識別子を送信しさえすればよく、また詳細なデータ内容を送信する必要はなく、その結果、限りあるリソースが最大限に節約されることがわかる。
第5実施形態では、ユーザは“bless”フォルダ全体を削除する。それは“bless”フォルダの全てのサブフォルダおよびデータ項目を削除することに等しい。この実施形態では、D1とD2のみがblessフォルダの配下にあって、D3はblessフォルダおよびjokeフォルダの配下にある。また、この実施形態ではフォルダを削除する説明のみとする。
図7aおよび図7bに示すように、図7aは、本発明の第5実施形態を使用してユーザが定義したデータ構造を示す概略図であり、ここで、四角のフレームはFolderを示し、円はデータItemを示し、実線はその状態がExisting(現存)であることを示し、そして点線はその状態がDelete(削除)であることを示す。図7bは、本発明の第5実施形態を使用するクライアントのデータ蓄積装置を示す概略図である。データ項目テーブル、フォルダテーブルおよび索引テーブルはクライアント中に格納されている。各テーブル中のデータ状態は、図7b中に対応して反映されている。
ユーザがルートフォルダの同期を要求した場合、クライアントは以下の同期コマンドを整然と作成する。
まず、クライアントは、ユーザから受信したルートフォルダの同期のコマンドに従って、ルートフォルダ配下の全てのサブフォルダの状態をチェックする。この実施形態では、blessの状態はフォルダテーブルからDと決定され、クライアントは以下のステップをさらに実行する。すなわち、懸案の削除フォルダのデータ項目およびそのフォルダのサブフォルダのデータ項目が懸案の削除フォルダの配下のみに存在するかを決定するステップ、もしそうである場合、Delete同期コマンドを構築して永久削除を指示する情報をDelete同期コマンドに含ませるステップ、もしそうでない場合、各々のデータ項目およびフォルダに関するDelete同期コマンドをそれぞれ構築して、永久削除を指示する情報を懸案の削除フォルダ配下のみに存在するデータ項目またはフォルダに対応するDelete同期コマンドに含ませ、そして非永久削除を指示する情報を懸案の削除フォルダ配下のみには存在しないデータ項目またはフォルダに対応するDelete同期コマンドに含ませるステップである。すなわち、そのデータ項目またはフォルダが別のフォルダの配下にも存在する場合は(ここでは、他のフォルダはblessサブフォルダを含ないとする)、非永久削除情報がそのようなデータに対応するDelete同期コマンドに含まれ、そして、そのようなデータでない場合は、永久削除情報がそれに対応するDelete同期コマンドに含まれる。その後、全ての構築されたDelete同期コマンドはサーバに送信される。ここで、削除コマンドはそれぞれ各データ項目およびフォルダに関連して構築され、それは実際に再帰的な同期である。
サーバが上記のDelete同期コマンドを受信した後の同期操作の実行のプロセスについてこれから説明する。
サーバが受信したコマンドがデータ項目と関連するDelete同期コマンドの場合、処理のやり方は第4実施形態のものと同じであり、ここではそれ以上説明しない。
サーバが受信したコマンドがフォルダに関連するDelete同期コマンドの場合、ローカルサーバにおける懸案の削除データの番号がLUIDとGUIDとの間の対応関係について構成されたテーブルから取得され、次いで、同期対象ローカルデータの番号に対応する項目が、ローカルに構成されたフォルダテーブルから永久削除か非永久削除かに関わらず削除る。
またフォルダ削除操作に関連して注目すべきは、クライアントが同期を主導してフォルダを削除−例えば、blessフォルダを削除−するとき、それは、そのフォルダに関連する1つのDelete同期コマンドを構築できるのみであり、それが実行するその他の操作、例えば、「懸案の削除フォルダのデータ項目およびそのフォルダのサブフォルダのデータ項目が懸案の削除フォルダの配下のみに存在するかの決定」等は、クライアントの操作を簡易化するために、全てサーバによって実行されることである。勿論、逆もまた同様である。
実際の適用では、第4実施形態は、通常、第5実施形態と併せて使用される。
さらに、削除操作については、サーバの同期操作の終了後、クライアントはそれ自身の対応するデータテーブルを削除する。
第6実施形態では、ユーザはデータ項目“M1”を“music”フォルダから“favorite”フォルダへコピーし、そして“mp3”フォルダを“favorite”フォルダへコピーする。
図8aおよび図8bに示すように、図8aは、本発明の第6実施形態を使用してユーザが定義したデータ構造を示す概略図であり、ここで、四角のフレームはFolderを示し、円はデータItemを示し、実線はその状態がExisting(現存)であることを示し、そして太線はその状態がCopy(コピー)であることを示す。図8bは、本発明の第6実施形態を使用するクライアントのデータ蓄積装置を示す概略図である。データ項目テーブル、フォルダテーブルおよび索引テーブルはクライアント中に格納されている。各テーブルに付加されたデータの状態は図3b中に対応して反映されている。
注目すべきは、上記の実施形態において、クライアントにおける番号とサーバにおける番号との間の対応関係のテーブル、例えば、LUIDとGUIDとの間の対応関係のテーブル−すなわち、LUID−GUIDメカニズム−を有する目的は、長いUIDをサポートできない限られた容量の装置が存在する事実を考慮していることである。全ての装置が長いUIDをサポートできる場合、LUID−GUIDメカニズムは、クライアントおよびサーバがクライアントかサーバかによって生成された同じUIDを使用するように進化し、その場合、プロセスは同じUIDを使用して直接に実行することができ、そして、LUID−GUIDの対応付けはもはや不要となる。従ってその場合は、本発明のこの実施形態の実装に限定されない。
ユーザがルートフォルダの同期を必要とするとき、クライアントおよびサーバの操作は第1実施形態のものと同じである。それらの違いは、第1実施形態では、クライアントは各データ項目およびフォルダに関連して1つのAdd同期コマンドを送信し、一方、この実施形態では、クライアントがフォルダに関連してCopy同期コマンド(そのCopy同期コマンドもまたSyncコマンドのサブコマンドであり、懸案のコピーデータを伝えるために使用される)を送信する場合、そのフォルダ配下のサブフォルダおよびデータ項目に関連してはCopy同期コマンド送信する必要がなく、そのためデータの転送量はさらに低減してネットワークリソースが節約される。この実施形態におけるサーバのプロセスは第1実施形態のものと同じであり、各フォルダおよびデータ項目に関連して逐一実行される。
さらに付け加えると、Copy同期が実行されるとき、ユーザは、実際のデータのコピーが作成される必要があるかどうか、もしそうである場合、同期操作を実行する側のデータ同期操作が、ローカルデータベースにおけるデータのコピーおよびローカルに構成されたデータフォルダテーブル中の対応する項目の追加、をさらに含むか、を要求に従って決定する。
クライアントの変更操作、例えば、移動したフォルダ中でのエントリの追加、置換または削除、がサーバのそれと矛盾する場合、本発明の実施形態は、既存の矛盾解決メカニズムを拡張することによりクライアントおよびサーバ間の完全なデータ同期を保証することができる。詳細な実装は、クライアントおよびサーバからのデータ内容をマージするための、ある構成に基づく「ウィン−ウィン(win-win)」という名前の新しい解決法を追加するよう既存の矛盾解決メカニズムを拡張し、そして現在の「クライアント−ウィン(Client-Win)」または「サーバ−ウィン(Server-Win)」解決法に加えて、ウィン−ウィンのやり方によりクライアントおよびサーバ間で完全に同じデータを確保する。クライアントのデータ操作がサーバのそれと矛盾するとき、サーバが矛盾を検出して「ウィン−ウィン」解決法を実行する。次いで、サーバは、矛盾解決結果に従って同期操作を返信し、クライアントはサーバのデータ操作に従って同期操作を実行するが、そのデータ操作は、追加操作、置換操作、移動操作、削除操作、コピー操作またはそれらの任意の組合せを含む。例えば、ユーザがクライアントにおいてAフォルダを移動してそれをBフォルダのサブフォルダとし、そしてサーバ中のAフォルダに項目を追加する、すると、クライアントおよびサーバ間の完全な同一データを保証するために、サーバはAフォルダを移動してそれをBフォルダのサブフォルダとし、そしてクライアントもまたAフォルダに項目を追加する。
本発明の実施形態は、上記の方法に基づくデータ同期のためのシステムをさらに開示し、そのシステムはクライアントおよびサーバを含み、それらは同期コマンドの交換により相互に通信し合う。クライアントおよびサーバは、同期対象フォルダの決定および同期対象フォルダの同期の実行にさらに使用される。
図9は、本発明の実施形態によるデータ同期のためのシステムアーキテクチャを示す概略図である。図9に示すように、クライアントは、ノードアドレスを処理する第1モジュールおよびデータ同期のための第1モジュールを含み、そしてサーバはノードアドレスを処理する第2モジュールおよびデータ同期のための第2モジュールを含む。
クライアントにおいては、ノードアドレスを処理する第1モジュールが、同期対象ノードのアドレスを決定してデータ同期のための第1モジュールへ送信し、同期対象ノードのアドレスをデータ同期のための第1モジュールから受信し、受信したアドレスに従って同期対象ノードを決定し、かつ同期対象ノード配下のデータについてクライアントおよびサーバ間の同期を提供するために使用され、また、データ同期のための第1モジュールが、同期対象ノードのアドレスをノードアドレスを処理する第1モジュールから受信し、同期対象ノードのアドレスを伝える同期コマンドを構築し、その同期コマンドをサーバへ送信し、同期コマンドをサーバから受信し、同期対象ノードのアドレスをその同期コマンドから取得し、かつその取得したアドレスをノードアドレスを処理する第1モジュールへ送信するために使用される。ノードアドレスを処理する第1モジュールは、ユーザがクライアント用に同期対象ノードのアドレスを設定できるよう、構築されたコマンドによってユーザから入力された同期対象ノードのアドレスを受信するためにさらに使用されてもよい。
サーバにおいては、ノードアドレスを処理する第2モジュールが、同期対象ノードのアドレスを決定してデータ同期のための第2モジュールへ送信し、同期対象ノードのアドレスをデータ同期のための第2モジュールから受信し、受信アドレスに従ってその時の同期対象ノードを決定し、かつ同期対象ノードの配下のデータについてクライアントおよびサーバ間の同期を提供するために使用され、また、データ同期のための第2モジュールが、同期対象ノードのアドレスをノードアドレスを処理する第2モジュールから受信し、同期対象ノードのアドレスを伝える同期コマンドを構築し、同期コマンドをサーバに送信し、同期コマンドをサーバから受信して同期対象ノードのアドレスを分析によって同期コマンドから取得し、かつ取得したアドレスをノードアドレスを処理する第2モジュールに送信するために使用される。
データ同期のための上記のシステムから、本発明の実施形態は、データ同期のためのクライアントおよびデータ同期のためのサーバをさらに開示することがわかる。クライアントおよびサーバを実装する原理は、上記のシステムにおけるクライアントおよびサーバについてのものと同じであり、したがって、それの動作原理および内部構造をここでさらに説明することはしないが、本発明の保護の範囲に含まれるものとする。
以上は、本発明の好ましい実施形態に過ぎず、本発明を限定するために使用されるものではない。本発明の精神および原理の下になされたいかなる変更、等価な置換または改良も、本発明の保護の範囲に含まれるものとする。
データ同期の実行の概略図である。 クライアントおよびサーバのデータ蓄積装置を示す概略図である。 本発明の第1実施形態による、ユーザによって定義されるデータ構造を示す概略図である。 本発明の第1実施形態による、クライアントのデータ蓄積装置を示す概略図である。 本発明の第2実施形態による、ユーザによって定義されるデータ構造を示す概略図である。 本発明の第2実施形態による、クライアントのデータ蓄積装置を示す概略図である。 本発明の第3実施形態による、ユーザによって定義されるデータ構造を示す概略図である。 本発明の第3実施形態による、クライアントのデータ蓄積装置を示す概略図である。 本発明の第4実施形態による、ユーザによって定義されるデータ構造を示す概略図である。 本発明の第4実施形態による、クライアントのデータ蓄積装置を示す概略図である。 本発明の第5実施形態による、ユーザによって定義されるデータ構造を示す概略図である。 本発明の第5実施形態による、クライアントのデータ蓄積装置を示す概略図である。 本発明の第6実施形態による、ユーザによって定義されるデータ構造を示す概略図である。 本発明の第6実施形態による、クライアントのデータ蓄積装置を示す概略図である。 本発明の実施形態による、データ同期のためのシステムアーキテクチャを示す概略図である。

Claims (14)

  1. 複数の装置の同期を実行する方法であって、
    同期セッションの同期開始フェーズで、第1装置により、第2装置から該第2装置の階層的木構造の記述が受信され、前記記述に基づいて、前記階層的木構造状に配置された複数の情報ノードのうちの同期対象情報ノードのアドレスが決定される段階と、
    前記同期開始フェーズで、前記第1装置により、前記同期対象情報ノードを指定するための同期コマンドが前記第2装置に送信される段階と、
    前記同期セッションの同期フェーズで、前記第1装置により、前記アドレスが用いられ、指定された情報ノードが前記第2装置に同期される段階と
    を有し、
    前記記述は、階層的木構造中の全情報ノードの階層的位置を記述するために使用され、
    前記アドレスは、階層的木構造中で情報ノードの位置を特定するために使用される階層的位置情報を含み、
    前記情報ノードは、データベース中のデータ項目またはフォルダであり、
    前記同期コマンドは、前記同期対象情報ノードの前記アドレスを含み、
    前記同期コマンドは、再帰的同期を実行するか否かを指示するための再帰的同期識別子をさらに含み、
    前記同期開始フェーズで、前記再帰的同期識別子が再帰的同期の実行を示すとの判断がなされた場合、前記同期フェーズで、前記第1装置は、指定された情報ノードの前記アドレスを用いて、指定された情報ノードを階層的木構造中のサブ木のルートノードとして扱って、前記サブ木の全情報ノードの同期を実行し、
    前記同期開始フェーズで、前記再帰的同期識別子が非再帰的同期の実行を示すとの判断がなされた場合、前記同期フェーズで、前記第1装置は、指定された情報ノードの前記アドレスを用いて、指定された情報ノードだけの同期を実行することを特徴とする方法。
  2. 複数の装置の同期を実行する方法であって、
    同期セッションの同期開始フェーズで、第1装置により、第2装置の階層的木構造状に配置された複数の情報ノードのうちの同期対象情報ノードのアドレスとして、アドレスの指定が行われ、当該アドレスが前記第2装置に存在しない場合、前記第2装置により、当該アドレスにノードが生成される段階と、
    前記同期開始フェーズで、前記第1装置により、前記同期対象情報ノードを指定するための同期コマンドが前記第2装置に送信される段階と、
    前記同期セッションの同期フェーズで、前記第1装置により、前記アドレスが用いられ、指定された情報ノードが前記第2装置に同期される段階と
    を有し、
    前記アドレスは、階層的木構造中で情報ノードの位置を特定するために使用される階層的位置情報を含み、
    前記情報ノードは、データベース中のデータ項目またはフォルダであり、
    前記同期コマンドは、前記同期対象情報ノードの前記アドレスを含み、
    前記同期コマンドは、再帰的同期を実行するか否かを指示するための再帰的同期識別子をさらに含み、
    前記同期開始フェーズで、前記再帰的同期識別子が再帰的同期の実行を示すとの判断がなされた場合、前記同期フェーズで、前記第1装置は、指定された情報ノードの前記アドレスを用いて、指定された情報ノードを階層的木構造中のサブ木のルートノードとして扱って、前記サブ木の全情報ノードの同期を実行し、
    前記同期開始フェーズで、前記再帰的同期識別子が非再帰的同期の実行を示すとの判断がなされた場合、前記同期フェーズで、前記第1装置は、指定された情報ノードの前記アドレスを用いて、指定された情報ノードだけの同期を実行することを特徴とする方法。
  3. 複数の装置の同期を実行する方法であって、
    同期セッションの同期開始フェーズで、第1装置により、第2装置の階層的木構造状に配置された複数の情報ノードのうちの同期対象情報ノードのアドレスが取得される段階と、
    前記同期開始フェーズで、前記第1装置により、前記同期対象情報ノードを指定するための同期コマンドが前記第2装置に送信される段階と、
    前記同期セッションの同期フェーズで、前記第1装置により、前記アドレスが用いられ、指定された情報ノードが前記第2装置に同期される段階と
    を有し、
    前記アドレスは、階層的木構造中で情報ノードの位置を特定するために使用される階層的位置情報を含み、
    前記情報ノードは、データベース中のデータ項目またはフォルダであり、
    前記アドレスは、フィルタリング条件として構成され
    前記同期コマンドは、前記同期対象情報ノードの前記アドレスを含み、
    前記同期コマンドは、再帰的同期を実行するか否かを指示するための再帰的同期識別子をさらに含み、
    前記同期開始フェーズで、前記再帰的同期識別子が再帰的同期の実行を示すとの判断がなされた場合、前記同期フェーズで、前記第1装置は、指定された情報ノードの前記アドレスを用いて、指定された情報ノードを階層的木構造中のサブ木のルートノードとして扱って、前記サブ木の全情報ノードの同期を実行し、
    前記同期開始フェーズで、前記再帰的同期識別子が非再帰的同期の実行を示すとの判断がなされた場合、前記同期フェーズで、前記第1装置は、指定された情報ノードの前記アドレスを用いて、指定された情報ノードだけの同期を実行することを特徴とする方法。
  4. 前記第1装置により、前記同期対象情報ノードを指定するための同期コマンドが前記第2装置に送信される段階が、
    前記第1装置により、決定した送信元および同期対象のターゲットアドレスを伝えるAlertコマンドと、同期タイプ折衝パラメータとが前記第2装置に送信される段階を含むことを特徴とする請求項1に記載の方法。
  5. 前記第1装置により、前記第2装置から該第2装置の階層的木構造の記述が受信され、前記記述に基づいて、前記階層的木構造状に配置された複数の情報ノードのうちの同期対象情報ノードのアドレスが決定される段階が、
    前記第1装置により、前記第2装置の階層的木構造の記述を取得するための同期コマンドが前記第2装置に送信される段階と、
    前記第2装置により、自身の階層的木構造の記述が応答として前記第1装置に返される段階と
    を含むことを特徴とする請求項1に記載の方法。
  6. 前記記述を取得するための前記同期コマンドが、装置性能情報を取得するために使用される拡張同期コマンドであり、
    前記拡張同期コマンドには、装置の階層的木構造の記述を取得する要求を指示するための識別子が追加され、
    前記第2装置の階層的木構造の記述が、第2拡張コマンドによって第1装置に返され、
    前記第2拡張コマンドには複数のItem要素が含まれ、階層的木構造中の個々のノードの記述を示すために各Item要素が使用されるか、または、前記第2拡張コマンドには1つのItem要素が含まれ、階層的木構造中の全ノードの記述が1つのItem要素にカプセル化されることを特徴とする請求項5に記載の方法。
  7. 前記第1装置により、前記第2装置から該第2装置の階層的木構造の記述が受信され、前記記述に基づいて、前記階層的木構造状に配置された複数の情報ノードのうちの同期対象情報ノードのアドレスが決定される段階が、
    前記第2装置により、自身の階層的木構造の記述が通知として前記第1装置に自発的に送信される段階を含み、
    前記通知は、修正されたSyncMLプロトコルに従う通知形式であるか、または、ショートメッセージサービス(SMS)、ワイヤレス・アプリケーション・プロトコル・プッシュ(WAP Push)サービス、セッション開始プロトコル(SIP)メッセージ、およびマルチメディアメッセージサービス(MMS)のうちのいずれかを介して前記第2装置により送信されることを特徴とする請求項1に記載の方法。
  8. 前記フィルタリング条件が、ノードレベルのフィルタリングであり、
    前記同期コマンドが、ノードレベルのフィルタリング条件を伝えるための新たに追加されたサブ要素または属性を含んだFilter要素を含み、
    前記同期対象情報ノードを指示するために、CGI構文が使用されることを特徴とする請求項3に記載の方法。
  9. 前記第1装置と前記第2装置との双方で3つのテーブルが構築される段階をさらに有し、
    前記3つのテーブルは、前記同期フェーズで前記同期対象情報ノードの同期を実行するために、前記第1装置および前記第2装置によって使用され、
    前記3つのテーブルは、
    前記階層的木構造中の全データ項目の情報を格納するために使用される第1テーブルと、
    前記階層的木構造中の全フォルダの情報を格納するために使用される第2テーブルと、
    前記階層的木構造中の全データ項目の所属情報を格納するために使用される第3テーブルと
    からなり、
    各データ項目の前記情報は、データ項目のUIDとデータ項目の内容との対応関係を含み、
    各フォルダの前記情報は、フォルダの番号、フォルダの名前、当該フォルダが属する親フォルダ、フォルダの状態、およびそれらの対応関係を含み、
    フォルダの状態は、現存、追加、更新、削除、移動、およびコピーからなり、
    各データ項目の前記所属情報は、データ項目のUID、当該データ項目が属する親フォルダ、データ項目の状態、およびそれらの対応関係を含むことを特徴とする請求項1に記載の方法。
  10. 前記同期フェーズで、
    前記階層的木構造中のフォルダの同期を実行する際、前記第1装置により、前記第2テーブル中の前記フォルダの状態によって定まる操作タイプを含む同期コマンドが前記第2装置に送信されるとともに、前記第3テーブルに照らして、前記フォルダ下にデータ項目が存在するとの判断がなされた場合に、前記第1装置により、前記第1テーブルに照らして、前記フォルダ下の前記データ項目の内容がさらに決定され、前記データ項目の内容と前記第3テーブル中の前記フォルダ下の前記データ項目の状態によって定まる操作タイプとを含む第2同期コマンドが前記第2装置に送信される段階と、
    前記階層的木構造中のデータ項目の同期を実行する際、前記第1装置により、前記第1テーブルに照らして、前記データ項目の内容が決定され、前記データ項目の内容と前記第3テーブル中の前記データ項目の状態によって定まる操作タイプとを含む同期コマンドが前記第2装置に送信される段階と
    をさらに有し、
    前記第2同期コマンドは、前記データ項目の親フォルダとして前記フォルダを指定することを特徴とする請求項9に記載の方法。
  11. 同期の実行のための装置であって、
    同期セッションの同期開始フェーズで、第2装置から該第2装置の階層的木構造の記述を受信し、前記記述に基づいて、前記階層的木構造状に配置された複数の情報ノードのうちの同期対象情報ノードのアドレスを決定するように構成された第1モジュールと、
    前記同期開始フェーズで、前記同期対象情報ノードを指定するための同期コマンドを前記第2装置に送信し、前記同期セッションの同期フェーズで、前記第1モジュールから取得したアドレスを用いて、指定された情報ノードを前記第2装置に同期させるように構成された第2モジュールと
    を具備し、
    前記記述は、階層的木構造中の全情報ノードの階層的位置を記述するために使用され、
    前記アドレスは、階層的木構造中で情報ノードの位置を特定するために使用される階層的位置情報を含み、
    前記情報ノードは、データベース中のデータ項目またはフォルダであり、
    前記同期コマンドは、前記同期対象情報ノードの前記アドレスを含み、
    前記同期コマンドは、再帰的同期を実行するか否かを指示するための再帰的同期識別子をさらに含み、
    前記同期開始フェーズで、前記再帰的同期識別子が再帰的同期の実行を示すとの判断がなされた場合、前記同期フェーズで、前記第2モジュールは、指定された情報ノードの前記アドレスを用いて、指定された情報ノードを階層的木構造中のサブ木のルートノードとして扱って、前記サブ木の全情報ノードの同期を実行し、
    前記同期開始フェーズで、前記再帰的同期識別子が非再帰的同期の実行を示すとの判断がなされた場合、前記同期フェーズで、前記第2モジュールは、指定された情報ノードの前記アドレスを用いて、指定された情報ノードだけの同期を実行することを特徴とする装置。
  12. 複数の装置の同期を実行するシステムであって、
    第1装置と、
    第2装置と
    を具備し、
    同期セッションの同期開始フェーズで、前記第1装置が、前記第2装置から該第2装置の階層的木構造の記述を受信し、前記記述に基づいて、前記階層的木構造状に配置された複数の情報ノードのうちの同期対象情報ノードのアドレスを決定し、
    前記同期開始フェーズで、前記第1装置が、前記同期対象情報ノードを指定するための同期コマンドを前記第2装置に送信し、
    前記同期セッションの同期フェーズで、前記第1装置が、前記アドレスを用いて、指定された情報ノードを前記第2装置に同期させ、
    前記記述は、階層的木構造中の全情報ノードの階層的位置を記述するために使用され、
    前記アドレスは、階層的木構造中で情報ノードの位置を特定するために使用される階層的位置情報を含み、
    前記情報ノードは、データベース中のデータ項目またはフォルダであり、
    前記同期コマンドは、前記同期対象情報ノードの前記アドレスを含み、
    前記同期コマンドは、再帰的同期を実行するか否かを指示するための再帰的同期識別子をさらに含み、
    前記同期開始フェーズで、前記再帰的同期識別子が再帰的同期の実行を示すとの判断がなされた場合、前記同期フェーズで、前記第1装置は、指定された情報ノードの前記アドレスを用いて、指定された情報ノードを階層的木構造中のサブ木のルートノードとして扱って、前記サブ木の全情報ノードの同期を実行し、
    前記同期開始フェーズで、前記再帰的同期識別子が非再帰的同期の実行を示すとの判断がなされた場合、前記同期フェーズで、前記第1装置は、指定された情報ノードの前記アドレスを用いて、指定された情報ノードだけの同期を実行することを特徴とするシステム。
  13. 複数の装置の同期を実行するシステムであって、
    第1装置と、
    第2装置と
    を具備し、
    同期セッションの同期開始フェーズで、前記第1装置が、前記第2装置の階層的木構造状に配置された複数の情報ノードのうちの同期対象情報ノードのアドレスとして、アドレスの指定を行い、指定したアドレスが前記第2装置に存在しない場合、前記第2装置が、当該アドレスにノードを生成し、
    前記同期開始フェーズで、前記第1装置が、前記同期対象情報ノードを指定するための同期コマンドを前記第2装置に送信し、
    前記同期セッションの同期フェーズで、前記第1装置が、前記アドレスを用いて、指定された情報ノードを前記第2装置に同期させ、
    前記アドレスは、階層的木構造中で情報ノードの位置を特定するために使用される階層的位置情報を含み、
    前記情報ノードは、データベース中のデータ項目またはフォルダであり、
    前記同期コマンドは、前記同期対象情報ノードの前記アドレスを含み、
    前記同期コマンドは、再帰的同期を実行するか否かを指示するための再帰的同期識別子をさらに含み、
    前記同期開始フェーズで、前記再帰的同期識別子が再帰的同期の実行を示すとの判断がなされた場合、前記同期フェーズで、前記第1装置は、指定された情報ノードの前記アドレスを用いて、指定された情報ノードを階層的木構造中のサブ木のルートノードとして扱って、前記サブ木の全情報ノードの同期を実行し、
    前記同期開始フェーズで、前記再帰的同期識別子が非再帰的同期の実行を示すとの判断がなされた場合、前記同期フェーズで、前記第1装置は、指定された情報ノードの前記アドレスを用いて、指定された情報ノードだけの同期を実行することを特徴とするシステム。
  14. 複数の装置の同期を実行するシステムであって、
    第1装置と、
    第2装置と
    を具備し、
    同期セッションの同期開始フェーズで、前記第1装置が、前記第2装置の階層的木構造状に配置された複数の情報ノードのうちの同期対象情報ノードのアドレスを取得し、
    前記同期開始フェーズで、前記第1装置が、前記同期対象情報ノードを指定するための同期コマンドを前記第2装置に送信し、
    前記同期セッションの同期フェーズで、前記第1装置が、前記アドレスを用いて、指定された情報ノードを前記第2装置に同期させ、
    前記アドレスは、階層的木構造中で情報ノードの位置を特定するために使用される階層的位置情報を含み、
    前記情報ノードは、データベース中のデータ項目またはフォルダであり、
    前記アドレスは、フィルタリング条件として構成され
    前記同期コマンドは、前記同期対象情報ノードの前記アドレスを含み、
    前記同期コマンドは、再帰的同期を実行するか否かを指示するための再帰的同期識別子をさらに含み、
    前記同期開始フェーズで、前記再帰的同期識別子が再帰的同期の実行を示すとの判断がなされた場合、前記同期フェーズで、前記第1装置は、指定された情報ノードの前記アドレスを用いて、指定された情報ノードを階層的木構造中のサブ木のルートノードとして扱って、前記サブ木の全情報ノードの同期を実行し、
    前記同期開始フェーズで、前記再帰的同期識別子が非再帰的同期の実行を示すとの判断がなされた場合、前記同期フェーズで、前記第1装置は、指定された情報ノードの前記アドレスを用いて、指定された情報ノードだけの同期を実行することを特徴とするシステム。
JP2008536915A 2005-10-27 2006-10-27 データ同期を実行する方法、システム、クライアントおよびサーバ Active JP5294867B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN 200510116802 CN1794724A (zh) 2005-10-27 2005-10-27 在SyncML层实现数据同步的方法
CN200510116802.X 2005-10-27
CN2006101095911A CN1956452B (zh) 2005-10-27 2006-08-14 一种实现数据同步的方法、系统、客户端及服务器
CN200610109591.1 2006-08-14
PCT/CN2006/002887 WO2007048354A1 (fr) 2005-10-27 2006-10-27 Procede, systeme, terminal client et serveur de realisation de synchronisation de donnees

Publications (2)

Publication Number Publication Date
JP2009514074A JP2009514074A (ja) 2009-04-02
JP5294867B2 true JP5294867B2 (ja) 2013-09-18

Family

ID=37967418

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008536915A Active JP5294867B2 (ja) 2005-10-27 2006-10-27 データ同期を実行する方法、システム、クライアントおよびサーバ

Country Status (5)

Country Link
EP (1) EP1845688B1 (ja)
JP (1) JP5294867B2 (ja)
CN (1) CN1956452B (ja)
ES (1) ES2458303T3 (ja)
WO (1) WO2007048354A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101309196B (zh) * 2007-05-17 2012-09-05 株洲南车时代电气股份有限公司 交通系统的数据传输方法及数据点播系统
CN101374144B (zh) * 2007-08-21 2012-04-25 华为技术有限公司 控制会话的数据同步的方法、装置和系统
CN101123490B (zh) * 2007-09-21 2012-05-30 北京意科通信技术有限责任公司 用消息服务机制实现不同服务器间发收同步数据的方法
US20090083566A1 (en) * 2007-09-26 2009-03-26 Momenee Karen N Method and System for Using Meta-Information to Manage Data Object Synchronization
CN101516131B (zh) * 2008-02-18 2012-04-04 华为技术有限公司 一种数据同步的方法、系统和装置
US7991740B2 (en) * 2008-03-04 2011-08-02 Apple Inc. Synchronization server process
CN101610276A (zh) 2008-06-16 2009-12-23 华为技术有限公司 数据软删除、恢复和同步方法及终端和系统
CN101610225B (zh) * 2008-06-20 2012-01-25 华为技术有限公司 一种同步处理方法、系统和装置
US10303787B2 (en) 2008-10-21 2019-05-28 Microsoft Technology Licensing, Llc Forgetting items with knowledge based synchronization
CN101662760B (zh) * 2009-07-31 2011-12-28 中兴通讯股份有限公司 将终端数据进行备份的方法及系统
US20110119232A1 (en) * 2009-11-18 2011-05-19 Raytheon Company Synchronizing data between a client and a server
CN102624686A (zh) * 2011-11-28 2012-08-01 苏州奇可思信息科技有限公司 网络文件夹的双向自动同步方法
CN104639592B (zh) * 2013-11-15 2018-09-28 华为技术有限公司 云存储网关间信息同步方法和系统、及云存储网关
CN103701925B (zh) * 2013-12-31 2017-04-05 北京网康科技有限公司 资源同步管控方法
CN105915573A (zh) * 2015-12-12 2016-08-31 乐视移动智能信息技术(北京)有限公司 一种移动终端同步文件的方法、装置和系统
CN107959658B (zh) * 2016-10-17 2019-04-26 视联动力信息技术股份有限公司 一种网络会议数据同步方法及其系统
CN106649625B (zh) * 2016-12-06 2020-12-22 曙光信息产业(北京)有限公司 文件同步的方法和系统
JP6600100B2 (ja) * 2017-06-22 2019-10-30 株式会社東芝 ウェブアプリケーションシステム、サーバ装置、端末装置、およびプログラム
CN107861995A (zh) * 2017-10-18 2018-03-30 福建中金在线信息科技有限公司 Linux服务器代码实时同步方法及装置
CN107911434A (zh) * 2017-11-10 2018-04-13 浪潮软件集团有限公司 一种烟草数据同步系统及方法
CN108768828B (zh) * 2018-05-23 2021-04-06 广东微校信息科技有限公司 一种调整本地通讯录并映射微信企业号通讯录的同步方法
CN113204378A (zh) * 2021-04-21 2021-08-03 深圳市广和通无线股份有限公司 配置文件状态同步方法、装置、终端、服务器和存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI104593B (fi) * 1996-09-30 2000-02-29 Nokia Networks Oy Hierarkkinen synkronointimenetelmä
JPH11232159A (ja) * 1998-02-13 1999-08-27 The Japan Reserch Institute Ltd ファイル管理方法およびファイル管理のためのプログラムを記憶した媒体
FI114417B (fi) * 2001-06-15 2004-10-15 Nokia Corp Datan valitseminen synkronointia varten
US6721871B2 (en) * 2002-04-02 2004-04-13 Nokia Corporation Method and apparatus for synchronizing data stores with respect to changes in folders
WO2003094435A1 (en) * 2002-04-30 2003-11-13 Nokia Corporation Method and device for management of tree data exchange

Also Published As

Publication number Publication date
EP1845688B1 (en) 2014-01-29
CN1956452B (zh) 2012-02-29
ES2458303T3 (es) 2014-04-30
JP2009514074A (ja) 2009-04-02
WO2007048354A1 (fr) 2007-05-03
EP1845688A1 (en) 2007-10-17
CN1956452A (zh) 2007-05-02
EP1845688A4 (en) 2008-07-09

Similar Documents

Publication Publication Date Title
JP5294867B2 (ja) データ同期を実行する方法、システム、クライアントおよびサーバ
US8015319B2 (en) Method, system, client and server for implementing data sync
US7900203B2 (en) Data sharing and synchronization with relay endpoint and sync data element
JP4405812B2 (ja) 第1データ記憶部と第2データ記憶部との間で同期を取るための方法および装置
CA2482688C (en) Method and device for management of tree data exchange
CN107861686B (zh) 文件存储方法、服务端和计算机可读存储介质
KR100996645B1 (ko) 서로 다른 기능들을 지니는 서로 다른 장치들에서의데이터 동기화를 가능하게 하기 위한 방법 및 장치
US20050086384A1 (en) System and method for replicating, integrating and synchronizing distributed information
RU2346323C2 (ru) Система и способ усовершенствованной синхронизации между сервером и клиентом
RU2404450C2 (ru) Способ и система для синхронизации множественных пользовательских ревизий совместно используемого объекта
US8171171B2 (en) Data synchronization method and system between devices
US6694335B1 (en) Method, computer readable medium, and system for monitoring the state of a collection of resources
JP4829316B2 (ja) 中断された同期プロセスに対処してデータを同期させる方法、装置、システム
CN101167069B (zh) 文件对等同步的系统和方法
EP2001160A9 (en) The method of device capability information negotiation, the method, system and device of synchronization
CN101160903A (zh) 一种实现数据同步的方法、系统、客户端及服务器
KR20060045897A (ko) 전자 장치들 간의 데이터 동기화를 위한 방법 및 시스템
KR101986850B1 (ko) M2m정보 관리 방법 및 그 장치
Alliance SyncML Representation Protocol, Data Synchronization Usage
KR100731272B1 (ko) 이동 통신 장치들을 위한 장치 관리 트리를 설정할 수 있는객체들을 정의하는 방법 및 장치

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110201

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110502

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110512

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110517

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120315

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120323

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20120525

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121204

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20121207

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130611

R150 Certificate of patent or registration of utility model

Ref document number: 5294867

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250