(57)【要約】　　　（修正有）【課題】様々なコンピューティングデバイスで利用可能なコンピューティングリソースを発見し示すための、またこうしたリソースをソフトウェアアプリケーションによってアドレス指定可能なサービスとして露出するためのシステム、方法、および、関連するデータ構造を提供すること。【解決手段】このリソースを示すデータは、アイデンティティベースのスキーマにしたがって構成される。このコンピューティングリソースは、たとえば、記憶容量、帯域幅、処理能力、入力方法と機構、およびレンダリング方法を含むことができる。この方法およびシステムは、アイデンティティベースであり、ユーザが、（アイデンティティを使用して）前記アイデンティティに相応する分散リソースへのアクセス権をもつ。【選択図】　　　　図１Ａ
2004038956.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティング環境において、
第１のコンピューティングデバイスにより、第２のコンピューティングデバイスを発見するステップと、
前記第１のコンピューティングデバイスにより、前記第２のコンピューティングデバイスに関連するデータを取得するステップと
を具え、
前記データは、前記第１のコンピューティングデバイスによって理解されるスキーマにしたがってフォーマットされた前記第２のコンピューティングデバイスのリソース情報を含み、
前記第１のコンピューティングデバイスは、前記第２のコンピューティングデバイスのリソースにアクセスするために前記データを解釈することを特徴とする方法。
【請求項２】
前記第１のコンピューティングデバイスから前記第２のコンピューティングデバイスに前記リソースを使用する要求を通信するステップをさらに具えたことを特徴とする請求項１記載の方法。
【請求項３】
前記第１のコンピューティングデバイスから前記第２のコンピューティングデバイスにアイデンティティ情報を通信するステップをさらに具えたことを特徴とする請求項１記載の方法。
【請求項４】
前記アイデンティティ情報は、クレデンシャルに対応することを特徴とする請求項３記載の方法。
【請求項５】
前記クレデンシャルは、認証サービスによって提供されることを特徴とする請求項４記載の方法。
【請求項６】
方法を実施するため、コンピュータによって実行可能な命令を有するコンピュータ可読媒体であって、
第１のコンピューティングデバイスで実施するための前記方法は、
使用可能な少なくとも１つの他のデバイスのリソースに関する情報の位置を検出し、該情報は前記第１のコンピューティングデバイスと関連するアイデンティティに基づいて位置指定されているステップと、
前記情報から第２のコンピューティングデバイスのリソースを選択するステップと、
前記第２のコンピューティングデバイスのリソースにアクセスするステップとを具えたことを特徴とする媒体。
【請求項７】
コンピューティング環境において、
少なくとも１つのアイデンティティと関連する第１のコンピューティングデバイスと、
ここで、該第１のコンピューティングデバイスは、第１のリソースを含み、前記アイデンティティに関連する少なくとも１つの他のデバイスによる前記第１のリソースへのアクセスを提供するように構成され、前記少なくとも１つのアイデンティティと関連するリソーススキーマにしたがって前記第１のリソースに関する情報を提供し、
前記第１のリソースへのアクセス権を要求するように構成された第２のコンピューティングデバイスと
を具え、
ここで、該第２のコンピューティングデバイスは、前記第１のコンピューティングデバイス上の前記第１のリソースを使用してタスクの少なくとも１部を実行することを含むコンピューティングタスクを実行することを特徴とするコンピューティングシステム。
【請求項８】
前記第１のリソースは、ストレージを具えたことを特徴とする請求項７記載のコンピューティングシステム。
【請求項９】
前記第１のリソースは、前記第１のデバイスから少なくとも１つの他のコンピューティングデバイスへの接続の帯域幅を具えたことを特徴とする請求項７記載のコンピューティングシステム。
【請求項１０】
前記第１のリソースは、プロセッサの処理サイクルを具えたことを特徴とする請求項７記載のコンピューティングシステム。
【請求項１１】
前記第１のリソースは、入力方法を具えたことを特徴とする請求項７記載のコンピューティングシステム。
【請求項１２】
前記第１のリソースは、出力方法を含むことを特徴とする請求項７記載のコンピューティングシステム。
【請求項１３】
前記第１のコンピューティングデバイスに接続された第３のコンピューティングデバイスをさらに具え、
前記第２のコンピューティングデバイスは、前記第１のリソースにアクセスして前記第３のコンピューティングデバイスと共にオペレーションを実行することを特徴とする請求項７記載のコンピューティングシステム。
【請求項１４】
前記第３のコンピューティングデバイスは、プリンタを具え、
前記第１のリソースは、前記第１のコンピューティングデバイス上のプリンタドライバに対応することを特徴とする請求項７記載のコンピューティングシステム。
【請求項１５】
前記第３のコンピューティングデバイスは、サーバを具え、
前記第１のコンピューティングデバイスは、前記第２のコンピューティングデバイスのため、サーバのプロキシとして働くことを特徴とする請求項７記載のコンピューティングシステム。
【請求項１６】
前記第２のコンピューティングデバイスから前記第１のコンピューティングデバイスへの前記帯域幅は、前記第１のコンピューティングデバイスから前記第３のコンピューティングデバイスへの帯域幅よりも大きいことを特徴とする請求項１５記載のコンピューティングシステム。
【請求項１７】
データ構造を記憶しているコンピュータ可読媒体であって、前記データ構造は、
リソースのタイプを識別するための第１のフィールドと、
前記第１のフィールドで識別されたリソースのタイプに対応するリソースを含むデバイスを識別するための第２のフィールドと、
組内の各第３のフィールドが、前記第１のフィールドによって識別されたデバイスリソースに関する情報を識別するための前記第２のフィールドに対応する、１組の少なくとも１つの第３のフィールドと
を具え、
ここで、前記データ構造は、他のデバイスが前記１組の第３のフィールドで識別されたリソースを使用することができるように、前記第２のフィールドで識別されたデバイスとは異なる別のデバイスにリソース情報を提供するために使用されることを特徴とするコンピュータ可読媒体。
【請求項１８】
前記第１のフィールドは、ストレージリソースタイプに対応する情報を含むことを特徴とする請求項１７記載のコンピュータ可読媒体。
【請求項１９】
前記１組の第３のフィールドは、前記ストレージリソースの合計サイズのデータに対応する情報を含むことを特徴とする請求項１８記載のコンピュータ可読媒体。
【請求項２０】
前記１組の第３のフィールドは、前記ストレージリソースの空きスペースデータに対応する情報を含むことを特徴とする請求項１８記載のコンピュータ可読媒体。
【請求項２１】
前記第１のフィールドは、帯域幅データに対応する情報を含むことを特徴とする請求項１７記載のコンピュータ可読媒体。
【請求項２２】
前記第１のフィールドは、処理能力に対応することを特徴とする請求項１７記載のコンピュータ可読媒体。
【請求項２３】
前記１組の第３のフィールドは、プロセッサの速度データに対応する情報を含むことを特徴とする請求項２２記載のコンピュータ可読媒体。
【請求項２４】
前記１組の第３のフィールドは、プロセッサの使用データに対応する情報を含むことを特徴とする請求項２２記載のコンピュータ可読媒体。
【請求項２５】
前記１組の第３のフィールドは、メモリのサイズデータに対応する情報を含むことを特徴とする請求項２２記載のコンピュータ可読媒体。
【請求項２６】
前記１組の第３のフィールドは、メモリの使用データに対応する情報を含むことを特徴とする請求項２５記載のコンピュータ可読媒体。
【請求項２７】
前記第２のフィールドは、パーソナルコンピュータとして前記デバイスを識別する情報を含むことを特徴とする請求項１７記載のコンピュータ可読媒体。
【請求項２８】
前記第２のフィールドは、ディスクドライブとして前記デバイスを識別する情報を含むことを特徴とする請求項１７記載のコンピュータ可読媒体。
【請求項２９】
前記第２のフィールドは、電話として前記デバイスを識別する情報を含むことを特徴とする請求項１７記載のコンピュータ可読媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、１つのデバイスを使用して、他のデバイスのアイデンティティに相当するリソースに容易にアクセスすることが可能な、コンピューティングシステムおよびその方法に関する。
【０００２】
【従来の技術】
初期のパーソナルコンピューティングシステムでは、アプリケーションが様々なデバイスを使用するために、アプリケーションプログラムをこうしたコンピューティングデバイスの知識でプログラミングしなければならなかった。たとえば、特定のプリンタで印刷するために、ワード処理プログラムがプリンタについてのプリント方法を知る必要があり、また一般には各サポートされているプリンタのためのドライバを供給していた。あるいは、プリンタがドライバに最も一般的なプログラムを供給していた。ユーザは、どのプリンタがパーソナルコンピュータに接続されているかに関してそのプログラムに知らせるように各プログラムを構成しなければならなかった。
【０００３】
Ｍｉｃｒｏｓｏｆｔ　Ｗｉｎｄｏｗｓ（登録商標）など、現在のオペレーティングシステムは、特定のデバイスドライバのニーズや要件に関わらず、開発者にこうしたデバイスに伴うインターフェースアプリケーションを得る方法を提供した。たとえば、Ｍｉｃｒｏｓｏｆｔ　Ｗｉｎｄｏｗｓ（登録商標）のオペレーティングシステムでは、ユーザまたはデバイスがオペレーティングシステムに、どの１つのプリンタ（または複数のプリンタ）が接続され、次いでどのアプリケーションがオペレーティングシステムを介してそのプリンタドライバと通信できるかを知らせる。その結果、印刷を完了するために、アプリケーションプログラムは通常、オペレーティングシステムによって提供された１組の標準の印刷機能のみに対処することが必要となる。こうした抽象化の多大な利点を控えめに述べることはできない。たとえばこの抽象化によって、プログラムが事前にプリンタについての詳細を知る（逆に供給する）必要なしに、数千個のソフトウェアプログラムのどれもが数千台のプリンタおよび／または他のデバイスのどれとでも対話できるようになった。
【０００４】
Ｍｉｃｒｏｓｏｆｔ　Ｃｏｒｐｏｒａｔｉｏｎの．ＮＥＴ技術は、ユーザまたは会社のデータに関するほぼ同様のタイプの抽象化を提供している。通常、．ＮＥＴ技術でどのデバイス上のどの．ＮＥＴ可能なプログラムも、集中型スキーマベースのサービスを介してユーザのデータと対話することができる。スキーマ化のため、プログラムは、たとえば専有の（ｐｒｏｐｒｉｅｔａｒｙ）ファイル形式に記憶するために使用するデータの詳細に関する特定の知識の必要がなく、１つまたは複数のスキーマにしたがってフォーマットされた（書込みおよび読取り）データを処理することができればよいだけになる。
【０００５】
．ＮＥＴ技術でユーザ（または他のエンティティ）のアイデンティティ（ｉｄｅｎｔｉｔｙ）は、中央で維持されたデータへのアクセスを制御する。たとえばユーザが．ＮＥＴ　Ｉｎｂｏｘサービスを使用して、自分の電子メールデータを（たとえばインターネットまたはイントラネットを介して）中央で記憶された状態にし、次いで．ＮＥＴ　Ｉｎｂｏｘサービスを介してインターネットまたはイントラネットに接続可能などのデバイスからも、または．ＮＥＴ　Ｉｎｂｏｘサービスと対話できるプログラムを有するどのデバイスからも、いつでもそのデータにアクセスすることができる。ユーザのアイデンティティは、ユーザと適当なデータを確実に一致させるために使用される。ユーザは、他のユーザによるデータへのアクセスも制御可能に許可することができる。たとえばユーザは、他者のアイデンティティに基づいて、選択的にある種の取引相手情報を仕事仲間が利用できるようにしたり、個人的接触情報を友人が利用できるようにしたり、等々、することができる。
【０００６】
したがって．ＮＥＴがユーザ、会社および他のエンティティに膨大なデータベースの利点を提供する一方で、集中型サービスおよび集中型データは、ユーザが様々なデバイスおよびこうしたデバイスのリソースをどのように使用するかに関しては特に関わりをもたない。たとえば、パーソナルコンピュータおよびポケットパーソナルコンピュータなどのデバイスは、かなり長期間、互いに直接同期することができる。．ＮＥＴ技術は、ある程度は非直接的であるが、専用かつ専有の同期化プログラムの必要がない、同期化されたこうしたデータを保持するための別の方法である。
【０００７】
【発明が解決しようとする課題】
しかし、．ＮＥＴでさえも、たとえばより強力なデバイス上で複雑なまたはより適したタスクを実行するために、ユーザが１つのデバイスを使用して、他のデバイスの代わりに、１つのデバイスの計算能力、ストレージ、帯域幅、入出力機構、プログラムおよび／または他のリソースを使用するなど、他のデバイスのリソースに容易にアクセスすることができない。リソースの相互利用のため、様々なコンピューティングデバイスのコンピューティングリソースを互いに遠隔で発見し露出する、共通の整合性のある方法が求められている。
【０００８】
そこで、ユーザが１つのデバイスを使用して、他のデバイスのアイデンティティに相当するリソースに容易にアクセスすることが可能な、コンピューティングシステムおよびその方法を提供することにある。
【０００９】
換言すれば、本発明の目的は、アイデンティティに関連する様々なコンピューティングデバイスで利用可能なコンピューティングリソースを発見し示すための、またデバイス上のプログラムが他のデバイスのリソースを利用することができるように、該リソースをソフトウェアプログラムによってアドレス指定可能なサービスとして露出することが可能な、コンピューティングシステムおよびその方法を提供することにある。
【００１０】
【課題を解決するための手段】
このデバイスサービスは、デバイス所有者の複数のデバイスが、互いを、かつ／またはその所有者または他のユーザのアイデンティティに基づいてユーザがアクセス可能な他のデバイスを発見するという点でアイデンティティベースである。さらに、アイデンティティに基づいて、デバイス所有者（または管理者）は、他のユーザおよび／または他のデバイスのどれが各所有デバイスのリソースを利用できるか、またどの程度利用することができるかを制御することができる。
【００１１】
コンピューティングリソースは、たとえばデバイスの記憶容量、帯域幅、処理能力（たとえばＣＰＵおよびＲＡＭの能力）、入力機構と方法、レンダリングおよび他の出力機構と方法（たとえば画面、プリンタおよびオーディオ）、およびプログラムを含むことができる。したがって、デバイスはデバイスのリソースに抽象化され、次いでリソースは、構成可能な（たとえば、リモートリソースをより大きい定義のリソース内に含まれたより小さいリソースで構成されるように定義することができる）方法で他のデバイスからプログラム的にアドレス指定可能になる。
【００１２】
言い換えれば、デバイスが知識分散（ｉｎｔｅｌｌｉｇｅｎｔ　ｄｉｓｔｒｉｂｕｔｅｄ）コンピューティングモデルに参加するために、各参加デバイスの様々なアスペクトを抽象化し、他のデバイスからプログラムでアドレス指定可能にする。統合型アイデンティティベースの機構は、デバイス上にあるリモートリソースのリストを発見する。１組の１つまたは複数のスキーマはデバイス上のリモートリソースを整合的に示し、統合型セキュリティモデルは、デバイスの所有者が、誰がどのリソースにどの程度までのアクセス権をもつかを制御することができるようにする。
【００１３】
本発明によれば、１つのユーザのデバイスが１つまたは複数のリモートコンピューティングデバイスと実時間で対話することができる１組の実時間シナリオ、およびユーザに代わって透明に自動的に動作する１組の予定または予想のシナリオを含む、多数のシナリオの例についての望ましいコンピューティングソルーションを実行することができる。
【００１４】
以下、図面を参照して、本発明を詳細に説明する。
【００１５】
【発明の実施の形態】
＜例示の動作環境＞
図１Ａは、本発明を実施することができる適当なコンピューティングシステム環境１００の例を示す。このコンピューティングシステム環境１００は、適当なコンピューティング環境の単なる一例であり、本発明の使用または機能性の範囲に関していかなる制限を加えることも示唆するものではない。また、コンピューティング環境１００は、例示のオペレーティング環境１００で示した構成要素のいずれか１つまたはその組合せに関連していかなる依存性または要件をもつものとも解釈されるべきではない。
【００１６】
本発明は、多くの他の汎用または専用のコンピューティングシステム環境または構成で動作する。本発明と共に使用するのに適した周知のコンピューティングシステム、環境、および／または構成は、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド型またはラップトップ型デバイス、タブレットデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス（ｓｅｔ　ｔｏｐ　ｂｏｘ）、プログラム可能な消費者向け電子装置、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスを任意に含む分散コンピューティング環境などを含むが、それだけに限定されない。
【００１７】
本発明は、コンピュータによって実行されているプログラムモジュールなど、コンピュータで実行可能な命令の一般のコンテキストで説明することができる。プログラムモジュールは通常、特定のタスクを実行するための、または特定の抽象データタイプを実装するためのルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。本発明は、通信ネットワークを介してリンクされた遠隔処理デバイスによってタスクが実行される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールは、メモリストレージデバイスを含む、ローカルおよび／またはリモートコンピュータ記憶媒体に位置付けられる。
【００１８】
図１Ａを参照すると、本発明を実施するための例示のシステムは、コンピュータ１１０の形で汎用コンピューティングデバイスを含んでいる。コンピュータ１１０の構成要素は、処理ユニット１２０、システムメモリ１３０、およびシステムメモリを処理ユニット１２０に結合することを含む様々なシステム構成要素を結合するシステムバス１２１を含むが、それだけに限定されない。システムバス１２１は、メモリバスまたはメモリ制御装置、周辺バス、および様々なバスアーキテクチャを使用するローカルバスを含む幾つかのタイプのバス構造のどれでもよいが、それだけに限定されない。
【００１９】
一例として、こうしたアーキテクチャはＩｎｄｕｓｔｒｙ　ＳｔａｎｄａｒｄＡｒｃｈｉｔｅｃｔｕｒｅ（ＩＳＡ）バス、Ｍｉｃｒｏ　Ｃｈａｎｎｅｌ　Ａｒｃｈｉｔｅｃｔｕｒｅ（ＭＣＡ）バス、Ｅｎｈａｎｃｅｄ　ＩＳＡ（ＥＩＳＡ）　バス、Ｖｉｄｅｏ　Ｅｌｅｃｔｒｏｎｉｃｓ　Ｓｔａｎｄａｒｄｓ　Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカルバス、およびＭｅｚｚａｎｉｎｅバスとしても知られているＰｅｒｉｐｈｅｒａｌ　Ｃｏｍｐｏｎｅｎｔ　Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バスを含むが、それだけに限定されない。コンピュータ１１０で示したいずれかおよび全ての要素を広範な地理的領域中に分散されたネットワークを含む標準高速コンピュータネットワークによって互いに接続することができることに留意されたい。たとえば、システムメモリ１３０を処理ユニット１２０以外の物理的に異なる場所に配置し、なお論理的コンピュータ１１０として構成可能な方法で定義することができる。
【００２０】
コンピュータ１１０は通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０がアクセスできるどの利用可能な媒体でもよく、揮発性媒体と不揮発性媒体、および取り外し可能な媒体と取り外しできない媒体を含む。一例として、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を備えるが、それだけに限定されない。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するためのどの方法および技術でも実装される揮発性媒体と不揮発性媒体、および取り外し可能な媒体と取り外しできない媒体を含む。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、または他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多目的ビデオ（ＤＶＤ）、または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置あるいは他の磁気記憶装置、または所望の情報を記憶するために使用でき、コンピュータ１１０によってアクセス可能な他の任意の媒体を含むがそれだけに限定されない。通信媒体は通常、搬送波あるいは他の輸送機構など変調されたデータ信号で、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを含み、どの情報配信媒体も含む。用語「変調されたデータ信号」は、１つまたは複数組の特性を有し、または情報を信号に符号化するような方法で変化した信号を意味する。一例として、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体、および音波、高周波、赤外線などの無線媒体および他の無線媒体を含むが、それだけに限定されない。上記のどの組合せもコンピュータ可読媒体の範囲に含まれるべきである。
【００２１】
システムメモリ１３０は、読取り専用メモリ（ＲＯＭ）１３１およびランダムアクセスメモリ（ＲＡＭ）１３２など揮発性および／または不揮発性メモリの形のコンピュータ記憶媒体を含む。起動中など、コンピュータ１１０内の要素間で情報の転送を助ける基本ルーチンを含む基本入出力システム１３３（ＢＩＯＳ）は通常ＲＯＭ１３１内に記憶される。ＲＡＭ１３２は通常、処理ユニット１２０に直接アクセス可能な、かつ／または処理ユニット１２０よって現在作動中のデータおよび／またはプログラムモジュールを含む。一例として図１Ａは、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７を示しているが、それだけに限定されない。
【００２２】
コンピュータ１１０は、他の取り外し可能な／取り外しできない、揮発性／不揮発性コンピュータ記憶媒体を含むこともできる。単なる一例として、図１Ａは、取り外しできない不揮発性磁気媒体から読み取りまたはそれに書き込むハードディスクドライブ１４１、および取り外し可能な不揮発性磁気ディスク１５２から読み取りそれに書き込む磁気ディスクドライブ１５１、およびＣＤ　ＲＯＭまたは他の光媒体など取り外し可能な不揮発性光ディスク１５６から読み取りそれに書き込む光ディスクドライブ１５５を示している。例示のオペレーティング環境で使用できる他の取り外し可能な／取り外しできない、揮発性／不揮発性コンピュータ記憶媒体は、磁気テープカセット、フラッシュメモリカード、デジタル多目的ディスク、デジタルビデオテープ、固体素子ＲＡＭ、固体素子ＲＯＭなどを含むが、それだけに限定されない。ハードディスクドライブ１４１は通常、インタフェース１４０などの取り外しできないメモリインタフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は通常、インタフェース１５０などの取り外し可能なメモリインタフェースによってシステムバス１２１に接続される。
【００２３】
上記に論じ、図１Ａに示したドライブおよびそれに関連するコンピュータ記憶媒体は、コンピュータ１１０用のコンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの記憶を提供する。図１Ａでは、たとえばハードディスクドライブ１４１はオペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７を記憶するものとして示されている。これらの構成要素は、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７と同様のものまたは異なるものでもよいことに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７は、本明細書ではこれらが少なくとも別個のものであることを示すために異なる番号が与えられている。ユーザは、タブレット、または電子ディジタイザ１６４、マイクロホン１６３、キーボード１６２、および通常マウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス１６１などの入力装置を介してコンピュータ２０に命令および情報を入力する。図１Ａに示していない他の入力装置は、ジョイスチック、ゲームパッド、サテライトディッシュ、スキャナなどを含むことができる。これらおよび他の入力装置は、システムバスに結合されたユーザ入力インタフェース１６０を介して処理ユニット１２０に接続されることが多いが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）など、他のインタフェースおよびバス構造によって接続することもできる。モニタ１９１または他のタイプの表示装置をビデオインタフェース１９０などのインタフェースを介してシステムバス１２１に接続することもできる。モニタ１９１をタッチスクリーンパネルなどと一体型にすることもできる。モニタおよび／またはタッチスクリーンパネルを、タブレットタイプのパーソナルコンピュータなど、コンピュータ１１０が組み込まれているハウジングに物理的に結合することができることに留意されたい。さらに、コンピュータ１１０のようなコンピュータは、出力周辺インタフェース１９４などを介して接続することができるスピーカ１９５およびプリンタ１９６などの他の周辺出力デバイスを含むこともできる。
【００２４】
コンピュータ１１０は、リモートコンピュータ１８０など、１つまたは複数のリモートコンピュータへの論理接続を用いてネットワーク化された環境で動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、同位デバイス、または他の共用ネットワークノードでもよく、図１Ａではメモリストレージデバイス１８１のみを示しているが、通常コンピュータ１１０に対して上記に述べた要素の多くまたは全てを含む。図１Ａに示した論理接続は、特定区域内情報通信網（ＬＡＮ）１７１および広域網（ＷＡＮ）１７３を含んでいるが、他のネットワークを含むこともできる。こうしたネットワーク化されている環境は、事務所、企業規模のコンピュータネットワーク、イントラネット、およびインターネットでは一般的である。たとえば本発明では、コンピュータシステム１１０は、データをそこから移行するソースマシンを備え、リモートコンピュータ１８０は、宛先マシンを備えることができる。しかし、ソースおよび宛先マシンをネットワークまたは他の媒体に接続する必要はなく、代わりにデータをソースプラットフォームによって書込み可能であり、１つまたは複数の宛先プラットフォームによって読取り可能な任意の媒体を介して移行することができることに留意されたい。
【００２５】
ＬＡＮのネットワーク環境で使用する場合、コンピュータ１１０は、ネットワークインタフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮのネットワーク環境で使用する場合、コンピュータ１１０は通常、インターネットなど、ＷＡＮ１７３を介して通信を確立するためのモデム１７２または他の手段を備えることができる。内部または外部のモデム１７２は、ユーザ入力インタフェース１６０または他の適当な機構を介してシステムバス１２１に接続することができる。ネットワーク化された環境では、コンピュータ１１０またはその一部に対して示したプログラムモジュールをリモートメモリストレージデバイスに記憶することができる。一例として、図１Ａはリモートアプリケーションプログラム１８５をメモリデバイス１８１にあるものとして示しているが、それだけに限定されない。図に示したネットワーク接続は例であって、コンピュータ間の通信リンクを確立する他の手段を使用することもできることを理解されたい。
【００２６】
図１Ｂは、他の適当なオペレーティング環境（コンピュータデバイス１８８）の一例を示す。この例では本発明の少なくとも一部を実施することができる。図１Ａと同様、図１Ｂのオペレーティング環境は、適当なオペレーティング環境の単なる他の一例であり、本発明の使用または機能性の範囲に関していかなる制限も示唆するものではない。図１Ｂの他のコンピュータデバイス１８８は通常、コンピュータ可読媒体の少なくともある形態を備えている。コンピュータ可読媒体は、コンピュータデバイス１８８がアクセスできる（全般的に上記に定義した）どの利用可能な媒体でもよい。
【００２７】
図１Ｂは、プロセッサ１８９、メモリ１９０、ディスプレイ１９２、および（物理的または仮想のキーボードでもよい）キーボード１９３ｃを含む、ハンドヘルド型（ポケットサイズまたはタブレット）のパーソナルデジタルアシスタント（ＰＤＡ）などのコンピュータデバイス１８８の機能的要素を示す。メモリ１９０は通常、揮発性メモリ（たとえばＲＡＭ）および不揮発性メモリ（たとえばＲＯＭ、ＰＣＭＣＩＡカードなど）を含む。オペレーティングシステム１９４はメモリ１９０内に常駐し、Ｍｉｃｒｏｓｏｆｔ（登録商標）ＣｏｒｐｏｒａｔｉｏｎからのＷｉｎｄｏｗｓ（登録商標）ＣＥオペレーティングシステム、または他のオペレーティングシステムなどをプロセッサ１８９上で実行する。
【００２８】
１つまたは複数のアプリケーションプログラム１９５がメモリ１９０内に記憶され、オペレーティングシステム１９４上で稼動される。アプリケーションの例には、電子メールプログラム、スケジューリングプログラム、個人情報管理（ＰＩＭ）プログラム、ワード処理プログラム、スプレッドシートプログラム、インターネットブラウザプログラムなどが含まれる。ハンドヘルドパーソナルコンピュータ１８８は、プロセッサ１８９上で実行する、メモリ１９０内に記憶された通知管理プログラム（ｎｏｔｉｆｉｃａｔｉｏｎ　ｍａｎａｇｅｒ）１９６を含むこともできる。この通知管理プログラム１９６は、たとえばアプリケーションプログラム１９５からの通知要求を処理する。
【００２９】
ハンドヘルドパーソナルコンピュータ１８８は、１つまたは複数の蓄電池として実装される電源１９７を有する。電源１９７はさらに、ＡＣアダプタまたは電気式ドッキングクレードル（ｐｏｗｅｒｅｄ　ｄｏｃｋｉｎｇ　ｃｒａｄｌｅ）など組込式電池を置き換えるまたは再充電する外部の電源を含むこともできる。
【００３０】
図１Ｂに示したハンドヘルドパーソナルコンピュータ１８８の例は、３タイプの外部の通知機構を備えている。１つまたは複数の発光ダイオード（ＬＥＤ）１９８および音声発生器（ａｕｄｉｏ　ｇｅｎｅｒａｔｏｒ）１９９である。これらのデバイスは、電源１９７に直接接続されて、ハンドヘルドパーソナルコンピュータプロセッサ１８９および他の構成要素が電池の節約のために遮断されても、起動されると、通知機構に指示された間はオンの状態を維持する。好ましくは、ＬＥＤ１９８は、ユーザが行動を起こすまで無期限にオンの状態を維持する。音声発生器１９９の現在版は、今日のハンドヘルドパーソナルコンピュータの電池に対して電気使用量が多すぎるため、システムの残りが起動するとき、または起動後のある一定期間、電源を切るように構成されていることに留意されたい。
【００３１】
＜デバイスリソースのためのアイデンティティベースの分散コンピューティング＞
本発明は全般的に、デバイスのリソースの他のデバイスへの分散を容易にするシステムおよび方法を対象とする。本発明は通常、デバイスが互いのリソースで何をするかではなく、その時点で何を通信するか、またはデバイス間の通信をいかにして確立するかに関する。むしろ本発明は全般的に、デバイスが互いのリソース、能力、および他の詳細を見つけ、次いでデバイスがデバイス自体のリソースを共用することを許可するための構造化された方法と考えることができる。本発明には必要ではないが、リソースの分散を容易にする一環として、他のデバイスのリソースを使用するためには有効なクレデンシャル（ｃｒｅｄｅｎｔｉａｌ）が必要とされることを少なくとも保証するために、実際上はセキュリティが設けられている。したがって、本発明は好ましくは、分散リソースがデバイスに与えられているアイデンティティデータ（たとえばクレデンシャル）に対応して互いに関係するという点で、アイデンティティベースである。
【００３２】
本発明は全般的にユーザのデバイス間での分散コンピューティングを対象とし、ユーザ（または所有者／管理者）はそのデバイスを制御かつ／または使用する権限をもつ任意の者である。しかし、一般にデバイスはますます構成要素への分化が進んでいるため、本明細書に記載の方法およびシステムはリソースの分散コンピューティングとしてより適切に述べることができる。たとえば、単一の分散デバイスを多くのリソースで構成し、１つのデバイスが可能な限り少ないリソース（たとえばデバイスの不揮発性ストレージのみ）を共有して、リソース提供者として関与することができる。しかし、本明細書で使用するように、用語「デバイス」および「リソース」は、明らかにそうでない場合を除いて、全般的に置き換えが可能である。たとえば、他のデバイスを使用して、または他のデバイスのリソースを使用して、あるコンピューティングタスクを完了することは同じであると全般的に考えられたい。また、本明細書で使用するように、帯域幅は通常どの特定のデバイスとも関連していないと考えられるが、帯域幅はデバイスリソースである。
【００３３】
図２に全般的に示したように、本発明の様々な態様によって構築した分散コンピューティング環境２００は、第１のデバイス２０２（図１Ａのコンピュータシステム１１０などのデバイスＡ）および第２のデバイス２１２（図１Ｂのコンピュータシステム１８８などのデバイスＢ）また他のデバイス（図示せず）を含むこともできる。分散コンピューティング環境２００に関与する各デバイスは、分散コンピューティング管理プログラム２０４および２１４を含む。一般に以下に述べるように、分散コンピューティング管理プログラム２０４および２１４は、ある媒体、たとえば無線ＦＭ、赤外線、サテライト、直接接続、インターネット、またはイントラネットなどの見通し線（ｌｉｎｅ−ｏｆ−ｓｉｇｈｔ）を介して互いに通信する多少のコードを含むことができる。実際、１つ以上のこうした媒体が利用可能であり、分散コンピューティング管理プログラム２０４および２１４は、与えられた環境に最適の１つまたは複数の媒体を選択することができる。
【００３４】
分散コンピューティング管理プログラム２０４および２１４の最初の目的は、互いを位置付けることである。こうした位置付けは、各デバイスに時折各自の可用性を他にブロードキャストさせることによって、かつ／または他のデバイスの可用性をポーリングすることによって自動的になされる。またあるいは、別のデバイスに接続することを求めるプログラム（またはユーザ）からのある特定の要求に呼応して動作する。図２に示したように、各分散コンピューティング管理プログラム２０４および２１４は、それぞれセキュリティ機構２０６および２１６を含み、セキュリティ機構は、それぞれ２０７、２１７または（たとえば認証サービス２２０から得た）同様のものを交換して、クレデンシャルに（および／またはデバイス自体に）接触しているデバイスを現在操作中のユーザが分散コンピューティング環境で有効であることを、また同様に必要な場合は、接触中のデバイスが有効であることを保証する。使用中のプログラムは、たとえば、１つのデバイスで実行中の第１のプログラムが他のデバイスの１つまたは複数のリソースを使用する権限を有しているが、ユーザアイデンティティおよび／またはデバイスアイデンティティとは独立したまたはそれに加えた他のプログラムを使用する権限がないことをセキュリティ／アクセス制御に要因として入れることもできることに留意されたい。さらに、このセキュリティ機構は、アイデンティティごとに、またリソースごとに動作することができることに留意されたい。たとえば、あるエンティティは、デバイスのディスプレイを使用する権限はあるが、そのストレージを使用する権限はない。一方他のエンティティは、ストレージを含む同じデバイスの利用可能なリソースをどれでも使用することができる。これは．ＮＥＴセキュリティモデルと同様であり、サービスがユーザのアイデンティティの要求、確定ロール、およびそのロールの適用範囲に基づいてユーザのデータへのアクセスを制御する方法を提供する。こうするとデータにその所有者がアクセスでき、所有者が決定した程度までデータの共有ができる。本発明では、アクセスされるのがデータではなくデバイスリソースであり、それによってユーザの識別、確定ロール、およびそのロールの適用範囲がリソースにアクセスできる程度を決定する。
【００３５】
実際、本発明のセキュリティ機構は、本願の譲受人に譲渡され、２００１年１０月２２日に出願の「ＩＤＥＮＴＩＴＹ−ＣＥＮＴＲＩＣ　ＤＡＴＡ　ＡＣＣＥＳＳ」（米国特許出願第１０／００３，７５４号）、および「ＡＵＴＨＯＲＩＺＩＮＧ　Ａ　ＲＥＱＵＥＳＴＩＮＧ　ＥＮＴＩＴＹ　ＴＯ　ＯＰＥＲＡＴＥ　ＵＰＯＮ　ＤＡＴＡ　ＳＴＲＵＣＴＵＲＥＳ」（米国特許出願第１０／００３，７６７号）に一般に記載されているように、基本的に．ＮＥＴサービスにおけるセキュリティ／アクセス制御のために使用される機構に基づくものである。この目的のため、．ＮＥＴサービスの少なくとも１つのシンサブセット（ｔｈｉｎ　ｓｕｂｓｅｔ）が環境２００でコンピューティングリソースを共用宣言し共用することを期待する各デバイス上で稼動する。さらに、ローカライズした内部の整合したセキュリティモデルを、２つのローカルピアトゥピアデバイスが集中型（たとえばＰａｓｓｐｏｒｔ）認証サービス２２０（図２）から切断されても、ローカルセキュリティを提供するように、こうしたデバイス上で実行することができる。
【００３６】
本発明は、どの特定の伝送媒体にも限定されるものではなく、分散リソースサービスが目標デバイスに直接アドレス指定ができ、またはウェブ上の１組の集中型．ＮＥＴサービスを介するなど、インターネットまたはイントラネットを介して照会することもできるようにする。インターネットまたはイントラネットを介して接続される場合、プログラムは、デバイスがオフラインまたは逆にアクセス不能の場合でも、ユーザのアイデンティティと関連するどのデバイス上でも利用可能な最新の知られているコンピューティングリソースを照会することができる。帯域幅もリソースであり、デバイスのリソースをいかに共用するかに強い影響を与える。たとえば、パーソナルコンピュータがインターネットへの高速接続を有する場合、パーソナルコンピュータのリソースをさらに効率よく活用することができるが、他のデバイスが高速接続で、パーソナルコンピュータが低速の接続しかしていない場合はそうできない。実際、パーソナルコンピュータが他のデバイスの高速接続の利用を望む場合、他のデバイスがそのパーソナルコンピュータのリソースを利用することができ、たとえば、デバイスがリソースを交換してより最適なユーザ経験を提供する。
【００３７】
本発明の一態様によれば、各分散コンピューティング管理プログラム２０４および２１４は、それぞれ発見機構２０８および２１８も含み、この発見機構は、少なくとも他のデバイスがそのリソースを共用するように構成されている場合、デバイスが他の関与するデバイスの共用リソース／能力を発見できるようにする。それぞれリソースデータ２０９および２１９は、（たとえばＸＭＬで）フォーマットされ、下記の確定スキーマにしたがって交換される。図２で示したように、スキーマ化したデータ２０９および２１９の交換によって、デバイス２０２およびデバイス２０４はどちらも、分散コンピューティング環境で他のデバイスとそのリソース（ＲＡ１−ＲＡｍおよびＲＢ１−ＲＢｎ）を共用するように構成される。しかし理解されるように、与えられた環境では、特定のデバイス（たとえば移動電話）は、リソースの提供者ではなくリソースの消費者であり、または逆に単に提供者であって消費者ではない。
【００３８】
リソースを共用するデバイスは、他のデバイスとリソースデータを直接通信する必要はないが、その代わりに、たとえば他のデバイスが発見するためにそのリソースを任意の場所で共用宣言することができる。たとえば（．ＮＥＴデバイス）は、データをデバイスに送る前にデータが適切に．ＮＥＴサービスフォーマットされるように、デバイスリソース能力を中央で記憶するように、たとえば高解像度グラフィックを表示できないデバイスにそれらを送る事がないように、規定されている。同様の．ＮＥＴリソースサービス、または拡張．ＮＥＴデバイスサービスは、この情報を他のデバイスに共用宣言するように規定されている。
【００３９】
以下の表で、この例では職場および家庭のパーソナルコンピュータおよびセルラー電話を含む、ユーザのデバイスに関するリソース（記憶および処理能力）情報を交換するために（たとえばＸＭＬフォーマットされたデータで）使用することができる幾つかのスキーマ例を述べる。
2004038956.tif 000003
2004038956.tif 000004
【００４０】
理解されるように、このスキーマは好ましくは、リソースベースである。たとえば、リソースが存在する実際のデバイスとは関係なく、使用可能な分散されたリソースを有するアイデンティティの一般概念と一致させるために、多数のデバイスを各リソースタイプ用にリストにすることができる。しかし、本発明は、どの特定のスキーマおよび／またはフォーマットにも限定されるものではない。たとえば代わりに、同じ情報が知られるように他のデバイスが利用可能なリソースのリストを各デバイスが提供することができるように、スキーマはデバイスベースでもよい。
【００４１】
図３に全般的に示したように、アーキテクチャ３００は、関与するデバイスの様々な態様が抽象化され、異なるデバイスからプログラムでアドレス指定可能になっている、インテリジェント分散コンピューティングモデルにデバイスが関与するために提供されている。ユニバーサルプラグアンドプレイ（ＵＰｎＰ２．０）インフラストラクチャなどをこれらのリソースの発見のための基本の低レベル機構３０２として使用することができる。あるいは、様々なコンピューティングデバイス用のリソースのリストをアクティブディレクトリ（Ａｃｔｉｖｅ　Ｄｉｒｅｃｔｏｒｙ）記憶装置など、ある周知の場所にキャッシュして、デバイスがファイアウォールまたは無線ハブなどの中継を介してしかアクセスできない場合でも、リモートリソースの照会ができるようにする。発見機構の頂上にはスキーマ３０４があり、たとえば１つのスキーマが各指定のタイプのコンピューティングリソースと関連し、複数の各スキーマがたとえば．ＮＥＴアーキテクチャでのように露出される。
【００４２】
ＵＰｎＰは適当な発見機構３０４を提供するが、これはリモートコンピューティングリソースを実際に使用するプロセスの単なる一部分であることに留意されたい。したがって、ＵＰｎＰおよび．ＮＥＴ技術は、リソースの共用を容易にするために使用されるが、デバイス上で利用可能なリソースを実際に利用するためには使用されていない。しかし、リソースが知られた後は、その指定リソースドメインのための適切に焦点を合わせたプロトコルが使用される。一例として、ＵＰｎＰ、さらに．ＮＥＴアイデンティティヘッダ（ｉｄｅｎｔｉｔｙＨｅａｄｅｒ）、エンドポイントヘッダ（ｅｎｄｐｏｉｎｔＨｅａｄｅｒ）、および要求ヘッダ（ｒｅｑｕｅｓｔＨｅａｄｅｒ）ＳＯＡＰセマンティックス（ｓｅｍａｎｔｉｃｓ）は、リモートデバイスのビデオスクリーン特性を得るのに適している。しかし、ＲＤＰなどのプロトコルは、デバイス間で最初の発見および初期接続手順が行われた後にビデオデータを移行するために使用される。これは．ＮＥＴが今日データサービスにアプローチする方法、たとえば．ＮＥＴが専有の（たとえばメッセンジャ）プロトコルを表す電子エンドポイント（ｅｌｅｃｔｒｏｎｉｃｅｎｄｐｏｉｎｔ）に接続するための機構を提供し、そのエンドポイントが接続された後は、．ＮＥＴが、クライアントが存在する実時間のプロトコルを使用することを許可する方法と同様であることに留意されたい。他のタイプのリソースに適した他のプロトコルが使用される。たとえば記憶装置用のＣＩＦＳ＋は、企業および家庭のストレージシナリオを良好に基準化し、ユーザのファイルシステムが、ユーザがドライブレターやネーム空間などに対処することを強制することなく、他のストレージデバイスに継続的に拡張することができるようにする。要約すると、本発明は、使用可能であるがその後は使用に直接対処しない追加のリソースの発見へのアイデンティティベースのアプローチを提供する。
【００４３】
図６は、共用リソースを使用する要求を受け取ることを示すステップ６００で開始する、本発明の幾つかの一般的な態様を示す流れ図の例である。この要求は一般の、たとえば関与するように構成されたデバイス上でユーザが利用できるリソースのリストの要求、または、たとえば共用宣言に呼応する特定のリソースの要求でもよい。この例の目的は、要求が１つの特定のリソースの要求として処理されることである。
【００４４】
ステップ６０２は、Ｍｉｃｒｏｓｏｆｔの．ＮＥＴパスポート認証サービスによって提供されるようなクレデンシャルの評価を示す。要求はクレデンシャルを含むことができ、またはクレデンシャルは、たとえばステップ６００の前、一環として、または後に別に交換することができる。ステップ６０２で有効でない場合、ステップ６０２は要求の拒否を示すステップ６０４に分岐する。所与の環境に応じて、適当なクレデンシャルがない要求は具体的に拒否されるのではなく無視されることに留意されたい。
【００４５】
有効の場合、ステップ６０６を実行し、利用可能な要求されたリソースの量の決定を示す。たとえば、ストレージなどのリソースは限定的である。限られた空きスペースしかなく、さらにデバイスがストレージ空間の一部のみを共用に使用できるようにし、残りはデバイス自体のために確保するように構成されているためである。プロセッササイクルなどのリソースは、プロセッサが別の方法で使用されない程度にだけ使用可能であり、その場合でも他のデバイスが未使用サイクルの最大量を使用することだけができるようにさらに限定される。どのリソースもリソースに関連し、さらにその使用に依存するタイムアウト値を有する。たとえば、ストレージを要求につき多くて１時間共用することができ、要求はファイルシステムの要求が少なくとも２分ごとに検出されない場合は終了される。この方法で、デバイスを所有者／管理者によって制御される程度までリソースを共用するように構成することができる。
【００４６】
リソースアクセスは動的（ｄｙｎａｍｉｃ）であることに留意されたい。たとえば、ＣＰＵの使用が変動する数であり、要求するゲストデバイスが他のデバイスおよび／またはＣＰＵを共用するデバイス上のプロセスと共に優先順位をつけられても、未使用プロセッササイクルを共用することができる。たとえば、ゲストユーザは、デバイスの所有者が帯域幅または処理能力など他の方法でリソースを使用していない場合、制御可能な割合のリソースのみを消費することができる。ＣＰＵおよび帯域幅は、ディスクまたはメモリの使用など非時間ベースのリソースではなく、時間的制約（たとえばサイクルまたは毎秒当たりのビット）に応じてスケジュールされているリソースの例である。その結果、時間ベースのリソースのためのスケジューリング機構は一般に、非時間ベースのリソースのためのものとは基本的に異なる。キオスクロケーションは、このようなゲストに有用な多くのシナリオを実行可能にすることに留意されたい。ディスプレイモニタのようなリソースは、現在使用されているか否かによって、共用が全体的に可能であるか全くそうでないかどちらかである。したがって、図６には示していないが、ステップ６０６で共用できる要求されたリソースが全く無い場合、要求を拒絶（または適当な場合は無視）することもできる。ステップ６０８は、好ましくは要求しているエンティティにリソース能力データを提供するスキーマベースの応答を、要求しているエンティティに返すことを示している。
【００４７】
ステップ６１０は、要求されたリソースを共用する許可を示し、たとえば、共用が要求デバイスに呼応するタスクを実行するように、要求デバイスと共用デバイスの間でのデータのやり取りを含む。ステップ６１２で、リソースが枯渇しているかどうか、たとえばタイムアウトまたはもはや利用できないかどうかをテストする。これは簡略化の目的のため図６ではループで示してあることに留意されたい。しかし、この動作はイベント駆動型でもよいことは容易に理解されるであろう。さらに、（ステップ６０６のような）ステップはループに含まれ／イベントを発火するために使用できる。たとえば、リソースの使用を動的にモニタして、特定の要求に対して枯渇しているかどうかを決定する。リソースは要求エンティティがデバイスにリソースがもはや必要でないことを通知する場合は、直接に枯渇することに留意されたい。
【００４８】
ステップ６１４は、要求デバイスにリソースがその使用に有効でないことを通知することを示す。ステップ６１６は、たとえば枯渇後、要求デバイスがリソースを共用したい場合、新しい要求をする必要があるように、リソースを使用できなくすることを示す。
【００４９】
図４および図５は、本発明の多くの可能な使用の幾つかの例を提供する。図４および図５の例から理解されるように、計算のプロキシサポートをネットワークエッジデバイスまたは器具に一体化することで、内部ネットワークのユーザにより良好なユーザ経験がもたらされるであろう。
【００５０】
図４に示した第１の例では、小さい移動デバイス４００（移動電話など）がプリンタ４０２に印刷を求めているが、小さいデバイス４００は適当なプリンタドライバを有していない。これは、移動デバイス４００が前記プリンタ４０２に必要なプリンタドライバをインストールし維持するための十分なメモリがなく、かつ／または必要なプリンタドライバをインストールするための簡単な方法が無いかつ／または他の理由による。これは実際のシナリオであることに留意されたい。１つの提唱される解決策は移動デバイス４００からプリンタ４０２に、たとえば（図４の破線で示した）あるネットワーク接続を介して、簡略ページ記述言語（ＰＤＬ）としてＸＨＴＭＬ−ＰＲＩＮＴを出すことである。ＸＨＴＭＬ−ＰＲＩＮＴはある程度は十分であるが、この解決策には幾つかの欠点がある。たとえば、ＸＨＴＭＬ−ＰＲＩＮＴはＷＹＳＩＷＹＧではなく、改行（ｌｉｎｅ　ｂｒｅａｋ）を制御できず、通常乏しいユーザ経験しか提供しない。
【００５１】
しかし、本発明によれば、移動デバイス４００は適当なプリンタドライバ４０６を装備した（また移動デバイスのユーザが使用の権限を有する）パーソナルコンピュータ４０４を先ず動的に発見し、移動デバイス４００は、代わりにパーソナルコンピュータ４０４を介してプリンタドライバ４０６に印刷データを提供し、プリンタドライバ４０６はＰＣＬ、ポストスクリプト、またはラスタ化を用いてＷＹＳＩＷＹＧ出力をもたらす。上記に述べたように、本発明は発見機構を提供する。したがって移動デバイス４００は、（ＸＨＴＭＬ−ＰＲＩＮＴに対して）非常に高度の忠実性にある軽量ＰＤＬなどによって、パーソナルコンピュータ４０４といかようにも通信することができる。その結果、パーソナルコンピュータ４０４のさらに高速のプロセッサおよび適当なプリンタドライバ４０６を使用することによって、高速でレンダリングされた高画質出力が得られる。
【００５２】
図５は、サーバ５０２（たとえばＡＳＰ．ＮＥＴサーバ）上でリモートに管理対象コードを実行すべき個人情報機器（ＰＤＡ）５００を操作する際に、改善されたユーザ経験を提供することを全般的に対象とする第２の例を示す。これを達成するための一方法は、ＰＤＡをサーバに接続して（たとえばＡＳＰ．ＮＥＴのモバイルコントロール（Ｍｏｂｉｌｅ　Ｃｏｎｔｒｏｌ）サポートを利用することによって）管理対象コードを実行し、図５の破線で示したように、結果をＨＴＭＬとして送信する。サーバ５０２は、ＩＳＶが各デバイス５００用に専用コードを生成することなく、ＨＴＭＬの内容をデバイス５００の適当な画面サイズに動的に基準化する。しかしこれには、更新のために画面が明滅すると共に、サーバ５００で多くの処理が必要になり、通常、ユーザ経験の低下をもたらす。
【００５３】
本発明が提供する改善された解決法は、図５に全般的に示すように、ユーザのアイデンティティと関連するパーソナルコンピュータ５０４が幾つかの計算リソースのプロキシになることができることを、ＰＤＡに動的に発見させることによって達成される。この場合、ＰＤＡはプロキシパーソナルコンピュータ５０４を介してリモートページにＨＴＭＬ要求を発行する。パーソナルコンピュータ５０４は、この要求を代理受信し、リモートサーバ５０２とのセッションを開始し、たとえばＷＳＤＬをサーバ５０２のプロトコルとして使用するＵＩレンダリング管理対象コードをオフロードする。通常、プロキシパーソナルコンピュータ５０４からサーバ５０２への帯域幅は、ＰＤＡデバイス５００からプロキシパーソナルコンピュータ５０４への帯域幅よりも小さいので、サーバ５０２へまたサーバ５０２からの比較的遅いリンクを介して送られるデータは比較的少量になり、ＰＤＡ５００上に表示される場合、ユーザインタフェースの応答性がさらに向上し、改善されたユーザ経験がもたらされる。もちろん、この２つの帯域幅を最初に評価して、プロキシソリューションがより最適なものであることを保証することができる。
【００５４】
さらに、ＰＤＡ５００が、サーバが利用できるローカルに実行される制御を備えている場合は、さらに良好な経験がもたらされることに留意されたい。たとえばＡＳＰ．ＮＥＴは、Ｗｉｎｄｏｗｓ（登録商標）ベースのオペレーティングシステムを実行するＰＤＡ上でローカルに実行する（たとえば日付ピック制御などの）どのローカル制御も自動的に利用する。この結果、サーバ５０２および／またはプロキシ５０４についての処理がさらに少なくなり、それによって画面の更新／明滅も少なくなる。
【００５５】
理解されるように、リソースを搭載した特定のデバイスの周りではなく、アイデンティティの周りにあるコンピューティングリソースを有することによって可能になる他の多数の例がある。リソーススキーマおよびサービスファブリック（ｓｅｒｖｉｃｅ　ｆａｂｒｉｃ）は、単にリソースの記述には限定されず、これらのリソースが共に働くのを助けるための要素も含む。このことは、以下の２つのタイプのシナリオ、それぞれユーザが実時間でリモートコンピューティングデバイスと対話する１組の実時間シナリオ、および１組のスケジュールをたてたまたは予測されたシナリオから分かる。予測シナリオの例は、１つのコンピューティングデバイスの空きストレージスペースが、他のデバイスが大量のメモリ空間（ｒｏｏｍ）を有する間、ランナウトしないことを保証するために、時折ホームネットワーク上で稼動するストレージ負荷平衡機構を含むことができる。
【００５６】
したがって、リッチスキーマは、指定時にまたは定期的にスケジュールをたてるための方法、優先順位決め装置（ｐｒｉｏｒｉｔｉｚａｔｉｏｎ　ｍａｃｈｉｎｅｒｙ）、および実時間タスクと予測されたタスクまたは多数のこうしたタスクの間に起こる可能性のある競合にいかに対処するかを示すデータなど、リソース自体の記述を超えるデータを提供することができる。このスキーマは、コストの概念を提供することができる。たとえばインターネットに２つの接続が可能な場合、ユーザが無制限アクセスの代価、また異なる機構を介して転送したデータの量に対する別の代価を支払うことができ、よい方の選択肢を選ぶことができることを認識することは価値がある。
【００５７】
ロギングシステムによる複製／共用は、ユーザがどのようにユーザのデバイスと対話しているかを理解するため、またユーザがデバイスによって分離された共通点のないビューしかもたないのではなく、ユーザがいかに操作するかを示す統合されたビューを獲得するために使用することができる。このデータは、多くのデバイスに適切に知られており、こうしたデータが統合されるための自動的な方法が提供されるであろう。予測の最適化は、監視された使用に基づいて保管され、交換される。たとえばユーザが毎週金曜日に仕事に出る前に特定の情報をハンドヘルドコンピュータに手動でダウンロードすることをシステムが知っている場合、システムがデバイスの遊休中にダウンロードを開始することができ、「同期」が瞬時にして起こる。エンドユーザの任意選択／設定／優先も共用された環境についての重要な情報である。たとえば、あるユーザにとって望ましいまたは必要な機能が、他のユーザにとっては望ましくなく迷惑でさえあることがある。このデータを維持することによって、エンドユーザはユーザ経験を制御する能力を持つ。また、通常の環境では、プロトコル／スキーマを使用してシステム管理を行う、少なくとも１人のリッチクライアントがいる。ただし、「システム」はアイデンティティに関連する１組全体のリソースを指す。アルゴリズムおよび方法は、こうしたオペレーションを予測するためのスキーマを使用することができる。
【００５８】
理解されるように、アイデンティティの周囲でデバイスリソースを抽象化し集合化するデバイスを介することによって可能になる多くの重要なシナリオがある。幾つかの例を提供しているが、このリストは網羅的または決して限定的なものとみなされるべきではなく、むしろ本発明の多くの利益および有利な点の幾つかを示す助けをするものである。上記に述べた例のように、小さいコンピュータ画面を備えたデバイスは、より良好な表示のためにパーソナルコンピュータに接続された未使用のコンピュータモニタを利用し、プロキシのリソースを使用してそれ自体のディスプレイ（図５）上でより良好に表示し易くし、または適正なドライバ（図４）を有するパーソナルコンピュータを介してプリンタに接続することによって、プリンタドライバがなくてもプリンタに印刷させることができる。
【００５９】
他の例は、パーソナルコンピュータのメモリおよびＣＰＵを使用して複雑な計算を行う、移動電話など非常に低出力のデバイスに見ることができる。記憶されたデータは、第１のハードドライブが満杯になってきた場合、第１のハードドライブから、たとえば、ビデオプログラミングを録画し、古い番組を消してより最近の録画のために空を作ることが必要なパーソナルデジタルビデオレコーダから、第２のハードドライブへ自動的かつ透過的に移すことができる。本発明はその代わりに、古い番組を消さずに別のストレージに転送する。携帯用オーディオプレーヤは、どのタイプの物理的媒体も再生できる必要が無く、代わりにパーソナルコンピュータからプレーヤにストリーム化された音声を受け取り緩衝し、メモリから音声を再生することができる。
【００６０】
他の例は、ユーザが、記憶場所に関係なく、どのデバイスからもユーザのファイルに容易にアクセスできるようにすることを含む。たとえば、小型のパーソナルコンピュータのみを携えて旅行中に、（集中型．ＮＥＴデータストレージから独立して）家庭用パーソナルコンピュータまたは職場のパーソナルコンピュータに記憶されたファイルを容易に開けることができるユーザは、企業ネットワーク上の様々な公共の共用点（ｓｈａｒｅｐｏｉｎｔ）を含む、様々なデバイス内の全ての空きスペースを見ることができる。適当なデバイスに接続された大画面テレビを使用して、パーソナルコンピュータのフォルダに保管された写真を見たり、スライドショーを行ったり、パーソナルコンピュータに保管された家庭用映画または映画の予告編を鑑賞したりなどすることができる。
【００６１】
図７は、４つの相互接続されたコンピューティングシステム７０２〜７０５を使用して実行される実装形態７００の実演を示す。実装形態７００は、コンピューティングシステム７０４上のコマンドシェル７１０およびアプリケーションプログラム７１２（または同様の機能コード）、コンピューティングシステム７０２上のキーボードリソース７１４、コンピューティングシステム７０３上のストレージ（またはディスク）７１６、およびコンピューティングシステム７０５上のディスプレイ７１８を含む。したがってこの例では、コンピュータ７０２上に入力リソースがあり、コンピュータ７０３上にストレージリソースがあり、コンピュータ７０４上に出力リソースがあるように、リソースが分散されている。コンピュータ７０４は、実装形態７００のための調整権として働く。リソースが異なるコンピュータシステム上にあるが、これらのリソースは本発明によってアクセスされて本質的に単一機能のシステムを作る。
【００６２】
シェルリソース７１０は、アプリケーション７１２を呼び出し、また別の入力出力ポートを提供することもできるが、概念的に図７に示したように、リソースごとに１つのポートとして、ポート７２４、７２６、および７２８を介して他のデバイスのリソースに接続される。ポートは基本的に前記ポートへのハンドルを介して前記ポートに書込み（出力）またはそれから読取り（入力）することができる構造化されたキューを含む。ポートはモバイルであり、データを失うことは無く、セキュリティは指定のエンティティ以外のものがそのエンティティ用に指定したデータを見ないようにポートと関連することができる。
【００６３】
実装形態７００で使用されるシェル７１０は、参照によりその全体を本明細書に合体する、２００２年５月１０日出願（米国仮出願第６０／３７９，８６４号）に記載されているような、ｘＳｐｒｅｓｓｏと呼ばれるプログラミング言語に基づく。一般にｘＳｐｒｅｓｓｏは、プログラミング言語、およびブローカが制御するランタイム、および非同期システム構成要素間のデータフローを対象とする。とりわけｘＳｐｒｅｓｓｏは、プログラムで確認することができる順序付けおよびタイミングを含む、プログラムおよびサービスの協調的ディメンション（ｃｏｏｐｅｒａｔｉｖｅ　ｄｉｍｅｎｓｉｏｎ）を表す。この言語は、ＸＭＬなどカストマイズ可能なタグベースの言語から作られた組織体系（ｏｒｇａｎｉｚａｔｉｏｎａｌ　ｓｃｈｅｍｅ）の受渡しをプログラムで表すことができる。
【００６４】
図７の例では、１〜４および６〜１０のラベル番号をつけた矢印がポート７２４、７２６、７２８とシェル７１０の間の様々な通信の例を示して、たとえば周知の「タイプ」機能と同様に、ディスプレイ７１８に対してストレージ７１６内のファイルのテキストデータを表示している。図７の例では、キーボードリソース７１４のユーザが、キーボード７１４に用語「ｔｙｐｅ」をタイピングすることによって（ラベル（１）の矢印）、オペレーションを開始する。シェル７１０はポート７２４を介してこれを受け取り、たとえばユーザが入力したものをエコーするために、かつ／またはユーザが表示したいテキストを記憶しているファイルのファイル名を入力要求するために、画面７１８上の表示用ポート７２８にデータを通信する（ラベル（２）の矢印）。図７では、ラベル（３）の矢印が、ＸＭＬファイルなどに対応して、ユーザがファイル名をタイピングすることを示しており、これもエコーすることができる（別にラベルで示さず）。
【００６５】
このファイル名で、シェル７１０は次いで、ストレージ（たとえばディスク）リソース７１６に呼応するポート７２６にデータを書き込み（ラベル（４）の矢印で示した）、それによってストレージのファイルシステムに読取り要求がなされる。並行して、シェル７１０は、アプリケーションプログラム７１２を呼び出して（ラベル（５）の太い矢印）読取りデータを受け取り出力する。これに呼応して、ラベル（６）および（７）の矢印で示したように、ストレージリソース７１６は、ポート７２６を介してアプリケーションプログラム７１２にデータの出力を開始し、アプリケーションプログラム７１２は、ディスプレイリソース７１８のポート７２８にデータを出力する。ラベル（８）および（９）の矢印は、残りのデータが同様の方法で転送されることを示す。ラベル（１０）の矢印は、状態（たとえば正常終了）コードがシェル７１０に戻されることを示す。
【００６６】
本発明によれば、ストレージ、入力および出力は、実装への変更なしに、異なるシステム上に配置することができる。レガシー相互協調処理を、共通レガシー構成要素（たとえばキーボード、コンソール、およびストレージ）を示す共通言語ランタイム（ＣＬＲ）クラスを介して提供することができる。同時実行およびメッセージパスの処理が明確であるように、システム分散をローカルで透過的に分散された実装形態で提供する。
【００６７】
上記の詳細な説明から分かるように、アイデンティティの概念に基づいたデバイスリソースの分散コンピューティングのための方法およびシステムを提供する。この方法およびシステムは、ユーザに数多くの利益をもたらし、ユーザのコンピューティング経験を全般的に改善する方法で、個人のデバイスからコンピュータのリソースを抽象化する。この方法およびシステムは、スキーマベースであり、拡張性および高度の適応性がある。
【００６８】
本発明には様々な修正および代替の構造が可能であるが、図面には本発明の特定の例示の実施形態が示してあり、上記に詳細に説明した。しかし、開示した特定の形態に本発明を限定するものではなく、逆に本発明は、本発明の精神および範囲内に全ての変更、代替構造、および等価のものを包含するものであることを理解されたい。
【００６９】
【発明の効果】
以上発明したように、本発明によれば、ユーザが１つのデバイスを使用して、他のデバイスのアイデンティティに相当するコンピューティングリソース（例えば、記憶容量、帯域幅、処理能力、入力方法と機構、およびレンダリング方法を含む）に容易にアクセスでき、また、該リソースを発見し、ソフトウェアプログラムによってアドレス指定可能なサービスとして露出することによって、アイデンティティに関連する様々なコンピューティングデバイスで利用することが可能となる。
【図面の簡単な説明】
【図１Ａ】本発明を組み込むことができるコンピュータシステムを全般的に表す構成図である。
【図１Ｂ】本発明を組み込むことができる他のコンピュータシステムを全般的に表す構成図である。
【図２】本発明の一態様による分散コンピューティング環境にある様々な構成要素を表す構成図である。
【図３】本発明の一態様によるリソース情報を発見し交換するためのアーキテクチャを全般的に表す構成図である。
【図４】本発明の一態様による、リソースへの分散コンピューティングオペレーションによって、本発明がユーザのコンピューティング経験をいかに改善することができるかという例を示す構成図である。
【図５】本発明の一態様による、リソースへの分散コンピューティングオペレーションによって、本発明がユーザのコンピューティング経験をいかに改善することができるかという例を示す構成図である。
【図６】本発明の一態様による分散コンピューティング環境でリソースの共用を容易にするために実行する例示の論理および関連するオペレーションを示す流れ図である。
【図７】本発明の一態様による分散リソースを含む例示の実装形態を全般的に示す構成図である。
【符号の説明】
１００　コンピューティングシステム環境
１１０　コンピュータ、コンピュータシステム
１２０　処理ユニット
１２１　システムバス
１３０　システムメモリ
１３１　読取り専用記憶素子（ＲＯＭ）
１３２　ランダムアクセスメモリ（ＲＡＭ）
１３３　基本入出力システム（ＢＩＯＳ）
１３４　オペレーティングシステム
１３５　アプリケーションプログラム
１３６　他のプログラムモジュール
１３７　プログラムデータ
１４０　取り外しできない不揮発性メモリインタフェース
１４１　ハードディスクドライブ
１４４　オペレーティングシステム
１４５　アプリケーションプログラム
１４６　他のプログラムモジュール
１４７　プログラムデータ
１５０　取り外し可能な不揮発性メモリインタフェース
１５１　磁気ディスクドライブ
１５２　磁気ディスク
１５５　光ディスクドライブ
１５６　光ディスク
１６０　ユーザ入力インタフェース
１６１　ポインティングデバイス
１６２　キーボード
１６３　マイクロホン
１６４　電子ディジタイザ、タブレット
１７０　ネットワークインタフェース／アダプタ
１７１　特定区域内情報通信網（ＬＡＮ）
１７２　モデム
１７３　広域網（ＷＡＮ）
１８０　リモートコンピュータ
１８１　メモリデバイス
１８５　リモートアプリケーションプログラム
１８８　コンピュータデバイス
１８９　プロセッサ
１９０　メモリ
１９１　モニタ
１９２　ディスプレイ
１９３ａ　周辺出力インタフェース
１９３ｂ　タッチスクリーンパネル
１９３ｃ　キーボード
１９４　オペレーティングシステム（ＯＳ）／出力周辺インタフェース
１９５　アプリケーションプログラム／スピーカ
１９６　通知管理プログラム
１９７　電源
１９８　１つまたは複数の発光ダイオード
１９９　音声発生器
２００　分散コンピューティング環境
２０２　デバイスＡ
２０４　分散コンピューティング管理プログラムデバイス
２０６　セキュリティ機構
２０７　クレデンシャル
２０８　発見機構
２０９　データ
２１２　第２のデバイス
２１４　分散コンピューティング管理プログラム
２１６　セキュリティ機構
２１７　クレデンシャル
２１８　発見機構
２１９　データ
２２０　認証サービス
３００　アーキテクチャ
３０２　機構
３０４　スキーマ機構
４００　移動デバイス
４０２　プリンタ
４０４　パーソナルコンピュータ
４０６　プリンタドライバ
５００　個人情報機器（ＰＤＡ）
５０２　サーバ
５０４　パーソナルコンピュータ
７００　実装形態
７０２　コンピューティングシステム
７０３　コンピューティングシステム
７０４　コンピューティングシステム
７０５　コンピューティングシステム
７１０　シェル
７１２　アプリケーションプログラム
７１４　キーボード
７１６　ストレージ
７１８　ディスプレイ
７２４、７２６、７２８　ポート
【図１Ａ】
2004038956.tif 000005
【図１Ｂ】
2004038956.tif 000006
【図２】
2004038956.tif 000007
【図３】
2004038956.tif 000008
【図４】
2004038956.tif 000009
【図５】
2004038956.tif 000010
【図６】
2004038956.tif 000011
【図７】
2004038956.tif 000012