(57)【特許請求の範囲】
【請求項１】
サービスから、ユーザが前記サービスのユーザ・アカウントにログインしたことに応じて、前記ユーザ・アカウントにより保持され同期化される、１以上の周辺デバイスの各々のためのデバイス関連付けデータを受信するステップであって、周辺デバイスのための前記デバイス関連付けデータは、該周辺デバイスをコンピューティング・デバイスにどのように接続するかを示すものである、ステップと、
前記１以上の周辺デバイスのうち、前記コンピューティング・デバイスによる使用のために自動的に利用可能にすることができる周辺デバイスを判別するステップと、
前記１以上の周辺デバイスのうち、前記コンピューティング・デバイスによる使用のために自動的に利用可能にすることができる周辺デバイスだけを、前記コンピューティング・デバイスによる使用のために自動的に利用可能にするステップと、
前記１以上の周辺デバイスのうち、前記デバイス関連付けデータにクレデンシャルが含まれていないため前記コンピューティング・デバイスによる使用のために自動的には利用可能にすることができない少なくとも１つの周辺デバイスについて、クレデンシャルを提供するためのプロンプトを表示するステップと、
提供された前記クレデンシャルに基づいて、前記コンピューティング・デバイスによる使用のために自動的には利用可能にすることができない前記少なくとも１つの周辺デバイスを、前記コンピューティング・デバイスによる使用のために利用可能にするステップと、
を含む方法。
【請求項２】
前記コンピューティング・デバイスによる使用のために自動的に利用可能にすることができる周辺デバイスのためのデバイス関連付けデータのコピーに加えて、前記１以上の周辺デバイスのうち、前記コンピューティング・デバイスによる使用のために自動的には利用可能にすることができない少なくとも１つの周辺デバイスのためのデバイス関連付けデータのコピーを、前記コンピューティング・デバイス上で保持するステップ
をさらに含む、請求項１記載の方法。
【請求項３】
前記コンピューティング・デバイスによる使用のために自動的には利用可能にすることができない前記少なくとも１つの周辺デバイスのインジケーションを表示するステップと、
該少なくとも１つの周辺デバイスのインストールを許可するユーザ入力に応答して、前記コンピューティング・デバイス上に前記少なくとも１つの周辺デバイスをインストールするステップと、
をさらに含む、請求項２記載の方法。
【請求項４】
少なくとも１つの周辺デバイスのための前記デバイス関連付けデータは、該少なくとも１つの周辺デバイスにより、前記サービスに提供されたものである、請求項１記載の方法。
【請求項５】
前記判別することは、どの周辺デバイスを前記コンピューティング・デバイスによる使用のために自動的には利用可能にすることができないかを識別するための１以上のルールを適用することを含み、前記自動的に利用可能にすることは、前記コンピューティング・デバイスによる使用のために自動的には利用可能にすることができない周辺デバイスを除いた前記１以上の周辺デバイスを、前記コンピューティング・デバイスによる使用のために自動的に利用可能にすることを含む、請求項１記載の方法。
【請求項６】
前記サービスから、前記１以上の周辺デバイスのうちの少なくとも１つの周辺デバイスのためのデバイス使用データを受信するステップであって、周辺デバイスのための前記デバイス使用データは、該周辺デバイスのための特定の設定を識別するものである、ステップと、
前記コンピューティング・デバイス上にインストールされている該少なくとも１つの周辺デバイスに前記特定の設定を適用するステップと、
をさらに含む、請求項１記載の方法。
【請求項７】
前記サービスから、前記１以上の周辺デバイスのうちの少なくとも１つの周辺デバイスのためのデバイス関連付けデータに対する変更を受信するステップと、
前記コンピューティング・デバイス上で保持されている、該少なくとも１つの周辺デバイスのための前記デバイス関連付けデータを、前記変更に基づいて更新するステップと、
をさらに含む、請求項１記載の方法。
【請求項８】
前記サービスから、前記１以上の周辺デバイスのうちの少なくとも１つの周辺デバイスが削除されたというインジケーションを受信するステップと、
該少なくとも１つの周辺デバイスを、前記コンピューティング・デバイスによる使用のために利用可能にしなくするステップと、
をさらに含む、請求項１記載の方法。
【請求項９】
コンピューティング・デバイスであって、
周辺デバイスのためのデバイス関連付けデータを記憶するデータ記憶部であって、周辺デバイスのための前記デバイス関連付けデータは、前記コンピューティング・デバイスが該周辺デバイスにどのように接続するかを示すものである、データ記憶部と、
デバイス関連付けデータ同期化モジュールであって、
サービスから、ユーザが前記サービスのユーザ・アカウントにログインしたことに応じて、前記ユーザ・アカウントにより保持され同期化される、複数の周辺デバイスの各々のためのデバイス関連付けデータを受信し、
前記複数の周辺デバイスのうち、前記コンピューティング・デバイスによる使用のために自動的に利用可能にすることができる周辺デバイスを判別し、
前記複数の周辺デバイスのうち、前記コンピューティング・デバイスによる使用のために自動的に利用可能にすることができる周辺デバイスを、前記コンピューティング・デバイスによる使用のために自動的に利用可能にし、
前記複数の周辺デバイスのうち、前記デバイス関連付けデータにクレデンシャルが含まれていないため前記コンピューティング・デバイスによる使用のために自動的には利用可能にすることができない少なくとも１つの周辺デバイスについて、クレデンシャルを提供するためのプロンプトを表示し、提供された前記クレデンシャルに基づいて、前記コンピューティング・デバイスによる使用のために自動的には利用可能にすることができない前記少なくとも１つの周辺デバイスを、前記コンピューティング・デバイスによる使用のために利用可能にする
よう構成されているデバイス関連付けデータ同期化モジュールと、
を備えたコンピューティング・デバイス。
【請求項１０】
コンピューティング・デバイスから、サービスのユーザ・アカウントにログインするステップと、
前記サービスから、前記ユーザ・アカウントにより保持され同期化される、１以上の周辺デバイスの各々のためのデバイス関連付けデータを受信するステップであって、周辺デバイスのための前記デバイス関連付けデータは、該周辺デバイスにどのように接続するかを示すものであり、少なくとも１つの周辺デバイスのための前記デバイス関連付けデータは、さらなるコンピューティング・デバイスにより、前記さらなるコンピューティング・デバイスが前記さらなるコンピューティング・デバイスにおいて前記少なくとも１つの周辺デバイスに接続した結果として、前記サービスに提供されたものである、ステップと、
前記１以上の周辺デバイスのうち、前記コンピューティング・デバイス上に自動的にインストールすることができる周辺デバイスを判別するステップと、
前記コンピューティング・デバイスと前記サービスと前記さらなるコンピューティング・デバイスとの間で、前記１以上の周辺デバイスのための前記デバイス関連付けデータの変更を同期化するステップと、
前記１以上の周辺デバイスのうち、前記コンピューティング・デバイス上に自動的にインストールすることができる周辺デバイスだけを、前記コンピューティング・デバイス上に自動的にインストールするステップと、
前記１以上の周辺デバイスのうち、前記デバイス関連付けデータにクレデンシャルが含まれていないため前記コンピューティング・デバイス上に自動的にはインストールすることができない少なくとも１つの周辺デバイスについて、クレデンシャルを提供するためのプロンプトを表示するステップと、
提供された前記クレデンシャルに基づいて、前記コンピューティング・デバイス上に自動的にはインストールすることができない前記少なくとも１つの周辺デバイスを、前記コンピューティング・デバイス上にインストールするステップと、
を含む方法。
【発明の詳細な説明】
【背景技術】
【０００１】
コンピューティング技術が発展するにつれて、人々に利用可能な人々が一日を通じて使用する様々なコンピューティング・デバイスの数が増してきている。これらのデバイスを使用するとき、人々は、しばしば、プリンタ、スキャナ、ヘッドセット等といった同じ周辺デバイスにアクセスしたいと望むことがある。複数のコンピューティング・デバイスにより同じ周辺デバイスを使用できることは、ユーザにとって有用である。なぜならば、ユーザは、異なるコンピューティング・デバイス上で、ユーザが馴染んでいる周辺デバイスを使用できるからである。しかしながら、複数の異なるコンピューティング・デバイス上で同じ周辺デバイスを使用することは、問題がないわけではない。そのような１つの問題は、そのような周辺デバイスが、ユーザにより、複数の異なるコンピューティング・デバイスの各コンピューティング・デバイス上にインストールされる必要があり、これは、時間を消費するプロセスであり、ユーザ・エクスペリエンスの低下をもたらし得る、ということである。
【発明の概要】
【０００２】
この概要は、発明を実施するための形態において以下でさらに説明されるコンセプトのうち選択したものを簡略化した形で紹介するために提供される。この概要は、特許請求される主題の主要な特徴又は必要不可欠な特徴を特定することを意図するものではないし、特許請求される主題の範囲を限定するために使用されることを意図するものでもない。
【０００３】
１以上の態様に従うと、周辺デバイスのためのデバイス関連付けデータ（device  association  data）は、前記周辺デバイスにどのように接続するかを示すものである。ユーザ・アカウントに関連付けられた１以上の周辺デバイスの各々のためのデバイス関連付けデータが受信される。前記１以上の周辺デバイスのうちのどの周辺デバイスが、コンピューティング・デバイスに自動的に関連付けることができるかに関する判別がなされ、前記１以上の周辺デバイスのうち、前記コンピューティング・デバイスに自動的に関連付けることができる周辺デバイスが、前記コンピューティング・デバイスに自動的に関連付けられる。
【図面の簡単な説明】
【０００４】
同様の特徴を参照するために、図面全体を通じて同じ符号が使用される。
【図１】１以上の実施形態に従った、コンピューティング・デバイス間におけるデバイス関連付けデータの同期化を実装する例示的なシステムを示す図。
【図２】１以上の実施形態に従った、コンピューティング・デバイス間におけるデバイス関連付けデータの同期化を実装する例示的なコンピューティング・デバイスを示すブロック図。
【図３】１以上の実施形態に従って、コンピューティング・デバイス間でデバイス関連付けデータを同期化するための例示的なプロセスを示すフローチャート。
【図４】１以上の実施形態に従って、周辺デバイスをコンピューティング・デバイスに自動的に関連付けるための例示的なプロセスを示すフローチャート。
【図５】１以上の実施形態に従った、本明細書で説明する技術を実装するための例示的なモデルを示すブロック図。
【図６】本明細書で説明する様々な技術を実装することができる１以上のシステム及び／又はデバイスを表す例示的なコンピューティング・デバイスを含む例示的なシステムを示す図。
【発明を実施するための形態】
【０００５】
コンピューティング・デバイス間でデバイス関連付けデータを同期化することについて、本明細書で説明する。１以上の周辺デバイスのためのデバイス関連付けデータが、ローカル・サービス又はリモート・サービスのユーザ・アカウントに関連付けられた複数の異なるコンピューティング・デバイス間で保持され同期化される。周辺デバイスのためのデバイス関連付けデータは、その周辺デバイスのネットワーク・アドレス、その周辺デバイスと通信するために使用されるセキュリティ情報等といった、その周辺デバイスに接続するために使用されるデータである。デバイス関連付けデータは、ユーザが自分のアカウントにアクセスするコンピューティング・デバイスにより保持されることに加えて、ユーザのユーザ・アカウントに関連付けられたサービスによっても保持される。
【０００６】
新たな周辺デバイスが、コンピューティング・デバイス上にインストールされたとき、又は、コンピューティング・デバイスに別の形で関連付けられたときに、新たな周辺デバイスのためのデバイス関連付けデータが、そのコンピューティング・デバイスに追加されるとともに、サービスにも追加される。ユーザが、コンピューティング・デバイスから、自分のユーザ・アカウントにログインしたときに、そのコンピューティング・デバイスにまだ記憶されていない、周辺デバイスのためのデバイス関連付けデータが、サービスからそのコンピューティング・デバイスにコピーされ、そのコンピューティング・デバイス上に自動的にインストールすることができる、あるいは、そのコンピューティング・デバイスに別の形で自動的に関連付けることができる、周辺デバイスのうちのいくつかが、そのコンピューティング・デバイス上に自動的にインストールされる、あるいは、そのコンピューティング・デバイスに別の形で関連付けられる。したがって、周辺デバイスのためのデバイス関連付けデータが、コンピューティング・デバイス又はサービスに追加された場合、そのデバイス関連付けデータは、ユーザが自分のアカウントにログインする他のコンピューティング・デバイスと同期化され、そのデバイス関連付けデータが、そのような他のコンピューティング・デバイスにコピーされ、周辺デバイスが、そのような他のコンピューティング・デバイス上に自動的にインストールされる、あるいは、そのような他のコンピューティング・デバイスに別の形で関連付けられる。
【０００７】
図１は、１以上の実施形態に従った、コンピューティング・デバイス間におけるデバイス関連付けデータの同期化を実装する例示的なシステム１００を示している。システム１００は、コンピューティング・デバイス１０２と、複数の（ｎ個の）コンピューティング・デバイス１０４（１）、．．．、１０４（ｎ）と、を含み、これらのコンピューティング・デバイスは、サービス１０６と通信することができる。コンピューティング・デバイス１０２、１０４は、インターネット、ローカル・エリア・ネットワーク（ＬＡＮ）、電話網、イントラネット、他のパブリック・ネットワーク及び／又はプロプライエタリ・ネットワーク、これらの組合せ等を含む多種多様なネットワークのうちの任意のものを介して、サービス１０６と通信することができる。コンピューティング・デバイス１０２、１０４は、追加的又は代替的に、多様な有線接続及び／又は無線接続のうちの任意のもの等の、ネットワーク以外の通信チャネルを介してサービス１０６と通信してもよい。システム１００は、サービス１０６と通信する任意の数の同じタイプ又は異なるタイプのコンピューティング・デバイスを含んでもよいことに留意すべきである。
【０００８】
各コンピューティング・デバイス１０２、１０４は、多種多様なタイプのデバイスであり得、コンピューティング・デバイス１０２及び１０４は、同じタイプのデバイスであってもよいし、異なるタイプのデバイスであってもよい。例えば、各コンピューティング・デバイス１０２、１０４は、デスクトップ・コンピュータ、サーバ・コンピュータ、ラップトップ・コンピュータ、ネットブック・コンピュータ、タブレット・コンピュータ、ノートパッド・コンピュータ、モバイル・ステーション、エンターテイメント・アプライアンス、ディスプレイ・デバイスに通信可能に接続されたセットトップ・ボックス、テレビジョン又は他のディスプレイ・デバイス、携帯電話機又は他の無線電話機、ゲーム・コンソール、自動車用コンピュータ、ウェアラブル・コンピュータ等であり得る。したがって、各コンピューティング・デバイス１０２、１０４は、多くのメモリ・リソース及びプロセッサ・リソースを有するフル・リソース・デバイス（例えば、パーソナル・コンピュータ、ゲーム・コンソール）から、限られたメモリ・リソース及び／又は処理リソースを有する低リソース・デバイス（例えば、従来型のセットトップ・ボックス、ハンドヘルド・ゲーム・コンソール）まで及び得る。
【０００９】
コンピューティング・デバイス１０２及び１０４の説明と同様に、サービス１０６は、多くのメモリ・リソース及びプロセッサ・リソースを有するフル・リソース・デバイスから、限られたメモリ・リソース及び／又は処理リソースを有する低リソース・デバイスまで及ぶ多種多様なタイプのデバイスのうちの１以上を用いて実装することができる。サービス１０６は、コンピューティング・デバイス１０２、１０４からリモートにあってもよいし（例えば、インターネットを介してアクセスされる）、コンピューティング・デバイスに対してローカルにあってもよい（例えば、ＬＡＮを介してアクセスされる）。したがって、サービス１０６は、コンピューティング・デバイス１０２、１０４に対してローカルにある１以上のデバイスによりホストされてもよいし（例えば、同じビルディング又はオフィス等の敷地内で）、コンピューティング・デバイス１０２、１０４からリモートにある１以上のデバイスによりホストされてもよい（例えば、別のビルディング、町、又は国等の異なる敷地内で）。
【００１０】
コンピューティング・デバイス１０２のユーザは、サービス１０６に関連付けられたユーザ・アカウントを有する。ユーザは、ユーザ名及びパスワードや、デジタル証明書によって等、多種多様な方法のうちのいずれかにより、コンピューティング・デバイス１０２から、自分のアカウントにログインすることができる。ユーザが、自分のアカウントにログインしている間に、コンピューティング・デバイス１０２は、以下でより詳細に説明するように、サービス１０６とデバイス関連付けデータを同期化する。
【００１１】
コンピューティング・デバイス１０２のユーザは、１以上の周辺デバイス１０８に接続することができる。これは、コンピューティング・デバイス１０２を１以上の周辺デバイス１０８に関連付ける、とも称される。コンピューティング・デバイス１０２を周辺デバイス１０８に関連付けることは、周辺デバイス１０８をコンピューティング・デバイス１０２上にインストールすることを含み得る。周辺デバイスをインストールすることは、コンピューティング・デバイス１０２と周辺デバイス１０８との間の通信接続を確立するために（例えば、周辺デバイス１０８をコンピューティング・デバイス１０２とペアリングするために）、コンピューティング・デバイス１０２及び／又は周辺デバイス１０８のためのリソース（例えば、ドライバ）をインストールして、コンピューティング・デバイス１０２及び／又は周辺デバイス１０８のための適切なプロパティを設定することを含む。したがって、周辺デバイスをインストールすることは、コンピューティング・デバイス１０２による使用のために周辺デバイス１０８を利用可能にすることを含む。
【００１２】
コンピューティング・デバイス１０２を周辺デバイス１０８に関連付けることはまた、周辺デバイス１０８にどのようにアクセスするか（例えば、コンピューティング・デバイス１０２と周辺デバイス１０８との間の通信接続をどのように確立するか）、周辺デバイスがどのようなデバイス機能を有するか、そのようなデバイス機能をどのように使用するか、そのようなデバイス機能にどのようにアクセスするか、これらの組合せ等を示す情報をコンピューティング・デバイス１０２に追加することを含み得る。したがって、コンピューティング・デバイス１０２を周辺デバイス１０８に関連付けることは、周辺デバイス１０８をコンピューティング・デバイス１０２上にインストールすることなく、コンピューティング・デバイス１０２による使用のために周辺デバイス１０８を利用可能にすることを含み得る。
【００１３】
周辺デバイス１０８とは、コンピューティング・デバイスに接続することができるデバイスであって、例えば、コンピューティング・デバイスにより提供されない機能を提供したり、コンピューティング・デバイスにより提供される機能を拡張したり、コンピューティング・デバイスにより提供される機能を置換したりするデバイスを指す。例えば、周辺デバイスは、出力デバイス（例えば、プリンタ、スピーカ等）、入力デバイス（例えば、スキャナ、マイクロフォン、キーボード等）、データ記憶デバイス、他のコンピューティング・デバイス（例えば、スマートフォン、プリント・サーバ等）等であり得る。周辺デバイスは、（例えば、有線接続又は無線接続を介してコンピューティング・デバイスと通信する）ローカル・デバイスであってもよいし、（例えば、ネットワークを介してコンピューティング・デバイスと通信する）リモート・デバイスであってもよい。周辺デバイスはまた、スマートフォン等の他のコンピューティング・デバイスであってもよい。
【００１４】
１以上の実施形態において、周辺デバイスは、コンピューティング・デバイス１０２、１０４から分離されているハウジング内に実装されるデバイスである。周辺デバイスは、コンピューティング・デバイス１０２、１０４から物理的に分離され、コンピューティング・デバイス１０２、１０４に対して外部に存在するが、それでも、コンピューティング・デバイス１０２、１０４と通信することができ、任意的に、コンピューティング・デバイス１０２、１０４に物理的に接続されてもよい。周辺デバイスは、ハードウェア・デバイスであり、ソフトウェア及び／又はファームウェアを有することができる。例えば、周辺デバイス（例えば、共有プリンタ）は、（ソフトウェアにより実装される）プリント・サーバ及び物理プリンタの両方を含む論理ユニットであり得る。
【００１５】
デバイス関連付けデータは、コンピューティング・デバイスを周辺デバイスに関連付けるプロセスの一部として使用することができる様々なデータである。したがって、デバイス関連付けデータは、周辺デバイスに対応する、とも称される。周辺デバイスのためのデバイス関連付けデータは、ネットワーク・アドレス又は媒体アクセス制御（ＭＡＣ）アドレス、プリント・サーバ上の共有プリンタのネットワーク・アドレス、証明書又は個人識別番号（ＰＩＮ）といったセキュリティ・データ又は認証データ等の、周辺デバイスに接続するために使用されるデータである。デバイス関連付けデータはまた、周辺デバイスの名前又は識別子、周辺デバイスのタイプ、周辺デバイスに関連付けられたドライバの識別子、周辺デバイスがコンピューティング・デバイス１０２上にすでにインストールされているかどうか等の、周辺デバイス及び／又はデバイス関連付けデータに関するさらなるデータを含み得る。したがって、周辺デバイスのためのデバイス関連付けデータは、周辺デバイスにどのように接続するかを示すものである。デバイス関連付けデータは、コンピューティング・デバイス１０２が、周辺デバイスを再インストールすることなく、（例えば、電源が落とされて再起動された後に）周辺デバイスに後でアクセスできるように、コンピューティング・デバイス１０２により保持される。
【００１６】
周辺デバイスはまた、ユーザが周辺デバイスをどのように使用することを望む又は好むかを示すデバイス使用データ（device  use  data）（ユーザ・プリファレンス・データとも呼ばれる）に関連付けることができる。周辺デバイスのためのデバイス使用データは、例えば、周辺デバイスのためのユーザが好む特定の設定又は値（例えば、スピーカの特定の音量レベル、プリンタの特定の印刷設定（例えば、両面モード、インク又はトナーを節約するための節約モード等）、スキャナの特定のスキャン解像度等）を指定することができる。デバイス使用データは、デバイス関連付けデータの一部として含まれ、したがって、以下でより詳細に説明するように、デバイス関連付けデータの一部として同期化することができる。代替的に、デバイス使用データは、デバイス関連付けデータから分離されてもよいが、デバイス関連付けデータと同様に（且つ、任意的に一緒に）同期化される。
【００１７】
デバイス使用データは、自動的にインストールされることに起因して、手動でインストールされることに起因して、あるいは、インストールされることなくコンピューティング・デバイスにより接続されることに起因して、コンピューティング・デバイスに関連付けられる周辺デバイスのために同期化され得る。したがって、周辺デバイスが、コンピューティング・デバイスに新たに関連付けられたときに、他のコンピューティング・デバイスからのデバイス使用データが、そのコンピューティング・デバイス上で受信され使用され得、ユーザは、そのコンピューティング・デバイス上に自動的に設定された、周辺デバイスの自分の所望の設定を有する。同様に、１つのコンピューティング・デバイス上でなされたデバイス使用データに対する変更は、デバイス関連付けデータと同様に、他のコンピューティング・デバイスと同期化される。
【００１８】
周辺デバイス１０８は、例えば、周辺デバイス１０８をコンピューティング・システム１０２上に手動でインストールすることにより、サービス１０６から独立して（例えば、サービス１０６からデバイス関連付けデータを取得せずに）、コンピューティング・デバイス１０２に手動で関連付けられてもよい。周辺デバイス１０８をコンピューティング・デバイス１０２に手動で関連付けるために、周辺デバイスは、ディレクトリ・サービス、ネットワークを介したマルチキャスト・ディスカバリ、ユニバーサル・プラグ・アンド・プレイ（ＵＰｎＰ）・ネットワーキング・プロトコル、（例えば、ユニバーサル・シリアル・バス（ＵＳＢ）プロトコル又は無線ＵＳＢプロトコルを用いて）周辺デバイスにローカルに接続すること、デバイス上のウェブ・サービス、他のパブリック・プロトコル及び／又はプロプライエタリ・プロトコル等といった多様なメカニズムのうちの任意のものを用いて、ディスカバリ又は識別される。デバイス関連付けデータは、周辺デバイスをディスカバリ又は識別するために使用されるサービスから取得する、周辺デバイス自体から取得する等、周辺デバイスをディスカバリ又は識別するために使用されるメカニズムに基づいて、様々な方法により取得することができる。
【００１９】
ユーザが自分のアカウントのログインしている間に、コンピューティング・デバイス１０２は、サービス１０６とデバイス関連付けデータを同期化する。デバイス関連付けデータを同期化するコンピューティング・デバイス１０２とは、サービス１０６からデバイス関連付けデータを取得し、コンピューティング・デバイス１０２からサービス１０６へデバイス関連付けを提供するコンピューティング・デバイス１０２を指す。サービス１０６は、データ同期化モジュール１１２及びデバイス関連付けデータ記憶部１１４を含み得る。データ同期化モジュール１１２は、コンピューティング・デバイス１０２、１０４とのデバイス関連付けデータの同期化を管理し、受信したデバイス関連付けデータをデバイス関連付けデータ記憶部１１４に記憶する。したがって、サービス１０６のデバイス関連付けデータ記憶部１１４は、周辺デバイス１０８がコンピューティング・デバイス１０２、１０４のうちの様々なコンピューティング・デバイスに関連付けられた結果としてサービス１０６に提供され、コンピューティング・デバイス１０２、１０４間で同期化されるデバイス関連付けデータを含む。
【００２０】
代替的に、サービス１０６は、デバイス関連付けデータ記憶部１１４のみを含んでもよく、コンピューティング・デバイス１０２、１０４が、以下でより詳細に説明するように、データ同期化モジュール１１２を用いることなく、デバイス関連付けデータに対する任意の変更を判別してもよい。サービス１０６は、プッシュ・モデルをサポートしてもよいし（例えば、サービス１０６が、サービス１０６から１以上のコンピューティング・デバイス１０２にデータを提供する場合）、且つ／あるいは、プル・モデルをサポートしてもよい（例えば、コンピューティング・デバイス１０２が、サービス１０６をポーリングして、あるいは、サービス１０６に別の形でアクセスして、サービス１０６に対してデータをリクエストする、あるいは、サービス１０６からデータを取得する）。
【００２１】
ユーザが、コンピューティング・デバイス１０２又は１０４から自分のアカウントにログインしたときに、コンピューティング・デバイス上の、新たに関連付けられた周辺デバイス１０８のためのデバイス関連付けデータが、サービス１０６に送信され、デバイス関連付けデータ記憶部１１４に記憶される。同様に、関連付け解除された（例えば、削除又はアンインストールされた）周辺デバイス１０８のインジケーションが、サービス１０６に送信され、示されたデバイス関連付けデータが、デバイス関連付けデータ記憶部１１４から削除され得る。周辺デバイス１０８を関連付け解除するとは、周辺デバイス１０８をアンインストールすること（例えば、ドライバ又は他のリソースを削除又は他の形で除去すること、コンピューティング・デバイス１０２及び／又は周辺デバイス１０８のためのプロパティをクリア又はリセットすること等）を指す、あるいは、周辺デバイス１０８と通信するためにコンピューティング・デバイス１０２により使用される値をクリア又はリセットすることを指す。１以上の実施形態において、異なるデータを有し得る複数のコンピューティング・デバイスの間のコンフリクト（conflict）を管理するために、各コンピューティング・デバイス１０２、１０４、及びサービス１０６は、コンフリクトを解決するために、データが（コンピューティング・デバイス又はサービスにより、あるいは、コンピューティング・デバイス又はサービスの観点から）最後に変更された時間のタイムスタンプ（例えば、日付及び／又は時間）を保持し、どのデータが使用されるべきデータであるか（例えば、データが最後に変更された時間の最も直近のタイムスタンプ）を決定する。
【００２２】
１つのコンピューティング・デバイス１０２、１０４から受信されたデバイス関連付けデータが、デバイス関連付けデータ記憶部１１４に記憶され、他のコンピューティング・デバイス１０２、１０４に提供される。デバイス関連付けデータは、例えば、ユーザが、他のコンピューティング・デバイス１０２、１０４から自分のユーザ・アカウントにログインするときや、定期間隔又は不定期間隔で（例えば、サービス１０６により他のコンピューティング・デバイス１０２、１０４にプッシュされるときや、他のコンピューティング・デバイス１０２、１０４により取得されるとき等）、異なる時間に、且つ／あるいは、異なるイベントに応答して、他のコンピューティング・デバイス１０２、１０４に提供され得る、且つ／あるいは、他のコンピューティング・デバイス１０２、１０４により取得され得る。
【００２３】
したがって、新たな周辺デバイス１０８が、コンピューティング・デバイス１０２に関連付けられたときに、新たな周辺デバイス１０８のためのデバイス関連付けデータが、サービス１０６に送信され、デバイス関連付けデータ記憶部１１４に記憶される。ユーザが、その後に、コンピューティング・デバイス１０４から自分のアカウントにログインしたときに、新たな周辺デバイス１０８のためのデバイス関連付けデータが、サービス１０６からコンピューティング・デバイス１０４に送信され、新たな周辺デバイス１０８が、（破線の接続１２０により示されるように）コンピューティング・デバイス１０４に自動的に関連付けられる。新たな周辺デバイスをコンピューティング・デバイス１０４に自動的に関連付けることができる場合に、新たな周辺デバイスが、コンピューティング・デバイス１０４に自動的に関連付けられることに留意すべきである。新たな周辺デバイスをコンピューティング・デバイス１０４に自動的には関連付けることができない状況が存在し得、そのような場合には、新たな周辺デバイスは、以下でより詳細に説明するように、コンピューティング・デバイス１０４に自動的には関連付けられない。同様に、さらなる周辺デバイスが、コンピューティング・デバイス１０４に関連付けられるべきである場合、さらなる周辺デバイスのためのデバイス関連付けデータが、コンピューティング・デバイス１０２に提供され、さらなる周辺デバイスが、コンピューティング・デバイス１０２に自動的に関連付けられる（さらなる周辺デバイスをコンピューティング・デバイス１０２に自動的に関連付けることができるとみなされる場合）。
【００２４】
図２は、１以上の実施形態に従った、コンピューティング・デバイス間におけるデバイス関連付けデータの同期化を実装する例示的なコンピューティング・デバイス２００を示すブロック図である。コンピューティング・デバイス２００は、例えば、図１のコンピューティング・デバイス１０２又は１０４であり得る。コンピューティング・デバイス２００は、ユーザ入力モジュール２０２、出力モジュール２０４、通信モジュール２０６、デバイス関連付けデータ同期化モジュール２０８、及びデバイス関連付けデータ記憶部２１０を含む。
【００２５】
ユーザ入力モジュール２０２は、コンピューティング・デバイス２００のユーザからユーザ入力を受け取る。ユーザ入力は、例えば、デバイス２００のキーパッド又はキーボードの１以上のキーを押すことによって、デバイス２００のコントローラ（例えば、リモート・コントロール・デバイス、マウス、トラック・パッド等）の１以上のキーを押すことによって、デバイス２００のタッチパッド又はタッチスクリーンの特定の部分を押すことによって、デバイス２００のタッチパッド又はタッチスクリーン上で特定のジェスチャを行うことによって、且つ／あるいは、デバイス２００のコントローラ（例えば、リモート・コントロール・デバイス、マウス、トラック・パッド等）上で特定のジェスチャを行うことによって等、多種多様な態様で提供され得る。ユーザ入力はまた、例えば、デバイス２００の任意の部分をタップすること、デバイス２００の動き検出コンポーネント又は他のコンポーネントにより認識され得るアクション（デバイス２００を振ること、デバイス２００を回転させること、デバイス２００を曲げること等）等、デバイス２００への他の物理的フィードバック入力を介して提供されてもよい。ユーザ入力はまた、マイクロフォンへの音声入力又は他の可聴入力を介してや、画像キャプチャ・デバイスにより観測される手又は体の他の部分の動きを介して等、他の態様で提供されてもよい。
【００２６】
出力モジュール２０４は、表示、再生、及び／又は他の提示のためのコンテンツを生成、管理、及び／又は出力する。このコンテンツは、出力モジュール２０４により作成されてもよいし、コンピューティング・デバイス２００の他のモジュールから取得されてもよい。このコンテンツは、例えば、ユーザ・インタフェース（ＵＩ）の表示部分又は再生部分、入力のためのプロンプト等であり得る。コンテンツは、コンピューティング・デバイス２００のコンポーネント（例えば、スピーカ、インタラクティブ・ディスプレイ・デバイス等）により、表示又は再生され得る。代替的に、出力モジュール２０４は、コンピューティング・デバイス２００から分離されている他のデバイス又はコンポーネント（例えば、スピーカ、ディスプレイ・デバイス等）に出力される１以上の信号を生成してもよい。
【００２７】
通信モジュール２０６は、図１のサービス１０６等のサービスとの通信とともに、図１の周辺デバイス１０８等の周辺デバイスとの通信を管理する。通信の管理とは、コンピューティング・デバイス２００の他のモジュールから取得されたデータをターゲット・デバイスに送信することと、他のデバイスから受信したデータを、コンピューティング・デバイス２００の適切なモジュールに提供することと、を指す。
【００２８】
デバイス関連付けデータ記憶部２１０は、コンピューティング・デバイス２００に手動で関連付けられたデバイスのためのデバイス関連付けデータのコピーに加えて、サービス１０６から受信された、デバイスのためのデバイス関連付けデータのコピーを保持する。サービス１０６から受信された、デバイスのためのデバイス関連付けデータは、コンピューティング・デバイス２００に自動的に関連付けられてもよいし、代替的に、以下でより詳細に説明するように、コンピューティング・デバイス２００に関連付けられることなく、受信されて、デバイス関連付けデータ記憶部２１０に保持されてもよい。
【００２９】
デバイス関連付けデータ同期化モジュール２０８は、サービス１０６へのデバイス関連付けデータの送信を管理する。ユーザがサービス１０６の自分のアカウントにログインしている間に新たな周辺デバイスがコンピューティング・デバイス２００に手動で関連付けられたときに、新たな周辺デバイスのためのデバイス関連付けデータが、デバイス関連付けデータ記憶部２１０に保持され、デバイス関連付けデータ同期化モジュール２０８は、そのデバイス関連付けデータのコピーをサービス１０６に送信する。ユーザがサービス１０６の自分のアカウントにログインしていない間に新たな周辺デバイスがコンピューティング・デバイス２００に手動で関連付けられた場合、デバイス関連付けデータ同期化モジュール２０８は、ユーザが、その後に、コンピューティング・デバイス２００から自分のアカウントにログインしたときに、新たな周辺デバイスのためのデバイス関連付けデータのコピーをサービス１０６に送信することができる。ユーザがサービス１０６の自分のアカウントにログインしていない間に新たな周辺デバイスがコンピューティング・デバイス２００に手動で関連付けられた場合、代替的に、デバイス関連付けデータ同期化モジュール２０８は、新たな周辺デバイスのためのデバイス関連付けデータのコピーをサービス１０６に送信しなくてもよい。
【００３０】
デバイス関連付けデータ同期化モジュール２０８はまた、サービス１０６からのデバイス関連付けデータの受信も管理する。ユーザが、コンピューティング・デバイス２００から、サービス１０６の自分のアカウントにログインしたときに、サービス１０６は、サービス１０６はコピーを有しているがコンピューティング・デバイス２００はコピーを有していない、任意の新たな周辺デバイスのための（例えば、別のコンピューティング・デバイスに手動で関連付けられた周辺デバイスのための）デバイス関連付けデータのコピーを送信する。サービス１０６はまた、サービス１０６から受信された、デバイス関連付けデータに関する他の情報（例えば、タイムスタンプ情報、ユーザ情報等）のコピーを送信することができる。デバイス関連付けデータ同期化モジュール２０８は、サービス１０６から受信されたデバイス関連付けデータのコピーをデバイス関連付けデータ記憶部２１０に保持させる。デバイス関連付けデータ同期化モジュール２０８はまた、コンフリクトを解決するために、及び他の機能を実行するために、サービス１０６から受信された、デバイス関連付けデータに関する情報（例えば、タイムスタンプ情報、ユーザ情報等）を保持する。デバイス関連付けデータ同期化モジュール２０８はまた、以下でより詳細に説明するように、周辺デバイスをコンピューティング・デバイス２００に自動的に関連付けることができるとみなされる場合、コンピューティング・デバイス２００を、そのデバイス関連付けデータに対応する周辺デバイスに自動的に関連付ける。
【００３１】
同様に、デバイス関連付けデータに対する他の変更も、新たな周辺デバイスのためのデバイス関連付けデータの送信と同様、サービス１０６との間で送受信され得る。例えば、周辺デバイスのためのデバイス関連付けデータが変更された場合（例えば、プリント・サーバ名が変更された場合やセキュリティ・データ又は認証データが変更された場合等）、その変更のインジケーションがサービス１０６に送信され得、サービス１０６は、ユーザが他のコンピューティング・デバイスから自分のアカウントにログインしたときに、そのインジケーションを他のコンピューティング・デバイスに送信する。したがって、デバイス関連付けデータにおける変更が、他のコンピューティング・デバイスに対して自動的に同期化される。別の例として、周辺デバイスが、１つのコンピューティング・デバイス上で削除された場合（例えば、アンインストール又は関連付け解除された場合）、その削除のインジケーションがサービス１０６に送信され得、サービス１０６は、ユーザが他のコンピューティング・デバイスから自分のアカウントにログインしたときに、そのインジケーションを他のコンピューティング・デバイスに送信する。したがって、周辺デバイスが、他のコンピューティング・デバイスから自動的に関連付け解除される（例えば、アンインストールされる）。代替的に、削除された周辺デバイスのインジケーションは、サービス１０６に送信されなくてもよく、代わりに、ユーザが、ユーザが望むコンピューティング・デバイス上で周辺デバイスを手動で関連付け解除する。周辺デバイスがコンピューティング・デバイスから関連付け解除された場合であっても、対応するデバイス関連付けデータは、コンピューティング・デバイス上に存在し続けることができる（あるいは、削除されてもよい）ことに留意すべきである。
【００３２】
どのようなデバイス関連付けデータの変更がなされたか（例えば、新たなデバイス関連付けデータ、削除のインジケーション、又は他の変更）、及び、したがって、どのデバイス関連付けデータの変更が他のコンピューティング・デバイスに対して同期化される必要があるかの判別は、様々な方法により実行され得る。その判別を実行するために、サービス１０６及び／又はコンピューティング・デバイス２００を信頼することができる。例えば、コンピューティング・デバイス２００は、どのようなデバイス関連付けデータの変更がなされたかを判別し、なされたデバイス関連付けデータの変更のインジケーションを送信することができる。別の例として、コンピューティング・デバイス２００は、デバイス関連付けデータ記憶部２１０内の実質的に全てのデバイス関連付けデータのレコード（例えば、コンピューティング・デバイス２００のための現在のデバイス関連付けデータのスナップショット）をサービス１０６に送信することができ、サービス１０６は、実質的に全てのデバイス関連付けデータのそのレコードを、サービス１０６により保持されている関連するデバイス関連付けデータのレコードと比較して、どのようなデバイス関連付けデータの変更がなされたかを判別することができる。
【００３３】
さらに別の例として、コンピューティング・デバイス２００は、デバイス関連付けデータ記憶部２１０内の実質的に全てのデバイス関連付けデータのレコード（例えば、コンピューティング・デバイス２００のための現在のデバイス関連付けデータのスナップショット）をサービス１０６に送信することができ、サービス１０６は、このレコードのコピーを保持することができる。次いで、ユーザが、他のコンピューティング・デバイスから自分のユーザ・アカウントにログインしたときに、サービス１０６は、このレコードを他のコンピューティング・デバイスに送信することができ、他のコンピューティング・デバイスは、実質的に全てのデバイス関連付けデータのそのレコードを、デバイス関連付けデータの自身のレコードと比較して、どのようなデバイス関連付けデータの変更がなされたかを判別することができる。代替的に、サービス１０６が、このレコードを他のコンピューティング・デバイスに定期間隔又は不定期間隔でプッシュする、他のコンピューティング・デバイスが、定期間隔又は不定期間隔でそのレコードをリクエストする（例えば、サービス１０６をポーリングする）等、他の時間に、あるいは、他のイベントに応答して、サービス１０６は、このレコードを他のコンピューティング・デバイスに送信してもよい。
【００３４】
図３は、１以上の実施形態に従って、コンピューティング・デバイス間でデバイス関連付けデータを同期化するための例示的なプロセス３００を示すフローチャートである。プロセス３００は、ソフトウェア、ファームウェア、ハードウェア、又はこれらの組合せにより実装することができる。プロセス３００が、３つの列、すなわち、１つのコンピューティング・デバイス（例えば、図１のコンピューティング・デバイス１０２若しくは１０４、又は図２のコンピューティング・デバイス２００）により実行される、左の列に示されるプロセス３００の動作、別のコンピューティング・デバイス（例えば、図１のコンピューティング・デバイス１０２若しくは１０４、又は図２のコンピューティング・デバイス２００）により実行される、右の列に示されるプロセス３００の動作、及びサービス（例えば、図１のサービス１０６）により実行される、真ん中の列に示されるプロセス３００の動作で示されている。プロセス３００は、動作のセットとして示されているが、様々な動作のオペレーションを実行するために、図示される順番に限定されるものではない。プロセス３００は、コンピューティング・デバイス間でデバイス関連付けデータを同期化するための例示的なプロセスである。異なる図を参照する、コンピューティング・デバイス間でデバイス関連付けデータを同期化することについてのさらなる説明が、本明細書に含まれている。
【００３５】
プロセス３００において、デバイス関連付けデータ及び／又はデバイス関連付けデータの変更が、サービスに送信され（動作３０２）、サービスは、デバイス関連付けデータ及び／又はデバイス関連付けデータの変更を受信し（動作３０４）、デバイス関連付けデータ及び／又はデバイス関連付けデータの変更のコピーを保持する（動作３０６）。サービスは、動作３０２においてデバイス関連付けデータがサービスに送信されたときにユーザがログインしていたユーザ・アカウントに関連付けられたものとして、デバイス関連付けデータのコピーを保持する。デバイス関連付けデータの変更の場合、サービスは、以前のデバイス関連付けデータ（変更されているデバイス関連付けデータ）を新たに受信したデバイス関連付けデータで置換することができる。
【００３６】
デバイス関連付けデータ及び／又はデバイス関連付けデータの変更が、サービスにより、コンピューティング・デバイスに送信される（動作３０８）。デバイス関連付けデータ及び／又はデバイス関連付けデータの変更が、送信され、動作３０２においてデバイス関連付けデータ及び／又はデバイス関連付けデータの変更を送信したコンピューティング・デバイスとは異なるコンピューティング・デバイスにより受信され得る（動作３１０）。コンピューティング・デバイスからのデバイス関連付けデータ及び／又はデバイス関連付けデータの変更を求めるリクエストに応答して、動作３０８において、デバイス関連付けデータ及び／又はデバイス関連付けデータの変更が送信されてもよいし、代替的に、サービスにより受信されたデバイス関連付けデータ及び／又はデバイス関連付けデータの変更を求める任意のリクエストとは無関係に、動作３０８において、サービスが、デバイス関連付けデータ及び／又はデバイス関連付けデータの変更をコンピューティング・デバイスにプッシュ又は別の形で提供してもよい。コンピューティング・デバイスは、デバイス関連付けデータ及び／又はデバイス関連付けデータの変更のコピーを保持する（動作３１２）。コンピューティング・デバイスはまた、デバイス関連付けデータにより識別される、コンピューティング・デバイスに自動的に関連付けることができる周辺デバイスをコンピューティング・デバイス自身に自動的に関連付ける、且つ／あるいは、デバイス関連付けデータの変更に従って、デバイス関連付けデータを更新する（動作３１４）。
【００３７】
追加的又は代替的に、デバイス関連付けデータ及び／又はデバイス関連付けデータの変更を受信するリクエストが、動作３０２においてデバイス関連付けデータ及び／又はデバイス関連付けデータの変更を前に送信した同じコンピューティング・デバイスにより、サービスに送信されてもよい（動作３１６）。動作３１６において送信されたリクエストに応答して、サービスは、ユーザ・アカウントに関連付けられたデバイス関連付けデータ及び／又はデバイス関連付けデータの変更を、コンピューティング・デバイスに送信する（動作３０８）。コンピューティング・デバイスは、デバイス関連付けデータ及び／又はデバイス関連付けデータの変更を受信し（動作３１８）、デバイス関連付けデータ及び／又はデバイス関連付けデータの変更のコピーを保持する（動作３２０）。コンピューティング・デバイスはまた、デバイス関連付けデータにより識別される、コンピューティング・デバイスに自動的に関連付けることができる周辺デバイスをコンピューティング・デバイス自身に自動的に関連付ける、且つ／あるいは、デバイス関連付けデータの変更に従って、デバイス関連付けデータを更新する（動作３２２）。代替的に、動作３１６においてリクエストが送信される代わりに、サービスにより受信されたデバイス関連付けデータ及び／又はデバイス関連付けデータの変更を求める任意のリクエストとは無関係に、動作３１８において、サービスが、ユーザ・アカウントに関連付けられたデバイス関連付けデータ及び／又はデバイス関連付けデータの変更をコンピューティング・デバイスにプッシュ又は別の形で提供してもよい。
【００３８】
このようにして、デバイス関連付けデータ及び／又はデバイス関連付けデータの変更が、他のコンピューティング・デバイスに対して同期化され得、周辺デバイスが、他のコンピューティング・デバイスに自動的に関連付けられる。追加的又は代替的に、デバイス関連付けデータは、サービスから、デバイス関連付けデータをサービスに送信したコンピューティング・デバイスに返されてもよい。このように、コンピューティング・デバイスは、自身のデバイス関連付けデータ情報をサービスにバックアップし、その後、デバイス関連付けデータを受信し、周辺デバイスをコンピューティング・デバイスに自動的に再関連付けさせることができる（例えば、コンピューティング・デバイスが、新たなハード・ドライブを有した場合や、オペレーティング・システムがコンピューティング・デバイス上に再インストールされている場合等）。
【００３９】
デバイス関連付けデータは、サービスのユーザ・アカウントに関連付けられており、したがって、デバイス関連付けデータの送受信は、ユーザが自分のユーザ・アカウントにログインしている間に実行されることに留意すべきである。したがって、プロセス３００における異なるコンピューティング・デバイスとの間の送受信は、異なる時間に実行され得る。例えば、ユーザが、１つのコンピューティング・デバイスから自分のユーザ・アカウントにログインしたときに、動作３０２において、デバイス関連付けデータが、サービスに送信され得、ユーザが、その後に、他のコンピューティング・デバイスから自分のユーザ・アカウントにログインしたときに、その後に動作３０８において、デバイス関連付けデータが、サービスから他のコンピューティング・デバイスに送信され得る。プロセス３００は、異なるコンピューティング・デバイスから同時に実行されてもよいことにも留意すべきである。例えば、１つのコンピューティング・デバイスが、デバイス関連付けデータをサービスに送信中であると同時に、別のコンピューティング・デバイスが、サービスからデバイス関連付けデータを受信中であることや、１つのコンピューティング・デバイスが、デバイス関連付けデータをサービスに送信中であると同時に、別のコンピューティング・デバイスが、デバイス関連付けデータをサービスに送信中であること等もある。
【００４０】
例示的なプロセス３００において、デバイス関連付けデータは、サービスにより、コンピューティング・デバイスから受信されるものとして示されている。代替的に、デバイス関連付けデータは、他のソースから受信されてもよい。例えば、１以上の実施形態において、周辺デバイス自体が、その周辺デバイスのためのデバイス関連付けデータをサービスに提供してもよい。例えば、周辺デバイスは、自身のデバイス関連付けをサービスに送信することができるスマートフォンであり得る。したがって、周辺デバイスは、自身のデバイス関連付けデータをサービスに提供することができ、サービスは、ユーザが自分のアカウントにログインしているコンピューティング・デバイスに対してデバイス関連付けデータを同期化し、ユーザが周辺デバイスをコンピューティング・デバイスに手動で関連付けることなく、周辺デバイスが、コンピューティング・デバイスに自動的に関連付けられる。同様に、周辺デバイス（スマートフォン周辺デバイス等）はまた、サービスからデバイス関連付けデータを受信することができる。このデバイス関連付けデータは、特定のユーザが、この周辺デバイスをどのように使用することを望む又は好むかについてのユーザ・プリファレンス・データを含み得、この周辺デバイスは、（例えば、このユーザ・プリファレンス・データに従って、適切な構成値又は他のデバイス設定を設定することにより、）このユーザ・プリファレンス・データを使用することができる。
【００４１】
図４は、１以上の実施形態に従って、周辺デバイスをコンピューティング・デバイスに自動的に関連付けるための例示的なプロセス４００を示すフローチャートである。プロセス４００は、図１のコンピューティング・デバイス１０２若しくは１０４、又は図２のコンピューティング・デバイス２００等のコンピューティング・デバイスにより実行され、プロセス４００は、ソフトウェア、ファームウェア、ハードウェア、又はこれらの組合せにより実装することができる。プロセス４００は、動作のセットとして示されているが、様々な動作のオペレーションを実行するために、図示される順番に限定されるものではない。プロセス４００は、周辺デバイスをコンピューティング・デバイスに自動的に関連付けるための例示的なプロセスである。異なる図を参照する、周辺デバイスをコンピューティング・デバイスに自動的に関連付けることについてのさらなる説明が、本明細書に含まれる。
【００４２】
プロセス４００において、プロセス４００を実施するコンピューティング・デバイスから、ユーザ・アカウントにログインする（動作４０２）。ユーザ・アカウントに関連付けられた１以上の周辺デバイスの各々のためのデバイス関連付けデータが受信される（動作４０４）。受信されたデバイス関連付けデータは、受信されたデバイス関連付けデータの実質的に全てであるものや、他のコンピューティング・デバイスによりインストールされた新たな周辺デバイスのためのデバイス関連付けデータ等、異なる形態をとり得る。デバイス関連付けデータは、例えば、ユーザ・アカウントにログインした直後、ユーザ・アカウントにログインした後しばらく経過してから（例えば、閾時間量が経過した後、他のデータの閾量又はより高い優先度のデータがサービスから受信された後等）、他のイベント（例えば、サービスに記憶されているデバイス関連付けデータに対する変更）に基づいて等、様々な時間に受信され得る。
【００４３】
受信されたデバイス関連付けデータのコピーが、コンピューティング・デバイス上で保持される（動作４０６）。さらに、受信されたデバイス関連付けデータに対応する１以上の周辺デバイスの中から、コンピューティング・デバイスにまだ関連付けられていないがコンピューティング・デバイスに関連付けることができる１以上の周辺デバイスが、判別される（動作４０８）。動作４０８においてコンピューティング・デバイスに現在は関連付けられていないがコンピューティング・デバイスに関連付けることができるものとして判別された１以上の周辺デバイスが、コンピューティング・デバイスに自動的に関連付けられる（動作４１０）。周辺デバイスをコンピューティング・デバイスに自動的に関連付けることにより、周辺デバイスは、その後、コンピューティング・デバイスに手動で関連付けられたかのように（例えば、コンピューティング・デバイス上に手動でインストールされたかのように）、コンピューティング・デバイスによりアクセスされ得るが、ユーザは、周辺デバイスをコンピューティング・デバイスに手動で関連付ける必要はない（例えば、周辺デバイスを手動でインストールする必要はない）。
【００４４】
どの周辺デバイスがコンピューティング・デバイスにすでに関連付けられているかの判別は、例えば、デバイス関連付けデータに含まれる周辺デバイスの識別子を、コンピューティング・デバイスにすでに関連付けられている周辺デバイスの識別子と比較することによって、サーバから受信された全てのデバイス関連付けデータが、コンピューティング・デバイスにまだ関連付けられていない周辺デバイス用である（したがって、受信されたデバイス関連付けデータに対応する周辺デバイスの全てが、コンピューティング・デバイスにまだ関連付けられていない）とみなすことによって等、多種多様な方法により判別され得る。
【００４５】
どの周辺デバイスをコンピューティング・デバイスに自動的に関連付けることができるかの判別もまた、様々な方法により判別され得る。１以上の実施形態において、コンピューティング・デバイスに自動的には関連付けることができない周辺デバイスを識別するための様々なルール（又は、他の基準）が適用される。そのようなルールは、コンピューティング・デバイス上に存在する、コンピューティング・デバイスがサービスから受信するデバイス関連付けデータの一部として記憶される等、様々な位置に存在し得る。したがって、周辺デバイスがコンピューティング・デバイスに自動的に関連付けられるべきではないと１以上のルールが示す場合を除いて、周辺デバイスは、コンピューティング・デバイスに自動的に関連付けることができる。
【００４６】
周辺デバイスがコンピューティング・デバイスに自動的に関連付けられるべきではない場合にも、周辺デバイスのためのデバイス関連付けデータをなお使用して、周辺デバイスをコンピューティング・デバイスに手動で関連付ける際、周辺デバイスのディスカバリ及び／又は周辺デバイスの関連付けを容易にすることができることに留意すべきである。例えば、周辺デバイスは、デバイス関連付けデータ内に存在するセキュリティ・コード又は他の情報を有することができ、ユーザが周辺デバイスを手動でインストールすることにより周辺デバイスに接続することを選択した場合、ユーザは、そのような情報を再度入力又は他の形で提供する必要がない。別の例として、周辺デバイスの存在が、例えば、周辺デバイスが存在はするがコンピューティング・デバイスに関連付けられていないことを示すために異なる形式で（例えば、異なる色で、影付きで、あるいは、より明るく、等）、周辺デバイス選択画面又は他の構成画面上に表示され得る。
【００４７】
コンピューティング・デバイスに自動的には関連付けることができない周辺デバイスを識別するためのルールは、周辺デバイス・ドライバ利用可能性ルール（peripheral  device  driver  availability  rule）を含み得る。周辺デバイス・ドライバとは、周辺デバイスと通信するためにコンピューティング・デバイスにより使用されるソフトウェア（及び／又はファームウェア）並びにデータを指す。１以上の実施形態において、周辺デバイスに対応するデバイス関連付けデータを受信するコンピューティング・デバイスは、周辺デバイス・ドライバをインストールできないことがある、すなわち、その周辺デバイスのためのドライバをインストールできないことがある。そのような実施形態において、周辺デバイスをコンピューティング・デバイスに関連付けることができないとの判定がなされる。
【００４８】
さらに、いくつかの周辺デバイス・ドライバは、例えば、例えばネットワークを介して（例えば、別のデバイス又はサービスといった）ソースから、磁気ディスク又は光ディスクから、フラッシュ・ドライブ又は他のソリッド・ステート・ドライブから、コンピューティング・デバイス自体の別の位置から、ダウンロードされる。このような周辺デバイス・ドライバは、検証されたものとしてデジタル署名されていることもあるし、検証されたソースから取得されることもあるし、他の形で検証可能であることもある。１以上の実施形態において、周辺デバイス・ドライバが検証されなかった場合（例えば、コンピューティング・デバイスにより信頼される機関によってデジタル署名されていない場合や検証されたソースからのものではない場合等）、コンピューティング・デバイス上に周辺デバイス・ドライバをインストールすることができないとの判定がなされる。しかしながら、任意的に、取得された周辺デバイス・ドライバを用いて周辺デバイスのインストールを許可するよう、ユーザを促してもよい。「はい（イエス）」又は「インストール」オプションの選択等、周辺デバイスのインストールを許可する様々なユーザ入力が受信され得る。周辺デバイスのインストールを許可するとユーザ入力が示す場合、周辺デバイスは、コンピューティング・デバイスに自動的に関連付けられるかのように、コンピューティング・デバイスに関連付けられる（ユーザは、周辺デバイスをコンピューティング・デバイスに手動で関連付けているかのような、周辺デバイスをコンピューティング・デバイスに関連付けるためのさらなるアクションをとる必要がない）。
【００４９】
さらに、いくつかの周辺デバイス・ドライバは、バージョン番号により識別され得る異なるモデル（例えば、ドライバにより使用されるプロトコル又はフォーマット）を用いて設計される。周辺デバイスは、これらのモデルの異なるモデルを用いるドライバを有することがある。１以上の実施形態において、周辺デバイス・ドライバが特定のモデルでない場合、周辺デバイス・ドライバがドライバ・モデルの少なくとも特定のバージョンでない場合等、コンピューティング・デバイス上に周辺デバイス・ドライバをインストールすることができないとの判定がなされる。しかしながら、取得された周辺デバイス・ドライバが特定のモデルではない、取得された周辺デバイス・ドライバがドライバ・モデルの少なくとも特定のバージョンではない等としても、任意的に、取得された周辺デバイス・ドライバを用いて周辺デバイスのインストールを許可するよう、ユーザを促してもよい。「はい（イエス）」又は「インストール」オプションの選択等、周辺デバイスのインストールを許可する様々なユーザ入力が受信され得る。周辺デバイスのインストールを許可するとユーザ入力が示す場合、周辺デバイスは、コンピューティング・デバイスに自動的に関連付けられるかのように、コンピューティング・デバイスに関連付けられる（ユーザは、周辺デバイスをコンピューティング・デバイスに手動で関連付けているかのような、周辺デバイスをコンピューティング・デバイスに関連付けるためのさらなるアクションをとる必要がない）。
【００５０】
コンピューティング・デバイスに自動的には関連付けることができない周辺デバイスを識別するためのルールは、指定デバイス・ルール（specified  device  rule）を含み得る。いくつかの周辺デバイスは、個々のコンピューティング・デバイスに固有の方法で、コンピューティング・デバイスに関連付けることができ、デバイス関連付けデータは、その固有の方法を含む。例えば、周辺デバイス（例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）デバイス）は、コンピューティング・デバイス上にインストールすることができ、その周辺デバイスがインストールされるコンピューティング・デバイスのＭＡＣアドレスを含むデバイス関連付けデータを有することができる。１以上の実施形態において、デバイス関連付けデータが、特定のコンピューティング・デバイスを指定するデータを含むかどうかについて、チェックがなされる。デバイス関連付けデータを受信したコンピューティング・デバイスが、そのデバイス関連付けデータにより指定されたコンピューティング・デバイスである場合、周辺デバイスをそのコンピューティング・デバイスに自動的に関連付けることができる。しかしながら、デバイス関連付けデータを受信したコンピューティング・デバイスが、そのデバイス関連付けデータにより指定されたコンピューティング・デバイスではない場合、周辺デバイスは、そのコンピューティング・デバイスに自動的には関連付けることができない。したがって、そのような周辺デバイスは、デバイス関連付けデータが元々送信されたコンピューティング・デバイス（例えば、デバイス関連付けデータをバックアップしている）に自動的に再関連付けられ得るが、他のコンピューティング・デバイスには自動的には関連付けられない。
【００５１】
コンピューティング・デバイスに自動的には関連付けることができない周辺デバイスを識別するためのルールは、ドメイン・ルール又はネットワーク・ルールを含み得る。様々な周辺デバイスが、特定のコンピューティング・デバイス（例えば、ネットワークへのアクセスを有するコンピューティング・デバイス、同じドメインの一部であるコンピューティング・デバイス等）にのみアクセス可能な特定のネットワーク又はドメイン上に配置され得る。１以上の実施形態において、周辺デバイスが、デバイス関連付けデータを受信したコンピューティング・デバイスが現在アクセスしていないドメインの一部である、あるいは、周辺デバイスが、デバイス関連付けデータを受信したコンピューティング・デバイスが現在アクセスしていないネットワーク上に配置されている、とデバイス関連付けデータが示すかどうかについて、チェックがなされる。周辺デバイスが、コンピューティング・デバイスが現在アクセスしていないドメインの一部であるかどうか、又は、周辺デバイスが、コンピューティング・デバイスが現在アクセスしていないネットワーク上に配置されているかどうかは、例えば、周辺デバイスが存在するドメイン又はネットワーク（デバイス関連付けデータにおいて識別される）を、コンピューティング・デバイスが現在存在するレコード（例えば、コンピューティング・デバイスのオペレーシング・システムにより保持される）と比較して、それらが同じであるかどうかを判定することによって、周辺デバイスへのアクセスを試行して、その試行が成功したかどうかをチェックすることによって等、様々な方法で判定することができる。周辺デバイスが、コンピューティング・デバイスが現在アクセスしていないドメインの一部である場合、又は、周辺デバイスが、コンピューティング・デバイスが現在アクセスしていないネットワーク上に配置されている場合、周辺デバイスをコンピューティング・デバイスに自動的には関連付けることができないとの判定がなされる。
【００５２】
周辺デバイスをコンピューティング・デバイスに自動的には関連付けることができないとの判定がなされる場合、この判定は、周辺デバイスに現在アクセス不可能であることに起因してなされることがある。したがって、そのような周辺デバイスは、コンピューティング・デバイスに関連付けることはできるがコンピューティング・デバイスに自動的には関連付けることができないものと呼ばれ得る。コンピューティング・デバイスが、後に、周辺デバイスが配置されているドメイン又はネットワークにアクセスできるようになり、したがって、周辺デバイスが、コンピューティング・デバイスに関連付けられるようになることをコンピューティング・システムに示すために、そのような周辺デバイス又はデバイス関連付けデータが、マークされる、あるいは、そのような周辺デバイス又はデバイス関連付けデータのレコードが作成される。例えば、コンピューティング・デバイスは、プロセス４００が実行される際にユーザが自宅で起動させているラップトップ・コンピュータであり得、したがって、コンピューティング・デバイスは、ユーザの職場ドメイン又は職場ネットワークにアクセスしないが、後に職場に持ち込まれ、周辺デバイスが配置されている職場ドメイン又は職場ネットワークに参加することがある。そのような状況において、周辺デバイスが、後の時間に（例えば、ユーザが、自分のコンピューティング・デバイスを職場に持ち込んで、コンピューティング・デバイスが、周辺デバイスが配置されている職場ドメイン又は職場ネットワークに参加したことを、コンピューティング・デバイスが検出したときに）、コンピューティング・デバイスに自動的に関連付けられてもよいし、周辺デバイスをコンピューティング・デバイスに自動的に関連付ける能力を再チェックすることをユーザが望むかどうかを示すよう、後の時間にユーザを促してもよい。図２のデバイス関連付けデータ同期化モジュール２０８は、定期間隔又は不定期間隔で、あるいは、特定のイベント（例えば、コンピューティング・デバイスが特定のドメインに参加すること等）に応答して、周辺デバイスが、コンピューティング・デバイスが現在アクセスしていないドメインの一部であるかどうか、又は、周辺デバイスが、コンピューティング・デバイスが現在アクセスしていないネットワーク上に配置されているかどうかをチェックすることできる。
【００５３】
コンピューティング・デバイスに自動的には関連付けることができない周辺デバイスを識別するためのルールは、関連付け理由ルール（association  reason  rule）を含み得る。いくつかの状況において、周辺デバイスは、管理者アクション又はグループ・ポリシ設定等の特定の理由のために、コンピューティング・デバイスに関連付けられることがある。１以上の実施形態において、管理者からのコマンドに応答して、あるいは、グループ・ポリシ設定を理由として、周辺デバイスがコンピューティング・デバイスに関連付けられたときに、そのコマンドを理由として周辺デバイスがコンピューティング・デバイスに関連付けられたことに対応するレコードが、デバイス関連付けデータ内に作成される。周辺デバイスが、管理者からのそのようなコマンドを理由として、あるいは、グループ・ポリシ設定を理由として、コンピューティング・デバイスに関連付けられたことをデバイス関連付けデータが示すかどうかについて、デバイス関連付けデータを受信したコンピューティング・デバイスにより、チェックがなされる。周辺デバイスが、管理者からのそのようなコマンドを理由として、あるいは、グループ・ポリシ設定を理由として、コンピューティング・デバイスに関連付けられた場合、周辺デバイスは、デバイス関連付けデータを受信したコンピューティング・デバイスに自動的には関連付けることができないとの判定がなされる。
【００５４】
コンピューティング・デバイスに自動的には関連付けることができない周辺デバイスを識別するためのルールは、認証ルールを含み得る。いくつかの状況においては、所定の認証情報、ＰＩＮ等が、デバイス関連付けデータに含まれない。そうではなく、そのようなデバイス関連付けデータに対応する周辺デバイスが関連付けられている各コンピューティング・デバイスにおいて、ユーザ入力が受信される。１以上の実施形態において、周辺デバイスをコンピューティング・デバイスに関連付けるために使用される所定のデータ（クレデンシャル、ＰＩＮ等）が、対応するデバイス関連付けデータから欠落しているかどうかについて、デバイス関連付けデータを受信したコンピューティング・デバイスにより、チェックがなされる。周辺デバイスをコンピューティング・デバイスに関連付けるために使用される所定のデータが、対応するデバイス関連付けデータに含まれていない場合、周辺デバイスは、コンピューティング・デバイスに自動的には関連付けることができないとの判定がなされる。
【００５５】
しかしながら、任意的に、デバイス関連付けデータから欠落している所定のデータを提供するよう、ユーザを促してもよい。キーボード上でＰＩＮ又は認証コードを入力することや、ユーザに関連付けられたデジタル証明書を提供すること等、所定のデータを提供する様々なユーザ入力が受信され得る。欠落しているデータを提供するユーザ入力に応答して、周辺デバイスは、コンピューティング・デバイスに自動的に関連付けられるかのように、コンピューティング・デバイスに関連付けられる（ユーザは、周辺デバイスを手動でインストールしているかのような、周辺デバイスをコンピューティング・デバイスに関連付けるためのさらなるアクションをとる必要がない）。
【００５６】
コンピューティング・デバイスに自動的には関連付けることができない周辺デバイスを識別するためのルールの説明において、ユーザに入力を促すこと（例えば、ドライバをインストールする許可、ＰＩＮ又はクレデンシャル等）について言及されている。この促しは、例えば、周辺デバイスをコンピューティング・デバイスに自動的には関連付けることができないとの判定がなされたときや、周辺デバイス管理画面又は周辺デバイス構成画面上での周辺デバイスのユーザ選択に応答して等、様々な時間に行われ得る。
【００５７】
さらに、周辺デバイスがコンピューティング・デバイスに自動的に関連付けられなかった場合、周辺デバイスがコンピューティング・デバイスに自動的に関連付けられなかった理由（例えば、コンピューティング・デバイス上に周辺デバイス・ドライバをインストールすることができない、コンピューティング・デバイスは適切なＭＡＣアドレスを有していない等）についてのインジケーションが、ユーザへのフィードバックを提供するために、表示又は別の形で提示され得ることに留意すべきである。この促しは、例えば、周辺デバイスをコンピューティング・デバイスに自動的には関連付けることができないとの判定がなされたときや、周辺デバイス管理画面又は周辺デバイス構成画面上での周辺デバイスのユーザ選択に応答して等、様々な時間に行われ得る。
【００５８】
プロセス４００の例示される例において、デバイス関連付けデータに対応する周辺デバイスが、動作４１０において、コンピューティング・デバイスに自動的に関連付けられたかどうかにかかわらず、受信されたデバイス関連付けデータのコピーが、コンピューティング・デバイス上で保持される。代替的に、周辺デバイスに対応するデバイス関連付けデータのコピーは、例えば、デバイス関連付けデータに対応する周辺デバイスが、コンピューティング・デバイスに関連付けられている、デバイス関連付けデータが、コンピューティング・デバイスに関連付けることはできるがコンピューティング・デバイスに自動的には関連付けることができないものとしてマークされている等の所定の状況下でのみ、コンピューティング・デバイス上で保持されてもよい。
【００５９】
図５は、１以上の実施形態に従った、本明細書で説明した技術を実装するための例示的なモデル５００を示すブロック図である。モデル５００を使用して、例えば、図２のデバイス関連付けデータ同期化モジュールを実装することができる。モデル５００は、包括的同期化フレームワーク５０２、デバイス同期化ハンドラ５０４、デバイス関連付けフレームワーク５０８、及びデバイス関連付けデータ記憶部５１０を含む。
【００６０】
デバイス関連付けフレームワーク５０８は、特定の周辺デバイス・プロトコル（例えば、プリンタ、Ｂｌｕｅｔｏｏｔｈ（登録商標）デバイス、ウェブ・サービス・プロバイダ等）のためのデバイス関連付けデータを管理し、デバイス関連付けデータは、デバイス関連付けデータ記憶部５１０（図２のデバイス関連付けデータ記憶部２１０であり得る）に保持される。デバイス関連付けフレームワーク５０８は、デバイス関連付けフレームワーク５０８がデバイス同期化ハンドラ５０４からデバイス関連付けデータを受信することを可能にするインタフェースであるインポート・メソッド（import  method）５１２と、デバイス関連付けフレームワーク５０８がデバイス同期化ハンドラ５０４にデバイス関連付けデータを送信することを可能にするインタフェースであるエクスポート・メソッド（export  method）５１４と、を提供する。デバイス関連付けフレームワーク５０８は、異なる周辺デバイス・プロトコルのためのデバイス関連付けデータを管理するための１以上のモジュールを含み得る。
【００６１】
１以上の実施形態において、ユーザ・アカウントのためのデバイス関連付けデータのセットをサービス１０６に追加するために、包括的同期化フレームワーク５０２は、デバイス同期化ハンドラ５０４を呼び出し、同期化すべきデバイス関連付けデータを列挙する（enumerate）ようデバイス同期化ハンドラ５０４に要求する。デバイス同期化ハンドラ５０４は、デバイス関連付けフレームワーク５０８への呼び出しを行い、デバイス関連付けフレームワーク５０８が有しているデバイス関連付けデータの集合をエクスポートするようデバイス関連付けフレームワーク５０８にリクエストする。デバイス関連付けフレームワーク５０８は、デバイス関連付けデータを取得するために、デバイス関連付けデータ記憶部５１０からデバイス関連付けデータを読み出し、読み出したデバイス関連付けデータをデバイス同期化ハンドラ５０４に提供する。デバイス同期化ハンドラ５０４は、受信したデバイス関連付けデータを、同期化データのコンテナに配して、そのコンテナを包括的同期化フレームワーク５０２に返す。包括的同期化フレームワーク５０２は、同期化データの集合をサービス１０６に提供する。
【００６２】
１以上の実施形態において、コンピューティング・デバイス上のデバイス関連付けデータに対してなされた変更をサービス１０６に提供するために、デバイス同期化ハンドラ５０４は、デバイス関連付けデータ記憶部５１０に対して直接、変更イベントを登録する。代替的に、デバイス同期化ハンドラ５０４は、例えば、デバイス関連付けフレームワーク５０８により公開されているアプリケーション・プログラミング・インタフェース（ＡＰＩ）メソッドを呼び出すことによって等、他の方法で変更を受信するよう示してもよい。デバイス関連付けデータ記憶部５１０における変更に応答して、デバイス同期化ハンドラ５０４に通知され、デバイス同期化ハンドラ５０４は、デバイス関連付けフレームワーク５０８からのデバイス関連付けデータの現在のセットを列挙する。この列挙により、デバイス同期化ハンドラ５０４は、元のデバイス関連付けデータ記憶部５１０の詳細を理解する必要なく、デバイス関連付けデータ記憶部５１０においてどのような変更がなされたかについての詳細を得ることが可能になる。デバイス関連付けフレームワーク５０８は、デバイス関連付けデータを取得するために、デバイス関連付けデータ記憶部５１０からデバイス関連付けデータを読み出し、（例えば、デバイス関連付けデータ・オブジェクトとして）デバイス関連付けデータをデバイス同期化ハンドラ５０４に返し、デバイス同期化ハンドラ５０４は、受信したデバイス関連付けデータを含む同期化設定のコンテナを生成し、そのコンテナを包括的同期化フレームワーク５０２に渡す。包括的同期化フレームワーク５０２は、同期化データの集合をサービス１０６に提供する。
【００６３】
１以上の実施形態において、サービス１０６から受信されたデバイス関連付けデータに対してなされた変更を記録するために、サービス１０６は、デバイス関連付けデータに対する変更について、包括的同期化フレームワーク５０２に通知し、実質的に全ての同期化設定の新たな集合を包括的同期化フレームワーク５０２に提供する。包括的同期化フレームワーク５０２は、この集合を解析し、次いで、サービス１０６から受信されたデバイス関連付けデータを処理するようデバイス同期化ハンドラ５０４を呼び出す。デバイス同期化ハンドラ５０４は、現在のローカル・デバイス関連付けデータとサービス１０６から受信されたデバイス関連付けデータとの間の差異を判別できるように、デバイス関連付けデータの既存のセットを列挙する。デバイス同期化ハンドラ５０４は、現在のローカル・デバイス関連付けデータとサービス１０６から受信されたデバイス関連付けデータとの間の差異を用いて、デバイス関連付けフレームワーク５０８を呼び出す。デバイス関連付けフレームワーク５０８は、デバイス関連付けデータ記憶部５１０から、対応するデバイス関連付けデータを取得する。デバイス関連付けデータ記憶部５１０から取得されたデバイス関連付けデータのセットが、デバイス同期化ハンドラ５０４にバックアップするために渡される。デバイス同期化ハンドラ５０４は、変更されたデバイス関連付けデータのセットが、デバイス同期化ハンドラ５０４が管理しているデバイス関連付けデータのセットに影響を及ぼすかどうかを判定する。すなわち、デバイス関連付けデータが同じに保たれているが、他の同期化データが変更された場合には、デバイス同期化ハンドラ５０４が管理しているローカルの状態に対する変更はない。周辺デバイスが追加された場合、デバイス同期化ハンドラ５０４は、デバイス関連付けデータを追加するためのインポート・コマンドを用いて、デバイス関連付けフレームワーク５０８を呼び出し、デバイス関連付けフレームワーク５０８は、デバイス関連付けデータをデバイス関連付けデータ記憶部５１０に追加する。周辺デバイスが除去された場合、デバイス同期化ハンドラ５０４は、関連付け解除コマンド又は除去コマンドを用いて、デバイス関連付けフレームワーク５０８を呼び出し、デバイス関連付けフレームワーク５０８は、デバイス関連付けデータをデバイス関連付けデータ記憶部５１０から削除する。デバイス関連付けデータがデバイス関連付けデータ記憶部５１０に追加された結果、又はデバイス関連付けデータがデバイス関連付けデータ記憶部５１０から削除された結果、コンピューティング・デバイスは、周辺デバイスに関連付けられる、又は周辺デバイスから関連付け解除される。
【００６４】
本明細書で説明した技術は、様々な使用シナリオを提供する。例えば、ユーザは、自分の複数のコンピューティング・デバイスのうちの１つのコンピューティング・デバイス上に、使用することを好む周辺デバイスをインストールして、そのような周辺デバイスを、他の全てのコンピューティング・デバイス上に自動的にインストールさせることができる。別の例として、ユーザは、新たなスマートフォンを購入して、スマートフォンにそのデバイス関連付けデータをサービスに送信させることができる。次いで、ユーザの新たなスマートフォンは、ユーザが、ユーザのいずれのコンピューティング・デバイス上にスマートフォンを手動でインストールする必要なく、ユーザの全てのコンピューティング・デバイス上に自動的にインストールされる。
【００６５】
本明細書で説明した技術に対して様々な他の変更がなされ得る。１以上の実施形態において、コンピューティング・デバイス上にインストールされた周辺デバイスのためのデバイス関連付けデータは、上述したように、ユーザが自分のアカウントにログインする様々な他のコンピューティング・デバイスに対して自動的に同期化される。代替的に、ユーザが特定の周辺デバイスをユーザの他のコンピューティング・デバイスに対して同期化させたいかどうかについて、（例えば、インストール・プロセスの一部として）ユーザを促してもよく、その特定の周辺デバイスは同期化されるべきであると示すユーザ入力のみに応答して、その特定の周辺デバイスのためのデバイス関連付けデータが、サービス及び他のコンピューティング・デバイスに送信される。
【００６６】
本明細書において、特定のモジュールを参照して特定の機能について説明したが、本明細書で説明した個々のモジュールの機能は、複数のモジュールに分割されてもよいし、且つ／あるいは、複数のモジュールの少なくともいくつかの機能は、１つのモジュールに結合されてもよいことに留意すべきである。様々なモジュールにより実行される様々なアクションが、本明細書で説明されている。アクションを実行するものとして本明細書で説明した特定のモジュールは、そのアクションを実行するその特定のモジュール自体を含んでもよいし、代替的に、そのアクションを実行する（あるいは、そのアクションをその特定のモジュールと協働して実行する）別のコンポーネント又はモジュールを呼び出す、あるいはそのような別のコンポーネント又はモジュールに別の形でアクセスするその特定のモジュールを含んでもよい。したがって、アクションを実行する特定のモジュールは、そのアクションを実行するその特定のモジュール自体、及び／又は、その特定のモジュールにより呼び出される、あるいは別の形でアクセスされる、そのアクションを実行する別のモジュールを含む。
【００６７】
図６は、本明細書で説明した様々な技術を実装することができる１以上のシステム及び／又はデバイスを表す例示的なコンピューティング・デバイス６０２を含む例示的なシステムを、一般に６００で示している。コンピューティング・デバイス６０２は、例えば、サービス・プロバイダのサーバ、クライアントに関連付けられたデバイス（例えば、クライアント・デバイス）、オンチップ・システム、及び／又は、任意の他の適切なコンピューティング・デバイス若しくはコンピューティング・システムとすることができる。
【００６８】
図示される例示的なコンピューティング・デバイス６０２は、処理システム６０４、１以上のコンピュータ読み取り可能な媒体６０６、及び、互いに通信可能に接続される１以上のＩ／Ｏインタフェース６０８を含む。図示されていないが、コンピューティング・デバイス６０２は、様々なコンポーネントを互いに接続するシステム・バス又は他のデータ・コマンド転送システムをさらに含み得る。システム・バスは、メモリ・バス若しくはメモリ・コントローラ、周辺バス、ユニバーサル・シリアル・バス、及び／又は、多様なバス・アーキテクチャのいずれかを利用するプロセッサ・バス若しくはローカル・バス等の様々なバス構造のいずれか１つ又は組合せを含み得る。制御線及びデータ線等の様々な他の例も意図されている。
【００６９】
処理システム６０４は、ハードウェアを用いて１以上のオペレーションを実行する機能を表す。したがって、処理システム６０４は、プロセッサ、機能ブロック等として構成することができるハードウェア要素６１０を含むものとして図示されている。これは、特定用途向け集積回路や、１以上の半導体を用いて形成される他のロジック・デバイス等としての、ハードウェアによる実装を含み得る。ハードウェア要素６１０は、処理要素６１０が形成される材料又は本明細書で用いられた処理メカニズムにより限定されるものではない。例えば、プロセッサは、１以上の半導体及び／又はトランジスタ（例えば、電子集積回路（ＩＣ））を含んでもよい。そのようなコンテキストにおいて、プロセッサ実行可能な命令は、電子的に実行可能な命令であり得る。
【００７０】
コンピュータ読み取り可能な媒体６０６は、メモリ／ストレージ６１２を含むものとして図示されている。メモリ／ストレージ６１２は、１以上のコンピュータ読み取り可能な媒体に関連付けられたメモリ／ストレージ能力を表す。メモリ／ストレージ６１２は、揮発性媒体（ランダム・アクセス・メモリ（ＲＡＭ）等）及び／又は不揮発性媒体（読み取り専用メモリ（ＲＯＭ）、フラッシュ・メモリ、光ディスク、磁気ディスク等）を含み得る。メモリ／ストレージ６１２は、固定媒体（例えば、ＲＡＭ、ＲＯＭ、固定ハード・ドライブ等）に加えて、取り外し可能な媒体（例えば、フラッシュ・メモリ、取り外し可能なハード・ドライブ、光ディスク等）も含み得る。コンピュータ読み取り可能な媒体６０６は、以下でさらに説明するように、多様な他の態様で構成されてもよい。
【００７１】
１以上の入力／出力インタフェース６０８は、ユーザが、コマンド及び情報をコンピューティング・デバイス６０２に入力することを可能にするとともに、様々な入力／出力デバイスを用いて情報をユーザ及び／又は他のコンポーネント若しくはデバイスに提示することを可能にする機能を表す。入力デバイスの例は、キーボード、カーソル・コントロール・デバイス（例えば、マウス）、（例えば、音声入力のための）マイクロフォン、スキャナ、タッチ機能（例えば、物理的タッチを検出するよう構成されている静電容量式センサ又は他のセンサ）、カメラ（例えば、タッチを含まない動きをジェスチャとして検出するために、赤外線周波数等の、可視波長又は非可視波長を利用することができるカメラ）等を含む。出力デバイスの例は、ディスプレイ・デバイス（例えば、モニタ又はプロジェクタ）、スピーカ、プリンタ、ネットワーク・カード、触覚応答デバイス等を含む。したがって、コンピューティング・デバイス６０２は、ユーザ・インタラクションをサポートするために、以下でさらに説明するように、多様な態様で構成することができる。
【００７２】
コンピューティング・デバイス６０２はまた、データ同期化システム６１４を含む。データ同期化システム６１４は、上述したデバイス関連付けデータを同期化するための様々な機能を提供する。データ同期化システム６１４は、例えば、図１のデータ同期化モジュール１１２又は図２のデバイス関連付けデータ同期化モジュール２０８を実装することができる。
【００７３】
本明細書において、様々な技術が、ソフトウェア要素、ハードウェア要素、又はプログラム・モジュールの一般的なコンテキストにおいて説明され得る。一般に、そのようなモジュールは、特定のタスクを実行する、あるいは特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、要素、コンポーネント、データ構造等を含む。本明細書で使用される用語「モジュール」、用語「機能」、及び用語「コンポーネント」は、一般に、ソフトウェア、ファームウェア、ハードウェア、又はこれらの組合せを表す。本明細書で説明した技術の特徴は、プラットフォーム非依存であり、これは、本明細書で説明した技術が、多様なプロセッサを有する多様なコンピューティング・プラットフォーム上で実装され得ることを意味する。
【００７４】
説明したモジュール及び技術の実装物は、何らかの形態のコンピュータ読み取り可能な媒体に記憶されてもよいし、そのような媒体を介して伝送されてもよい。コンピュータ読み取り可能な媒体は、コンピューティング・デバイス６０２がアクセスできる多様な媒体を含み得る。限定ではなく、例として、コンピュータ読み取り可能な媒体は、「コンピュータ読み取り可能な記憶媒体」及び「コンピュータ読み取り可能な信号媒体」を含み得る。
【００７５】
「コンピュータ読み取り可能な記憶媒体」とは、情報の永続的記憶を可能にする媒体及び／若しくはデバイス、並びに／又は、有体のストレージを指し、単なる信号伝送、搬送波、又は信号自体を指すものではない。したがって、コンピュータ読み取り可能な記憶媒体とは、非信号搬送媒体を指す。コンピュータ読み取り可能な記憶媒体は、コンピュータ読み取り可能な命令、データ構造、プログラム・モジュール、ロジック要素／回路、又は他のデータ等の情報を記憶するのに適した方法又は技術により実装された、揮発性及び不揮発性の取り外し可能及び取り外し不可能な媒体及び／又は記憶デバイス等のハードウェアを含む。コンピュータ読み取り可能な記憶媒体の例は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリ、若しくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、若しくは他の光ストレージ、ハード・ディスク、磁気カセット、磁気テープ、磁気ディスク・ストレージ、若しくは他の磁気記憶デバイス、又は、所望の情報を記憶するのに適した、コンピュータがアクセスできる他の記憶デバイス、有体の媒体、若しくは製品を含み得るが、これらに限定されるものではない。
【００７６】
「コンピュータ読み取り可能な信号媒体」とは、ネットワークを介して等、命令をコンピューティング・デバイス６０２のハードウェアに伝送するよう構成されている信号搬送媒体を指す。信号媒体は、通常、コンピュータ読み取り可能な命令、データ構造、プログラム・モジュール、又は他のデータを、搬送波、データ信号、又は他の搬送メカニズム等の変調されたデータ信号内に具現化し得る。信号媒体はまた、任意の情報配信媒体を含む。用語「変調されたデータ信号」とは、信号内の情報を符号化するように設定又は変更された特性セットのうちの１以上の特性を有する信号を意味する。限定ではなく、例として、通信媒体は、有線ネットワーク又は直接配線接続等の有線媒体と、音響、ＲＦ、赤外線、及び他の無線媒体等の無線媒体と、を含む。
【００７７】
前述したように、ハードウェア要素６１０及びコンピュータ読み取り可能な媒体６０６は、本明細書で説明した技術の少なくともいくつかの態様を実装するためにいくつかの実施形態において使用できるハードウェア形態で実装された、命令、モジュール、プログラマブル・デバイス・ロジック、及び／又は固定デバイス・ロジックを表す。ハードウェア要素は、集積回路又はオンチップ・システム、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、コンプレックス・プログラマブル・ロジック・デバイス（ＣＰＬＤ）、及びシリコンによる他の実装物のコンポーネント、又は他のハードウェア・デバイスを含み得る。このコンテキストにおいて、ハードウェア要素は、ハードウェア要素により具現化され得る命令、モジュール、及び／又はロジックにより定められるプログラム・タスクを実行する処理デバイスとして動作することができることに加えて、例えば、前述したコンピュータ読み取り可能な記憶媒体といった、実行される命令を記憶するために利用されるハードウェア・デバイスとしても動作することができる。
【００７８】
前述したものの組合せを使用して、本明細書で説明した様々な技術及びモジュールを実装することもできる。したがって、ソフトウェア、ハードウェア、又はプログラム・モジュール及び他のプログラム・モジュールは、何らかの形態のコンピュータ読み取り可能な記憶媒体上に具現化される、且つ／あるいは、１以上のハードウェア要素６１０により具現化される１以上の命令及び／又はロジックとして実装することができる。コンピューティング・デバイス６０２は、ソフトウェア・モジュール及び／又はハードウェア・モジュールに対応する特定の命令及び／又は機能を実装するよう構成され得る。したがって、ソフトウェアとしてコンピューティング・デバイス６０２により実行可能なモジュールとしてのモジュールの実装は、例えば、処理システムのハードウェア要素６１０及び／又はコンピュータ読み取り可能な記憶媒体の使用を通じた、ハードウェアにおいて少なくとも部分的により実現することができる。命令及び／又は機能は、本明細書で説明した技術、モジュール、及び例を実装する１以上の製品（例えば、１以上のコンピューティング・デバイス６０２及び／又は処理システム６０４）により実行可能／動作可能であり得る。
【００７９】
図６にさらに示されるように、例示的なシステム６００は、パーソナル・コンピュータ（ＰＣ）、テレビジョン、及び／若しくはセットトップ・ボックス・デバイス、並びに／又はモバイル・デバイス上でアプリケーションを実行する際のシームレスなユーザ・エクスペリエンスのためのユビキタス環境を可能にする。サービス及びアプリケーションは、アプリケーションを利用している間、ビデオ・ゲームをプレイしている間、ビデオを見ている間等に１つのデバイスから次のデバイスに移る際の共通のユーザ・エクスペリエンスのために、３つの全ての環境において実質的に同様に動作する。
【００８０】
例示的なシステム６００において、複数のデバイスが、中央コンピューティング・デバイスを介して相互接続される。中央コンピューティング・デバイスは、複数のデバイスに対してローカルにあってもよいし、複数のデバイスからリモートに位置してもよい。１以上の実施形態において、中央コンピューティング・デバイスは、ネットワーク、インターネット、又は他のデータ通信リンクを介して複数のデバイスに接続される１以上のサーバ・コンピュータのクラウドであり得る。
【００８１】
１以上の実施形態において、この相互接続アーキテクチャは、共通のシームレスなエクスペリエンスを複数のデバイスのユーザに提供するために複数のデバイスにわたって機能を提供することを可能にする。複数のデバイスの各々は、異なる物理的要件及び能力を有することがあり、中央コンピューティング・デバイスは、デバイス向けに調整されながらも全てのデバイスに共通のエクスペリエンスをデバイスに提供することを可能にするプラットフォームを使用する。１以上の実施形態において、ターゲット・デバイスのクラスが作成され、エクスペリエンスが、デバイスの一般クラス向けに調整される。デバイスのクラスは、デバイスの物理的機能、使用のタイプ、又は他の共通の特性により定められ得る。
【００８２】
様々な実装において、コンピューティング・デバイス６０２は、例えば、コンピュータ６１６、モバイル６１８、及びテレビジョン６２０の使用等のために、多種多様な構成を担うことができる。それらの構成の各々は、一般に異なる構造及び能力を有し得るデバイスを含み、したがって、コンピューティング・デバイス６０２は、異なるデバイス・クラスのうちの１以上に従って構成され得る。例えば、コンピューティング・デバイス６０２は、パーソナル・コンピュータ、デスクトップ・コンピュータ、マルチスクリーン・コンピュータ、ラップトップ・コンピュータ、ネットブック等を含むデバイスのコンピュータ６１６クラスとして実装され得る。
【００８３】
コンピューティング・デバイス６０２はまた、携帯電話機、ポータブル音楽プレーヤ、ポータブル・ゲーム・デバイス、タブレット・コンピュータ、マルチスクリーン・コンピュータ等のモバイル・デバイスを含むデバイスのモバイル６１８クラスとして実装され得る。コンピューティング・デバイス６０２はまた、通常の視聴環境において一般により大型のスクリーンを有する、あるいは通常の視聴環境において一般により大型のスクリーンに接続されるデバイスを含むデバイスのテレビジョン６２０クラスとして実装され得る。このようなデバイスは、テレビジョン、セットトップ・ボックス、ゲーム・コンソール等を含む。
【００８４】
本明細書で説明した技術は、コンピューティング・デバイス６０２のそれら様々な構成によりサポートされ得るが、本明細書で説明した技術の具体例に限定されるものではない。このような機能はまた、全て又は部分的に、例えば、以下で説明するプラットフォーム６２４を介し「クラウド」６２２を介する分散システムの使用を通じて実装されてもよい。
【００８５】
クラウド６２２は、リソース６２６のためのプラットフォーム６２４を含む、且つ／あるいはそのようなプラットフォーム６２４を表す。プラットフォーム６２４は、クラウド６２２のハードウェア・リソース（例えば、サーバ）及びソフトウェア・リソースの基盤となる機能を抽象化する。リソース６２６は、コンピューティング・デバイス６０２からリモートにあるサーバ上でコンピュータ処理が実行されている間に利用することができるアプリケーション及び／又はデータを含み得る。リソース６２６はまた、インターネット、及び／又は、セルラ・ネットワーク若しくはＷｉ−Ｆｉ（登録商標）ネットワーク等の加入者ネットワークを介して提供されるサービスも含み得る。
【００８６】
プラットフォーム６２４は、コンピューティング・デバイス６０２を他のコンピューティング・デバイスに接続するためのリソース及び機能を抽象化し得る。プラットフォーム６２４はまた、リソースのスケーリングを抽象化して、スケールの対応するレベルを、プラットフォーム６２４を介して実装されているリソース６２６に対して生じた要求に提供するように機能することもできる。したがって、相互接続されるデバイスの実施形態において、本明細書で説明した機能の実装物は、システム６００にわたって分散されてもよい。例えば、機能は、コンピューティング・デバイス６０２に部分的に実装されるとともに、クラウド６２２の機能を抽象化するプラットフォーム６２４を介して実装されてもよい。
【００８７】
構造的特徴及び／又は方法論的動作に特有の言葉で主題について説明したが、特許請求の範囲において定められる主題は、上述した特定の特徴又は動作に必ずしも限定されないことを理解すべきである。そうではなく、上述した特定の特徴及び動作は、請求項を実施する例示的な形態として開示されている。
【図１】
0006305524.tif 000002
【図２】
0006305524.tif 000003
【図３】
0006305524.tif 000004
【図４】
0006305524.tif 000005
【図５】
0006305524.tif 000006
【図６】
0006305524.tif 000007