JP2009506423A - ピアツーピア同期化アプリケーションにおけるセキュリティ - Google Patents

ピアツーピア同期化アプリケーションにおけるセキュリティ Download PDF

Info

Publication number
JP2009506423A
JP2009506423A JP2008527921A JP2008527921A JP2009506423A JP 2009506423 A JP2009506423 A JP 2009506423A JP 2008527921 A JP2008527921 A JP 2008527921A JP 2008527921 A JP2008527921 A JP 2008527921A JP 2009506423 A JP2009506423 A JP 2009506423A
Authority
JP
Japan
Prior art keywords
synchronization
data
peer
synchronized
data storage
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
JP2008527921A
Other languages
English (en)
Other versions
JP4955682B2 (ja
JP2009506423A5 (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 JP2009506423A publication Critical patent/JP2009506423A/ja
Publication of JP2009506423A5 publication Critical patent/JP2009506423A5/ja
Application granted granted Critical
Publication of JP4955682B2 publication Critical patent/JP4955682B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • 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/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/25Integrating or interfacing systems involving database management systems
    • G06F16/256Integrating or interfacing systems involving database management systems in federated or virtual databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F16/273Asynchronous replication or reconciliation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Abstract

請求する事項は、データストレージシステム内のデータの同期化を容易にするシステムおよび/または方法を提供する。インターフェースコンポーネントは、データストレージシステム内の同期技法を活用することができる。同期コンポーネントは、同期化されたデータに対する段階的なアクセスを可能にするために、少なくとも部分的に同期技法に基づいてセキュアなピアツーピアデータの同期化を提供することができる。

Description

本発明は、ピアツーピア同期化アプリケーションにおけるセキュリティに関する。
コンピュータ技術の進歩(例えば、マイクロプロセッサ速度、メモリ容量、データ転送帯域幅、ソフトウェア機能性など)は、一般に、さまざまな産業におけるコンピュータアプリケーションの増加に寄与してきた。さらに強力なサーバシステムは、しばしばサーバのアレイとして構成されるが、一般に、例えばワールドワイドウェブなどの外部ソースから発する要求にサービスするために提供される。
使用可能な電子データの量が増えるにつれて、そのようなデータをユーザフレンドリですばやいデータ検索および取り出しを容易にする操作しやすい形式で格納することが、より重要になる。今日、一般的な手法は、電子データを1つまたは複数のデータベースに格納することである。一般に、代表的なデータベースは、例えばコンピュータプログラムが所望の個々のデータをすばやく検索でき、選択できるように構造化されたデータを伴う、編成された情報のコレクションと呼ぶことができる。一般に、データベース内のデータは、1つまたは複数のテーブルを介して編成される。そのようなテーブルは、行および列のアレイとして配列される。
また、テーブルは、一組のレコードを備えることができ、レコードは、一組のフィールドを含む。インデックスの行/列の対が、テーブル内の特定のデータを参照できるように、レコードは、一般に、テーブル内の行として索引付けされ、レコードフィールドは、代表的に、列として索引付けされる。例えば、行は、販売取引、人、またはプロジェクトに関する完全なデータレコードを格納することができる。同様に、テーブルの列は、同一の汎用データフォーマットを有する行の別個の部分を定義することができ、列は、レコードのフィールドを定義することができる。
独立の各個々のデータは、それ自体としては、一般に、あまり情報性があるものではない。データベースアプリケーションは、ユーザがデータを編成し、処理するのを助けるので、データをより有用にする。データベースアプリケーションは、ユーザがデータを比較し、ソートし、順序付け、マージし、分離し、相互接続することを可能にし、その結果、有用な情報をデータから生成できるようになる。データベースの容量および多用途性は、データベースを利用する事実上限りない記憶容量を可能にするために、信じられないほどに高まっている。しかし、代表的なデータベースシステムは、時間、ファイル拡張子、位置、およびサイズに基づく限られたクエリ能力を提示する。例えば、データベースに関連する膨大な量のデータを検索するために、代表的な検索は、ファイル名、ファイルサイズ、作成日付などに制限され、そのような技法は、不十分であり、不適当である。
継続し増加するエンドユーザからのデータの作成とともに、そのようなデータの検索、関係付け、操作、および格納を取り巻く問題および困難性は、エスカレートしつつある。エンドユーザは、ドキュメントを書き、写真を格納し、コンパクトディスクから音楽をリッピングし、電子メールを受信し、送信した電子メールのコピーを保存するなどする。例えば、音楽のコンパクトディスクを作成する単純なプロセスでは、エンドユーザは、数メガバイトのデータを作成することができる。コンパクトディスクから音楽をリッピングすること、ファイルを適するフォーマットに変換すること、ジュエルケースカバーを作成すること、およびコンパクトディスクラベルをデザインすることのすべてが、データの作成を必要とする。
複雑な状況は、ユーザを取り巻いているだけではなく、開発者も、データに関する同様の問題を有する。開発者は、パーソナルアプリケーションから高度に開発されたエンタープライズアプリケーションまでさまざまな無数のアプリケーションを作成し、記述する。作成、および/または開発している間、開発者は、常にではないとしても頻繁にデータを収集する。そのようなデータを入手すると、そのデータを格納する必要がある。言い換えると、データの検索、関係付け、操作、および格納を取り巻く問題および困難性は、開発者とエンドユーザとの両方に影響する。
さらに、開発者および/またはユーザを取り巻く限りない量のデータがあるため、異なるマシンおよび/またはシステムの間のデータの整合性は、複雑で圧倒的な作業になる可能性がある。例えば、ユーザは、ラップトップマシンおよびデスクトップ機を利用することができ、ここで、データの整合性および/または同期化は、極めて重要な事項である。特に、各マシンおよび/またはシステムが大量のデータを生成すると、そのようなデータの同期化は、非常に困難な目標である。
次に、本明細書で説明するいくつかの態様の基本的な理解を提供するために、簡略化した本革新の概要を提示する。この概要は、請求する事項の完璧な概観ではない。請求する事項の主要で重大な要素を識別すること、および本革新の範囲を画定することは、意図されていない。この概要の唯一の目的は、後で提示されるより詳細な説明の前置きとして、請求する事項のいくつかの概念を簡略化した形で提示することである。
本革新は、少なくとも2つの異なるデータストレージシステムに関連するデータの同期化を容易にするシステムおよび/または方法に関する。データストレージシステムは、少なくともデータベース構造に基づく複合モデルとすることができ、ここで、アイテム、サブアイテム、プロパティ、およびリレーションシップが、データストレージシステム内の情報を複合型のインスタンスとして表現することを可能にするために定義される。同期コンポーネントは、セキュアなピアツーピアデータの同期を作成して、複数のユーザがそのような同期化されたデータにさまざまな段階および/またはレベルでアクセスすることを可能にする。同期コンポーネントは、データストレージシステムおよび異なるデータストレージシステムに関連するデータを同期化し、ここで、セキュアなピアツーピア同期コミュニティ(peer to peer synchronization community)を確立することができる。同期コンポーネントは、適切なアクセスを有するユーザが同期化コミュニティを修正でき(例えば、ユーザを追加でき、および/またはコミュニティからユーザを除去でき)、変更および/または操作を他のユーザに伝送できるように、同期化コミュニティのメンバシップリスト(例えば、ユーザアクセス権および/または特権のリスト)を含むメタデータを確保する。適切なアクセスを有するユーザがデータを修正でき、変更を他のユーザに伝送できるように、データを確保することもできる。
言い換えると、同期コンポーネントは、複雑な同期リレーションシップ(synchronization relationship)の管理を実装することができる。例えば、同期リレーションシップは、セットアップ、切り離し(tear-down)、およびセキュリティ管理を含むことができるが、これらに限定するものではない。さらに、同期コンポーネントは、完全に同期技術(synchronization technology)に基づいて複雑な同期リレーションシップの管理を実装することができる。例えば、データストレージシステムに関する同期技術など、任意の適した同期技術を実装できることを認識し、理解されたい。
請求する事項の一態様によると、同期コンポーネントは、データストレージシステムに関連する既存の同期技法(synchronization techniques)および/または同期メカニズム(synchronization mechanism)を活用することができる。同期コンポーネントは、データストレージシステムの内側に格納されたさまざまなエンティティ、特に、データストレージシステム内のストアに対するデータ変更を追跡する、追跡コンポーネントを含むデータストレージシステムを利用することができる。追跡コンポーネントは、エンティティに対するデータ変更をキャプチャし、データのセットを維持する2つの異なるシステムの間でのデータの同期化を容易にすることができる。データストレージシステム内の既存の同期技法および/または同期メカニズムを活用することによって、同期コンポーネントは、何らの新しいメカニズムおよび/または技法なくして、セキュアなピアツーピアで同期化されたコミュニティ(peer to peer synchronized community)を提供することができる。
請求する事項の別の態様によると、同期コンポーネントは、同期化されたリレーションシップ(synchronized relationship)を作成すること、同期化されたコンテナ(synchronized container)を作成すること、ユーザを送信勧誘する(invite)こと、送信勧誘(invitation)を受け取ること、コミュニティに参加すること、ユーザを除去すること、メンバシップリストを維持すること、および/またはピアツーピアで同期化されたコミュニティの全体的管理、を容易にすることができるユーザ同期マネージャ(user sync manager)を含むことができる。さらに、同期コンポーネントは、手動同期(manual sync)、および/または自動同期(auto sync)のうちの少なくとも1つを含むことができる。手動同期は、ユーザがユーザに対して手動でデータを同期化することを可能にすることができる。さらに、自動同期は、ピアツーピアデータの同期化(peer to peer data synchronization)に選択されたデータの自動同期化を提供することができる。
請求する事項の別の態様によると、同期コンポーネントは、ローカルシステムとして動作するピアツーピア同期アプリケーション(peer to peer sync application)を含むことができ、アプリケーションに少なくとも1つのオペレーションを公開することができる。オペレーションは、指定されたコンテナで共有を作成することと、コンテナに対する権限を作成することと、コンテナに対する権限を追加することと、コンテナの所有者を検証することと、リストに基づいてグループのメンバシップをセットすることと、コンテナ上で作成された共有を削除することとのうちの少なくとも1つとすることができる。さらに、同期コンポーネントは、他のアプリケーションを伴うオペレーションシステムへの同期コンポーネントの間の(例えば、特に、ピアツーピア同期アプリケーション)統合を容易にする統合コンポーネントを含むことができる。さらに、同期コンポーネントは、同期化されたフォルダの作成および/または管理をプログラム的に実行できるAPIコンポーネントを含むことができる。請求する事項の他の態様においては、少なくとも2つの異なるデータストレージシステムに関連するデータを同期化することを容易にする方法が提供される。
次の説明および添付図面は、請求する事項のある例示的な態様を詳細に示す。しかし、これらの態様は、本革新の原理を使用できるさまざまな手法のうちのごく少数を示すものであり、請求する事項は、そのような態様のすべておよびその同等物を含むことが意図されている。請求する事項の他の利益および新規の特徴は、図面とともに検討されるときに、本革新の次の詳細な説明から明白になるであろう。
本明細書で使用されるときに、用語「コンポーネント」、「システム」、「インターフェース」、および同様の用語は、ハードウェア、ソフトウェア(例えば、実行中の)、および/またはファームウェアのいずれであれ、コンピュータ関連のエンティティを指すことが意図されている。例えば、コンポーネントは、プロセッサで実行中のプロセス、プロセッサ、オブジェクト、実行可能ファイル、プログラム、および/またはコンピュータとすることができる。例示として、サーバで動作中のアプリケーションとサーバとの両方を、コンポーネントとすることができる。1つまたは複数のコンポーネントは、1つのプロセス内に常駐することができ、1つのコンポーネントは、1つのコンピュータにローカライズし、および/または複数のコンピュータの間に分散することができる。
請求する事項は、図面を参照して説明するが、図面では、同様の参照番号は、複数の図面を通じて同様の要素を指すのに用いる。次の説明では、説明のために、本革新の完全な理解を提供するために多数の具体的な詳細を示す。しかし、請求する事項は、これらの具体的なの詳細なしで実践できることは明白であろう。他の場合には、周知の構造およびデバイスは、本革新の説明を容易にするためにブロック図の形式で示す。
ここで図面に移ると、図1は、少なくとも2つの異なるデータストレージシステムに関連するデータの同期化を容易にするシステム100を図示する。データストレージシステム102は、少なくともデータベース構造に基づく複合モデルとすることができ、ここで、アイテム、サブアイテム、プロパティ、およびリレーションシップは、データストレージシステム内の情報を複合型のインスタンスとして表現することを可能にするために定義される。データストレージシステム102は、豊富で永続化されたオブジェクト(persisted object)およびオブジェクト間のリンクを作成し管理する、一組の基本的なビルディングブロックを利用することができる。アイテムは、独立に保護し、シリアライズし、同期化し、コピーし、バックアップ/リストアなどを行うことができる、データストレージシステム102内の整合性の最小単位として定義することができる。アイテムは、ある型のインスタンスであり、データストレージシステム102内のすべてのアイテムを、アイテムの単一のグローバルエクステント内に格納することができる。データストレージシステム102は、少なくとも1つのアイテムおよび/またはコンテナ構造に基づくものとすることができる。さらに、データストレージシステムは、アイテムとしてファイルに埋め込まれる豊富なメタデータを公開するストレージプラットフォームとすることができる。データストレージシステム102は、上述した機能性をサポートするためにデータベースをベースとしたファイルストレージシステムを表すことができ、ここで、任意の適した特性および/または属性を実装できることを認識されたい。さらに、データストレージシステム102は、コンテナ階層構造を利用することができ、ここで、コンテナは、少なくとも1つの他のアイテムを含むことができるアイテムである。包含の概念は、関連するクラスの内部のコンテナIDプロパティを介して実装される。ストアはまた、そのストアを物理的な組織的で管理可能な単位とすることができるように、コンテナにすることもできる。さらに、ストアは、階層構造内のコンテナのツリーのルートコンテナを表す。
同期コンポーネント106は、セキュアなピアツーピアデータの同期化を作成して、複数のユーザがさまざまなティアおよび/またはレベルでそのような同期化されたデータ(synchronized data)にアクセスすることを可能にすることができる。同期コンポーネント106は、データストレージシステム102および異なるデータストレージシステム104に関連するデータの同期化を可能にすることができ、セキュアなピアツーピア同期コミュニティを確立することができる。同期コンポーネント106は、適切なアクセスを有するユーザが同期化コミュニティを修正(例えば、ユーザを追加および/またはコミュニティからユーザを除去)し、変更および/または操作を他のユーザに伝送できるように、同期化コミュニティのメンバシップリスト(例えば、ユーザアクセス権および/または特権のリスト)を含むメタデータを確保することができる。適切なアクセスを有するユーザがデータを修正し、変更を他のユーザに伝送できるように、データを確保することもできる。セキュリティメカニズムは、限定ではないが、共有レベルセキュリティ、アイテムレベルセキュリティ、オペレーティングシステム認証および許可などの基礎となる認証および/または許可メカニズムを呼び出すことができる。さらに、同期コンポーネント106は、データを同期化できるのと実質的に同様の形式で、メンバシップリストの同期化(membership list synchronization)を提供することができる。
言い換えると、同期コンポーネント106は、複雑な同期リレーションシップの管理を実装することができる。例えば、同期リレーションシップは、セットアップ、切り離し、およびセキュリティ管理を含むことができるが、これらに限定はされない。さらに、同期コンポーネント106は、完全に同期技術に基づいて複雑な同期リレーションシップの管理を実装することができる。任意の適した同期技術は、例えば、データストレージシステム102および/または異なるデータストレージシステム104に関連する同期技術などを実装することができることを認識し、理解されたい。
同期コンポーネント106は、1)コミュニティ内でのプレゼンス、および2)コミュニティのマネージャ(例えば、レプリカのメンバシップリストに対して変更を行うことを許可されたコミュニティのメンバ)に対する要求を同期化することによって、コミュニティを離れる意図のうちの少なくとも1つをアナウンスするのにレプリカ(例えば、コミュニティ内の少なくとも1つのユーザに属する同期化されたデータおよび/またはフォルダ)を利用することができる。言い換えると、マネージャは、レプリカのメンバシップリストに対して変更を行うことを許可されたコミュニティのメンバである。さらに、マネージャは、そのような要求を処理し、メンバシップメタデータに対する変更を行うことができ、その後、コミュニティ内の他のユーザに対し、メタデータを同期化することができる。そのようなメンバシップ変更を受け取るときに、同期コンポーネント106は、各レプリカが、レプリカのデータおよびメタデータに対する必要なアクセス変更を行うことを可能にする。同期コンポーネント106によって実装されるピアツーピア同期コミュニティの作成および管理は、複数のレプリカおよびユーザを許容することができ、ここで、各ユーザに割り当てられる役割は、任意の所与の瞬間に動的に変化し得ることを認識されたい。言い換えると、同期コンポーネント106および/またはピアツーピアで同期化されたコミュニティのトポロジには、単一の固定されたマスタがない。さらに、同期コンポーネント106は、データストレージシステム102の基礎になる認証および許可の技法および/またはメカニズムを活用することができる。
さらに、システム100は、さまざまなアダプタ、コネクタ、チャネル、通信パスなどを提供して同期コンポーネント106を事実上任意のオペレーティングシステムおよび/またはデータベースシステムに統合する、任意の適したおよび/または必要なインターフェースコンポーネント108を含むことができる。さらに、インターフェースコンポーネント108は、同期コンポーネント108、データストレージシステム102、および異なるデータストレージシステム104との相互作用を提供するさまざまなアダプタ、コネクタ、チャネル、通信パスなどを提供することができる。
図2は、データストレージシステム間のデータの整合性を保証するためにデータストレージシステム内の既存の同期化メカニズムを活用することを容易にする、システム200を図示する。データストレージシステム202は、少なくとも階層構造を利用することによってデータのインスタンスを複合型として表現する、データベースをベースとしたファイルストレージシステムとすることができる。アイテム、サブアイテム、プロパティ、およびリレーションシップは、データストレージシステム202内で定義して、複合型のインスタンスとしての情報の表現を可能にすることができる。データストレージシステム202は、データの形状を記述し、データ上のあるセマンティック整合性を暗示的に示すために制約を宣言し、データの間のセマンティックアソシエーションを定義することができるデータモデルとすることができる。データストレージシステム202は、豊富で永続化されたオブジェクトおよびオブジェクト間のリンクを作成し、管理する一組の基本的なビルディングブロックを利用することができる。
例えば、ビルディングブロックは、「Item」、「ItemExtension」、「Link」、および「ItemFragment」を含むことができる。「Item」は、独立に保護し、シリアライズし、同期化し、コピーし、バックアップ/リストアなどを行うことができる、データストレージシステム202内の整合性の最小単位と定義することができる。アイテムは、ある型のインスタンスであり、データストレージシステム202内のすべてのアイテムは、アイテムの単一のグローバルエクステント内に格納することができる。Itemは、限定ではないが、「ItemExtension」などのエクステンションエンティティを利用して、拡張することができる。エンティティエクステンションは、各々の属性(例えば、名前、拡張アイテムタイプ、プロパティ宣言、…)を用いてスキーマ内で定義することができる。「ItemExtension」は、拡張されるアイテムタイプに適用できる一組のプロパティをグループ化するために実装することができる。「Link」は、2つのアイテムインスタンス間の関連付けを定義するエンティティタイプであり、リンクは、方向付けされている(例えば、一方のアイテムが、リンクのソースであり、他方のリンクが、リンクのターゲットである)。「ItemFragment」は、アイテムタイプおよび/またはアイテムエクステンション内の大きいコレクションの宣言を可能にするエンティティタイプであり、このコレクションの要素は、エンティティとすることができる。データストレージシステム202は、複合型のインスタンスとしてのデータ表現を提供する任意の適したデータベースをベースとしたファイルストレージシステムを表すことができ、上の描写は、本発明を限定するものと考えてはならないことを認識し、理解されたい。データストレージシステム202は、図1に描写したデータストレージシステム102と実質的に同様のものとすることができる。
データストレージシステムは、データストレージシステム202の内部に格納されたさまざまなエンティティ、特に、データストレージシステム202内のストアに対するデータ変更の追跡を提供する追跡コンポーネント204を含むことができる。追跡コンポーネント204は、データのセットを維持する2つの異なるシステムの間でのデータの同期化を容易にするために、エンティティに対するデータ変更をキャプチャすることができる。追跡コンポーネント204は、ストアおよび/またはコンテナがデータ変更に関係する細分的なメンテナンスの提供を可能にする、インフラストラクチャを提供するスキーマを利用することができる。例えば、追跡コンポーネント204は、データ変更を追跡することができ、ここで、データ変更は、エンティティ(例えば、アイテム、リレーションシップ、エクステンションなど)レベルでの挿入、更新、および削除を含むことができる。追跡コンポーネント204は、エンティティレベルで、変更の追跡を、オプティミスティック並行性(optimistic concurrency)の通知および制御のうちの少なくとも1つを生成するために利用することができるように、データ変更を追跡することができる。オプティミスティック並行性は、別のプロセスが実質的に同様の時間に変更を行う可能性が低いことを前提とし、したがって、変更がデータストレージシステム(例えば、ストア)にコミットされる準備ができるまでロックを行わないことを認識されたい。そのような技法を利用することによって、ロック時間が減り、データベースのパフォーマンスがより良くなる。
追跡コンポーネント204は、データストレージシステム202内のエンティティレベルでのデータ変更を追跡できる非同期コンポーネント(図示せず)を含むことができる。データ変更は、少なくとも部分的に同期化への非参加に基づいてエンティティレベルでのみ追跡されることを認識されたい。エンティティレベルでのデータ変更の追跡は、「変更情報」と呼ぶことができる。非同期コンポーネントは、すべてのエンティティに対する基本的な変更情報をキャプチャすることができる。例えば、基本的な変更情報は、ローカル作成時刻およびローカル修正時刻とすることができるが、これらに限定はされない。
追跡コンポーネント204は、さらに、同期化に参加するエンティティに対する追跡を提供するデータストレージシステム(DSS)同期化コンポーネント(図示せず)を利用することができる。DSS同期化コンポーネントは、より細分的なレベルでエンティティに対するデータ変更を追跡し、マルチストア複製(例えば、キャッスル)シナリオで変更されたストアおよび/またはコンテナに関する情報をキャプチャし、維持するためにより特殊化された要件を有する。同期コンポーネント208は、同期リレーションシップ内のエンティティに関する追加の変更情報をキャプチャすることができる。例えば、DSS同期化コンポーネントは、同期化されるデータ量を最小にし、変更が衝突する状況の回数を減らすために、より細分的に(例えば、サブレベル、サブサブレベルなど)変更情報をキャプチャすることができる。別の例においては、DSS同期化コンポーネントは、どのストアおよび/またはコンテナがエンティティを作成しおよび/または更新したかにについての情報をキャプチャすることができる。請求する事項は、追跡コンポーネント204(上述)に基づかない同期化システムに適用できること、および少なくとも1つの変更のログ(例えば、ログベースの同期化システム)を利用するシステムを含む任意の適した同期化システムを実装できることを認識し、理解されたい。
同期コンポーネント208は、データストレージシステム202および異なるデータストレージシステム206に関するセキュアなピアツーピアで同期化されたコミュニティを提供することができ、ここで、アクセスのさまざまなレベルおよび/または段階を提供することができる。同期コンポーネント208は、データストレージシステム202内の既存の追跡コンポーネント204を活用して、データストレージシステム202、異なるストレージシステム206、および/または任意の他の適したマシン内に格納されたデータの同期化を可能にすることができる。同期コンポーネント208は、さまざまなデータストレージシステムおよび/またはマシンに関連する、基礎となるおよび/または既存の同期化メカニズムを利用することによって、データの同期(data synchronization)を提供し、そのようなデータストレージシステムおよび/またはマシンは、同期化しなければならない同期化されていないデータを含むことを認識されたい。同期コンポーネント208は、図1に図示された同期コンポーネント106に実質的に同様のものとすることができることを認識されたい。
図3は、複数のユーザがアクセスすることを可能にするためのデータストレージシステム内のデータの同期化を容易にするシステム300を図示する。データストレージシステム302は、データが複合型のインスタンスとして表現される、データベースをベースとするファイルストレージシステムとすることができる。データストレージシステム302は、同期化されていないデータ308(以下では、非同期データ(unsync data)308と呼ぶ)を含むことができ、そのようなデータは、非同期データ310を含む、異なるストレージシステム304と同期化されなければならない。同期コンポーネント306は、ピアツーピアで同期化されたコミュニティ312内でそのようなデータを同期化することができる。同期化されたコミュニティ(synchronized community)312は、レプリカ1からレプリカNまで含むことができ、Nは、1以上の整数であり、レプリカは、同期化されたコミュニティ312に関係付けられる少なくとも1つのユーザに関連する同期化されたフォルダおよび/またはデータである。同期コンポーネント306は、ピアツーピアで同期化されたコミュニティ312を作成することができ、ここで、複数のユーザ314(ユーザ1からユーザTまでを有し、Tは1以上の整数である)は、アクセシビリティに関連するレベルおよび/または段階に基づいてそのようなレプリカにアクセスすることができる。複数のユーザ314、およびアクセシビリティレベルおよび/またはアクセシビリティ段階は、少なくとも部分的にメンバシップリストに基づくものとすることができることを認識されたい。さらに、データストレージシステム302および同期コンポーネント306は、前の図で説明したコンポーネントおよびシステムと実質的に同様のものとすることができることを認識されたい。
同期コンポーネント306は、さらに、1)データストレージシステム302に関係付けられるプラットフォーム上でビルドされたアプリケーションの開発エクスペリエンスの検証、2)プロセスフィードバック、およびデータストレージシステム302へ戻す改善の作成、およびデータストレージシステム302の同期化、3)アプリケーション用のセルフホスト環境の作成、4)限定ではないが、トランスポートおよびセキュリティ(認証および暗号化を含む)、およびインターネットを介する同期化などの問題を処理する、エンドツーエンド同期化ソリューションの実装、および5)データストレージシステム302およびデータストレージシステム302の同期化の機能性と、オペレーティングシステムの残りとの間の統合に関するポイントの調査、のうちの少なくとも1つを提供することができる。
例えば、ユーザは、同期コンポーネント306を利用して同期化された複数のパーソナルコンピュータ(PC)を保持することができ、これらのPCは、データストレージシステム302と実質的に同様のデータベースをベースとしたファイルストレージシステムを実装する。さまざまなコンテナは、異なるコンピュータと同期化することができる。特に、共有される写真コンテナは、インターネットにまたがる異なるユーザと同期化することができる。さらに、共有される文書コンテナは、家庭および仕事場の複数のマシンと同期化することができる。別の例においては、写真アプリケーションを実装して、写真を共有する能力を提供することができる。写真アプリケーションに関連して同期コンポーネント306を利用することは、写真アプリケーションおよび写真共有に基づくデータベースをベースとしたファイルストレージシステムの同期化にまたがるシームレスな経験を保証することができる。さらに別の例においては、同期コンポーネント306は、会社シナリオおよび/または会社環境で実装することができる。会社環境および/または会社シナリオにおいては、アカウントの認証および偽装は、例えばLANマネージャまたはKerberosを介して使用可能である。これは、トランスポートに対する要件を導入するインターネット上の同期化とは異なる。
上記のシナリオおよび/または例に少なくとも部分的に基づいて、同期コンポーネント306は、1)同期化のセットアップ、2)同期化データの管理、3)同期スケジュールの管理、4)同期衝突(synchronization confliction)の検査および解決、5)同期衝突のレビュー、および6)写真の同期化、のうち少なくとも1つを提供することができる。
図4は、少なくとも2つの異なるデータストレージシステム間のデータの同期化を容易にするシステム400を図示する。同期コンポーネント406は、データストレージシステム402および異なるデータストレージシステム404に関するセキュアなピアツーピアで同期化されたコミュニティを提供することができ、ここで、アクセスのさまざまなレベルおよび/または段階を提供することができる。同期コンポーネント406は、データストレージシステム402および404内の既存の追跡コンポーネント(図示せず)を活用して、データの同期化を可能にすることができる。同期コンポーネント406は、さまざまなデータストレージシステムおよび/またはマシンに関連する基礎となるおよび/または既存の同期化メカニズムを利用することによって、データ同期化を提供し、そのようなデータストレージシステムおよび/またはマシンは、同期化しなければならない同期化されていないデータを含むことを認識されたい。データストレージシステム402および404ならびに同期コンポーネント406は、以前に説明したシステムおよび/またはコンポーネントと実質的に同様のものとすることができることを認識されたい。
同期コンポーネント406は、ユーザ同期マネージャコンポーネント408(本明細書ではユーザ同期マネージャ408と呼ぶ)を含むことができる。ユーザ同期マネージャ408は、同期化されたリレーションシップの作成、同期化されたコンテナの作成、ユーザの送信勧誘、送信勧誘の受け取り、コミュニティへの参加、ユーザの除去、メンバシップリストの維持、および/またはピアツーピアで同期化されたコミュニティの全体的管理を容易にすることができる。ユーザ同期マネージャ408は、デフォルトストアにおけるデータストレージシステム内のコンテナ上の同期化(図示せず)をイネーブルすることをユーザに提供することができる。同期リレーションシップは、このコンテナ(例えば、データストレージシステム402のコンテナなど)に作成することができる。同期リレーションシップは、特定のコンピュータ上の特定のユーザによって共有される、特定の同期化されたコンテナに作成することができる。同期化されたコンテナを作成したユーザは、そのコンテナが同期化されることを知っていることを認識されたい。
上で述べたように、ユーザ同期マネージャ408は、同期リレーションシップの作成を容易にすることができる。送信勧誘(例えば、ユーザをピアツーピア同期コミュニティに参加するように送信勧誘すること)は、コミュニティおよびスコープだけでなく、送信勧誘するマネージャ、コンピュータの名前、IPアドレスおよび/または任意の適した識別技法を含むことができる。役割、レベルおよび/または段階は、データストレージシステムの権限(例えば、下で述べる)にマッピングすることができる。これらの権限は、送信勧誘が送信される前にセットすることができる。送信勧誘はまた、送信勧誘が受け取られるときにレプリカを初期ラウンドトリップの必要なしに完全にセットアップできるように、メンバシップリストを含む初期データパケットを含むこともできる。送信勧誘はまた、コンテナに対する初期データを含むことができることを認識されたい。
送信勧誘は、拡張子、例えば.SyncInvitationを有するXML(extensible markup language)ファイル内で作成することができる。同期コンポーネント406は、これらのためのハンドラとして登録し、同期化ダイアログに対する送信勧誘の受け取りを表示する。これらの送信勧誘は、コミュニティ名、送信勧誘するユーザ、送信勧誘するコンピュータの名前、送信勧誘されるユーザ、送信勧誘されるユーザの役割などのプロパティを含めることができる。送信勧誘は、例えば、宛先行(例えば、電子メールアドレスを含む)、件名行(例えば、送信勧誘について知らせる件名を含む)、本文(例えば、送信勧誘、送信勧誘するユーザ、送信勧誘するコンピュータの名前、役割、コミュニティ名などに関する詳細な人間が読み取り可能な情報を含む)、添付ファイル(例えば、送信勧誘を受け取るためにダブルックリックできる添付ファイル)、などのテキストを含むことができる電子メールとすることができる。
ユーザ同期マネージャ408はまた、同期化されたコンテナ(図示せず)を作成することができる。オペレーティングシステムのファイル探索アプリケーションにおいては、ユーザは、データストレージシステム402におけるデフォルトストア内のコンテナをクリックし、同期化を可能にすることを対象とするオプションを選択することができる。そのようなオプションを選択することによって、ユーザ同期マネージャ408は、同期化されたコンテナの作成ウィザードを実装することができ、このウィザードは、1)同期化モード、および2)衝突ポリシー(すべて、下で述べる)のうちの少なくとも1つを特定することができる。
同期化されたコンテナを作成するために、次のステップをユーザ同期マネージャ408によって実行することができる。次のステップは、例として図示し、請求する事項は、これに限定されない。
1)この同期化されたコンテナが、コミュニティの最初のメンバである場合、
a.この同期化されたコンテナをルートとするDataコミュニティが作成される。このコミュニティは、すべての同期化されたコンテナにまたがってデータを同期化する。
b.同期化されたコンテナのReplicaの下のプライベートコンテナをルートとするSecurityコミュニティが作成される。このコミュニティは、Dataコミュニティに対するセキュリティ構成を同期化する。これは、各受け取られるユーザのリストが含まれる。各受け取られるユーザの権限およびアドレスも含まれる。
c.Requestsコミュニティが作成される(例えば、下で述べる)。
2)セキュリティグループは、各役割のローカルマシン上で作成される。グループは、Reader、Writer、およびManagerと呼ばれる(例えば、下で述べる)。各グループの名前は、別の同期化されたコンテナの対応するセキュリティグループから区別するために、一意の接尾語が追加される。
3)データコンテナの権限は、セキュリティコミュニティ内の構成に基づいてセットされる。特に、Generic Read権限が、Readerに与えられ、Windows(登録商標)の「Generic Write + Generic Read」権限が、Writerに与えられる。同期化は、データストレージシステムとデータストレージシステム同期によって直接に行われるので、これは、データをセキュアにし、適切なユーザだけが同期化されたコンテナへおよび同期化されたコンテナから同期することを可能にする。
セキュリティグループの権限はまた、セキュリティコミュニティ内の構成に基づいてセットすることができる。特に、それぞれ、オペレーティングシステム「Generic Write + Generic Read」権限は、Managerに与えることができ、generic read権限は、リーダーおよびライタにそれぞれ与えることができる。
次の表は、さまざまなフォルダおよび共有内において、作成できるセキュリティグループ、および各セキュリティグループに提供されるアクセスの例である。次の表は、例示であって、請求する事項を限定するものでないことを認識されたい。さらに、次の表におけるハッシュは、128バイトの決定論的(deterministic)ハッシュであるが、そのような実装は、これに限定されない。注:リストされた各ACEは、container_inheritおよびobject_inheritを有し、ピアツーピア同期アプリケーションは、PTPSと呼ぶ。
Figure 2009506423
Figure 2009506423
同期化されたコンテナは、次の構造を有することができる。データストレージシステムはDSSと呼ばれ、ピアツーピア同期アプリケーションがPTPSと呼ばれることに留意されたい。
Figure 2009506423
ユーザ同期マネージャ408は、ユーザの送信勧誘を可能にすることができ、コンテナが作成される時および/または任意のその後の時に、コンテナを同期化することができる。ユーザ同期マネージャ408は、連絡先アドレス(例えば、電子メールアドレス、インターネットプロトコル(IP)アドレスなど)を特定することができ、送信勧誘データを構成する送信勧誘を添付することができる。送信勧誘は、ユーザによって設定された任意の時間に送信することができるので、ユーザ同期コンポーネント408は、送信勧誘の自動送信を要求しないことを認識されたい。送信勧誘の受け取り側は、同期コンポーネント406を実装するユーザに少なくとも部分的に基づいて、別のユーザが受け取ることができる。
別の例においては、送信勧誘は、後に使用するためのファイルとして保存することができる。ユーザは、任意の他の適した手段(例えば、フロッピ、電子メール、テキストメッセージ、ショートメッセージサービス(SMS)など)によって他のユーザに送信勧誘を送信することができる。ユーザ同期マネージャ408は、任意の適した送信勧誘メカニズムおよび/または送信勧誘技法を利用することができる。さらに、ユーザ同期マネージャ408は、さまざまな送信勧誘レベルを提供することができ、ユーザは、役割、レベル、および/または段階すなわち、1)Manager(マネージャ)−読み取り、書き込み、修正、追加、送信勧誘、取消、2)Writer(書き込み機能)−読み取り、書き込み、修正、追加、3)Reader(読み込み機能)−読み取り、および4)Contributor(コントリビュータ)−読み取り、追加、のうちの1つにおいてピアツーピア同期コミュニティに参加するように送信勧誘することができる。
ユーザ同期コンポーネント408は、さらに、送信勧誘の受け取りを提供する。送信勧誘が受信され、開かれるときに、ユーザは、1)同期化すべきローカルデータストレージシステムコンテナを特定すること、および/または作成すること、2)このコンテナを自動的に同期化できるか、または手動で同期化できるかを特定すること、3)実装すべき衝突ポリシーを特定すること、のうち少なくとも1つを実装することができる。ユーザのディスプレイ名は、特定の環境にセキュリティシステムが利用する名前とすることができる。例えば、会社環境においては、ディスプレイ名は、ログオンしたユーザのユーザ名とすることができる。インターネットシナリオにおいては、セキュリティシステムは、異なる名前(例えば、電子メールエイリアス、IPアドレス、電子メールアドレスなど)を利用できることを認識されたい。
セキュリティフォルダ(上で述べた)は、セキュリティコミュニティの間で同期化することができる。このコミュニティのポリシーおよび権限は、双方向同期化がマネージャの間で発生でき、一方向同期化がマネージャから非マネージャに発生するものとすることができる。セキュリティフォルダは、コミュニティ内のユーザのリストおよびレプリカのリストを格納する、次の2つのサブフォルダを有することができる。
Figure 2009506423
Security folderはまた、SynchronizedFolderConfiguration Itemを含むことができ、このSynchronizedFolderConfiguration Itemは、同期化されたフォルダの名前および説明を包含する。
Users folderは、各ユーザのPeerのセットと一緒に、コミュニティ内の全ユーザのリストを包含することができる。次は、Users folderの一例であり、請求する事項は、これに限定されない。
Figure 2009506423
各Userは、次のデータを含むSerializedItemとして永続化することができる。
Figure 2009506423
各ユーザの情報は、複数のマネージャによって修正可能であるかどうかに少なくとも部分的に基づいて別々のアイテムとして格納することができ、LastWriterWins衝突解決ポリシーは、衝突を解決するのに用いることができる。ユーザItemの名前空間およびディスプレイ名には、UserのSIDがセットされる。
各Userは、コミュニティ内の全ピア(例えば、同期化レプリカ)のリストを含むことができる。各Peerは、次のデータを包含して永続化することができる。
Figure 2009506423
少なくとも1つのマシンのセキュリティの単位を、Userとすることができる。したがって、複数のマシンを同一の同期化されたコンテナに同期化するユーザは、すべてのマシンからのそのコンテナに対する同一の権限を有することができる。PeerをそのUserの下に格納する重要な理由は、別のアイテム(フォルダではなく)の下部に格納されたアイテムを、その親と同一のトランザクション内で常に同期化できることである。これは、エンティティ−マージ衝突解決ポリシーと一緒に、UserおよびPeerがお互いに矛盾する状態にならないことを保証する。
次は、リクエストフォルダ(request folder)の構造の例である。各非マネージャのピアは、次のように、ユーザおよびマネージャに対する要求およびユーザおよびマネージャからの要求を格納するのに用いられる、Requests containerの下部の単一のサブフォルダを有する。
Figure 2009506423
さらに、各Managerピアは、次のように、コミュニティ内の各ピアに1つのサブフォルダ(そのManager自体のサブフォルダを含む)を有する。
Figure 2009506423
ピアのサブフォルダコンテナの名前は、そのピアを表す一意の識別子を末尾に付加した「Requests」とすることができる。Requestsコンテナは、Requestsコミュニティの間で同期化することができる。このコミュニティに対する権限は、各レプリカを表すローカルコンテナと、各Managerレプリカ上の対応するコンテナとの間の双方向同期化を可能にする。言い換えると、ピアのユーザおよびマネージャは、ピアのコンテナに対するフルアクセスを有することができる。
このコミュニティのポリシーは、1)各Managerレプリカ上の対応するRequestsサブフォルダの同一フォルダからレプリカへのFromManagerフォルダの一方向同期化、および2)各Managerレプリカ上の対応するRequestsサブフォルダの同一フォルダへのレプリカからのToManagerフォルダの一方向同期化、のうち少なくとも1つを引き起こすことができる。ToManagerフォルダは、AdvertiseReplica要求およびRequestRemoval要求を格納する。ToReplicaフォルダは、CompleteRemoval要求を格納する。Requestsは、作成し、削除することができるが、修正することはできない。したがって、Requestsコミュニティでは、衝突はめったにない。Requestsは、複数のレプリカで同時に削除することができるが、これは、認められることであり、衝突ではない。
AdvertiseReplica要求は、コミュニティに参加しているレプリカのIDを包含することができる。コミュニティに参加しているレプリカのIDは、コミュニティ内のすべてのマネージャと同期をとることができる。AdvertiseReplica要求を読み取るマネージャは、レプリカを、セキュリティコミュニティ内に格納される権限リストに追加し(例えば、必要な場合に任意の重複を決定論的に除去する)、そのAdvertiseReplica要求を削除することができる。これによって、コミュニティへのレプリカの追加が完了する。AdvertiseReplica要求は、任意のレプリカ構成の変更をコミュニティに通信するのにも用いることができる。この例は、レプリカの同期化モードが変わるときである。
RequestRemoval要求は、除去されるレプリカのIDを包含することができる。そのような要求は、ユーザが開始した、レプリカの除去に応答して、レプリカによって作成することができる。Managerは、RequestRemoval要求がその同期化するレプリカの1つのRequestsコンテナ(例えば、それ自体のレプリカのRequestsコンテナ以外)に同期化されたことを検出するときに、RequestRemoval要求を削除し、CompleteRemoval要求を同一のRequestsコンテナに書き込む。
CompleteRemoval要求は、その中にデータを有しないが、レプリカが、その同期メタデータ(Synchronized containerの下のReplica)のみならずセキュリティグループに基づいて、その共有および役割を削除しなければならないことを指示することができる。そのような要求は、Managerによって作成することができる。これは、RequestRemoval要求に応答するもの、またはManagerが開始したユーザまたはレプリカの除去に応答するものとすることができる。レプリカは、そのRequestsコンテナ内にCompleteRemoval要求を同期化するときに、その共有および関連するセキュリティグループを削除する。
CompleteRemovalメッセージは、固定された満了期間(例えば、7日)の後に削除することができる。レプリカがメッセージを受け取る前にメッセージが削除される場合、レプリカはまだ、同期メタデータを有し、コミュニティとの同期を試みることができる。そのような同期は、コミュニティ内に同一ユーザによって所有される他のレプリカがない場合には、エラーになる。そうでない場合には、そのような同期は、成功することができる。このレプリカのメタデータは、手動ステップによって除去することができる。レプリカを所有するユーザが、任意の他のレプリカをコミュニティ内に所有しない場合は、ユーザは、ユーザリストからも除去される。これは、すべての同期化されたレプリカに対して適切なセキュリティ変更をトリガする。
保留中の除去要求を有するユーザおよびマネージャは、マシンのUI内に除去要求を発行する単語「Pending Removal(保留中の除去)」を有することができ、他のマシン上のUIは、除去要求を反映しない(例えば、最終的な除去が発生するときにその最終的な除去を反映するのみである)。使用されるコミュニティ名idsは、例えば、データコミュニティについてのData、セキュリティコミュニティについてのSecurity、ToManagerおよびFromManagerユーザのコミュニティについてのユーザ名、のうちの少なくとも1つとすることができる。すべての同期化のローカルおよびリモートのエンドポイントは、適切な同期化されたフォルダの位置とすることができる。このフォルダ内では、すべてのコミュニティ名が一意である。
別の例において、ユーザ同期コンポーネント408は、ユーザをピアツーピアで同期化されたコミュニティに最初に追加することによって、レプリカをコミュニティに追加することを可能にすることができる。例えば、ユーザは、ピアツーピアで同期化されたコミュニティに能動的に加わることができ、ここで、さまざまなファイルおよび/またはコンテナは、同期化され得る。次に、ユーザは、コンピュータからピアツーピア同期アプリケーション(下で述べる)を利用し、加えるべき共有を特定するコミュニティにそのコンピュータを追加することができる。
さらに、ユーザ同期マネージャ408は、ユーザ、レプリカ、および/またはマネージャの除去を可能にすることができる。マネージャによるユーザおよび/またはレプリカの除去は、ユーザまたはレプリカの所有者と異なるものとすることができることを認識されたい。マネージャは、マネージャ自体以外のユーザまたはレプリカを除去することができる(例えば、マネージャは、下で述べるように、マネージャ自体のレプリカを除去することもできる)。ユーザ同期マネージャ408はまた、その所有者のユーザまたはマネージャによるレプリカの除去をも提供することができる。ユーザは、一時に1つのレプリカをコミュニティから除去することができる。そのようなレプリカから、ユーザは、除去を呼び出すことができる。コミュニティ内の最後のマネージャレプリカは、マネージャレプリカ自体の除去を試みるが、そのコミュニティ内に他のレプリカがある場合には、そのオペレーションはエラーになりうる。これは、そのレプリカを除去する機会を有しないコミュニティ内のオーファンの作成を防ぐことができる。一例においては、最後のマネージャ(例えば、そのコミュニティ内の最後のユーザでもある)は、同期化されたフォルダ、データ、および/またはメタデータを削除することができる。
次は、ユーザまたはレプリカ所有者とは異なるマネージャによるユーザまたはレプリカの除去に関する。個々のレプリカを除去するために、CompleteRemoval要求をレプリカのそれぞれのRequestsコンテナに書き込むことができる(例えば、そのレプリカが使用可能になるときに必ず)。特定のユーザに対するすべてのレプリカを除去するために、CompleteRemoval要求は、レプリカのそれぞれのRequestsコンテナに書き込むことができる(例えば、そのレプリカが使用可能になるときに必ず)。特定のユーザの残りのレプリカがない場合には、セキュリティデータを変更し、同期イベントをトリガすることによって、そのユーザのすべての特権を即座に取り消すことができる。これは、それでも、CompleteRemoval要求を処理できるまで、レプリカがデータを受信し、送信することを可能にする。しかし、他のレプリカは、データを、除去されたレプリカに送信し、除去されたレプリカから受信することを試みることができない。
次は、レプリカの所有者によるレプリカの除去に関する。ユーザは、一時に1つのレプリカだけをコミュニティから除去することができる。レプリカから、ユーザは、除去を呼び出すことができる。これは、RequestRemoval要求をReplicaのRequestsコンテナに書き込ませる。コミュニティ内の最後のManagerレプリカはManagerレプリカ自体の除去を試みるが、そのコミュニティ内に他のレプリカがある場合は、そのオペレーションはエラーになる。これは、そのレプリカを除去する機会を有しないコミュニティ内のオーファンの作成を防ぐ。そうでない場合には、最後のマネージャ(例えば、そのコミュニティ内の最後のユーザでもある)は、すべての同期化されたフォルダメタデータを削除する。
Managersだけが、Securityコンテナに対する変更を行うことができ、Securityコンテナは正しく同期化される。セキュリティセッティングは、非Managerによってなされたいかなるセキュリティ変更も、他のユーザによって同期化されることを許可しない。一旦、変更が行われるか受け取られると、マネージャマシン上で稼動するアプリケーションは、その変更に気がついて、Dataコンテナおよびその内容上のセキュリティを適切に修正する。これらの権限は、アドミニストレータの特権を用いてのみ修正できるので、アプリケーションは、ピアツーピア同期アプリケーションサービス(下で述べる)を用いて、これを行う。オペレーティングシステムの共有アクセスは、データストレージシステムデータにアクセスするのに必要である。一例においては、アドミニストレータだけが、共有を作成することができる。さらに、別の例においては、アドミニストレータだけが、セキュリティグループを作成することができる。したがって、アプリケーションは、ピアツーピア同期アプリケーションサービス(例えば、ピアツーピア同期アプリケーション)(下で述べる)を用いて、これを行う。
同期コンポーネント406は、マネージャがセキュリティ変更を行うことができ、セキュリティ変更が非マネージャによって受け取られない場合があるので、すべてのレプリカとマネージャとの間に直接接続があるように、トポロジを実装することができる。さらに、各レプリカは、定期的にマネージャに連絡して、最新のセキュリティ変更を受け取ることができる。レプリカが、ある時間の間にマネージャに連絡できない(例えば、少なくとも部分的にハートビートタイムアウト期間に基づいて)場合、そのレプリカは、マネージャからセキュリティ構成を受け取ることができるまで、さらなるデータ変更を受け取ることができない状態に入ることができる。さらに、ユーザインターフェース(図示せず)は、どのユーザが成功して同期化されたかを示すことができる。レプリカに連絡できない場合には、オーバーレイを伴って表示されるそのアイコンが、この事実を示すことができる。ユーザインターフェースはまた、ユーザが、そのユーザが所有するすべての同期化されたコンテナを目に見えるようにすることを可能にすることができる。さらに、データストレージシステムのエクスプローラアプリケーション内で、オーバーレイアイコンは、コンテナを同期化されたコンテナとして識別することができる。
同期コンポーネント406は、データ、ファイル、および/またはコンテナの手動同期化を提供する手動同期コンポーネント410(本明細書では手動同期410と呼ぶ)を含むことができる。手動同期化は、明示的に呼び出されない限りデータが同期化される(読み取られるか書き込まれるかのいずれか)ことを望まないユーザのために、意図されている。メンバシップリストは、各レプリカの同期化モードを含む。他のレプリカは、手動で同期化するレプリカとの同期化を試みない。手動同期化は、ユーザによって開始される。これは、同期化イベント(下で述べる)をトリガする。
同期コンポーネント406は、ピアツーピア同期コミュニティに選ばれたファイルおよび/またはコンテナへの自動同期化を提供する自動同期コンポーネント412(本明細書では自動同期412と呼ぶ)を含むことができる。自動同期化は、DataコミュニティおよびSecurityコミュニティのそれぞれについてフルメッシュの同期を使用することができる。各レプリカは、同期をとる権限を与えられた他のレプリカと同期をとることができる。データコンテナに対するローカル変更は、データストレージシステムウォッチャ(図示せず)によって、ローカルマシン上のアプリケーションによって検出される。ウォッチャは、データストレージシステムの同期の変更によってトリガされるのを避けるようにプログラムすることができる。同期化イベントは、ウォッチャが発火する(fire)ときにトリガされる。
図5は、データストレージシステム内のデータの同期化を容易にし、さまざまなレベルのアクセシビリティを可能にするシステム500を図示する。同期コンポーネント506は、データストレージシステム502および異なるデータストレージシステム504に関するセキュアなピアツーピアで同期化されたコミュニティを提供することができ、ここで、アクセスのさまざまなレベルおよび/または段階を提供することができる。同期コンポーネント506は、データストレージシステム502および504内の既存の追跡コンポーネント(図示せず)を活用して、データの同期化を可能にすることができる。同期コンポーネント506は、さまざまなデータストレージシステムおよび/またはマシンに関連する基礎となるおよび/または既存の同期化メカニズムを利用することによってデータ同期化を提供し、ここで、そのようなデータストレージシステムおよび/またはマシンが、同期化しなければならない同期化されていないデータを含むことを認識されたい。データストレージシステム502および504、および同期コンポーネント506は、前に説明したシステムおよび/またはコンポーネントと実質的に同様のものとすることができることを認識されたい。
同期コンポーネント506は、さらに、そのシステム上で稼動するアプリケーションに少なくとも1つのオペレーションを公開するローカルシステムとして実行できるピアツーピア同期アプリケーション508を利用することができる。そのようなオペレーションは、同一マシン上のプロセスによってアクセスすることができる(例えば、他のコンピュータからの攻撃を防ぐために)。例えば、ピアツーピア同期アプリケーション508は、アドミニストレータによって、同期コンポーネント506の残りと一緒にインストールすることができる。ピアツーピア同期アプリケーション508は、各データストレージシステムおよび/またはコンピュータに関連するインスタンスを実行できることを認識されたい。したがって、ピアツーピア同期アプリケーション508は、データストレージシステム502に関連するインスタンスであり、ピアツーピア同期アプリケーション516は、データストレージシステム504に関連するインスタンスである。さらに、簡単にするために、ピアツーピア同期アプリケーション508を示すが、ピアツーピア同期アプリケーション516も、そのような態様を含むことができることを認識されたい。
ピアツーピア同期アプリケーション508は、ストリングCreateShare(コンテナ)を実装することができる。このオペレーションは、特定のコンテナ(データストレージシステムの内部とすることができる)で共有を作成し、適切な権限をも作成し、これらのグループの権限をコンテナおよび共有に追加する。このオペレーションは、作成された共有へのフルUNCパスを返す。このオペレーションは、ユーザがコンテナの所有者であることをチェックし、そうでない場合にはエラーになる。したがって、このAPIによって提供されるセキュリティは、コンテナの所有者だけがそれを共有することを許可されることである。
これは、所有者がアドミニストレータでもある場合を除いてコンテナの所有者が共有を作成することを許可しない、OSによって提供されるセキュリティを弱める。しかし、共有レベルセキュリティは、むしろ、フォルダレベルセキュリティを有しなかった以前のバージョンのオペレーティングシステムから引き継いだものであるため、これは許容できる。
ピアツーピア同期アプリケーション508は、SetPermissions(コンテナ)を実装することができる。このオペレーションは、呼び出すユーザがコンテナの所有者であることを検証し、そうでない場合にはエラーになる。このオペレーションは、Securityコンテナに格納されたパミッションリスト内の権限に基づいて、適切なグループメンバシップをセットする。セキュリティのために、呼出し側は、グループまたはACLを明示的には述べず、これらは、コンテナおよび権限リストから推論される。
ピアツーピア同期アプリケーション508は、RemoveShare(コンテナ)を実装することができる。このオペレーションは、呼び出すユーザがコンテナの所有者であることを検証し、そうでない場合にはエラーになる。このオペレーションは、コンテナ上で作成された共有を削除し、その共有に関連するセキュリティグループをも削除する。
ピアツーピア同期アプリケーション508は、システムトレイ内で実行することができるアプリケーションとして存続するように設計することができる。ピアツーピア同期アプリケーション508は、同期化をスケジューリングし、進行状況通知および衝突などの他のデータを提供する責任を負うアプリケーションとすることができる。さらに、ピアツーピア同期アプリケーション508はまた、送信勧誘要求のハンドラとしても登録される。コンテキストメニューは、1)Options(オプション)、および2)Exit(終了)というメニューアイテムを包含する。
ピアツーピア同期アプリケーション508は、コンテナ(例えば、ウォッチャ)内のデータ変更の通知に対するサブスクリプションを作成することができ、ウォッチャは、次のうちの少なくとも1つとすることができる。1)同期化されたフォルダおよびユーザの作成。単一のストア全体のウォッチャが、NonSynchronizedItemsの作成、修正、および削除を探す。ハンドラは、「SynchronizedFolderCreationMarker」という名前のアイテムを探す。これは、同期化されたフォルダが作成されたことを示す。2)各同期化されたフォルダは、データ変更について同期化されたフォルダをモニタするウォッチャを有する。3)各同期化されたフォルダは、アプリケーションメタデータ変更について同期化されたフォルダをモニタする、Dataレプリカのウォッチャを有する。ピアツーピア同期アプリケーションメタデータは、Dataレプリカの下に格納されることを想起されたい。例えば、同一コンピュータ上に2つの同期化されたフォルダがある場合は、ウォッチャの総数は、1+2+2=5ウォッチャである。
ピアツーピア同期アプリケーション508は、さらに、次のスレッドのうちの少なくとも1つを利用することができる。1)UIスレッド。これは、システムトレイアイコン、コンテキストメニューなどをサービスする。このスレッドの例外ハンドラはない。2)Activity Logスレッド。これは、アクティビティログUIを表示する。このスレッドの例外ハンドラはない。3)スレッドプール。これは、現在、単に1つのスレッドである。すべてのコールバックが、最終的にこのスレッド上で順番に実行される。このスレッドの例外ハンドラは、同期コントローラを再初期化する。これは、代表的に、ユーザが同期化されたフォルダを手動で削除するなどの状況で実行される。および4)Watcherスレッド。これらは、アプリケーションによって直接には作成されない。各ウォッチャは、1つのスレッドを作成することができる。
ピアツーピア同期アプリケーション508は、スケジューリングアルゴリズムを実装することができる。同期化されたフォルダが作成されるときに、作成Watcherが発火する。ハンドラは、1)スタートアップ遅延の後にDataシンクをスケジューリングする、2)RequestsおよびSecurityサブフォルダに対する変更をウォッチするためにDataレプリカに対するウォッチャを作成する、および3)スタートアップ遅延の後にSecurityフォルダの同期をスケジューリングする、のうち少なくとも1つを実装することができる。
SecurityまたはRequestsサブフォルダに対する変更が発生するときに、Dataレプリカに対するウォッチャが発火する。ハンドラは、1)Requestsサブフォルダ内の着信要求ごとに、a)その要求(上で説明した)を処理し、b)ローカル変更について、Requestsサブフォルダの同期をスケジューリングし、2)レプリカに対するセキュリティ権限を更新し、3)ローカル変更について、Securityサブフォルダの同期化をスケジューリングする、のうち少なくとも1つを実装することができる。Dataサブフォルダに対する変更が発生するときには、コンテナのウォッチャが発火する。変更がローカル変更である場合は、ハンドラは、データコミュニティの同期をスケジューリングする。データコミュニティが同期化された後、時間ベースの同期は、データコミュニティについてスケジューリングされる。セキュリティコミュニティが同期化された後、時間ベースの同期は、セキュリティコミュニティについてスケジューリングされる。Requestsサブフォルダが同期化された後、時間ベースの同期は、requestsサブフォルダについてスケジューリングされる。
同期コンポーネント506は、同期コンポーネント506(例えば、および具体的にはピアツーピア同期アプリケーション508)を、他のアプリケーションを伴うオペレーティングシステムへ統合することを容易にする、統合コンポーネントを含むことができる。このアプリケーションは、オペレーティングシステムのファイルエクスプローラなどの既存アプリケーションを通して、そのユーザインターフェースの多くを公開するように設計される。
オペレーティングシステムのファイルエクスプローラ内のローカルデータストレージシステムコンテナは、さまざまなメニューアイテムを有することができる。コンテナが同期化されたフォルダではない場合は、限定ではないが、以下などの2つのメニューアイテムを追加することができる。1)「Synchronize…(同期化)」。これは、同期化されたフォルダの作成などを可能にするSynchronizeダイアログを開く。2)「Join Synchronized Folder…(同期化されたサブフォルダに参加)」。これは、Join Synchronized Folderダイアログを開く。コンテナが同期化されたフォルダである場合には、「Synchronize...(同期化)」メニューアイテムは、「Allow Synchronization…(同期化を許可)」メニューアイテムの代わりにも表示される。コンテナに任意のログ済みの衝突がある場合は、「Resolve Conflicts…(衝突を解決)」メニューアイテムを表示することができ、これは、名前空間拡張によって追加されたConflicts仮想コンテナを表示する別々のエクスプローラウィンドウを開く。
一時的に図7に移ると、新しい同期化されたフォルダの作成を提供するスクリーンショット700が図示されている(例えば、同期化されたフォルダのダイアログ)。このダイアログは、フォルダの同期化を停止するためのみならず、新しい同期化されたフォルダを作成するため、または既存の同期化されたフォルダを管理するために用いられる。Synchronizationダイアログは、プロパティシートおよびGeneralタブならびに、データストレージシステムアドイン、オペレーティングシステムSharesアドイン、およびオペレーティングシステムWeb Folderアドインなどのアドインごとのタブを包含する。Invite(送信勧誘)ボタンが、シートの最下部に配置され、同期化されたフォルダが同期化のためにセットアップされるときにアクティブになる。
一例においては、このダイアログボックスは、同期化されたフォルダではないフォルダで呼び出すことができる。そのような例では、次のうちの少なくとも1つを実装することができる。1)「Allow users to synchronize with this folder(ユーザがこのフォルダと同期化することを許可する)」チェックボックスは、チェックマークを付けられ、2)「Do not allow users to synchronize with this folder(ユーザがこのフォルダと同期化することを許可しない」チェックボックスは、ディスエーブルされ、3)Synchronized Folder nameエディットボックスは、読み取り/書き込みであり、4)Description(説明)エディットボックスは、読み取り/書き込みであり、5)Settingsボタン、OKボタン、Cancelボタン、およびApplyボタンは、使用可能であり、6)Synchronization Type(同期化タイプ)グループおよびConflict Resolution(衝突解決)グループ内のコントロールは、ディスエーブルされ、7)Usersグループボックス(タブ内)のすべてのコントロールは、ディスエーブルすることができる。ユーザは、名前および説明を打ち込むことができ、フォルダにセッティングを指定することができる。さらに、同期化されたフォルダを作成するためには、Applyをクリックしなければならない。
別の例においては、既存の同期化されたフォルダの管理を実装することができる。例えば、ダイアログボックスが、既存の同期化されたフォルダであるフォルダに対して呼び出される場合に、次のうちの少なくとも1つを実行することができる。1)「Allow users to synchronize with this folder」チェックボックスは、チェックを付けられ、2)「Do not allow users to synchronize with this folder」チェックボックスは、ディスエーブルされ、3)Synchronized Folder nameエディットボックスは、読み取り専用である。これは、その名前がコミュニティ全体にわたる識別子であるからであり、4)Descriptionエディットボックスは、読み取り/書き込みであり、5)Settingsボタン、OKボタン、Cancelボタン、およびApplyボタンは、使用可能であり、6)Synchronization TypeグループおよびConflict Resolutionグループ内のコントロールは、イネーブルされ、7)Usersグループボックス(タブ内)のすべてのコントロールは、イネーブルすることができる。
同期化されたフォルダを削除するために、ユーザは、「Do not allow users to synchronize with this folder」チェックボックスにチェックを付けることができる。この点で、OKおよび「Allow users to synchronize with this folder」を除く他のすべてのコントロールは、ディスエーブルされる。 OKがクリックされたときには、確認ダイアログが表示され、同期化されたフォルダは除去される。データストレージシステムコンテナおよびそのデータのすべては、損なわれないままになる。同期レプリカおよび他の同期化されたフォルダメタデータだけを除去することができる。
統合コンポーネント510は、さらに、同期化されたフォルダへの参加に関するダイアログを提供することができる。一時的に図8に移ると、請求する事項に従って、同期化されたフォルダへの参加を提供するスクリーンショット800が図示されている。スクリーンショット800は、同期化されたフォルダ名の入力を可能にし、ここで、このダイアログがエラーなしで参加要求を処理する場合には、スクリーンショット810を表示することができる。スクリーンショット810は、特定のフォルダが同期化されることと、それに関連する任意の役割とを知らせる。一例においては、ユーザが「Manage(管理する)」を選択する場合に、現在開かれているダイアログボックスを閉じることができ、同期化されたダイアログを表示することができる。
さらに、統合コンポーネント510は、ウィザードアプリケーションを実装し、同期コンポーネント506を利用することを容易にし、セキュアなピアツーピアで同期化されたコミュニティを提供することができる。一時的に図9に移ると、ウィザードアプリケーションが、異なるユーザの送信勧誘、および特定のデータ、フォルダ、および/またはコンテナの同期化を可能にすることができるスクリーンショット900が表示されている。スクリーンショット910は、ユーザが、特定の同期化とともに実装すべき送信勧誘技法を選択することを可能にする。
ユーザが、電子メールによる送信勧誘を選択する場合、電子メール送信勧誘は、テキストおよび送信勧誘添付ファイルを伴う電子メールを用いて作成することができる。一時的に図10に移ると、スクリーンショット1000は、電子メール送信勧誘の送信確認を図示する。さらに、スクリーンショット1010は、統合コンポーネント510によって実装される同期化ユーザ送信勧誘ウィザードアプリケーションの完了を図示する。
一時的に図11を参照すると、スクリーンショット1100は、ユーザが送信勧誘をファイルとして保存することを選択するときに表示できるウィザードアプリケーションスクリーンを図示する。ファイル名、位置、および/または拡張子は、オペレーティングシステムに関連する任意の適したタイプから選択できることを認識されたい。図12を参照すると、スクリーンショット1200は、同期化されたユーザ送信勧誘ウィザードアプリケーション内での、ある位置への送信勧誘の保存のユーザ完了の検証を示す。図13は、ユーザが送信勧誘を受け取ること(例えば、送信勧誘ダイアログの受け取り)を可能にするスクリーンショット1300である。ユーザは、送信勧誘をクリックすることができ(例えば、電子メールから、添付ファイルからなど)、ここで、ユーザは、同期化されたフォルダと同期化されるべきフォルダを選択することができる。スクリーンショット1300に示されているように、ユーザは、既に同期化されている特定のフォルダと同期化するために、任意の適したフォルダを選択することができる。
図14に移ると、データストレージシステムアドインを実装するスクリーンショット1400が図示されており、ここで、データストレージシステムの同期化機能性は、アドインとして組み込むことができる。スクリーンショット1400は、ユーザ名、コンピュータ名、およびさまざまな権限レベル(例えば、段階、アクセスなど)を示す。図14に続くと、スクリーンショット1410は、要求されたユーザが見つからないときにユーザに表示される「could not find user(ユーザが見つかりません)」スクリーンを図示する。ユーザを追加するために、ユーザは、「Click here to add user(ユーザを追加する場合はここをクリックしてください)」というテキストをクリックすることができる。次に、ユーザは、送信勧誘されるユーザの名前を入力する。ユーザ名は、任意の適した形で入力することができる。例えば、この名前は、1)ドメイン\エイリアス(例えば、Redmond\billg)、2)エイリアス(例えば、billg、ここで、エイリアスが一意に解決されない場合にポップアップエラーを実装することができる)、および3)名前(例えば、Bill Grable)のうちの少なくとも1つを入力することができる。ユーザは、エスケープキーを打って、オペレーションを取り消すことができる。エンターキーが押されたときは、ユーザ名を解決することができる。スクリーンショット1410内では、見つかった人がクリックされる場合、「Could not find User」ダイアログを閉じることができ、ユーザピッカーが表示される。ユーザ名は、ユーザ名が解決されると編集することができない。ユーザを、完全に削除することができる(例えば、確認ダイアログが表示される)。ユーザを、「Reader」のデフォルト権限レベルで追加することができる。
Managerがユーザの行を右クリックするとき、選択肢を有するコンテキストメニューを表示することができる(例えば、リーダー、ライタ、マネージャ、除去など)。ユーザの現在の役割に、チェックマークを付けることができる。ユーザが、別のユーザまたはレプリカの行を右クリックするときは、メニューは表示されない。ユーザが、現在のレプリカの行をクリックするときには、Remove(除去)メニューアイテムだけを包含するメニューが表示される。所与のユーザに対応する複数のレプリカ(例えば、ユーザ/コンピュータの対)が存在し得ることを認識されたい。所与のユーザ/コンピュータの対に対応する複数のレプリカも存在し得る。これは、複数の参加に対応する。
送信勧誘は、あるエンドポイントからユーザまでとすることができる。STI(sync-through-intermediary)について、次の選択のうちの少なくとも1つを有することを意味する。1)すべてのデータストレージシステムエンドポイントのみならず、STIエンドポイントとも同期をとるための送信勧誘を作成する。これは、受信側がすべてのエンドポイントに接続される場合に妥当である。この場合に、STIエンドポイントは、受信側のデータが変化するときに必ず、即座に更新される。2)STIエンドポイントのみと同期をとるための送信勧誘を作成する。この場合に、他方の受信側は知られていない。この送信勧誘が受け取られるときは、同期化されたフォルダは、通常通りに作成される。AdvertiseReplicaメッセージも同様に作成される。接続ハンドシェークが進行する。
同期コンポーネント506は、さらに、同期コンポーネント506に関連する少なくとも1つのオペレーションを公開するAPI(application programming interface)コンポーネント512を含むことができる。APIコンポーネント512は、同期化されたフォルダの作成および/または管理をプログラム的に実行することができる。例えば、APIコンポーネント512は、namespace.OS.storage.synchronization.selfhostを実装することができる。APIコンポーネント512は、さまざまな擬似コードを利用することができ、付録Aは、請求する事項にプログラム可能性を提供するそのような擬似コードの例である。
図6は、インテリジェンスを使用し、少なくとも2つの異なるデータストレージシステムに関連するデータの同期化を容易にする、システム600を図示する。システム600は、データストレージシステム602、異なるデータストレージシステム604、および同期コンポーネント606を含むことができ、これらのすべてを、前の図で説明した各々のコンポーネントおよびシステムと実質的に同様のものとすることができる。システム600は、さらに、インテリジェントコンポーネント608を含む。インテリジェントコンポーネント608は、同期コンポーネント606によって利用することができ、少なくとも2つの異なるデータストレージシステムに関連するデータの同期化を容易にすることができる。
インテリジェントコンポーネント608は、イベントおよび/またはデータを介してキャプチャされるように、観察のセットからシステム、環境、および/またはユーザの状態について結論を提供するか、または推論できることを理解されたい。推論は、例えば、特定のコンテキストまたはアクションを識別するのに使用することができ、または、状態の確率分布を生成することができる。推論は、確率的すなわち、データおよびイベントの検討に基づいて、関心を持たれている状態の確率分布の計算とすることができる。推論はまた、イベントおよび/またはデータのセットからより高いレベルのイベントを構成するのに使用される技法を指すこともできる。そのような推論は、イベントが近い時間的近接で相関するか否かにかかわりなく、イベントおよびデータが1つまたは複数のイベントソースおよびデータソースのどちらに由来するかにかかわりなく、観察されたイベントおよび/または格納されたイベントデータのセットから、新しいイベントまたはアクションの構築をもたらす。さまざまな分類(明示的および/または暗黙的にトレーニングされる)方式および/またはシステム(例えば、サポートベクトルマシン、ニューラルネットワーク、エキスパートシステム、ベイジアンブリーフネットワーク、ファジイ論理、データフュージョンエンジン…)は、請求する事項に関連する自動アクションおよび/または推論されたアクションの実行に関連して使用することができる。
分類子(classifier)は、入力属性ベクトルx=(x1,x2,x3,x4,xn)を、その入力がクラスに属することの信頼性にマップする関数、すなわちf(x)=confidence(class)である。そのような分類は、確率的および/または統計ベースの分析(例えば、分析ユーティリティおよびコストへの因数処理)を使用することができ、ユーザが自動的に実行されることを望むアクションを予知、または推論することができる。サポートベクトルマシン(SVM)は、使用することができる分類子の例である。SVMは、可能な入力の空間内で、トリガする基準をトリガしないイベントから分離することを試みるハイパーサーフェイスを見つけることによって、動作する。直観的には、これは、分類を、トレーニングデータに近いが同一ではないデータのテストにとって正しいものにする。他の方向性のあるモデル分類手法、および方向性のないモデル分類手法は、例えば、ナイーブベイズ、ベイジアンネットワーク、決定木、ニューラルネットワーク、ファジイ論理モデル、および使用することができる異なる独立性のパターンを提供する確率分類モデルを含むことができる。本明細書で用いられる分類はまた、優先順位のモデルを開発するのに利用される統計的回帰を含むものである。
図17、18は、請求する事項による方法論を図示する。説明を簡単にするために、これらの方法は、一連の操作として示し、説明する。本革新は、図示された操作によっておよび/または操作の順序によって限定されず、例えば、操作は、さまざまな順序でおよび/または同時に、および本明細書で提示されず説明されない他の操作とともに起こりうることを、理解し、認識されたい。さらに、請求する事項による方法を実装するために、図示されたすべての操作が必要とは限らない場合がある。さらに、当業者は、方法論が、状態図またはイベントを介して相互に関係付けられた状態の系列として、代わりに表すことができることを理解し、認識するであろう。
図17は、少なくとも2つの異なるデータストレージシステムに関連するデータの同期化の方法論1700を図示する。参照番号1702では、同期リレーションシップで同期化されるべき、および/または同期リレーションシップに参加すべき、データストレージシステム内のデータを識別することができる。データストレージシステムは、少なくともデータベース構造に基づいて複雑なモデルとすることができ、ここで、アイテム、サブアイテム、プロパティ、およびリレーションシップは、データストレージシステム内の情報を複合型のインスタンスとして表現することを可能にするために定義される。データストレージシステムは、豊富な永続化されたオブジェクトおよびオブジェクト間のリンクを作成し、管理する基本的なビルディングブロックのセットを利用することができる。アイテムは、独立に保護し、シリアライズし、同期化し、コピーし、バックアップ/リストアなどを行うことができる、データストレージシステム内の整合性の最小単位として定義することができる。アイテムは、ある型のインスタンスであり、データストレージシステム内のすべてのアイテムを、アイテムの単一のグローバルエクステント内に格納することができる。データストレージシステムは、少なくとも1つのアイテムおよび/またはコンテナ構造に基づくものとすることができる。データストレージシステムは、データベースをベースとするファイルストレージシステムを表し、上で述べた機能性をサポートすることができ、任意の適した特性および/または属性を実装できることを認識されたい。データは、例えばデータの特定の部分の同期化を望むユーザによって識別できることを認識されたい。
参照番号1704では、少なくとも1つのユーザを、識別されたデータに関連する同期リレーションシップへ参加するように送信勧誘することができる。例えば、ユーザは、参加するようにラップトップ機を送信勧誘することによって同期リレーションシップをインスタンス化できる、データの部分を識別することができる。したがって、ユーザは、限定ではないが、電子メール、IPアドレス、ユーザ名、エイリアス、名前などの任意の適した技法を利用して送信勧誘することができる。参照番号1706では、アクセシビリティの段階および/またはレベルは、同期リレーションシップ内のさまざまなユーザに割り当てることができる。例えば、マネージャは、同期リレーションシップを作成することができ、ここで、さまざまな読み取り機能、書き込み機能、および/または追加機能をユーザに割り当てることができる。
図18は、データストレージシステム内の既存の同期化メカニズムを活用するのを容易にし、データストレージシステム間でデータ整合性を保証する方法論1800を図示する。参照番号1802では、セキュアなピアツーピアで同期化されたコミュニティ内で同期化されるべき、および/またはこれに参加すべき、データストレージシステム内のデータを識別することができる。参照番号1804では、既存の同期技法は、ピアツーピアコミュニティへのデータ同期化および/または同期リレーションシップを提供するために、データストレージシステムから活用することができる。例えば、データストレージシステム内の追跡は、エンティティに対するデータ変更をキャプチャして、データのセットを維持する2つの異なるシステム間のデータの同期化を容易にすることができる。
参照番号1806は、少なくとも1つのユーザが参加するピアツーピア同期コミュニティを作成することができる。同期化されたコミュニティは、レプリカ(例えば、コミュニティ内のユーザに属する同期化されたフォルダ)およびマネージャ(例えば、レプリカのメンバシップリストに対して変更を行う権限のある、コミュニティのメンバ)を含むことができる。一例においては、マネージャは、要求を処理し、メンバシップメタデータに対する変更を行い、それから、このメタデータをコミュニティ内の他者に同期化する。参照番号1808では、コミュニティ内の各ユーザは、そのような同期化されたピアツーピアコミュニティ内のデータに対するアクセスの特定のレベルおよび/または段階を伴って参加することができる。
請求する事項のさまざまな態様を実装する追加的な文脈を提供するために、図19〜20および次の議論は、本革新のさまざまな態様を実装できる適切なコンピューティング環境の短い全般的な説明を提供することを意図されたものである。請求する事項は、上記ではローカルコンピュータおよび/またはリモートコンピュータで動作するコンピュータプログラムのコンピュータ実行可能命令の全般的な文脈で説明したが、当業者は、本革新を他のプログラムモジュールと組み合わせて実施することもできることを認識するであろう。一般に、プログラムモジュールは、特定のタスクを実行し、および/または特定の抽象データ型を実装するルーチン、プログラム、コンポーネント、データ構造などを含む。
さらに、当業者は、本発明の方法を、シングルプロセッサコンピュータシステムまたはマルチプロセッサコンピュータシステム、ミニコンピュータ、メインフレームコンピュータ、ならびにパーソナルコンピュータ、ハンドヘルドコンピューティングデバイス、マイクロプロセッサベースのおよび/またはプログラマブルなコンシューマエレクトロニクス、および類似物(そのそれぞれが、1つまたは複数の関連するデバイスと動作可能に通信することができる)を含む、他のコンピュータシステム構成を用いて実践できることを認識するであろう。請求する事項の示された態様は、通信ネットワークを介してリンクされたリモート処理デバイスによってある種のタスクが実行される分散コンピューティング環境でも実践することができる。しかし、本革新の態様の、すべてではないにせよ一部を、独立型コンピュータで実践することができる。分散コンピューティング環境では、プログラムモジュールを、ローカルおよび/またはリモートのメモリストレージデバイスに置くことができる。
図19は、請求する事項が相互作用できるサンプルのコンピューティング環境1900の概略ブロック図である。システム1900は、1つまたは複数のクライアント1910を含む。クライアント1910は、ハードウェアおよび/またはソフトウェア(例えば、スレッド、プロセス、コンピューティングデバイス)とすることができる。システム1900は、1つまたは複数のサーバ1920をも含む。サーバ1920は、ハードウェアおよび/またはソフトウェア(例えば、スレッド、プロセス、コンピューティングデバイス)とすることができる。サーバ1920は、例えば本革新を使用することによる変換を実行するスレッドを収容することができる。
クライアント1910とサーバ1920との間の可能な通信の1つを、複数のコンピュータプロセスの間で伝送されるように適合されたデータパケットの形であるものとすることができる。システム1900は、クライアント1910とサーバ1920との間の通信を容易にするのに使用することができる通信フレームワーク1940を含む。クライアント1910は、クライアント1910にローカルな情報を格納するのに使用できる1つまたは複数のクライアントデータストア1950に動作可能に接続される。同様に、サーバ1920は、サーバ1920にローカルな情報を格納するのに使用することができる1つまたは複数のサーバデータストア1930に動作可能に接続される。
図20を参照すると、請求する事項のさまざまな態様を実施する例示的環境2000は、コンピュータ2012を含む。コンピュータ2012は、処理ユニット2014、システムメモリ2016、およびシステムバス2018を含む。システムバス2018は、システムメモリ2016を含むがこれに限定されないシステムコンポーネントを処理ユニット2014に結合する。処理ユニット2014は、さまざまな使用可能なプロセッサのいずれかとすることができる。デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャも、処理ユニット2014として使用することができる。
システムバス2018は、メモリバスもしくはメモリコントローラ、周辺バスもしくは外部バス、ならびに/または、ISA(Industrial Standard Architecture)、MCA(Micro-Chanel Arcitecture)、EISA(Extended ISA)、IDE(Intelligent Drive Electronics)、VLB(VESA Local Bus)、PCI(Peripheral Component Interconnect)、カードバス、USB(Universal Serial Bus)、AGP(Advanced Graphics Port)、PCMCIA(Personal Computer Memory Card International Association)バス、IEEE 1394(Firewire)、およびSCSI(Small Computer Systems Interface)を含むがこれに限定されないさまざまな使用可能なバスアーキテクチャのいずれかを使用するローカルバスを含む複数のタイプのバス構造のいずれかとすることができる。
システムメモリ2016は、揮発性メモリ2020および不揮発性メモリ2022を含む。スタートアップ中などにコンピュータ2012内の要素の間で情報を転送する基本ルーチンを含むBIOS(basic input/output system)が、不揮発性メモリ2022に格納される。限定ではなく例として、不揮発性メモリ2022は、ROM、PROM、EPROM、EEPROM、またはフラッシュメモリを含むことができる。揮発性メモリ2020は、外部キャッシュメモリとして働くRAMを含む。限定ではなく例として、RAMは、SRAM、DRAM、SDRAM、DDR SDRAM、ESDRAM、SLDRAM、RDRAM、DRDRAM、およびRDRAMなどの多数の形で入手可能である。
コンピュータ2012は、リムーバブル/ノンリムーバブルの揮発性/不揮発性コンピュータ記憶媒体をも含む。図20に、例えば、ディスクストレージ2024を示す。ディスクストレージ2024は、磁気ディスクドライブ、フロッピディスクドライブ、テープドライブ、Jazドライブ、Zipドライブ、LS−100ドライブ、フラッシュメモリカード、またはメモリスティックなどのデバイスを含むが、これらに限定はされない。さらに、ディスクストレージ2024に、記憶媒体を、CD−ROM、CD−Rドライブ、CD−RWドライブ、またはDVD−ROMなどの光ディスクドライブを含むがこれに限定されない他の記憶媒体と別々にまたはこれらと組み合わせて含めることができる。システムバス2018へのディスクストレージデバイス2024の接続を容易にするために、インターフェース2026などのリムーバブルまたはノンリムーバブルのインターフェースが、通常は使用される。
図20に、ユーザと、適したオペレーティング環境2000で説明した基本的なコンピュータリソースとの間の媒介として働くソフトウェアが記載されていることを認識されたい。そのようなソフトウェアに、オペレーティングシステム2028が含まれる。オペレーティングシステム2028は、ディスクストレージ2024に格納することができるが、コンピュータシステム2012のリソースを制御し、割り当てるように働く。システムアプリケーション2030は、システムメモリ2016内またはディスクストレージ2024上のいずれかに格納されたプログラムモジュール2032およびプログラムデータ2034を介するオペレーティングシステム2028によるリソースの管理を利用する。請求する事項を、さまざまなオペレーティングシステムまたはオペレーティングシステムの組合せを用いて実施できることを認識されたい。
ユーザは、入力デバイス2036を介してコンピュータ2012にコマンドまたは情報を入力する。入力デバイス2036は、マウスなどのポインティングデバイス、トラックボール、スタイラス、タッチパッド、キーボード、マイクロホン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナ、TVチューナカード、ディジタルカメラ、ディジタルビデオカメラ、ウェブカメラ、および類似物を含むが、これらに限定はされない。これらおよび他の入力デバイスは、インターフェースポート2038を介し、システムバス2018を介して処理ユニット2014に接続される。インターフェースポート2038は、例えば、シリアルポート、パラレルポート、ゲームポート、およびUSBを含む。出力デバイス2040は、入力デバイス2036と同一タイプのポートのいくつかを使用する。したがって、例えば、USBポートを使用して、コンピュータ2012に入力を提供し、コンピュータ2012から出力デバイス2040に情報を出力することができる。出力アダプタ2042が、モニタ、スピーカ、およびプリンタなど、出力デバイス2040の中でも特殊なアダプタを必要とするいくつかの出力デバイス2040があることを示すために提供される。出力アダプタ2042には、限定ではなく例として、出力デバイス2040とシステムバス2018との間の接続の手段を提供する、ビデオカードおよびサウンドカードが含まれる。リモートコンピュータ2044など、他のデバイスおよび/またはデバイスのシステムが、入力機能と出力機能との両方を提供することに留意されたい。
コンピュータ2012は、リモートコンピュータ2044などの1つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク化された環境で動作することができる。リモートコンピュータ2044は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ワークステーション、マイクロプロセッサベースの機器、ピアデバイス、または他の一般的なネットワークノードおよび類似物とすることができ、通常は、コンピュータ2012に関して説明した要素の多数またはすべてを含む。図を簡単にするために、メモリストレージデバイス2046だけが、リモートコンピュータ2044と共に図示されている。リモートコンピュータ2044は、論理的にネットワークインターフェース2048を介してコンピュータ2012に接続され、次に、物理的に通信接続2050を介して接続される。ネットワークインターフェース2048は、LANおよびWANなどの有線のおよび/または無線の通信ネットワークを含む。LANテクノロジは、FDDI、CDDI、イーサネット(登録商標)、トークンリング、および類似物を含む。WANテクノロジは、ポイントツーポイントリンク、ISDNおよびその変形形態などの回路交換網、パケット交換網、およびDSLを含むが、これに限定はされない。
通信接続2050は、ネットワークインターフェース2048をバス2018に接続するのに使用されるハードウェア/ソフトウェアを指す。通信接続2050は、図を明瞭にするためにコンピュータ2012の内部に図示されているが、コンピュータ2012の外部とすることもできる。ネットワークインターフェース2048への接続に必要なハードウェア/ソフトウェアは、例示のみとして、通常の電話級モデム、ケーブルモデム、およびDSLモデムを含むモデム、ISDNアダプタ、ならびにイーサネット(登録商標)カードなどの、内蔵テクノロジおよび外付けテクノロジを含む。
上で説明したものは、本革新の例を含む。もちろん、請求する事項の説明においてコンポーネントまたは方法のすべての考えられる組合せを説明することは不可能であるが、当業者は、本革新の多数のさらなる組合せおよび置換が可能であることを認めるであろう。したがって、請求する事項は、添付の特許請求の範囲の趣旨および範囲に含まれるすべてのそのような代替形態、修正形態、および変形形態を含むことが意図されている。
具体的には、上で説明したコンポーネント、デバイス、回路、システム、および類似物によって実行されるさまざまな機能に関して、そのようなコンポーネントを説明するのに使用された用語(「手段」への言及を含む)は、そうではないと示されない限り、開示された構造と構造的に同等でないものであっても、請求する事項の本明細書で示された例示的態様における機能を実行する、説明されたコンポーネントの指定された機能を実行する任意のコンポーネント(例えば、機能的同等物)に対応することが意図されている。これに関して、本革新が、請求する事項のさまざまな方法の行為および/またはイベントを実行するコンピュータ実行可能命令を有するシステムならびにコンピュータ可読媒体を含むことをも認識されたい。
さらに、本革新の特定の特徴を複数の実施態様のうちの1つだけに関して開示した場合があるが、そのような特徴を、任意の所与のまたは特定の応用例について望まれ、有利である可能性がある他の実施態様の1つまたは複数の他の特徴と組み合わせることができる。さらに、用語「含む」、「含むこと」、およびその変形が詳細な説明または特許請求の範囲のいずれかで使用される範囲で、これらの用語は、用語「備える」に類似する形式で包含的であることを意図されている。
(付録A)
付録Aは、請求する事項に関連する擬似コードの例である。
Figure 2009506423
Figure 2009506423
Figure 2009506423
Figure 2009506423
Figure 2009506423
少なくとも2つの異なるデータストレージシステムに関連するデータの同期化を容易にする例示的システムを示すブロック図である。 データストレージシステム間のデータ整合性を保証するためにデータストレージシステム内の既存の同期メカニズムを活用することを容易にする例示的システムを示すブロック図である。 複数のユーザがアクセスすることを可能にするためのデータストレージシステム内のデータの同期化を容易にする例示的システムを示すブロック図である。 少なくとも2つの異なるデータストレージシステム間でのデータの同期を容易にする例示的システムを示すブロック図である。 さまざまなレベルのアクセシビリティを可能にするためにデータストレージシステム内のデータの同期化を容易にする例示的システムを示すブロック図である。 少なくとも2つの異なるデータストレージシステムに関連するデータの同期化を容易にする例示的システムを示すブロック図である。 請求する事項に関連するスクリーンショットを示す図である。 請求する事項に関連する2つのスクリーンショットを示す図である。 ウィザードアプリケーションの実装に関連する2つのスクリーンショットを示す図である。 ウィザードアプリケーションの実装に関連する2つのスクリーンショットを示す図である。 ウィザードアプリケーションの実装に関連するスクリーンショットを示す図である。 ウィザードアプリケーションの実装に関連するスクリーンショットを示す図である。 請求する事項に関連するスクリーンショットを示す図である。 請求する事項に関連する2つのスクリーンショットを示す図である。 請求する事項に関連するスクリーンショットを示す図である。 請求する事項に関連するスクリーンショットを示す図である。 少なくとも2つの異なるデータストレージシステムに関連するデータを同期化する例示的方法を示す図である。 データストレージシステム間でデータ整合性を保証するためにデータストレージシステム内の既存の同期メカニズムを活用することを容易にする例示的方法を示す図である。 請求する事項の新規の態様を利用できる例示的ネットワーキング環境を示す図である。 請求する事項に従って利用できる例示的オペレーティング環境を示す図である。

