JP6266588B2 - ローカル・データーおよびリモート・データーの同期 - Google Patents

ローカル・データーおよびリモート・データーの同期 Download PDF

Info

Publication number
JP6266588B2
JP6266588B2 JP2015500447A JP2015500447A JP6266588B2 JP 6266588 B2 JP6266588 B2 JP 6266588B2 JP 2015500447 A JP2015500447 A JP 2015500447A JP 2015500447 A JP2015500447 A JP 2015500447A JP 6266588 B2 JP6266588 B2 JP 6266588B2
Authority
JP
Japan
Prior art keywords
properties
organization
services
cloud
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015500447A
Other languages
English (en)
Other versions
JP2015511749A (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 JP2015511749A publication Critical patent/JP2015511749A/ja
Application granted granted Critical
Publication of JP6266588B2 publication Critical patent/JP6266588B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • 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/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data

Description

本発明は、データーの同期に関する。
[0001] ある組織のためのアプリケーションおよび他の計算リソースは、その組織の所在地および/またはクラウドに配置されることがある。クラウドとは、インターネットでは比喩として使用されることが多い用語である。これは、計算、ソフトウェア、データー・アクセス、ストレージ、および他のリソースを、インターネットに接続されたエンティティによって提供することができ、ユーザーはこれらのリソースを配信する計算インフラストラクチャーについて位置や他の詳細を知らなくてもよい。組織のための一部のリソースがクラウドから提供され、一部がその組織の建造物に配置されたサーバーによって提供される環境では、問題が発生する。
[0002] 本明細書において特許請求する主題は、以上で説明したような環境においてのみあらゆる欠点を解決する実施形態にも、動作する実施形態にも限定されることはない。逆にこの背景は、本明細書において説明する実施形態を実施することができる技術の一例を例示するためにのみ提供されるのである。
[0003] 端的に言うと、本明細書において説明する主題の態様は、データーの同期に関する。態様では、組織プロパティ・ストアからのプロパティが、クラウド・プロパティ・ストアに対して、および/またはその逆方向において同期される。同期させるプロパティのリストは、組織が登録するクラウド・サービス、クラウド・サービスに対する変更に基づいて、または他の理由で変更することができる。更に、同期させるプロパティのリストは、同様に経時的に変化する可能性がある組織のある種のオブジェクト(object)に限定されてもよい。
[0004] この摘要は、詳細な説明において以下で更に説明する主題のいくつかの態様を端的に識別するために設けられる。この摘要は、特許請求する主題の主要な特徴や必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を限定するために使用することを意図するのでもない。
[0005] 「本明細書において説明する主題」という句は、コンテキストが明確に別段示すのでなければ、詳細な説明において説明する主題を指す。「態様」(aspects)という用語は、「少なくとも1つの態様」と理解すべきものとする。詳細な説明において説明する主題の態様を識別することは、特許請求される主題の主要な特徴や必須の特徴を識別することを意図するのではない。
[0006] 以上で説明した態様、および本明細書において説明する主題の他の態様を、一例としてそして限定ではなく、添付図面において例示する。添付図面では、同様の参照番号は同様のエレメントを示すこととする。図面において、
図1は、本明細書において説明する主題の態様を組み込むことができる汎用計算環境の一例を表すブロック図である。 図2は、本明細書において説明する主題の態様が動作することができる環境の一例を表すブロック図である。 図3は、本明細書において説明する主題の態様による同期マネージャーのコンポーネント例を示すブロック図である。 図4は、本明細書において説明する主題の態様にしたがって実行することができるアクション例を総合的に表す流れ図である。 図5は、本明細書において説明する主題の態様にしたがって実行することができるアクション例を総合的に表す流れ図である。
定義
[0011] 本明細書において使用する場合、「含む」という用語およびその変形は、「含むがそれに限定されるのではない」ことを意味する、制限のない用語と解釈するものとする。「または」という用語は、コンテキストが明らかに他のことを明言するのでないならば「および/または」と解釈するものとする。[基づく」という用語は、「少なくとも部分的に基づく」と解釈するものとする。「一実施形態」および「実施形態」は、「少なくとも1つの実施形態」と解釈するものとする。「他の実施形態」は、「少なくとも1つの他の実施形態」と解釈するものとする。
[0012] 本明細書において使用する場合、「a」、「an」、および「the」というような用語は、示される品目またはアクションの1つ以上を含むこととする。特に、特許請求の範囲において、1つの品目に言及する場合、一般に、少なくとも1つのそのような品目が存在することを意味し、1つのアクションに言及する場合、そのアクションの少なくとも1つのインスタンスが実行されることを意味する。
[0013] 本明細書では、「第1」、「第2」、「第3」等という用語が使用されることがある。追加のコンテキストがないのであれば、これらの用語の使用は、特許請求の範囲においては、順序を含意することを意図するのではなく、むしろ識別の目的で使用される。例えば、「第1バージョン」および「第2バージョン」という句は、必ずしも、第1バージョンが最初のバージョンであって第2バージョンよりも前に作成されたことを意味するのではなく、第1バージョンが第2バージョンの前に要求または処理されることも意味するのでもない。むしろ、これらの句は、異なるバージョンを識別するために使用される。
[0014] 見出しは便宜上のために過ぎない。所与の話題についての情報は、見出しがその話題を示す章の外部で見出されることもある。
[0015] 他の定義も、明示的および暗示的なものが、以下に含まれることがある。
動作環境例
[0016] 図1は、本明細書において説明する主題の態様を実現することができる、適した計算システム環境の一例100を示す。計算システム環境100は、適した計算環境の一例に過ぎず、本明細書において説明する主題の態様の使用範囲や機能性に関して、限定を示唆することは全く意図していない。また、この計算環境例100内に示されるコンポーネントのいずれの1つまたは組み合わせに関しても、計算環境100が何らかの依存性や要件を有するように解釈してはならない。
[0017] 本明細書において説明する主題の態様は、多数の他の汎用または特殊目的計算システム環境あるいは構成でも動作する。本明細書において説明する主題の態様との使用に適していると考えられる周知の計算システム、環境、構成の例には、パーソナル・コンピューター、サーバー・コンピューター、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサー・システム、マイクロコントローラー・ベース・システム、セット・トップ・ボックス、プログラマブル消費者用電子機器、ネットワークPC、ミニコンピューター、メインフレーム・コンピューター、パーソナル・ディジタル・アシスタント(PDA)、ゲーミング・デバイス、プリンター、セット・トップ、メディア・センター、または他のアプライアンスを含むアプライアンス、自動車埋め込みまたは取り付け計算デバイス、他の移動体デバイス、以上のシステムまたはデバイスの内いずれかを含む分散型計算環境等が含まれる。
[0018] 本明細書において説明する主題の態様は、コンピューターによって実行される、プログラム・モジュールのような、コンピューター実行可能命令という一般的なコンテキストで説明することができる。一般に、プログラム・モジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、データー構造等を含み、特定のタスクを実行するか、または特定の抽象データー型を実装する。また、本明細書において説明する主題の態様は、分散型計算環境においても実施することができ、この場合、タスクは、通信ネットワークを介してリンクされたリモート処理デバイスによって実行される。分散型計算環境では、プログラム・モジュールは、メモリー記憶デバイスを含むローカルおよびリモート双方のコンピューター記憶媒体に配置されてもよい。
[0019] 図1を参照すると、本明細書において説明する主題の態様を実現するためのシステム例は、コンピューター110の形態をなす汎用計算デバイスを含む。コンピューターは、命令を実行することができるいずれの電子デバイスも含むことができる。コンピューター110のコンポーネントには、処理ユニット120、システム・メモリー130、およびシステム・メモリーから処理ユニット120までを含む種々のシステム・コンポーネントを結合するシステム・バス121を含むことができる。システム・バス121は、メモリー・バスまたはメモリー・コントローラー、周辺バス、および種々のバス・アーキテクチャーの内いずれかを使用するローカル・バスを含む、様々なタイプのバス構造のいずれでもよい。一例として、そして限定ではなく、このようなアーキテクチャーは、業界標準アーキテクチャー(ISA)バス、マイクロ・チャネル・アーキテクチャー(MCA)、拡張ISA(EISA)バス、ビデオ電子規格連合(VESA)ローカル・バス、およびMezzanineバスとしても知られる周辺コンポーネント相互接続(PCI)バス、周辺コンポーネント相互接続拡張(PCI−X)バス、高度グラフィクス・ポート(AGP)、およびPCIエクスプレス(PCIe)を含む。
[0020] 処理ユニット120は、ハードウェア・セキュリティ・デバイス122に接続されてもよい。セキュリティ・デバイス122は、コンピューター110の種々の態様の安全を確保するために使用することができる暗号鍵を格納することができ、更に生成することができる場合もある。一実施形態では、セキュリティ・デバイス122は、信頼プラットフォーム・モジュール(TPM)チップ、TPMセキュリティ・デバイス等を含むとよい。
[0021] コンピューター110は、通例、種々のコンピューター読み取り可能媒体を含む。コンピューター読み取り可能媒体は、コンピューター110によってアクセスすることができる入手可能な媒体とすることができ、揮発性および不揮発性、ならびにリムーバブルおよび非リムーバブル媒体の双方を含む。一例として、そして限定ではなく、コンピューター読み取り可能媒体は、コンピューター記憶媒体および通信媒体を含むことができる。
[0022] コンピューター記憶媒体は、揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体を含み、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、または他のデーターというような情報の格納のためのいずれかの方法または技術で実現される。コンピューター記憶媒体は、RAM、ROM、EEPROM、ソリッド・ステート・ストレージ、フラッシュ・メモリーまたは他のメモリー技術、CD−ROM、ディジタル・バーサタイル・ディスク(DVD)または他の光ディスク・ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージまたは他の磁気記憶デバイス、または所望の情報を格納するために使用することができそしてコンピューター110によってアクセスすることができる他のあらゆる媒体を含むが、これらに限定されるのではない。
[0023] 通信媒体は、通例、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、または他のデーターを、搬送波または他の伝達メカニズムというような変調データー信号に具体化し、あらゆる情報配信媒体を含む。「変調データー信号」という用語は、その信号内に情報をエンコードするようなやり方で、その特性の1つ以上が設定または変更された信号を意味する。一例として、そして限定ではなく、通信媒体は、有線ネットワークまたは直接有線接続というような有線媒体と、音響、RF、赤外線、および他のワイヤレス媒体というようなワイヤレス媒体とを含む。以上のいずれの組み合わせも、コンピューター読み取り可能媒体の範囲に含まれてしかるべきである。
[0024] システム・メモリー130は、リード・オンリー・メモリー(ROM)131およびランダム・アクセス・メモリー(RAM)132のような、揮発性および/または不揮発性メモリーの形態としたコンピューター記憶媒体を含む。基本入力/出力システム(BIOS)133は、起動中におけるように、コンピューター110内部にあるエレメント間で情報を転送するのに役立つ基本的なルーチンを含み、通例ROM131に格納される。RAM132は、通例、処理ユニット120によって直ちにアクセス可能なデーターおよび/またはプログラム・モジュール、および/または現在処理ユニット120によって処理されているデーターおよび/またはプログラム・モジュールを含む。一例として、そして限定ではなく、図1は、オペレーティング・システム134、アプリケーション・プログラム135、他のプログラム・モジュール136、およびプログラム・データー137を示す。
[0025] また、コンピューター110は、他のリムーバブル/非リムーバブル、揮発性/不揮発性コンピューター記憶媒体も含むことができる。一例としてに過ぎないが、図1は、非リムーバブル、不揮発性磁気媒体に対して読み取りまたは書き込みを行うハード・ディスク・ドライブ141、リムーバブル、不揮発性磁気ディスク152に対して読み取りまたは書き込みを行う磁気ディスク・ドライブ151、およびCD−ROMまたは他の光媒体のようなリムーバブル、不揮発性光ディスク156に対して読み取りまたは書き込みを行う光ディスク・ドライブ155を示す。この動作環境例において使用することができる他のリムーバブル/非リムーバブル、揮発性/不揮発性コンピューター記憶媒体には、磁気テープ・カセット、フラッシュ・メモリー・カード、他のソリッド・ステート記憶デバイス、ディジタル・バーサタイル・ディスク、他の光ディスク、ディジタル・ビデオ・テープ、ソリッド・ステートRAM、ソリッド・ステートROM等が含まれるが、これらに限定されるのではない。ハード・ディスク・ドライブ141は、通例、インターフェース140を介してシステム・バス121に接続され、磁気ディスク・ドライブ151および光ディスク・ドライブ155は、通例、インターフェース150のようなリムーバブル不揮発性メモリー用インターフェースによってシステム・バス121に接続される。
[0026] 以上で論じ図1に示すこれらのドライブおよびそれに関連するコンピューター記憶媒体は、コンピューター110のためのコンピューター読み取り可能命令、データー構造、プログラム・モジュール、および他のデーターの格納を行う。図1では、例えば、ハード・ディスク・ドライブ141は、オペレーティング・システム144、アプリケーション・プログラム145、他のプログラム・モジュール146、およびプログラム・データー147を格納することが示される。尚、これらのコンポーネントは、オペレーティング・システム134、アプリケーション・プログラム135、他のプログラム・モジュール136、およびプログラム・データー137と同一であること、または異なることも可能であることを注記しておく。オペレーティング・システム144、アプリケーション・プログラム145、他のプログラム・モジュール146、およびプログラム・データー147は、ここでは、少なくともこれらが異なるコピーであることを示すために、異なる番号が与えられる。
[0027] ユーザーは、キーボード162、および一般にマウス、トラックボール、またはタッチ・パッドと呼ばれるポインティング・デバイス161というような入力デバイスによって、コマンドおよび情報をコンピューター110に入力することができる。他の入力デバイス(図示せず)には、マイクロフォン(例えば、音声および他のオーディオを入力するため)、ジョイスティック、ゲーム・パッド、衛星ディッシュ、スキャナー、タッチ感応スクリーン、書き込みタブレット、カメラ(例えば、ジェスチャーまたは他の視覚入力を入力するための)等を含むことができる。これらおよび他の入力デバイスは、多くの場合、ユーザー入力インターフェース160を介して処理ユニット120に接続される。ユーザー入力インターフェース160は、システム・バスに結合されるが、パラレル・ポート、ゲーム・ポート、またはユニバーサル・シリアル・バス(USB)のような他のインターフェースおよびバス構造によって接続されてもよい。
[0028] また、モニター191または他のタイプのディスプレイ・デバイスも、ビデオ・インターフェース190のようなインターフェースを介して、システム・バス121に接続される。モニターに加えて、コンピューターは、スピーカー197およびプリンター196のような他の周辺出力デバイスも含むことができ、これらは出力周辺インターフェース195を介して接続されればよい。
[0029] コンピューター110は、リモート・コンピューター180のような1つ以上のリモート・コンピューターへの論理接続を使用して、ネットワーク接続環境 (networked environment)において動作することもできる。リモート・コンピューター180は、パーソナル・コンピューター、サーバー、ルーター、ネットワークPC、ピア・デバイス、または他の一般的なネットワーク・ノードであればよいが、図1ではメモリー記憶デバイス181のみを示した。図1に示す論理接続は、ローカル・エリア・ネットワーク(LAN)171およびワイド・エリア・ネットワーク(WAN)173を含むが、他のネットワークを含むこともできる。このようなネットワーキング環境 (networking environment) は、事務所、企業規模のコンピューター・ネットワーク、イントラネット、およびインターネットでは極普通である。
[0030] LANネットワーキング環境において使用される場合、コンピューター110は、ネットワーク・インターフェースまたはアダプター170を介してLAN171に接続することができる。WANネットワーキング環境において使用される場合、コンピューター110は、通例、インターネットのようなWAN173を介して通信を確立するモデム172または他の手段を含む。モデム172は、内蔵型でも外付けでもよく、ユーザー入力インターフェース160または他のしかるべきメカニズムを介してシステム・バス121に接続することができる。ネットワーク接続環境では、コンピューター110に関して図示したプログラム、またはその一部が、リモート・メモリー記憶デバイスに格納されてもよい。一例として、そして限定ではなく、図1は、リモート・アプリケーション・プログラム185を、メモリー・デバイス181に存在するものとして示す。尚、図示したネットワーク接続は一例であり、コンピューター間に通信リンクを確立する他の手段を使用してもよいことは認められよう。
同期
[0031] 既に述べたように、ある組織のための計算リソースは、その組織の建造物および/またはクラウドに配置されることがある。混成モデルにおいて、組織がそれ自体の計算サービスの一部をローカルに設け、他の計算サービスをクラウドから得ることを選択する場合、適正に機能するためには、組織の計算リソース内部に存在するデーターのコピーをクラウドが有する場合、クラウドは更に効果的に動作する必要があると考えられる。
[0032] 図2は、本明細書において説明する主題の態様が動作することができる環境例を表すブロック図である。図2に示すエンティティは、一例であり、必要なエンティティまたは含まれる可能性があるエンティティ全てを含むことを意図するのではない。他の実施形態では、本明細書において説明する主題の態様の主旨または範囲から逸脱することなく、図2と関連付けて説明するエンティティおよび/または機能が、他のエンティティ(示されるものまたは示されないもの)に含まれても、サブ・エンティティ内に置かれてもよい。実施形態では、図2と関連付けて説明するエンティティおよび/または機能が、多数のデバイスに跨がって分散されてもよい場合もある。
[0033] システム205は、組織リソース210、クラウド・リソース215、同期マネージャー220、および他のエンティティ(図示せず)を含むことができる。本明細書において使用する場合、エンティティという用語は、1つ以上のデバイスの全部または一部、1つ以上のソフトウェア・モジュールの集合体またはその一部、1つ以上のソフトウェア・モジュールのあらゆる組み合わせまたはその一部、更には1つ以上のデバイスまたはその一部等を含むと解釈するものとする。
[0034] 組織リソース210は、組織が直接制御することができる計算リソースを含むことができる。これらのリソースは、例えば、パーソナル・コンピューター、サーバー・コンピューター、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサー・システム、マイクロコントローラー・ベース・システム、セット・トップ・ボックス、プログラマブル消費者用電子機器、ネットワークPC、ミニコンピューター、メインフレーム・コンピューター、セル・フォン、パーソナル・ディジタル・アシスタント(PDA)、ゲーミング・デバイス、プリンター、セット・トップ、メディア・センター、または他のアプライアンスを含むアプライアンス、自動車埋め込みまたは取り付け計算デバイス、他の移動体デバイス、以上のシステムまたはデバイスの内いずれかを含む分散型計算環境等を含むことができる。
[0035] クラウド・リソース215は、クラウドを通じて組織に利用可能な計算リソースを含むことができる。また、クラウド・リソース215は、1つ以上のパーソナル・コンピューター、サーバー・コンピューター、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサー・・システム、マイクロコントローラー・ベース・システム、セット・トップ・ボックス、プログラマブル消費者用電子機器、ネットワークPC、ミニコンピューター、メインフレーム・コンピューター、セル・フォン、パーソナル・ディジタル・アシスタント(PDA)、ゲーミング・デバイス、プリンター、セット・トップ、メディア・センター、または他のアプライアンスを含むアプライアンス、自動車埋め込みまたは取り付け計算デバイス、他の移動体デバイス、以上のシステムまたはデバイスの内いずれかを含む分散型計算環境等も含むことができる。
[0036] クラウド・リソース215は、1つ以上のサービスを提供することができる。サービスは、指定されたタスクを実行する1つ以上のプロセス、スレッド、コンポーネント、ライブラリなどを含む。一部のサービス例は、電子メール、文書管理、報告、データーベース、計算、カレンダー管理(calendaring)、日程管理(scheduling)、インスタント・メッセージングを含む。
[0037] プロパティ・ストア225およびプロパティ・ストア226は、データーへのアクセスを与えることができるあらゆるストレージを含むことができる。本明細書において使用する場合、アクセスとは、データーを読み取ること、データーを書き込むこと、データーを削除すること、データーを更新すること、以上の内2つ以上を含む組み合わせ等を含むことができる。ストア225および226は、ハード・ディスク・ストレージ、他の不揮発性ストレージ、RAMのような揮発性メモリー、他のストレージ、以上のいずれの組み合わせ等も含むことができ、多数のデバイスに跨がって分散されてもよい。ストア2225および226は、外部であっても、内部であっても、またはシステム205に対して内部および外部双方であるコンポーネントを含んでもよい。
[0038] データーという用語は、1つ以上のコンピューター記憶エレメントによって表すことができるあらゆるものを含むように、広く解釈されるものとする。論理的には、データーは揮発性または不揮発性メモリーにおいて一連の1または0として表すことができる。二進でない記憶媒体を有するコンピューターでは、データーは、その記憶媒体の能力にしたがって表されればよい。データーは、異なるタイプのデーター構造に編成することもでき、数値、文字等のような単純なデーター・タイプ、階層的、連結(linked)、または他の関連データー・タイプ、多数の他のデーター構造または単純なデーター・タイプを含むデーター構造等を含む。データー例の中には、情報、プログラム・コード、プログラム状態、プログラム・データー、他のデーター等が含まれる。一実施態様では、データーは構造化され、名称が付けられる。
[0039] プロパティは、オブジェクトに関連するまたはオブジェクトに含まれるデーター片である。本明細書において使用する場合、オブジェクトは1つ以上のデーター・エレメントを含むことができる。これらのデーター・エレメントがプロパティと呼ばれることもある。例えば、ユーザー・オブジェクトは、名称プロパティ、住所プロパティ、電話プロパティ、電子メール・アドレス・プロパティ、マネージャー・プロパティ等を有することができる。
[0040] オブジェクトは、オブジェクト・クラスによって定義することができる。オブジェクト・クラスは、例えば、当該オブジェクト・クラスのオブジェクト名称および1つ以上のプロパティ・タイプを示すことができる。オブジェクト・クラスのインスタンス化オブジェクトは、そのオブジェクト・クラスの1つ以上のプロパティ・クラスのプロパティを含むことができ、またはそのプロパティと関連付けられるのでもよい。オブジェクト・タイプの例には、ユーザー、グループ、連絡先(contacts)、機械等が含まれる。全部または殆ど全部のエンティティをオブジェクト・クラスによって定義できることが当業者には認められることから、これらのタイプは例として挙げられたに過ぎない。本明細書における教示に基づいて、当業者は、本明細書において説明する主題の態様の主旨や範囲から逸脱することなく、本明細書における教示を適用することができる多くのオブジェクト・クラスを認めることができよう。
[0041] プロパティ・ストア225は、組織のデーターを含むことができる。例えば、プロパティ・ストア225は、従業員データー、賃金台帳データー(payroll data)、出費データー、電子メール・データー、会計データー(accounting data)、組織階層データー、監視承認(supervisory sign off)データー、承認制限(sign off limits)、ライセンシング・データー、メタデーター、組織が維持することができるあらゆる他のデーター等を含むことができる。データーは、組織内部における種々の場所に格納されてもよい。プロパティ・ストア225は、データーを含み、データーを参照し、または組織がデーターを格納する場所からデーターを得ることができる。
[0042] プロパティ・ストア226は、1つ以上の組織からクラウド・リソース215に供給されたデーターを含むことができる。このデーターは、ある種のサービスを組織のエンティティに提供するために使用することができる。例えば、電子メール・データーによって、クラウドにおいてホストされる電子メール・サービスを使用する組織の構成員が、電子メールを作成し、送り、受信すること、そして組織の連絡先を参照することが可能になるであろう。他の例として、コスト・センター・データーによって、会計サービスが、組織の種々の出費についてコスト・センターに知らせる出費報告を提出することが可能になるであろう。
[0043] プロパティ・ストア225およびプロパティ・ストア226は、同じプロパティを異なる方法で表すこともできる。例えば、プロパティ・ストア225は、ファイル内にあるデーターによってプロパティを表すのでもよく、一方プロパティ・ストア226は同じプロパティをデーターベースの表で表すのでもよい。
[0044] 同期マネージャー220は、プロパティ・ストア225とプロパティ・ストア226との間においてデーターを同期させるエンティティである。一実施形態では、同期マネージャー220は、組織の一デバイスにホストされるのでもよい。他の実施形態では、同期マネージャー220は、クラウドの計算リソースにホストされてもよい。他の実施形態では、同期マネージャー220が、組織リソース210およびクラウド・リソース215をホストするシステム双方に対して外部にあるデバイスにホストされてもよい。他の実施形態では、同期マネージャー220が、組織のデバイスにおいて実行するコンポーネント、およびクラウドのデバイスにおいて実行するコンポーネントを含むように、同期マネージャー220が分散されてもよい。
[0045] 本明細書では、同期マネージャー220が、プロパティ・ストア225からプロパティ・ストア226にデーターを送ることによって、プロパティ・ストア225とプロパティ・ストア226との間においてデーターを同期させることがしばしば述べられるが、他の実施態様では、プロパティのマスターがプロパティ・ストア226において作成されプロパティ・ストア225に同期されるのでもよい。更に他の実施態様では、一部のプロパティのマスターがプロパティ・ストア225において作成されプロパティ・ストア226に同期されてもよく、一方他のプロパティのマスターはプロパティ・ストア226において作成されプロパティ・ストア225に同期されるのでもよい。
[0046] 周期的にまたは他の時点において、同期マネージャー220は、プロパティ・ストア225とプロパティ・ストア226との間においてデーターを同期することができる。同期させる必要があるデーターを判定するために、同期マネージャーはある種の条件をチェックすることができる。例えば、1時間毎に1回、同期マネージャー220は、次のことを確認するためにチェックを行うことができる。
[0047] 1.クラウド・リソースが必要とする1組のプロパティが変化したか否か。
[0048] 2.プロパティを必要とする1組のオブジェクトが変化したか否か。
[0049] 3.プロパティを表す実際のデーターが、プロパティ・ストア225において変化したか否か。
[0050] 以上で述べた条件を発見したことに応答して同期マネージャー220が行うことができるアクションは、次の通りである。
[0051] 1.クラウド・リソースが必要とする1組のプロパティが変化した場合。クラウドによって組織に提供される各サービスが、1つ以上のプロパティを変化させる必要がある場合がある。例えば、給与台帳サービスが、適正に組織の従業員に支払うために、名前、住所、政府識別子(government identifier)、給与額、およびその他のプロパティを必要とする場合がある。電子メール・サービスが、名前、電話番号、電子メール・アドレス、および他のプロパティを必要とする場合もある。組織がクラウドを通じて支払い台帳サービスおよび電子メール・サービスの双方を有する場合、1組の必要なプロパティは、各サービスが必要とするプロパティの論理OR演算子の適用によって決定することができる。以上の例では、論理OR演算子は、名前、住所、政府識別子、給与額、電話番号、電子メール・アドレス、および2つのサービスが必要とするあらゆる他のプロパティを含む。この同じ方法論を使用して、いずれの数のサービスに対しても、1組の必要なプロパティを決定することができる。
[0052] このように、組織がクラウドの他のサービスに登録済みであり、このサービスが、現在必要とされている1組のプロパティに未だ含まれていないプロパティを必要とする場合、このプロパティが、1組の必要なプロパティに追加される。
[0053] 同様に、組織がクラウドのサービスを登録解除した場合、この登録解除したサービスによって必要とされたあらゆるプロパティの内、組織が登録している他のあらゆるサービスによって必要とされないものは、1組の必要なプロパティから除外することができる。
[0054] クラウド・リソースが必要とする1組のプロパティが変化した場合、1組の必要なプロパティにプロパティが追加された可能性、および/または1組の必要なプロパティからプロパティが除外された可能性がある。除外されたプロパティについて、同期マネージャー220は、クラウド・リソース215に、1組から除外されたプロパティに対して以前に得られたデーターを削除するように命令することができる。
[0055] 追加されたプロパティについて、同期マネージャー220は対応するデーターをプロパティ・ストア225から得て、このデーターをプロパティ・ストア226に格納させることができる。
[0056] 一実施形態では、同期マネージャー220が、クラウド・リソース215内部のコンポーネントと通信し、クラウド・リソース215が必要とする1組のプロパティを得ることによって、クラウド・リソース215が必要とする1組のプロパティが変化したか否か判定することができる。次いで、同期マネージャー220は、この1組のプロパティを、以前の1組の必要なプロパティと比較し、追加されたプロパティがある場合、どのプロパティが追加されたのか判定し、削除されたプロパティがある場合、どのプロパティが削除されたのか判定することができる。
[0057] クラウド・リソース215は、データーベース、ファイル、またはサービス毎に必要になるプロパティを示す他のデーター構造にデーターを格納することができる。また、クラウド・リソース215は、各組織が登録してあるサービスを示すデーターも格納することができる。各組織に求めるプロパティを判定するために、クラウド・リソース215のあるコンポーネントが、各組織が登録してあるサービス(1つまたは複数)を示すデーターを、サービス毎に必要なプロパティを示すデーターに加入させることができる。
[0058] 2.プロパティを必要とする1組のオブジェクトが変化した場合。クラウド・リソース215は、プロパティ・ストア225から選択されたオブジェクトのみに対して、プロパティを必要とする場合もある。例えば、組織が、カレンダー・サービスを使用する一定のユーザーに対してライセンスを有するかもしれない。カレンダー・サービスは、名前、電話番号、事務所の場所、および他のプロパティを必要とするであろうが、カレンダー・サービスに登録したユーザーについてのみこれらを必要とする。組織の全てのユーザーのプロパティを同期させる代わりに、同期マネージャー220は、カレンダー・サービスに登録したユーザーについてだけ、プロパティを同期させればよい。
[0059] 以上の例では、ユーザー・オブジェクト・クラスのオブジェクトについて説明したが、本明細書において説明する主題の態様を、ユーザー・オブジェクト・クラスのみに限定する意図はない。実際、本明細書における教示に基づいて、本明細書において説明する主題の態様の主旨や範囲から逸脱することなく、本明細書における教示を適用することができる他のタイプのオブジェクト・クラスを、当業者は認めることができよう。
[0060] 1組の必要なオブジェクトは、種々の理由で変化する可能性がある。例えば、機械が組織に追加された場合、機械オブジェクトのプロパティを、プロパティ・ストア225からプロパティ・ストア226に同期させることが必要となるであろう。
[0061] 他の例として、1組の必要なオブジェクトが、サービスに対する登録の変更に応答して、変化することもあり得る。例えば、組織が新たなサービスに登録した場合、この新たなサービスは、組織のある種のオブジェクト・タイプからのプロパティを必要とするであろう。あるクラスについて必要な1組のオブジェクトは、そのクラスの利用可能な全インスタンス化オブジェクトの内部分集合に限定されてもよい。例えば、クラウドにおけるあるサービスが、組織のためにディレクトリー・サーバーとして機能を果たすクラス機械(class machine)のオブジェクトのプロパティのみを必要とすることもあり得る。他の例として、クラウドにおけるあるサービスが、従業員クラスのある種のオブジェクトについてのみ、プロパティを必要とすることもあり得る。
[0062] オブジェクトが1組のオブジェクトに追加された場合、追加されたオブジェクトについてのプロパティを、プロパティ・ストア225から得て、プロパティ・ストア226に格納することができる。オブジェクトが1組のオブジェクトから削除された場合、プロパティ・ストア226に既に格納されているプロパティの内、1組のオブジェクトから削除されたオブジェクトについてのプロパティも、プロパティ・ストア226から削除することができる。
[0063] 3.プロパティを表す実際のデーターがプロパティ・ストア225において変化した場合。例えば、ある従業員の電話番号が代わった場合、または住所が代わった場合、同期マネージャー220は、この変更をプロパティ・ストア226に伝えることができる。帯域幅を保存するために、一実施態様では、毎回全てのデーターを送る代わりに、同期マネージャー220が最後に同期を実行したとき以降に行われた変更を、同期マネージャー220が送ることもできる。
[0064] プロパティ・ストア225に存在しないプロパティが必要になる場合、これは実施態様に依存して扱うことができる。例えば、一実施態様では、同期マネージャー220は、組織リソース210のあるコンポーネントに欠落(deficiency)について通知し、このコンポーネントに足りないプロパティを供給させることができる。他の実施態様では、同期マネージャー220は、そのプロパティにデフォルト・データーを供給することができる。他の実施態様では、クラウド・リソース215におけるあるコンポーネントを、足りないプロパティを供給するために使用することもできる。更に他の実施態様では、同期マネージャー220が同期を実行し損ない、エラー・メッセージを発することもあり得る。
[0065] 以上の実施態様は、足りないプロパティを扱うことができる種々の方法を全て含むこと、即ち、網羅的であることを意図するのではない。本明細書における教示に基づいて、本明細書において説明する主題の態様の主旨や範囲から逸脱することなく、使用することができる他の実施態様も当業者は認めることができよう。
[0066] 図3は、本明細書において説明した主題の態様による同期マネージャーのコンポーネント例を示すブロック図である。同期マネージャー220は、デルタ・マネージャー305、オブジェクト・セレクター310、プロパティ・セレクター312、ライセンシング・マネージャー315、および他のコンポーネント(図示せず)を含むことができる。
[0067] デルタ・マネージャー305は、直前の同期アクティビティ以降組織のプロパティ・ストアにおいて変化したプロパティを判定するように動作可能であるのでもよい。例えば、図2および図3を参照すると、デルタ・マネージャー305は、最後に同期マネージャー220がプロパティをプロパティ・ストア225からプロパティ・ストア226に同期して以降、プロパティ・ストア225において変化したプロパティを検出することができる。更に、デルタ・マネージャー305は、この検出を、同期が指示されたオブジェクトおよびプロパティだけに制限することもできる。
[0068] オブジェクト・セレクター310は、同期させるオブジェクトを限定するために使用するオブジェクトの指示を受けるように動作可能であればよい。オブジェクト・セレクターは、プロパティを得るために使用するオブジェクトを決定するために、この指示を使用することができる。例えば、オブジェクト・セレクター310は、オブジェクトを示す1つ以上の規則を受けることもできる。規則は、オブジェクトを同期に含ませるための1つ以上の条件を述べることができる。例えば、オブジェクト・セレクター310は、米国内に自宅住所があるオブジェクトだけを同期させることを指示する規則を受けるのでもよい。
[0069] プロパティ・セレクター312は、同期させるべきプロパティを決定するように動作可能であればよい。一実施態様では、プロパティ・セレクター312は、オブジェクト・クラスのリスト、および同期させる必要があるオブジェクト・クラスのプロパティを受けることができ、これらから、オブジェクト・クラスの内適格なオブジェクト(eligible object)に対して同期させる必要がある1組のプロパティを構成する(construct)ことができる。適格なオブジェクトとは、オブジェクト・セレクター310によって限定されないオブジェクトのことである。他の実施態様では、プロパティ・セレクター312は、単に、同期させるプロパティのリスト、およびこれらのプロパティに関連するオブジェクト・クラスを受けるのでもよい。
[0070] ライセンシング・マネージャー315は、サービスの使用許諾を受けた加入者を追跡し、このサービスの使用許諾を受けた加入者に基づいて、同期させるプロパティを限定するために使用するオブジェクトの指示(例えば、規則、リスト等)を作成するように動作可能であればよい。
[0071] デルタ・マネージャー305、オブジェクト・セレクター310、プロパティ・セレクター312、およびライセンシング・マネージャー315、またはその一部は、種々の実施形態では、組織のリソース、クラウド・リソース、組織のリソースおよびクラウド・リソースの外部、以上の内2つ以上の組み合わせ等においてホストされてもよい。更に、実施形態では、本明細書において説明した主題の態様の主旨や範囲から逸脱することなく、以上のエンティティの機能が、1つ以上のエンティティに組み合わされても、他のエンティティ(図示されるエンティティまたは図示されないエンティティ)に含まれても、またはサブ・エンティティに置かれてもよい。
[0072] 図4および図5は、本明細書において説明した主題の態様にしたがって実行することができるアクション例を総合的に表す流れ図である。説明の簡素化のために、図4および図5と関連付けて説明する方法は、一連のアクトとして示されそして説明される。尚、本明細書において説明した主題の態様は、図示されるアクトおよび/またはアクトの順序によって限定されないことは言うまでもないことであり、認められよう。一実施形態では、これらのアクトは以下で説明する順序で行われる。しかしながら、他の実施形態では、これらのアクトが並列に実行してもよく、他の順序で実行してもよく、および/または本明細書では紹介も説明もされない他のアクトと共に実行してもよい。更に、図示するアクトの全てが、本明細書において説明した主題の態様にしたがって本方法を実現するために必要とされない場合もある。加えて、本方法は、代わりに、状態図によって相互に関係付けられた一連の状態として、またはイベントとして表すこともできることは、当業者には理解され認められよう。
[0073] 図4に移り、ブロック405においてアクションが開始する。ブロック410において、新たなスキーマを得る。本明細書において使用する場合、最小限のスキーマ(schema at a minimum)は、同期させるプロパティを示す。また、スキーマは、プロパティに関連するオブジェクト・クラスも示すことができる。スキーマは、オブジェクト間の関係を示すこともでき、含まれるプロパティの平面表現(flat representation)(例えば、「包含リスト」)を含むこと等もできる。例えば、図2を参照すると、同期マネージャー220は、同期させるプロパティのスキーマを、クラウド・リソース215のあるコンポーネントから得ることもできる。
[0074] ブロック415において、以前の同期のために同期マネージャーが使用した古いスキーマと、新しいスキーマを比較する。この検査は、新たなスキーマおよび古いスキーマが、同じ1組の同期させるべきプロパティを示すか否か判定するためにある。例えば、図2を参照すると、同期マネージャー220は、古いスキーマおよび新しいスキーマを比較して、同期させる同じプロパティを示すという意味でこれらが同一であるか否か判定する。
[0075] ブロック420において、新たなスキーマが同期させる追加のプロパティを含む場合、アクションはブロック425に進み、そうでない場合、アクションはブロック430に進む。これらの追加のプロパティは、新たなスキーマが同期させるべきことを示す既存のオブジェクトの追加のプロパティから、および/またはこのスキーマが同期させるべきことを示す新たなオブジェクトのプロパティとして、得ることができる。
[0076] あるいは、新たなスキーマに加えて、組織プロパティ・ストアとクラウド・プロパティ・ストアとの間で同期させるプロパティを限定するために使用するオブジェクトを指示するデーターを得ることもできる。例えば、同期が求められるオブジェクトのリストを得ることもできる。このリストにおいて見られるオブジェクトに対するプロパティを同期させればよく、一方このリストにおいて見られないオブジェクトに対するプロパティは、同期させなくてよい。このリストは、各オブジェクトを指示することによって、または1つ以上の規則の使用によって指定することができる。この規則は、組織プロパティ・ストアに適用されると、含ませるべきオブジェクトを決定する。一実施態様では、これらのオブジェクトは、サービスの使用許諾を受けた加入者に対応する。
[0077] ブロック425において、追加のプロパティを同期させる。例えば、図2を参照すると、同期マネージャー220は、現在同期されているオブジェクト毎に反復し、追加のプロパティに対応するデーターをプロパティ・ストア225から得て、このデーターを同期のためにプロパティ・ストア226に送ることができる。他の例として、同期マネージャー220は、同期させるべき追加のオブジェクト(例えば、以前には同期されたことがない)毎に反復し、このオブジェクトに対して同期させるべき全てのプロパティに対応するデーターをプロパティ・ストア225から得て、このデーターを同期のためにプロパティ・ストア226に送ることができる。
[0078] ブロック430において、新たなスキーマが古いスキーマのプロパティ/オブジェクトを含まない場合、アクションはブロック435に進み、それ以外の場合、アクションはブロック440に進む。
[0079] ブロック435において、新たなスキーマに含まれていないが古いスキーマには含まれていたプロパティは、もはや同期させない。例えば、図2を参照すると、ユーザー・オブジェクトのプロパティ・コスト・センターが新たなスキーマでは削除されている場合、このプロパティは、もはやプロパティ・ストア225からプロパティ・ストア226に同期されない。他の例として、ある種のユーザー・オブジェクトをもはや同期させないことをスキーマが示す場合、これらのオブジェクトのプロパティは、プロパティ・ストア225からプロパティ・ストア226に同期されない。
[0080] ブロック440において、変更プロパティを得る。変更プロパティとは、最後の同期以降に変更したもののことである。例えば、ユーザー・オブジェクトの住所が変更し、この住所を同期させ続ける場合、新たな住所が得られる。例えば、図2参照すると、新たなスキーマの下でも同期される住所プロパティが変更されたとき、同期マネージャー220は新たな住所をプロパティ・ストア225から得る。
[0081] ブロック445において変更プロパティを同期させる。例えば、図2を参照すると、同期マネージャー220は、ブロック440において得られた変更データーに対応するデーターを送り、このデーターをプロパティ・ストア226に送る。加えて、同期に関連して、ある種のオブジェクトがもはや同期されない場合、これらのオブジェクトについてのデーターをクラウド・リソースから削除してもよいというメッセージを、明示的または暗示的に、クラウド・リソースに送ることもできる。ブロック450において、他にもアクションがある場合、実行することができる。例えば、新たなスキーマが同期させる追加のプロパティを含む場合、これらの追加のプロパティを、組織プロパティ・ストアからクラウド・プロパティ・ストアに同期させるために、周期的に変化をチェックすべき1組のプロパティに追加する。他の例として、新たなスキーマが古いスキーマのプロパティを含まない場合、組織プロパティ・ストアから第2プロパティ・ストアに同期させるために周期的に変化をチェックする1組のプロパティから、削除されたプロパティを除外することができる。
[0082] 図5に移り、ブロック505においてアクションが開始する。ブロック510において、利用可能なサービス毎に必要なプロパティを維持する。例えば、図2を参照すると、システム・アドミニストレータ(図示せず)等が、クラウド・リソース215から利用可能なサービス毎に必要なプロパティを入力、更新、または削除する。
[0083] ブロック515において、サービス・プロパティ・ストアを維持する。維持するとは、行われた同期アクティビティに応答して、クラウド・リソースのプロパティ・ストアに含まれるプロパティを格納および/または更新することを指す。プロパティは、サービス加入者の加入者プロパティ・ストアからプロパティを得た同期マネージャーによって供給されている。例えば、図2を参照すると、クラウド・リソース215のあるコンポーネントがプロパティ・ストア226を維持する。
[0084] ブロック520において、サービス加入者に対するサービス登録の変更の指示を受ける。サービス加入者とは、クラウド・リソースにサービスを要求するエンティティである。例えば、図2を参照すると、ある組織がクラウド・リソース215によってホストされる電子メール・サービスに登録することを望むという指示を、クラウド・リソース215のあるコンポーネントが受けることができる。
[0085] ブロック525において、サービスの変更に対してサービス加入者に求めるプロパティの指示が与えられる。例えば、図2を参照すると、プロパティ・ストア226は、電子メール・サービスの追加に必要になる追加のプロパティの指示を与えることができる。
[0086] ブロック530において、他のアクションがある場合には、実行することができる。例えば、図2を参照すると、サービス登録の変更後、クラウド・リソース215は、サービス登録変更のためにサービス加入者に求めるプロパティの指示をこのサービス加入者が受けたというメッセージを受信するのを待ち、このメッセージを受信した後でないと、サービス・プロパティ・ストアにおいて同期から除外されたプロパティに対応するデーターを削除することはできない。例えば、あるサービスへの登録が取り消された場合、クラウド・リソース215は、このサービスに対するプロパティを除外する命令を組織リソース210から受信するまで待てばよく、そしてこの命令の受信を示すメッセージを返送する。このメッセージを受信した後、クラウド・リソースは、もはや同期させないプロパティに対応するデーターを削除することができる。
[0087] 他の例として、クラウド・リソース215によってホストされたサービスのバージョンが変化した場合、以下を含む様々なアクションを実行することができる。
[0088] 1.クラウド・リソース215のあるコンポーネントが、バージョンが変化したことの指示を受信することができる(例えば、ユーザーまたは他のインターフェースを通じて)。例えば、サード・パーティ販売業者が、バージョンが変化したことを示すのでもよく、この変化したバージョンに必要になるプロパティを供給すればよい。
[0089] 2.バージョン変化に応答して同期させるために、追加、削除、および/または変更されたプロパティを示すデーターを得ることができる。
[0090] 3.サービスに登録したエンティティ毎に、そのエンティティによって供給される必要がある1組のプロパティを示す更新データー構造(例えば、表、リスト、または他のデーター構造)を生成することができ、このデーター構造またはこれから導かれたプロパティ・データーをエンティティに供給することができる。ここで、プロパティ・データーは、エンティティによって提供される必要がある1組のプロパティを示す。
[0091] 以上の詳細な説明から分かるように、データーの同期に関する態様について説明した。本明細書において説明した主題の態様には、種々の変更および代わりの構造も容易に考えつくが(susceptible to)、その内ある種の例示実施形態を図面に示し、以上で詳細に説明した。しかしながら、特許請求する主題の態様を、開示された具体的な形態に限定する意図はなく、逆に、本明細書において説明した主題の種々の態様の主旨および範囲に該当する全ての変更、代替構造、および均等物を包含することを意図している。

Claims (13)

  1. 組織とクラウドに接続されているコンピューター・システムによって実行され、組織からクラウドへのデーター同期をするための方法であって、
    前記組織が登録している第1の一つ又は複数のサービスのセットに関連する第1のプロパティのセットを判定するステップであって、前記第1の一つ又は複数のサービスのセットは前記クラウドにより提供されているステップと、
    前記第1のプロパティのセットを、前記組織から前記クラウドに同期させるステップと、
    前記組織が前記第1の一つ又は複数のサービスのセットの登録を第2の一つ又は複数のサービスのセットの登録に変更したことを判定するステップであって、前記第2の一つ又は複数のサービスのセットも前記クラウドにより提供され、前記第1の一つ又は複数のサービスのセットと前記第2の一つ又は複数のサービスのセットは、少なくとも一つの異なるサービスを含むステップと、
    前記組織が登録している前記第2の一つ又は複数のサービスのセットに関連する第2のプロパティのセットを判定するステップと、
    前記第1の一つ又は複数のサービスのセットに関連する第1のプロパティのセットと前記第2の一つ又は複数のサービスのセットに関連する第2のプロパティのセットの相違を明らかにするために、前記第1のプロパティのセットと前記第2のプロパティのセットを比較するステップと、
    前記第1の一つ又は複数のサービスのセットに関連する第1のプロパティのセットと前記第2の一つ又は複数のサービスのセットに関連する第2のプロパティのセットの相違を同期することを含む、前記第2のプロパティのセットのデーターを、前記組織から前記クラウドに同期させるステップと、
    を含む、方法。
  2. 請求項1に記載の方法であって、更に、
    前記第2の一つ又は複数のサービスのセットの使用許諾を受けた加入者を追跡するステップと、
    前記第2の一つ又は複数のサービスのセットに関連する第2のプロパティのセットを前記第2の一つ又は複数のサービスのセットの使用許諾を受けた加入者に基づいて限定するステップと、
    を含む、方法。
  3. 請求項1又は2に記載の方法において、前記組織が登録している前記第2の一つ又は複数のサービスのセットに関連する第2のプロパティのセットを判定するステップが、規則に基づいて前記組織のオブジェクトに対して同期させる必要のある第2のプロパティのセットを選択するステップを含む、方法。
  4. 請求項1又は2に記載の方法において、前記組織が登録している前記第2の一つ又は複数のサービスのセットに関連する第2のプロパティのセットを判定するステップが、適格なオブジェクトの限定されたセットに対して同期させる必要のある第2のプロパティを判定するステップを含み、前記適格なオブジェクトの限定されたセットは前記組織のオブジェクトのサブセットである、方法。
  5. 請求項4に記載の方法において、前記第2のプロパティのセットのデーターを、前記組織から前記クラウドに同期させるステップは、前記適格なオブジェクトの限定されたセットに対して同期させる必要のある第2のプロパティを同期させるステップを含む、方法。
  6. 請求項4又は5に記載の方法において、前記第2のプロパティのセットのデーターを、前記組織から前記クラウドに同期させるステップは、前記適格なオブジェクトの限定されたセットのそれぞれのオブジェクトについて、
    前記組織のリソースから、前記第2のプロパティのセットに対応するデーターを取得するステップと、
    前記第2のプロパティのセットに対応するデーターをクラウドに送信するステップと、
    を含む、方法。
  7. 請求項1〜6のいずれか一項に記載の方法において、前記第2のプロパティのセットのデーターを、前記組織から前記クラウドに同期させるステップは、
    同期させるべき追加のオブジェクトに対して同期させる必要のある第2のプロパティのセットに対応するデーターを取得するステップと、
    前記同期させるべき追加のオブジェクトに対して同期させる必要のある第2のプロパティのセットに対応するデーターをクラウドに送信するステップと、
    を含む、方法。
  8. 請求項1〜7のいずれか一項に記載の方法において、更に、
    少なくとも一つのプロパティを前記第2のプロパティのセットに追加することによって、前記組織から前記クラウドに同期させるべき変化を周期的にチェックするステップと、
    を含む、方法。
  9. 請求項1〜8のいずれか一項に記載の方法において、前記組織が前記第1の一つ又は複数のサービスのセットの登録を第2の一つ又は複数のサービスのセットの登録に変更したことを判定するステップは、前記組織が新しいサービスに登録したことを判定するステップを含む、方法。
  10. 請求項1〜9のいずれか一項に記載の方法において、前記組織が前記第1の一つ又は複数のサービスのセットの登録を第2の一つ又は複数のサービスのセットの登録に変更したことを判定するステップは、前記組織が前記第1の一つ又は複数のサービスのセットのうちのいずれかへの登録を取り消したことを判定するステップを含む、方法。
  11. 請求項1〜10のいずれか一項に記載の方法を実行するためのプログラム。
  12. 請求項1〜11のいずれか一項に記載の方法を実行するためのプログラムを記録した記録媒体。
  13. プロセッサと、前記プロセッサで実行されたときに、請求項1〜11のいずれか一項に記載の方法を実行するプログラムを記録したメモリを有する、コンピューター・システム。
JP2015500447A 2012-03-13 2013-02-25 ローカル・データーおよびリモート・データーの同期 Active JP6266588B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/418,356 2012-03-13
US13/418,356 US9110892B2 (en) 2012-03-13 2012-03-13 Synchronizing local and remote data
PCT/US2013/027546 WO2013138051A1 (en) 2012-03-13 2013-02-25 Synchronizing local and remote data

Publications (2)

Publication Number Publication Date
JP2015511749A JP2015511749A (ja) 2015-04-20
JP6266588B2 true JP6266588B2 (ja) 2018-01-24

Family

ID=49158619

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015500447A Active JP6266588B2 (ja) 2012-03-13 2013-02-25 ローカル・データーおよびリモート・データーの同期

Country Status (6)

Country Link
US (3) US9110892B2 (ja)
EP (1) EP2825971A4 (ja)
JP (1) JP6266588B2 (ja)
KR (1) KR102042230B1 (ja)
CN (1) CN104169902B (ja)
WO (1) WO2013138051A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8635373B1 (en) 2012-09-22 2014-01-21 Nest Labs, Inc. Subscription-Notification mechanisms for synchronization of distributed states
CN104462274B (zh) * 2014-11-25 2019-03-26 北京国双科技有限公司 数据处理方法和装置
US10769104B2 (en) 2014-12-12 2020-09-08 Aveva Software, Llc Block data storage system in an event historian
US10579601B2 (en) * 2014-12-12 2020-03-03 Aveva Software, Llc Data dictionary system in an event historian
US10459944B2 (en) * 2016-04-14 2019-10-29 Microsoft Technology Licensing, Llc Synchronizing hierarchical information while preserving team structure
US20180335902A1 (en) * 2017-05-16 2018-11-22 Apple Inc. Techniques for dynamically displaying relevant files for selection
US11429633B2 (en) 2017-06-07 2022-08-30 Citrix Systems, Inc. Data processing system with synchronization of local directory information to cloud system
US11032367B2 (en) 2018-07-16 2021-06-08 Microsoft Technology Licensing, Llc Long upload time detection and management
CN110990466B (zh) * 2018-09-29 2023-04-07 北京国双科技有限公司 一种数据同步方法及装置

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6202085B1 (en) * 1996-12-06 2001-03-13 Microsoft Corportion System and method for incremental change synchronization between multiple copies of data
US6633924B1 (en) * 1997-10-02 2003-10-14 Charles Wu Object synchronization between objects stores on different computers
US6324544B1 (en) * 1998-10-21 2001-11-27 Microsoft Corporation File object synchronization between a desktop computer and a mobile device
US6970876B2 (en) * 2001-05-08 2005-11-29 Solid Information Technology Method and arrangement for the management of database schemas
US20030032425A1 (en) * 2001-08-11 2003-02-13 Hong-Sik Kim Schema change method of dual system
US7373362B2 (en) * 2001-11-19 2008-05-13 Extended Systems, Inc. Coordinated synchronization
US20030217096A1 (en) 2001-12-14 2003-11-20 Mckelvie Samuel J. Agent based application using data synchronization
US20040068523A1 (en) * 2002-10-07 2004-04-08 Keith Robert Olan Method and system for full asynchronous master-to-master file synchronization
US7401104B2 (en) 2003-08-21 2008-07-15 Microsoft Corporation Systems and methods for synchronizing computer systems through an intermediary file system share or device
US7526768B2 (en) * 2004-02-04 2009-04-28 Microsoft Corporation Cross-pollination of multiple sync sources
JP2008511928A (ja) * 2004-08-31 2008-04-17 インターナショナル・ビジネス・マシーンズ・コーポレーション メタデータの管理
US8682844B2 (en) * 2005-01-28 2014-03-25 Sap Ag Method and apparatus for collision resolution in an asynchronous database system
US7317907B2 (en) * 2005-01-31 2008-01-08 Research In Motion Limited Synchronizing server and device data using device data schema
US20060212489A1 (en) * 2005-03-15 2006-09-21 Eggers Michael R Technique for effectively synchronizing data through an information service
US20060277224A1 (en) * 2005-06-07 2006-12-07 Microsoft Corporation Synchronizing arbitrary data using a flexible schema
US7962585B2 (en) * 2005-08-15 2011-06-14 Microsoft Corporation Partial item change tracking and synchronization
JP2009003549A (ja) * 2007-06-19 2009-01-08 Japan Lucida Co Ltd データ管理装置およびデータ管理方法、データ管理プログラム、データ管理プログラム記憶媒体
US20090037452A1 (en) * 2007-07-31 2009-02-05 Ahmad Baitalmal System and Method for Synchronizing Applications
US8782637B2 (en) * 2007-11-03 2014-07-15 ATM Shafiqul Khalid Mini-cloud system for enabling user subscription to cloud service in residential environment
US9063993B2 (en) * 2008-01-31 2015-06-23 Microsoft Technology Licensing, Llc Coexistence tools for synchronizing properties between on-premises customer locations and remote hosting services
US20090300169A1 (en) 2008-06-03 2009-12-03 Microsoft Corporation Synchronization throttling based on user activity
US8612381B2 (en) * 2008-09-12 2013-12-17 International Business Machines Corporation Enhanced synchronization framework providing improved sync granularity
US20100269164A1 (en) * 2009-04-15 2010-10-21 Microsoft Corporation Online service data management
US8261269B2 (en) 2009-09-21 2012-09-04 Oracle International Corporation System and method for synchronizing transient resource usage between virtual machines in a hypervisor environment
US8503984B2 (en) * 2009-12-23 2013-08-06 Amos Winbush, III Mobile communication device user content synchronization with central web-based records and information sharing system
US8315977B2 (en) * 2010-02-22 2012-11-20 Netflix, Inc. Data synchronization between a data center environment and a cloud computing environment
US8290900B2 (en) 2010-04-24 2012-10-16 Research In Motion Limited Apparatus, and associated method, for synchronizing directory services
US8938510B2 (en) * 2010-04-26 2015-01-20 Bittan Inc. On-demand mailbox synchronization and migration system
US8805783B2 (en) * 2010-05-27 2014-08-12 Microsoft Corporation Synchronization of subsets of data including support for varying set membership
US20120117026A1 (en) * 2010-06-10 2012-05-10 Cricket Communications, Inc. Play list management
JP4829368B1 (ja) * 2010-06-15 2011-12-07 株式会社東芝 ファイル処理プログラム、装置及び方法
US8606948B2 (en) * 2010-09-24 2013-12-10 Amazon Technologies, Inc. Cloud-based device interaction
US8838830B2 (en) * 2010-10-12 2014-09-16 Sap Portals Israel Ltd Optimizing distributed computer networks
US20120117271A1 (en) * 2010-11-05 2012-05-10 Sony Corporation Synchronization of Data in a Distributed Computing Environment
US8909784B2 (en) * 2010-11-23 2014-12-09 Red Hat, Inc. Migrating subscribed services from a set of clouds to a second set of clouds
KR20120060596A (ko) * 2010-12-02 2012-06-12 한국전자통신연구원 유비쿼터스 객체의 클라우드 기반 통신을 위한 자원관리 장치 및 방법
CN102014168A (zh) * 2010-12-17 2011-04-13 清华大学 一种基于云服务的互联互通通讯录的方法和装置
CN102638484A (zh) * 2011-02-15 2012-08-15 鸿富锦精密工业(深圳)有限公司 云端存取系统及其根据社群网络显示数据对象的方法
US20120221454A1 (en) * 2011-02-28 2012-08-30 Morgan Christopher Edwin Systems and methods for generating marketplace brokerage exchange of excess subscribed resources using dynamic subscription periods
US8510267B2 (en) * 2011-03-08 2013-08-13 Rackspace Us, Inc. Synchronization of structured information repositories
US8849759B2 (en) * 2012-01-13 2014-09-30 Nexenta Systems, Inc. Unified local storage supporting file and cloud object access
US8942673B2 (en) * 2011-10-03 2015-01-27 At&T Intellectual Property I, L.P. Method and apparatus for providing cellphone service from any device
US8903819B2 (en) * 2011-12-28 2014-12-02 United Video Properties, Inc. Systems and methods for sharing profile information using user preference tag clouds

Also Published As

Publication number Publication date
US20170193071A1 (en) 2017-07-06
US9633068B2 (en) 2017-04-25
JP2015511749A (ja) 2015-04-20
KR102042230B1 (ko) 2019-11-07
US20130246353A1 (en) 2013-09-19
US20150339342A1 (en) 2015-11-26
US9110892B2 (en) 2015-08-18
US10545991B2 (en) 2020-01-28
CN104169902B (zh) 2017-03-08
KR20140138712A (ko) 2014-12-04
CN104169902A (zh) 2014-11-26
EP2825971A1 (en) 2015-01-21
EP2825971A4 (en) 2015-11-11
WO2013138051A1 (en) 2013-09-19

Similar Documents

Publication Publication Date Title
JP6266588B2 (ja) ローカル・データーおよびリモート・データーの同期
US10922437B2 (en) Installation and management of client extensions
US9253265B2 (en) Hot pluggable extensions for access management system
EP3138001B1 (en) Methods and systems for managing multiple applications
EP2428894A1 (en) Private application clipboard
US11328254B2 (en) Automatic group creation based on organization hierarchy
US10873552B2 (en) Large data management in communication applications through multiple mailboxes
EP3497586A1 (en) Discovery of calling application for control of file hydration behavior
CN111209120A (zh) 微服务的数据同步方法、装置及计算机可读存储介质
US20200127959A1 (en) Architecture for large data management in communication applications through multiple mailboxes
US20140351958A1 (en) User centric data maintenance
US8903889B2 (en) Method, system and article for mobile metadata software agent in a data-centric computing environment
CN110489158B (zh) 对代码托管平台进行优化的方法、装置、介质和电子设备
US20130174234A1 (en) Light-weight credential synchronization
KR101570980B1 (ko) 멀티 테넌트 환경의 공통 코드 관리 방법, 이를 수행하는 공통 코드 관리 서버 및 이를 저장하는 기록매체
US20230108321A1 (en) Method and system for mapping data protection policies to data clusters
WO2023172317A1 (en) Preventing illicit data transfer and storage
CN117951106A (zh) 一种日志处理方法、装置、电子设备及计算机可读介质
CN116647355A (zh) 应用平台的数据阻塞

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170313

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170612

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170619

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20171004

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

R150 Certificate of patent or registration of utility model

Ref document number: 6266588

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250