JP2011511368A - マルチマスター同期環境のための知識ベースフレームワークにおける質的オブジェクト変更の表現 - Google Patents

マルチマスター同期環境のための知識ベースフレームワークにおける質的オブジェクト変更の表現 Download PDF

Info

Publication number
JP2011511368A
JP2011511368A JP2010545039A JP2010545039A JP2011511368A JP 2011511368 A JP2011511368 A JP 2011511368A JP 2010545039 A JP2010545039 A JP 2010545039A JP 2010545039 A JP2010545039 A JP 2010545039A JP 2011511368 A JP2011511368 A JP 2011511368A
Authority
JP
Japan
Prior art keywords
node
synchronization
knowledge
version
objects
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.)
Granted
Application number
JP2010545039A
Other languages
English (en)
Other versions
JP5622590B2 (ja
JP2011511368A5 (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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2011511368A publication Critical patent/JP2011511368A/ja
Publication of JP2011511368A5 publication Critical patent/JP2011511368A5/ja
Application granted granted Critical
Publication of JP5622590B2 publication Critical patent/JP5622590B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • H04L12/281Exchanging configuration information on appliance services in a home automation network indicating a format for calling an appliance service function in a home automation network
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L2012/2847Home automation networks characterised by the type of home appliance used
    • H04L2012/2849Audio/video appliances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本開示は、オブジェクト品質の概念を含むように知識ベース同期フレームワークを拡張する、マルチマスター同期環境においてネットワークノード間で同期を取るステップに関する。一実施形態では、オブジェクトの与えられたバージョンについての知識ベクトルに、オブジェクトについての品質情報を表す追加的な次元(複数可)が置かれ、オブジェクトの品質のどのタイプが同期プロセスの一部としてノードに伝えられるべきかをノードが決定することを可能にするために、その次元が同期プロセス中に考慮される。他の実施形態は、マルチマスター同期環境において他のノードによって維持される同じオブジェクトに関する将来の同期を回避するために、オブジェクトを無効化するステップを含む。
【選択図】図1

Description

本開示は、マルチマスター同期環境(multi−master synchronization environment)のための知識ベース同期フレームワーク(knowledge based synchronization framework)における、同期が取られたオブジェクト(複数可)に対する変更についての知識を記述するための拡張メタデータに関し、拡張メタデータは、変更についての質的情報(qualitative information)を含む。
モバイルコンピューティングおよび通信デバイスの人気が、いつでもユーザーが望むときに情報を送受信できるようにしたいという対応する願望を生み出した。簡単に言えば、ユーザーは、いつどこにいても、またデバイス個々の能力がどうであれ、情報およびアプリケーションへの様々なデバイスからのユビキタスアクセスを望んでおり、加えて、ユーザーは、そのような情報に直に(on the fly)アクセスし、更新できることを望んでおり、データが可能な限り正確で最新であることの保証を望んでいる。
デバイスおよびオブジェクトに互いにデータのレプリカを共有させることを試みる様々な分散データシステムが存在する。例えば、音楽共有システムは、PC、セルフォン、ゲーム機、およびMP3プレーヤーの間で音楽の同期を取ることができる。電子メールデータは、ワークサーバー、クライアントPC、およびポータブル電子メールデバイスの間で同期を取ることができる。しかし、今日、そのようなデバイスが互いに1組の共通情報の同期を取る限りにおいて、同期は一般に、静的設定に従ってデバイス間で取られる。しかし、これらのデバイスが頻繁にまたは断続的に切断される場合、すなわち、相手との通信から切断され得るようにデバイスが疎結合されている場合、例えば、セルフォンがトンネル内に入った場合、または同期が取られるデバイスの数が動的である場合、デバイスが、互いに再接続するとき、またはネットワークに参加するときに、他の各デバイスがどのような変更を必要とするかを決定するための、トポロジー独立な方法を有することが望ましくなる。
図1に示されるように、今日では、電子メールサーバーが電子メールクライアントと同期を取る場合など、マスターノード100がクライアントノード110と専用方式で同期を取る様々な例が存在する。2つのデバイス間の専用同期であるため、2つのデバイス間で同期を取るために必要とされる情報102は、マスターノード100によって追跡することができる。そのような情報102は、任意選択的に、クライアントノード110によっても同様に追跡することができるが、マスターノード100とクライアントノード110の間の接続が時々切断される場合、または同期デバイスの数が突然増加もしくは減少し得る場合、それらのデバイスのすべてにおいて各デバイスが必要とする共通な情報の必要な情報を追跡することは、難しい問題となる。
現在の解決策は、しばしば、同期セマンティクス(synchronization semantics)を、任意のノードではなく、もっぱら特定のノード(例えば、電子メールサーバー)のクロックまたは論理透かし(logical watermark)に基づかせる。これらのシステムは、単一の接続ノードまたはマスターの場合には良好に機能し得る。しかし、ノード接続のトポロジーまたはパターンが予測不能に変化し得る場合、それらのシステムは、問題に打ち当たる。
他のシステムは、問題に対処するために、特定の種類のデータオブジェクトのための独自仕様の同期モデルを構築し、すべてのデバイスにおいて、データフォーマットに固有な膨大な量のプリミティブメタデータを追跡する。例えば、特定のWordプロセッシング文書フォーマットのオブジェクトの同期を取るために、文書およびその基本プリミティブを表現することに、それらが時間とともに変化するにつれて、多くのオーバーヘッドおよび複雑さがもたらされ、共通の1組のWordプロセッシング文書に従って同期を取ることを望む他のデバイスに対してその情報を効率的に表現することにも、多くのオーバーヘッドおよび複雑さがもたらされる。そのようなシステムは、構築が複雑になって多くのコストがかかり、それが基づいているカスタムデータフォーマットのせいで拡張可能性がない(non−extendible)のに加えて、生成し、分析し、追跡しなければならない大量のメタデータのせいで本質的に拡張可能性がない(unscalable)。
加えて、そのような解決策は、1つの特定の領域、例えばWordプロセッシング文書にのみ適用される。例えば、ピクチャ、ビデオ、電子メール、文書、データベースストアなど、すべての種類の同期オブジェクトが考慮される場合、マルチマスター環境内のすべてのデバイスにおいてそのようなオブジェクトの進化を追跡するために、各オブジェクトタイプに基づいたカスタム同期解決策を実施することは、現在のところ機能し得ないことが分かる。したがって、そのような解決策は、同期セマンティクスをデータセマンティクス(data semantics)と密接に結び付ける。
したがって、トポロジー内のコンピューターが互いに接続する方法を変更した場合、またはコンピューターの数が増加するにつれて、ノード独立の同期知識が必要とされている。例えば、メディアプレーヤーの場合、多数のコンピューター間および多数のウェブサイト間で同期を取るのが望ましいことがある。たいていの場合、ほとんどのアプリケーションは、少数のよく知られたエンドポイント(ホームPCおよびメディアプレーヤー)の間でデータの同期を取ることができるにすぎない。しかし、メディアプレーヤーアプリケーションのユーザーにとって、デバイスコミュニティー(device community)は時間とともに進化するので、デバイスによって利用される音楽ライブラリーのためのデータ同期の柔軟性がますます必要となり、それによって、より堅牢なシステムの必要性が生み出される。
その必要性は、起こり得る変更のタイプの観点から多くのコンピューティングオブジェクトが一枚岩的でないことを考えた場合、より一層複雑になる。今日の複雑なコンピューティング環境では、オブジェクト変更は、単なる「オブジェクトへのデータの追加」または「オブジェクトからのデータの除去」を越えた多様な変更を含む。オブジェクトのデータのいくつかに対する変更は、変更されるデータの除去と、変更を反映したデータの追加と考えることもできる。したがって、一枚岩的な見方の下では、オブジェクトの進化の観点からオブジェクトに何が起こり得るかについて、限られた見方が、すなわち、オブジェクトによって表されるデータは、いくつかの新しいデータを用いて拡大でき、オブジェクトによって表されるデータの一部は、残りを同じに留めたまま変更でき、および/またはオブジェクトによって表されるデータの一部は、削除できる、という見方があるにすぎない。
これに関連して、オブジェクトに関する多数の属性のすべても変更することができる。例えば、オブジェクトの名前、オブジェクトが最後に閲覧されたとき、オブジェクトのフィールドの許容可能な長さ、オブジェクトのスキーマ(例えば、連絡先スキーマ)、オブジェクトの忠実度(例えば、オーディオ)、オブジェクトに適用される圧縮方式、オブジェクトの解像度(例えば、画像もしくはビデオ)、オブジェクトのファイルフォーマット、またはオブジェクトに対して定義できる他の任意の機能はすべて、オブジェクトのデータの追加または除去という単純な表現によっては適切に反映されない、オブジェクトの変更可能な属性の例である。
これに関連して、異なるデバイスは、同じオブジェクトの表現に関して、異なる要件または制限を有する。例えば、PC上でのオブジェクトの表現は一般に、メモリーが限定されたモバイル電話上でのオブジェクトの表現とは異なる要件に関連する。一例として、画像オブジェクトが与えられた場合、PC上では10Mbの原画像を表現する方がより適しており、一方、ディスプレイおよびメモリーがより小さなモバイル電話に対しては、同じ与えられた画像オブジェクトを300Kbの画像として表現する方がより適している。
いくつかの従来のシステムは、第1の品質から第2の品質への品質変化をこうむるオブジェクトを別個のオブジェクトとして扱い、すなわち、第1の品質に留まる第1のオブジェクトを維持するのに加えて、オブジェクトがこうむった変更を第2の品質に反映したまったく新しい第2のオブジェクトを生成する。結果として、両方のオブジェクトは、同期が取られて進行する。異なるオブジェクトの数、デバイスの数、および/または異なる品質のバージョンの数が少なからぬものになった場合、そのようなシステムが、禁止せざるを得ない、非常に無駄の多いものになることが分かる。
したがって、オブジェクトは複雑な方法で変更でき、特に、異なる能力の異なるデバイスにわたって同期が取られるので、同期メタデータ内においてそのような変更を効率的に表し、同時に、上で説明されたような疎結合されたマルチマスター同期環境において同期を扱うための方法が、現在望まれている。簡潔に言えば、オブジェクトが品質の変更をこうむった場合に、可能であるならば、デバイスの複雑なマルチマスターネットワークトポロジーにおける知識交換(knowledge exchange)において、オブジェクトの品質の減少または増加を表す能力が、無数の同期シナリオのために望まれる。
今日の同期モデルの上で説明された難点は、従来のシステムの問題のいくつかについての概要を提供することを意図したものにすぎず、網羅的であることは意図していない。従来のシステムが抱える他の問題、および本明細書で説明される様々な非限定的な実施形態の対応する利点は、以下の説明を検討することでより明らかとなるであろう。
本明細書では、より詳細な説明および添付の図面における以下の例示的で非限定的な実施形態の様々な態様の基本的または概略的な理解を可能にする助けとなるように、簡略化された要約が提供される。しかし、この要約は、広範なまたは網羅的な概要として意図されていない。代わりに、この要約の唯一の目的は、以下の様々な実施形態のより詳細な説明に対する前置きとして、いくつかの例示的で非限定的な実施形態に関連するいくつかの概念を簡略化された形式で提示することである。
本明細書では、オブジェクト品質の概念を含むように知識ベース同期フレームワークを拡張する、マルチマスター同期環境における複数のネットワークノード間の同期を提供する様々な実施形態が説明される。有利には、同期フレームワークによれば、エンドポイントは、知識交換の目的で、同期データの1つまたは複数のオブジェクトの品質の定義を可能にする方法で、データの同期を取ることができる。
一実施形態では、オブジェクトの与えられたバージョンについての知識ベクトル(knowledge vector)に、オブジェクトのそのバージョンについての増分品質情報を表す追加的な次元(複数可)が置かれ、オブジェクトの品質のどのタイプが同期プロセスの一部としてノードに伝えられるべきかをノードが決定することを可能にするために、その次元が同期プロセス中に考慮される。例えば、ノードにとって望ましくない品質を有するオブジェクトは、マルチマスター同期環境において他のノードによって維持されるそのようなオブジェクトに関する将来の同期を回避するために無効化(tombstone)することができ、他の実施形態では、オブジェクトに対する変更が非破壊的(non−destructive)である(とノードによって決定された)場合、オブジェクトの現在のバージョンは、現在のバージョンの別のバージョン、すなわち、変更されたオブジェクトの品質レベルを表すバージョンを反映するように拡張される。変更が破壊的(destructive)と見なされた場合、同期メタデータによって、新しいバージョンが反映される。
上記および他の実施形態が、以下でより詳細に説明される。
様々な非限定的な実施形態が、添付の図面を参照してさらに説明される。
システムの2つの適切に定義されたエンドポイントの間で同期を提供する専用同期システムの図である。 同期オブジェクトについての品質情報を含む同期メタデータを含むマルチマスター同期のためのインフラストラクチャーの高水準ブロック図である。 ネットワークに接続するノードおよびネットワークから切断するノードの存在下で、品質同期メタデータに基づいて同期を取るための例示的で非限定的なプロセスを示すフロー図である。 品質同期メタデータに基づいて同期を取るための例示的で非限定的なプロセスを示す別のフロー図である。 ノードが疎結合されたネットワークのうちの4つのノードの間の例示的で非限定的な知識交換を示す図である。 デバイスのいくつかが互いに切断された場合の、ノードが疎結合されたネットワークのうちの4つのノードの間の例示的で非限定的な知識交換を示す図である。 ネットワークのノード間で多数のオブジェクトが共有される状況における例示的な知識交換を示す図である。 ネットワークのノード間で多数のオブジェクトが共有される状況における例示的な知識交換を示す図である。 ネットワークのノード間で多数のオブジェクトが共有される状況における例示的な知識交換を示す図である。 ネットワークのノード間で多数のオブジェクトが共有される状況における知識交換のためのプロセスを示す例示的で非限定的なフロー図である。 知識に基づいて変更を要求し、伝えるためのフレームワークを示す全体的なアーキテクチャーの図である。 質的情報を同期メタデータに含めるための第1の実施形態を示す全体的なフロー図である。 無効化する実施形態が例示的な方式で示された第1の非限定的なシナリオを示す図である。 質的情報を同期メタデータに含めるための代替的な実施形態を示す全体的なフロー図である。 バージョンをバージョン管理する実施形態が例示的な方式で示された第2の非限定的なシナリオの図である。 同期メタデータの一部として品質情報を伝達できる共通の1組のAPIを介して別のノードとの知識交換を実行するためのデバイスの例示的で非限定的な実施のブロック図である。 本明細書で説明される様々な実施形態が実施できる例示的で非限定的なネットワーク環境を表すブロック図である。 本明細書で説明される様々な実施形態の1つまたは複数の態様が実施できる例示的で非限定的なコンピューティングシステムまたは動作環境を表すブロック図である。
概要
背景技術において説明されたように、とりわけ、従来のシステムは、オブジェクトに生じたあらゆる変更毎にオブジェクトの異なるバージョンを生成するが、そのようなシステムは、無損失変換、トランスコーディング、トランスクリプション、または忠実度の変更など、オブジェクトに対する変更についての質的情報を獲得しない。例えば、デバイスが、望む質的バージョンのオブジェクトとのみ同期を取ることができ、オブジェクトによって拒否される質的バージョンを有するオブジェクトとは同期を取らないように、オブジェクトまたはオブジェクトの特定のバージョンの品質の変更についての情報を、同期言語(synchronization language)自体の一部として獲得することが望ましい。
したがって、様々な非限定的な実施形態では、マルチマスター同期環境内の異なるノードが、知識を比較でき、どのオブジェクトの同期を取り、どのオブジェクトは同期を取るのが望ましくないかを決定できるように、異なる忠実度、変換、符号化の、すなわち、異なる質的バージョンのオブジェクトは、マルチマスター同期環境において、オブジェクトの品質についての情報を獲得する方法で同期が取られる。
以降のロードマップについて一言すると、まず、本明細書で説明されるいくつかの実施形態の概要が提示される。その後、マルチマスターデータ同期システムにおいて知識を効率的に表現するための一般的な機構についてのいくつかの補足的なコンテキストが与えられる。次に、補足的なコンテキストについての例示的で非限定的な実施形態および特徴がより詳細に説明され、オブジェクトに対する変更についての質的情報を表現するためのマルチマスターデータ同期システムの代替実施形態が理解され、続いて、そのような実施形態を実施できる代表的なネットワークおよびコンピューティング環境が説明される。
これに関連して、様々な実施形態は、本明細書で知識と呼ばれる概念に基づいた同期のためのモデルを定義する、マルチマスター同期環境のノードのためのデータ同期フレームワークに関する。簡潔に言えば、知識は、同期が取られるオブジェクトから論理的に分離されて維持されるメタデータであり、デバイスが、最初に知識を交換し、次にオブジェクトに対するどの変更を互いに受け渡すべきかを効率的に列挙できるように、レプリカの状態ベース同期についての効率的な要約を定義する。有利には、各ノードは、オブジェクトのどの品質は同期を取るのが望ましく、オブジェクトのどの品質は同期を取るのが望ましくないかに関する独自のルールを定義することができる。例えば、デバイスは、どのバージョンが望ましいかを決定するためのテストを指定することができ、または異なる品質を好ましさの順序にランク付けして並べることができる。
これに関連して、多くの場合、マルチマスター同期トポロジーの各デバイスが、同期が取られるオブジェクトの品質レベルについて何を知っているか(例えば、低解像度か、それとも高解像度か)、またはより一般的に、各デバイスが、デバイスによって維持されるオブジェクトに適用される任意の1つもしくは複数の変換について何を知っているかを効率的に表現する方法で、データの同期を取ることが有益である。この点において、個々のエンドポイントが、より低い品質のオブジェクト(またはオブジェクトの第1の変換)と同期を取るべきか、それともより高い品質のオブジェクト(またはオブジェクトの第2のより適切な変換)を有するデバイスを探し出すべきかを決定できるように、デバイスは、そのような情報を知識交換の一部として効率的に伝達することができる。
一実施形態では、エンドポイントは、許容できない変換、符号化、忠実度などのバージョンを受信した場合は常に、その許容できないオブジェクトバージョンを無効化し、実質的にそのアイテムを同期プロセスから削除することができるが、将来の同期がその許容できないバージョンを再び受け入れることを回避するように、エンドポイントは、許容できないバージョンについてのメタデータを維持する。しかし、時間とともに、そのような無効化メタデータが、許容し得ないほど増加することがあり得る。要するに、デバイスは、特に機能が限定されており、おそらくは多くを拒否するデバイスの場合は、本当のところ、それまでに対話したが好まなかったものすべての記録を維持する必要はない。
このタイプの知識の効率的な表現を利用する他の実施形態では、ノード間での質的情報の共有の達成は、データのバージョンをバージョン管理することによって達成される。そのような実施形態は、2層の場合はバージョンのバージョンをバージョン管理し、3層の場合はバージョンのバージョンのバージョンをバージョン管理し、以降も同様にすることによって、オブジェクトに適用される変換または品質レベルを任意の数のレベルまたは層にまで拡張することもできる。個々のエンドポイントは、オブジェクトに対する特定の変更が、バージョンのバージョン管理を必要としない一般的な変更(ティックカウント(tickcount)の通常の増加、または新しいバージョンの適用)を表すか、それとも代わりに、現在のティックカウントによって表されるバージョンをバージョン管理することによって表される、忠実度または変換の変更を表すかを決定することが可能である。
どのオブジェクトが変化したかについての情報をバージョンを介して効率的に獲得し、表現する能力と、それに加えて、それらのオブジェクトがどのように変化したかについての情報を獲得し、表現する能力は、実質的に、エンドポイントに、オブジェクトの特定のバージョンがエンドポイントにとってどれだけ有益かを告げる。したがって、知識表現にバージョン情報のバージョン管理を含めることによって知識を拡張することは、オブジェクトに対する変換についての質的情報を伝える目的を達成するための別の方法である。
言及されたように、無効化する実施形態は、オブジェクトが望まないアイテムを受信した(例えば、デバイスのメモリーに対して解像度が高すぎる)ときに、デバイスが、そのアイテムを再び受信しないようにそのアイテムを無効化することができるが、アイテムについて知らされたが、そのアイテムを削除したという知識を伝えることができるように実施することもできる。したがって、様々な実施形態は、オブジェクトの異なる品質についての情報が同期知識の一部として定義されるように、オブジェクトの変換またはトランスコーディングの品質の概念を同期自体の言語に組み込む。
図2は、マルチマスター同期環境において同期を取るオブジェクトの概念を全体として図説するブロック図であり、オブジェクトは、オブジェクトのために定義された同期メタデータに従って異なる品質にある。示されるように、デバイス200およびデバイス210は、ネットワーク220(複数可)と、それぞれ同期コンポーネント202、212とを介して互いに接続し、同期を取るものとして示されている。各同期コンポーネント202、212は、ストレージ204、214内にオブジェクトを保存するばかりでなく、以下でより詳細に説明されるように、それぞれそれらのオブジェクトの同期知識206、216も維持する。これに関連して、データタイプおよびネットワークトポロジーとは独立に同期を取るために使用される同期知識206、216は、オブジェクトの品質を説明するメタデータを含むように拡大することができる。
オブジェクトの品質を説明するメタデータの場合、これは、オブジェクトの同期のために、オブジェクトの異なる変換についての質的情報を獲得できることを意味する。例えば、図示されるように、同じオブジェクトXは、デバイス200およびデバイス210上で表現することができ、それぞれオブジェクト230および230’として表現される。オブジェクト230は、品質Q1を有し、オブジェクト230’は、品質Q1と異なる品質Q2を有する。したがって、様々な実施形態に関連して説明される知識に基づいたマルチマスター同期プロトコルによれば、同期知識206、216は、オブジェクトに対する変更のバージョン管理に加えて、オブジェクトの同じバージョンの異なる品質を説明する情報を含む。
例えば、オブジェクトX230は、WMAフォーマットの歌とすることができ、一方、オブジェクトX230’は、同じ歌とすることができるが、AACフォーマットとして符号化される。2つのオブジェクトをその歌の異なるバージョンとして表現する代わりに、本明細書の様々な実施形態は、それが同じバージョンであるが、そのバージョンに関連付けられた異なる品質が存在することを示す、知識表現を可能にする。したがって、ノードは同期メタデータ内に含まれる品質情報に基づいて、与えられた品質バージョンの同期を取るべきかどうかを決定することができる。
歌が例として使用されたが、オブジェクトのタイプは関係がない。オブジェクトのバージョンが異なる質的特性を有すると考え得ることを宣言するのが有益である場合はいつでも、同じ技法を適用することができる。例えば、PC上のOutlook内の連絡先アイテムは、モバイル電話上の連絡先アイテムよりも多くのフィールドを含むことができる。前者は、後者よりも品質が高い連絡先のバージョンであると、ノードによって見なされ得る。そのような場合、本質的に、それは、連絡先アイテムによって表されるデータの量についての忠実度または解像度の変化である。したがって、実質的に、任意のアイテムは、例えば、異なる符号化または同じプログラムの異なるプログラミング言語トランスコーディングなど、同じオブジェクトの変換に関連する変化に分類することができる。したがって、本明細書の実施形態のいくつかは、概念の簡素化のため、オーディオまたはビデオの文脈において説明されるが、任意のタイプのオブジェクトが、品質変換をこうむると見なすことができ、各エンドポイントは、その目標のため、同期の観点からそれが何を意味するかを定義することができる。
図3は、マルチマスター同期環境において様々なノード間で同期を取ることを目的とした、オブジェクトのための「品質」情報の使用を説明する、全体的なフロー図である。300において、いくつかのポイントにおいて、異なる品質を有するオブジェクトのバージョンに対して、同期メタデータが定義される。310において、ノードが、マルチマスター同期環境において、任意のネットワークトポロジーに従って構成された1つまたは複数のネットワークを介して、別のノードに接続する。320において、ノードは、同期メタデータを学習すること、すなわち、別のノードから受信すること、もしくは別のノードに要求し、受信することができ、またはノードは、同期メタデータを別のノードに送信することができ、メタデータは、同期が取られる1組のオブジェクトのためのバージョン管理情報を説明し、オブジェクトに適用される変換の質的特性についての品質情報を含む。
330において、オブジェクトについての品質情報の集合的知識を決定するために、品質情報を含む2つのノードの同期メタデータが比較される。340において、1組のオブジェクトについての品質情報の集合的知識に基づいて、ノードは、どのオブジェクトの同期を取るべきかを選択することができる。350において、比較の後、任意選択的に、ノードは、ノードのために定義された品質基準を満たさない、1組のオブジェクトのうちのオブジェクトにアクションを取る(例えば、削除する)ことができるが、他のノードとの将来の効率的な知識交換のために、取られたアクションについて説明する同期メタデータを維持することもできる。
例えば、ノードは、オブジェクトの最高品質のバージョンのみを保持することを選択することができる。画像の場合、例えば、オブジェクトが5Mbバージョンを有する場合、300Kbバージョンは、ノード上での両バージョンのサポートを仮定したより低い解像度であるので、削除することができる。別のノードの場合、300Kbは、そのノードによってサポートされる最高の解像度であることがあり、そのため、ノードは、300Kbよりも高いオブジェクトの品質バージョンを拒否するように定義することができる。同様に、同じデータの異なる符号化は、互換性の観点から、異なるノードでは異なるように適用することができ、したがって、有利には、同期メタデータへの品質メタデータの包含は、取得できる異なる種類のオブジェクトについての各ノードがもち得る視力(vision)を改善し、同時に、どの品質バージョンが望ましくないかをノードが表現する仕組みを可能にする。
360において、任意選択的に、ステップ350に従って削除されたいくつかのオブジェクトは、同期メタデータ内で無効化することができ、それは、ローカルデバイス上でオブジェクトが削除され、ノードは過去にその品質を有するアイテムについて知らされたことがあるが、ノードは将来再びそのアイテムについて知らされたくないことを示す。一実施形態では、ノードは、拒否された品質を有するアイテムについての情報を維持することによって、アイテムを有することについて実質的に嘘をつくが、そのアイテムが将来望まれないことも通知する。例えば、そのようなオブジェクトについては、将来の知識交換の最中に同期知識を比較する目的で、オブジェクトがかつて学習されて拒否されたことを示すようにブールフラグ(Boolean flag)を設定することができる。
図4は、マルチマスター環境において同期を取るための知識交換フレームワークにおける、同期メタデータ内の品質情報の代表的な実施を示すフローチャート図である。示されるように、デバイス300とデバイス410は接続され、同期を取ることを望む。例を簡潔にするため、図4は、デバイス400とデバイス410の間で同期が取られる1つのオブジェクト402および412をそれぞれ示しているが、当該技法は、任意の1組のオブジェクトのために拡張することができる。言及されたように、本明細書で説明される実施形態によれば、同期知識404および414が、オブジェクト402および412のために、デバイス400および410によってそれぞれ維持される。これに関連して、同期知識404は、品質Q1がオブジェクト402に適用されることを表し、同期知識414は、品質Q2がオブジェクト412に適用されることを表す。
450に示されるように、ノードが、マルチマスター同期環境において、任意のネットワークトポロジーに従って構成された1つまたは複数のネットワークを介して、他のノードに接続した後、デバイス410は、デバイス410から同期知識414を受信することができる。452において、デバイス400は、以下でより詳細に説明される知識交換原理に従って、知識404を知識414と比較する。
これに関連して、454において、デバイス400は、同期知識414内で表されるバージョンQ2が望ましいかどうかを決定することができる。望ましい場合、456において、ローカル知識404は、知識414の品質情報Q2を用いて更新される。次に458において、デバイス400は、デバイス400が関心のあるオブジェクトの更新を要求し、更新された知識404が、デバイス410に送信される。今度は、460において、デバイス410が、更新された知識404を知識414と比較し、462において、品質Q1を有するデバイス400のバージョンが望ましいかどうかを決定する。464において、知識414は、更新された知識414を含むように更新され、知識交換を完了させる。466において、更新された知識404が、Q2がデバイス400にとって望ましいことを示している場合、468において、デバイス400は、そのような更新を受信し、470において、それがデバイス400によって保存される。同様に、デバイス410は、望む変更をデバイス400から受信する。このようにして、同期知識交換は、デバイスが、同期中に受信したバージョンの品質について選り好みすることを可能にする。
効率的な知識表現および交換
様々な非限定的な実施形態による、マルチマスター同期環境における、知識として表現された同期メタデータを介するオブジェクトの品質の表現を説明する前置きとして、このセクションでは、データ同期フレームワークにおける、知識を効率的に表現するための全体的な機構の概要が提示される。
全体的な同期機構は、(1)第1のノードによって必要とされる最低限のデータのみを送信するように第2のノードに要求することによる、接続デバイス間での知識の効率的な交換、(2)第1のノードと第2のノードの間でのデータの状態の不一致すなわち競合を効率的かつ正確に認識する能力、(3)任意の数のノードを同期させる能力、および(4)任意のノードを任意の他のノードを介して同期させる能力、すなわち、ピアツーピアのマルチマスター同期環境において動作する能力を含む。
全体的な機構を用いて、2つのデバイス間で共有されるいくつかの情報に対して、任意の数の変更を行うことができる。2つのデバイスは接続されるといつでも、互いに知識を交換することによって、デバイス間での変更を容易にするための、互いが何を知っており、何を知らないかを再構成するために必要とされる少なくとも最低限の量の情報を知るようになる。3つ以上のデバイスが含まれる場合、共有される情報のより大きなベース(base)についての知識に関して、知識は不完全になり得るが、多数のデバイス間でより多くの知識が共有されるので、時間とともにデバイスが他のデバイスに接続するにつれ、集合的な知識がデバイスによって蓄積され続けることに留意されたい。
有利には、様々な非限定的な実施形態では、同期は、1組のデバイスまたは1組のデバイスの一部に対して実行され、そのすべてが1組のオブジェクトの最新バージョンを維持することに関心があるが、同期は、そのようなデバイスが、コンピューティングエコシステム(computing ecosystem)においてデバイスが同期を取ることができる異なるオブジェクトについて質的結論を下すことも可能にする。デバイスが1つまたは複数のネットワークを介して1組のデバイスのうちの他のデバイス(複数可)と再び接続する場合はいつも、そのデバイスは、他のデバイス(複数可)がそれらの集合的知識を用いて表すのと同じくらい最新の集合的知識を再獲得する。このようにして、疎接続されたデバイスであっても、1組のデバイスと接触し、接触を断つことができ、その後、最新の1組の集合的知識を所有する任意の1組のデバイスと接触することによって、獲得し損ねたすべての知識を再学習することができる。
図5は、知識交換が、任意の数のデバイスに一般化または拡張可能であることを示している。示されるように、非限定的な数のデバイスとして、4つのデバイス500、510、520、530が、デバイス間で共有される1組の共通情報について各デバイスが何を知っており、何を知らないかをそれぞれ示す知識表現502、512、522、532とともに示されている。
有利には、図6に示されるように、ネットワーク内の接続が切断された場合でさえも、それにも関わらず、他のデバイスへの少なくとも1つの接続が直接的または間接的に存在する限り、デバイス500、510、520、530のすべてによって、完全な1組の知識が獲得できる。例えば、示されるように、デバイス530の知識532は、デバイス520との知識交換、次にデバイス520とデバイス510の間の知識交換、最後にデバイス510とデバイス500の間の知識交換を介して、依然として、デバイス500に到達する。
より多くのデバイスが、共有される共通情報についての知識を共有する場合、様々な非限定的な実施形態による知識交換(複数可)は、集合的知識がどのデバイスから来るかについて関知しないので、デバイスのすべてが利益を得る。デバイスの各々は、それが接続された他のデバイスのいずれかから、デバイス間で共有される情報についての多くの知識を獲得しようと試みて独立に動作する。
例示的で非限定的な詳細では、2つのノードが会話に関わり、会話の最後に、関心のあるデータセットについて同等の知識を有するための方法が、さらに詳細に説明される。この方法は、ピアツーピアネットワーク/マルチマスター環境に入って来た新しい各デバイスに対して知識交換能力を授けることによって、2つのノードを超えて拡張可能である。
したがって、図7に示されるように、任意の数のノードを有するピアツーピアネットワークのノード700は、ノード710とデータを交換することを望む。ノードAは、ノード710に変更を要求することによって開始し、それを行うために、ノード700は、示されるように、(KN700として表された)その知識をノード710に送信する。
デバイスまたはノードの知識は、デバイス間で共有される各オブジェクトを文字識別子を用いてラベル付けすることによって表され、次に、後に付けられた数字が、このオブジェクトの最新バージョンを表す。例えば、図7に示されるようにKN700は、オブジェクトA、B、C、Dを含み、その各々は、ノード700とノード710の間で同期が取られ、各オブジェクトの後に付けられた数字は、デバイスにおいて知られているオブジェクトの最新バージョンを表す。例えば、時間t=1における知識KN700は、図7においてA4、B3、C6、D0と表記される、Aの第5バージョン、Bの第4バージョン、Cの第7バージョン、Dの第1バージョンを含む。対照的に、時間t=1におけるノード710の知識KN710は、図7においてA3、B6、C6、D2と表記される、Aの第4バージョン、Bの第7バージョン、Cの第7バージョン、Dの第3バージョンを含むことができる。
図8に示されるように、時間T=2において、ノード710は、ノード700から受信した知識KN700を自らの知識KN710と比較し、何がノード700に送信される必要があるかを決定する。この例では、ノード700の知識のB3、D0は、ノード710の知識のB6、D2よりも遅れているので、結果として、ノード710は、BおよびDに関する変更をノード700に送信する。ノード710は、B6とB3の間の変更およびD2とD0の間の変更をノード700に送信する場合、(ノード710上で最新の変更が行われたときがいつであろうとそれを反映した)ノード710が有する知識KN710の最新バージョンとともに送信する。
時間t=3を表す図9に示されるように、ノード700への知識KN710の送信は、同じバージョンであったにも関わらず、ノード700とノード710の両方がオブジェクトに対する変更を行ったことが後で判明した場合、ノード700が、競合を検出する(例えば、後の解決のためにそれらを保存する)ことを可能にする。これは、自律的な更新、効率的な列挙を可能にするが、ノードが変更に出会い、それを交換した場合に、正しい競合検出も可能にする。例えば、例において、C6が知識KN710と知識KN710の双方で同じオブジェクトではない場合、例えば、双方がC5からC6に独立に進化した場合、どちらのC6が正しいC6であるかは、例えば、同期シナリオおよび含まれるデバイスに適した事前に定められた方針による解決に従った競合解決に委ねるために保留にすることができる。
上で説明された全体的な機構を使用する、分散マルチマスター同期環境の任意の2つのノード間の例示的な知識交換プロセスが、図10のフロー図に示されている。1000において、ノードAは、ノードBとの同期を要求し、それによって、ノードAが知らない変更をノードBに求める。ノードBに授けるため、1010において、ノードAは、その知識をノードBに送信する。1020において、ノードBは、ノードAから受信した知識を自らの知識と比較して、ノードBが知っているどの変更をノードAに送信すべきかを決定する。1030において、ノードBは、そのような変更をノードAに送信し、加えて、ノードBは、ノードAが1040において同様の知識比較を実行できるように、その知識をノードAに送信する。本明細書で説明される実施形態と一貫性を保って、デバイスにとって望ましくないメタデータによる質的特性を有するオブジェクトは、デバイスの制限のせいで、またはそのような質的特性はデバイスが目標を促進する助けとならないので、同期が取られない。
1050において、ノードAは、ノードAおよびノードB上でバージョンの独立した進化が発生している場合、ノードBの知識に反映された最新バージョンとノードAの知識に反映された最新バージョンの間の潜在的な競合を検出する。任意選択的に、競合の場合にどちらのノードが他方のノードに優先されるかを決定するために、いずれかの競合解決方針を適用することができる。1060において、ノードBによって所有されない最新の変更が、ノードAからノードBに送信される。競合解決方針が、ノード間で共通情報を維持するために、変更がノードBからノードAに送信されるか、それともノードAからノードBに送信されるかを追加的に指図する。独立したバージョン管理がOKまたは望ましい場合、競合解決は別の選択肢にならない。本明細書で説明される実施形態と一貫性を保って、デバイスにとって望ましくないメタデータによる質的特性を有するオブジェクトは、デバイスの制限のせいで、またはそのような質的特性はデバイスが目標を促進する助けとならないので、同期が取られない。
図11は、フィルタリングされた知識が可能である場合に、すなわち、ノードの知識の一部が1つまたは複数の他のノードと同期が取られる場合に、知識を交換するための一般化された機構を示している。示されるように、各レプリカAおよびBは、同期プロバイダPAおよびプロバイダPBをそれぞれ有する。これに関連して、各レプリカAおよびBは、知識KおよびKをそれぞれ維持し、潜在的には、フィルタリングされた知識FおよびFも維持する。部分化(subsetting)のない場合と同様に、レプリカのいずれかが、別のレプリカの変更1100を要求することができ、変更を伝える他のレプリカに応答して、変更1110を受信することができる。図示されるように、レプリカAは、1100において、所定の範囲の1組のオブジェクトについての変更を要求することができ、組内のオブジェクトの品質についての情報を含むその知識を送信する。同様に、1110において、知識KおよびKの分析に基づいて、1110において、レプリカBは知っているが、レプリカAは知らない変更が、品質の範囲内にあるオブジェクトについて、レプリカAに送信される。フィルタリングされた知識Fとフィルタリングされた知識Fが同じ範囲(scope)内にある場合、一般化された知識交換に関して、
=K∪K
となる。
フィルタリングされた知識Fとフィルタリングされた知識Fが同じ範囲内にない場合、
代わりに、知識は、以下のように、それぞれのフィルターFとFの共通部分に射影された他のレプリカの知識を既存の知識に加える関数である。
=K∪(K→(F∩F))
アプリケーションの中でもとりわけ、これらのタイプのフィルターのための例示的で非限定的なアプリケーションは、カラム(column)、または同期フレームワークの任意の変更ユニット(change unit)をフィルタリングするためのものである。システムにおいてカラム変更は移動操作の影響を受ける可能性が低いので、これは特に適用可能である。フィルター表現(filter representation)および知識統合(knowledge consolidation)という、留意するに値する2つの検討対象が、このシナリオに関して存在する。
フィルター表現に関して、移動のないフィルターの場合のフィルター表現は、以下のようになる。各フィルターは、フィルター内に含まれる変更ユニットのリストとして表現される。この表現は、表現の便利な手段を提供するばかりでなく、必要な場合にフィルターを組み合わせる能力も提供する。フィルターを組み合わせる能力は、知識を統合するために有益である。
知識統合に関して、知識を最も簡潔な形式に保つため、知識を統合する能力が維持されなければならない。これに関連して、知識を最もコンパクトな形式に維持できるように、フィルタリングされた知識の断片(fragment)を統合することができる。
フィルターを組み合わせる能力について検討すると、フィルターは1組の変更ユニットとして表現できるので、両方のフィルターに存在する変更ユニットの組を分離することによって、フィルター内の重複を照合調整することができる。
また、フィルターのためのベクトルは、フィルター内の個々の変更ユニットの各々に適用されるので、フィルターの組み合わせは、両方のフィルター内の各変更ユニットについて、変更ユニットのための合成ベクトルを見つけることによって、実行することができる。その後、ベクトルのすべてが知られると、共通のベクトルを有する変更ユニットが、新しいフィルター内に再度組み合わされる。
フィルターは、デバイス間でどの情報の同期を取るかを制御するための1つの方法であるが、フィルターは一般に、以下でより詳細に説明される実施において提供されるように、アイテムの品質の特性を同期メタデータの一部として扱わない。
したがって、知識の概念は、マルチマスター同期ネットワークの多数のノード間での知識交換のため、データを効率的に表現するために使用することができ、ネットワークのいずれのノードも、ノード間で同期が取られる共通情報または共通情報の一部を独立して進化させることができる。上で説明された知識ベースフレームワークは、マルチマスター同期環境のために実施することができ、以下でより詳細に説明されるように、フレームワークは、効率的な同期メタデータを介したオブジェクトのバージョンの品質についての概念を含むように拡張可能である。
オブジェクトの品質の知識ベース表現
様々な実施形態では、マルチマスター同期トポロジーにおけるデバイスによるデータの効率的な同期が提供され、デバイスは、同期が取られるオブジェクトの品質レベル(例えば、第1のオーディオフォーマットか、それとも第2のオーディオフォーマットか、第1の解像度か、それとも第2の解像度か、もしくは第1のスキーマに準拠するのか、それとも第2のスキーマに準拠するのか)について知っており、またはより一般的に、各デバイスは、オブジェクトのバージョンに適用されるいずれか1つもしくは複数の変換について知っている。個々のエンドポイントが、第1の品質のオブジェクトのバージョン(もしくはオブジェクトのバージョンの第1の変換)と同期を取るべきかどうかを決定でき、または異なる品質を有するオブジェクトのバージョン(もしくはオブジェクトのバージョンの第2のより適切な変換)を有するデバイスを探し出せるように、デバイスは、知識交換の一部としてそのような情報を効率的に伝達することができる。
どのオブジェクトが変化したかについての情報をバージョンを介して効率的に獲得および表現する能力と、それらのオブジェクトが質的にどのように変換されたかについての情報を獲得および表現する能力は、実質的に、オブジェクトの特定のバージョンがエンドポイントにとってどれだけ有益であるかをエンドポイントに告げ、オブジェクトが「変化した」または「異なる」という単なる事実よりも多くの情報が利用可能である。
例えば、iPodは、すべての種類のオーディオファイルを消費することはできず、オーディオファイルの独自仕様フォーマットを再生するのに最もよく適している。対照的に、他のほとんどのMP3プレーヤーは、オーディオファイルのiPod独自仕様フォーマットを再生することができない。したがって、同期言語自体の一部として、異なるオーディオファイル符号化など、同じオブジェクトの異なる品質バージョンについて、知識交換の一部として同期を取ることが望ましいかを、デバイスに決定させることが望ましい。
実施形態の第1の組では、無効化が実施され、それによって、オブジェクトが望まないアイテム(例えば、デバイスのメモリーに対して高すぎる解像度、またはデバイスによってサポートされない異なるスキーマに準拠するオブジェクトのバージョン、またはデバイスが符号化を復号できないなど)を受信した場合、デバイスは、デバイスがそのアイテムを再び受信することを望まないことを同期メタデータが反映するように、そのアイテムを無効化することができる。エンドポイントは、許容できない変換、符号化、忠実度などのバージョンを受信した場合、許容できないオブジェクトバージョンを無効化することができ、実質的に、そのデバイスとの同期プロセスからそのアイテムを削除する。
アイテムは望まれていないので、デバイスによって削除することができ、または他の適切なアクションをオブジェクトに対して取ることができる。別の適切なアクションの例は、オブジェクトのバージョンがデバイスにとって不適切な符号化であるのに、デバイスがそのオブジェクトの復号器を有さない場合に、それにも関わらず、デバイスが、不適切な符号化をデバイスにとって理解可能な符号化にトランスコードするトランスコーダーを有することがある場合とすることができる。そのような場合、オブジェクトを削除する代わりに、デバイスは、オブジェクトを別の符号化に変換し、同期メタデータ内でその変換または新しい品質レベルを表すことができる。
これに関連して、エンドポイントは、将来の同期が許容できないバージョンを再び受け入れることを回避するように、許容できないバージョンについてのメタデータを維持し続ける。しかし、時間とともに、そのような無効化メタデータが、許容し得ないほど増加することがあり得る。要するに、デバイスがそれまでに対話したが好まなかったものすべての記録を維持することは、特に機能が限定されており、多くのオブジェクトを拒否するデバイスの場合、またはめったに遭遇しない品質のオブジェクトの場合、効率的ではない。
しかし、あるコンピューティング同期エコシステムの場合、そのような1組の実施形態は、例えば、デバイスが一般に互換性をもち、類似のアプリケーションならびに類似のメモリーおよび処理能力を有し、デバイスの各々が他のデバイスが知っているすべてを知りたがる可能性が高いため、少数の拒否しかもたらされない可能性が高い同期環境において、きわめて良好に機能することがある。デバイスがハードウェアおよび/またはソフトウェア特徴においてより一層異質になるにつれて、デバイスが他のデバイスが知っているすべてを知りたがらない可能性がより高くなる。その状況は、異なる言語を話す人々と類似している。互いに異なる言語を話す人々の間では、人が他人が理解できる言語を話し始めるまで、多くのコミュニケーションの拒否が発生する。
この点において、オブジェクトのバージョンの品質の概念を、オブジェクト自体のソースであるデバイスに拡張することができる。例えば、時間とともに、デバイスは、特定のノードからの通信のほとんどまたはすべてが低いまたは非互換の品質にあり、したがって、多くが拒否されることを学習することができる。そのような場合、デバイスは、時間とともに、低い品質の別のデバイスと同期を取らず、そのデバイスにとってより関係のある知識を有する、より高い品質のデバイスを待つことを選択することができる。例えば、MP3プレーヤーは、iPodがiPod独自仕様フォーマットの歌のみを有することを学習した後は、iPodと同期を取らないことを選択することができ、デバイスが将来、iPodとの知識交換および比較を実行しなくて済むようにする。
言及されたように、オブジェクトのバージョンについての品質情報を表現する1つの方法は、デバイスに適さないオブジェクトのバージョンにデバイスが気づき、それを拒否した場合に、オブジェクトを無効化することである。多くの拒否が発生した場合、オブジェクトの数が劇的に増加するにつれて、各デバイスが将来何を受信したくないかについてのデバイス当たりに保存される情報の量が、問題を提示し得る。
無効化する実施形態が、全体として、図12のフロー図によって示されている。1200において、様々なノードが、多様なマルチマスター同期環境において、任意のトポロジカルフレームワークに従って、互いに接続することができる。1210において、2つ以上のノードが、知識交換を介して同期を開始する。220において、他のノードから受信したオブジェクトの各バージョンについて、各ノードは、オブジェクトのバージョンによって表される品質がノードにとって望ましいかどうかを決定する。1230において、望ましいかどうかに関わらず、遭遇したバージョンの知識を含むように、同期メタデータが更新される。1240において、バージョンが望ましい場合、そのバージョンは同期を取り続け、すなわち、オブジェクトのそのバージョンに関する同期は、将来の知識交換において変わることなく取られ続ける。1250において、オブジェクトが望ましくないとノードが決定した場合、バージョンの知識は(将来の知識交換においてノードに対してそのオブジェクトの同期を取らないようにするために)維持されるが、1260において、オブジェクトの望ましくないバージョンは削除することができ、またはオブジェクトのそのバージョンに対して、変換などの他のアクションを取ることができる。
無効化する実施形態の動作が、全体として、図13に示されている。示されるように、最初、1302において、ノードA1300とノードC1320は、同期を取っており、両方のノードがサポートする高精細度オブジェクトO1を同期させている。しかし、1304において、ノードA100とノードB1310が同期を取るとき、1314において、ノードB1310は、オブジェクトの高精細度バージョンを保存できないと決定し、そのため、オブジェクトが削除またはより低い精細度バージョンに変換される。例では、簡略にするため、オブジェクトがノードB1310によって削除される。1312において、ノードBは、ノードB1310がオブジェクトのそのバージョンと再び同期を取ることを望まないことを反映するように、同期知識を拡大する。
有利には、その後、1322において、ノードC1320がノードB1310と同期を取るとき、高精細度オブジェクトO1は、ノードB1310がそのバージョンの非所望を反映する知識を有するので、同期が取られない。しかし、1332において、後でノードD1330がノードB1310と同期を取るとき、低精細度バージョンには除外が存在しないので、ノードD1330は、オブジェクトO1の低精細度バージョンをノードB1310に同期させる。このようにして、各ノードは、時間とともに、異なる品質のデータの様々なバージョンに対する嫌忌を反映することができ、サポートされないアイテムに対する努力を繰り返して、不必要な同期トラフィックを生じさせることなく、より知的に同期を取ることができる。
代替的な1組の実施形態では、新しい独立したバージョンに値する破壊的変更とは対照的に、品質は、データのバージョンが品質変換をこうむったことが決定されるデータのバージョンのバージョン管理によって、同期メタデータ内で表される。オブジェクトのバージョンに適用される変換または品質レベルの1つの層を表すためのバージョンのバージョン管理に加えて、そのような実施形態は、任意の数のレベルまたは層に、例えば、2層の場合のバージョンのバージョンのバージョン管理、3層の場合のバージョンのバージョンのバージョンのバージョン管理などに拡張することもできる。
有利には、個々のエンドポイントは、オブジェクトに対する特定の変更が、新しいバージョンが生成される、例えば、ティックカウントが増加されるなど、バージョンのバージョン管理をトリガーしない一般的な変更を表すか、それとも代わりに、例えば、現在のティックカウントによって表されるオブジェクトのバージョンをバージョン管理するなど、オブジェクトの現在のバージョンをバージョン管理することによって表されるタイプの、忠実度または変換変更を表すかを決定することが可能である。したがって、バージョン情報のバージョン管理を知識表現に含めることによる知識の拡張は、オブジェクトに対する変換についての質的情報を伝える目的を達成する別の方法である。
バージョン情報をバージョン管理するための例示的な実施形態が、図14のフロー図に示されている。1400において、1組のオブジェクトの一部として同期が取られるオブジェクトのバージョンの質的特性が変更される。1410において、同期メタデータは、例えば質的変更のためにバージョンがバージョン管理される、オブジェクトのバージョンに対する質的変更を反映した品質情報を含むように拡大される。品質情報が2層である場合、バージョンのバージョンがバージョン管理され、さらに層が増えた場合も同様である。1420において、ノードが、マルチマスター同期環境内の別のノードに接続する。
1430において、ノードは、同期が取られる1組のオブジェクトのうちのオブジェクトのバージョンについての品質バージョン情報の交換を含む知識交換を介して同期を取る。1440において、各ノードは、知識交換に従って更新を列挙し、受信する。その後、オブジェクトの各バージョンについて、各ノードは、品質情報と、ノードが異なる質的特性を有するバージョンの様々なバージョンを望むかどうかを検討する。
同じオブジェクトの異なる質的バージョンに対応するオブジェクトのバージョンの異なるバージョンを表す効率性が、図15のブロック図にさらに示されている。図15では、最初に、ノードA1500は、オブジェクトOの同じバージョンの異なる質的バージョンを有する。示されるように、O1Q1は、オブジェクトOの第1のバージョンを表すメタデータを示す表記であり、Q1は、オブジェクトO1のバージョンの第1の品質バージョンであることを示す。したがって、ノードA1500は、オブジェクトO1の3つの異なる質的バージョンQ1、Q2、Q3を含む。その後、T1において、T1におけるノードA1500とノードB1510の間の知識交換の後、ノードB1510は、バージョンQ1およびQ2のみを望むことを指定し、その後、それらの同期が取られる。その後、T2およびT3におけるさらなる同期において、オブジェクトC1520は、品質Q1を有するバージョンのみを望み、一方、オブジェクトD1530は、品質Q2を有するバージョンのみを望む。したがって、異なる品質の表現は、オブジェクトの多くの不必要で無駄な同期を回避するために、マルチマスター同期環境においてどのバージョンの同期を取るべきかを決定する機会を各デバイスに与える。
図16は、1組のAPIを介して完全または部分知識交換を実行するためのデバイス1600の例示的で非限定的な実施のブロック図である。示されるように、デバイス1600は、非限定的な実施形態による、別のデバイスと1組のオブジェクト1630の同期を取るための知識交換技法を実行する同期モジュール1620を含む。1組のオブジェクト1630は、効率的な動作のためにキャッシュ(図示されず)内に保存することもでき、その場合、1組のオブジェクト1630は、オフラインアプリケーションによって後で更新することができる。同期モジュール1620は、本明細書で説明されたように、一般に知識交換技法に従ってデータを他のノードに送信し、他のノードから受信するための同期通信モジュール1622を含むことができる。
同期通信モジュール1622は、例えばオプションの承認モジュール1640を介して承認された場合に、第2のデバイスとの同期を開始し、第2のデバイスに接続することができる同期開始モジュール1624を含むこともできる。同期モジュール1622は、同期の開始に応答して、例えば、知識を取得もしくは送信するため、または変更を取得もしくは送信するために、1組のオブジェクト1630についての完全および/または部分知識1602をAPIを介して第2のデバイスに送信するI/Oモジュール1626を含むこともできる。同様に、I/Oモジュール1626は、第2のデバイスの要求した知識または変更1612、および第2のデバイスが起源の1組のオブジェクト1630に施された変更を受信することができる。次に、同期分析モジュール1628は、1組のオブジェクト1630に対して行われた任意の変更を適用するように、またローカルに行われた変更を決定するために、第2のデバイスから受信した知識1612を第1のデバイスの知識1602と比較するように、またはデバイス間の同期を完了するために第2のデバイスに送信するように動作する。
本明細書の実施形態によれば、図5から図11に関連して説明されたようなバージョン管理知識1603などの、1組のオブジェクト1630についてのノードによって所有される知識1602は、知識ベースフレームワーク内のオブジェクトに適用される変換についての質的情報を定義する品質知識1604を含むように拡大される。
言及されたように、その概要が上で提供された知識フレームワーク内に含まれるメタデータを拡大することによる、オブジェクトのバージョンの知識ベース品質の様々な実施形態が、本明細書で提供された。疑念を避けるために言えば、本明細書で使用される「品質」という用語は、広い意味をもち、データに関する質的特性に影響を与える1つまたは複数の変換または機能に従ってデータを変換できる任意の方法を指す。したがって、品質という用語は、しばしば、文脈固有またはアプリケーション固有である。この点について、上で説明されたように、知識交換の一部として交換される同期メタデータ内にオブジェクトの異なる質的バージョンの概念を含めることによって、各エンドポイントは、コンピューティングシステム内で同期を取ることになった場合に、異なるバージョンにどう対処するかを決定することができる。
同様に、「変換」という用語および「トランスコーディング」という用語は、データを変更するための任意の機能を指す。加えて、「解像度」または「忠実度」の変更という用語は、広く、細部をより多くまたは少なく含むように任意のオブジェクトを変更することを指す。マルチマスター同期環境において複数のネットワークノード間の同期を提供する様々な実施形態が本明細書で説明され、それらは、同期オブジェクト(複数可)の質的変換の概念を含むように知識ベース同期フレームワークを拡張する。
したがって、様々な実施形態の拡張メタデータ表現は、エンドポイントが、オブジェクトの同じバージョンの異なる質的バージョンについてノードと他のノードの間で同期を取ることが望ましいかどうかをノードが決定できるように、オブジェクトに適用される変更がオブジェクトを質的に変換するかどうかを含むオブジェクトに関する知識を効率的に学習し、伝えることを可能にする。その場合、知識交換は、関与するノードにとってオブジェクトのバージョンのどの品質が最も望ましいかについての分析を含むことができ、オブジェクトの望ましくない品質バージョンを、オブジェクトのそれらの品質バージョンを受信することを望まない他のノードに送信する不必要な反復を防止することができる。
例示的なネットワークおよび分散環境
本明細書で説明された同期インフラストラクチャーの様々な実施形態は、コンピューターネットワークの一部としてまたは分散コンピューティング環境内に展開でき、任意の種類のデータストアに接続できる、任意のコンピューターまたは他のクライアントもしくはサーバーデバイスとの関連で実施できることを当業者であれば理解できよう。これに関連して、本明細書で説明された様々な実施形態は、任意の数のメモリーまたはストレージユニット、ならびに任意の数のストレージユニットにわたって発生する任意の数のアプリケーションおよびプロセスを有する、任意のコンピューターシステムまたは環境において実施することができる。これは、リモートまたはローカルストレージを有する、ネットワーク環境または分散コンピューティング環境内に展開されるサーバーコンピューターおよびクライアントコンピューターを有する環境を含むが、それに限定されない。
分散コンピューティングは、コンピューティングデバイスおよびシステム間の通信交換によって、コンピューターリソースおよびサービスの共用を提供する。これらのリソースおよびサービスは、情報の交換、ファイルなどのオブジェクトのキャッシュストレージおよびディスクストレージを含む。これらのリソースおよびサービスは、負荷バランシング、リソースの拡張、および処理の専門化などのための、多数の処理ユニットにわたる処理能力の共用も含む。分散コンピューティングは、ネットワーク接続性を利用し、クライアントが、それらの集団的能力を利用して、企業全体を益することを可能にする。これに関連して、様々なデバイスは、本開示の様々な実施形態のために説明されたような同期インフラストラクチャーを使用できる、アプリケーション、オブジェクト、またはリソースを有することができる。
図17は、例示的なネットワークまたは分散コンピューティング環境の概略図を提供している。分散コンピューティング環境は、アプリケーション1730、1732、1734、1736、1738によって表されるような、プログラム、メソッド、データストア、プログラマブルロジックなどを含むことができる、コンピューティングオブジェクト1710、1712など、およびコンピューティングオブジェクトまたはデバイス1720、1722、1724、1726、1728などを含む。オブジェクト1710、1712など、およびコンピューティングオブジェクトまたはデバイス1720、1722、1724、1726、1728などが、PDA、オーディオ/ビデオデバイス、モバイル電話、MP3プレーヤー、パーソナルコンピューター、ラップトップなど、異なるデバイスを含み得ることは理解できよう。
各オブジェクト1710、1712など、およびコンピューティングオブジェクトまたはデバイス1720、1722、1724、1726、1728などは、通信ネットワーク1740によって直接的または間接的に、1つまたは複数の他のオブジェクト1710、1712など、およびコンピューティングオブジェクトまたはデバイス1720、1722、1724、1726、1728などと通信することができる。図17では単一の要素として示されているが、ネットワーク1740は、図17のシステムにサービスを提供する他のコンピューティングオブジェクトおよびコンピューティングデバイスを含むことができ、ならびに/または図示されていない多数の相互接続ネットワークを表すことができる。各オブジェクト1710、1712など、または1720、1722、1724、1726、1728などは、本開示の様々な実施形態に従って提供される同期インフラストラクチャーとの通信または同期インフラストラクチャーの実施に適した、API、または他のオブジェクト、ソフトウェア、ファームウェア、および/もしくはハードウェアを利用できる、アプリケーション1730、1732、1734、1736、1738などのアプリケーションも含むことができる。
分散コンピューティング環境をサポートする様々なシステム、コンポーネント、およびネットワーク構成が存在する。例えば、コンピューティングシステムは、有線または無線システムによって、ローカルネットワークまたは広域分散ネットワークによって、互いに接続することができる。現在、多くのネットワークが、広域分散コンピューティングのためのインフラストラクチャーを提供し、多くの異なるネットワークを包含する、インターネットに結合されるが、任意のネットワークインフラストラクチャーが、様々な実施形態で説明されたような同期インフラストラクチャーに付随する例示的な通信のために使用できる。
したがって、クライアント/サーバー、ピアツーピア、またはハイブリッドアーキテクチャーなど、多数のネットワークトポロジーおよびネットワークインフラストラクチャーが利用できる。「クライアント」は、それが関係しない別のクラスまたはグループのサービスを使用する、クラスまたはグループのメンバーである。クライアントは、別のプログラムまたはプロセスによって提供されるサービスを要求するプロセス、すなわち、大雑把に言って1組の命令またはタスクとすることができる。クライアントプロセスは、他のプログラムまたはサービス自体についてのいかなる作業詳細も「知る」必要なしに、要求したサービスを利用する。
クライアント/サーバーアーキテクチャー、特にネットワークシステムでは、クライアントは通常、別のコンピューター、例えばサーバーによって提供される共用ネットワークリソースにアクセスするコンピューターである。図17の図では、非限定的な例として、コンピューター1720、1722、1724、1726、1728などが、クライアントと考えることができ、コンピューター1710、1712などが、サーバーと考えることができ、サーバー1710、1712などは、クライアントコンピューター1720、1722、1724、1726、1728などからのデータの受信、データの保存、データの処理、クライアントコンピューター1720、1722、1724、1726、1728などへのデータの送信などの、データサービスを提供するが、状況に応じて、任意のコンピューターをクライアント、サーバー、またはその両方と見なすことができる。これらのコンピューティングデバイスのいずれかは、1つまたは複数の実施形態のために本明細書で説明されたような同期インフラストラクチャーに関連し得る、処理データ、同期または要求サービスまたはタスクとすることができる。
サーバーは一般に、インターネットまたはワイヤレスネットワークインフラストラクチャーなどのリモートまたはローカルネットワークを介してアクセス可能なリモートコンピューターシステムである。クライアントプロセスは、第1のコンピューターシステムにおいてアクティブとすることができ、サーバープロセスは、第2のコンピューターシステムにおいてアクティブとすることができ、それらは通信媒体を介して互いに通信し、したがって、分散機能を提供し、多数のクライアントがサーバーの情報収集能力を利用することを可能にする。同期インフラストラクチャーに従って利用される任意のソフトウェアオブジェクトは、スタンドアロンで提供することができ、または多数のコンピューティングデバイスもしくはオブジェクトにわたって分散することができる。
通信ネットワーク/バス1740がインターネットであるネットワーク環境では、例えば、サーバー1710、1712などは、ハイパーテキスト伝送プロトコル(HTTP)など、多くの知られたプロトコルのいずれかを介して、クライアント1720、1722、1724、1726、1728などが通信するウェブサーバーとすることができる。サーバー1710、1712などは、分散コンピューティング環境に特徴的なように、クライアント1720、1722、1724、1726、1728などとして機能することもできる。
例示的なコンピューティングデバイス
言及されたように、有利には、本明細書で説明された技法は、コンピューティングシステムにおいて他のオブジェクトと同期を取るのが望ましい任意のデバイスに適用することができる。したがって、ハンドヘルド、ポータブル、および他のコンピューティングデバイス、ならびにすべての種類のコンピューティングオブジェクトが、様々な実施形態と関連して、すなわち、デバイスが同期を取ることができるどこででも、使用されることが企図されていることを理解されたい。したがって、以下図18で説明される以下の汎用リモートコンピューターは、コンピューティングデバイスの単なる一例にすぎない。
必ずしも必要ではないが、実施形態は、デバイスもしくはオブジェクト用のサービスのデベロッパーによって使用するために、オペレーティングシステムを介して部分的に実施することができ、および/または本明細書で説明された様々な実施形態の1つもしくは複数の機能態様を実行するように動作するアプリケーションソフトウェア内に含まれることができる。ソフトウェアは、クライアントワークステーション、サーバー、または他のデバイスなど、1つまたは複数のコンピューターによって実行される、プログラムモジュールなどのコンピューター実行可能命令という一般的な文脈において説明することができる。コンピューターシステムが、データを伝達するために使用できる様々な構成およびプロトコルを有し、したがって、特定の構成またはプロトコルを限定的なものと見なすべきではないことを当業者であれば理解されよう。
したがって、図18は、本明細書で説明された実施形態の1つまたは複数の態様を実施できる適切なコンピューティングシステム環境1800の一例を示しているが、上で明確にしたように、コンピューティングシステム環境1800は、適切なコンピューティング環境の一例にすぎず、使用または機能の範囲に関していかなる限定も暗示しようとは意図していない。コンピューティング環境1800は、例示的な動作環境1800内に示されたコンポーネントのいずれか1つまたは組み合わせに関して、何らかの依存性または必要性を有すると解釈されるべきではない。
図18を参照すると、1つまたは複数の実施形態を実施するための例示的なリモートデバイスは、コンピューター1810の形態をとる汎用コンピューティングデバイスを含む。コンピューター1810のコンポーネントは、限定することなく、処理ユニット1820、システムメモリー1830、およびシステムメモリーを含む様々なシステムコンポーネントを処理ユニット1820に結合するシステムバス1822を含むことができる。
コンピューター1810は一般に、コンピューター1810によってアクセスできる任意の利用可能媒体とすることができる様々なコンピューター可読媒体を含む。システムメモリー1830は、リードオンリーメモリー(ROM)および/またはランダムアクセスメモリー(RAM)などの揮発性および/または不揮発性メモリーの形態をとるコンピューター記憶媒体を含むことができる。限定することなく例を挙げると、メモリー1830は、オペレーティングシステム、アプリケーションプログラム、他のプログラムモジュール、およびプログラムデータも含むことができる。
ユーザーは、入力デバイス1840を介してコンピューター1810にコマンドおよび情報を入力することができる。モニターまたは他のタイプの表示デバイスも、出力インタフェース1850などのインタフェースを介してシステムバス1822に接続される。モニターに加えて、コンピューターは、出力インタフェース1850を介して接続できる、スピーカーおよびプリンターなどの他の周辺出力デバイスも含むことができる。
コンピューター1810は、リモートコンピューター1870などの1つまたは複数の他のリモートコンピューターへの論理接続を使用して、ネットワークまたは分散環境において動作することができる。リモートコンピューター1870は、パーソナルコンピューター、サーバー、ルーター、ネットワークPC、ピアデバイスもしくは他の共通ネットワークノード、または他の任意のリモート媒体消費もしくは伝送デバイスとすることができ、コンピューター1810に関して上で説明された要素のいずれかまたはすべてを含むことができる。図18に示される論理接続は、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)などのネットワーク1872を含むが、他のネットワーク/バスを含むこともできる。そのようなネットワーク環境は、家庭、オフィス、企業規模のコンピューターネットワーク、イントラネット、およびインターネットにおいて一般的である。
上で言及されたように、例示的な実施形態が様々なコンピューティングデバイスおよびネットワークアーキテクチャーに関連して説明されたが、基礎をなす概念は、任意のネットワークシステム、および同期を取ることが望ましい任意のコンピューティングデバイスまたはシステムに適用することができる。
また、アプリケーションおよびサービスが同期インフラストラクチャーを使用することを可能にする、例えば、適切なAPI、ツールキット、ドライバーコード、オペレーティングシステム、コントロール、スタンドアロンまたはダウンロード可能ソフトウェアオブジェクトなど、同一または類似の機能を実施するための多数の方法が存在する。したがって、本明細書の実施形態は、API(または他のソフトウェアオブジェクト)の観点からばかりでなく、同期機能を提供するソフトウェアまたはハードウェアオブジェクトからも企図される。したがって、本明細書で説明された様々な実施形態は、全部がハードウェアである態様、部分的にハードウェアで、部分的にソフトウェアである態様、およびソフトウェアの態様を有することができる。
「例示的(exemplary)」という語は、本明細書では、例、例証、または実例として役立つことを意味するために使用される。疑念を避けるために言えば、本明細書で開示される主題は、そのような例によって限定されない。加えて、「例示的」として本明細書で説明された任意の態様または設計は、他の態様または設計よりも好ましいまたは有利であると解釈される必要はなく、当業者に知られる等価の例示的な構造および技法を排除することを意味するものでもない。さらに、「含む(includes)」、「有する(has)」、「含む(contains)」という用語、および他の類似の語が詳細な説明または特許請求の範囲において使用される限り、疑念を避けるために言えば、そのような用語は、任意の追加要素または他の要素を排除しない開かれた移行語としての「含む(comprising)」という用語と類似の仕方で包含的であることを意図している。
「限定された品質」という用語は、オブジェクトの存在の開始および/または終了が制限されるような、同期システムにおけるオブジェクトの存在に対する制限を指す。
言及されたように、本明細書で説明された様々な技法は、ハードウェアもしくはソフトウェアに関連して、または適切な場合には両方の組み合わせに関連して実施することができる。本明細書で使用される「コンポーネント」および「システム」などの用語も同様に、ハードウェア、ハードウェアとソフトウェアの組み合わせ、ソフトウェア、または実行中ソフトウェアといったコンピューター関連エンティティーを指すことを意図している。例えば、コンポーネントは、限定することなく、プロセッサー上で実行中のプロセス、プロセッサー、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および/またはコンピューターとすることができる。例えば、コンピューター上で実行中のアプリケーションおよびコンピューターは、コンポーネントとすることができる。1つまたは複数のコンポーネントが、プロセスおよび/または実行スレッド内に存在することができ、コンポーネントは、1つのコンピューター上に局在すること、および/または2つ以上のコンピューター間に分散することができる。
上述のシステムは、いくつかのコンポーネント間の対話に関して説明された。そのようなシステムおよびコンポーネントが、それらのコンポーネントもしくは特定のサブコンポーネント、特定のコンポーネントもしくはサブコンポーネントのいくつか、および/または追加のコンポーネントを、それらの様々な順列および組み合わせに従って含むことができることが理解できよう。サブコンポーネントは、親コンポーネント内に含まれる(階層的である)代わりに、他のコンポーネントに通信可能に結合されたコンポーネントとして実施することもできる。加えて、1つまたは複数のコンポーネントは、集約機能を提供する単一のコンポーネントに組み合わせること、またはいくつかの別個のサブコンポーネントに分割することができ、統合機能を提供するために、そのようなサブコンポーネントに通信可能に結合する、管理層などの任意の1つまたは複数の中間層を提供できることに留意されたい。本明細書で説明されたコンポーネントはいずれも、本明細書で特に説明されないが、当業者に一般に知られている、1つまたは複数の他のコンポーネントと対話することもできる。
上で説明された例示的なシステムに鑑みて、説明された主題に従って実施できる方法は、様々な図のフローチャートを参照することでより良く理解されよう。説明を簡素にする目的で、方法は一連のブロックとして示され、説明されたが、いくつかのブロックは本明細書で叙述および説明されたのとは異なる順序ならびに/または他のブロックと同時に生じることができるので、特許請求される主題はブロックの順序によって限定されないことを理解および認識されたい。非順次的または分岐するフローがフローチャートを介して示された場合、同一または類似の結果を達成する他の様々な分岐、フロー経路、およびブロックの順序が実施できることが理解できよう。さらに、これ以降で説明される方法を実施するために、図示されたブロックのすべてが必ずしも必要とされるわけではない。
本明細書で説明された様々な実施形態に加えて、対応する実施形態から逸脱することなく、それらと同一または等価の機能を実行するために、他の類似の実施形態が使用でき、または説明された実施形態に変更および追加を施し得ることを理解されたい。またさらに、多数の処理チップまたは多数のデバイスは、本明細書で説明された1つまたは複数の機能の実行を分担することができ、同様に、ストレージは、複数のデバイスにわたって達成することができる。したがって、本発明は、任意の単一の実施形態または1組の実施形態に限定されず、むしろ添付の特許請求の範囲に従った広さ、主旨、および範囲において解釈されるべきである。

Claims (21)

  1. マルチマスター同期環境において1つまたは複数のネットワークを介して通信可能に結合される複数のノードのうちの第1のノードと第2のノードの間で1組のオブジェクトの同期を取るための方法であって、
    与えられたデータ範囲について、前記第1のノードと前記第2のノードの間で、両ノード上で表現される1組のオブジェクトについての同期知識を交換するステップ(320)であって、前記第1のノードおよび前記第2のノードの同期知識が、それぞれ、前記第1のノードおよび前記第2のノード上で表現される前記1組のオブジェクトのうちのオブジェクトの対応するバージョンを表す同期メタデータを含み、前記同期知識の表現が、データタイプから独立である、ステップと、
    前記同期知識交換に基づいて、どちらが他方のノードに対して受信ノードになってもよい前記第1のノードまたは前記第2のノードによって、前記受信ノード上で表現されるオブジェクトに適用された第2の変換とは異なる、対応するオブジェクトに適用された第1の変換を有する、前記1組のオブジェクトのうちのオブジェクトを受信し、前記第1の変換が前記第2の変換とは異なる品質であることを認識するステップ(340)と、
    前記第1の変換が適用された前記オブジェクトのバージョンについての前記受信ノードによる知識と、前記第2の変換が適用された前記オブジェクトのバージョンについての知識とを表す変換メタデータを含むように、前記受信ノードの前記同期メタデータを更新するステップ(360)と
    を含む方法。
  2. 少なくとも1つの事前定義された基準に基づいて、前記第1の変換が適用された前記オブジェクトが、前記受信ノードにとって望ましいかどうかを決定するステップ(340)であって、決定する前記ステップが、第1の変換機能を第2の変換機能と比較するステップを含む、ステップ
    をさらに含む請求項1に記載の方法。
  3. 前記第1の変換が適用された前記オブジェクトが前記受信ノードにとって望ましくない場合、前記受信ノードによって前記オブジェクトを削除するステップ(350)
    をさらに含む請求項2に記載の方法。
  4. 前記第1の変換が適用された前記オブジェクトが前記受信ノードにとって望ましくない場合、前記受信ノードが前記第1の変換が適用された前記オブジェクトの前記バージョンについて知らされたが、前記マルチマスター同期環境における他のノードとの将来の知識交換の一部として、前記バージョンを受信することを望んでいないことを反映するように、前記受信ノードの前記同期メタデータを更新することによって、前記オブジェクトを無効化するステップ(360)
    をさらに含む請求項3に記載の方法。
  5. 前記同期メタデータを更新する前記ステップ(360)が、同じ前記オブジェクトに対して異なる前記第1の変換および前記第2の変換についての知識を表す変換メタデータを用いて前記同期メタデータを拡大するステップをさらに含む、
    請求項1に記載の方法。
  6. 前記同期メタデータを更新する前記ステップ(360)が、異なる第1の変換および第2の変換が適用された前記オブジェクトについての知識を表し、前記受信ノードが前記第1の変換が適用可能な前記オブジェクトを削除したか、それとも前記第2の変換が適用可能な前記オブジェクトを削除したかを表す変換メタデータを用いて前記同期メタデータを拡大するステップをさらに含む、
    請求項1に記載の方法。
  7. 変換メタデータを含むように前記受信ノードの前記同期メタデータを更新する前記ステップ(360)が、将来の知識交換によって、前記受信ノードが同じまたは他のノードから前記削除されたオブジェクトを再び受信する結果がもたらされないよう防止する、請求項6に記載の方法。
  8. 前記同期メタデータを拡大する前記ステップ(1250)が、前記受信ノードが前記第1の変換が適用可能な前記オブジェクトを削除したか、それとも前記第2の変換が適用可能な前記オブジェクトを削除したかを表すブール値を用いて、前記オブジェクトについての前記同期メタデータを拡大するステップを含む、
    請求項6に記載の方法。
  9. 交換する前記ステップ(320)が、前記データ範囲内で、それぞれ、ローカル同期知識または外部同期知識の一部として前記第1のノードまたは前記第2のノードによって学習されたが、前記第1のノードまたは前記第2のノード上で削除された任意のオブジェクトに対する考慮を含みながら、前記第1のノード上で表現される前記1組のオブジェクトに関する前記第1のノードのローカル同期知識を前記第2のノードの外部同期知識と比較するステップ(330)を含む、請求項1に記載の方法。
  10. 比較する前記ステップに基づいて、前記第2のノード上で表現される前記1組のオブジェクトについての前記外部知識に対する変更と、前記第2のノード上で表現される前記1組のオブジェクトに対する対応する変更とを決定するステップ(1060)と、
    前記外部知識に対する前記変更と、前記1組のオブジェクトに対する前記対応する変更とを前記第2のノードに送信するステップ(1060)と
    をさらに含む請求項9に記載の方法。
  11. マルチマスター同期環境において複数のノードのうちのノードと別のノードの間で1組のオブジェクトの同期を取る、1つまたは複数のネットワークを介して接続可能な前記複数のノードのうちのノードであって、
    前記複数のノードのうちの前記ノードと前記他のノードの間で前記1組のオブジェクトの同期を取るための同期コンポーネント1620であって、
    データタイプとは独立に、前記他のノードと前記ノードの間の知識交換のためのメタデータ構造を定義する同期プロトコルを介して、前記他のノードとの同期を開始し、前記同期プロトコルに基づいて、前記1組のオブジェクトの同期を取るための要求を前記他のノードに送信し、それに応答して、前記他のノード上で表現される前記1組のオブジェクトに対応する他のノードオブジェクトの第1のバージョン管理情報と、前記他のノードオブジェクトの第1のバージョン管理情報に対応する他のノードオブジェクトの第2のバージョン管理情報とを含む前記1組のオブジェクトについての外部知識を前記他のノードから受信する、同期通信コンポーネント1622であって、前記他のノードオブジェクトの第2のバージョン管理情報が、前記他のノードオブジェクトの第1のバージョン管理情報をバージョン管理し、前記他のノードオブジェクトの第1のバージョン管理情報によって表される前記1組のオブジェクトのバージョンについての異なる忠実度レベルを表す、同期通信コンポーネント1622と、
    前記1組のオブジェクトについての前記外部知識、対応する他のノードオブジェクトの第1のバージョン管理情報、および他のノードオブジェクトの第2のバージョン管理情報を、前記1組のオブジェクトについての前記ローカル知識、対応するノードオブジェクトの第1のバージョン管理情報、および前記ノードオブジェクトの第1のバージョン管理情報のバージョンをバージョン管理した対応するノードオブジェクトの第2のバージョン管理情報と比較して、前記1組のオブジェクトの更新されるローカル知識、対応するノードオブジェクトの第1のバージョン管理情報、および対応するノードオブジェクトの第2のバージョン管理情報によってどの変更が反映されるべきかを決定することによって、前記ノード上で表現される前記1組のオブジェクトについてのローカル知識と、対応するノードオブジェクトバージョン管理情報を更新する、同期分析コンポーネント1628と
    を含む同期コンポーネント1620
    を含むノード。
  12. 対応するノードオブジェクトの第1のバージョン管理情報および対応するノードオブジェクトの第2のバージョン管理情報を有する前記更新されるローカル知識によって表される前記1組のオブジェクトのうちの各オブジェクトについて、前記同期分析コンポーネント1628が、前記ノードおよび前記他のノード上で表される第2のバージョン管理情報を、前記第1のバージョン管理情報によって表される前記オブジェクトの与えられた第1のバージョンと比較して、前記第2のバージョン管理情報によって表される前記与えられた第1のバージョンの与えられた第2のバージョンが、前記ノードまたは前記他のノードにとって同期を取るのが望ましいかどうかを決定する、請求項11に記載のノード。
  13. 前記同期プロトコルが、前記ノードと前記他のノードの間で同期が取られる実際のデータのいかなるスキーマも規定しない、請求項11に記載のノード。
  14. マルチマスター同期環境において1つまたは複数のネットワークを介して通信可能に結合される複数のノードのうちの第1のノードと第2のノードの間で1組のオブジェクトの同期を取るための方法であって、
    前記第1のノードによって前記1組のオブジェクトのうちの少なくとも1つのオブジェクトの質的特性を変更するステップ(1400)と、
    前記質的特性に対する前記変更を表す品質メタデータを含むように、前記少なくとも1つのオブジェクトに関する前記第1のノードの同期知識メタデータを更新するステップ(1410)であって、前記同期知識メタデータの表現が、データタイプから独立である、ステップと、
    前記第1のノードによって前記第2のノードに前記第1のノードの前記更新された同期知識メタデータを送信するステップを含む、前記第1のノードによって前記第2のノードと同期を取るステップ(1430)であって、送信する前記ステップが、前記第1のノード上で表現される前記1組のオブジェクトのバージョンに対応する前記1組のオブジェクトのうちのオブジェクトのバージョンメタデータと、前記1組のオブジェクトの前記バージョンに関連する任意の対応する品質メタデータとを送信するステップを含む、ステップと
    を含む方法。
  15. 更新する前記ステップ(1410)が、前記少なくとも1つのオブジェクトの前記質的特質の前記変更に応答して変更するステップを含む、
    請求項14に記載の方法。
  16. 変更する前記ステップが、前記第1のノードによって定義された少なくとも1つの基準に基づいて、前記少なくとも1つのオブジェクトの前記質的特質を変更することを決定するステップ(1440)
    をさらに含む、請求項14に記載の方法。
  17. 決定する前記ステップ(1440)が、変更する前記ステップが、前記少なくとも1つのオブジェクトによって表されるデータを、実質的に前記データを破壊することなく変換することを決定するステップを含む、請求項16に記載の方法。
  18. 決定する前記ステップ(1440)が、変更する前記ステップが、前記少なくとも1つのオブジェクトによって表されるデータを、実質的に前記データの忠実度を変更することなくトランスコードすることを決定するステップを含む、請求項16に記載の方法。
  19. 決定する前記ステップ(1440)が、変更する前記ステップが、前記少なくとも1つのオブジェクトによって表されるデータを、前記データの忠実度を低下させて変換することを決定するステップを含む、請求項16に記載の方法。
  20. 決定する前記ステップ(1440)が、変更する前記ステップが、前記少なくとも1つのオブジェクトによって表されるデータを、前記データの忠実度を向上させて変換することを決定するステップを含む、請求項16に記載の方法。
  21. 前記質的特性に対する前記変更を表すように、前記第1のノードの前記同期知識メタデータを更新する前記ステップ(1410)が、前記少なくとも1つのオブジェクトの現在のバージョンメタデータを変更せずにおくステップと、前記現在のバージョンメタデータとともに、前記少なくとも1つのオブジェクトの同じバージョンの異なる品質を区別する追加的な品質バージョンメタデータを保存するステップとを含む、請求項16に記載の方法。
JP2010545039A 2008-02-01 2009-01-06 マルチマスター同期環境のための知識ベースフレームワークにおける質的オブジェクト変更の表現 Active JP5622590B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/024,967 US8185495B2 (en) 2008-02-01 2008-02-01 Representation of qualitative object changes in a knowledge based framework for a multi-master synchronization environment
US12/024,967 2008-02-01
PCT/US2009/030205 WO2009099690A1 (en) 2008-02-01 2009-01-06 Representation of qualitative object changes in a knowledge based framework for a multi-master synchronization environment

Publications (3)

Publication Number Publication Date
JP2011511368A true JP2011511368A (ja) 2011-04-07
JP2011511368A5 JP2011511368A5 (ja) 2012-02-23
JP5622590B2 JP5622590B2 (ja) 2014-11-12

Family

ID=40931594

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010545039A Active JP5622590B2 (ja) 2008-02-01 2009-01-06 マルチマスター同期環境のための知識ベースフレームワークにおける質的オブジェクト変更の表現

Country Status (5)

Country Link
US (1) US8185495B2 (ja)
EP (1) EP2248302B1 (ja)
JP (1) JP5622590B2 (ja)
CN (1) CN101933294B (ja)
WO (1) WO2009099690A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015037494A1 (ja) * 2013-09-12 2015-03-19 メタフロンティア合同会社 端末装置、サーバ装置、データ管理システム、及びプログラムが記録された記録媒体

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8799219B2 (en) * 2008-11-11 2014-08-05 Microsoft Corporation Selection of media content item having preferred instance attributes
US8284803B2 (en) * 2009-12-30 2012-10-09 Microsoft Corporation Cross-scope synchronization of data item knowledge and corresponding metadata
US8341099B2 (en) * 2010-03-12 2012-12-25 Microsoft Corporation Semantics update and adaptive interfaces in connection with information as a service
US8386423B2 (en) * 2010-05-28 2013-02-26 Microsoft Corporation Scalable policy-based database synchronization of scopes
KR101697979B1 (ko) * 2010-11-23 2017-01-19 삼성전자주식회사 네트워크로 연결 가능한 기기에서 데이터를 동기화하기 위한 장치 및 방법
US8538926B2 (en) * 2011-03-08 2013-09-17 Rackspace Us, Inc. Massively scalable object storage system for storing object replicas
CA2769773C (en) * 2011-11-04 2018-01-09 Gemcom Software International Inc. System and method for data communication over a network
US9031909B2 (en) 2011-11-29 2015-05-12 Microsoft Technology Licensing, Llc Provisioning and/or synchronizing using common metadata
US20130283175A1 (en) * 2012-04-23 2013-10-24 Alcatel-Lucent Canada Inc. Synchronization management groups
US10649424B2 (en) 2013-03-04 2020-05-12 Fisher-Rosemount Systems, Inc. Distributed industrial performance monitoring and analytics
US9665088B2 (en) 2014-01-31 2017-05-30 Fisher-Rosemount Systems, Inc. Managing big data in process control systems
US10282676B2 (en) 2014-10-06 2019-05-07 Fisher-Rosemount Systems, Inc. Automatic signal processing-based learning in a process plant
US10678225B2 (en) 2013-03-04 2020-06-09 Fisher-Rosemount Systems, Inc. Data analytic services for distributed industrial performance monitoring
US9558220B2 (en) 2013-03-04 2017-01-31 Fisher-Rosemount Systems, Inc. Big data in process control systems
US10649449B2 (en) 2013-03-04 2020-05-12 Fisher-Rosemount Systems, Inc. Distributed industrial performance monitoring and analytics
US9397836B2 (en) 2014-08-11 2016-07-19 Fisher-Rosemount Systems, Inc. Securing devices to process control systems
US9823626B2 (en) 2014-10-06 2017-11-21 Fisher-Rosemount Systems, Inc. Regional big data in process control systems
US9804588B2 (en) 2014-03-14 2017-10-31 Fisher-Rosemount Systems, Inc. Determining associations and alignments of process elements and measurements in a process
US10386827B2 (en) 2013-03-04 2019-08-20 Fisher-Rosemount Systems, Inc. Distributed industrial performance monitoring and analytics platform
US10866952B2 (en) 2013-03-04 2020-12-15 Fisher-Rosemount Systems, Inc. Source-independent queries in distributed industrial system
US10223327B2 (en) 2013-03-14 2019-03-05 Fisher-Rosemount Systems, Inc. Collecting and delivering data to a big data machine in a process control system
US10909137B2 (en) 2014-10-06 2021-02-02 Fisher-Rosemount Systems, Inc. Streaming data for analytics in process control systems
US10671028B2 (en) 2013-03-15 2020-06-02 Fisher-Rosemount Systems, Inc. Method and apparatus for managing a work flow in a process plant
WO2014145801A2 (en) 2013-03-15 2014-09-18 Fisher-Rosemount Systems, Inc. Data modeling studio
US10168691B2 (en) 2014-10-06 2019-01-01 Fisher-Rosemount Systems, Inc. Data pipeline for process control system analytics
IN2015CH01317A (ja) * 2015-03-18 2015-04-10 Wipro Ltd
US20170054790A1 (en) * 2015-08-21 2017-02-23 Neatly Co. System and Method for Object Compression and State Synchronization
US10503483B2 (en) 2016-02-12 2019-12-10 Fisher-Rosemount Systems, Inc. Rule builder in a process control network
CN107332721B (zh) * 2017-08-27 2019-07-12 海南大学 面向类型化资源的物联网资源采集传输优化系统
US10979500B1 (en) * 2018-12-31 2021-04-13 Facebook, Inc. Techniques for directive-based messaging synchronization
US11055314B1 (en) 2018-12-31 2021-07-06 Facebook, Inc. Techniques for a database-driven messaging user interface
US11025576B1 (en) * 2018-12-31 2021-06-01 Facebook, Inc. Techniques for backend-specific cursor tracking
US10855761B1 (en) 2018-12-31 2020-12-01 Facebook, Inc. Techniques for in-place directive execution
US12315303B2 (en) * 2021-03-29 2025-05-27 Nec Corporation Method and server apparatus for adaptively updating a target subject identification stored in a database

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11149448A (ja) * 1997-11-18 1999-06-02 Sony Corp ネットワークシステム、クライアント端末及び中継サーバ
JP2000057032A (ja) * 1998-07-03 2000-02-25 Mitsubishi Electric Inf Technol Center America Inc 複数のサ―バでオブジェクトを同期させる汎用システム、2つのサ―バでオブジェクトを同期させるシステム、2つのサ―バでオブジェクトを同期させる方法、2つのサ―バに存在するオブジェクトがオブジェクトのタイプに関係なく同期される汎用同期システム、2つのサ―バでのオブジェクトの同期における競合を検出して解消する方法
JP2000222268A (ja) * 1999-01-29 2000-08-11 Hitachi Ltd 複数のコンピュータ間におけるファイルの同期方法
JP2000339211A (ja) * 1999-05-25 2000-12-08 Casio Comput Co Ltd ファイル処理装置、ファイル処理システム、及び記憶媒体
US20030145020A1 (en) * 2002-01-31 2003-07-31 Ngo J. Thomas Data replication based upon a non-destructive data model
JP2007058275A (ja) * 2005-08-22 2007-03-08 Brother Ind Ltd ノード装置、共用情報更新処理プログラム、共用情報更新方法、及び情報共有システム

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7536524B2 (en) * 1998-07-31 2009-05-19 Kom Networks Inc. Method and system for providing restricted access to a storage medium
US6401104B1 (en) * 1999-07-03 2002-06-04 Starfish Software, Inc. System and methods for synchronizing datasets using cooperation among multiple synchronization engines
US6742025B2 (en) * 1999-09-30 2004-05-25 International Business Machines Corp. System and method for server managed modification of operating system data stored within a network device
US20010042099A1 (en) * 2000-02-02 2001-11-15 Doongo Technologies, Inc. Apparatus and methods for optimizing traffic volume in wireless email communications
US7216289B2 (en) * 2001-03-16 2007-05-08 Microsoft Corporation Method and apparatus for synchronizing multiple versions of digital data
US7363388B2 (en) * 2001-03-28 2008-04-22 Siebel Systems, Inc. Method and system for direct server synchronization with a computing device
US20030093435A1 (en) * 2001-11-05 2003-05-15 Bandekar Vijay R. Method and system for application level data object synchronization between two or more processes
US7606881B2 (en) * 2002-04-25 2009-10-20 Oracle International Corporation System and method for synchronization of version annotated objects
CN1261877C (zh) * 2002-10-11 2006-06-28 鸿富锦精密工业(深圳)有限公司 多节点文件同步系统及方法
US7506007B2 (en) * 2003-03-03 2009-03-17 Microsoft Corporation Interval vector based knowledge synchronization for resource versioning
US7290019B2 (en) * 2003-03-03 2007-10-30 Microsoft Corporation Garbage collection of tombstones for optimistic replication systems
US7756825B2 (en) * 2003-07-31 2010-07-13 Microsoft Corporation Synchronization peer participant model
US7636776B2 (en) * 2003-07-31 2009-12-22 Microsoft Corporation Systems and methods for synchronizing with multiple data stores
US20050060370A1 (en) * 2003-09-17 2005-03-17 Sony Corporation Version based content distribution and synchronization system and method
US7383291B2 (en) * 2004-05-24 2008-06-03 Apple Inc. Method for sharing groups of objects
US7593943B2 (en) * 2005-01-14 2009-09-22 Microsoft Corporation Method and system for synchronizing multiple user revisions to a shared object
US7610317B2 (en) * 2005-02-22 2009-10-27 Microsoft Corporation Synchronization with derived metadata
US7761412B2 (en) * 2005-04-22 2010-07-20 Microsoft Corporation Synchronization move support systems and methods
US20060277224A1 (en) * 2005-06-07 2006-12-07 Microsoft Corporation Synchronizing arbitrary data using a flexible schema
US7930346B2 (en) * 2005-08-24 2011-04-19 Microsoft Corporation Security in peer to peer synchronization applications
KR100678921B1 (ko) * 2005-10-18 2007-02-05 삼성전자주식회사 다중 서버 환경에 적합한 디바이스를 클라이언트로 하여동기화를 수행하는 방법 및 장치
US20070168535A1 (en) 2005-12-22 2007-07-19 Ilmo Ikonen System and method for data communication between devices
US7890646B2 (en) * 2006-04-27 2011-02-15 Microsoft Corporation Synchronization orchestration
US7953710B2 (en) 2006-06-23 2011-05-31 Microsoft Corporation Multi-master database synchronization without loss of convergence
CN100531059C (zh) * 2006-06-29 2009-08-19 明基电通股份有限公司 状态同步系统及方法
US7653640B2 (en) * 2006-07-31 2010-01-26 Microsoft Corporation Two-way and multi-master synchronization over web syndications
US7620659B2 (en) * 2007-02-09 2009-11-17 Microsoft Corporation Efficient knowledge representation in data synchronization systems
US7565513B2 (en) * 2007-02-28 2009-07-21 Advanced Micro Devices, Inc. Processor with power saving reconfigurable floating point unit decoding an instruction to single full bit operation or multiple reduced bit operations
US8090685B2 (en) * 2007-09-14 2012-01-03 Microsoft Corporation Knowledge based synchronization of subsets of data with no move condition
US20090089448A1 (en) * 2007-09-28 2009-04-02 David Sze Mobile browser with zoom operations using progressive image download
US20090196311A1 (en) * 2008-01-31 2009-08-06 Microsoft Corporation Initiation and expiration of objects in a knowledge based framework for a multi-master synchronization environment

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11149448A (ja) * 1997-11-18 1999-06-02 Sony Corp ネットワークシステム、クライアント端末及び中継サーバ
JP2000057032A (ja) * 1998-07-03 2000-02-25 Mitsubishi Electric Inf Technol Center America Inc 複数のサ―バでオブジェクトを同期させる汎用システム、2つのサ―バでオブジェクトを同期させるシステム、2つのサ―バでオブジェクトを同期させる方法、2つのサ―バに存在するオブジェクトがオブジェクトのタイプに関係なく同期される汎用同期システム、2つのサ―バでのオブジェクトの同期における競合を検出して解消する方法
JP2000222268A (ja) * 1999-01-29 2000-08-11 Hitachi Ltd 複数のコンピュータ間におけるファイルの同期方法
JP2000339211A (ja) * 1999-05-25 2000-12-08 Casio Comput Co Ltd ファイル処理装置、ファイル処理システム、及び記憶媒体
US20030145020A1 (en) * 2002-01-31 2003-07-31 Ngo J. Thomas Data replication based upon a non-destructive data model
JP2007058275A (ja) * 2005-08-22 2007-03-08 Brother Ind Ltd ノード装置、共用情報更新処理プログラム、共用情報更新方法、及び情報共有システム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"MSDN Selection(2) Microsoft Windows NT Active Directory技術概要", アスキーNT, vol. 第3巻 第7号, JPN6013041829, 1 July 1998 (1998-07-01), JP, pages 268 - 276, ISSN: 0002902749 *
荒木拓也ほか2名: "マスターレスなDB同期システムとシームレスな動画視聴システムへの応用", 情報処理学会研究報告, vol. 第2006巻 第14号, JPN6013016034, 17 February 2006 (2006-02-17), JP, pages 299 - 304, ISSN: 0002902747 *
藤田将幸: "効きめバツグン! Active Directory実践テクニック 最終回 複製の競合に関するトラブル", WINDOWS 2000 WORLD, vol. 第8巻 第6号, JPN6013041828, 1 June 2003 (2003-06-01), JP, pages 171 - 173, ISSN: 0002902748 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015037494A1 (ja) * 2013-09-12 2015-03-19 メタフロンティア合同会社 端末装置、サーバ装置、データ管理システム、及びプログラムが記録された記録媒体
JP2015056070A (ja) * 2013-09-12 2015-03-23 メタフロンティア合同会社 端末装置、データ処理プログラム、及びデータ管理システム
US10148984B2 (en) 2013-09-12 2018-12-04 Soliton Systems K.K. Terminal device, server device, data management system, and recording medium on which program is recorded

Also Published As

Publication number Publication date
EP2248302B1 (en) 2016-04-13
EP2248302A1 (en) 2010-11-10
CN101933294A (zh) 2010-12-29
US8185495B2 (en) 2012-05-22
JP5622590B2 (ja) 2014-11-12
US20090196179A1 (en) 2009-08-06
WO2009099690A1 (en) 2009-08-13
CN101933294B (zh) 2013-08-21
EP2248302A4 (en) 2015-01-07

Similar Documents

Publication Publication Date Title
JP5622590B2 (ja) マルチマスター同期環境のための知識ベースフレームワークにおける質的オブジェクト変更の表現
US9135321B2 (en) Synchronization infrastructure for networked devices, applications and services in a loosely coupled multi-master synchronization environment
JP5456677B2 (ja) マルチマスタ同期環境におけるウェブサービスエンドポイントの同期
US8090685B2 (en) Knowledge based synchronization of subsets of data with no move condition
US8675687B2 (en) Cross-scope synchronization of data item knowledge and corresponding metadata
JP2010518520A (ja) 分散装置に対するマルチマスタ・データ同期のコンフリクト解決
CN101583939A (zh) 用于松耦合设备的同步协议
US20090196311A1 (en) Initiation and expiration of objects in a knowledge based framework for a multi-master synchronization environment
JP2015502596A (ja) モバイルデバイスからのリモートアクセス
US9015292B2 (en) Method, apparatus and computer program product for providing composite capability information for devices in distributed networks
US20130159829A1 (en) Providing data experience(s) via disparate semantic annotations based on a respective user scenario
KR20120112523A (ko) 전자기기 및 전자기기의 동작 방법
CN117119227A (zh) 页面信息获取方法、装置、计算机设备及存储介质
CN118093218A (zh) 设备驱动管理方法、装置、设备和存储介质
CN113342811A (zh) HBase表格数据处理方法及装置
KR100625656B1 (ko) 자원공유 시스템 및 방법
Hafsøe et al. Semantically enabled qos aware service discovery and orchestration for manets
CN114979156A (zh) 边缘云服务的实现方法、系统以及终端

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111228

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111228

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130812

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140307

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140707

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140715

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: 20140919

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140922

R150 Certificate of patent or registration of utility model

Ref document number: 5622590

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250