Claims (20)

  1. データストレージシステム内のデータの同期化を容易にするシステムであって、
    前記データストレージシステム内の同期技法を活用するインターフェースコンポーネントと、
    少なくとも1つのユーザが前記同期化されたデータに段階的にアクセスをすることを可能にするために、少なくとも部分的に前記同期技法に基づいてセキュアなピアツーピアデータの同期化を提供する同期コンポーネントと
    を備えることを特徴とするシステム。
  2. 前記同期技法は、前記データストレージシステム内のエンティティに対するデータ変更をキャプチャする追跡コンポーネントを利用し、データのセットを維持する2つの異なるシステム間のデータの同期化を容易にすることを特徴とする請求項1に記載のシステム。
  3. 前記段階的なアクセスは、少なくとも1つの役割および関連するアクセス権を含むことを特徴とする請求項1に記載のシステム。
  4. 前記役割および関連するアクセス権は、1)データを読み取り、データを書き込み、データを修正し、データを追加し、ユーザを送信勧誘し、権限を取り消すことができるマネージャと、2)データを読み取り、データを書き込み、データを修正し、データを追加することができる書き込み機能と、3)データを読み取ることができる読み込み機能と、4)データを読み取り、データを追加することができるコントリビュータとのうちの1つであることを特徴とする請求項3に記載のシステム。
  5. 前記セキュアなピアツーピアデータの同期化は、少なくとも1つのレプリカを有する同期化されたコミュニティであり、前記レプリカは、前記コミュニティ内のユーザに属する同期化されたフォルダであることを特徴とする請求項1に記載のシステム。
  6. ユーザがデータを手動で同期化することを可能にする手動同期コンポーネントをさらに備えることを特徴とする請求項1に記載のシステム。
  7. 前記ピアツーピアデータの同期化に選ばれたデータの自動の同期化を提供する自動同期化コンポーネントをさらに備えることを特徴とする請求項1に記載のシステム。
  8. 同期化されたリレーションシップと、同期化されたコンテナと、同期化に参加するようにユーザを送信勧誘することと、送信勧誘の受け取りと、コミュニティへの参加と、ユーザの除去と、メンバシップリストの維持のうちの少なくとも1つを提供するユーザ同期マネージャコンポーネントをさらに備えることを特徴とする請求項1に記載のシステム。
  9. 前記同期コンポーネントは、同期技術に基づく複合同期リレーションシップの管理を実装することを特徴とする請求項1に記載のシステム。
  10. 前記複雑な同期リレーションシップは、セットアップ、切り離し、およびセキュリティ管理のうち少なくとも1つであることを特徴とする請求項9に記載のシステム。
  11. 前記同期技術は、適したデータ同期技法、および前記データストレージシステムに関する同期技法のうちの少なくとも1つに関係することを特徴とする請求項9に記載のシステム。
  12. 少なくとも1つのオペレーションをアプリケーションに公開するようにローカルシステムとして稼動するピアツーピア同期アプリケーションをさらに備えることを特徴とする請求項1に記載のシステム。
  13. 前記オペレーションは、指定されたコンテナで共有を作成することと、コンテナに対する権限を作成することと、コンテナに権限を追加することと、コンテナの所有者を検証することと、リストに基づいてグループメンバシップをセットすることと、コンテナ上で作成された共有を削除することのうち少なくとも1つとすることができることを特徴とする請求項12に記載のシステム。
  14. 前記ピアツーピア同期アプリケーションは、同期化をスケジューリングし、進行状況の通知を提供するアプリケーションとして存続し、稼動することを特徴とする請求項12に記載のシステム。
  15. 前記データストレージシステムは、情報を複合型として表現するために、アイテム、サブアイテム、プロパティ、およびリレーションシップのうちの少なくとも1つを定義するデータベースをベースとしたシステムであることを特徴とする請求項1に記載のシステム。
  16. 前記データストレージシステムは、コンテナ構造と、型のインスタンスであるアイテムとのうちの少なくとも1つを含み、前記アイテムは、前記データストレージシステム内でアイテムの単一のグローバルエクステント内に格納することができることを特徴とする請求項15に記載のシステム。
  17. データストレージシステム内のデータの同期化を容易にするコンピュータで実装される方法であって、
    同期化しなければならないデータストレージシステム内のデータを識別することと、
    同期リレーションシップに参加するように少なくとも1つのユーザを送信勧誘することと、
    前記同期リレーションシップ内の前記少なくとも1つのユーザに少なくとも1つのアクセシビリティのレベルを割り当てることと
    を備えることを特徴とする方法。
  18. 前記データストレージシステム内の既存の同期技法を活用することと、
    ピアツーピア同期コミュニティ内で少なくとも1つのレプリカを作成することと
    をさらに備えることを特徴とする請求項17に記載の方法。
  19. 前記レプリカが、前記同期化コミュニティ内のプレゼンスと、要求を同期化することによって前記同期化コミュニティを離れる意図とのうち少なくとも1つをアナウンスすることをさらに備えることを特徴とする請求項18に記載の方法。
  20. データストレージシステム内のデータの同期化を容易にするコンピュータで実装されるシステムであって、
    前記データストレージシステム内の同期技法を活用する手段と、
    複数のユーザに前記同期化されたデータへの段階的なアクセスを可能にするために、前記同期技法に少なくとも部分的に基づいてセキュアなピアツーピアデータの同期化を提供する手段と
    を備えることを特徴とするシステム。
