(57)【特許請求の範囲】
【請求項１】
デバイス集合体を通して１次コンピューティング環境をユーザに対して提示するプロセッサを含む１次デバイスを構成する方法であって、
前記デバイス集合体の補助デバイスについて、前記１次デバイスに、
前記補助デバイスのデバイス特性のセットに従って、前記補助デバイスの補助コンピューティング環境を生成するように前記１次コンピューティング環境を適合させることと、
前記補助コンピューティング環境内で第１のアプリケーションおよび第２のアプリケーションをインスタンス化することを求めるユーザの少なくとも１つの要求に応じて、
前記補助デバイスの前記デバイス特性に従って、前記補助コンピューティング環境内で前記第１のアプリケーションおよび前記第２のアプリケーションを適合させること、
前記補助デバイスの代わりに前記第１のアプリケーションおよび前記第２のアプリケーションを実行すること、および、
前記第１のアプリケーションおよび前記第２のアプリケーションを、前記補助デバイスの代わりに前記１次デバイスによって実行される実行アプリケーションセットに追加することと、
前記補助コンピューティング環境の提示を前記補助デバイスにストリーミングすることと
を行わせる命令を前記プロセッサ上で実行することを含み、
前記第１のアプリケーションおよび前記第２のアプリケーションは異なるアプリケーションであり、
前記デバイス集合体が、
第１の補助コンピューティング環境を含む第１の補助デバイスと、
第２の補助コンピューティング環境を含む第２の補助デバイスと、を含み、
前記命令を実行することが、前記１次デバイスに、前記第１の補助コンピューティング環境の代わりに前記第２の補助コンピューティング環境を用いることを求める要求を受信したことに応答して、前記第１の補助デバイス上に前記第１のコンピューティング環境の代わりに前記第２の補助コンピューティング環境を提示することをさらに行わせる、方法。
【請求項２】
前記第１の補助デバイスの前記第１の補助コンピューティング環境内で選択されたアプリケーションを適合させることが、
前記第１の補助デバイスおよび前記第２の補助デバイスのデバイス特性に従って、前記選択されたアプリケーションを、前記第１の補助デバイスの前記第１の補助コンピューティング環境内に提示される第１のアプリケーション部分と、前記第２の補助デバイスの前記第２の補助コンピューティング環境内に提示される第２のアプリケーション部分とに分割すること、ならびに
前記第１のアプリケーション部分のみを含み、前記第２のアプリケーション部分は含まない前記第１の補助コンピューティング環境の提示を、前記第１の補助デバイスにストリーミングすること
をさらに含む、請求項１に記載の方法。
【請求項３】
前記プロセッサ上で前記命令を実行することが、前記１次デバイスに、第３の補助デバイスの前記デバイス集合体への追加を検出したことに応答して、少なくとも１つの補助デバイスの補助コンピューティング環境内で実行される少なくとも１つのアプリケーションを再分割して、前記第３の補助デバイスを含むようにすることをさらに行わせる、請求項２に記載の方法。
【請求項４】
前記プロセッサ上で前記命令を実行することが、前記１次デバイスに、前記デバイス集合体からの補助デバイスの除去を検出したことに応じて、前記第１の補助デバイスの前記第１の補助コンピューティング環境内に提示されるアプリケーションの少なくとも一部分を、前記第２の補助デバイスの前記第２の補助コンピューティング環境に移動させることを行わせる、請求項１に記載の方法。
【請求項５】
選択されたアプリケーションをインスタンス化することを求める前記要求を受信することが、前記選択されたアプリケーションを実行する対象である前記第１の補助デバイスを指定する要求を前記第２の補助デバイスを通して前記ユーザから受信したことに応答して、前記第１の補助デバイスの前記第１の補助コンピューティング環境内で前記選択されたアプリケーションを実行することをさらに含む、請求項１に記載の方法。
【請求項６】
前記第１の補助コンピューティング環境が、第１のアプリケーションのインスタンスをさらに含み、
前記第２の補助コンピューティング環境が、第２のアプリケーションのインスタンスをさらに含み、
前記プロセッサ上で前記命令を実行することが、前記１次デバイスに、前記第１の補助コンピューティング環境内で実行される前記第１のアプリケーションと、前記第２の補助コンピューティング環境内で実行される前記第２のアプリケーションとの間の通信を可能にすることをさらに行わせる、請求項１に記載の方法。
【請求項７】
前記第１の補助デバイスが、入力構成要素をさらに含み、
前記第２の補助コンピューティング環境が、第２のアプリケーションのインスタンスをさらに含み、
前記プロセッサ上で前記命令を実行することが、前記第１のデバイスに、前記第１の補助デバイスの前記入力構成要素を前記第２の補助デバイスの前記第２の補助コンピューティング環境内で実行されるアプリケーションに結合することを求める要求を前記ユーザから受信したことに応答して、前記第１の補助デバイスの前記入力構成要素を前記アプリケーションに結合することをさらに行わせる、請求項１に記載の方法。
【請求項８】
前記第１の補助デバイスが、前記第２の補助デバイスの前記第２の補助コンピューティング環境とレイアウト境界を共有する第１の補助コンピューティング環境をさらに含み、
前記ユーザから受信される前記要求が、前記入力構成要素の前記ユーザ入力を、前記第１の補助コンピューティング環境と前記第２の補助コンピューティング環境の間の前記レイアウト境界を越えて移行させることをさらに含む、請求項７に記載の方法。
【請求項９】
前記各補助デバイスの前記補助コンピューティング環境を生成することが、前記１次コンピューティング環境のアプリケーションセットから、前記補助デバイス用のアプリケーションサブセットを選択することをさらに含み、
前記補助コンピューティング環境の前記提示を前記補助デバイスにストリーミングすることが、前記補助デバイスの前記補助コンピューティング環境内に前記アプリケーションサブセットを提示することをさらに含み、
選択されたアプリケーションをインスタンス化することを求める前記要求を受信することが、前記補助コンピューティング環境内に提示される前記アプリケーションサブセットからの前記選択されたアプリケーションの選択を受信することをさらに含む、請求項１に記載の方法。
【請求項１０】
前記選択されたアプリケーションをインスタンス化することを求める前記要求を受信することが、
最初に前記デバイス集合体を前記ユーザに対して提示することと、
前記デバイス集合体から選択された補助デバイスの選択を前記ユーザから受信したことに応答して、前記選択された補助デバイスの前記補助コンピューティング環境用の前記アプリケーションサブセットを前記ユーザに対して提示することと、
前記選択された補助デバイス用の前記アプリケーションサブセットから前記選択されたアプリケーションの選択を前記ユーザから受信することとをさらに含む、請求項９に記載の方法。
【請求項１１】
前記命令を実行することが、前記１次デバイスに、前記補助デバイスの前記補助コンピューティング環境内に前記アプリケーションサブセットの代わりに前記アプリケーションセットを提示することを求める要求を受信したのに応答して、前記補助デバイスの前記補助コンピューティング環境内に前記アプリケーションサブセットの代わりに前記アプリケーションセットを提示することをさらに行わせる、請求項９に記載の方法。
【請求項１２】
選択されたアプリケーションをインスタンス化することを求める前記要求を受信することが、前記選択されたアプリケーションをインスタンス化することを求める要求であり、前記デバイス集合体の選択された補助デバイスを示さない要求を前記ユーザから受信したことに応答して、
前記デバイス集合体の中で、そのデバイス特性が前記選択されたアプリケーションに匹敵する少なくとも１つの候補補助デバイスを識別することと、
前記少なくとも１つの候補補助デバイスから、選択された補助デバイスを選択することとをさらに含む、請求項１に記載の方法。
【請求項１３】
前記プロセッサ上で前記命令を実行することが、前記１次デバイスに、前記ユーザにユーザ入力を要求するアプリケーションからの要求を受信したことに応答して、
前記デバイス集合体の前記補助デバイスの中で選択された補助デバイスを識別することと、
前記選択された補助デバイスの前記ユーザ入力を前記アプリケーションに結合することと
を行わせる、請求項１に記載の方法。
【請求項１４】
デバイス集合体を通して１次コンピューティング環境をユーザに対して提示するプロセッサを含む１次デバイスを構成する方法であって、
前記デバイス集合体の補助デバイスについて、前記１次デバイスに、
前記補助デバイスのデバイス特性のセットに従って、前記補助デバイスの補助コンピューティング環境を生成するように前記１次コンピューティング環境を適合させることと、
前記補助コンピューティング環境内で第１のアプリケーションおよび第２のアプリケーションをインスタンス化することを求めるユーザの少なくとも１つの要求に応じて、
前記補助デバイスの前記デバイス特性に従って、前記補助コンピューティング環境内で前記第１のアプリケーションおよび前記第２のアプリケーションを適合させること、
前記補助デバイスの代わりに前記第１のアプリケーションおよび前記第２のアプリケーションを実行すること、および、
前記第１のアプリケーションおよび前記第２のアプリケーションを、前記補助デバイスの代わりに前記１次デバイスによって実行される実行アプリケーションセットに追加することと、
前記補助コンピューティング環境の提示を前記補助デバイスにストリーミングすることと
を行わせる命令を前記プロセッサ上で実行することを含み、
前記第１のアプリケーションおよび前記第２のアプリケーションは異なるアプリケーションであり、
前記デバイス集合体が、
第１の補助コンピューティング環境を含む第１の補助デバイスと、
第２の補助コンピューティング環境を含む第２の補助デバイスと、を含み、
前記第１の補助デバイスの前記第１の補助コンピューティング環境内で選択されたアプリケーションを適合させることが、
前記第１の補助デバイスおよび前記第２の補助デバイスのデバイス特性に従って、前記選択されたアプリケーションを、前記第１の補助デバイスの前記第１の補助コンピューティング環境内に提示される第１のアプリケーション部分と、前記第２の補助デバイスの前記第２の補助コンピューティング環境内に提示される第２のアプリケーション部分とに分割すること、ならびに
前記第１のアプリケーション部分のみを含み、前記第２のアプリケーション部分は含まない前記第１の補助コンピューティング環境の提示を、前記第１の補助デバイスにストリーミングすることを含む、方法。
【請求項１５】
デバイス集合体を通して１次コンピューティング環境をユーザに対して提示するプロセッサを含む１次デバイスを構成する方法であって、
前記デバイス集合体の補助デバイスについて、前記１次デバイスに、
前記補助デバイスのデバイス特性のセットに従って、前記補助デバイスの補助コンピューティング環境を生成するように前記１次コンピューティング環境を適合させることと、
前記補助コンピューティング環境内で第１のアプリケーションおよび第２のアプリケーションをインスタンス化することを求めるユーザの少なくとも１つの要求に応じて、
前記補助デバイスの前記デバイス特性に従って、前記補助コンピューティング環境内で前記第１のアプリケーションおよび前記第２のアプリケーションを適合させること、
前記補助デバイスの代わりに前記第１のアプリケーションおよび前記第２のアプリケーションを実行すること、および、
前記第１のアプリケーションおよび前記第２のアプリケーションを、前記補助デバイスの代わりに前記１次デバイスによって実行される実行アプリケーションセットに追加することと、
前記補助コンピューティング環境の提示を前記補助デバイスにストリーミングすることと
を行わせる命令を前記プロセッサ上で実行することを含み、
前記第１のアプリケーションおよび前記第２のアプリケーションは異なるアプリケーションであり、
前記デバイス集合体が、
第１の補助コンピューティング環境を含む第１の補助デバイスと、
第２の補助コンピューティング環境を含む第２の補助デバイスと、を含み、
前記プロセッサ上で前記命令を実行することが、前記１次デバイスに、前記デバイス集合体からの補助デバイスの除去を検出したことに応じて、前記第１の補助デバイスの前記第１の補助コンピューティング環境内に提示されるアプリケーションの少なくとも一部分を、前記第２の補助デバイスの前記第２の補助コンピューティング環境に移動させることを行わせる、方法。
【請求項１６】
デバイス集合体を通して１次コンピューティング環境をユーザに対して提示するプロセッサを含む１次デバイスを構成する方法であって、
前記デバイス集合体の補助デバイスについて、前記１次デバイスに、
前記補助デバイスのデバイス特性のセットに従って、前記補助デバイスの補助コンピューティング環境を生成するように前記１次コンピューティング環境を適合させることと、
前記補助コンピューティング環境内で第１のアプリケーションおよび第２のアプリケーションをインスタンス化することを求めるユーザの少なくとも１つの要求に応じて、
前記補助デバイスの前記デバイス特性に従って、前記補助コンピューティング環境内で前記第１のアプリケーションおよび前記第２のアプリケーションを適合させること、
前記補助デバイスの代わりに前記第１のアプリケーションおよび前記第２のアプリケーションを実行すること、および、
前記第１のアプリケーションおよび前記第２のアプリケーションを、前記補助デバイスの代わりに前記１次デバイスによって実行される実行アプリケーションセットに追加することと、
前記補助コンピューティング環境の提示を前記補助デバイスにストリーミングすることと
を行わせる命令を前記プロセッサ上で実行することを含み、
前記第１のアプリケーションおよび前記第２のアプリケーションは異なるアプリケーションであり、
前記デバイス集合体が、
第１の補助コンピューティング環境を含む第１の補助デバイスと、
第２の補助コンピューティング環境を含む第２の補助デバイスと、を含み、
選択されたアプリケーションをインスタンス化することを求める前記要求を受信することが、前記選択されたアプリケーションを実行する対象である前記第１の補助デバイスを指定する要求を前記第２の補助デバイスを通して前記ユーザから受信したことに応答して、前記第１の補助デバイスの前記第１の補助コンピューティング環境内で前記選択されたアプリケーションを実行することをさらに含む、方法。
【請求項１７】
デバイス集合体を通して１次コンピューティング環境をユーザに対して提示するプロセッサを含む１次デバイスを構成する方法であって、
前記デバイス集合体の補助デバイスについて、前記１次デバイスに、
前記補助デバイスのデバイス特性のセットに従って、前記補助デバイスの補助コンピューティング環境を生成するように前記１次コンピューティング環境を適合させることと、
前記補助コンピューティング環境内で第１のアプリケーションおよび第２のアプリケーションをインスタンス化することを求めるユーザの少なくとも１つの要求に応じて、
前記補助デバイスの前記デバイス特性に従って、前記補助コンピューティング環境内で前記第１のアプリケーションおよび前記第２のアプリケーションを適合させること、
前記補助デバイスの代わりに前記第１のアプリケーションおよび前記第２のアプリケーションを実行すること、および、
前記第１のアプリケーションおよび前記第２のアプリケーションを、前記補助デバイスの代わりに前記１次デバイスによって実行される実行アプリケーションセットに追加することと、
前記補助コンピューティング環境の提示を前記補助デバイスにストリーミングすることと
を行わせる命令を前記プロセッサ上で実行することを含み、
前記第１のアプリケーションおよび前記第２のアプリケーションは異なるアプリケーションであり、
前記デバイス集合体が、
第１の補助コンピューティング環境を含む第１の補助デバイスと、
第２の補助コンピューティング環境を含む第２の補助デバイスと、を含み、
前記第１の補助コンピューティング環境が、第１のアプリケーションのインスタンスをさらに含み、
前記第２の補助コンピューティング環境が、第２のアプリケーションのインスタンスをさらに含み、
前記プロセッサ上で前記命令を実行することが、前記１次デバイスに、前記第１の補助コンピューティング環境内で実行される前記第１のアプリケーションと、前記第２の補助コンピューティング環境内で実行される前記第２のアプリケーションとの間の通信を可能にすることをさらに行わせる、方法。
【請求項１８】
デバイス集合体を通して１次コンピューティング環境をユーザに対して提示するプロセッサを含む１次デバイスを構成する方法であって、
前記デバイス集合体の補助デバイスについて、前記１次デバイスに、
前記補助デバイスのデバイス特性のセットに従って、前記補助デバイスの補助コンピューティング環境を生成するように前記１次コンピューティング環境を適合させることと、
前記補助コンピューティング環境内で第１のアプリケーションおよび第２のアプリケーションをインスタンス化することを求めるユーザの少なくとも１つの要求に応じて、
前記補助デバイスの前記デバイス特性に従って、前記補助コンピューティング環境内で前記第１のアプリケーションおよび前記第２のアプリケーションを適合させること、
前記補助デバイスの代わりに前記第１のアプリケーションおよび前記第２のアプリケーションを実行すること、および、
前記第１のアプリケーションおよび前記第２のアプリケーションを、前記補助デバイスの代わりに前記１次デバイスによって実行される実行アプリケーションセットに追加することと、
前記補助コンピューティング環境の提示を前記補助デバイスにストリーミングすることと
を行わせる命令を前記プロセッサ上で実行することを含み、
前記第１のアプリケーションおよび前記第２のアプリケーションは異なるアプリケーションであり、
前記デバイス集合体が、
入力構成要素を含む第１の補助デバイスと、
第２の補助コンピューティング環境を含む第２の補助デバイスと、を含み、
前記第２の補助コンピューティング環境が、第２のアプリケーションのインスタンスをさらに含み、
前記プロセッサ上で前記命令を実行することが、前記第１のデバイスに、前記第１の補助デバイスの前記入力構成要素を前記第２の補助デバイスの前記第２の補助コンピューティング環境内で実行されるアプリケーションに結合することを求める要求を前記ユーザから受信したことに応答して、前記第１の補助デバイスの前記入力構成要素を前記アプリケーションに結合することをさらに行わせる、方法。
【請求項１９】
デバイス集合体を通して１次コンピューティング環境をユーザに対して提示するプロセッサを含む１次デバイスを構成する方法であって、
前記デバイス集合体の補助デバイスについて、前記１次デバイスに、
前記補助デバイスのデバイス特性のセットに従って、前記補助デバイスの補助コンピューティング環境を生成するように前記１次コンピューティング環境を適合させることと、
前記補助コンピューティング環境内で第１のアプリケーションおよび第２のアプリケーションをインスタンス化することを求めるユーザの少なくとも１つの要求に応じて、
前記補助デバイスの前記デバイス特性に従って、前記補助コンピューティング環境内で前記第１のアプリケーションおよび前記第２のアプリケーションを適合させること、
前記補助デバイスの代わりに前記第１のアプリケーションおよび前記第２のアプリケーションを実行すること、および、
前記第１のアプリケーションおよび前記第２のアプリケーションを、前記補助デバイスの代わりに前記１次デバイスによって実行される実行アプリケーションセットに追加することと、
前記補助コンピューティング環境の提示を前記補助デバイスにストリーミングすることと
を行わせる命令を前記プロセッサ上で実行することを含み、
前記第１のアプリケーションおよび前記第２のアプリケーションは異なるアプリケーションであり、
前記各補助デバイスの前記補助コンピューティング環境を生成することが、前記１次コンピューティング環境のアプリケーションセットから、前記補助デバイス用のアプリケーションサブセットを選択することをさらに含み、
前記補助コンピューティング環境の前記提示を前記補助デバイスにストリーミングすることが、前記補助デバイスの前記補助コンピューティング環境内に前記アプリケーションサブセットを提示することをさらに含み、
選択されたアプリケーションをインスタンス化することを求める前記要求を受信することが、前記補助コンピューティング環境内に提示される前記アプリケーションサブセットからの前記選択されたアプリケーションの選択を受信することをさらに含み、
前記選択されたアプリケーションをインスタンス化することを求める前記要求を受信することが、
最初に前記デバイス集合体を前記ユーザに対して提示することと、
前記デバイス集合体から選択された補助デバイスの選択を前記ユーザから受信したことに応答して、前記選択された補助デバイスの前記補助コンピューティング環境用の前記アプリケーションサブセットを前記ユーザに対して提示することと、
前記選択された補助デバイス用の前記アプリケーションサブセットから前記選択されたアプリケーションの選択を前記ユーザから受信することとをさらに含む、方法。
【請求項２０】
デバイス集合体を通して１次コンピューティング環境をユーザに対して提示するプロセッサを含む１次デバイスを構成する方法であって、
前記デバイス集合体の補助デバイスについて、前記１次デバイスに、
前記補助デバイスのデバイス特性のセットに従って、前記補助デバイスの補助コンピューティング環境を生成するように前記１次コンピューティング環境を適合させることと、
前記補助コンピューティング環境内で第１のアプリケーションおよび第２のアプリケーションをインスタンス化することを求めるユーザの少なくとも１つの要求に応じて、
前記補助デバイスの前記デバイス特性に従って、前記補助コンピューティング環境内で前記第１のアプリケーションおよび前記第２のアプリケーションを適合させること、
前記補助デバイスの代わりに前記第１のアプリケーションおよび前記第２のアプリケーションを実行すること、および、
前記第１のアプリケーションおよび前記第２のアプリケーションを、前記補助デバイスの代わりに前記１次デバイスによって実行される実行アプリケーションセットに追加することと、
前記補助コンピューティング環境の提示を前記補助デバイスにストリーミングすることと
を行わせる命令を前記プロセッサ上で実行することを含み、
前記第１のアプリケーションおよび前記第２のアプリケーションは異なるアプリケーションであり、
選択されたアプリケーションをインスタンス化することを求める前記要求を受信することが、前記選択されたアプリケーションをインスタンス化することを求める要求であり、前記デバイス集合体の選択された補助デバイスを示さない要求を前記ユーザから受信したことに応答して、
前記デバイス集合体の中で、そのデバイス特性が前記選択されたアプリケーションに匹敵する少なくとも１つの候補補助デバイスを識別することと、
前記少なくとも１つの候補補助デバイスから、選択された補助デバイスを選択することとをさらに含む、方法。
【請求項２１】
デバイス集合体を通して１次コンピューティング環境をユーザに対して提示するプロセッサを含む１次デバイスを構成する方法であって、
前記デバイス集合体の補助デバイスについて、前記１次デバイスに、
前記補助デバイスのデバイス特性のセットに従って、前記補助デバイスの補助コンピューティング環境を生成するように前記１次コンピューティング環境を適合させることと、
前記補助コンピューティング環境内で第１のアプリケーションおよび第２のアプリケーションをインスタンス化することを求めるユーザの少なくとも１つの要求に応じて、
前記補助デバイスの前記デバイス特性に従って、前記補助コンピューティング環境内で前記第１のアプリケーションおよび前記第２のアプリケーションを適合させること、
前記補助デバイスの代わりに前記第１のアプリケーションおよび前記第２のアプリケーションを実行すること、および、
前記第１のアプリケーションおよび前記第２のアプリケーションを、前記補助デバイスの代わりに前記１次デバイスによって実行される実行アプリケーションセットに追加することと、
前記補助コンピューティング環境の提示を前記補助デバイスにストリーミングすることと
を行わせる命令を前記プロセッサ上で実行することを含み、
前記第１のアプリケーションおよび前記第２のアプリケーションは異なるアプリケーションであり、
前記プロセッサ上で前記命令を実行することが、前記１次デバイスに、前記ユーザにユーザ入力を要求するアプリケーションからの要求を受信したことに応答して、
前記デバイス集合体の前記補助デバイスの中で選択された補助デバイスを識別することと、
前記選択された補助デバイスの前記ユーザ入力を前記アプリケーションに結合することとを行わせる、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
[0001]  本願は、参照により本明細書に組み込む、２０１４年９月２４日出願の「ＰＲＥＳＥＮＴＡＴＩＯＮ  ＯＦ  ＣＯＭＰＵＴＩＮＧ  ＥＮＶＩＲＯＮＭＥＮＴ  ＯＮ  ＭＵＬＴＩＰＬＥ  ＤＥＶＩＣＥＳ」と題する米国特許出願第１４／４９５４２０号の優先権を主張するものである。
【背景技術】
【０００２】
[0002]  コンピューティングの分野では、多くのシナリオが、ユーザとラップトップ、携帯電話、タブレット、およびメディアサーバなどのデバイス集合体との対話を伴う。ユーザは、文書を編集する、映画を見る、車両を運転する、および友人と対話するなどのユーザの関心およびタスクをカバーするために、デバイス集合体として様々なデバイスを取得することができる。各デバイスは、ユーザのアカウントおよび身分証明のセット、利用可能な、かつ／または実行中のアプリケーション、アプリケーションの構成および状態、文書、メディアオブジェクト、ならびにデバイス集合体の内部および外部のその他のデバイスとの接続を含むコンピューティング環境を提示することができる。
【発明の概要】
【課題を解決するための手段】
【０００３】
[0003]  この概要は、以下の詳細な説明でさらに説明される一連の概念を単純化した形態で紹介するために与えたものである。この概要は、請求する主題の重要な要因または不可欠な特徴を特定するためのものではなく、また、請求する主題の範囲を限定するために使用されるように意図されたものでもない。
【０００４】
[0004]  コンピューティング環境を提示するようにデバイスを構成すると、デバイス集合体の各デバイスがそれぞれのデバイスのデバイス特性に基づいてコンピューティング環境を提示する、まとまりのないエクスペリエンスになる可能性がある。ただし、このモデルは、ユーザがそれぞれのデバイスを別個に構成してその構成を維持する、まとまりのないコンピューティングエクスペリエンスを伴う可能性がある。それらのコンピューティング環境の間の差異は、そのデバイスのアーキテクチャに適合して利用可能であるアプリケーションなど、各デバイスの特性の差異によって生じる。さらに、１つのデバイスとの対話が、別のデバイス上の変更を伴わない可能性もある。例えば、ユーザは、デバイス集合体の第１のデバイス上でアプリケーションをインストールする、アプリケーション構成を調整する、あるいは文書を作成または編集することがあるが、これらの変更が、デバイス集合体の第２のデバイス上には現れないこともある。
【０００５】
[0005]  その他の技術を利用して、デバイス集合体の様々なデバイスにおけるコンピューティング環境の提示を調和させることもできる。第１のこのような例としては、デバイス間のファイル同期により、第１のデバイスを介してファイル集合体に加えられる変更を、第２のデバイス上に自動的に反映できるようにすることができる。ただし、このようなファイル同期は、非効率性を呈する可能性があり（例えば、特定のデバイス上のファイルを更新するには、そのファイルを他の全てのデバイスに伝送して、その更新が伝搬されることを保証する必要がある）、また同時性エラーを生じる可能性がある（例えば、特待のファイルの更新は第１のデバイスおよび第２のデバイスで起こる可能性があるが、そのような同時更新を解決することが困難であることがある）。あるいは、端末サービスモデルでは、１次デバイスは、様々なデバイスのコンピューティング環境を伝送することがある。しかし、各デバイスがそのデバイスの特性に関わらず同じコンピューティング環境を提示する場合には、一部のデバイスが、一部のデバイス特性をそのデバイスとともに利用することができないことがあり、また、他のデバイスが、コンピューティング環境を適切にレンダリングすることができないこともある。
【０００６】
[0006]  本明細書に提示するのは、１次デバイスがホストとなるコンピューティング環境をデバイス集合体が提示することを可能にする技術である。このような技術によれば、デバイス集合体の１次デバイスは、デバイス集合体のいくつかの補助デバイスのそれぞれで提示される１次コンピューティング環境を記憶し、維持することができる。各補助デバイスについて、１次デバイスは、計算リソース、入出力機能、通信機能、電源、およびユーザ状況など、その補助デバイスの特定のデバイス特性に基づいて適合された補助コンピューティング環境に合わせて、１次コンピューティング環境を適合させることができる。さらに、ある補助デバイス上であるアプリケーションを実行することを求める要求が受信されたときに、１次デバイスは、その補助デバイスの代わりに補助コンピューティング環境内でそのアプリケーションを実行することができ、そのアプリケーションをその補助デバイスのデバイス特性に適合させることができる。
【０００７】
[0007]  上記およびそれに関連する目的を達成するために、以下の説明および付属の図面では、特定の例示的な態様および実施態様を記載する。これらは、１つまたは複数の態様を利用することができる様々な方法のうちのいくつかを示すものに過ぎない。本開示のその他の態様、利点、および新規性のある特徴は、以下の詳細な説明を付属の図面と関連付けて考慮すれば明らかになるであろう。
【図面の簡単な説明】
【０００８】
【図１】[0008]ユーザとデバイス集合体のデバイスのセットとの対話を特徴とする例示的なシナリオを示す図である。
【図２】[0009]本明細書に提示される技術による、補助デバイスのデバイス集合体におけるコンピューティング環境の提示を特徴とする例示的なシナリオを示す図である。
【図３】[0010]本明細書に提示される技術による、１次デバイスがデバイス集合体の補助デバイス上にコンピューティング環境を提示することを可能にする例示的な方法を示す流れ図である。
【図４】[0011]本明細書に提示される技術による、デバイス集合体の１次デバイスおよび補助デバイスがユーザに対してコンピューティング環境を提示することを可能にする例示的なシステムを示す構成要素ブロック図である。
【図５】[0012]本明細書に記載する提供物のうちの１つまたは複数を実施するように構成されたプロセッサ実行可能命令を含む例示的なコンピュータ可読媒体を示す図である。
【図６】[0013]本明細書に提示される技術による、データ集合体の選択された補助デバイス内でアプリケーションをインスタンス化する様々な技術を特徴とする例示的なシナリオを示す図である。
【図７】[0014]本明細書に提示される技術による、デバイス集合体の選択された補助デバイスのセットにわたるアプリケーションのユーザインタフェースの分散を特徴とする例示的なシナリオを示す図である。
【図８】[0015]本明細書に提示される技術による、第１の補助デバイスの入力の、第２の補助デバイスの第２の補助コンピューティング環境への移行を特徴とする例示的なシナリオを示す図である。
【図９】[0016]本明細書に提示される技術による、動的デバイス集合の補助デバイス間でのアプリケーションユーザインタフェースの再マッピングを特徴とする例示的なシナリオを示す図である。
【図１０】[0017]本明細書に記載される提供物のうちの１つまたは複数が実装され得る例示的なコンピューティング環境を示す図である。
【発明を実施するための形態】
【０００９】
[0018]  次に、図面を参照して、請求する主題について説明する。図面を通じて、同じ要素には、同じ参照番号を用いている。以下の説明では、説明のために、請求する主題が完全に理解されるように、多数の具体的な詳細について述べている。ただし、これらの具体的な詳細がなくても請求する主題を実施することができることは、明らかであろう。その他、構造およびデバイスは、請求する主題の記述を容易にするためにブロック図で示してある。
【００１０】
[0019]  Ａ．導入
[0020]  図１は、ユーザ１０２がデバイス集合体１０４内のデバイス１０６のセットと対話することを可能にする様々な技術を特徴とする例示的なシナリオ１００を示す図である。この例示的なシナリオ１００では、ユーザ１０２は、ワークステーション、ホームシアタコンピュータ、携帯タブレット、および携帯電話など、様々なタイプの様々なデバイス１０６を取得している。デバイス集合体１０４のそれぞれのデバイス１０６は、特定の処理能力を有し、特定の命令セットアーキテクチャに対応するプロセッサ、商用電源への接続、バッテリ、および／または無停電電源（UPS）などの電源、ならびにユーザ１０２との対話を可能にする入出力構成要素のセットなど、デバイス特性１０８のセットを呈する。その他のこのようなデバイス特性１０８は、例えば、ビデオをレンダリングし、様々な形態のデータを符号化または復号するコプロセッサ、揮発性および不揮発性のメモリ構成要素、有線およびワイヤレスのネットワークアダプタや近距離場通信（NFC）アダプタなどの通信構成要素、プリンタおよびスキャナなどの周辺機器、ならびに車両制御システムの自動車の構成要素などの組み込み機器シナリオにおける関連構成要素を含む。各デバイス１０６は、そのデバイス１０６の固有オペレーティングシステムなどの固有コンピューティング環境１１０、オペレーティングシステム内で実行されるアプリケーション１１２の集合体、および各デバイス１０６に格納されたファイル１１４のセットも呈する。
【００１１】
[0021]  デバイス集合体１０４のユーザ１０２は、各デバイス１０６と特定の方法で対話することができ、したがって、その所期の用途に応じて各デバイス１０６を構成することができる。第１の例として、ワークステーションデバイス１０６は、ロバストなデスクトップオペレーティングシステムと、テキストエディタ、コンパイラ、およびメディア編集ソフトウェアなど、そのために選択されたアプリケーション１１２のセットとを特徴とすることがある。第２の例として、ホームシアタデバイス１０６は、大面積ディスプレイ、メディアプレイヤおよびメディアライブラリなど比較的制限されたアプリケーション１１２のセットを提示するメディア中心オペレーティングシステム、ならびにメディアをレンダリングするのには適しているがロバストな並列処理は行うことができないコモディティプロセッサなど、比較的限られたデバイス特性１０８のセットを特徴とすることがある。第３の例として、タブレットデバイス１０６は、携帯コンピューティングエクスペリエンスを提示することができる、大容量プロセッサ上で実行され、主に容量性タッチセンスディスプレイを介してユーザ１０２と対話する、ロバストなオペレーティングシステムを提示することができる。第４の例として、第４のデバイス１０６は、エネルギー節約ハードウェア、バッテリ、およびモビリティアプリケーション１１２を実行するための通信指向オペレーティングシステムを特徴とする携帯電話を含み得る。
【００１２】
[0022]  この例示的なシナリオ１００では、このデバイス集合体１０４と対話しているときに、ユーザ１０２は、それぞれのデバイス１０６と対話している間に顕著な違いに気付くことがある。第１の例としては、デバイス１０６のセットを含むデバイス集合体１０４とのユーザ１０２のユーザ対話がある。この例示的なシナリオ１００では、ユーザ１０２は、文書を編集する、様々な形態のメディアを見る、ゲームで遊ぶ、職業上および社交上の連絡先と通信する、ならびに車両のマッピングおよびナビゲーションなどユーザの日常の活動を容易にする情報を発見するなど、広範な関心およびタスクのセットをカバーするデバイス１０６を取得する。デバイス集合体１０４の各デバイス１０６は、各デバイス１０６にインストールされた実行可能なアプリケーション１１２の集合体などのコンピューティング環境１１４、ユーザファイル、メディアオブジェクト、およびウェブリンクなどの様々なデータの集合体、ならびに普段の、および／または仕事上のユーザ対話に適合されたオペレーティングシステムなどの様々な形態のユーザインタフェースを提示することができる。各デバイス１０６は、様々な品質および解像度のディスプレイ、ユーザ１０２にオーディオ出力を提供するスピーカ、ヘッドホン、および／またはイヤピース、キーボード、マウス、およびタッチセンスディスプレイなどの入力デバイス、ならびにカメラおよび通信デバイスなどのその他の周辺機器など、異なる構成要素のセットを特徴とすることもある。第２の例として、オペレーティングシステムの多様性により、各デバイス１０６で様々なタイプの機能が明らかになることがある（例えば、オペレーティングシステムのユーザインタフェースの外観および挙動の違い、利用可能なツールおよび動作の違い、ならびに各デバイス１０６に対してコマンドを発行するために使用可能なキーボードのショートカットおよびジェスチャなど各デバイス１０６において認識される入力の違いなど）。第３のこのような例として、第１のデバイス１０６で実行可能なアプリケーション１１２が、例えば両デバイス１０６間のオペレーティングシステムおよび命令セットアーキテクチャの互換性の問題により、第２のデバイス１０６では実行可能でないこともある。ユーザ１０２が、各デバイス１０６に同等のアプリケーション１１２のセット（例えば、異なるプラットフォーム用に開発された同一アプリケーションの様々なバリアント、または同じタスクを実行する異なる開発業者によるアプリケーションなど）をインストールするように努めることもあるが、表面上は類似していても構造が異なるアプリケーション１１２同士の間には、望ましくない違いが残る可能性がある。
【００１３】
[0023]  デバイス集合体１０４のデバイス１０６同士の間で整合性を確立して維持するためにユーザ１０２によって実行されるデバイス構成および管理の程度において、さらなる困難が生じる可能性がある。すなわち、ユーザ１０２が第１のデバイス１０６を構成する（例えばアプリケーション１１２をインストールする、またはアプリケーション構成を更新するなど）ときに、ユーザ１０２は、１つまたは複数の他のデバイス１０６、あるいは場合によっては全てのデバイス１０６の手作業による再構成を同様の方法で実行しなければならないことがある。第１のこのような例としては、第１のデバイス１０６がパスワードで保護されたサービスを使用しており、ユーザ１０２が第１のデバイス１０６を通してそのサービスのパスワードを変更する場合に、ユーザ１０２は、同じ更新されたパスワードを使用して他のデバイス１０６も再構成しなければならないことがある。第２のこのような例としては、ユーザ１０２が第１のデバイス１０６にアプリケーション１１２をインストールする、あるいは第１のデバイス１０６でファイル１１４を作成または編集するときに、ユーザ１０２がこのような更新を調和させるように両デバイス１０６を構成しておかない限り、この変更は、自動的に第２のデバイス１０６に反映されるわけではない。例えば、ユーザ１０２は、第２のデバイス１０６上で作成、修正、または削除されたファイル１１４が自動的に第４のデバイスと同期するように、ファイル同期プロセス１１６を構成することができる。ただし、このような技術は、実施および維持するために必要となるユーザ１０２による介入および管理の程度が、広範になる可能性があり、場合によっては煩わしいほどになる可能性がある。さらに、このような技術が一見同時性があるように見せている場合でも（例えば、これらのデバイス１０６は、それらのデバイス１０６が単一セットのファイル１１４を利用しているかのように上手くファイル同期１１６を実行することがある）、このような抽象化を「リーク」させる問題が生じる可能性がある。第１のこのような例としては、特定のファイル１１４が、第２のデバイス１０６および第４のデバイス１０６で同時に編集されることがある。いずれかのバージョンを選択すると、他方のバージョンのデータが喪失する可能性があり、両デバイス１０６が、これらの変更をどのようにマージする化を決定することができないことがある。第２のこのような例としては、第３のデバイス１０６がデバイス集合体１０４から切断されている間は、様々なファイル１１４に第３のデバイス１０６を通してアクセスしても、利用不能および／または無効である可能性がある。第３のこのような例としては、バージョン競合などの制限を緩和すると、その他の望ましくない効果に関連するより多くの厳しい測度が必要になる可能性がある。例えば、ロック機構を利用して、ファイル１１４への独占アクセス権を有する第１のデバイス１０６のみがファイル１１４を見たり修正したりすることができるように保証することもできるが、このようなロック機構は、同じファイル１１４にアクセスしようとしている第２のデバイス１０６を機能停止および／またはクラッシュさせる可能性がある。
【００１４】
[0024]  各デバイス１０６による隔離されたコンピューティング環境１１０の提示によって生じる上記その他の制限に鑑みて、デバイス１０６間の一様化を容易にする技術を利用することができる。例えば、端末サーバ１１８は、オペレーティングシステムの設定を提供する単一のユーザアカウント、アプリケーション１１２およびアプリケーション構成の単一セット、ならびに端末サーバ１１８がアクセス可能なファイル１１４およびハードウェア構成要素の単一セットなど、端末コンピューティング環境１２０を生成することができる。端末サーバ１１８は、次いで、端末コンピューティング環境１２０の提示をデバイス１０６のそれぞれに伝送することができ（例えば、端末コンピューティング環境１２０のビデオを各デバイス１０６に伝送し、各デバイス１０６から入力を受信する）、各デバイス１０６が、一様に同じ端末コンピューティング環境１２０をユーザ１０２に対してレンダリングすることができる。
【００１５】
[0025]  ただし、このような端末サービス技術は、端末サーバ１１８はいくつかのデバイス１０６が１つの端末コンピューティング環境１２０を同時に使用することを許すことができないなど、さらなる制限を提示することがある。さらに、１つの端末コンピューティング環境１２０を様々なデバイス１０６上に提示すると、デバイス１０６間に一様性をもたらすことができるが、場合によってはエクスペリエンスが最適とは言えないものになることもある。一様な端末コンピューティング環境１２０が、各デバイス１０６のデバイス特性１０８に関わらず各デバイス１０６に伝送される場合には、いくつかのデバイス特性１０８が、端末コンピューティング環境１２０内に露出されない可能性がある。例えば、特定のデバイス１０６がカメラを備えていることもあるが、端末コンピューティング環境１２０は、そのカメラが設けられていることを認識しない可能性があり、ドライバおよびカメラ指向アプリケーション１１２など適当なソフトウェアがインストールされていない可能性もあり、したがって端末コンピューティング環境１２０内でカメラを利用可能にできないことがある。逆に、いくつかのデバイス１０６に、端末コンピューティング環境１２０を提示するための適当なデバイス特性１０８がないこともある。例えば、端末コンピューティング環境１２０が、いくつかのデバイス１０６のデバイス特性１０８によってサポートされないアプリケーション１０８を提供することや、あるいは単純に特定のデバイス１０６では許容できるユーザエクスペリエンスでレンダリングされないこともある。例えば、低電力の携帯電話上で端末コンピューティング環境１２０を提示すると、デスクトップスペースのわずかな一部が表示されることになり、そのいずれの部分を見るにもかなりスクロールする必要がある可能性がある、かつ／またはそのデバイス１０６のプロセッサが電力節約型であることにより、使用に耐えないほどフレームレートが低く、ユーザの入力待ち時間が長くなる可能性がある。このような制限は、ユーザエクスペリエンスを一様にするために、単一の端末コンピューティング環境１２０の様々なデバイス１０６への提示の柔軟性が制限されることから生じている可能性がある。
【００１６】
[0026]  Ｂ．提示される技術
[0027]  本明細書に提示するのは、様々なデバイス間で、整合しているがそれぞれのデバイス１０６のデバイス特性１０８に適合されているコンピューティング環境を提示するようにデバイス集合体１０４を構成する技術である。
【００１７】
[0028]  図２は、整合したコンピューティング環境をユーザ１０２に対して提示する用に相互運用するデバイス１０６のデバイス集合体１０４を特徴とする例示的なシナリオ２００を示す図である。この例示的なシナリオ２００では、デバイス集合体１０４の中で、特定のデバイス１０４が、１次デバイス２０２として指定され、この１次デバイス２０２が、オペレーティングシステム設定、アプリケーション１１２、アプリケーション構成、ファイル１１４、ならびにユーザのアカウントおよび身分証明の１次集合体などの１次コンピューティング環境２０４を生成して維持する。デバイス集合体１０４の補助デバイス２０６ごとに、１次デバイス２０２は、その補助デバイス１０６のデバイス特性１０８に応じて、１次コンピューティング環境２０４を補助コンピューティング環境２０８に適合させることができる。例えば、１次デバイス２０２は、各補助デバイス２０６のデバイス特性１０８に応じて、表示配色、アイコンおよびフォントのタイプおよびサイズ、入力モダリティ、全画面対話モデルかウィンドウ対話モデルか、ならびに構成要素の可用性および構成（例えばポインタ挙動）を選択することができる。補助デバイス２０６ごとに、１次デバイス２０２は、その補助デバイス２０６用の特定の補助コンピューティング環境２０８をストリーム２１４として伝送することができる。補助コンピューティング環境２０８のストリーミング２１４は、１次デバイス２０２が補助デバイス２０６でレンダリングされるオーディオ、ビデオ、およびその他の形態の出力、ならびに補助デバイス２０６のデバイス特性１０８および構成要素への命令を伝送することを伴うことがある。補助コンピューティング環境２０８のストリーミング２１４は、ユーザ入力、補助デバイス２０６によって検出される性能メトリック、および補助デバイス２０６のデバイス特性１０８によって生成されるデータなど、補助コンピューティング環境２０８に適用される補助デバイス２０６からの入力を受信することを伴うこともある。
【００１８】
[0029]  さらに、１次デバイス２０２は、１次コンピューティング環境２０４のアプリケーションから、各補助デバイス２０６上で提示されるアプリケーションセット２１０を選択することもできる。この選択は、補助デバイス２０６のデバイスタイプ（例えば補助デバイス２０６のフォームファクタ）、補助デバイス２０６のデバイス特性１０８、および／またはユーザ１０２が補助デバイス２０６を使用しようとしているシナリオに関係するアプリケーション２０６を選択するなど、ユーザ１０２が意図している補助デバイス２０６の用途を含むことがある。各補助デバイス２０６へのストリーム２１４は、例えばリストまたはメニューとしてのアプリケーションセット２１０の提示を含むことがある。さらに、それぞれの補助デバイス２０６について、１次デバイス２０２は、その補助デバイス２０６の代わりにアプリケーション１１２を実行することができる（例えば、このようなアプリケーション１１２は、１次デバイス２０２のプロセッサ、メモリ、およびその他の計算能力を利用することができる）。１次デバイス２０２が特定の補助デバイス２０６のためにアプリケーション１１２をインスタンス化する要求を受信するとき、１次デバイス２０２は、１次デバイス２０２上でアプリケーション１１２をインスタンス化し、このアプリケーション１１２を補助コンピューティング環境２０８に挿入することができる（例えば、補助コンピューティング環境２０８のデスクトップスペース内でアプリケーション１１２用のユーザインタフェースを作成し、入力デバイスをそのユーザインタフェースに結合し、アプリケーション１１２をその補助コンピューティング環境２０８の実行アプリケーションリスト２１２に追加する）。さらに、１次デバイス２０２は、アプリケーション２１２の実行を、特定の補助デバイス２０６のデバイス特性１０８に適合させることができる。例えば、アプリケーション２１２のユーザインタフェースは、補助デバイス１０６の特定の入力機能、出力機能、ならびにその他の利用可能な構成要素およびリソースを利用するように適合させることができる。したがって、補助コンピューティング環境２０８のストリーム２１４は、デバイス１０６に伝送されてデバイス１０６によって提示される補助コンピューティング環境２０８内のアプリケーション１１２の提示を含む。このようにして、本明細書に提示される技術によれば、１次デバイス２０２は、デバイス集合体１０４の補助デバイス２０６を通したユーザ１０２への１次コンピューティング環境２０４の提示を可能にすることができる。
【００１９】
[0030]  Ｃ．技術的効果
[0031]  本明細書に提示される技術を使用して１次コンピューティング環境２０４をデバイス集合体１０４の補助デバイス２０６を通してユーザ１０２に対して提示することにより、いくつかの実施形態では、様々な技術的効果を生じることができる。
【００２０】
[0032]  本明細書に提示される技術によって実現できる可能性がある技術的効果の第１の例として、アプリケーション１１２が、１次デバイス２０２上で実行された場合に、それらのアプリケーション１１２は、ファイル１１４の共有セットを利用することができ、１次デバイス２０２にインストールされたアプリケーション１１２の共有セットから導出される。例えば、アプリケーション１１２を１次デバイス２０２にインストールして更新することで、アプリケーション１１２を各補助デバイス２０６のアプリケーションセット２１０に含めることができる。さらに、アプリケーション２１２の実行および互換性は、各補助デバイス２０６の具体的な構造的詳細（例えば補助デバイス２０６のプロセッサ能力および命令セットアーキテクチャ）には依存せず、１次デバイス２０２の構造的詳細のみに依存する。このようにして、アプリケーション１１２および１次コンピューティング環境２０４を、より整合した方法で、すなわち構造上の差異、コンピューティング構成要素の非互換性、またはその他のそのような障害によって生じるそれらの補助デバイス２０６間における提示の意図しない差異を低減して、ユーザ１０２に対して提示することができる。
【００２１】
[0033]  本明細書に提示される技術によって実現できる可能性がある技術的効果の第２の例として、補助コンピューティング環境２０８を１次コンピューティング環境２０２の適合環境として提示することにより、ユーザ１０２が実行する構成および保守の量を低減することができる。例えば、そのアプリケーション１１２が望まれるデバイス集合体１０４の各補助デバイス２０６上でアプリケーション１１２を取得し、インストールし、構成するのではなく、本明細書に提示される技術によれば、ユーザ０２は、アプリケーション１１２を１次デバイス２０２上で１度インストールして構成してしまえば、その後に任意の補助デバイス２０６の補助コンピューティング環境２０８を通してそのアプリケーションにアクセスすることができる。さらに、本明細書に提示される技術は、デバイス集合体１０４の集中管理を可能にすることができる。例えば、ユーザ１０２は、１次デバイス２０２による１次コンピューティング環境２０４の適合を選択した補助デバイス２０６用に調整するだけで、各補助デバイス２０６の補助コンピューティング環境２０８を調整することができる。このように管理コストが低下することで、デバイス集合体１０４のスケーラビリティを高めることができる。例えば、ユーザ１０２は、補助デバイス２０６をそれぞれ別個に構成および維持する必要がなく、追加の補助デバイス２０６用の追加の補助コンピューティング環境２０８を提供するように１次デバイス２０４を構成するだけで補助デバイス２０６が構成および維持される場合には、それらの補助デバイス２０６をデバイス集合体１０４に追加する傾向が高い可能性がある。
【００２２】
[0034]  本明細書に提示される技術によって実現可能である可能性がある技術的効果の第３の例として、補助コンピューティング環境２０８およびアプリケーション１１２の実行を、補助デバイス２０６のデバイス特性１０８を利用するように適合させることができる。例えば、アプリケーション１１２は、１次デバイス２０２とのネットワーク接続が大容量で、商用電源からの豊富な電力供給が得られる補助デバイス２０６の補助コンピューティング環境２０８内には、動的なアニメーションのユーザインタフェースを提供し、１次デバイス２０２とのネットワーク接続が制限され、バッテリからの制限された電力供給しか得られない補助デバイス２０６の補助コンピューティング環境２０８内には、単純な静的ユーザインタフェースを提供することもできる。このようにして（端末サービスのシナリオとは対照的に）、１次コンピューティング環境２０４を提示するのに、その提供に必要な保守の量を低減しながら、各補助デバイス２０６のデバイス特性１０８をより十分に利用することができる。
【００２３】
[0035]  本明細書に提示される技術によって実現可能である可能性がある技術的効果の第４の例として、１次デバイス２０２は、デバイス集合体１０４の補助デバイス２０６間でのアプリケーション１１２の柔軟な実行を可能にすることができる。例えば、アプリケーション１１２のユーザインタフェースは、複数の補助デバイス２０６に分散させることもでき、あるいはデバイス集合体１０４が変化した場合には第１の補助デバイス２０６から第２の補助デバイス２０６に容易に移動させることもできる。
【００２４】
[0036]  本明細書に提示される技術によって実現可能である可能性がある技術的効果の第５の例として、複数の補助デバイス１１２の補助コンピューティング環境２０８内で実行されるアプリケーション１１２同士の対話は、補助デバイス２０６間のデバイスおよび／またはネットワーク相互接続は利用せずに、１次デバイス２０２内のプロセス間通信またはファイル共有機構によって容易に対話することができる。このような対話性により、これらの相互運用可能なアプリケーション１１２の開発および使用の効率および／または容易性を高めることができる。１つのこのような例としては、ユーザ１０２は、第１の補助デバイス２０６に取り付けられた入力デバイスを使用して、第２の補助デバイス２０６の補助コンピューティング環境２０８内で実行されるアプリケーション１１２と対話することもできる。
【００２５】
[0037]  本明細書に提示される技術によって実現可能である可能性がある技術的効果の第６の例として、１次コンピューティング環境２０４の提示および１次デバイス２０２上でのアプリケーション１１２の実行が、全体的な効率の向上をもたらす可能性がある。例えば、１つのアプリケーション１１２の複数のインスタンスを実行するために複数の（場合によっては多数の）補助デバイス２０６を使用するのではなく、１次デバイス２０２が、そのような多数の補助デバイス２０６の代わりにそのアプリケーション１１２を実行して、複数の補助デバイス２０６にわたるいくつかの計算プロセスの冗長な実行を低減することができる可能性がある。例えば、いくつかの補助デバイス２０６のそれぞれが定期的にメールがないかメールサーバにポーリングする（したがって電子メール要求のボリュームが大きくなる可能性がある）代わりに、１次デバイス２０２が定期的にメールサーバに問い合わせ、新たなメッセージを受信したときに、複数の補助デバイス２０６を通して通知を伝送することができる。このような効率の向上により、計算リソース（例えばプロセッサの使用、記憶域、およびネットワーク帯域幅）を節約することができ、デバイス集合体１０４を管理する保守および電力の総コストを低減することができるので有利である。
【００２６】
[0038]  本明細書に提示される技術によって実現可能である可能性がある技術的効果の第７の例として、比較的低電力の補助デバイス２０６のデバイス集合体１０４上で高品質のコンピューティングエクスペリエンスを提示することができる。例えば、補助コンピューティング環境２０８をレンダリングし、アプリケーション１１２を実行する計算負荷を１次デバイス２０２に転送することによって、これらの技術は、ローカルな状況で同じ品質レベルでその補助コンピューティング環境２０８をレンダリングするだけの十分な計算リソースを有していない可能性がある補助デバイス２０６上で、高品質の補助コンピューティング環境２０８を提示することを可能にする。したがって、無効なハードウェアを、それによって提示されるコンピューティング環境の品質を必ずしも劣化させることなく、デバイス集合体１０４に組み込むことができる、さらに、デバイス集合体１０４全体の性能を、単に１次デバイス２０２のリソースをスケールアップするだけでスケールアップすることができる。例えば、１次デバイス２０２のプロセッサおよびメモリ容量をアップグレードすることによって、デバイス集合体１０４全体のコンピューティング環境のより高品質なレンダリングを実現できる可能性がある。
【００２７】
[0039]  本明細書に提示される技術によって実現可能である可能性がある技術的効果の第８の例として、本明細書に提示される技術を使用することにより、必ずしもユーザ１０２によって所有されているとは限らず、かつ／または１次デバイス２０２から定期的にアクセスされる補助デバイス２０６のデバイス集合体１０４上で、１次コンピューティング環境２０４の提示をユーザ１０２が実現できるようにすることができる。例えば、パブリックアクセス可能なコンピューティングワークスペースは、ユーザ１０２の１次デバイス２０２と接続したときに１次デバイス２０２に記憶された１次コンピューティング環境２０４の提示を可能にする、ディスプレイ、キーボード、スピーカ、およびプリンタなどの周辺デバイスを含む補助デバイス２０６の集合体を含むことができる。上記その他の技術的効果は、本明細書に提示される技術の様々な実施態様によって実現できる可能性がある。
【００２８】
[0040]  Ｄ．例示的な実施形態
[0041]  図３は、デバイス集合体１０４の補助デバイス２０６を通してユーザ１０２に対して１次コンピューティング環境２０４を提示するように１次デバイス２０２を構成する例示的な方法３００として示される、本明細書に提示される技術の第１の例示的な実施形態を提示する図である。この例示的な方法３００は、例えば、メモリ回路、ハードディスクドライブのプラッタ、固体状態記憶デバイス、あるいは磁気ディスクまたは光ディスクなどの１次デバイス２０２のメモリ構成要素に記憶され、デバイスのプロセッサで実行されたときに、１次デバイス２０２を本明細書に提示される技術に従って動作させるように編成された命令のセットとして実装することができる。
【００２９】
[0042]  例示的な方法３００は、３０２で開始され、１次デバイス２０２のプロセッサ上で命令を実行すること（３０４）を含む。具体的には、プロセッサ上で命令を実行すること（３０４）により、１次デバイス２０２は、デバイス集合体１０４のそれぞれの補助デバイス２０６について（３０６）、補助デバイス２０６の補助コンピューティング環境２０８を生成するように、補助デバイス２０６のデバイス特性１０８のセットに従って１次コンピューティング環境２０４を適合させる（３０８）。プロセッサ上で命令を実行すること（３０４）により、さらに、１次デバイス２０２は、それぞれの（３０６）の補助デバイス２０６の補助コンピューティング環境２０８内で選択されたアプリケーション１１２をインスタンス化することを求める要求を受信したこと（３１０）に応答して、補助デバイス２０６のデバイス特性１０８に従って補助コンピューティング環境２０８内でその選択されたアプリケーション１１２を適合させ（３１２）、補助デバイス２０６の代わりにその選択されたアプリケーション１１２を実行する（３１４）。プロセッサ上で命令を実行すること（３０４）により、さらに、１次デバイス２０２は、補助コンピューティング環境２０８の提示をそれぞれの補助デバイス２０６にストリーミングする（２１４）。このようにして、命令によって、１次デバイス２０２は、デバイス集合体１０４の補助デバイス２０６を通してユーザ１０２に対して１次コンピューティング環境２０４を提示し、この例示的な方法３００は、３１８で終了する。
【００３０】
[0043]  本明細書に提示される技術の第２の例示的な実施形態（図示せず）は、デバイス集合体１０４の１次デバイス２０２によって伝送された１次コンピューティング環境２０４をユーザ１０２に対して提示するように補助デバイス２０６を構成する例示的な方法を含む。この効果を実現する例示的な方法は、例えば、補助デバイス２０６に、補助デバイス２０６のデバイス特性１０８のセットを１次デバイス２０２に伝送させ、補助デバイス２０６の補助コンピューティング環境２０８内でアプリケーション１１２をインスタンス化することを求める要求を受信したのに応答して、この要求を１次デバイス２０２に伝送させ、補助デバイス２０６のデバイス特性１０８に従って適合された１次デバイス２０２によって実行されるアプリケーション１１２を含む補助コンピューティング環境２０８の提示を含むストリーム２０１４を１次デバイス２０２から受信したのに応答して、ユーザ１０２に対して補助コンピューティング環境２０８を提示させる命令を、補助デバイス２０６のプロセッサ上で実行することを含むことがある。このようにして、この例示的な方法は、本明細書に提示される技術に従って補助デバイス２０６がユーザ１０２に対して１次コンピューティング環境２０４を提示できるようにすることができる。
【００３１】
[0044]  図４は、本明細書に提示される技術の少なくとも一部分を実施する例示的な１次デバイス４０２および例示的な補助デバイス４０６上にそれぞれ実装される例示的なシステムとして示される、本明細書に提示される技術のさらなる例示的な実施形態を提示する図である。例示的な１次デバイス４０２は、１次コンピューティング環境２０４（例えば、アプリケーション１１２のセット、アプリケーション構成、デバイスドライバ、文書およびメディアオブジェクトなどのファイル１１４、ユーザのアカウントおよび身分証明、ならびにアプリケーションの状態）のホストとして機能し、かつ／または１次コンピューティング環境２０４を管理する。例示的な補助デバイス４０４は、少なくとも１つのデバイス特性１０８（例えばデバイスタイプ、そのハードウェアもしくはソフトウェア構成要素および／または機能、ならびに／あるいはユーザ１０２が例示的な補助デバイス４０４と対話する状況）と、例示的な補助デバイス４０４が例示的な１次デバイス４０２から補助コンピューティング環境２０８を受信しないときに通常提示する固有コンピューティング環境４３２とを呈する。さらに、この例示的なシナリオ４００では、例示的な１次デバイス４０２および例示的な補助デバイス４０４はそれぞれ、プロセッサ４０６およびメモリ４０８を含み、例示的なシステムは、それぞれの例示的なデバイスに、本明細書に提示される技術に従ってユーザ１０２に対してコンピューティング環境を提示させる。それぞれの例示的なシステムは、例えばそれぞれの例示的なデバイスのメモリ４０８に記憶された命令のセットをそれぞれ含む構成要素のセットとして実装することができ、それぞれの構成要素の命令は、プロセッサ４０６で実行されたときに、例示的なデバイスを、本明細書に提示される技術に従って動作させる。あるいは、それぞれの構成要素は、本明細書に提示される技術に従って動作するディスクリートの回路またはハードウェアデバイス、またはその組合せとして実装することができる。
【００３２】
[0045]  例示的な１次デバイス４０２は、補助コンピューティング環境生成器４１２を含む第１の例示的なシステム４１０を含み、この補助コンピューティング環境生成器４１２は、例示的な補助デバイス４０４について、その例示的な補助デバイス４０４のデバイス特性１０８に従って１次コンピューティング環境２０４をその例示的な補助デバイス４０４の補助コンピューティング環境２０８を生成するように適合させる（４２６）。第１の例示的なシステム４１０は、補助デバイスアプリケーションインスタンシエータ４１４をさらに含み、この補助デバイスアプリケーションインスタンシエータ４１４は、例示的な補助デバイス４０４の補助コンピューティング環境２０８内で選択されたアプリケーション１１２をインスタンス化することを求める要求４２８を受信したのに応答して、例示的な補助デバイス４０４のデバイス特性１０８に従って補助コンピューティング環境２０８内で選択されたアプリケーション１０８を適合させ、例示的な補助デバイス４０４の代わりに選択されたアプリケーション１１２を実行する（４３０）。第１の例示的なシステム４１０は、補助コンピューティング環境伝送器４１６をさらに含み、この補助コンピューティング環境伝送器４１６は、補助コンピューティング環境２０８の提示を例示的な補助デバイス４０４にストリーミングする（２１４）。
【００３３】
[0046]  例示的な補助デバイス４０４は、デバイス特性伝送器４２０を含む第２の例示的なシステム４１８を含み、このデバイス特性伝送器４２０は、例示的な補助デバイス４０４のデバイス特性１０８を例示的な１次デバイス４０２に伝送する。第２の例示的なシステムは、補助環境プレゼンタ４２４をさらに含み、この補助環境プレゼンタ４２４は、例示的な１次デバイス４０２によって実行され、例示的な補助デバイス４０４のデバイス特性１０８に従って適合されたアプリケーション１１２を含む補助コンピューティング環境２０８の提示を含むストリーム２１４を例示的な１次デバイス４０２から受信したのに応答して、補助コンピューティング環境２０８をユーザ１０２に対して提示する。補助デバイス４０４は、固有環境インスタンシエータ４２０をさらに含み、この固有環境インスタンシエータ４２０は、例示的な補助デバイス４０４上に補助コンピューティング環境２０８を提示することを求める要求を受信したのに応答して、例示的な補助デバイス４０４を固有コンピューティング環境４３２の提示から補助コンピューティング環境２０８の提示に移行させる。このようにして、このような例示的なシステムを利用した例示的な１次デバイス４０２および例示的な補助デバイス４０４の相互運用により、本明細書に提示される技術に従ってコンピューティング環境をユーザ１０２に対して協働提示できるようにすることができる。
【００３４】
[0047]  さらに別の実施形態は、本明細書に提示される技術を適用するように構成されたプロセッサ実行可能命令を含むコンピュータ可読媒体を含む。このようなコンピュータ可読媒体は、様々な有線シナリオ（例えばイーサネットまたは光ファイバケーブルを介する）で、かつ／またはワイヤレスシナリオ（例えばWiFiなどのワイヤレスローカルエリアネットワーク（WLAN）、Bluetoothなどのパーソナルエリアネットワーク（PAN）、またはセルラもしくは無線ネットワーク）で、様々な物理現象を介して伝搬させることができる、デバイスのプロセッサによって実行されたときにそのデバイスに本明細書に提示される技術を実施させるコンピュータ可読命令のセットを符号化した信号（例えば電磁信号、音波信号、または光信号）など、様々なタイプの通信媒体を含むことができる。このようなコンピュータ可読媒体は、デバイスのプロセッサによって実行されたときにそのデバイスに本明細書に提示される技術を実施させるコンピュータ可読命令のセットを符号化した、メモリ半導体（例えばスタティックランダムアクセスメモリ（SRAM）、ダイナミックランダムアクセスメモリ（DRAM）、および／またはシンクロナスダイナミックランダムアクセスメモリ（SDRAM）技術を利用する半導体）、ハードディスクドライブのプラッタ、フラッシュメモリデバイス、あるいは磁気ディスクまたは光ディスク（CD-R、DVD-R、またはフロッピーディスクなど）などのコンピュータ可読メモリデバイスを（通信媒体を除く技術クラスとして）含むことができる。
【００３５】
[0048]  これらの方法で設計することができる例示的なコンピュータ可読媒体が、図５に示してある。図５において、実施態様５００は、コンピュータ可読データ５０４が符号化されたコンピュータ可読メモリデバイス５０２（例えばCD-R、DVD-R、またはハードディスクドライブのプラッタ）を含む。このコンピュータ可読データ５０４は、デバイス５１０のプロセッサ４０６で実行されたときに、デバイス５１０を本明細書に記載する原理に従って動作させるコンピュータ命令５０６のセットを含む。第１のこのような実施形態では、プロセッサ実行可能命令５０６は、１次デバイス２０２に、図３の例示的な方法３００など、デバイス集合体１０４の１つまたは複数の補助デバイス２０６を通してユーザ１０２に対してコンピューティング環境を提示させることができる。第３のこのような実施形態では、プロセッサ実行可能命令５０６は、１次デバイス２０２および／または補助デバイス２０６に、図４の例示的なシナリオ４００に提示される例示的なシステムなど、ユーザ１０２に対してコンピューティング環境を提示するシステムを実装させることができる。当業者なら、本明細書に提示される技術に従って動作するように構成された多数のこのようなコンピュータ可読媒体を考案することができる。
【００３６】
[0049]  Ｅ．変形形態
[0050]  本明細書に述べる技術は、多くの態様で様々な変形を加えた設計にすることができ、いくつかの変形形態は、上記およびその他の技術の他の変形形態と比較して、追加の利点を提示し、かつ／または欠点を軽減することができる。さらに、いくつかの変形形態を組み合わせて実施することもでき、いくつかの組合せは、相乗効果的な協働関係によって追加の利点および／または軽減した欠点を特徴とすることができる。これらの変形形態は、様々な実施形態（例えば図3の例示的な方法300、図4の例示的なシステム410、418、および図5の例示的なメモリデバイス502）に組み込んで、それらの実施形態に個別の、かつ／または相乗効果的な利点をもたらすことができる。
【００３７】
[0051]  Ｅ１．シナリオ
[0052]  これらの技術の複数の実施形態間で変化する可能性がある第１の態様は、これらの技術を利用することができるシナリオに関する。
【００３８】
[0053]  この第１の態様の第１の変形形態として、本明細書に提示される技術を利用して、ワークステーション、ラップトップ、タブレット、携帯電話、ゲームコンソール、携帯ゲームデバイス、携帯型または非携帯型メディアプレイヤ、テレビジョンなどのメディアディスプレイデバイス、家庭器具、ホームオートメーションデバイス、接眼レンズまたは腕時計などを一体化したウェアラブルデバイスと一体化されたコンピューティング構成要素、ならびに監視制御およびデータ取得（SCADA）デバイスなど、デバイス集合体１０４の様々なデバイス１０６の構成を実現することができる。
【００３９】
[0054]  この第１の態様の第２の変形形態として、本明細書に提示される技術は、オフィス生産性アプリケーション、オーディオプレイヤおよびビデオプレイヤなどのメディア提示アプリケーション、ウェブブラウザ、電子メールクライアント、チャットクライアント、およびボイスオーバＩＰ（VoIP）クライアントなどの通信アプリケーション、ジオロケーション、マッピング、およびルーティングアプリケーションなどのナビゲーションアプリケーション、ユーザ１０２に警報を提示する天候およびニュースモニタリングアプリケーションなどのユーティリティ、ならびにゲームなど、各補助デバイス２０６の補助コンピューティング環境２０８内に提示される様々なアプリケーション１１２とともに利用することができる。さらに、補助コンピューティング環境２０８のアプリケーション１１２は、テキスト、画像、ライブ、および／または事前記録ビデオ、音響効果、音楽、音声、触覚フィードバック、３次元レンダリング、ならびにインタラクティブおよび／または非インタラクティブユーザインタフェースなどの１つまたは複数の提示モダリティ、ならびにテキスト入力、ポインティング入力、触覚入力、ジェスチャ入力、言語入力、および視線トラッキング入力など、ユーザ１０２からユーザ入力を受け取る様々な技術を通したコンテンツの提示を含むことができる。
【００４０】
[0055]  この第１の態様の第３の変形形態として、本明細書に提示される技術は、デバイス集合体１０４のデバイス１０６内で、かつ／またはそれらの間で、様々なアーキテクチャで利用することができる。第１のこのような例としては、１次デバイス２０２は、デバイス集合体１０４の一部（例えばユーザ１０２の携帯電話）とすることもでき、したがって、補助デバイス２０６として動作することもできる。ユーザ１０２は、異なる時点で、かつ／または異なる状況下で、様々な補助デバイス２０６を、１次デバイス２０２として指定することができる。あるいは、１次デバイス２０２は、デバイス集合体１０４の外部であってもよく、デバイス集合体１０４と対話して、補助コンピューティング環境２０８を各補助デバイス１０８に合わせて駆動することもできる。第２のこのような例としては、１次デバイス２０２および／または各補助デバイス２０６は、有線ディスプレイ、スピーカ、およびヘッドホンなどの各デバイスに直接かつ物理的に接続された構成要素を利用することができる。第３のこのような例としては、１次デバイス２０２および／または各補助デバイス２０６は、無線周波などのワイヤレス接続を介してアクセス可能な１つまたは複数の構成要素を利用することができる。第４のこのような例としては、１次デバイス２０２および／または各補助デバイス２０６は、パーソナルエリアネットワーク、ローカルエリアネットワーク、および／または広域ネットワークを介して通信して、本明細書に提示される技術に従って相互運用することができる。第５のこのような例としては、１次デバイス２０２および／または各補助デバイス２０６は、クライアント／サーバまたはピアツーピアアーキテクチャなどでデバイス集合体１０４の別のデバイスを介してアクセス可能な１つまたは複数の構成要素を利用することができる。さらに、デバイス集合体１０４の１次デバイス２０２および／または各補助デバイス２０６は、１人のユーザ１０２が利用することも、ユーザ１０２のグループが利用することもでき、かつ／または少なくとも１人の第２のユーザ１０２の代わりに少なくとも１人の第１のユーザ１０２が制御することもできる。上記およびその他のシナリオは、本明細書に提示される技術によるデバイス集合体１０４の１次デバイス２０２および各補助デバイス２０６の相互運用によるコンピューティング環境の提示に適している可能性がある。
【００４１】
[0056]  Ｅ２．補助コンピューティング環境の生成および伝送
[0057]  本明細書に提示される技術の複数の実施形態間で変化する可能性がある第２の態様は、１次デバイス２０２が補助コンピューティング環境２０８を含むストリーム２１４を各補助デバイス２０６に伝送し、各補助デバイス２０６がその補助コンピューティング環境２０８をユーザ１０２に対して提示する方法に関する。
【００４２】
[0058]  この第２の態様の第１の変形形態としては、補助デバイス２０６の多数のタイプのデバイス特性１０８を識別し、使用して、補助デバイス２０６用に補助コンピューティング環境２０８および／またはその中で実行されるアプリケーション１１２を生成して適合させることができる。第１のこのような例としては、補助デバイス２０６のデバイス特性１０８は、様々なプロセッサおよびコプロセッサの計算スループット、並列処理サポート、および命令セットアーキテクチャ、メモリおよび記憶装置の容量、速度、および揮発性、キーボード、マウス、タッチセンスディスプレイ、マイクロホン、およびカメラなどの様々な入力デバイスのモダリティ、感度、および認識機能、様々な視覚的出力デバイスのサイズ、解像度、および応答性、様々なオーディオ出力デバイスの音量および音質、様々な通信デバイスのスループット、待ち時間、およびバッファ容量、ならびにプリンタ、スキャナ、および生物測定センサなどの様々なその他の周辺デバイスの特性など、様々なハードウェア構成要素の存在および機能を含むことができる。第２のこのような例としては、補助デバイス２０６のデバイス特性１０８は、様々な形態のメディアの符号化および／または復号、様々なタイプのデータの暗号化、圧縮、解凍、解読、および／または検証、ハードウェアおよび／またはソフトウェアエミュレーションあるいは様々なタイプの言語構文解析または翻訳リソースのアクセス可能性などを介した様々な命令セットおよび仮想デバイスの利用、３次元グラフィックスレンダリングなど様々なタイプのグラフィックス要求の処理、ならびにユーザ認証など様々なセキュリティ対策の適用など、ソフトウェアによって部分的または完全に実現することができる計算機能を含むことができる。第３のこのような例としては、補助デバイス４０４のデバイス特性１０８は、電力の利用可能性（例えば商用電源、バッテリ、および無停電電源（UPS）の存在および動作状態）など、補助デバイス２０６が使用される状況を含むことができる。第４のこのような例としては、補助デバイス２０６のデバイス特性１０８は、ネットワークアタッチトストレージ（NAS）のアクセス可能性など補助デバイス１０８と他のデバイスとの間の相互関係、ならびに他のデバイスとのピアツーピア、クライアント／サーバ、および／または上位下位関係などネットワークにおける補助デバイス２０６の役割を含むことができる。第５のこのような例としては、補助デバイス２０６のデバイス特性１０８は、補助デバイス２０６の公共性、専用性、および／または保護性など、１人または複数のユーザ１０２が補助デバイス２０６と対話する状況、ならびに特定のユーザ１０２が通常補助デバイス２０６を利用して実行するタスクを含むことができる。
【００４３】
[0059]  この第２の態様の第２の変形形態としては、１次デバイス２０２は、様々な方法で、補助デバイス２０６のデバイス特性１０８を決定することができる。第１のこのような例としては、補助デバイス２０６は、補助デバイス２０６の各ハードウェア構成要素に問い合わせてこれを識別することなどによって、補助デバイス２０６の様々なデバイス特性を検出することができ、この情報を１次デバイス２０２に伝送することができる。第２のこのような例としては、補助デバイス２０６は、補助デバイス識別子（例えば製品番号、型番、および／または通し番号）を含むことができ、１次デバイス２０２および／または補助デバイス２０６は、デバイスカタログ中の補助デバイス４０４のデバイス特性１０８を検索して、補助デバイス識別子と関連する補助デバイス２０６のデバイス特性１０８を識別することができる。第３のこのような例としては、補助デバイス２０６および／または１次デバイス２０２は、特定の動作条件下での補助デバイス２０６の動作を測定することができる（例えば、試験条件下で、または通常使用時に、補助デバイス２０６の処理容量および／またはネットワーク容量を評価する）。第４のこのような例としては、補助デバイス２０６および／または１次デバイス２０２は、補助デバイス２０６のデバイス特性１０８を予測および／または推定することができる。例えば、ユーザ１０２が補助デバイス２０６と対話する状況を、補助デバイス２０６を用いて実行されることが多いタスクをモニタリングすることによって行われる推定によって決定することができる。第５のこのような例としては、補助デバイス２０６および／または１次デバイス２０２は、１人または複数のユーザ１０２から補助デバイス２０６のデバイス特性１０８についての情報を受信することができる。第６のこのような例としては、１次デバイス２０２が、（例えば補助デバイス２０６のアプリケーション１１２をインスタンス化することを求める要求の受信時に）このような情報がないか補助デバイス２０６にポーリングすることができ、かつ／または補助デバイス２０６が、この情報を１次デバイス２０２に（例えばデバイス集合体１０４に加入することを求める要求の一部として）プッシュすることができる。
【００４４】
[0060]  この第２の態様の第３の変形形態としては、１次デバイス４０２は、いくつかの方法で１次コンピューティング環境２０４から適合された補助コンピューティング環境２０８を生成することができる。第１のこのような例としては、１次デバイス２０２は、１次コンピューティング環境２０４をテンプレート画像として記憶することができ、補助コンピューティング環境２０８を、補助デバイス２０６のデバイス特性１０８に鑑みて調整が施された１次コンピューティング環境２０４のクローンとして生成することができる。第２のこのような例としては、１次デバイス２０２は、１次コンピューティング環境２０４を能動的に利用することができ、ｄｉｆｆファイルなどの変換を生成、記憶、および適用して、特定の補助デバイス２０６用に適合された補助コンピューティング環境２０８を生成することができる。第３のこのような例としては、１次コンピューティング環境２０４は、全ての補助デバイス２０６で利用可能な機能のスーパーセット（例えばオペレーティングシステムおよびコンピューティング環境設定の完全なセット、アプリケーション１１２、アプリケーション構成、アプリケーション状態、ならびにユーザカウント）を含むことができ、１次デバイス２０２は、その１次コンピューティング環境２０４の機能のサブセットを、特定の補助デバイス２０６の補助コンピューティング環境２０８として選択することができる。例えば、特定のアプリケーション１１２を、１次コンピューティング環境２０４内に、様々なタイプの補助デバイス２０６用にそれぞれ適合されたアプリケーションバリアントのセット（例えばワークステーションフォームファクタのユーザインタフェース、大型ディスプレイのユーザインタフェース、および様々な移動デバイスの小型ディスプレイのユーザインタフェース）として記憶することができ、１次デバイス２０２は、各補助デバイス２０６の補助コンピューティング環境２０８内における提示に適したアプリケーションバリアントを選択することができる。このような技術は、１次デバイス２０２のリソースの再利用を可能にすることができる（例えば、多数の補助デバイス２０６の代わりに、特定のアプリケーションまたはアプリケーションライブラリの単一のコピーを記憶し、使用する）。
【００４５】
[0061]  この第２の態様の第４の変形形態としては、１次デバイス２０２は、様々な方法で、補助コンピューティング環境２０８のストリーム２１４を補助デバイス２０６に対してレンダリングおよび／または伝送することができる。第１のこのような例としては、１次デバイス２０２は、補助デバイス２０６から入力ストリームを受信することができ、かつ／あるいはビデオおよび／またはオーディオ出力を補助デバイス２０６にストリーミングすることができる。第２のこのような例としては、１次デバイス２０２は、ストリーム２１４中の次のビデオフレームを生成するための現在提示されているビデオフレームの差分更新などの図形要素命令のストリームを補助デバイス２０６に伝送することができる。第３のこのような例としては、１次デバイス２０２は、補助デバイス２０６上で実行すると補助デバイス２０６の補助コンピューティング環境２０８の一部または全てをレンダリングすることができる下位アプリケーションを補助デバイス２０６に伝送することができる。第４のこのような例としては、１次デバイス２０２は、補助コンピューティング環境２０８の一部分または全体のストリーム２１４を２つ以上の補助デバイス２０６にマルチキャストして、それらにおいて提示することができる。第５のこのような例としては、１次デバイス２０２は、補助コンピューティング環境２０８の一部分を第１の補助デバイス２０６に伝送し、そこから補助コンピューティング環境２０８をユーザ１０２に対して提示する第２の補助デバイス２０６に再伝送することができる。
【００４６】
[0062]  この第２の態様の第５の変形形態としては、１次デバイス２０２は、補助コンピューティング環境２０８の提供の仕方を適合させて、各補助デバイス２０６上で適当なユーザエクスペリエンスを提供することができる。例えば、１次デバイス２０２は、特定の数の補助デバイス２０６について適切に応答可能なユーザエクスペリエンスを提供するのに十分な計算リソースを有することができるが、補助デバイス２０６の数が多すぎて過負荷状態になった場合には、１次デバイス２０２は、一部の補助デバイス２０６の補助コンピューティング環境２０８のストリーム２１４の伝送の遅れおよび／または中断など、劣化した不十分な性能を呈する可能性がある。様々な技術を利用して、劣化した不十分なサービス品質を改善することができる。第１のこのような例としては、１次デバイス２０２は、１次デバイス２０２が同時に駆動することができる補助デバイス２０６の最大補助デバイスカウント（例えば同時にサービスされる補助デバイス２０６は最大で６個など）を推定することができ、デバイス集合体１０４を構成する補助デバイス２０６の補助デバイスカウントを最大補助デバイスカウントに制限することができる。このような推定は、１次デバイス２０２が各補助デバイス２０６の補助コンピューティング環境２０８のユーザエクスペリエンスの品質を最低限に抑えた状態で（例えば、各補助デバイス２０８が一貫して毎秒２０フレーム以上のストリーム２１４を受信できることを保証して）駆動することができる補助デバイスの最大補助デバイスカウントの推定など、様々な状況を含む可能性がある。このような推定は、例えば、様々な状況で補助デバイス２０６上で実現可能なサービス品質を測定することによって通知することができ、変化する状況を反映するように適合することができる（例えば、より豊富な処理容量および／またはネットワーク容量が与えられる場合には、最大補助デバイスカウントを拡大する）。補助デバイス２０６に対する補助コンピューティング環境２０８の生成、提示、および伝送における多数のこのような構成を、本明細書に提示される技術に従って利用することができる。
【００４７】
[0063]  Ｅ３．アプリケーションのインスタンス化および実行
[0064]  本明細書に提示される技術の複数の実施形態間で変化する可能性がある第３の態様は、補助デバイス２０６の補助コンピューティング環境２０８内でアプリケーション１１２をインスタンス化および／または実行する方法を含む。
【００４８】
[0065]  この第３の態様の第１の変形形態としては、ユーザ１０２による特定の補助デバイス２０６のユーザ選択に応じて、補助コンピューティング環境２０８内でアプリケーション１１２をインスタンス化することを求める要求４２８である。例えば、特定の補助デバイス２０６について、１次デバイス２０２は、１次コンピューティング環境２０４のアプリケーションセットから、補助デバイス２０６の補助コンピューティング環境２０８内に提示されるアプリケーション１１２のアプリケーションサブセットを選択することができる。１次デバイス２０２は、補助デバイス２０６に対して補助コンピューティング環境２０８内でそのアプリケーションサブセットを（例えば利用可能なアプリケーション１１２のリストまたはメニューとして）提示することができ、補助コンピューティング環境２０８内に提示されるそのアプリケーションサブセットからのアプリケーション１１２の選択を受信することができる（例えば、補助デバイス２０６の補助コンピューティング環境２０８内に提示されたメニューからのアプリケーション１１２のユーザ選択をユーザ１０２から受信する）。
【００４９】
[0066]  この第３の態様の第２の変形形態としては、第１の補助デバイスの第１の補助コンピューティング環境２０８内のアプリケーション１１２をインスタンス化することを求める要求４２８を受信することができ、この要求４２８は、デバイス集合体１０４の第２の補助デバイス２０６のユーザ１０２から受信される。したがって、１次デバイス２０２は、第１の補助デバイス２０６の第１の補助コンピューティング環境２０８内で選択されたアプリケーション１１２をインスタンス化することによって、要求４２８を満たすことができる。
【００５０】
[0067]  この第３の態様の第３の変形形態としては、デバイス集合体１０４のユーザ１０２に、デバイス集合体１０４の１つまたは複数の補助デバイス２０６を通して、かつ／またはそれらの補助デバイス２０６の代わりに実行可能なアプリケーション１１２の集合全体を最初に提示することができる。ユーザ１０２がアプリケーションセットの選択されたアプリケーションの選択を提供すると、次いで、ユーザ１０２に、アプリケーション１１２を実行することができる補助デバイス２０６のリストを提示することができ、選択された補助デバイス２０６の選択を受信したのに応答して、１次デバイス２０２は、選択された補助デバイス２０６の補助コンピューティング環境２０８内でアプリケーション１１２をインスタンス化することができる。別のこのような例としては、ユーザ１０２に、デバイス集合体１０４を構成する補助デバイス２０６のリストを最初に提示することができる。選択された補助デバイス２０８の選択を受信したのに応答して、ユーザに、選択された補助デバイス２０８上で実行可能なアプリケーション１１２のアプリケーションサブセットを提示することができ、このアプリケーションサブセットの選択されたアプリケーション１１２の選択を受信したのに応答して、１次デバイス２０２は、選択された補助デバイス２０６の補助コンピューティング環境２０８内で選択されたアプリケーション１１２をインスタンス化することができる。
【００５１】
[0068]  この第３の態様の第４の変形形態としては、デバイス集合体１０４のユーザ１０２は、特定の補助デバイス２０６のアプリケーションサブセットの選択（例えば補助デバイス２０６の推奨アプリケーション１１２のセット）を無効にすることができる。補助デバイス２０６について選択されているアプリケーションサブセットのみではなく、補助コンピューティング環境２０８内に１次コンピューティング環境２０４のアプリケーションセット全体を提示することを求める要求を受信したのに応答して、ユーザ１０２に、アプリケーションセット全体を提示することができる。補助デバイス２０６について選択されたアプリケーションサブセット内にはない補助デバイス２０６についての選択されたアプリケーション１１２の選択を受信したのに応答して、１次デバイス２０２は、選択された補助デバイス２０６の補助コンピューティング環境２０８内で選択されたアプリケーション１１２をインスタンス化することができる。
【００５２】
[0069]  この第３の態様の第５の変形形態としては、１次デバイス２０２は、デバイス集合体１０４の補助デバイス２０６を自動的に選択して、選択されたアプリケーション１１２をインスタンス化することができる。例えば、選択されたアプリケーション１１２をインスタンス化することを求める要求４２８であるが、そのアプリケーション１１２をその補助コンピューティング環境２０８内で実行するデバイス集合体１０４の選択された補助デバイス２０８を示していない要求４２８をユーザ１０２から受信したのに応答して、１次デバイス２０２は、デバイス集合体１０４から、そのデバイス特性１０８が選択されたアプリケーション１１２に匹敵する少なくとも１つの候補補助デバイス２０６を識別することができる。１次デバイス２０２は、次いで、候補補助デバイス２０６から選択された補助デバイス２０６を選択し、選択した補助デバイス２０６の補助コンピューティング環境２０８内で選択されたアプリケーション１１２をインスタンス化することができる。
【００５３】
[0070]  図６は、特定の補助デバイス２０６の補助コンピューティング環境２０８内のアプリケーション１１２のインスタンス化を可能にする追加の技術を特徴とする例示的なシナリオを示す図である。図６の第１の例示的なシナリオ６００では、ユーザ１０２には、例えばそれぞれの補助デバイス２０６および各補助デバイス２０６上で利用可能なアプリケーションサブセット６０４のリストなど、補助デバイスアプリケーションセット６０２のリストを最初に提示することができる。特定の補助デバイス２０６の選択されたアプリケーションサブセット６０４内での選択されたアプリケーション１１２の選択６０６をユーザ１０２から受信したのに応答して、１次デバイス２０２は、選択された補助デバイス２０６の補助コンピューティング環境２０８内でそのアプリケーション１１２をインスタンス化することができる。
【００５４】
[0071]  図６の第２の例示的なシナリオ６１０では、ボイスオーバＩＰ（VoIP）アプリケーションなどのアプリケーション１１２は、ユーザ１０２に対して提示される着呼６１２などの事象によって開始することができる。１次デバイス２０２は、最初に、アプリケーション１１２が利用する構成要素および機能（例えばマイクロホンおよびスピーカ）など、アプリケーションの様々なアプリケーション基準６１４、事象を取り扱う目的の補助デバイス１０８の利用可能性など、補助デバイス２０６についての基準、および／またはユーザ１０２の補助デバイス２０６に対する近接性など、ユーザ１０２についての基準を評価することによって、この事象に反応することができる。デバイス特性評価６１６を実行して、アプリケーション１１２のアプリケーション基準６１４に匹敵する候補補助デバイス２０６を識別することができる。例えば、ユーザ１０２が、会議に参加している間に様々な補助デバイス２０６を利用している場合には、第１の補助デバイス２０６が、マイクロホンおよびスピーカを有し、ユーザ１０２の近傍にあるが、事象を取り扱うために利用することはできないことがある（例えば、補助デバイス２０６が、ユーザ１０２が会議中にプレゼンテーションを表示するために使用しているラップトップコンピュータ、またはユーザのポケットの中にある電話を含むが、ユーザ１０２が「Ｄｏ  Ｎｏｔ  Ｄｉｓｔｕｒｂ」オプションを起動していることもある）。第２の補助デバイス２０６も、マイクロホンおよびスピーカを含み、事象を取り扱うために利用可能であるが、ユーザ１０２の近傍にはないこともある（例えば、補助デバイス２０６が、遊休状態である可能性があるユーザのワークステーションを含むが、ユーザ１０２が会議に出掛けているときにユーザのオフィスに置かれていることもある）。第３の補助デバイス２０６は、アプリケーション基準６１４に一致するデバイス特性１０８を呈することがある（例えば、会議中にユーザ１０２が装着している特定の構成要素を有するイヤピースが、ユーザ１０２の近傍にあり、着呼６１２を提示するために利用可能である）。１次デバイス２０２は、したがって、その事象のために（デバイス集合体１０４の唯一の候補補助デバイス２０６として）第３の補助デバイス２０６の選択６１８を実行することができ、着呼６１２をユーザ１０２に対して提示するために第３の補助デバイスにルーティングすることができる。
【００５５】
[0072]  この第３の態様の第６の変形形態としては、１次デバイス２０２は、特定の補助デバイス２０６の補助コンピューティング環境２０８についてのアプリケーション１１２の全体をローカルで実行することができ、ユーザインタフェースのイメージのみを補助デバイス２０６に伝送することができる。あるいは、１次デバイス２０２は、アプリケーション１１２のいくつかの構成要素を、補助デバイス２０８が使用できるように補助デバイス２０８に展開することもできる。例えば、１次デバイス２０２が、第１のグラフィックスコプロセッサを含むことができ、特定の補助デバイス２０８が、第２のグラフィックスコプロセッサを含むこともできる。補助デバイス２０８の代わりにアプリケーション１１２を実行するために、１次デバイス２０２は、第１のグラフィックスコプロセッサでアプリケーション１１２のグラフィックスをレンダリングすることもでき、このグラフィックスをレンダリングするために補助デバイス２０８の第２のグラフィックスコプロセッサに送達される命令をアプリケーション１１２に含めるためにストリーム２１４に含めることもでき、かつ／またはその組合せを利用することもでき、ここで、このグラフィックスレンダリングの一部は、第１のグラフィックスコプロセッサ上で実行され、残りは第２のグラフィックスコプロセッサ上で実行される。この判断は、例えばこのようなグラフィックスコプロセッサそれぞれの機能の比較、各グラフィックスコプロセッサの現在の負荷（例えば、１次デバイス２０２は、そのグラフィックスコプロセッサが他のアプリケーション１１２によって集中的に利用されている場合には、一部の処理をオフロードすることができる）、および／または各プロセスの効率の比較（例えば、グラフィックス命令のストリーム２１４を送信する場合に達成可能なネットワークスループットと、部分的または完全にレンダリングされたビデオを送信する場合に達成可能なネットワークスループットとの比較）に基づいて行うことができる。アプリケーション１１２の実行の分散におけるその他のこのような変形形態は、例えば、補助コンピューティング環境２０８に適用するために補助デバイス２０６から生デバイス入力（例えばマウスの動き）を受信するように１次デバイス２０２を構成する、またはユーザ入力の何らかの初期分析を実行するように補助デバイス２０６を構成し、補助コンピューティング環境２０８に適用するために補外した結果（ポインタ関連事象メッセージなど）を１次デバイス２０２に送信すること、ならびに補助デバイス２０８によってレンダリングされるアプリケーション１１２のユーザインタフェースのいくつかのより高レベルな詳細を提供することを含むことができる（拡張可能アプリケーションマークアップ言語（XAML）ドキュメントを補助デバイス２０８に送信すること、およびそこに記載されているユーザインタフェースを補助コンピューティング環境２０８内にレンダリングする命令を送信することなど）。
【００５６】
[0073]  この第３の態様の第７の変形形態としては、デバイス集合体１０４内でインスタンス化されるアプリケーション１１２を、２つ以上の補助デバイス２０６にわたって分散させることができる。例えば、第１の補助デバイス２０６および第２の補助デバイス２０６のデバイス特性１０８に従って、アプリケーション１１２のアプリケーション基準６１４を、第１のアプリケーション部分と第２のアプリケーション部分とに分割することができる。例えば、ビデオチャットアプリケーション１１２を、ユーザ１０２のビデオチャットセッションへの入力を取り込むことができる、カメラおよびマイクロホンを特徴とする第１の補助デバイス２０６と、ビデオチャットセッションのユーザインタフェースおよび出力をユーザ１０２に対して提示することができる、ディスプレイおよびスピーカを特徴とする第２の補助デバイス２０６とに分割することができる。第１のアプリケーション部分は、第１の補助デバイス２０６の第１の補助コンピューティング環境２０８内でインスタンス化することができ（第１の補助デバイス２０６に伝送されるストリーム２１４は、第１のアプリケーション部分は含む可能性があるが、第２のアプリケーション部分は含まない可能性がある）、第２のアプリケーション部分は、第２の補助デバイス２０６の第２の補助コンピューティング環境２０８内でインスタンス化することができる。１次デバイス２０２がアプリケーション１１２を実行しているので、１次デバイス２０２は、この分割を調整することができる。したがって、この分割は、アプリケーション１１２に通知しなくても、かつ／あるいはアプリケーション１１２が特に分割を可能にする、またはサポートするように構成されていない場合でも、行うことができる。
【００５７】
[0074]  この第３の態様の第８の変形形態としては、１次デバイス２０２は、第１の補助デバイス２０６の補助コンピューティング環境２０８内で実行されるアプリケーション１１２の代わりにユーザ入力を受信することを求める要求を受信することがあり、アプリケーション１１２を第２の補助デバイス２０６の入力構成要素に結合することによってこの要求を満たすことがある。例えば、１次デバイス２０２は、アプリケーション１１２からのこのような要求（例えば、アプリケーション１１２が実行される補助デバイス２０６がサポートしていない特定のタイプのユーザ入力を受信することを求める要求）および／またはユーザ１０２からのこのような要求（例えば、第１の補助デバイス１０８の入力構成要素を第２の補助デバイス２０６の第２の補助コンピューティング環境２０８内で実行されるアプリケーション１１２に結合することを求めるユーザ１０２からの要求）を受信することがある。この要求を満たす際に、１次デバイス２０２は、デバイス集合体１０４の補助デバイス２０６の中から、要求に匹敵するデバイス特性１０８を呈する選択された補助デバイス２０６を識別することができる。次いで、１次デバイス２０２は、選択された補助デバイス２０６のユーザ入力をアプリケーション１１２に結合することができる。このような識別および結合は、アプリケーション１１２が第１の補助デバイス２０６の補助コンピューティング環境２０８内で実行されており、ユーザ入力が第２の補助デバイス２０６の入力構成要素に結合されている場合でも、起こり、実現することができる。
【００５８】
[0075]  図７は、選択されたアプリケーション１１２を複数の補助デバイス２０６間で分割することによってアプリケーション要求４２８を満たす、１つのこのような分割を特徴とする例示的なシナリオ７００を示す図である。この例示的なシナリオ７００では、１次デバイス２０２は、少なくとも２つのユーザ入力７０２のソース（例えば、２つのポインティングデバイス、キーボードとマウス、またはカメラとマイクロホン）を利用することができる特定のアプリケーション１１２をインスタンス化することを求める要求４２８を受信する。１次デバイス２０２は、第１の補助デバイス２０６が、ユーザ入力７０２の第１のソースを提供することができ、また第２の補助デバイス２０６が、ユーザ入力７０２の第２のソースを提供することができ、ユーザ１０２に対してアプリケーションユーザインタフェースを提示することができると判定することができる。したがって、１次デバイス２０２は、ローカルでアプリケーション１１２をインスタンス化し、このアプリケーション１１２を実行することができるが、ユーザ入力７０２の第１のソースを第１の補助デバイス２０６の第１の補助コンピューティング環境２０８内に展開し（例えば、ユーザ１０２の付近に位置決めされたマイクロホンの使用を確保する）、ユーザ入力７０２の第２のソースを第２の補助デバイス２０６の第２の補助コンピューティング環境２０８内に展開する（例えば、ユーザ１０２の画像を取り込むカメラおよびアプリケーション１１２のユーザインタフェースを提示するディスプレイの使用を確保する）ことができる。１次デバイス２０２は、このようなユーザ入力７０２を各補助デバイス２０６から受信し、このユーザ入力７０２をアプリケーション１１２に搬送し、アプリケーション１２のアプリケーションユーザインタフェースを第２の補助デバイス２０６の補助コンピューティング環境２０８内で伝送することができる。
【００５９】
[0076]  図８は、デバイス集合体１０４の補助デバイス２０６間での入力結合の別のこのような応用を特徴とする例示的なシナリオ８００を示す図である。この例示的なシナリオ８００では、各補助デバイス２０６は、各補助コンピューティング環境２０８およびアプリケーション１１２のユーザインタフェースをその中に提示することができるデスクトップ環境または提示領域などの環境スペース８０４を呈することがある。さらに、１次デバイス２０２は、このような環境スペース８０４を、例えば入力スペース８０４の互いの空間的配列、配向、および／または関係などのレイアウト８０２で配列することができる。さらに、第１の補助デバイス２０６が、入力構成要素と、第１の補助デバイス２０６の代わりに１次デバイス２０２によって実行される第１のアプリケーション１１２のアプリケーションユーザインタフェースとを含むことができ、第２の補助デバイス２０６が、第２の補助デバイス２０６の代わりに１次デバイス２０２によって実行される第２のアプリケーション１１２のアプリケーションユーザインタフェースを含むこともできる。ユーザ１０２は、第１の補助デバイス２０６の入力構成要素を操作することができ（例えば、マウス、タッチパッド、タッチセンスディスプレイ、ジェスチャ、および／または視線トラッキングによってポインタの動きをもたらす）、１次デバイス２０２は、最初に、第１の補助デバイス２０６の第１の補助コンピューティング環境２０８の環境スペース８０４内にポインタ８０８をレンダリングすることができる。ただし、第１の補助コンピューティング環境２０８の第１の環境スペース８０４は、例えばレイアウト８０２内の他の環境スペース８０４と物理的かつ／または概念的に隣接する各環境スペース８０４の境界線などのレイアウト境界８０６によって、第２の補助コンピューティング環境２０８の第２の環境スペース８０４から分離することができる。ユーザ１０２は、例えば第１の環境スペース８０４から第２の環境スペース８０４へのレイアウト境界線８０６を越えるポインタ８０８の移行８１０を開始することによって、第１の補助デバイス２０６の入力構成要素のユーザ入力を第１の環境スペース８０４から第２の環境スペース８０４に移行させるように要求することがある。レイアウト境界線８０６を越えるポインタ８０８の移行８１０に応答して、１次デバイス２０２は、第１の補助デバイス２０６の入力構成要素を、第２のデバイス２０６の補助コンピューティング環境２０８内で実行されるアプリケーション１１２のユーザインタフェースに結合することができる。
【００６０】
[0077]  この第３の態様の第９の変形形態としては、第１の補助コンピューティング環境２０８が、第１のアプリケーション１１２のインスタンスをさらに含み、第２の補助コンピューティング環境２０８が、第２のアプリケーション１１２のインスタンスを含むこともある。１次デバイス２０２は、第１の補助コンピューティング環境２０８内で実行される第１のアプリケーション１１２と第２の補助コンピューティング環境２０８内で実行される第２のアプリケーション１１２との間の通信を可能にすることができる。このような相互運用は、アプリケーション１１２がネットワークのより複雑な通信モデルを介して相互通信することができる異なる補助デバイス２０６上で実行される形ではなく、例えば両方のアプリケーション１１２を実行する１次デバイス２０２内のプロセス間通信によって、容易に実現可能であることがある。多くのこのような技術を利用して、本明細書に提示される技術に従って各補助デバイス２０６の補助コンピューティング環境２０８内で様々なアプリケーション１１２をインスタンス化し、実行することができる。
【００６１】
[0078]  Ｅ４．補助デバイスの補助コンピューティング環境およびアプリケーションの適合
[0079]  本明細書に提示される技術の複数の実施形態間で変化する可能性がある第４の態様は、補助コンピューティング環境２０８を適合するように１次デバイス２０２を構成すること、および／または特定の補助デバイス２０６のために１次デバイス２０２においてアプリケーション１１２を実行することを含む。
【００６２】
[0080]  この第４の態様の第１の変形形態としては、補助コンピューティング環境２０８の適合は、オペレーティングシステムの様々な設定および特性を含むことができる。第１のこのような例としては、この適合は、補助デバイス２０６の視覚スタイル、配色、フォントおよびアイコンのスタイルおよびサイズ、ならびに入力モダリティなどのユーザインタフェース設定を含むことができる。第２のこのような例としては、この適合は、特定の補助デバイス２０６の補助コンピューティング環境２０８内でユーザ１０２に対して提示されるアプリケーション１１２のアプリケーションセット２１０（例えば、ユーザ１０２が補助デバイス２０６と対話する特定のユーザ状況に関連するアプリケーション１１２の第１のセット）を含むことができる。第３のこのような例としては、この適合は、補助コンピューティング環境２０８内に提示されるアプリケーション１１２のアプリケーション構成および／またはモードとすることもできる（例えば、ユーザ１０２が、作成または編集モードでは第１の補助デバイス２０６上でアプリケーション１１２を利用してメディアオブジェクトと対話するが、ビューまたは読取りモードでは第２の補助デバイス２０６上で同じメディアオブジェクトと対話すると決定するなど）。第４のこのような例としては、この適合は、文書およびメディアオブジェクトなど、補助コンピューティング環境２０８内に提供される１次コンピューティング環境２０４のファイル１１４のセットまたはサブセットの選択を含むことができる（例えば、利用可能なドキュメントおよび／またはメディアオブジェクトのサブセットのみとのユーザ１０２の対話を制限する）。第５のこのような例としては、この適合は、特定の補助デバイス２０６の補助コンピューティング環境２０８内でアクセス可能となる１次コンピューティング環境２０４内に提供されるユーザアカウントの選択を含むことができる（例えば、特定の補助デバイス２０６の使用を認可されたユーザセット中のユーザ１０２の指定など）。第６のこのような例としては、この適合は、ブックマークリストを含むことができる（例えば、ユーザ１０２が、第１の補助デバイス２０６と対話しているときには第１のセットのウェブサイトを頻繁に訪れ、第２の補助デバイス２０６と対話しているときには第２のセットのウェブサイトを頻繁に訪れると判定するなど）。
【００６３】
[0081]  この第４の態様の第２の変形形態としては、特定の補助デバイス２０６の補助コンピューティング環境２０８内で実行される様々なアプリケーション１１２のユーザインタフェースの適合は、デバイス集合体１０４の各補助デバイス２０６の、またはその他の補助デバイス２０６の、様々なデバイス特性１０８を利用することもあるし、利用しないこともある。例えば、第１の補助デバイス２０６および第２の補助デバイス２０６は、オーディオを再生するためのスピーカのセットをそれぞれ特徴とすることがあるが、１次デバイス２０２は、第１の補助デバイス２０６は、オーディオ警告による中断が望ましくない可能性がある仕事の状況で使用され（例えばクライアントにプレゼンテーションを提示するなど）、第２の補助デバイス２０６は、ユーザ１０２がオーディオ警告を受け入れることができる普段のユーザ状況（例えば家庭など）で使用されると決定することがある。１次デバイス２０２は、したがって、第１の補助デバイス２０６に伝送される補助コンピューティング環境２０８は、スピーカの使用を控えるように適合させ、第２の補助デバイス２０６に伝送される補助コンピューティング環境２０８は、ユーザ１０２に対してオーディオ警告を提示するためにスピーカを頻繁に利用するように適合させることができる。
【００６４】
[0082]  この第４の態様の第３の変形形態としては、様々な補助デバイス２０６の補助コンピューティング環境２０８内で実行されるアプリケーション１１２は、様々な提示モダリティを通してユーザ１０２と対話するように適合させることができる。例えば、ユーザ１０２は、第１の補助デバイス２０６（例えばワークステーション）とは全視覚インタフェースを用いて対話し、第２の補助デバイス２０６（例えば携帯電話）とは圧縮視覚インタフェースを用いて対話し、第３の補助デバイス２０６（例えば車両コンピュータ）とはオーディオオンリーインタフェースを用いて対話することを好むことがある。各補助デバイス２０６の補助コンピューティング環境２０８、およびその中で実行されるアプリケーション１１２は、したがって、各補助デバイス２０６上でそれぞれの提示モダリティを利用するように適合させことができる（例えば、第１の補助デバイス２０６では、フル画像およびビデオを有する記事の全文バージョンを提示し、第２の補助デバイス２０６では、画像およびビデオを省略して、その記事の要約テキストバージョンを提示し、第３の補助デバイス２０６ではその記事の音声トランスクリプトを提示する）。
【００６５】
[0083]  この第４の態様の第４の変形形態としては、補助コンピューティング環境２０８およびその中で実行されるアプリケーション１１２は、ユーザ１０２がそれぞれの補助デバイス２０６を利用する間に対話するその他の個人の有無、識別、および／または状況を反映するように適合させることができる。すなわち、１次デバイス２０２は、ユーザ１０２と補助デバイス２０６とのユーザ対話と同時に、かつこれと関連して、ユーザ１０２と特定の個人との間の個別対話を決定することができる（例えば、ユーザ１０２が、ホームシアタデバイスでは別の個人とともにゲームで遊ぶことが多いと決定することができる）。１次デバイス２０２は、したがって、補助デバイス２０６に提示される補助コンピューティング環境２０８内に、ユーザ１０２とその個人との間の個別対話に関連するアプリケーション１１２を提供することができる（例えば、ユーザ１０２とその個人が一緒に遊ぶことができる２プレイヤゲームの選集を補助デバイス２０６上に提示する）。別のこのような例としては、補助デバイス２０６の補助コンピューティング環境２０８は、ユーザ１０２による補助デバイス２０６の使用の公共性および／または私用性を反映するように調整することができる。例えば、私的に使用される補助デバイス２０６は、ユーザのパスワードおよび個人的な写真の平文バージョンなど、ユーザ１０２の個人的なコンテンツを提示することができるが、公的に使用される補助デバイス２０６は、ユーザのパスワードを隠蔽し、個人的なコンテンツの提示を控えることができる。
【００６６】
[0084]  この第４の態様の第５の変形形態としては、１次デバイス２０２は、様々な方法で、補助コンピューティング環境２０８の様々な設定および特性の適合を実現することができる。例えば、１次デバイス２０２は、補助デバイス２０６にアプリケーション１１２を伝送して、ユーザ１０２の補助デバイス２０６とのユーザ対話のユーザ状況１０８に適したアプリケーション構成で実行することができる。１つのこのような例としては、各補助デバイス２０６の補助コンピューティング環境２０８内に提示される各アプリケーション１１２について、１次デバイス２０２は、そのアプリケーション１１２の少なくとも２つのアプリケーションバリアントを記憶することができ、それぞれのアプリケーションバリアントは、ユーザ１０２の補助デバイス２０６とのユーザ対話の選択されたユーザ状況１０８と関連付けられる。１次デバイス２０２は、したがって、その少なくとも２つのアプリケーションバリアントのうち、ユーザと補助デバイス２０６とのユーザ対話のユーザ状況１０８に関連する選択されたアプリケーションバリアントを識別し、補助デバイス２０６の補助コンピューティング環境２０８内に提示される各アプリケーション１１２の選択されたアプリケーションバリアントを含む補助コンピューティング環境２０８を補助デバイス２０６に伝送することによって、特定の補助デバイス２０６の補助コンピューティング環境２０８内でアプリケーション１１２の要素４２２を適合させることができる。
【００６７】
[0085]  この第４の態様の第６の変形形態としては、１次デバイス２０２は、補助コンピューティング環境２０８および／またはその中で実行されるアプリケーション１１２のアークテクチャを、様々な条件に鑑みて適合させることができる。例えば、１次デバイス２０２は、最初に、アプリケーション１１２または補助コンピューティング環境２０８の一部分の第１のアーキテクチャを選択することができる（例えば、１次デバイス２０２上でアプリケーション１１２の全体を実行し、ユーザインタフェースのイメージのみを補助デバイス２０６に展開する）が、後に、第２のアーキテクチャの方が補助コンピューティング環境２０８のより高品質な提示を実現することができると判定することもある（例えば、一部の処理を補助デバイス２０６に割り当てて、待ち時間またはネットワークトランスポートを低減させる）。
【００６８】
[0086]  この第４の態様の第７の変形形態としては、１次デバイス２０２は、ユーザ１０２が、第１の補助デバイス２０６を、第２の補助デバイス２０６の補助コンピューティング環境２０８のビューを提示するように再構成するのを許可することがある（例えば、第１の補助デバイス２０６に第２の補助デバイス２０６であるように偽装させる）。例えば、第１の補助デバイス２０６の第１の補助コンピューティング環境２０８の代わりに第２の補助コンピューティング環境２０８を用いることを求める要求を受信したのに応答して、１次デバイス２０２は、第１の補助デバイス２０６上に第１のコンピューティング環境２０８の代わりに第２の補助コンピューティング環境２０８を提示することができる。このような提示は、例えば第２の補助コンピューティング環境２０８についての同じストリーム２１４を第１の補助デバイス２０６および第２の補助デバイス２０６にマルチキャストすることによって実現することができ、かつ／あるいは一時的または永続的に実施することができる。
【００６９】
[0087]  この第４の態様の第８の変形形態としては、１次デバイス２０２は、それぞれの補助デバイス２０６の補助コンピューティング環境２０８の間でアプリケーション１１２を再配置することができる。第１のこのような例としては、デバイス集合体１０４への第３の補助デバイス２０６の追加を検出したのに応答して、１次デバイス２０２は、第１の補助デバイス２０６の第１の補助コンピューティング環境２０８内で一部または全体が現在実行されている少なくとも１つのアプリケーション１１２を再分割して、第３の補助デバイス２０６を含むようにすることができる（例えば、最初に第１の補助デバイス２０６上で実行されているアプリケーション１１２の第１のアプリケーション部分のさらに別の部分を第３の補助デバイス２０６上に分割し、かつ／またはそのアプリケーション部分を、第１の補助デバイス２０６から、アプリケーション１１２により適したデバイス特性１０８のセットを提示する追加された第３の補助デバイス２０６に完全に転送する）。第２のこのような例としては、デバイス集合体１０４からの補助デバイス２０６の除去（例えば、デバイス集合体１０４からの補助デバイス２０６の一時的切断または永続的排除）を検出したのに応答して、１次デバイス２０２は、第１の補助デバイス２０６の第１の補助コンピューティング環境２０８内に提示されるアプリケーションの少なくとも一部分を、第２の補助デバイス２０６の補助コンピューティング環境２０８に移動させることができる。このアプリケーション１１２は、後に、第１の補助デバイス２０６をデバイス集合体１０４に再度加える接続が再確立された場合に、第１の補助デバイス２０６に戻すことができる。
【００７０】
[0088]  図９は、本明細書に提示される技術の変形形態の１つのこのような使用を特徴とする例示的なシナリオ９００を示す図である。この例示的なシナリオ９００では、１次デバイスは、最初に３つの補助デバイス２０６を含むデバイス集合体１０４を通してビデオチャットアプリケーション１１２を実行し、最初は、アプリケーション１１２に十分な補助デバイス特性１０８を特徴とする第１の補助デバイス２０６上にビデオチャットインタフェース９２０を提示する。しかし、デバイス集合体１０４から第１の補助デバイス２０６が除去される（９０４）と（例えばローカルエリアネットワークからの切断）、１次デバイス２０２は、例えば現在のビデオチャットセッションを中断なく継続するために、ビデオチャットインタフェース９２０を転送しようとする可能性がある。１次デバイス２０２は、したがって、デバイス集合体１０４のその他の補助デバイス２０６の補助デバイス特性１０８を検査し、第２の補助デバイス２０６は（例えばデバイス特性１０８がカメラを含まないなどの理由で）適切でなく、第３の補助デバイス２０６は（例えばデバイス特性１０８がカメラを含むなどの理由で）適切であると判定すると、自動的に第１の補助コンピューティング環境２０８から第３の補助デバイス２０６の第３の補助コンピューティング環境２０８にビデオチャットインタフェース９２０を転送することができる（９０６）。さらに、第４の補助デバイス２０６が後にデバイス集合体１０４に加入したときには、１次デバイス２０２は、第４の補助デバイス２０６のデバイス特性１０８を検査し、そのデバイス特性１０８が第３の補助デバイス２０６のデバイス特性１０８よりもより完全にアプリケーション１１２を円滑化すると判定することがある（例えば、第４の補助デバイス２０６が、第３の補助デバイス２０６のカメラより高品質なビデオチャットインタフェース９０２を可能にする高精細度カメラを提供することもある）。したがって、１次デバイス２０２は、第３の補助コンピューティング環境２０８から第４の補助デバイス２０６の第４の補助コンピューティング環境２０８へのアプリケーション１１２のビデオチャットインタフェース９０２の第２の転送９１０を開始することができる（任意選択により、最初にユーザ１０２に対して勧告を提示し、第２の転送９１０が受け入れられるのを待機した後で、この転送を開始する）。多くのこのような技術を利用して、本明細書に提示される技術に従ってデバイス集合体１０４の補助デバイス２０６間でアプリケーション１１２の実行を分割し、かつ／または適合させることができる。
【００７１】
[0089]  Ｆ．コンピューティング環境
[0090]  図１０および以下の説明は、本明細書に記載される提供物のうちの１つまたは複数の提供物の実施形態を実施するのに適したコンピューティング環境の簡単な概略的な説明である。図１０の動作環境は、適当な動作環境の単なる一例に過ぎず、動作環境の用途または機能の範囲に関していかなる制限も示唆するものではない。例示的なコンピューティングデバイスは、これらに限定されるわけではないが、パーソナル・コンピュータ、サーバコンピュータ、手持ち型またはラップトップデバイス、モバイルデバイス（携帯電話、携帯情報端末（PDA）、メディアプレイヤなど）、マルチプロセッサシステム、大衆消費電子製品、ミニコンピュータ、メインフレームコンピュータ、および上記のシステムまたはデバイスのいずれかを含む分散型コンピューティング環境などを含む。
【００７２】
[0091]  実施形態について、「コンピュータ可読命令」が１つまたは複数のコンピューティングデバイスによって実行されるという概略的な状況で説明するが、この状況が必要というわけではない。コンピュータ可読命令は、コンピュータ可読媒体（後述）を介して配布することができる。コンピュータ可読命令は、機能、オブジェクト、アプリケーションプログラムインタフェース（API）、およびデータ構造など、特定のタスクを実行する、または特定の抽象データタイプを実装するプログラムモジュールとして実装することができる。通常は、コンピュータ可読命令の機能は、様々な実施形態で望ましいように結合したり、または分散させたりすることができる。
【００７３】
[0092]  図１０は、本明細書に提供する１つまたは複数の実施形態を実装するように構成されたコンピューティングデバイス１００２を含むシステム１０００の一例を示す図である。１つの構成では、コンピューティングデバイス１００２は、少なくとも１つの処理ユニット１００６と、メモリ１００８とを含む。コンピューティングデバイスの厳密な構成およびタイプに応じて、メモリ１００８は、揮発性（例えばRAMなど）、不揮発性（例えばROM、フラッシュメモリなど）、あるいはその両者の組合せとすることができる。この構成は、図１０では、破線１００４で示してある。
【００７４】
[0093]  他の実施形態では、デバイス１００２は、追加の特徴および／または機能を含むことができる。例えば、デバイス１００２は、これらに限定されるわけではないが、磁気記憶装置および光学記憶装置など、追加の記憶装置（例えば取外し可能かつ／または取外し不能）を含むこともできる。この追加の記憶装置は、図１０では、記憶装置１０１０として示してある。１実施形態では、本明細書に提供する１つまたは複数の実施形態を実装するためのコンピュータ可読命令は、記憶装置１０１０内にあることがある。記憶装置１０１０は、オペレーティングシステムおよびアプリケーションプログラムなどを実施するためのその他のコンピュータ可読命令を記憶することもできる。コンピュータ可読命令は、例えば、メモリ１００８にロードして、処理ユニット１００６によって実行することができる。
【００７５】
[0094]  本明細書で使用する「コンピュータ可読媒体」という用語は、信号などの通信媒体を含むその他の形態のコンピュータ可読媒体を除くコンピュータ可読メモリデバイスを含む。このようなコンピュータ可読メモリデバイスは、揮発性であり、かつ／または不揮発性であり、取外し可能であり、かつ／または取外し不能であり、コンピュータ可読命令またはその他のデータを記憶する様々なタイプの物理デバイスを含むことができる。メモリ１００８および記憶装置１０１０は、コンピュータ記憶媒体の例である。コンピュータ記憶デバイスは、これらに限定されるわけではないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたはその他のメモリ技術、ＣＤ−ＲＯＭ、デジタル汎用ディスク（DVD）またはその他の光学記憶装置、磁気カセット、磁気テープ、および磁気ディスク記憶装置またはその他の磁気記憶デバイスを含む。
【００７６】
[0095]  デバイス１００２は、デバイス１００２が他のデバイスと通信することを可能にする１つまたは複数の通信接続１０１６も含むことができる。１つまたは複数の通信接続１０１６は、これらに限定されるわけではないが、モデム、ネットワークインタフェースカード（NIC）、集積ネットワークインタフェース、無線周波送受信機、赤外線ポート、ＵＳＢ接続、またはコンピューティングデバイス１００２を他のコンピューティングデバイスに接続するその他のインタフェースを含み得る。１つまたは複数の通信接続１０１６は、有線接続またはワイヤレス接続を含み得る。１つまたは複数の通信接続１０１６は、通信媒体を送信および／または受信することができる。
【００７７】
[0096]  「コンピュータ可読媒体」という用語は、通信媒体を含み得る。通信媒体は、通常は、コンピュータ可読命令またはその他のデータを、搬送波またはその他の移送機構などの「変調データ信号」内として実装したものであり、任意の情報送達媒体を含む。「変調データ信号」という用語は、その特徴セットのうちの１つまたは複数を有する、あるいはその信号内に情報を符号化するように変更を加えられた信号を含み得る。
【００７８】
[0097]  デバイス１００２は、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイス、赤外線カメラ、ビデオ入力デバイス、および／または任意のその他の入力デバイスなど、１つまたは複数の入力デバイス１０１４を含むことができる。１つまたは複数のディスプレイ、スピーカ、プリンタ、および／または任意のその他の出力デバイスなどの１つまたは複数の出力デバイス１０１２も、デバイス１００２に含めることができる。１つまたは複数の入力デバイス１０１４および１つまたは複数の出力デバイス１０１２は、有線接続、ワイヤレス接続、またはそれらの任意の組合せを介してデバイス１００２に接続することができる。１実施形態では、別のコンピューティングデバイスの入力デバイスまたは出力デバイスを、コンピューティングデバイス１００２の１つまたは複数の入力デバイス１０１４あるいは１つまたは複数の出力デバイス１０１２として使用することができる。
【００７９】
[0098]  コンピューティングデバイス１００２の構成要素同士は、バスなど様々な相互接続によって接続することができる。このような相互接続は、ＰＣＩエクスプレス、汎用シリアルバス（USB）、ファイヤワイヤ（IEEE1934）、および光学バス構造などの周辺構成要素相互接続（PCI）を含み得る。別の実施形態では、コンピューティングデバイス１００２の構成要素同士は、ネットワークによって相互接続することができる。例えば、メモリ１００８は、ネットワークによって相互接続された異なる物理的位置に位置する複数の物理メモリユニットから構成されることもある。
【００８０】
[0099]  当業者なら、コンピュータ可読命令を記憶するために利用される記憶デバイスは、ネットワーク内で分散させることができることを理解するであろう。例えば、ネットワーク１０１８を介してアクセス可能なコンピューティングデバイス１０２０が、本明細書に提供する１つまたは複数の実施形態を実施するためのコンピュータ可読命令を記憶することができる。コンピューティングデバイス１００２は、コンピューティングデバイス１０２０にアクセスして、それらのコンピュータ可読命令の一部または全てをダウンロードして実行することができる。あるいは、コンピューティングデバイス１００２は、必要に応じてこれらのコンピュータ可読命令のうちの複数をダウンロードすることもできるし、あるいは、一部の命令をコンピューティングデバイス１００２で実行し、一部をコンピューティングデバイス１０２０で実行することもできる。
【００８１】
[00100]  Ｇ．用語の用法
[00101]  主題について、構造的特徴および／または方法論的作用に特有の表現で説明したが、添付の特許請求の範囲で定義される主題は、必ずしも上述の特定の特徴または作用に限定されるわけではないことは理解されるであろう。限定的なものではなく、上述の特定の特徴および作用は、特許請求の範囲を実施する例示的な形態として開示されたものである。
【００８２】
[00102]  本願で使用される「構成要素」、「モジュール」、「システム」、および「インタフェース」などの用語は、一般に、ハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかのコンピュータ関連エンティティを指すものとして意図されている。例えば、ある構成要素は、そのように限定されるわけではないが、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行ファイル、実行のスレッド、プログラム、および／またはコンピュータであり得る。例示を目的として、制御装置上で実行するアプリケーションおよびその制御装置は、両方とも構成要素であり得る。１つまたは複数の構成要素が、１つのプロセスおよび／または実行のスレッド内に存在することもあり、１つの構成要素は、１つのコンピュータ上に位置し、かつ／または２つ以上のコンピュータの間に分散していることもある。
【００８３】
[00103]  さらに、請求する主題は、標準的なプログラミングおよび／またはエンジニアリング技術を使用して、開示する主題を実施するようにコンピュータを制御するためのソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せを生成する方法、装置、または製品として実装することができる。本明細書で使用する「製品」という用語は、任意のコンピュータ可読デバイス、キャリア、またはメディアからアクセス可能なコンピュータプログラムを包含するものと意図されている。もちろん、当業者なら、請求する主題の範囲または趣旨を逸脱することなく、この構成に多数の修正を加えることができることを理解するであろう。
【００８４】
[00104]  実施形態の様々な動作を、本明細書に提供した。１実施形態では、記載した動作のうちの１つまたは複数が、コンピューティングデバイスによって実行された場合に、そのコンピューティングデバイスに記載した動作を実行させる、１つまたは複数のコンピュータ可読媒体に記憶されたコンピュータ可読命令を構成することもある。動作の一部または全てを説明した順序は、それらの動作が必ずその順序に依存しなければならないことを意味するものと解釈すべきではない。本明細書の特典を有する当業者なら、代替の順序を理解するであろう。さらに、全ての動作が、本明細書に提供する各実施形態に必ずしも存在するとは限らないことも理解されるであろう。
【００８５】
[00105]  本明細書に「例」として記載する任意の態様または設計は、必ずしも、他の態様または設計より有利であると解釈されるべきではない。そうではなく、「例」という単語を使用しているのは、本明細書に提示する技術に関係する可能性がある１つの可能な態様および／または実施態様を提示するためである。これらの例は、それらの技術にとって必須のものでも、あるいは限定することを意図しているものでもない。それらの技術の様々な実施形態は、このような例を単独で、または他の特徴と組み合わせて含むことができ、かつ／あるいは示した例を変化させる、かつ／または省略することもできる。
【００８６】
[00106]  本願で使用される「または（ｏｒ）」という用語は、排他的な「または（ｏｒ）」ではなく包含的な「または（ｏｒ）」を意味するものと意図されている。すなわち、特に指定がない限り、または文脈から明白でない限り、「ＸはＡまたはＢを利用する」は、その自然な包含的置換のいずれかを意味するものと意図されている。すなわち、ＸがＡを利用する、ＸがＢを利用する、またはＸがＡおよびＢの両方を利用する場合には、「ＸはＡまたはＢを利用する」は、前述の場合のいずれかにおいて満たされる。さらに、本願および添付の特許請求の範囲で使用される冠詞「ａ」および「ａｎ」は、一般に、特に指定がない限り、または文脈から単数形を対象とすることが明らかでない限り、「１または複数」を意味するものとして解釈することができる。
【００８７】
[00107]  また、１つまたは複数の実施態様に関連して本開示を示して説明したが、当業者なら、本明細書および付属の図面を読み、理解すれば、等価な代替形態および修正形態を思いつくであろう。本開示は、このような修正形態および代替形態の全てを含み、後記の特許請求の範囲によってのみ限定される。特に、上述の構成要素（例えば要素、リソースなど）によって実行される様々な機能については、これらの構成要素を説明するために使用される用語は、特に示さない限り、それが本開示の本明細書に示す例示的な実施態様における機能を実行する開示した構造と構造的には等価でなくても、説明される構成要素の特定の機能を実行する任意の構成要素（例えば、機能的に等価なもの）に対応するものと意図されている。さらに、本開示の特定の特徴が、いくつかの実施態様のうちの１つのみに関連して開示されていることもあるが、そのような特徴は、任意の所与または特定の適用分野で望ましく、また有利である可能性があれば、他の実施態様の１つまたは複数の他の特徴と組み合わせることができる。さらに、「含む」、「持つ」、「有する」、「備える」という用語、またはそれらの変形表現が上記の詳細な説明または特許請求のいずれかで使用される限りにおいて、これらの用語は、「備える」という用語と同様に包含的であるものと意図されている。
【図１】
0006598848.tif 000002
【図２】
0006598848.tif 000003
【図３】
0006598848.tif 000004
【図４】
0006598848.tif 000005
【図５】
0006598848.tif 000006
【図６】
0006598848.tif 000007
【図７】
0006598848.tif 000008
【図８】
0006598848.tif 000009
【図９】
0006598848.tif 000010
【図１０】
0006598848.tif 000011