JP2008527921A 2005-08-24 2006-07-20 ピアツーピア同期化アプリケーションにおけるセキュリティ Active JP4955682B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/211,119 2005-08-24
US11/211,119 US7930346B2 (en) 2005-08-24 2005-08-24 Security in peer to peer synchronization applications
PCT/US2006/028390 WO2007024380A2 (en) 2005-08-24 2006-07-20 Security in peer to peer synchronization applications

Publications (3)

Publication Number Publication Date
JP2009506423A true JP2009506423A (ja) 2009-02-12
JP2009506423A5 JP2009506423A5 (ja) 2009-09-10
JP4955682B2 JP4955682B2 (ja) 2012-06-20

Family

ID=37772095

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008527921A Active JP4955682B2 (ja) 2005-08-24 2006-07-20 ピアツーピア同期化アプリケーションにおけるセキュリティ

Country Status (16)

Country Link
US (1) US7930346B2 (ja)
EP (1) EP1917608B1 (ja)
JP (1) JP4955682B2 (ja)
KR (1) KR101311145B1 (ja)
CN (1) CN101243443A (ja)
AU (1) AU2006284414B2 (ja)
BR (1) BRPI0615024A2 (ja)
CA (1) CA2616242A1 (ja)
EG (1) EG25571A (ja)
IL (1) IL188662A0 (ja)
MX (1) MX2008002502A (ja)
NO (1) NO340412B1 (ja)
NZ (1) NZ565968A (ja)
RU (1) RU2421799C2 (ja)
WO (1) WO2007024380A2 (ja)
ZA (1) ZA200800961B (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012516503A (ja) * 2009-01-30 2012-07-19 イーストマン コダック カンパニー 分散された資産とメタデータを管理するシステム
JP2012530292A (ja) * 2009-06-12 2012-11-29 マイクロソフト コーポレーション コンテンツメッシュ検索
KR20140025863A (ko) * 2012-08-23 2014-03-05 엘에스산전 주식회사 산업용 자동화를 위한 클라우드 컴퓨팅 기반의 데이터 공유 시스템 및 산업용 기기 관리 장치

Families Citing this family (116)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7689721B2 (en) * 1998-05-29 2010-03-30 Research In Motion Limited System and method for pushing information from a host system to a mobile data communication device
WO2006036763A2 (en) * 2004-09-22 2006-04-06 Cyberdefender Corporation System for distributing information using a secure peer-to-peer network
US8738750B2 (en) * 2005-12-21 2014-05-27 Imran Chaudhri System and method for efficient replication of and access to application specific environments and data
US8527660B2 (en) * 2006-12-22 2013-09-03 Palm, Inc. Data synchronization by communication of modifications
US7680067B2 (en) * 2007-03-09 2010-03-16 Palm, Inc. Peer-to-peer data synchronization architecture
US8402284B2 (en) * 2007-04-30 2013-03-19 Hewlett-Packard Development Company, L.P. Symbiotic storage devices
US20090006451A1 (en) * 2007-06-29 2009-01-01 Microsoft Corporation Web Page-Container Interactions
US8626771B2 (en) * 2007-06-29 2014-01-07 Microsoft Corporation Container reputation
US8838729B2 (en) * 2007-06-29 2014-09-16 Microsoft Corporation Gathering statistics based on container exchange
KR100897849B1 (ko) 2007-09-07 2009-05-15 한국전자통신연구원 비정상 프로세스 탐지 방법 및 장치
US8090685B2 (en) * 2007-09-14 2012-01-03 Microsoft Corporation Knowledge based synchronization of subsets of data with no move condition
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
US8185495B2 (en) * 2008-02-01 2012-05-22 Microsoft Corporation Representation of qualitative object changes in a knowledge based framework for a multi-master synchronization environment
US8086565B2 (en) * 2008-02-18 2011-12-27 Microsoft Corporation File system watcher in the presence of different file systems
CN101604234B (zh) * 2008-06-13 2011-06-01 英业达股份有限公司 存储装置的数据同步系统及其方法
US8762420B2 (en) * 2008-06-20 2014-06-24 Microsoft Corporation Aggregation of data stored in multiple data stores
US8090681B2 (en) * 2008-06-26 2012-01-03 Microsoft Corporation Resolving conflicts in content management systems
US8458128B2 (en) * 2008-08-26 2013-06-04 Microsoft Corporation Minimal extensions required for multi-master offline and collaboration for devices and web services
US7941410B2 (en) * 2008-09-30 2011-05-10 Microsoft Corporation Method and system of managing conflicts for a set of synchronized folders
US8412930B2 (en) 2008-10-09 2013-04-02 Microsoft Corporation Device authentication within deployable computing environment
US8380663B2 (en) * 2008-12-17 2013-02-19 Sybase, Inc. Data integrity in a database environment through background synchronization
US20100332593A1 (en) * 2009-06-29 2010-12-30 Igor Barash Systems and methods for operating an anti-malware network on a cloud computing platform
US20110029658A1 (en) * 2009-07-24 2011-02-03 Theodore Werth System and methods for providing a multi-device, multi-service platform via a client agent
US9311378B2 (en) * 2009-10-09 2016-04-12 International Business Machines Corporation Data synchronization between a data management system and an external system
US20110153391A1 (en) * 2009-12-21 2011-06-23 Michael Tenbrock Peer-to-peer privacy panel for audience measurement
US20130232198A1 (en) * 2009-12-21 2013-09-05 Arbitron Inc. System and Method for Peer-to-Peer Distribution of Media Exposure Data
GB201007191D0 (en) * 2010-04-29 2010-06-09 British Broadcasting Corp Content provision system
US8924304B2 (en) * 2010-06-04 2014-12-30 Apple Inc. Methods for using unique identifiers to identify systems in collaborative interaction in a mesh network
US20120134282A1 (en) * 2010-11-30 2012-05-31 Nokia Corporation Method and apparatus for selecting devices to form a community
US9002897B2 (en) 2010-12-28 2015-04-07 Microsoft Technology Licensing, Llc Aspected interfaces and methods for synchronized containers and other data structures
WO2012099617A1 (en) 2011-01-20 2012-07-26 Box.Net, Inc. Real time notification of activities that occur in a web-based collaboration environment
JP5837186B2 (ja) * 2011-06-03 2015-12-24 アップル インコーポレイテッド ネットワークベースのデジタルデータレポジトリーの管理
US9201895B2 (en) 2011-06-03 2015-12-01 Apple Inc. Management of downloads from a network-based digital data repository based on network performance
EP2729877A4 (en) 2011-07-08 2015-06-17 Box Inc DESKTOP APPLICATION FOR ACCESS AND INTERACTION WITH JOBS IN A CLOUD-BASED CONTENT MANAGEMENT SYSTEM AND SYNCHRONIZATION MECHANISMS THEREFOR
US9098474B2 (en) 2011-10-26 2015-08-04 Box, Inc. Preview pre-generation based on heuristics and algorithmic prediction/assessment of predicted user behavior for enhancement of user experience
WO2013062599A1 (en) 2011-10-26 2013-05-02 Box, Inc. Enhanced multimedia content preview rendering in a cloud content management system
US8942854B2 (en) * 2011-11-28 2015-01-27 Kohler Co. System and method for identifying electrical devices in a power management system
GB2500152A (en) 2011-11-29 2013-09-11 Box Inc Mobile platform file and folder selection functionalities for offline access and synchronization
US9904435B2 (en) 2012-01-06 2018-02-27 Box, Inc. System and method for actionable event generation for task delegation and management via a discussion forum in a web-based collaboration environment
US11232481B2 (en) 2012-01-30 2022-01-25 Box, Inc. Extended applications of multimedia content previews in the cloud-based content management system
US9965745B2 (en) 2012-02-24 2018-05-08 Box, Inc. System and method for promoting enterprise adoption of a web-based collaboration environment
US20130268480A1 (en) * 2012-04-05 2013-10-10 Box, Inc. Method and apparatus for selective subfolder synchronization in a cloud-based environment
US9575981B2 (en) 2012-04-11 2017-02-21 Box, Inc. Cloud service enabled to handle a set of files depicted to a user as a single file in a native operating system
US9396156B2 (en) 2012-04-26 2016-07-19 Connected Data, Inc. System and method for socially organized storage and shared access to storage appliances
US9218406B2 (en) * 2012-04-26 2015-12-22 Connected Data, Inc. System and method for managing user data in a plurality of storage appliances over a wide area network for collaboration, protection, publication, or sharing
US10601799B2 (en) 2012-04-26 2020-03-24 Connected Data, Inc. System and method for visualizing data sharing arrangements for an organization
US9413587B2 (en) 2012-05-02 2016-08-09 Box, Inc. System and method for a third-party application to access content within a cloud-based platform
GB2514947B (en) 2012-05-04 2015-06-17 Box Inc Repository redundancy implementation of a system which incrementally updates clients with events that occured via a cloud-enabled platform
US9691051B2 (en) 2012-05-21 2017-06-27 Box, Inc. Security enhancement through application access control
US8914900B2 (en) 2012-05-23 2014-12-16 Box, Inc. Methods, architectures and security mechanisms for a third-party application to access content in a cloud-based platform
US9116596B2 (en) 2012-06-10 2015-08-25 Apple Inc. Sharing images and comments across different devices
US10338940B2 (en) * 2012-06-27 2019-07-02 International Business Machines Corporation Adjusting adminstrative access based on workload migration
US9712510B2 (en) 2012-07-06 2017-07-18 Box, Inc. Systems and methods for securely submitting comments among users via external messaging applications in a cloud-based platform
GB2505072A (en) 2012-07-06 2014-02-19 Box Inc Identifying users and collaborators as search results in a cloud-based system
EP2879059A4 (en) * 2012-07-27 2016-08-10 Samsung Electronics Co Ltd END DEVICE AND SERVER FOR PERFORMING A DATA SYNCHRONIZATION
US9794256B2 (en) 2012-07-30 2017-10-17 Box, Inc. System and method for advanced control tools for administrators in a cloud-based service
US9558202B2 (en) 2012-08-27 2017-01-31 Box, Inc. Server side techniques for reducing database workload in implementing selective subfolder synchronization in a cloud-based environment
US9135462B2 (en) 2012-08-29 2015-09-15 Box, Inc. Upload and download streaming encryption to/from a cloud-based platform
US9195519B2 (en) 2012-09-06 2015-11-24 Box, Inc. Disabling the self-referential appearance of a mobile application in an intent via a background registration
US9117087B2 (en) 2012-09-06 2015-08-25 Box, Inc. System and method for creating a secure channel for inter-application communication based on intents
US9292833B2 (en) 2012-09-14 2016-03-22 Box, Inc. Batching notifications of activities that occur in a web-based collaboration environment
US10915492B2 (en) 2012-09-19 2021-02-09 Box, Inc. Cloud-based platform enabled with media content indexed for text-based searches and/or metadata extraction
US9959420B2 (en) 2012-10-02 2018-05-01 Box, Inc. System and method for enhanced security and management mechanisms for enterprise administrators in a cloud-based environment
US9495364B2 (en) 2012-10-04 2016-11-15 Box, Inc. Enhanced quick search features, low-barrier commenting/interactive features in a collaboration platform
US9665349B2 (en) 2012-10-05 2017-05-30 Box, Inc. System and method for generating embeddable widgets which enable access to a cloud-based collaboration platform
US10235383B2 (en) 2012-12-19 2019-03-19 Box, Inc. Method and apparatus for synchronization of items with read-only permissions in a cloud-based environment
US9396245B2 (en) 2013-01-02 2016-07-19 Box, Inc. Race condition handling in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
US9953036B2 (en) 2013-01-09 2018-04-24 Box, Inc. File system monitoring in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
US9507795B2 (en) 2013-01-11 2016-11-29 Box, Inc. Functionalities, features, and user interface of a synchronization client to a cloud-based environment
US10311121B2 (en) 2013-01-11 2019-06-04 Apple Inc. Validation and delivery of digital assets
US10599671B2 (en) 2013-01-17 2020-03-24 Box, Inc. Conflict resolution, retry condition management, and handling of problem files for the synchronization client to a cloud-based platform
US10740323B1 (en) 2013-03-15 2020-08-11 Nuodb, Inc. Global uniqueness checking in distributed databases
US11176111B2 (en) 2013-03-15 2021-11-16 Nuodb, Inc. Distributed database management system with dynamically split B-tree indexes
US9501363B1 (en) 2013-03-15 2016-11-22 Nuodb, Inc. Distributed database management system with node failure detection
WO2014168913A1 (en) 2013-04-08 2014-10-16 Nuodb, Inc. Database management system with database hibernation and bursting
US9411870B2 (en) * 2013-05-08 2016-08-09 iData Crunch System and method for location aware fine-grained multi-channel synchronization of mobile repositories along with aggregate analytic computation
US10725968B2 (en) 2013-05-10 2020-07-28 Box, Inc. Top down delete or unsynchronization on delete of and depiction of item synchronization with a synchronization client to a cloud-based platform
US10846074B2 (en) 2013-05-10 2020-11-24 Box, Inc. Identification and handling of items to be ignored for synchronization with a cloud-based platform by a synchronization client
GB2515192B (en) 2013-06-13 2016-12-14 Box Inc Systems and methods for synchronization event building and/or collapsing by a synchronization component of a cloud-based platform
US9805050B2 (en) 2013-06-21 2017-10-31 Box, Inc. Maintaining and updating file system shadows on a local device by a synchronization client of a cloud-based platform
US9535924B2 (en) 2013-07-30 2017-01-03 Box, Inc. Scalability improvement in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
US9535909B2 (en) 2013-09-13 2017-01-03 Box, Inc. Configurable event-based automation architecture for cloud-based collaboration platforms
US10509527B2 (en) 2013-09-13 2019-12-17 Box, Inc. Systems and methods for configuring event-based automation in cloud-based collaboration platforms
CN104699723B (zh) * 2013-12-10 2018-10-19 北京神州泰岳软件股份有限公司 数据交换适配器、异构系统之间数据同步系统和方法
US10614041B2 (en) * 2014-03-17 2020-04-07 Citrix Systems, Inc. Sync as a service for cloud-based applications
US10530854B2 (en) 2014-05-30 2020-01-07 Box, Inc. Synchronization of permissioned content in cloud-based environments
US9430669B2 (en) * 2014-07-23 2016-08-30 Dropbox, Inc. Collection folders in a content management system
US9894119B2 (en) 2014-08-29 2018-02-13 Box, Inc. Configurable metadata-based automation and content classification architecture for cloud-based collaboration platforms
US10038731B2 (en) 2014-08-29 2018-07-31 Box, Inc. Managing flow-based interactions with cloud-based shared content
US20170243403A1 (en) * 2014-11-11 2017-08-24 Bent Image Lab, Llc Real-time shared augmented reality experience
WO2016077506A1 (en) 2014-11-11 2016-05-19 Bent Image Lab, Llc Accurate positioning of augmented reality content
US10114615B1 (en) * 2014-12-16 2018-10-30 United Technologies Corporation Feature based control system for multi-user CAx
CN104834879A (zh) * 2015-03-11 2015-08-12 嘉兴市烟草公司平湖分公司 多系统同步采集扫描枪
IN2015CH01317A (ja) * 2015-03-18 2015-04-10 Wipro Ltd
US10884869B2 (en) 2015-04-16 2021-01-05 Nuodb, Inc. Backup and restore in a distributed database utilizing consistent database snapshots
US9692826B2 (en) 2015-04-17 2017-06-27 Dropbox, Inc. Collection folder for collecting file submissions via a customizable file request
US10885209B2 (en) 2015-04-17 2021-01-05 Dropbox, Inc. Collection folder for collecting file submissions in response to a public file request
US10395045B2 (en) 2015-04-17 2019-08-27 Dropbox, Inc. Collection folder for collecting file submissions and scanning for plagiarism
US10067969B2 (en) 2015-05-29 2018-09-04 Nuodb, Inc. Table partitioning within distributed database systems
US10180954B2 (en) 2015-05-29 2019-01-15 Nuodb, Inc. Disconnected operation within distributed database systems
US10642750B2 (en) 2015-08-03 2020-05-05 Arista Networks, Inc. System and method of a shared memory hash table with notifications and reduced memory utilization
US11068469B2 (en) * 2015-09-04 2021-07-20 Arista Networks, Inc. System and method of a dynamic shared memory hash table with notifications
WO2017066801A1 (en) 2015-10-16 2017-04-20 Bent Image Lab, Llc Augmented reality platform
US10713966B2 (en) 2015-12-31 2020-07-14 Dropbox, Inc. Assignments for classrooms
US10802695B2 (en) 2016-03-23 2020-10-13 Youar Inc. Augmented reality for the internet of things
CN109690550B (zh) * 2016-07-14 2023-09-05 数字资产(瑞士)股份有限公司 数字资产架构
CN111213138A (zh) 2017-08-15 2020-05-29 诺宝公司 分布式数据库中的索引拆分
CN107656970A (zh) * 2017-08-31 2018-02-02 郑州云海信息技术有限公司 一种数据同步方法、装置及服务器
US10872062B2 (en) * 2017-10-27 2020-12-22 Dropbox, Inc. Moderated collaborative editing in collaborative content items
US10866963B2 (en) * 2017-12-28 2020-12-15 Dropbox, Inc. File system authentication
US10956140B2 (en) 2019-04-05 2021-03-23 Sap Se Software installation through an overlay file system
US10809994B1 (en) * 2019-04-05 2020-10-20 Sap Se Declarative multi-artefact software installation
US11113249B2 (en) 2019-04-05 2021-09-07 Sap Se Multitenant application server using a union file system
US10942723B2 (en) 2019-04-05 2021-03-09 Sap Se Format for multi-artefact software packages
US11232078B2 (en) 2019-04-05 2022-01-25 Sap Se Multitenancy using an overlay file system
US11924350B2 (en) 2021-07-29 2024-03-05 Digital Asset (Switzerland) GmbH Cryptographically enforced partial blinding for distributed system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040083263A1 (en) * 2002-10-24 2004-04-29 Groove Networks, Inc. Method and apparatus for maintaining consistency of a shared space across multiple endpoints in a peer-to-peer collaborative computer system
WO2005024550A2 (en) * 2003-08-21 2005-03-17 Microsoft Corporation System and method for implementation of a digital image schema in a hardware/software interface
EP1517260A2 (en) * 2003-09-05 2005-03-23 Groove Networks, Inc. Method and apparatus for providing attributes of a collaboration system in an operating system for a folder-based file system
JP2005310158A (ja) * 2004-04-20 2005-11-04 Microsoft Corp 複数のコンピュータシステムを介する電子文書に対するリアルタイムに近い協同作業を可能にする方法、システムおよび装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6662212B1 (en) * 1999-08-31 2003-12-09 Qualcomm Incorporated Synchronization of a virtual workspace using E-mail extensions
US7917628B2 (en) * 1999-12-02 2011-03-29 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US8793374B2 (en) * 1999-12-02 2014-07-29 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US6754678B2 (en) * 1999-12-20 2004-06-22 California Institute Of Technology Securely and autonomously synchronizing data in a distributed computing environment
US6892210B1 (en) * 2000-12-29 2005-05-10 Worldsync, Inc. Database management and synchronization across a peer-to-peer network
FR2833446B1 (fr) * 2001-12-12 2004-04-09 Viaccess Sa Protocole de controle du mode d'acces a des donnees transmises en mode point a point ou point multi-point
US20030120699A1 (en) * 2001-12-24 2003-06-26 Storage Technology Corporation Variable synchronicity between duplicate transactions
US20060136441A1 (en) * 2002-04-02 2006-06-22 Tetsunosuke Fujisaki Method and apparatus for synchronous project collaboration
US6965674B2 (en) * 2002-05-21 2005-11-15 Wavelink Corporation System and method for providing WLAN security through synchronized update and rotation of WEP keys
US20040010510A1 (en) * 2002-07-10 2004-01-15 Timo Hotti Method and system for database synchronization
US20050037787A1 (en) * 2003-06-27 2005-02-17 Rosett-Wireless Corporation Wireless intelligent portable-server system (WIPSS)
EP1581894A4 (en) 2003-08-21 2006-04-26 Microsoft Corp SYSTEMS AND METHODS FOR PROVIDING SYNCHRONIZATION SERVICES FOR INFORMATION UNITS MAY BE MANAGED BY A HARDWARE / SOFTWARE INTERFACE SYSTEM
US20070081530A1 (en) * 2003-09-11 2007-04-12 Yuji Nomura Packet relay apparatus
US7464263B2 (en) * 2004-03-25 2008-12-09 International Business Machines Corporation Method, system and program product for associating event categorization and routing with security authorization roles
US20060218394A1 (en) * 2005-03-28 2006-09-28 Yang Dung C Organizational role-based controlled access management system
US7693958B2 (en) * 2005-06-20 2010-04-06 Microsoft Corporation Instant messaging with data sharing

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040083263A1 (en) * 2002-10-24 2004-04-29 Groove Networks, Inc. Method and apparatus for maintaining consistency of a shared space across multiple endpoints in a peer-to-peer collaborative computer system
WO2005024550A2 (en) * 2003-08-21 2005-03-17 Microsoft Corporation System and method for implementation of a digital image schema in a hardware/software interface
JP2007517268A (ja) * 2003-08-21 2007-06-28 マイクロソフト コーポレーション ハードウェア/ソフトウェア・インターフェース・システムにより管理可能な情報の単位を編成するデジタル・イメージ・スキーマの実装のためのシステムおよび方法
EP1517260A2 (en) * 2003-09-05 2005-03-23 Groove Networks, Inc. Method and apparatus for providing attributes of a collaboration system in an operating system for a folder-based file system
JP2005310158A (ja) * 2004-04-20 2005-11-04 Microsoft Corp 複数のコンピュータシステムを介する電子文書に対するリアルタイムに近い協同作業を可能にする方法、システムおよび装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012516503A (ja) * 2009-01-30 2012-07-19 イーストマン コダック カンパニー 分散された資産とメタデータを管理するシステム
JP2012530292A (ja) * 2009-06-12 2012-11-29 マイクロソフト コーポレーション コンテンツメッシュ検索
KR20140025863A (ko) * 2012-08-23 2014-03-05 엘에스산전 주식회사 산업용 자동화를 위한 클라우드 컴퓨팅 기반의 데이터 공유 시스템 및 산업용 기기 관리 장치
JP2014041612A (ja) * 2012-08-23 2014-03-06 Lsis Co Ltd クラウドコンピューティングベースのデータ共有システム及び方法
KR101638656B1 (ko) * 2012-08-23 2016-07-11 엘에스산전 주식회사 산업용 자동화를 위한 클라우드 컴퓨팅 기반의 데이터 공유 시스템 및 산업용 기기 관리 장치
US9477735B2 (en) 2012-08-23 2016-10-25 Lsis Co., Ltd. Cloud computing-based data sharing system and method

Also Published As

Publication number Publication date
EP1917608A2 (en) 2008-05-07
BRPI0615024A2 (pt) 2011-04-26
RU2008106904A (ru) 2009-08-27
WO2007024380A3 (en) 2007-11-29
MX2008002502A (es) 2008-04-07
AU2006284414B2 (en) 2011-02-24
AU2006284414A1 (en) 2007-03-01
JP4955682B2 (ja) 2012-06-20
CN101243443A (zh) 2008-08-13
CA2616242A1 (en) 2007-03-01
EP1917608A4 (en) 2010-05-26
RU2421799C2 (ru) 2011-06-20
EG25571A (en) 2012-02-29
US20070067349A1 (en) 2007-03-22
EP1917608B1 (en) 2016-06-22
KR20080047361A (ko) 2008-05-28
KR101311145B1 (ko) 2013-09-25
NZ565968A (en) 2010-05-28
NO20080232L (no) 2008-05-21
IL188662A0 (en) 2008-08-07
WO2007024380A2 (en) 2007-03-01
NO340412B1 (no) 2017-04-18
US7930346B2 (en) 2011-04-19
ZA200800961B (en) 2009-04-29

Similar Documents

Publication Publication Date Title
JP4955682B2 (ja) ピアツーピア同期化アプリケーションにおけるセキュリティ
US11630841B2 (en) Traversal rights
JP5624479B2 (ja) 同期サーバープロセス
US7752166B2 (en) System and methods for asynchronous synchronization
US10831776B2 (en) On-demand file synchronization
RU2379755C2 (ru) Система и способ для совместного использования объектов между компьютерами по сети
JP4583376B2 (ja) ハードウェア/ソフトウェアインタフェースシステムにより管理可能な情報のユニットに対する同期処理サービスを実現するシステムおよび方法
US9720920B2 (en) Employing user-context in connection with backup or restore of data
US20070129014A1 (en) Information synchronization
JP2007515695A (ja) ハードウェア/ソフトウェアインターフェースシステムにより管理可能な情報のユニットに対する関係および階層の同期サービスを実現するシステムおよび方法
JP7355964B2 (ja) 外部ロケーションの同期
JP4583375B2 (ja) 同期スキーマの実装のためのシステム
JP7355959B2 (ja) 外部ロケーションの同期
Martin et al. A Bibliographical Survey on Data Sharing Systems for Mobile Ad Hoc Networks
Farrington Mindshare: a collaborative peer-to-peer system for small groups

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090721

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090721

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120215

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120315

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4955682

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150323

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250