(57)【要約】【課題】より効率的なおよび確かなリソースアクセスを容易にするために、リソースをコレクションに編成する方法、システムおよびコンピュータプログラム製品を提供すること。【解決手段】名前空間の管理は互いに通信して、名前空間のフェデレーションインフラストラクチャを形成する。インフラストラクチャは、名前空間の要求を効率的にルーティング、移行および処理することができ、これらの要求は、名前空間の部分を管理することを要求するプロバイダからの名前空間の登録要求、および管理されたリソースへのアクセスを要求するコンシューマからの検索要求などである。リソースを、複数の異なる名前空間内に登録し、複数の異なる名前空間からアクセス可能にすることができる。階層の名前空間の複数のレベルで結果をフィルタリングするネストされたクエリを使用して、リソースを識別することができる。【選択図】図１
2006107501.tif 000002
【特許請求の範囲】
【請求項１】
名前空間のフェデレーションインフラストラクチャにおける、複数のリソースを編成するための方法であって、
１つまたは複数のリソースを編成するように構成される１つまたは複数の名前空間に新しいリソースを含むことを決定する動作と、
前記新しいリソースに関係付けられる前記１つまたは複数の名前空間のうちの第１の名前空間内の第１のリソースを識別する動作と、
第１の名前空間のセグメントを使用して、前記新しいリソースを前記第１のリソースにリンクさせ、前記名前空間のセグメントが横断されて前記第１のリソースから前記名前空間内の前記新しいリソースへナビゲートすることができるようにする動作と
を備えたことを特徴とする方法。
【請求項２】
クエリを実施するためにキャッシュされた情報が減らされ、および前記１つまたは複数の名前空間の各々にわたって分散されるような、リソースのクエリを開始する点を識別する前記１つまたは複数の名前空間に含まれる前記リソースにより、前記１つまたは複数の名前空間を確立する動作をさらに備えたことを特徴とする請求項１に記載の方法。
【請求項３】
前記新しいリソースに関係付けられる前記１つまたは複数の名前空間のうちの第２の名前空間内の第２のリソースを識別する動作と、
第２の名前空間のセグメントを使用して、前記名前空間のセグメントを横断することにより存在している前記リソースから前記名前空間内の前記新しいリソースへナビゲートすることができるような前記第２のリソースに前記新しいリソースをリンクさせる動作と
をさらに備えたことを特徴とする請求項１に記載の方法。
【請求項４】
前記第１の名前空間において、前記第１の名前空間に問い合わせることによりリソースを探し出すことができるような前記リソースの有用性を発行する動作をさらに備えたことを特徴とする請求項１に記載の方法。
【請求項５】
前記第１のリソースを識別する動作は、前記名前空間内に存在する名前空間のノードリソースに属するプロパティを問い合わせる動作を含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記第１のリソースを識別する動作は、前記第１の名前空間において、前記第１の名前空間の横断中に問い合わせることができる属性を有する中間の名前空間のノードリソースを識別する動作を含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記第１の名前空間において前記中間の名前空間のノードリソースを識別する動作は、前記第１の名前空間のセグメントを横断する場合に前記新しいリソースを識別するために、入力としてフィルタに提供することができる属性を有する、中間の名前空間のノードリソースを識別する動作を含むことを特徴とする請求項６に記載の方法。
【請求項８】
ＵＲＩを使用して前記リソースにアクセスすることができるような前記新しいリソースに前記ＵＲＩを割り当てる動作をさらに備えたことを特徴とする請求項１に記載の方法。
【請求項９】
前記新しいリソースに前記ＵＲＩを割り当てる動作は、前記ＵＲＩを使用してリソースに単独でアクセスすることができるような前記リソースに一意のＵＲＩを割り当てる動作を含むことを特徴とする請求項８に記載の方法。
【請求項１０】
新しいリソースに前記１つまたは複数の名前空間のうち１つの中からアクセスするための１つまたは複数の追加のＵＲＩを前記新しいリソースに割り当てる動作をさらに備えたことを特徴とする請求項９に記載の方法。
【請求項１１】
前記ＵＲＩを前記新しいリソースに割り当てる動作は、階層の名前空間において前記新しいリソースを識別するために使用することができるＵＲＩを割り当てる動作を含むことを特徴とする請求項８に記載の方法。
【請求項１２】
前記ＵＲＩを前記新しいリソースに割り当てる動作は、フラットの名前空間において前記新しいリソースを識別するために使用することができるＵＲＩを割り当てる動作を含むことを特徴とする請求項８に記載の方法。
【請求項１３】
前記ＵＲＩを前記新しいリソースに割り当てる動作は、ＲＦＣ−２３９６により定義された１つまたは複数の部分を有するＵＲＩを割り当てる動作を含むことを特徴とする請求項８に記載の方法。
【請求項１４】
前記第１の名前空間のセグメントを使用して、前記新しいリソースを前記第１のリソースにリンクさせる動作は、前記第１のリソースを前記新しいリソースにリンクさせることに加えて、前記第１のリソースを１つまたは複数の他のリソースにリンクさせる、存在する名前空間のセグメントを使用する動作を含むことを特徴とする請求項１に記載の方法。
【請求項１５】
前記新しいリソースは、名前空間のノードリソースであることを特徴とする請求項１に記載の方法。
【請求項１６】
前記第１のリソースは、名前空間のノードリソースであることを特徴とする請求項１に記載の方法。
【請求項１７】
前記新しいリソースに関係付けられる前記１つまたは複数の名前空間のうちの第２の名前空間内の第２のリソースを識別する動作と、
第２の名前空間のセグメントを横断することにより前記第２のリソースから前記第２の名前空間内の前記新しいリソースへナビゲートすることができるような前記第２の名前空間のセグメントを使用して、前記新しいリソースを前記第２のリソースにリンクさせる動作と
をさらに備えたことを特徴とする請求項１に記載の方法。
【請求項１８】
名前空間のフェデレーションインフラストラクチャ内で、複数の名前空間内でリソースを登録するための方法であって、
リソースのための一意的なリソース識別子を確立する動作と、
第１の名前空間において前記リソースの有用性を発行する動作と、
前記第１の名前空間において、前記第１の名前空間を横断することにより前記リソースを識別することができるような第１の名前空間のノードリソースに前記一意的なリソース識別子をリンクさせる動作と、
第２の名前空間において前記リソースの有用性を発行する動作と、
前記第２の名前空間において、前記第２の名前空間を横断することにより前記リソースを識別することができるような第２の名前空間のノードリソースに前記一意的なリソース識別子をリンクさせる動作と
を備えたことを特徴とする方法。
【請求項１９】
前記第１の名前空間において前記リソースの有用性を発行する動作は、第１の名前空間において、名前空間の範囲に対する基礎を提供するリソースを分割する複数の名前空間の中から前記リソースの有用性を発行する動作を含むことを特徴とする請求項１８に記載の方法。
【請求項２０】
前記第１の名前空間において前記リソースの有用性を発行する動作は、第１の名前空間において、他のリソースによって問い合わされることにより前記名前空間内の前記リソースを識別することができる開始の名前空間のノードリソースを有する前記リソースの有用性を発行する動作を含むことを特徴とする請求項１８に記載の方法。
【請求項２１】
第１の名前空間において、前記第１の名前空間を横断することにより前記リソースを識別することができるようなノードリソースに前記一意的なリソース識別子をリンクさせる前記動作は、ＵＲＩと前記リソースとを結び付ける動作を含むことを特徴とする請求項１８に記載の方法。
【請求項２２】
前記第１の名前空間に対する、前記ＵＲＩと前記リソースとを結び付ける動作は、前記一意のＵＲＩを使用して単独でアクセスすることができるような前記リソースに一意のＵＲＩを割り当てる動作を含むことを特徴とする請求項２１に記載の方法。
【請求項２３】
前記新しいリソースに前記複数の名前空間の１つの中からアクセスする１つまたは複数の追加のＵＲＩを前記リソースに割り当てる動作をさらに備えたことを特徴とする請求項２２に記載の方法。
【請求項２４】
前記第１の名前空間において、前記第１の名前空間を横断することにより前記リソースを識別することができるような第１の名前空間のノードリソースに前記一意的なリソース識別子をリンクさせる動作は、前記リソースと前記第１の名前空間のノードリソースとの間で名前空間のセグメントを形成する動作を含むことを特徴とする請求項１８に記載の方法。
【請求項２５】
前記第２の名前空間において前記リソースの有用性を発行する動作は、第２の名前空間において、リソースを分割して名前空間の範囲のための基礎を提供する複数の名前空間の中から、前記リソースの有用性を発行する動作を含むことを特徴とする請求項１８に記載の方法。
【請求項２６】
前記第２の名前空間において前記リソースの有用性を発行する動作は、第２の名前空間において、他のリソースによって問い合わせて前記名前空間内の前記リソースを識別することができる開始の名前空間のノードリソースを有する前記リソースの有用性を発行する動作を含むことを特徴とする請求項１８に記載の方法。
【請求項２７】
前記第２の名前空間において、前記第２の名前空間を横断することにより前記リソースを識別することができるような第２の名前空間のノードリソースに前記一意的なリソース識別子をリンクさせる動作は、前記第２の名前空間についてのＵＲＩと前記リソースとを結び付ける動作を含むことを特徴とする請求項１８に記載の方法。
【請求項２８】
前記第２の名前空間において、前記第２の名前空間を横断することにより前記リソースを識別することができるような第２の名前空間のノードリソースに前記一意的なリソース識別子をリンクさせる動作は、前記リソースと前記第２の名前空間のノードリソースとの間で名前空間のセグメントを形成する動作を含むことを特徴とする請求項１８に記載の方法。
【請求項２９】
前記リソースは、名前空間のノードリソースであることを特徴とする請求項１８に記載の方法。
【請求項３０】
名前空間のフェデレーションインフラストラクチャにおいて、前記名前空間のフェデレーションインフラストラクチャにおけるクエリを実装するための方法であって、
名前空間の階層において、第１のレベルで識別され、第１のクエリ基準を満たすリソースの第１の部分を識別する第１のクエリ部分と、
第２のクエリ基準を満たす前記リソースの第１の部分内に含まれた前記リソースの中から選択され、前記名前空間において第２の異なるロケーションで識別され、および前記リソースの第２の部分の前記アイデンティティを前記装置に戻すリソースの第２の部分を識別する第２のクエリ部分と
を含むクエリを装置から受信する動作と、
前記リソースの第２の部分の前記アイデンティティを前記装置に戻す動作と
を備えたことを特徴とする方法。
【請求項３１】
前記クエリを装置から受信する動作は、クエリを受信する名前空間について名前空間のノードリソースを開始をする動作を含むことを特徴とする請求項３０に記載の方法。
【請求項３２】
前記クエリを装置から受信する動作は、名前空間内の中間の名前空間のノードリソースが前記名前空間についてルートの名前空間のノードリソースからクエリを受信する動作を含むことを特徴とする請求項３０に記載の方法。
【請求項３３】
前記クエリを装置から受信する動作は、前記名前空間の階層において第２のレベルでリソースを識別する第２のクエリ基準を有するクエリを受信する動作を含むことを特徴とする請求項３０に記載の方法。
【請求項３４】
前記クエリを装置から受信する動作は、第２の異なる名前空間の階層においてリソースを識別する第２のクエリ基準を有するクエリを受信する動作を含むことを特徴とする請求項３０に記載の方法。
【請求項３５】
前記リソースの第２の部分の前記アイデンティティを前記装置に戻す動作は、前記リソースの第２の部分の各々について、リソースに単独でアクセスするために使用することができる、少なくとも一意の対応するＵＲＩを戻す動作を含むことを特徴とする請求項３０に記載の方法。
【請求項３６】
前記第２のリソースの各々に前記複数の名前空間の１つの中からアクセスする１つまたは複数の追加のＵＲＩを前記第２のリソースの各々に割り当てる動作をさらに備えたことを特徴とする請求項３５に記載の方法。
【請求項３７】
前記第２のクエリ基準を満たす名前空間のセグメントを前記リソースの第１の部分内の第１のリソースから、前記リソースの第２の部分内の第２のリソースまで横断する動作をさらに備えたことを特徴とする請求項３０に記載の方法。
【請求項３８】
前記第１のクエリ基準を利用して、前記リソースの第１の部分を参照するリソースのプロパティによりナビゲートする動作をさらに備えたことを特徴とする請求項３０に記載の方法。
【請求項３９】
前記第２のクエリ基準を利用して、前記リソースの第２の部分を参照する前記リソースの第１の部分のプロパティによりナビゲートする動作をさらに備えたことを特徴とする請求項３０に記載の方法。
【請求項４０】
名前空間のフェデレーションインフラストラクチャにおいて使用され、複数のリソースを編成するための方法を実装し、コンピュータ実行可能命令を格納している１つまたは複数のコンピュータ読取り可能な媒体を備えているコンピュータプログラム製品であって、プロセッサによって実行されると、
１つまたは複数のリソースを編成するように構成される１つまたは複数の名前空間に含まれる新しいリソースを決定するステップと、
前記新しいリソースに関係付けられる前記１つまたは複数の名前空間のうちの第１の名前空間内の第１のリソースを識別するステップと、
第１の名前空間のセグメントを使用して、前記名前空間のセグメント横断することにより前記第１のリソースから前記名前空間内の前記新しいリソースへナビゲートすることができるような前記第１のリソースに前記新しいリソースをリンクさせるステップと
を前記名前空間のフェデレーションインフラストラクチャに実行させるコンピュータ実行可能命令を備えたことを特徴とするコンピュータプログラム製品。
【請求項４１】
実行されると、クエリを実施するためにキャッシュされた情報が減らされ、および前記１つまたは複数の名前空間の各々にわたって分散されるような、リソースのクエリを開始する点を識別する前記１つまたは複数の名前空間に含まれる前記リソースにより前記１つまたは複数の名前空間を確立するステップを、前記名前空間のフェデレーションインフラストラクチャに実行させるコンピュータ実行可能命令をさらに備えたことを特徴とする請求項４０に記載のコンピュータプログラム製品。
【請求項４２】
実行されると、前記リソースの有用性を前記第１の名前空間内で発行して、前記第１の名前空間が問い合わせられて前記リソースを探し出すことができるようにするステップを、前記名前空間のフェデレーションインフラストラクチャに実行させるコンピュータ実行可能命令をさらに備えたことを特徴とする請求項４０に記載のコンピュータプログラム製品。
【請求項４３】
第１のリソースを識別するステップは、実行されると、前記第１の名前空間において、前記第１の名前空間の横断中に問い合わせることができる属性を有する中間の名前空間のノードリソースを識別するステップを含むことを特徴とする請求項４０に記載のコンピュータプログラム製品。
【請求項４４】
第１のリソースを識別するステップは、実行されると、前記第１の名前空間のセグメントを横断する場合に前記新しいリソースを識別するために、入力としてフィルタに提供することができる属性を有する中間の名前空間のノードリソースを識別するステップを含むことを特徴とする請求項４０に記載のコンピュータプログラム製品。
【請求項４５】
実行されると、ＵＲＩを使用してアクセスすることができるような前記新しいリソースに前記ＵＲＩを割り当てるステップを、前記名前空間のフェデレーションインフラストラクチャに実行させるコンピュータ実行可能命令をさらに備えたことを特徴とする請求項４０に記載のコンピュータプログラム製品。
【請求項４６】
名前空間のフェデレーションインフラストラクチャにおいて使用され、複数の名前空間におけるリソースを登録する方法を実装し、コンピュータ実行可能命令を格納している１つまたは複数のコンピュータ読取り可能な媒体を備えているコンピュータプログラム製品であって、プロセッサによって実行されると、
リソースに対して一意的なリソース識別子を確立するステップと、
第１の名前空間において前記リソースの有用性を発行するステップと、
前記第１の名前空間において、前記第１の名前空間を横断することにより前記リソースを識別することができるような第１の名前空間のノードリソースに前記一意的なリソース識別子をリンクさせるステップと、
第２の名前空間において前記リソースの有用性を発行するステップと、
前記第２の名前空間において、前記第２の名前空間を横断することにより前記リソースを識別することができるような第２の名前空間のノードリソースに前記一意的なリソース識別子をリンクさせるステップと
を前記名前空間のフェデレーションインフラストラクチャに実行させるコンピュータ実行可能命令を備えたことを特徴とするコンピュータプログラム製品。
【請求項４７】
第１の名前空間のノードリソースに前記一意的なリソース識別子をリンクさせるステップは、実行されると、前記リソースと前記第１の名前空間のノードリソースとの間で名前空間のセグメントを形成するステップを含むことを特徴とする請求項４６に記載のコンピュータプログラム製品。
【請求項４８】
第２の名前空間のノードリソースに前記一意的なリソース識別子をリンクさせるステップは、実行されると、前記リソースと前記第２の名前空間のノードリソースとの間で名前空間のセグメントを形成するステップを含むことを特徴とする請求項４６に記載のコンピュータプログラム製品。
【請求項４９】
名前空間のフェデレーションインフラストラクチャにおいて使用され、前記名前空間のフェデレーションインフラストラクチャにおいてクエリを実施するための方法を実装し、コンピュータ実行可能命令を格納している１つまたは複数のコンピュータ読取り可能な媒体を備えているコンピュータプログラム製品であって、プロセッサによって実行されると、
名前空間の階層において、第１のレベルで識別され、第１のクエリ基準を満たすリソースの第１の部分を識別する第１のクエリ部分と、
第２のクエリ基準を満たす前記リソースの第１の部分内に含まれた前記リソースの中から選択され、前記名前空間において第２の異なるロケーションで識別され、および前記リソースの第２の部分の前記アイデンティティを前記装置に戻すリソースの第２の部分を識別する第２のクエリ部分と
を含むクエリを装置から受信するステップ
を前記名前空間のフェデレーションインフラストラクチャに実行させるコンピュータ実行可能命令を備えたことを特徴とするコンピュータプログラム製品。
【請求項５０】
実行されると、クエリを装置から受信するステップは、実行されると、前記名前空間に対して名前空間のノードリソースを開始して前記クエリを受信するステップを含むことを特徴とする請求項４９に記載のコンピュータプログラム製品。
【請求項５１】
実行されると、クエリを装置から受信するステップは、実行されると、前記名前空間の階層において第２のレベルでリソースを識別する第２のクエリ基準を有するクエリを受信するステップを含むことを特徴とする請求項４９に記載のコンピュータプログラム製品。
【請求項５２】
実行されると、クエリを装置から受信するステップは、実行されると、第２の異なる名前空間の階層においてリソースを識別する第２のクエリ基準を有するクエリを受信するステップを含むことを特徴とする請求項４９に記載のコンピュータプログラム製品。
【請求項５３】
実行されると、前記リソースの第１の部分内の第１のリソースから、前記リソースの第２の部分内の第２のリソースまで、前記第２のクエリ基準を満たす名前空間のセグメントを横断するステップを、前記名前空間のフェデレーションインフラストラクチャに実行させるコンピュータ実行可能命令を備えたことを特徴とする請求項４９に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般には、リソースを編成することに関し、より詳細には、リソースをコレクションに編成することによって、より効率的なおよび確かなリソースアクセスを容易にすることに関する。
【背景技術】
【０００２】
コンピュータシステムおよび関連技術は、社会の多数の面に影響を与える。実際に、コンピュータシステムの、情報を処理する能力は、我々が生活し、働く方法を変えてきている。コンピュータシステムは現在一般に、コンピュータシステムの出現以前は手動で実行されていた多数のタスク（例えば、文書処理、スケジューリングおよびデータベース管理）を実行する。より最近では、コンピュータシステムが互いに、また他の電子装置に結合されて、有線および無線コンピュータネットワークが形成されるようになり、このネットワークを介して、コンピュータシステムおよび他の電子装置は電子データを転送することができる。結果として、コンピュータシステムで実行された多数のタスク（例えば、音声通信、電子メールへのアクセス、ホームエレクトロニクスのコントロール、ウェブブラウジング、およびドキュメントの印刷）には、有線および／または無線コンピュータネットワークを介した、いくつかのコンピュータシステムおよび／または他の電子装置の間の電子通信が含まれる。
【０００３】
コンピュータネットワークを介してアクセス可能であるリソース（例えば、装置およびサービス）の品質および多様性により、様々な異なるアクセスメカニズムが開発されている。多数のアクセスメカニズムは異なるプロトコルを利用する。例えば、ワールドワイドウェブ（「ＷＷＷ」）上のウェブページにアクセスすることは通常、ハイパーテキスト転送プロトコル（「ＨＴＴＰ」）を使用して容易にされる。他方では、ファイルにリモートロケーションからアクセスすることを、ファイル転送プロトコル（「ＦＴＰ」）を使用して容易にすることができる。時には、同じコンテンツを、異なるプロトコルを使用して異なる時間に転送することができる。例えば、電子メールメッセージを複数のメールサーバの間で、簡易メール転送プロトコルを使用して転送し、次いで、インターネットメッセージアクセスプロトコル（「ＩＭＡＰ」）またはポストオフィスプロトコル（「ＰＯＰ」）を使用して、クライアントに転送することができる。
【０００４】
しかし、プロトコルを使用してリソースの転送またはアクセスができるようになる前に、対応するアクセスメカニズムは、アクセスまたは転送されるべきであるリソースを識別するためのある方法を有していなければならない。例えば、ウェブブラウザがＨＴＴＰを使用してウェブページにアクセスできるようになる前に、ウェブブラウザは、アクセスされるべきであるウェブページを識別するためのある方法を有していなければならない。同様に、メールクライアントがＩＭＡＰまたはＰＯＰを使用して電子メールメッセージを受信することができるようになる前に、メールクライアントは、電子メッセージを格納中であるメールサーバを識別するためのある方法を有していなければならない。したがって、実質的にはすべてのリソースアクセスメカニズムには、リソースを識別するために使用することができる識別メカニズムも含まれる。
【０００５】
１つの識別メカニズムには、ネットワークアドレス（例えば、インターネットプロトコル「ＩＰ」アドレス）を利用して、対応するコンピューティング装置（例えば、ラップトップ、メールサーバ、プリンタ、ＰＤＡなど）を識別することが含まれる。ネットワークアドレスによってコンピューティング装置を識別することは、より小さいネットワーク（例えば、ホームエリアネットワーク（「ＨＡＮ」））上、および／または、ネットワークアドレスが比較的まれに変わるネットワーク上では、十分である場合がある。しかし、分散型のより大規模のネットワーク上では、ネットワークアドレスを識別メカニズムとして使用することには、しばしば問題がある。例えば、インターネット上に大量のコンピューティング装置があることにより、ユーザーがアクセスすることを望む可能性のあるあらゆるコンピューティング装置のためのＩＰアドレスを記憶していることは、不可能でないとしても、困難である可能性がある。さらに、プロバイダがコンピューティング装置のネットワークアドレスを変更するか、またはコンピューティング装置の所有権を、異なるネットワークアドレスをコントロールする異なるプロバイダに移すようになる可能性は常にある。したがって、以前に知られていたネットワークアドレスにあるコンピューティング装置に、後にアクセスしようと試みると失敗する可能性があり、より最近のネットワークアドレスを容易に決定するための方法がない場合がある。
【０００６】
したがって、他の識別メカニズムはネットワークアドレスを、通常はより記憶しやすい英字の文字列として表現し、ネットワークアドレスからのあるレベルの抽象化を提供する。例えば、ドメインネームサービス（「ＤＮＳ」）を使用して、ＩＰアドレスを英字文字列（例えば、ドメインネームに対応する）として表現することができる。英字文字列が使用されてコンピューティング装置が識別されるとき、ＤＮＳは変換データベースをチェックして英字文字列を、コンピューティング装置のための対応するＩＰアドレスに変換する。さらに、新しいＩＰアドレスがコンピューティング装置に割り当てられるとき、変換データベースを更新して、以前に利用された、コンピューティング装置を識別する英字文字列が、新しいＩＰアドレスに対応するようにすることができる。このように、ＤＮＳはあるレベルの抽象化を提供し、この抽象化により、コンピューティング装置を表現する英字文字列を変更する必要なしに、コンピューティング装置のためのＩＰアドレスの変更が可能となる。したがって、プロバイダがコンピューティング装置のためのＩＰアドレスを変更する場合、同じ英字文字列をしばしば使用して、コンピューティング装置にアクセスすることができる。
【０００７】
しかし、コンピュータシステムを、いくつかの異なるサービスを同時に提供するように構成することができるので、ＤＮＳのみを使用することは、コンピューティング装置の特定のリソースを識別するために十分ではない場合がある。例えば、いくつかの環境では、ＤＮＳを単独の識別メカニズムとして使用することにより、同じウェブサーバによって提供された複数の異なるサービス（電子メール、探索機能性など）の間で区別することが困難になる可能性がある。すなわち、ウェブサーバを（例えば、ネットワークアドレスまたは英字文字列によって）識別することは、必ずしも、ウェブサーバによって提供された特定のサービスのいずれかの指示を提供するとは限らない。このように、ウェブサーバの電子メールサービスにアクセスするために、識別メカニズムは、電子メールサービスをウェブサーバの他のサービスから区別するためのある方法を必要とするようになる。
【０００８】
ユニフォームリソース識別子（「ＵＲＩ」）は、リソースをより正確に識別するために開発されている１つのメカニズムである。ＵＲＩは、コンピューティング装置を識別するネットワークアドレスまたは英字文字列、ならびに、コンピューティング装置での特定のリソースを識別する追加の英数字文字列を含むことができる。ユニフォームリソースロケータ（「ＵＲＬ」）は、リソースを、それらのプライマリアクセスメカニクス（例えば、それらのネットワークロケーション）の表現を介して識別する、ＵＲＩの部分集合を指す。ユニバーサルリソース名（「ＵＲＮ」）は、グローバルに一意のまま残ること、および、対応するリソースが存在することをやめるときにさえ持続することが必要とされる、ＵＲＩの部分集合を指す。
【０００９】
ＵＲＬは通常、インターネット上のリソースにアクセスするために使用される。例えば、ＵＲＬ「ｈｔｔｐ：／／［ドメインネーム］／［英数字文字列］」を使用して、ＷＷＷ上のコンピューティング装置での特定のリソースを識別することができる。ＵＲＬはまた通常は、異なる（しばしば階層的）名前空間（ｎａｍｅｓｐａｃｅ）を表現する、異なるスキームに細分される。例えば、インターネット上で使用された異なるスキームのいくつかには、ｆｔｐ、ｈｔｔｐ、ｇｏｐｈｅｒ、ｍａｉｌｔｏ、ｎｅｗｓおよびｔｅｌｎｅｔが含まれる。これらの各スキームは、それぞれ異なる対応する名前空間を表現する。これは、リソースの識別が異なる名前空間にわたる範囲とすることができ、および各スキームがその対応する名前空間内でリソースを識別するための異なる構文を有することができるので、有益である。例えば、ｈｔｔｐの名前空間内でリソースを識別するための構文、および、ｆｔｐの名前空間内でリソースを識別するための構文は、異なる場合がある。
【００１０】
残念ながら、少なくとも部分的には、異なる構文を有する異なるスキームにより、複数の名前空間内からリソースにアクセスすることができるように、リソースへのアクセスを構成することは、不可能でない場合、しばしば困難である。すなわち、リソースをある名前空間からアクセス可能にすることは通常、そのリソースが他の名前空間からアクセス可能となることを妨げる。例えば、ｈｔｔｐスキームは通常、ｆｔｐスキームを使用した識別のために構成されているリソースを識別する（およびｆｔｐを使用して転送する）ために、使用することはできない。すなわち、ｈｔｔｐ：／／［ドメインネーム］／［英数字文字列］という形式のＵＲＬは通常、ｆｔｐの名前空間内でリソースを識別するために使用することはできない。
【００１１】
さらに、通常のリソース識別メカニズムは、問い合わせる能力が限られている。例えば、ＵＲＩの１つの部分集合は、階層関係を表現するための共通構文を、指定された名前空間と共に共有する。この部分集合のＵＲＩは、＜スキーム＞：／／＜オーソリティ＞＜パス＞？＜クエリ＞の形式を有することができ、ただし、クエリ部分は、＜スキーム＞：／／＜オーソリティ＞＜パス＞でのリソースによって解釈されるべき情報の文字列である。これにより、クエリをリソースに発行して、例えば、リソース探索または発見機能を実行することなどが容易になる。
【００１２】
しかし、通常のリソース識別メカニズムは、ＵＲＩを利用して、名前空間内に含まれたリソースについて名前空間を問い合わせるための機能性が、ある場合も、制限されている。いくつかの名前空間のためのＵＲＩ構文はクエリ機能性を可能にするが、名前空間の階層内の最低レベル（例えば、リーフノード）のみである。この結果は、少なくとも部分的には、既存の名前空間のメカニズムが中間ノードをリソースとして見ないという事実から生じる。このように、例えば、指定された会社のためのウェブサイトを表現するＵＲＩなど、ＵＲＩを公式化して、特定のエンドポイントでのテキストファイルについて問い合わせることができる。しかし、ＵＲＩを公式化して、「．ｃｏｍ」で終了するあらゆるドメインのみからのテキストファイルについて、同じ名前空間の階層を問い合わせることは、不可能でない場合も、困難となる。
【００１３】
さらに、既存の探索メカニズムは、大量のリソース情報がキャッシュされることを必要とする。例えば、大部分のインターネット探索エンジンは、新しいＵＲＬのために絶えずインターネットをスキャンし、ＵＲＬをローカルでキャッシュする。探索（またはクエリ）が探索エンジンにサブミットされるとき、探索エンジンは、キャッシュされたＵＲＬを探索する。したがって、リソースのためのＵＲＬがキャッシュされないか、または、キャッシングの後にＵＲＬが変更となる場合、リソースのためのＵＲＬまたは正しいＵＲＬは、探索結果において戻されない場合がある。したがって、より効率的なおよび確かなリソースアクセスを容易にするシステム、方法、コンピュータプログラム製品は、有利であろう。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
従来技術による前述の問題は、本発明の原理によって克服され、本発明は、より効率的なおよび確かなリソースアクセスを容易にするために、リソースをコレクションに編成するための方法、システムおよびコンピュータプログラム製品を対象とする。
【課題を解決するための手段】
【００１５】
いくつかの実施形態では、名前空間の登録要求は、名前空間のフェデレーションインフラストラクチャ（ｆｅｄｅｒａｔｉｏｎ  ｉｎｆｒａｓｔｒｕｃｔｕｒｅ）において転送される。名前空間の分岐（ｎａｍｅｓｐａｃｅ  ｂｒａｎｃｈ）を登録するための名前空間の登録要求が受信され、名前空間の登録要求は、名前空間の分岐を識別する名前空間の文字列を含む。少なくとも一方向の同値の数値の識別値（ａｔ  ｌｅａｓｔ  ｏｎｅ−ｗａｙ  ｅｑｕｉｖａｌｅｎｔ  ｎｕｍｅｒｉｃ  ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  ｖａｌｕｅ）は、例えば、ハッシュ値は、フラットＵＲＩスキームについては名前空間の文字列全体に基づいて、または、階層ＵＲＬスキームについては名前空間の文字列の第１のパスセグメントまでの部分に基づいて、生成される。名前空間の登録要求は、他の名前空間の管理（ｎａｍｅｓｐａｃｅ  ｍａｎａｇｅｒ）の識別子よりも、少なくとも一方向の同値の数値の識別値に数量的に近い識別子を有する名前空間の管理へ、送信（および、潜在的にルーティング）される。名前空間の分岐は、名前空間の管理と結び付けられる。
【００１６】
他の実施形態では、名前空間の登録要求は、名前空間のフェデレーションインフラストラクチャ内で移行される。名前空間の管理がポリシー制約を満たしていることが決定される。ポリシー制約と結び付けられたポリシーアクションを満たすように移行されることが可能である名前空間の分岐が識別される。名前空間の分岐のための既存の登録は、ポリシーアクションに応答して、パートナーの名前空間の管理に移行される。
【００１７】
さらに他の実施形態では、名前空間の登録要求は、名前空間のフェデレーションインフラストラクチャ内で処理される。名前空間の分岐を登録するための名前空間の登録要求が受信される。名前空間の登録要求は、名前空間の分岐を識別する名前空間の文字列、および、名前空間の分岐内で登録を要求するプロバイダのための識別子を含む。名前空間の管理が名前空間の分岐に関心を有することが決定される。名前空間の文字列は、適切にインデックス付けされた名前空間の登録データベース内に保存される。登録要求発信元（例えば、名前空間のプロバイダ）の活性がどのような頻度で後に検証されるべきであるかが、さらに決定される。
【００１８】
さらなる実施形態では、名前空間の検索要求は、名前空間のフェデレーションインフラストラクチャ内で送信（および、潜在的にルーティング）される。名前空間の分岐を識別する名前空間の文字列を含む、名前空間の検索要求が受信される。少なくとも一方向の同値の数値の識別値、例えば、ハッシュ値が、フラットＵＲＩスキームについては名前空間の文字列全体に基づいて、または、階層ＵＲＩスキームについては名前空間の文字列の第１のパスセグメントまでの部分に基づいて、生成される。名前空間の検索要求は、例えば近接性メトリックに従って、目的地の名前空間の管理に送信（および潜在的にルーティング）される。目的地の名前空間の管理は、少なくとも一方向の同値の数値の識別値に数量的に最も近い一意の識別子を有する名前空間の管理の予め定義された範囲内である、名前空間の管理の近傍のいずれか１つにすることができる。名前空間の検索要求は、名前空間の分岐に関心があるか、または名前空間の分岐を担うと表現している、対応する登録要求の発信元（例えば、名前空間のプロバイダ）への配信のために、転送される。
【００１９】
さらなる実施形態では、名前空間の検索要求は、名前空間のフェデレーションインフラストラクチャ内で移行される。名前空間の管理は、名前空間の分岐のための名前空間の検索要求を受信する。名前空間の管理は、名前空間の分岐を識別する一意の名前空間の識別子を含む。名前空間の管理のための名前空間の管理の一意識別子は、１つまたは複数の他の名前空間の管理に属する名前空間の管理の一意識別子よりも、生成された名前空間の分岐の一意識別子（例えば、少なくとも一方向の同値の数値の識別値）に近い。名前空間の分岐が、異なる名前空間の管理の一意識別子を有する異なる名前空間の管理に移行されているという指示が、検出される。
【００２０】
さらに他の実施形態では、名前空間の検索要求は、名前空間のフェデレーションインフラストラクチャ内で処理される。名前空間に属する名前空間の分岐を識別する名前空間の文字列を含む、名前空間の検索要求が受信される。名前空間の検索要求の名前空間の検索要求型が識別される。１つまたは複数のプロバイダが、名前空間の分岐に関係付けられた名前空間の部分について登録していることが検出される。名前空間の検索要求は、識別された名前空間の検索要求型に基づいて、少なくとも１つのプロバイダに転送される。
【００２１】
追加の実施形態では、リソースは名前空間のフェデレーションインフラストラクチャにおける複数の名前空間に参加する。リソースのための一意のリソース識別子が確立される。第１の名前空間において、リソースの有用性が発行される。一意のリソース識別子は、第１の名前空間を横断してリソースを識別するような第１の名前空間内で、既存の名前空間のノードリソースにリンクされる。第２の名前空間において、リソースの有用性が発行される。一意のリソース識別子は、第２の名前空間を横断してリソースを識別するような第２の名前空間において、既存の名前空間のノードリソースにリンクされる。
【００２２】
さらに追加の実施形態では、名前空間のフェデレーションインフラストラクチャにおけるリソースの部分集合が識別される。クエリが発信元から受信される。クエリは、第１のクエリ基準を満たすリソースの第１の部分を、名前空間の階層内の第１のレベルで識別する、第１のクエリ部分を含む。クエリは、リソースの第１の部分内に含まれたリソースの中から選択された、リソースの第２の部分を識別する、第２のクエリ部分を含む。リソースの第２の部分は、名前空間のフェデレーションインフラストラクチャ内の第２の異なるロケーションで識別される。リソースの第２の部分のアイデンティティは、発信者に戻される。
【００２３】
さらに追加の実施形態では、複数のリソースが編成される。リソースが１つまたは複数の名前空間内に含まれるべきであることが決定され、１つまたは複数の名前空間の各々は１つまたは複数のリソースを編成するように構成される。リソースに関係付けられるべきである、１つまたは複数の名前空間の第１の名前空間内の第１のリソースが識別される。第１の名前空間のセグメントが使用されて、リソースが第１のリソースにリンクされ、名前空間のセグメントが横断されて第１のリソースから名前空間内のリソースへナビゲート（ｎａｖｉｇａｔｅ）することができるようにされる。
【００２４】
本発明のこれらおよび他の目的および特徴は、以下の説明および付属の特許請求の範囲からより十分に明らかになり、または、以下に示す本発明の実施によって学習することができる。
【００２５】
本発明の上記および他の利点および特徴をさらに明確にするため、本発明のより詳しい説明を、添付の図面に例示されるその特定の実施形態を参照することによって提供する。これらの図面は本発明の典型的な実施形態のみを示し、したがって、その範囲を限定するように考えられるべきではないことを理解されたい。本発明を、添付の図面の使用を通じて、追加の特定性および詳細と共に説明する。
【発明を実施するための最良の形態】
【００２６】
本発明の原理は、より効率的なおよび確かなリソースアクセスを容易にするための、リソースのコレクションへの編成を提供する。いくつかの実施形態では、名前空間の登録要求は、名前空間のフェデレーションインフラストラクチャ内で転送される。名前空間の分岐を登録するための名前空間の登録要求が受信され、名前空間の登録要求は、名前空間の分岐を識別する名前空間の文字列を含む。少なくとも一方向の同値の数値の識別値、例えば、ハッシュ値が、フラットＵＲＩスキームについては名前空間の文字列全体に基づいて、または、階層ＵＲＬスキームについては名前空間の文字列の第１のパスセグメントまでの部分に基づいて、生成される。名前空間の登録要求は、他の名前空間の管理の識別子よりも、少なくとも一方向の同値の数値の識別値に数量的に近い識別子を有する名前空間の管理へ、送信（および、潜在的にルーティング）される。名前空間の分岐は、名前空間の管理と結び付けられる。
【００２７】
他の実施形態では、名前空間の登録要求は、名前空間のフェデレーションインフラストラクチャ内で移行される。名前空間の管理がポリシー制約を満たしていることが決定される。ポリシー制約と結び付けられたポリシーアクションを満たすように移行されることが可能である名前空間の分岐が識別される。名前空間の分岐のための既存の登録は、ポリシーアクションに応答して、パートナーの名前空間の管理に移行される。
【００２８】
さらに他の実施形態では、名前空間の登録要求は、名前空間のフェデレーションインフラストラクチャ内で処理される。名前空間の分岐を登録するための名前空間の登録要求が受信される。名前空間の登録要求は、名前空間の分岐を識別する名前空間の文字列、および、名前空間の分岐内で登録を要求するプロバイダのための識別子を含む。名前空間の管理が名前空間の分岐に関心を有することが決定される。名前空間の文字列は、適切にインデックス付けされた名前空間の登録データベースに保存される。登録要求発信元（例えば、名前空間のプロバイダ）の活性がどのような頻度で後に検証されるべきであるかが、さらに決定される。
【００２９】
さらなる実施形態では、名前空間の検索要求が名前空間のフェデレーションインフラストラクチャ内で送信（および、潜在的にルーティング）される。名前空間の分岐を識別する名前空間の文字列を含む、名前空間の検索要求が受信される。少なくとも一方向の同値の数値の識別値、例えば、ハッシュ値が、フラットＵＲＩスキームについては名前空間の文字列全体に基づいて、または、階層ＵＲＬスキームについては名前空間の文字列の第１のパスセグメントまでの部分に基づいて、生成される。名前空間の検索要求は、例えば近接性メトリックに従って、目的地の名前空間の管理に送信（および潜在的にルーティング）される。目的地の名前空間の管理は、少なくとも一方向の同値の数値の識別値に数量的に最も近い一意の識別子を有する名前空間の管理の予め定義された範囲内である、名前空間の管理の近傍のいずれか１つにすることができる。名前空間の検索要求は、名前空間の分岐に関心があるか、または名前空間の分岐を担うと表現している、対応する登録要求の発信元（例えば、名前空間のプロバイダ）への配信のために、転送される。
【００３０】
さらなる実施形態では、名前空間の検索要求は、名前空間のフェデレーションインフラストラクチャ内で移行される。名前空間の管理は、名前空間の分岐のための名前空間の検索要求を受信する。名前空間の管理は、名前空間の分岐を識別する一意の名前空間の識別子を含む。名前空間の管理のための名前空間の管理の一意識別子は、１つまたは複数の他の名前空間の管理に属する名前空間の管理の一意識別子よりも、生成された名前空間の分岐の一意識別子（例えば、少なくとも一方向の同値の数値の識別値）に近い。名前空間の分岐が、異なる名前空間の管理の一意識別子を有する異なる名前空間の管理に移行されているという指示が、検出される。
【００３１】
さらに他の実施形態では、名前空間の検索要求は、名前空間のフェデレーションインフラストラクチャ内で処理される。名前空間に属する名前空間の分岐を識別する名前空間の文字列を含む、名前空間の検索要求が受信される。名前空間の検索要求の名前空間の検索要求型が識別される。１つまたは複数のプロバイダが、名前空間の分岐に関係付けられた名前空間の部分について登録していることが検出される。名前空間の検索要求は、識別された名前空間の検索要求型に基づいて、少なくとも１つのプロバイダに転送される。
【００３２】
追加の実施形態では、リソースは、名前空間のフェデレーションインフラストラクチャにおける複数の名前空間に参加する。リソースのための一意のリソース識別子が確立される。第１の名前空間において、リソースの有用性が発行される。一意のリソース識別子は、第１の名前空間内で、既存の名前空間のノードリソースにリンクされ、第１の名前空間が横断されてリソースを識別することができるようにされる。第２の名前空間において、リソースの有用性が発行される。一意のリソース識別子は、第２の名前空間において、既存の名前空間のノードリソースにリンクされ、第２の名前空間が横断されてリソースを識別することができるようにされる。
【００３３】
さらに追加の実施形態では、名前空間のフェデレーションインフラストラクチャ内のリソースの部分集合が識別される。クエリが発信元から受信される。クエリは、第１のクエリ基準を満たすリソースの第１の部分を、名前空間の階層内の第１のレベルで識別する、第１のクエリ部分を含む。クエリは、リソースの第１の部分内に含まれたリソースの中から選択された、リソースの第２の部分を識別する、第２のクエリ部分を含む。リソースの第２の部分は、名前空間のフェデレーションインフラストラクチャ内の第２の異なるロケーションで識別される。リソースの第２の部分のアイデンティティは、発信者に戻される。
【００３４】
さらに追加の実施形態では、複数のリソースが編成される。リソースが１つまたは複数の名前空間内に含まれるべきであることが決定され、１つまたは複数の名前空間の各々は１つまたは複数のリソースを編成するように構成される。リソースに関係付けられるべきである、１つまたは複数の名前空間の第１の名前空間内の第１のリソースが識別される。第１の名前空間のセグメントが使用されて、リソースが第１のリソースにリンクされ、名前空間のセグメントが横断されて第１のリソースから名前空間内のリソースへナビゲートすることができるようにされる。
【００３５】
本発明の範囲内の実施形態には、格納されたコンピュータ実行可能命令またはデータ構造を搬送または有するためのコンピュータ読取り可能な媒体が含まれる。このようなコンピュータ読取り可能な媒体は、汎用または専用コンピュータシステムによってアクセス可能である、いかなる使用可能な媒体であってもよい。例として、限定ではなく、このようなコンピュータ読取り可能な媒体は、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＣＤ−ＲＯＭもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶媒体、またはコンピュータ実行可能な命令、コンピュータ読取可能な命令、もしくはデータ構造の形式を用いる所望のプログラムコードを搬送するまたは格納するために使用することができ、かつ汎用もしくは専用のコンピュータシステムによってアクセスすることができる他のあらゆる媒体などの物理的な記憶媒体を含むことができる。
【００３６】
本明細書および以下の特許請求の範囲では、「ネットワーク」は、コンピュータシステムおよび／またはモジュール（例えば、ハードウェアおよび／またはソフトウェアモジュール）の間の電子データの移送を可能にする、（場合によっては異なる速度の）１つまたは複数のデータリンクとして定義される。情報が、ネットワークまたは別の通信接続（ハードワイヤード、無線、または、ハードワイヤードもしくは無線の組合せ）を介して、コンピュータシステムに転送または提供されるとき、この接続は適切にコンピュータ読取り可能な媒体と見なされる。このように、いかなるこのような接続も適切にコンピュータ読取り可能な媒体と称される。上記の組合せもまた、コンピュータ読取り可能な媒体の範囲内に含まれるべきである。コンピュータ実行可能命令は、例えば、汎用コンピュータシステムまたは専用コンピュータシステムに、ある関数または関数のグループを実行させる、命令およびデータを備える。コンピュータ実行可能命令は、例えば、バイナリ、アセンブリ言語などの中間フォーマット命令、またはソースコードであってもよい。いくつかの実施形態では、例えば専用集積回路またはゲートアレイなどのハードウェアモジュールが、本発明の原理を実施するために最適化される。
【００３７】
本明細書および以下の特許請求の範囲では、「コンピュータシステム」は、共に働いて電子データにおいてオペレーションを実行する、１つまたは複数のソフトウェアモジュール、１つまたは複数のハードウェアモジュール、または、その組合せとして定義される。例えば、コンピュータシステムの定義には、パーソナルコンピュータのハードウェアコンポーネント、ならびに、パーソナルコンピュータのオペレーティングシステムなど、ソフトウェアモジュールが含まれる。これらのモジュールの物理的レイアウトは重要ではない。コンピュータシステムには、ネットワークを介して結合された１つまたは複数のコンピュータが含まれる可能性がある。同様に、コンピュータシステムには、単一の物理的装置（携帯電話、または携帯情報端末「ＰＤＡ」など）が含まれる可能性があり、内部モジュール（メモリおよびプロセッサなど）は共に働いて、電子データにおいてオペレーションを実行する。さらに、コンピュータシステムには専用ハードウェアが含まれる可能性があり、このハードウェアは例えば、専用集積回路を含むルータなどである。
【００３８】
本発明を、多数の種類のコンピュータシステム構成を有するネットワークコンピューティング環境内で実施することができ、これらのコンピュータシステム構成には、パーソナルコンピュータ、ラップトップコンピュータ、ハンドへルド装置、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラマブルコンシューマエレクトロニクス、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、携帯電話、ＰＤＡ、ページャ、ルータ、ゲートウェイ、ブローカ、プロキシ、ファイアウォール、リダイレクタ、ネットワークアドレストランスレータなどが含まれることは、当業者には理解されよう。本発明をまた、分散システム環境内で実施することもでき、この環境ではローカルおよびリモートコンピュータシステムがネットワークを通じてリンクされ（ハードワイヤードデータリンク、無線データリンクによって、または、ハードワイヤードおよび無線データリンクの組合せによって）、共にタスクを実行する。分散システム環境では、プログラムモジュールはローカルおよびリモートのメモリ記憶装置内に位置することができる。
【００３９】
本明細書および以下の特許請求の範囲では、「リソース」は、例えば、データを格納すること、データフォーマットを定義すること、ドキュメントを印刷することなど、指定された関数を満たすために利用することができる、いかなるモジュール、コンポーネント、オブジェクト、コンピュータシステム、装置、ファイル、データベース項目、スキーマ、サービスなどとしても定義される。リソースをサービスコンポーネントによって支援および／またはホストすることができる。例えば、ファイルリソースは、ファイルサーバを、ファイルにアクセスするためのサービスコンポーネントとして有することができる。同様に、会議室は、受付係のメールボックスを、会議をスケジューリングするためのサービスコンポーネントとして有することができる。実施されたリソースを、複数の他のリソースにわたって分散させることができる。
【００４０】
リソースはまた、例えば、名前空間内に含まれた名前空間のノードリソースを含むようにも定義され、名前空間のノードリソースは、例えば名前空間のセキュリティおよび管理機能などの名前空間の機能へのアクセスを容易にするか、または提供し、および／または、例えば別の名前空間のノードリソース、コンピュータシステムまたはコンピュータシステムコンポーネントなど、他のリソースにアクセスするために横断されることが可能である。いくつかの実施形態では、名前空間のノードリソースを分散方法で実施することができる。さらに、名前空間のノードリソースは、名前空間のツリー内で対応するノードを表現することができる。
【００４１】
本明細書および以下の特許請求の範囲では、「リソース記述子」は、リソースを記述するデータ構造（例えば、リソース記述子スキーマに従ってフォーマットされる）として定義される。
【００４２】
本明細書および特許請求の範囲では、「名前空間」は、それを介して解決、発見およびメッセージルーティングを実行することができる部分にリソース（例えば、インターネット上のすべてのリソース）を分割するための、範囲メカニズムとして定義される。名前空間は、新しいスコープ（ｓｃｏｐｅ）を定義することができ、個々のスコープを階層的にすることができるように、拡張可能である。
【００４３】
名前空間を森と見なすことができ、各名前空間（ツリー）は、スキームによりユニフォームリソース識別子（「ＵＲＩ」）として表現され、その直後の部分はルートとしての機能を果たす。ＵＲＩスキームを階層的またはフラットにすることができる。「ネーム」および「ｈｔｔｐ」などの階層スキームを（「ｕｕｉｄ」などのフラットスキームとは対照的に）、スキーム名の後の「：／」文字シーケンスの存在によって識別することができる。階層スキームの第１の部分は、ＵＲＩコンポーネントの残りを担う命名機関を識別することができる。このようなＵＲＩは、スキーム名の後の「：／／」文字シーケンスの存在によって識別される。名前空間を階層的にすることができ、ルーティング可能であり、これは、名前空間が、送信側から受信側への通信パスを識別するために使用することができる識別子としての機能を果たすという意味である。
【００４４】
いくつかの実施形態では、名前空間を以下のように定義することができる。
名前空間：＝フラット｜階層
フラット：＝スキーム「：」不透明＿部分
階層：＝スキーム「：／」（「／」オーソリティ「／」）？セグメント（「／」セグメント）＊
スキーム：＝ＲＦＣ−２３９６によってＵＲＩ汎用構文において定義される
不透明＿部分：＝ＲＦＣ−２３９６によってＵＲＩ汎用構文において定義される
オーソリティ：＝ＲＦＣ−２３９６によってＵＲＩ汎用構文において定義される
セグメント：＝ＲＦＣ−２３９６によってＵＲＩ汎用構文において定義される
【００４５】
リソースを、ツリー中のいかなる分岐でも使用可能にすることができ、所与のリソースを複数の名前空間内で公開することができる。また、所与の名前空間は、単一のリソースまたは名前空間の分岐（リソースのグループ）を識別することができる。このようなグループ化を、名前空間のセマンティクスに応じて論理的または物理的にすることができる。グループは、深さ優先探索を、識別された名前空間の分岐において実行することによって、得られる。リソースのグループが識別された後、ある基準を満たすリソースを選択する、所与のメッセージをグループ内のもののみに送信する（および潜在的にルーティングする）など、多数のオペレーションをリソースのグループにおいて実行することができる。
【００４６】
単一のリソースをトリビアルコレクションと見なすことができる。したがって、あらゆるリソースにネーム（スペース）を割り当てることができる。名前空間はルーティング可能であるので、メッセージを、名前空間のフェデレーションインフラストラクチャを介して、ネームを有するいかなるリソースにもルーティングすることができる。このようなルーティングは信頼境界を横断し、ファイアウォールを横断することができる。
【００４７】
一般に、リソースに、そのリソースにアクセスするために使用することができる１つまたは複数のＵＲＩを割り当てることができる。リソースに割り当てられた、１つのＵＲＩであるリソースＩＤを、最低でも、所与の名前空間のフェデレーションインフラストラクチャによって実施されたすべての名前空間にわたって一意にして、このリソースを単独で参照できるようにすることができる。他の、潜在的に一意でないＵＲＩもまた、リソースに割り当てることができる。これらの他の、潜在的に一意でないＵＲＩは、所与の名前空間のフェデレーションインフラストラクチャによって実施された名前空間内で追加のロケーションを介して、リソースへのアクセスを提供する。リソースに、そのリソースにアクセスするために横断することができる各名前空間について、少なくとも１つの潜在的に一意でないＵＲＩを割り当てることができる。
【００４８】
図５は、プロバイダからの名前空間のフェデレーションインフラストラクチャおよび名前空間のコレクションビューの実施形態を例示する。名前空間のフェデレーションインフラストラクチャ５００は、プロバイダを名前空間のツリー内のいかなる分岐で登録することもできることを示す。さらに、プロバイダを、潜在的には異なるツリー内の、複数の名前空間の分岐で登録することができる。例えば、プロバイダ５０１は、名前空間の分岐ｌｏｃａｔｉｏｎ：／ＣｏｒｐｏｒａｔｅＢｕｉｌｄｉｎｇｓ／ｂｌｄｇ３４、ｌｏｃａｔｉｏｎ：／ＣｏｒｐｏｒａｔｅＢｕｉｌｄｉｎｇｓ／ｂｌｄｇ５０／ｆｌｏｏｒ２、および、ｌｏｃａｔｉｏｎ：／ＣｏｒｐｏｒａｔｅＢｕｉｌｄｉｎｇｓ／ｂｌｄｇ５０／ｆｌｏｏｒ１／ｒｏｏｍ１３０４について登録される。プロバイダ５０２は、名前空間の分岐ｌｏｃａｔｉｏｎ：／ＣｏｒｐｏｒａｔｅＢｕｉｌｄｉｎｇｓ／ｂｌｄｇ５０およびｌｏｃａｔｉｏｎ：／ＣｏｒｐｏｒａｔｅＢｕｉｌｄｉｎｇｓ／ｂｌｄｇ２６について登録される。プロバイダ５０３は、ｌｏｃａｔｉｏｎ：／ＣｏｒｐｏｒａｔｅＢｕｉｌｄｉｎｇｓ／ｂｌｄｇ５０／ｆｌｏｏｒ１について登録される。
【００４９】
図５に示すように、アプリケーションは名前空間を、階層的にネストすることができるリソースの論理コレクションと見なすことができる。すなわち、中間の名前空間のノード（例えば、ｌｏｃａｔｉｏｎ：／ＣｏｒｐｏｒａｔｅＢｕｉｌｄｉｎｇｓ／ｂｌｄｇ５０／ｆｌｏｏｒ１およびｌｏｃａｔｉｏｎ：／ＣｏｒｐｏｒａｔｅＢｕｉｌｄｉｎｇｓ／ｂｌｄｇ５０）はリソース、ネームノードリソースとして見なされる。アプリケーションは効率的にこのような論理コレクションにおいて、コヒーレントおよびスケーラブルな方法で動作することができ、これらの動作には、コレクションの内部からの発行、探索、位置決め、追跡、ターゲッティング、およびソーシングイベントが含まれる。論理コレクションの内部のすべてのリソースが必ずしも単一のコンピュータシステムまたは装置上に位置するとは限らないことに留意されたい。リソースを、多数のコンピュータシステムおよび装置にわたる空間および時間において分散させることができる。名前空間のフェデレーションインフラストラクチャは、いかなる所与のコレクションに参加するコンピュータシステムおよび装置への検索要求の効率的なルーティングをも処理し、それにより、一様で一貫性のあるビューをアプリケーションに提供する。
【００５０】
図６は、リソースが複数の名前空間内で使用可能にされた名前空間のフェデレーションインフラストラクチャの実施形態を例示する。ＵＲＩ  Ｏｒｇａｎｉｚａｔｉｏｎ：／Ｐｒｏｄｕｃｔは、名前空間のツリー６０１のルートを識別する。同様に、ＵＲＩ  Ｌｏｃａｔｉｏｎ：／Ｂｌｄｇ４２は、名前空間のツリー６０２のルートを識別する。図示のように、プリンタ６０３は、名前空間のツリー６０１および名前空間のツリー６０２の両方で公開される。
【００５１】
本明細書および以下の特許請求の範囲内では、名前空間のノードリソースを、単に名前空間のツリー内のノードと見なすことができる。いくつかの名前空間のノードリソースをルートノード（例えば、Ｌｏｃａｔｉｏｎ：／Ｂｌｄｇ４２）と見なすことができ、他の名前空間のノードリソースを中間ノード（例えば、Ｏｒｇａｎｉｚａｔｉｏｎ：／Ｐｒｏｄｕｃｔ／Ｄｅｖｉｃｅｓ  Ｔｅａｍ）と見なすことができ、他の名前空間のノードリソースをリーフノード（例えば、Ｌｏｃａｔｉｏｎ：／Ｂｌｄｇ  ４２／Ｆｌｏｏｒ  １／Ｒｏｏｍ  １２２６／Ｐｒｉｎｔｅｒ  ６０３）と見なすことができる。しかし、ある名前空間のツリー内の名前空間のノードリソースは、別の名前空間のツリー内の名前空間のノードリソース（または他のリソース）を参照することができることを理解されたい。このように、名前空間のノードリソースをある名前空間のツリー内のルート、中間またはリーフと見なすことは、他の名前空間のツリーからのその名前空間のノードリソースのクエリを制限しない。
【００５２】
名前空間にはまた、２つ以上の名前空間のノードリソースをリンクさせる（または関係付ける）名前空間のセグメントも含まれる。名前空間のセグメントを利用して、同じ名前空間内の名前空間のノードリソースをリンクさせることができる。例えば、名前空間のセグメント６１１（「Ｄｅｖｉｃｅｓ」）は、Ｏｒｇａｎｉｚａｔｉｏｎ：／ＰｒｏｄｕｃｔをＤｅｖｉｃｅｓ  Ｔｅａｍにリンクさせる。さらに、名前空間のセグメントは、異なる名前空間のツリー内の（他の方法で接続された）名前空間のノードリソースをリンクさせ、それによりシンボリックリンクの機能性を提供することができる。名前空間のセグメントを横断することには、すべてのターゲットの名前空間のノードリソースへのナビゲーションが含まれる。例えば、名前空間のセグメント６４１（「Ｐｒｏｊｅｃｔ」）はＰＭ  ＴｅａｍをファイルリソースＳｐｅｃＴｅｍｐｌａｔｅ．ｄｏｃおよびＭｉｌｅｓｔｏｎｅ．ｐｒｊに接続する。
【００５３】
したがって、名前空間のセグメント６１１（「Ｄｅｖｉｃｅｓ」）、名前空間のセグメント６２１（「Ｄｅｖ」）、および名前空間のセグメント６３１（「Ｐｒｉｎｔｅｒ」）が名前空間のツリー６０１内で横断されて、プリンタ６０３を識別することが可能である。同様に、名前空間のセグメント６１２（「Ｆｌｏｏｒ  １」）、名前空間のセグメント６２２（「Ｒｏｏｍ  １２２６」）、および名前空間のセグメント６３２（「Ｐｒｉｎｔｅｒ」）が名前空間のツリー６０２内で横断されて、プリンタ６０３を識別することが可能である。名前空間のツリー６０１のＵＲＩスキームおよび名前空間のツリー６０２のＵＲＩスキームは、異なる可能性があることを理解されたい。
【００５４】
同じリソースが複数の名前空間に参加することができるので、また、シンボリックリンク機能性の存在により、すべての名前空間およびそれらに参加するリソースのグローバルなビューは、有向グラフを形成し、名前空間のセグメントは、ラベル付きグラフのエッジとしての機能を果たし、名前空間のノードリソースおよび他のリソースは、グラフノードとしての機能を果たす。名前空間のルートは、効果的に、このグローバルなグラフにおける名前空間のノードリソースおよび他のリソースを、開始および到達可能リソースの集合に分割し、開始の名前空間のノードリソースは、名前空間の範囲のための基礎を提供する。したがって、クエリを実施するためのキャッシュされた情報が、減らされ、および各名前空間にわたって分散される。
【００５５】
また、いかなる所与の名前空間もグラフを形成することができ、これは同じリソースを複数の名前空間の分岐で使用可能にすることができ、いくつかのセグメントが他の方法で接続された名前空間のノードリソースを接続することができるからである。
【００５６】
図１は、名前空間のフェデレーションインフラストラクチャの実施形態を例示する。名前空間のフェデレーションインフラストラクチャ１００には、異なる型のフェデレーティングパートナーシップを形成することができる、名前空間の管理１０１、１０２、１０３、１１１および１１２が含まれる。例えば、名前空間の管理１０１、１０２、１０３は、ルートの名前空間の管理なしに、互いの間でピア（ｐｅｅｒ）として連合される（ｆｅｄｅｒａｔｅ）。他方では、名前空間の管理１１１および１１２は、名前空間の管理１０１および１０２と連合され、それぞれ名前空間の管理１０１および１０２は、ルートの名前空間の管理としての機能を果たす。異なる型の装置は名前空間のフェデレーションインフラストラクチャに参加することができ、これらの装置には、ホスト（例えば、リソースをホストするＰＣ）、メッセージルータ、メッセージゲートウェイ（例えば、ファイアウォール、ネットワークアドレス変換（「ＮＡＴ」ボックス）、およびリダイレクタ）、およびメッセージブローカ（例えば、発行／加入の（ｐｕｂ−ｓｕｂ）仲介）が含まれる。名前空間のフェデレーションインフラストラクチャ１００は、バスプロトコル（例えば、活性、コントロール、イベンティングおよびストリーミング）を容易にする。さらに、名前空間のフェデレーションインフラストラクチャ１００は、例えばＷＳ−ＤｉｓｃｏｖｅｒｙおよびＷＳ−Ｅｖｅｎｔｉｎｇなど、関連したＷＳプロトコルを使用して、サードパーティソフトウェアおよびハードウェアスタックと相互運用することができる。
【００５７】
一般に、名前空間の管理１０１、１０２、１０３、１１１および１１２は、名前空間のフェデレーショプロトコルを利用して、パートナーシップを形成することができ、名前空間の情報を交換することができる。パートナーシップの形成および名前空間の情報の交換は、名前空間のリソースへのより効率的なおよび確かなアクセスを容易にする。ピアの名前空間の管理（例えば、名前空間の管理１０１、１０２および１０３）は、名前空間の情報を他のピアの名前空間の管理と交換することができる。しかし、他の名前空間の管理（例えば、名前空間の管理１１１および１１２）は、名前空間の情報を対応するルート名前空間の管理（例えば、名前空間の管理１０１および１０２）と交換することができる。名前空間の管理１０１、１０２、１０３、１１１および１１２の各々は、名前空間の情報のデータベースを維持することができ、この情報は例えば、何の名前空間の管理またはプロバイダがどの名前空間の分岐に関心を有するかなどである。
【００５８】
名前空間のフェデレーションインフラストラクチャ１００は、プロバイダ１２１、１２２、１２３、１２４、１２６および１２７を含む。各プロバイダは、名前空間のフェデレーションインフラストラクチャ内の１つまたは複数の名前空間の分岐に関心を有する可能性がある。プロバイダは名前空間の情報を、対応する名前空間の管理と交換する。例えば、プロバイダ１２２は名前空間の情報を、名前空間の管理１１１と交換する。対応する名前空間の管理は次いで、名前空間の情報を他の名前空間の管理に転送することを容易にする。例えば、名前空間の管理１１１は名前空間の情報を名前空間の管理１０１に転送することができ、名前空間の管理１０１は名前空間の情報の関連部分を名前空間の管理１０２および１０３に転送することができる。
【００５９】
名前空間のフェデレーションインフラストラクチャ（例えば、名前空間のフェデレーションインフラストラクチャ１００）は、名前空間を介して検索要求を適切なプロバイダに分散させることを容易にする。例えば、プロバイダ５０１、５０２および５０３がプロバイダ１２１、１２２、１２３、１２４、１２６または１２７のうちの各々のひとつであることがある。
【００６０】
名前空間の管理を、様々な異なるメカニズムを使用して連合させることができる。第１のフェデレーティングメカニズムは、ピアの名前空間の管理が名前空間の情報をすべての他のピアの名前空間の管理に転送することを含む。名前空間の管理が名前空間のフェデレーションインフラストラクチャに結合するようになるとき、名前空間の管理は、例えばＷＳ−Ｄｉｓｃｏｖｅｒｙなどのブロードキャスト／マルチキャスト発見プロトコルを利用して、その存在をアナウンスし（ブロードキャスト／マルチキャストＨｅｌｌｏ）、ブロードキャスト／マルチキャストＰｒｏｂｅを発行して、他の名前空間の管理を検出する。次いで、名前空間の管理は、すでにネットワーク上に存在する他の名前空間の管理との単純な転送パートナーシップを確立し、新たに結合する名前空間の管理との新しいパートナーシップを受け入れる。その後、名前空間の管理はあらゆる名前空間の要求をそのパートナーに転送することができる。
【００６１】
第２のフェデレーティングメカニズムは、ピアの名前空間の管理がすべての名前空間の情報を他のピアの名前空間の管理に効率的に転送することを含む。新しい名前空間の管理が名前空間のフェデレーションインフラストラクチャに結合するようになるとき、新しい名前空間の管理は、例えばＷＳ−Ｄｉｓｃｏｖｅｒｙなどのブロードキャスト／マルチキャスト発見プロトコルを利用して、その存在をアナウンスし（ブロードキャスト／マルチキャストＨｅｌｌｏ）、ブロードキャスト／マルチキャストＰｒｏｂｅを発行して、名前空間のフェデレーションインフラストラクチャの一部である他の名前空間の管理を検出する。別の名前空間の管理を検出した上で、新しい名前空間の管理は、他の名前空間の管理とのパートナーシップを確立する。確立されたパートナーシップから、新しい名前空間の管理は、すでに名前空間のフェデレーションインフラストラクチャに参加している他の名前空間の管理の存在について学習する。新しい名前空間の管理は次いで、これらの新たに学習された名前空間の管理とのパートナーシップを確立し、いかなる新着のパートナーシップ要求をも受け入れる。
【００６２】
名前空間の管理の到着／出発および名前空間の登録の両方は、名前空間のフェデレーションインフラストラクチャを通じてフラッディングされ、あらゆる名前空間の管理が他の名前空間の管理および名前空間の登録のグローバルな知識を有する結果となる。このようなグローバルな知識により、いかなる名前空間の管理も、検索要求を、要求内で指定された名前空間の分岐の下で登録されたプロバイダ／サブスクライバを有するパートナーのみに、転送することができる。
【００６３】
第３のフェデレーティングメカニズムは、ピアの名前空間の管理が名前空間の情報を他のピアの名前空間の管理に間接的に転送することを含む。第３のメカニズムでは、名前空間の管理に、例えば１２８ビットまたは１６０ビットＩＤなど、一意の識別子（ＩＤ）が割り当てられる。所与の名前空間のツリーを担う名前空間の管理は、例えば、所与の名前空間のツリーをハッシングするなど、少なくとも一方向の写像関数によって得られたものに最も近いＩＤを有するものになるように決定される。名前空間のためのこのようなハッシングベースの写像スキームを、以下でさらに詳細に説明する。
【００６４】
この第３のメカニズムでは、名前空間の管理の到着および出発は、ファブリックを介してフラッディングされる。他方では、名前空間の登録は、要求内で指定された名前空間の分岐を担うように決定された名前空間の管理に転送される。スケーラビリティ、負荷分散およびフォールトトレランスのために、名前空間の登録を受信する名前空間の管理は、これらの登録を、その近傍集合内であるこれらの名前空間の管理の間で、信頼可能にフラッディングすることができる。指定された名前空間の管理のための近傍集合は、有限モジュロＩＤアドレススペース内の指定された名前空間の管理のＩＤの両側において予め定義された範囲内のＩＤを有する、名前空間の管理の集合であるように決定される。
【００６５】
メカニズム２と同様に、新たに結合する名前空間の管理は、例えばＷＳ−Ｄｉｓｃｏｖｅｒｙなどのブロードキャスト／マルチキャスト発見プロトコルを利用して、その存在をアナウンスし（ブロードキャスト／マルチキャストＨｅｌｌｏ）、ブロードキャスト／マルチキャストＰｒｏｂｅを発行して、すでに名前空間のフェデレーションインフラストラクチャの一部である名前空間の管理を検出する。新しい名前空間の管理は、発見された名前空間の管理とのパートナーシップを確立し、そのパートナーシップを使用して、名前空間のフェデレーションインフラストラクチャに参加している他の名前空間の管理の存在について学習する。新しい名前空間の管理は次いで、新たに発見された名前空間の管理とのさらなるパートナーシップを確立し、いかなる新着のパートナーシップ要求をも受け入れる。新しい名前空間の管理は、それが担う名前空間の分岐の下でそのパートナーから入ってくる名前空間の登録を受け入れ、これらの名前空間の登録を、その近傍集合を介してフラッディングすることができる。
【００６６】
入ってくる検索要求に応答して、新しい名前空間の管理はその登録データベースを調べ、これらの要求を、要求内で指定された名前空間の分岐の下で登録されたプロバイダ／サブスクライバを有する名前空間の管理に転送する。したがって、この第３のメカニズムを使用するとき、名前空間のフェデレーションインフラストラクチャ内のあらゆる名前空間の管理は、すべての他の名前空間の管理のグローバルな知識を有するが、登録情報は名前空間の管理の間で効率的に分割される。名前空間の管理はこのように検索要求を、要求内で指定された名前空間の分岐の下で登録されたプロバイダ／サブスクライバを有するパートナーのみに、間接的に転送する。この間接化は、要求内で指定された名前空間の分岐の下の名前空間の登録のグローバルな知識を有する名前空間の管理を介して、実施される。
【００６７】
第４のフェデレーティングメカニズムは、ピアの名前空間の管理が名前空間の情報を他のピアの名前空間の管理に間接的にルーティングすることを含む。この第４のメカニズムは、名前空間の管理の到着／出発および名前空間の登録／検索要求の両方が、フラッディングされるのではなくすべてルーティングされるという意味で、第３のメカニズムとは異なる。ルーティングプロトコルは、名前空間の検索要求と名前空間の登録要求との間の集合を保証するように設計される。
【００６８】
図２は、要求を間接的にパートナーにルーティングすることを容易にするコンピュータアーキテクチャの実施形態を例示する。コンピュータアーキテクチャ２００は、名前空間のフェデレーションインフラストラクチャに参加する複数のローカルに発見するスコープにわたって潜在的に広がった、異なる型のコンピュータシステムおよび装置を示す。
【００６９】
ワークステーション２３３は、ｌｏｃａｔｉｏｎ：／ａｒｃｈｉｔｅｃｔｕｒｅ２００／ｓｃｏｐｅ２２１／Ｄｅｖｉｃｅｓの名前空間の分岐の下で対応する名前空間の管理に登録する、ＰｎＰプロバイダインスタンスを含むことができる。そのパートナーに、このＰｎＰプロバイダインスタンスの存在を通知するために、ワークステーション２３３は名前空間の登録要求２０１を、名前空間のフェデレーションインフラストラクチャを介してルーティングする。名前空間の登録要求２０１は最初にラップトップ２３１に転送され、ラップトップ２３１は名前空間の登録要求２０１をメッセージブローカ２３７に転送し、メッセージブローカ２３７は名前空間の登録要求２０１をメッセージゲートウェイ２４１に転送する。メッセージゲートウェイ２４１は登録情報登録要求２０１をそのデータベース内に保存し、成功メッセージ２０４をワークステーション２３３に戻す。
【００７０】
続いて、別のプロバイダインスタンス、今回は実行中のサービスのものが、ワークステーション２３３内で活動化し、それ自体を、ｌｏｃａｔｉｏｎ：／ａｒｃｈｉｔｅｃｔｕｒｅ２００／ｓｃｏｐｅ２２１／Ｓｅｒｖｉｃｅｓの名前空間の分岐の下で対応する名前空間の管理に登録する。今回は、名前空間の管理は、メッセージゲートウェイ２４１がｌｏｃａｔｉｏｎ：／ａｒｃｈｉｔｅｃｔｕｒｅ２００の下の登録を担うことを認識し、登録要求２０５をメッセージゲートウェイ２４１に直接転送する。メッセージゲートウェイ２４１は登録情報登録要求２０５をそのデータベース内に保存し、成功メッセージ２０６をワークステーション２３３に戻す。
【００７１】
続いて、プリンタ２３６（例えば、ＵＰｎＰプリンタ）が電源を入れられ、アナウンスメント２０７を送信する。サーバ２３４はアナウンスメント２０７を検出し、名前空間のｌｏｃａｔｉｏｎ：／ａｒｃｈｉｔｅｃｔｕｒｅ２００／ｓｃｏｐｅ２２４／Ｄｅｖｉｃｅｓをプリンタ２３６に割り当て、登録要求２０８をメッセージブローカ２３７にルーティングする。メッセージブローカ２３７は登録要求２０８をメッセージゲートウェイ２４１に転送する。メッセージゲートウェイ２４１は登録情報登録要求２０８をそのデータベース内に保存し、成功メッセージ２１０をサーバ２３４に戻す。
【００７２】
続いて、パーソナルコンピュータ２４２は発見要求２１１を発行して、名前空間の分岐ｌｏｃａｔｉｏｎ：／ａｒｃｈｉｔｅｃｔｕｒｅ２００の下のすべての装置を発見する。パーソナルコンピュータ２４２は、どこに発見要求２１１を転送するべきであるかを知らないので、発見要求２１１を、ワークステーション２４３を通じてルーティングする。ルーティングプロトコルは本質的に、所与の名前空間のツリーのための登録および検索要求の間の集合を保証するので、ワークステーション２４３は発見要求２１１をメッセージゲートウェイ２４１に転送する。メッセージゲートウェイ２４１は発見要求２１１を、ワークステーション２３３およびサーバ２３４に転送する。ワークステーション２３３およびサーバ２３４は、応答メッセージ２１４および２１６をそれぞれパーソナルコンピュータ２４２に送信する。
【００７３】
この第４のメカニズムは、要求内で指定された名前空間の分岐（例えば、ｌｏｃａｔｉｏｎ：／ａｒｃｈｉｔｅｃｔｕｒｅ２００）の下の名前空間の登録のグローバルな知識を有する名前空間の管理（メッセージゲートウェイ２４１）に、要求をルーティングすることによって機能する。この第４のメカニズムは本質的に、ルーティングをＯ（ｌｏｇ  Ｎ）個のホップで実施することができることを保証し、ただし、Ｎは、名前空間のフェデレーションインフラストラクチャに参加する名前空間の管理の数である。この第４のメカニズムは名前空間の登録情報を効率的に分割し、すべての参加中の名前空間の管理のグローバルな知識を要求しないので、大変大きいネットワーク、インターネットにもスケールする。
【００７４】
図３は、名前空間のフェデレーションインフラストラクチャ内の複数の名前空間の管理の間の２項関係の実施形態を例示する。図３に示す２項関係は、名前空間の管理の間でより効率的なルーティングを実施するために利用することができる、１つの関係である。名前空間のフェデレーションインフラストラクチャに参加する名前空間の管理は、再帰的、反対称的、推移的、全体的である２項関係を使用してソートされたリストとして編成され、および名前空間の管理のアイデンティティに属する領域で定義される。ソートされたリストの両端が結合され、それによりリング３０６が形成される。これにより、ソートされたリスト内の各名前空間の管理がそれ自体を、ソートされたリストの中心にあると見なすことが可能となる。ソートされたリストを二重連結にして、いかなる名前空間の管理もこのソートされたリストを両方向で横断することができるようにすることができる。さらに、名前空間の管理のアイデンティティに属する値領域（例えば、２、５０または１５１）から名前空間の管理自体への１対１写像がある。この写像は、写像が緊密（ｔｉｇｈｔ）ではない場合の値領域における名前空間の管理の希薄性（ｓｐａｒｓｅｎｅｓｓ）を明らかにする。
【００７５】
リング３０６上の各名前空間の管理はルーティングテーブルを含むことができ、ルーティングテーブルは、名前空間の情報（例えば、登録および検索要求）を他の名前空間の管理にルーティングすることを容易にする。ＩＤ６４を有する名前空間の管理のための実施形態のルーティングテーブルを、図３に示す。このルーティングテーブルは、ＩＤ６４の後続がＩＤ７６であることを指示する。後続は、リング３０６上でＩＤ６４から時計回り方向にすぐ隣接した名前空間の管理内であることが可能である。後続は、例えば、新しい名前空間の管理（例えば、７１のＩＤを有するもの）が結合するか、または既存の名前空間の管理（例えば、ＩＤ７６）が名前空間のフェデレーションインフラストラクチャを離れるとき、変更になる可能性がある。
【００７６】
このルーティングテーブルは、ＩＤ６４の先行がＩＤ５０であることを指示する。先行は、リング３０６上でＩＤ６４から反時計回り方向にすぐ隣接した名前空間の管理であることが可能である。先行は、例えば、新しい名前空間の管理（例えば、５９のＩＤを有するもの）が結合するか、または既存の名前空間の管理（例えば、ＩＤ５０）が名前空間のフェデレーションインフラストラクチャを離れるとき、変更になる可能性がある。
【００７７】
このルーティングテーブルは、ＩＤ６４の近傍のものがＩＤ８３、７６、５０および４６であることを指示する。近傍のものを、２つの係数であるサイズおよび範囲のうち大きい方を使用して識別することができる。名前空間の管理は、対応するＩＤが（例えば、リング３０６の時計周りまたは反時計回り方向で）対象ＩＤの最小範囲内であるか、または、ある構成された最小近傍未満のサイズが近傍内にすでに存在するとき、近傍のメンバとして識別される。例えば、リング３０６上で、指定された範囲は、２０の大きさを有することができ、このサイズは４より大きいことが可能である。したがって、時計回り（＋１０）および反時計回り（−１０）方向でＩＤ６４の２０ロケーション以内のＩＤは、ＩＤ６４の近傍のものである。近傍のものは例えば、名前空間の管理が名前空間のフェデレーションインフラストラクチャに結合するか、もしくはこれを離れるとき、または、指定された範囲が変更されるとき、変更になる可能性がある。例えば、４に等しいサイズでは、ＩＤ４８を有する新しい名前空間の管理は、ＩＤ４６を有する名前空間の管理に取って代わることができる。
【００７８】
このルーティングテーブルは、ＩＤ６４が直接ＩＤ２００、２、３０、４６、５０、６４、７６、８３、９８および１３５にルーティングすることができることを指示する。したがって、ＩＤ６４を有する名前空間の管理が要求を受信する場合、名前空間の管理は、要求における名前空間の管理のＩＤにより近いＩＤをルーティングテーブルに有する名前空間の管理に、要求をルーティングすることができる。
【００７９】
図４は、名前空間のフェデレーションインフラストラクチャを他のプロトコルと統合することを容易にするアーキテクチャの実施形態を例示する。名前空間のフェデレーションインフラストラクチャは、プロバイダベースの拡張モデルをサポートすることができる。したがって、既存のプロトコルのリソースモデルが名前空間のリソースモデルとの互換性を有するとすれば、名前空間のフェデレーションインフラストラクチャを既存のプロトコルと統合することができる。アーキテクチャ４００は、名前空間の管理４０１、４０４、４０６（例えば、名前空間のフェデレーションインフラストラクチャのもの）が、アクティブディレクトリ４０２およびＵＤＤＩサーバ４０３と相互運用することを示す。この実線の矢印は、名前空間の管理が名前空間のフェデレーションプロトコル（ｆｅｄｅｒａｔｉｏｎ  ｐｒｏｔｏｃｏｌ）を使用して通信することを示し、破線のエリアは、名前空間の管理がアクティブディレクトリ４０２と、ＬＤＡＰプロトコルを使用して通信することを示し、点線の矢印は、名前空間の管理がＵＤＤＩサーバ４０３と、ＵＤＤＩプロトコルを使用して通信することを示す。
【００８０】
発行／加入のトピックは、名前空間のもう１つの使用例である。発行／加入のトピックを、そのトピックへのサブスクライバのコレクションと見なすことができ、したがって、トピック名は名前空間として扱われる。発行／加入のトピックを名前空間として扱う利点は、名前空間のフェデレーションインフラストラクチャを使用して、通知メッセージをパブリッシャからサブスクライバへルーティングすることができることである。トピックへのサブスクリプションを、名前空間の登録要求と見なすことができ、トピックへの発行を、名前空間の検索要求と見なすことができる。
【００８１】
いくつかの実施形態では、名前空間のフェデレーションインフラストラクチャは、バスのような抽象化をプログラマに、分散アプリケーションを開発するために提供することができる。例えば、名前空間のフェデレーションインフラストラクチャは活性、すなわち、アプリケーションが関心を有するリソースがネットワークから落ちているときを知るためにアプリケーションが使用するメカニズムを、抽象化することができる。所与のリソースを追跡するために、そのリソースのアイデンティティのＵＲＩ（すなわち、その名前）にちなんで名付けられた発行／加入のトピックに送信された通知に、アプリケーションを加入させる。所与のリソースがネットワークから落ちていることに気付くいかなるコンポーネント（例えば、アプリケーション）も、活性通知メッセージを、そのリソースのアイデンティティのＵＲＩにちなんで名付けられたトピックに発行し、それにより、リソースの追跡に関心を有する他のアプリケーションに通知することができる。発行／加入のサブスクリプションは、名前空間のインフラストラクチャにわたって連合されるので、また、多数のアイデンティティのスキームは階層的である（リソースの包含の性質を活性の観点から取り込むため）ので、システムは、単純な検出システムのｎ２ピンギング問題を回避し、大変よくスケールする。さらに、コンポーネント（例えば、アプリケーション）が所与のリソースにより関心を有するほど、そのリソースがネットワークから落ちていることに何物かが気付くことがより速くなり、有利である。
【００８２】
開発者は名前空間のフェデレーションインフラストラクチャを、その中にファイルなどのリソースおよびイベントソースが登録されるクラウドとして見なすことができる。アプリケーションは発見要求をクラウドに対して発行して、登録されたリソースを発見することができる。アプリケーションはまたクラウドに、それらに代わって現在および将来の、クラウドに登録するイベントソースに加入させることを、要求することもできる。さらに、アプリケーションは、クラウド内で維持された発行／加入のトピックに加入させることができる。いかなるものも通知メッセージを発行することができ、クラウドはこのメッセージを、そのメッセージが発行されたイベントトピックのサブスクライバに転送することを処理する。
【００８３】
様々な型のリソースを名前空間内で発行することができ、これらのリソースには、サービス、装置、ファイル、ホスト、コンポーネント、データベース内の項目、メタデータについてのメタデータ（スキーマ）などが含まれる。リソースは、それをホスト／支援するサービスコンポーネントを有することができる。例えば、ファイルリソースはファイルサーバを、ファイルにアクセスするためのサービスコンポーネントとして有することができる。会議室は、受付係のメールボックスを、会議をスケジューリングするためのサービスコンポーネントとして有することができる。
【００８４】
各リソースは、その記述的アスペクトを取り込むリソース記述子と結び付けられることが可能である。したがって、リソース記述子を問い合わせて、関心のあるリソースを識別することができる。リソースが識別されるとき、リソースに、リソースの対応するサービスアスペクトを通じてアクセスすることができる。リソースをホスト／支援するサービスに送信することができるメッセージの型は、リソース型によって変わる。例えば、ファイルサーバは、ファイルリソースを開くことをサポートし、受付係は、会議室のためのスケジューリング要求を受け入れる。
【００８５】
リソース記述子を実施するためのデータモデルは、バージョン可能、拡張可能および相互運用可能にすることができる。このようなリソースデータモデルを、分散ファイルシステム（「ＤＦＳ」）、ＡＤおよびＵＤＤＩなど、現在のフレームワークの多数にわたって共有することができる。このような単一の共有データモデルは、ＡＤオブジェクトおよびＤＦＳファイル（または、他のリソース管理システムからのリソース）がリソースとして見なされ、名前空間の手法を使用して連合されること、および、それらをホストするサービスにメッセージを送信することによってそれらがアクセスされることを、容易にすることができる。
【００８６】
したがって、リソースを、以下のプロパティを有するように定義することができる。
リソースＩＤ：オプションで参照プロパティの集合により増補することができ、空間および時間において安定することができるＵＲＩ。リソース参照スキーマのインスタンスとして表現することができる。リソースＩＤは、リソースプロパティと共に、集合的にリソースのアイデンティティを表現することができる。
記述子：リソースについての半静的なメタデータを含む、リソース特有のスキーマインスタンス。このメタデータは、リソース選択のために有用である。リソース記述子スキーマを分類化することができる。
Ｃｏｎｆｉｇ番号：リソース記述データの特定のバージョンを識別する、単調増加数。この数は、リソース記述が修正されるときは常に増分される。
インスタンスＩＤ：アクティブリソースの特定のインスタンスを識別する、単調増加数。例えば、これは、サービス／装置リソースのためのブート時間またはファイルリソースのためのファイル修正時間と同じにすることができる。
【００８７】
さらに記述子に関して、装置は、１つまたは複数のスキーマに従ってメタデータを有することができる。例えば、プリンタは、プリンタの異なるアスペクトを記述する、異なるスキーマに従ってメタデータを有することができる。リソース記述子スキーマを、ＵＰｎＰフォーラムワーキンググループ（例えば、プリンタスキーマを、ＵＰｎＰプリンタワーキンググループによって標準化することができる）およびＷ３Ｃなどの組織によって、標準化することができる。図１３は、リソースを記述するため分類法の実施形態を示す。分類法１３００内では、異なるスキーマは全体的に以下のように表現される。
【００８８】
サービス参照スキーマ：リソース参照スキーマを拡張し、リソースによってサポートされたメッセージを識別するビヘイビア型のリスト、そのアサーションのためのポリシーコンテナ（サポートされたトランスポートなど）、および拡張集合を指定する。
リソース記述子スキーマ：リソース参照スキーマを拡張し、記述子の構成番号（説明については以下を参照）、リソースのフレンドリ名、リソースを支援するサービスのサービス参照、および拡張集合を指定する。
名前空間のノード記述子スキーマ：リソース記述子スキーマを拡張し、それから到達可能なリソースを、エッジ記述子スキーマのインスタンスとして指定する。
エッジ記述子スキーマ：ローカルの範囲のエッジ名、エッジ型およびターゲットリソースを指定する。
装置記述子スキーマ：リソース記述子スキーマを拡張し、シリアル番号およびメーカー名を指定する。
プリンタ記述子スキーマ：装置記述子スキーマを拡張し、解像度、カラー印刷能力、毎分のページ数、およびサポートされた用紙サイズなど、プリンタ特有のプロパティを指定する。
【００８９】
上記の記述スキーマのいずれにおいて定義された情報のいずれも、名前空間のフェデレーションインフラストラクチャ内のリソースを識別するためのクエリに含めることができる。例えば、記述子データを探索し、フィルタ（またはクエリ）式を使用してナビゲートすることができる。例えば、記述子スキーマの型またはフィールド値によってフィルタすることができ、その参照フィールドから到達可能なインスタンスへナビゲートすることができ、サブフィルタをそれらに適用することなどができる。いくつかの実施形態では、ＸＰａｔｈベースのフィルタ式が使用される。図６に戻って参照すると、ＸＰａｔｈ構文を使用して、リソース記述スキーマによって指定された記述データ上で動作するフィルタ式を使用して、カラーで印刷することができるＬｏｃａｔｉｏｎ：／Ｂｌｄｇ４２／Ｆｌｏｏｒ１内のプリンタを探し出すことができる。
【００９０】
名前空間は、選択および横断に対して、名前空間のノードリソース上で定義されたフィールド／属性について、ＵＲＩセグメントパラメータの形式で、フィルタ式を指定することができる。例えば、名前空間のLocation:/Bldg42/Floor1/Room1226;employee="employee1"/printerは、「Ｒｏｏｍ  １２２６」の記述子が値「ｅｍｐｌｏｙｅｅ１」を有する「ｅｍｐｌｏｙｅｅ」フィールドを有する場合にのみ、名前空間のノードリソース「Ｒｏｏｍ  １２２６」を横断するようになる。同様に、名前空間のOrganization:/Product/DevicesTeam;building="Bldg33"/Dev/Computer604;printer="color"は、その記述子が値「Ｂｌｄｇ３３」を有する「ｂｕｉｌｄｉｎｇ」フィールドを有する（したがって、リソースの第１の部分を識別する）場合にのみ、名前空間のノードリソース「Ｄｅｖｉｃｅｓ  Ｔｅａｍ」を横断するようになり、その記述子が値「ｃｏｌｏｒ」を有する「ｐｒｉｎｔｅｒ」フィールドを有する（カラープリンタがそれに接続されていることを識別するように意味される）場合にのみ、名前空間のノードリソース「Ｃｏｍｐｕｔｅｒ  ６０４」を選択するようになる。
【００９１】
前述のように、名前空間の管理に、例えば１６０ビットＩＤなど、一意の数値識別子を割り当てることができる。いくつかの実施形態では。一意の識別子は、例えば、ドメインネームサービス（「ＤＮＳ」）名、ロケーション、デパートメントなど、１つまたは複数の名前空間の管理の特性をハッシュすることから、生成される。例えばＳＨＡなど、様々な異なるハッシング関数のいずれかを使用して、一意のＩＤを生成することができる。
【００９２】
一意の名前空間の管理のＩＤを利用すると、以下の関数は、名前空間のフェデレーションインフラストラクチャにおいて名前空間の情報のルーティングを提供することができる。
ＲｏｕｔｅＮｕｍｅｒｉｃａｌｌｙ（Ｖ，Ｍｓｇ）：名前空間の管理のアイデンティティに属する値領域からの値Ｖ、およびメッセージ「Ｍｓｇ」が与えられると、メッセージを、写像関数を使用してＶに写すことができるアイデンティティを有する名前空間の管理Ｘに配信する。
Ｎｅｉｇｈｂｏｒｈｏｏｄ（Ｘ，Ｓ）：Ｎｅｉｇｈｂｏｒｈｏｏｄは、Ｓに等しいカーディナリティを有する名前空間の管理Ｘ（例えば、リング３０６上）のどちらか一方の側上の名前空間の管理の集合である。
【００９３】
さらに、本発明の実施形態は、フェデレーションに参加する名前空間の管理に属する近接性基準を利用することもできる。近接性基準を、連合する名前空間の管理に属する集合をクラス（または分割）の互いに素な集合に分割する、同値関係として定義することができる。一般に、集合Ｓ上の関係Ｒは、以下の特性を満たす場合、同値関係である。
【００９４】
・  再帰的：Ｓの要素に属するｘ→ｘＲｘ
・  対称的：Ｓの要素ｘ、ｙが与えられると、ｘＲｙ→ｙＲｘ
・  推移的：Ｓの要素ｘ、ｙ、ｚが与えられると、ｘＲｙ∧ｙＲｚ→ｘＲｚ
本発明の実施形態は複数の異なる近接性基準をサポートすることができ、近接性基準を、半順序で配列することができる。例えば、「Ｃｏｒｐｏｒａｔｉｏｎ  １」に属するすべての名前空間のノードリソースが近接的に近いと見なす基準は、「Ｃｏｒｐｏｒａｔｉｏｎ  １，Ｌｏｃａｔｉｏｎ  Ａ」内のすべての名前空間の管理が近接的に近いと見なす基準より上位である。これは、前者の基準（「Ｃｏｒｐｏｒａｔｉｏｎ  １」に属すること）によって近接的に近いと見なされた名前空間の管理の集合が、後者の基準（「Ｃｏｒｐｏｒａｔｉｏｎ  １，Ｌｏｃａｔｉｏｎ  Ａ」に属すること）によって近接的に近いと見なされた名前空間の管理の集合の上位集合であることに起因する。他方では、「Ｃｏｒｐｏｒａｔｉｏｎ  １」内のすべての名前空間の管理を近接的に近いと見なす基準と、「Ｃｏｒｐｏｒａｔｉｏｎ  １，Ｌｏｃａｔｉｏｎ  Ａ」内のすべての名前空間の管理を近接的に近いと見なす基準の間に、順序関係はない。
【００９５】
フェデレーション内の各名前空間の管理のためのルーティングの名前空間の管理を計算するときに、近接性の検討事項を考慮に入れることにより、最終目的地へのパス上の各ルーティングホップが、要求を発信した名前空間の管理の近接内に残る可能性が高まる結果となる。さらに、数値空間内の名前空間の管理の間の距離を埋めることを、なお著しく進展させることができる。
【００９６】
一意のＩＤを近接性基準と共に利用して、以下の追加の関数は、名前空間のフェデレーションインフラストラクチャにおいて名前空間の情報のルーティングを提供することができる。
ＲｏｕｔｅＰｒｏｘｉｍａｌｌｙ（Ｖ，Ｍｓｇ，Ｐ）：名前空間の管理のアイデンティティに属する領域からの値Ｖ、およびメッセージ「Ｍｓｇ」が与えられると、メッセージを、近接性基準Ｐによって等価と見なされる名前空間の管理の間で、Ｖに写すことができるアイデンティティを有する名前空間の管理Ｙに配信する。
【００９７】
プロバイダ／サブスクライバが、名前空間の分岐で名前空間の管理に登録するとき、登録要求が、登録要求内で指定された名前空間のツリーのための登録情報を維持することを担うパートナーの名前空間の管理に送信（および潜在的にルーティング）される。あるいはまた、名前空間の登録要求をファブリックへ発信する名前空間の管理は、責任のある名前空間の管理であることがある。方法７１０を、図１の名前空間のフェデレーションインフラストラクチャおよび図６の名前空間に関して説明する。
【００９８】
方法７１０は、名前空間の分岐を登録するための名前空間の登録要求を受信する動作を含み、名前空間の登録要求は、名前空間の分岐を識別する名前空間の識別子を含む（動作７１１）。例えば、名前空間の管理１１２は、名前空間のＩＤ１４２を含む登録要求１３２を、プロバイダ１３１から受信することができる。名前空間の管理１１２はピアの名前空間の管理ではないので、名前空間の管理１１２は登録要求１３２を名前空間の管理１０２に転送することができる。名前空間の管理１１２は名前空間のＩＤ１４２を、名前空間のフェデレーションインフラストラクチャ１００を介して登録要求１３２を転送する前に、そのスキームによって識別されたルールによって、正規化することができる。
【００９９】
方法７１０は、少なくとも一方向の同値の識別値を、名前空間の識別子のパス部分の少なくとも一部と共に、名前空間の識別子のスキーム部分に基づいて、生成する動作を含む（動作７１２）。例えば、名前空間の管理１０２はハッシュ１５２を、名前空間のＩＤ１４２のパス部分の少なくとも一部と共に、名前空間のＩＤ１４２のスキーム部分に基づいて、生成することができる。例えばＳＨＡなど、様々な異なるハッシング関数のいずれかを使用して、ハッシュ値を名前空間の文字列の部分から生成することができる。名前空間の文字列のためのハッシュ値の生成は、名前空間のフェデレーションインフラストラクチャの構成に基づいて変わる可能性がある。
【０１００】
「ｕｕｉｄ」など非階層の名前空間のスキーム（例えば、スキームの後の「：／」の文字シーケンスの欠如によって識別される）では、ハッシュを、名前空間の全体上で生成することができる。例えば、名前空間の文字列「ｕｕｉｄ：ａ３６ｆａｂ９ｃ−９ｃ７ｆ−４２ｃ３−９７ｄ８−３６ｃｄ５７ｅ９ｂｄ２９」全体を使用して、ＳＨＡハッシュ値を生成することができる。
【０１０１】
階層の名前空間を、権限のある、または権限のないものにすることができ、これら２つは、例えば、スキームコンポーネントの後に続く各文字シーケンス「：／／」および「：／」によって区別される。「ｎａｍｅ」など、権限のある名前空間では、ハッシュはスキーム部分上で生成され、その後に「：／／」文字シーケンス、オーソリティコンポーネント、および名前空間の最初のパスコンポーネントが続く。例えば、名前空間の文字列「ｎａｍｅ：／／ｒｅｄ．ｐｒｎ．ｘｒｘ：２００／Ｐｒｉｎｔｅｒｓ／ｂ４２−１７４９−ａ」の一部「ｎａｍｅ：／／ｒｅｄ．ｐｒｎ．ｘｒｘ：２００／Ｐｒｉｎｔｅｒｓ」を使用して、ＳＨＡハッシュ値を生成することができる。図６の「ｌｏｃａｔｉｏｎ」スキームなど、権限のない名前空間では、ハッシュはスキーム部分上で生成され、その後に「：／」文字シーケンス、および名前空間の最初のパスコンポーネントが続く。例えば、名前空間の文字列「ｌｏｃａｔｉｏｎ：／Ｂｌｄｇ４２／Ｆｌｏｏｒ１／Ｒｏｏｍ１２２６」の一部「ｌｏｃａｔｉｏｎ：／Ｂｌｄｇ４２」を使用して、ＳＨＡハッシュ値を生成することができる。
【０１０２】
方法７１０は、名前空間の登録要求を、他の名前空間の管理の識別子よりも少なくとも一方向の同値の数値の識別値に数量的に近い識別子を有する、名前空間の管理に送信する動作を含む（動作７１３）。例えば、名前空間の管理１０２は、ＲｏｕｔｅＮｕｍｅｒｉｃａｌｌｙ関数を呼び出し、ハッシュ１５２および登録メッセージ１３２を入力として、例えばＲｏｕｔｅＮｕｍｅｒｉｃａｌｌｙ関数（ハッシュ１５２、登録メッセージ１３２）を供給することができる。代替として、ＲｏｕｔｅＰｒｏｘｉｍａｌｌｙ関数を使用することができる。いくつかの実施形態では、名前空間の登録要求が直接送信され、ルーティングは発生しない。
【０１０３】
名前空間のフェデレーションインフラストラクチャ１００は次いで、フェデレーションプロトコルを利用して、登録メッセージを適切な名前空間の管理に転送する。例えば、登録メッセージ１３２を名前空間の管理１０３にルーティングすることができる。名前空間の管理１０３は、名前空間の分岐に対する責任を別の名前空間の管理に移行していることがある。したがって、名前空間の管理１０３は、委託メッセージを名前空間の管理１０２に戻すことができる。したがって、名前空間の分岐に対する責任が委託されているとき、名前空間の管理１０２は、適切な名前空間の管理を指定する委託メッセージを受信することができる。名前空間の管理１０２は、登録要求１３２を適切な名前空間の管理に送信することができる。名前空間の管理が登録要求を受け入れるかあるいは拒否するまで、１つまたは複数の委託に遭遇する可能性がある。
【０１０４】
方法７１０は、名前空間の管理と名前空間の分岐とを結び付ける動作を含む（動作７１４）。例えば、名前空間の管理１０３を、（プロバイダ１３１を介して）名前空間のＩＤ１４２によって識別された名前空間の分岐と結び付けることができる。名前空間のＩＤ１４２は例えば、名前空間の６０１または名前空間の６０２の一部を識別することができる。名前空間の管理と名前空間の分岐との間の結び付けにより、登録要求内で指定されたものの真下の名前空間の分岐を指定する要求（例えば、検索要求）を、結び付けで指定された名前空間の管理に、ルーティングするのではなく転送することが可能となる。名前空間の管理の障害が検出されるか、または、異なる名前空間の管理への委託が得られる場合、結び付けは壊される。障害が検出される場合、新しい結び付けを形成することができるようになるまで、後続の要求はルーティングされる。
【０１０５】
図７Ｂは、名前空間の登録要求を移行するための方法７２０の実施形態のフローチャートを例示する。方法７２０を、図１の名前空間のフェデレーションインフラストラクチャおよび図６の名前空間に関して説明する。
【０１０６】
方法７２０は、名前空間の管理がポリシー制約を満たしていることを決定する動作を含む（動作７２１）。例えば、名前空間の管理１０３は、名前空間の情報（名前空間のフェデレーションインフラストラクチャ１００に関連する）が名前空間の管理１０３で処理される量が、構成されたしきい値を超えていることを決定することができる。構成されたしきい値を、例えば、名前空間の管理で維持された登録の総数、または、名前空間の管理でサービスされている検索要求の総数にすることができる。
【０１０７】
方法７２０は、ポリシー制約と結び付けられたポリシーアクションを満たすように移行されることが可能である、名前空間の分岐を識別する動作を含む（動作７２２）。例えば、名前空間の管理１０３は、構成されたしきい値より下で名前空間の管理１０３において処理された名前空間の情報を減らすように、移行されることが可能である、名前空間の分岐（例えば、名前空間のＩＤ１４２に対応する）を識別することができる。名前空間の管理は、移行のために、より大量にポピュレートされた、および／または、大量にサービスされた、名前空間の分岐を識別することができる。
【０１０８】
方法７２０は、ポリシーアクションに応答して、名前空間の分岐のための既存の登録を、パートナーの名前空間の管理に移行する動作を含む（例えば、動作７２３）。例えば、大量にポピュレートされた、および／または、大量にサービスされた名前空間の分岐への負担を軽減するために発生するようになるアクションに応答して、名前空間の管理１０３は既存の登録をパートナー（例えば、近傍）の名前空間の管理へ移行することができる。
【０１０９】
方法７２０はまた、名前空間の分岐に対応する名前空間の要求を受信する動作を含むこともできる。例えば、名前空間の管理１０３は、名前空間のＩＤ１４２によって表現された名前空間の分岐に対応する、登録要求１３２を受信することができる。
【０１１０】
方法７２０はまた、名前空間の要求をパートナーの名前空間の管理にリダイレクトする処置を取る動作を含むこともできる。例えば、点線の矢印で示すように、名前空間の管理１０３は登録要求１３２を名前空間の管理１０１に再ルーティングすることができる。名前空間の分岐を移行する名前空間の管理は、ＲｏｕｔｅＮｕｍｅｒｉｃａｌｌｙを呼び出して、要求を異なる名前空間の管理に再ルーティングすることができる。例えば、ＲｏｕｔｅＮｕｍｅｒｉｃａｌｌｙ（Ｈ，ｍｉｇｒａｔｅＭｓｇ）を呼び出して、移行されている名前空間の分岐の少なくとも一方向の同値の値によって識別された、名前空間の管理（例えば、名前空間の管理１０１）に、要求を再ルーティングすることができる。例えば、分岐ｌｏｃａｔｉｏｎ：／Ｂｌｄｇ４２／Ｆｌｏｏｒ１を移行するため、名前空間の管理１０３はハッシュＨを文字列「ｌｏｃａｔｉｏｎ：／Ｂｌｄｇ４２／Ｆｌｏｏｒ１」上で生成し、ＲｏｕｔｅＮｕｍｅｒｉｃａｌｌｙ（Ｈ，ｍｉｇｒａｔｅＭｓｇ）を呼び出して、移行された分岐を担う名前空間の管理１０１を識別し、ｌｏｃａｔｉｏｎ：／Ｂｌｄｇ４２／Ｆｌｏｏｒ１／Ｒｏｏｍ１２２６およびｌｏｃａｔｉｏｎ：／Ｂｌｄｇ４２／Ｆｌｏｏｒ１／Ｒｏｏｍ１１９など、移行された分岐の真下のすべての名前空間の登録を、識別された名前空間の管理１０１に移行する。
【０１１１】
名前空間の管理はまた、移行された名前空間の分岐のスパイン（ｓｐｉｎｅ）に沿って遭遇されたすべての名前空間の登録を、分岐をホストするパートナーの名前空間の管理に転送するように決定することもできる。これにより、パートナーの名前空間の管理の分岐は、要求が直接または間接的にいつでも、移行する名前空間の管理を通過する必要なしに、名前空間の分岐を指定するすべての検索要求をサービスすることが容易になる。移行する名前空間の管理は、それが登録情報を指定された名前空間の分岐の下で移行していることを指示するスタブを残すことができる。移行する名前空間の管理はまた、移行された登録内で指定されたプロバイダ／サブスクライバを追跡する活性通知のサブスクリプションがある場合も、取り消すことができる。したがって、移行する名前空間の管理によって受信された、移行された名前空間の分岐のスパインの下およびそれに沿った後続の名前空間の登録は、パートナーの名前空間の管理に転送される。
【０１１２】
図７Ｃは、名前空間の登録要求を処理するための方法の実施形態のフローチャートを例示する。方法７３０を、図１の名前空間のフェデレーションインフラストラクチャおよび図６の名前空間に関して説明する。
【０１１３】
方法７３０は、名前空間の分岐を登録するための名前空間の登録要求を受信する動作を含み、名前空間の登録要求は、名前空間の分岐を識別する名前空間のＵＲＩ文字列、および、名前空間の分岐内で登録を要求するプロバイダ（またはサブスクライバ）のための一意の参照または識別子を含む（動作７３１）。例えば、名前空間の管理１０３は、プロバイダ１３１への参照を含む登録要求１３２を受信することができる。
【０１１４】
方法７３０は、名前空間の管理が名前空間の分岐に関心を有することを決定する動作を含む（動作７３２）。例えば、名前空間の管理１０２は、名前空間の管理１０２が、名前空間のＩＤ１４２によって表現された名前空間の分岐（例えば、Ｏｒｇａｎｉｚａｔｉｏｎ：／Ｐｒｏｄｕｃｔ／Ｍｅｓｓａｇｉｎｇ  Ｔｅａｍ）を担うかどうかを判断することができる。名前空間の管理１０２が担わないとき、名前空間の管理１０２は名前空間の登録要求（例えば、登録要求１３２）を、指定された名前空間の分岐について、担う名前空間の管理（例えば、名前空間の管理１０３）に転送することができる。代替として、名前空間の管理１０２が担わないとき、名前空間の管理１０２は委託メッセージ１３４を、登録要求（例えば、登録要求１３３）を開始した名前空間の管理（例えば、名前空間の管理１０３）に送信して、その代わりに担う名前空間の管理（例えば、名前空間の管理１０１）に接触することができる。名前空間の管理１０２が担うとき、名前空間の管理１０２は名前空間の登録要求を保存することができる。
【０１１５】
方法７３０は、名前空間の識別子を、適切にインデックス付けされた名前空間の登録データベース内に保存する動作を含む（動作７３３）。例えば、名前空間の識別子がＵＲＩ文字列である場合、名前空間の登録データベースインデックス内に、アルファベット順で長い文字列が上位にランクされるように格納される。例えば、名前空間の管理１０３は名前空間のＩＤ１４２を名前空間の登録データベース内に保存することができる。破線、および、プロバイダ１３１の周囲の対応する破線のボックスは、名前空間の管理１０３がプロバイダ１３１を、名前空間のＩＤ１４２によって表現された名前空間に関心を有するとして参照していることを指示する。
【０１１６】
方法７３０はまた、プロバイダの活性がどのような頻度で後に検証されるべきであるかを決定する動作を含むこともできる。例えば、名前空間の管理１０３は、プロバイダ１３１の活性がどのような頻度で後に検証されるべきであるかを決定することができる。名前空間の管理１０３は、オプションでＩＤ１６１によって識別されたプロバイダ１３１の発行／加入のトピックに発行された活性通知に加入させることができる。発行／加入のトピックをＩＤ１６１によって識別することができる。代替として、活性サブスクリプションが行われない場合、登録には時間制限付きのリースが割り当てられる。プロバイダ１３１はリースが満了する前に、名前空間の管理１０３に直接接触することによって、登録を更新することができる。他の活性メカニズムを使用することもできる。
【０１１７】
名前空間の管理およびプロバイダ活性を、階層にわたって分散させることができる。階層内のより上位のレベルに位置する名前空間の管理は、他の同様に位置する名前空間の管理に依拠して、対応するより下位レベルの名前空間の管理およびプロバイダについての活性情報をレポートすることができる。例えば図１では、名前空間の管理１０３は名前空間の管理１０２（両方ともルートの名前空間の管理）の活性を追跡することができる。名前空間の管理１０３は名前空間の管理１０２に依拠して、いかなる対応する下位レベルの名前空間の管理（例えば、名前空間の管理１１２）またはプロバイダ（例えば、プロバイダ１２４）の障害をもレポートすることができる。名前空間の管理１０２は同様に、名前空間の管理１０３に依拠して、類似の型の障害（例えば、プロバイダ１２６の障害）をレポートするようになる。
【０１１８】
プロバイダ１３１の登録の成功（または失敗）の後に続いて、名前空間の管理１０２は、成功（または失敗）を指示するメッセージをプロバイダ１３１に送信することができる。
【０１１９】
時々、コンシューマ（他のコンピュータシステムまたは装置）は、プロバイダによって管理される名前空間の分岐内のリソースへのアクセスを望む場合がある。リソースへのアクセスを得るため、コンシューマは検索要求を発行して、リソースを識別しようと試みることができる。検索要求を名前空間の管理で受信し、１つまたは複数の適切なプロバイダに配信することができる。一般に、名前空間の管理は、検索要求を受信するとき、その検索要求を、それに最も近いパートナーの名前空間の管理（ある予め定義された近接性メトリックによって決定される）へ、および、要求内で指定された名前空間の分岐を担う名前空間の管理の近傍の方へ、ルーティングする。登録情報は近傍の名前空間の管理にわたってレプリケートされるので、検索要求を、近傍集合内のいかなる名前空間の管理によっても満たすことができる。
【０１２０】
検索要求を発信する名前空間の管理に最も近い名前空間の管理を介したルーティングは、ネットワークスループットの改善および動的な負荷分散の結果となり、これは、検索要求を満たす観点から、検索要求が自動的および効率的に、近傍の名前空間の管理にわたって分割されるからである。ルーティングを容易にするため、検索要求内で指定された名前空間のＩＤを写すためのアルゴリズムは、登録要求内で指定された名前空間のＩＤを写すためのアルゴリズムと、本質的に同じである可能性がある。例えば、名前空間のアイデンティティの値領域から名前空間の管理への１対１写像を使用して、検索および登録の両方の要求について名前空間のＩＤを写すことができる。
【０１２１】
図８Ａは、名前空間の検索要求をルーティングするための方法の実施形態のフローチャートを例示する。方法８１０を、図１の名前空間のフェデレーションインフラストラクチャおよび図６の名前空間に関して説明する。
【０１２２】
方法８１０は、名前空間の分岐を識別する名前空間の識別子を含む、名前空間の検索要求を受信する動作を含む（動作８１１）。例えば、名前空間の管理１０３は検索要求１３３を受信することができる。検索要求１３３は、例えば、Ｌｏｃａｔｉｏｎ：／Ｂｌｄｇ４２／Ｆｌｏｏｒ２／Ｒｏｏｍ２００５など、名前空間のツリー６０２の分岐を識別する名前空間のＩＤ１４３を指定することができる。
【０１２３】
方法８１０は、少なくとも一方向の同値の数値の識別値を、名前空間の識別子に基づいて生成する動作を含む（動作８１２）。例えば、名前空間の管理１０２は、名前空間のＩＤ１４３のパス部分の少なくとも一部と共に名前空間のＩＤ１４３のスキーム部分をハッシュして、ハッシュ１５３を生成することができる。
【０１２４】
方法８１０は、名前空間の検索要求を目的地の名前空間の管理に送信する動作を含む（動作８１３）。目的地の名前空間の管理は、少なくとも一方向の同値の数値の識別値に数量的に最も近い一意の識別子を有する、名前空間の管理の予め定義された範囲内である、名前空間の管理の近傍内に含まれる。検索要求１３３をルーティングするために、名前空間の管理１０３は、ＲｏｕｔｅＰｒｏｘｉｍａｌｌｙ（またはＲｏｕｔｅＮｕｍｅｒｉｃａｌｌｙ）関数を呼び出すことができる。例えば、名前空間の管理１０３は、ＲｏｕｔｅＰｒｏｘｉｍａｌｌｙ（ハッシュ１５３、検索メッセージ１３３、近接性基準Ｐ）を呼び出して、検索メッセージ１３３をパートナーの名前空間の管理１０２にルーティングすることができ、これは、パートナーの名前空間の管理１０２が、指定された近接性基準Ｐの下で名前空間の管理１０３に近接的に近いと見なされた名前空間の管理の間で数量的に最も近い一意のＩＤを有するものとして、識別されるからである。ＲｏｕｔｅＰｒｏｘｉｍａｌｌｙ関数から、名前空間の管理１０２を識別することができる。
【０１２５】
方法８１０はまた、名前空間の分岐に関心を有する１つまたは複数のプロバイダへの配信のために、名前空間の検索要求を転送する動作を含むこともできる。例えば、名前空間の管理１０３は、検索要求１３３を名前空間の管理１０２に転送することができる。名前空間の管理１０２は、検索要求１３３をプロバイダ１３１に転送することができる。
【０１２６】
図８Ｂは、名前空間の検索要求を移行するための方法の実施形態のフローチャートを例示する。方法８２０を、図１の名前空間のフェデレーションインフラストラクチャおよび図６の名前空間に関して説明する。
【０１２７】
方法８２０は、名前空間の分岐のための名前空間の検索要求を受信する動作を含む（動作８２１）。名前空間の検索要求は、特定の名前空間の分岐を識別する一意の名前空間の識別子を含む。例えば、名前空間の識別子をＵＲＩ  ＩＤ１４３にすることができる。さらに、受信された名前空間の検索要求は、オプションで指定された名前空間の分岐のための識別子に基づいて生成された、少なくとも一方向の同値の数値の識別値を含む。例えば、ハッシュ１５３は、名前空間のＩＤ１４３のスキームおよびパス部分の少なくとも一部から生成されることがある。名前空間の管理に対する名前空間の管理の識別子は、１つまたは複数の他の名前空間の管理に属する名前空間の分岐の識別子よりも、名前空間の分岐の識別子に近い。名前空間の管理１０２は、一意のＩＤ１７２が、名前空間のフェデレーションインフラストラクチャ１００内の他の名前空間の管理の一意の識別子（例えば、ＩＤ１７４）よりもハッシュ１５３に近い結果として、検索要求１３３を受信することができる。
【０１２８】
方法８２０は、名前空間の分岐が、異なる名前空間の管理の識別子を有する異なる名前空間の管理に移行されているという指示を、検出する動作を含む（動作８２２）。例えば、名前空間の管理１０２は、名前空間のＩＤ１４３によって表現された名前空間の分岐が名前空間の管理１０１に移行されていることを指示するスタブの存在を検出することができる。
【０１２９】
方法８２０はまた、発信側の名前空間の管理に、名前空間の分岐が異なる名前空間の管理に移行されていることを、少なくとも通知する動作を含むこともできる。例えば、名前空間の管理１０２は名前空間の管理１０３に、名前空間のＩＤ１４３によって表現された名前空間の分岐が移行されていることを、少なくとも通知することができる。例えば、名前空間の管理１０２は委託メッセージ１３４を名前空間の管理１０３に送信して、名前空間の管理１０３が名前空間の管理１０１に接触するべきであるか、または、移行された分岐のための新しい検索要求１３２を開始するべきであることを指示することができる。
【０１３０】
名前空間の管理１０３は、委託メッセージ内に含まれる名前空間の管理１０２からの命令に従うことができる。
【０１３１】
名前空間の管理１０２は代替として、ＲｏｕｔｅＰｒｏｘｉｍａｌｌｙ（新しいＩＤ  Ｈ、検索要求１３３、近接性基準Ｐ）をそれ自体において呼び出すことによって、検索要求１３３自体を再ルーティングすることができる。例えば、新しいＩＤ  Ｈを、スキーマ部分およびパスコンポーネントの第１の部分をハッシュすることのみによって生成された、元のハッシュ値とは対照的に、コンポーネント全体の移行された名前空間の分岐をハッシュすることによって、生成することができる。ＲｏｕｔｅｒＰｒｏｘｉｍａｌｌｙを呼び出すことは、名前空間の管理１０１への配信のために（検索要求１３３を含む、破線の矢印によって示す）、検索要求１３３を他の名前空間の管理にルーティングさせることを可能にする。
【０１３２】
図８Ｃは、名前空間の検索要求を処理するための方法の実施形態のフローチャートを例示する。方法８３０を、図１の名前空間のフェデレーションインフラストラクチャおよび図５の名前空間に関して説明する。
【０１３３】
方法８３０は、名前空間に属する名前空間の分岐を識別する名前空間の識別子を含む、名前空間の検索要求を受信する動作を含む（動作８３１）。例えば、名前空間の管理１０２は、名前空間のＩＤ１４３を含む、名前空間の検索要求１３３を受信することができる。名前空間のＩＤ１４３は、名前空間のインフラストラクチャ５００の名前空間の分岐を識別することができる。
【０１３４】
方法８３０は、名前空間の検索要求の名前空間の検索要求型を識別する動作を含む（動作８３２）。例えば、名前空間の管理１０２は、検索要求１３３の名前空間の検索要求型を識別する。いくつかの実施形態では、名前空間の検索要求型を、汎用要求型（例えば、いずれかの名前空間の分岐向け）、または、ターゲットにされた要求型（例えば、特定の名前空間の分岐向け）にすることができる。
【０１３５】
方法８３０は、１つまたは複数のプロバイダが、名前空間の分岐に関係付けられた名前空間の部分について登録していることを、検出する動作を含む（動作８３３）。例えば、名前空間の管理１０２は、１つまたは複数のプロバイダが、名前空間のＩＤ１４３によって表現された名前空間の分岐に関係付けられた名前空間の部分について登録していることを、検出することができる。このとき図５を参照すると、名前空間のＩＤ１４３がＬｏｃａｔｉｏｎ：／Ｃｏｒｐｏｒａｔｅ  Ｂｕｉｌｄｉｎｇｓ／Ｂｌｄｇ  ５０／Ｆｌｏｏｒ  １である場合、プロバイダ５０１、５０２および５０３を識別することができる。プロバイダ５０１はＲｏｏｍ  １３０４（名前空間のツリー５００内のＦｌｏｏｒ  １の下）について登録しており、プロバイダ５０２はＢｌｄｇ  ５０（名前空間のツリー５００内のｆｌｏｏｒ  １の上）について登録され、プロバイダ５０３は名前空間のツリー５００内のＦｌｏｏｒ  １について登録される。
【０１３６】
方法８３０はまた、名前空間の検索要求を、識別された名前空間の検索要求型に基づいて、少なくとも１つのプロバイダに転送する動作を含むこともできる。例えば、名前空間の管理１０２は検索要求１３３を、プロバイダ５０１、５０２および５０３のうち１つまたは複数に転送することができる。
【０１３７】
汎用要求では、名前空間の管理１０２は、その登録の名前空間の分岐が、検索要求内で指定されたもののプレフィクスまたはサフィックスのいずれかである、すべてのプロバイダに、要求を転送する。例えば、名前空間の管理１０２は、名前空間のＩＤ１４３がＬｏｃａｔｉｏｎ：／Ｃｏｒｐｏｒａｔｅ  Ｂｕｉｌｄｉｎｇｓ／Ｂｌｄｇ  ５０／Ｆｌｏｏｒ  １であった場合、名前空間の検索要求１３３をプロバイダ５０１、５０２および５０３に転送することができる。ターゲットにされた要求では、名前空間の管理は要求を、その登録の名前空間の分岐が、検索要求内で指定されたものの最大プレフィクスである、プロバイダにのみ、要求を転送する。しかし、汎用およびターゲットにされた型の両方では、５０１など、所与のプロバイダの複数のコピーが使用可能である場合、名前空間の管理１０２は要求を、選択された近接性メトリックの下で、検索要求の発信元（この場合、名前空間の管理１０３）により近いプロバイダに転送する。
【０１３８】
名前空間の管理１０３は、名前空間のＩＤ１４３によって表現された名前空間の分岐と、名前空間の管理１０２との間の結び付けを作成することができる（例えば、それを名前空間のデータベース内に格納する）。このような結び付けは、結び付けにおいて指定されたものの真下の名前空間の分岐（例えば、Ｌｏｃａｔｉｏｎ：／Ｃｏｒｐｏｒａｔｅ  Ｂｕｉｌｄｉｎｇｓ／Ｂｌｄｇ  ５０／Ｆｌｏｏｒ  １）を指定する名前空間の検索要求が、名前空間の管理１０２にルーティングされるのではなく、転送されることを容易にする。ターゲットの名前空間の管理の障害が検出されるか、または、異なる名前空間の管理への委託が得られる場合、結び付けは壊される。前者の場合、後続の要求は、新しい結び付けを形成できるようになるまでルーティングされる。
【０１３９】
図９は、リソースが複数の名前空間に参加するための方法の実施形態のフローチャートを例示する。方法９００を、図６の名前空間のツリーに関して説明する。
【０１４０】
方法９００は、リソースのための一意のリソース識別子を確立する動作を含む（動作９０１）。動作９０１は、リソースに対応するＵＲＩのパス部分を確立することを含むことができる。例えば、「プリンタ６０３」の識別子を、プリンタのために確立することができる。
【０１４１】
方法９００は、第１の名前空間において、リソースの有用性を発行する動作を含む（動作９０２）。例えば、プリンタ６０３は、その有用性を名前空間のツリー６０１内で発行することができる。方法９００は、一意のリソース識別子を、第１の名前空間内の第１の名前空間のノードリソースにリンクさせて、第１の名前空間が横断されてリソースを識別することができるようにする動作を含む（動作９０３）。例えば、名前空間のセグメント６３１を確立して、プリンタ６０３を「Ｄｅｖ  Ｔｅａｍ」の名前空間のノードリソースにリンクさせることができる。したがって、名前空間のツリー６０１（および、「Ｄｅｖ  Ｔｅａｍ」の名前空間のノードリソース）が横断されてプリンタ６０３を識別することができる。
【０１４２】
方法９００は、第２の名前空間において、リソースの有用性を発行する動作を含む（動作９０４）。例えば、プリンタ６０３は、その有用性を名前空間のツリー６０２内で発行することができる。方法９００は、一意のリソース識別子を、第２の名前空間内の第２の名前空間のノードリソースにリンクさせて、第２の名前空間が横断されてリソースを識別することができるようにする動作を含む（動作９０５）。例えば、名前空間のセグメント６３２を確立して、プリンタ６０３を「Ｒｏｏｍ  １２２６」の名前空間のノードリソースにリンクさせることができる。したがって、名前空間のツリー６０２（および、「Ｒｏｏｍ  １２２６」の名前空間のノードリソース）が横断されてプリンタ６０３を識別することもできる。
【０１４３】
図１０は、リソースの部分集合を名前空間のフェデレーションインフラストラクチャ内で識別するための方法の実施形態のフローチャートを例示する。方法１０００を、図６の名前空間のツリーに関して説明する。
【０１４４】
方法１０００は、クエリを装置から受信する動作を含む（動作１００１）。例えば、名前空間のツリー６０２のためのプロバイダはクエリを、そのプロバイダに接続可能なネットワークである装置から受信することができる。クエリは、名前空間の階層内の第１のレベルで第１のクエリ基準を満たす、リソースの第１の部分を識別する、第１のクエリ部分を含む。例えば、第１のクエリ部分は、名前空間のセグメント「Ｆｌｏｏｒ  ２」（名前空間のツリー６０２内）を横断した後に、第１のクエリ基準を満たすリソースの第１の部分を識別することができる。リソースの第１の部分を、例えば従業員にすることができ、第１の基準はまた、例えば、「Ｍｅｓｓａｇｉｎｇ  Ｔｅａｍ」に割り当てられることを含むこともできる。このように、第１のクエリ部分は、（Ｂｌｄｇ  ４２の）Ｆｌｏｏｒ  ２で働く「Ｍｅｓｓａｇｉｎｇ  Ｔｅａｍ」に割り当てられたすべての従業員を識別することができる。いくつかの実施形態では、第１のクエリ基準が利用されて、リソースの第１の部分を参照するリソースのプロパティ中がナビゲートされる。
【０１４５】
クエリは、リソースの第１の部分に含まれたリソースの中から選択されたリソースの第２の部分を識別する、第２のクエリ部分を含む。例えば、第２のクエリ部分は、名前空間のセグメント「Ｒｏｏｍ  ２００５」（名前空間のツリー６０２内）を横断した後に、第２のクエリ基準を満たすリソースの第２の部分を識別することができる。リソースの第２の部分を、例えば管理者にすることができ、第２の基準を、例えば装置にすることができる。このように、第２のクエリ部分は、Ｒｏｏｍ  ２００５内のオフィスキュービクルを有するプリンタ管理者を識別することができる。いくつかの実施形態では、第２のクエリ基準が利用されて、リソースの第２の部分を参照するリソースの第１の部分のプロパティ中がナビゲートされる。
【０１４６】
したがって、第１のクエリ部分から識別されたリソースを、第２のクエリ部分への入力として提供すると、受信されたクエリの結果は（リソーススキーマ内のフィールド定義に応じて）、２階、Ｒｏｏｍ  ２００５内のオフィスを有し、Ｍｅｓｓａｇｉｎｇ  Ｔｅａｍに割り当てられた、プリンタ管理者を識別することができる。
【０１４７】
方法１０００は、リソースの第２の部分のアイデンティティを装置に戻す動作を含む（動作１００２）。例えば、名前空間のツリー６０２のためのプロバイダは、Ｆｌｏｏｒ  ２上のＭｅｓｓａｇｉｎｇ  Ｔｅａｍ従業員によって所有される、Ｒｏｏｍ２００５内の装置の管理者のアイデンティティを、ネットワーク接続可能な装置に戻すことができる。
【０１４８】
図１２は、複数のリソースを編成するための方法の実施形態のフローチャートを例示する。方法１２００を、図６の名前空間のインフラストラクチャに関して説明する。
【０１４９】
方法１２００は、新しいリソースが１つまたは複数の名前空間内に含まれるべきであることを決定する動作を含み、１つまたは複数の名前空間の各々は、１つまたは複数のリソースを編成するように構成される（動作１２０１）。例えば、プリンタ６０３が名前空間６０１および／または名前空間６０２内に含まれるべきであることを、決定することができる。方法１２００は、新しいリソースに関係付けられるべきである、１つまたは複数の名前空間の第１の名前空間内の第１のリソースを識別する動作を含む（動作１２０２）。例えば、名前空間６０２内のルーム１２２６がプリンタ６０３に関係付けられるべきであると、識別することができる。同様に、名前空間６０１内のＤｅｖ  Ｔｅａｍがプリンタ６０３に関係付けられるべきであると、識別することができる。
【０１５０】
方法１２００は、第１の名前空間のセグメントを使用して、新しいリソースを第１のリソースにリンクさせ、名前空間のセグメントが横断されて既存のリソースから名前空間内の新しいリソースへナビゲートすることができるようにする動作を含む（動作１２０３）。例えば、名前空間のセグメント６３２を使用して、プリンタ６０３をＲｏｏｍ  １２２６にリンクさせ、名前空間のセグメント６３２が横断されてＲｏｏｍ  １２２６からプリンタ６０３へナビゲートすることができるようにすることができる。同様に、名前空間のセグメント６３１を使用して、プリンタ６０３をＤｅｖ  Ｔｅａｍにリンクさせ、名前空間のセグメント６３１が横断されてＤｅｖ  Ｔｅａｍからプリンタ６０３へナビゲートすることができるようにすることができる。
【０１５１】
図１１および以下の考察は、本発明を実施することができる、実施形態の適切なコンピューティング環境の簡単な全体的説明を提供するように意図される。必要ではないが（例えば、ハードウェアにおいて実施されるとき）、本発明を一般に、プログラムモジュールなど、コンピュータシステムによって実行されるコンピュータ実行可能命令に関連して説明する。一般に、プログラムモジュールには、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれ、これらは特定のタスクを実行するか、あるいは特定の抽象データ型を実装する。コンピュータ実行可能命令、関連したデータ構造、およびプログラムモジュールは、本明細書で開示された方法の動作を実行するためのプログラムコード手段の実施例を表す。
【０１５２】
図１１を参照すると、本発明を実施するための実施形態のシステムには、コンピュータシステム１１２０の形態における汎用コンピューティングシステムが含まれ、コンピュータシステム１１２０には、処理装置１１２１、システムメモリ１１２２、および、システムメモリ１１２２を含む様々なシステムコンポーネントを処理装置１１２１に結合するシステムバス１１２３が含まれる。処理装置１１２１は、本発明の特徴を含む、コンピュータシステム１１２０の特徴を実施するように設計された、コンピュータ実行可能命令を実行することができる。システムバス１１２３は、いくつかの種類のバス構造のいずれかにすることができ、これらのバス構造には、様々なバスアーキテクチャのいずれかを使用する、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスが含まれる。システムメモリには、読み取り専用メモリ（「ＲＯＭ」）１１２４およびランダムアクセスメモリ（「ＲＡＭ」）１１２５が含まれる。基本入出力システム（「ＢＩＯＳ」）１１２６は、起動中など、コンピュータシステム１１２０内の複数の要素の間で情報を転送する助けとなる基本ルーチンを含み、ＲＯＭ１１２４に格納することができる。
【０１５３】
コンピュータシステム１１２０にはまた、磁気ハードディスク１１３９に対する読み書きを行うための磁気ハードディスクドライブ１１２７、リムーバブル磁気ディスク１１２９に対する読み書きを行うための磁気ディスクドライブ１１２８、および、例えばＣＤ−ＲＯＭまたは他の光記憶媒体など、リムーバブル光ディスク１１３１に対する読み書きを行うための光ディスクドライブ１１３０が含まれる場合もある。磁気ハードディスクドライブ１１２７、磁気ディスクドライブ１１２８および光ディスクドライブ１１３０はそれぞれシステムバス１１２３に、ハードディスクドライブインターフェース１１３２、磁気ディスクドライブインターフェース１１３３、および光ドライブインターフェース１１３４によって接続される。ドライブおよびそれらの関連したコンピュータ読取り可能な媒体は、コンピュータシステム１１２０用のコンピュータ実行可能命令、データ構造、プログラムモジュールおよび他のデータの不揮発性記憶装置を提供する。本明細書で説明する実施例の環境は、磁気ハードディスク１１３９．リムーバル磁気ディスク１１２９およびリムーバブル光ディスク１１３１を使用するが、データを格納するための他の種類のコンピュータ読取り可能な媒体を使用することができ、これらのコンピュータ読取り可能な媒体には、磁気カセット、フラッシュメモリカード、デジタル多用途ディスク、ベルヌーイカートリッジ、ＲＡＭ、ＲＯＭなどが含まれる。
【０１５４】
１つまたは複数のプログラムモジュールを備えるプログラムコード手段を、ハードディスク１１３９、磁気ディスク１１２９、光ディスク１１３１、ＲＯＭ１１２４またはＲＡＭ１１２５上に格納することができ、これらのプログラムモジュールには、オペレーティングシステム１１３５、１つまたは複数のアプリケーションプログラム１１３６、他のプログラムモジュール１１３７、およびプログラムデータ１１３８が含まれる。ユーザーはコマンドおよび情報をコンピュータシステム１１２０へ、キーボード１１４０、ポインティング装置１１４２、または、例えばマイクロフォン、ジョイスティック、ゲームパッド、スキャナなど、他の入力装置（図示せず）を通じて入力することができる。これらおよび他の入力装置を処理装置１１２１へ、システムバス１１２３に結合された入出力インターフェース１１４６を通じて接続することができる。入出力インターフェース１１４６は、例えば、シリアルポートインターフェース、ＰＳ／２インターフェース、パラレルポートインターフェース、ユニバーサルシリアルバス（「ＵＳＢ」）インターフェース、または、米国電気電子学会（「ＩＥＥＥ」）１３９４インターフェース（すなわち、ＦｉｒｅＷｉｒｅインターフェース）など、幅広い種類の異なるインターフェースのいずれかを論理的に表し、または、異なるインターフェースの組合せを論理的に表す場合もある。
【０１５５】
モニタ１１４７または他の表示装置もまたシステムバス１１２３へ、ビデオインターフェース１１４８を介して接続することができる。スピーカ１１６９または他のオーディオ出力装置もまたシステムバス１１２３へ、オーディオインターフェース１１４９を介して接続される。例えば、プリンタなど、他の周辺出力装置（図示せず）もまた、コンピューティングシステム１１２０に接続することができる。
【０１５６】
コンピュータシステム１１２０は、例えば、オフィス全体または企業全体のコンピュータネットワーク、ホームネットワーク、イントラネットおよび／またはインターネットなど、ネットワークに接続可能である。コンピュータシステム１１２０はデータを、例えば、リモートコンピュータシステム、リモートアプリケーション、および／またはリモートデータベースなど、外部リソースと、このようなネットワークを介して交換することができる。
【０１５７】
コンピュータシステム１１２０にはネットワークインターフェース１１５３が含まれ、ネットワークインターフェース１１５３を通じて、コンピュータシステム１１２０はデータを外部ソースから受信、および／または、データを外部ソースに送信する。図１１に示すように、ネットワークインターフェース１１５３は、リンク１１５１を介したリモートコンピュータシステム１１８３とのデータの交換を容易にする。ネットワークインターフェース１１５３は、例えば、ネットワークインターフェースカードおよび対応するネットワークドライバインターフェース規約（「ＮＤＩＳ」）スタックなど、１つまたは複数のソフトウェアおよび／またはハードウェアモジュールを論理的に表すことができる。リンク１１５１は、ネットワークの一部（例えば、イーサネット（登録商標）セグメント）を表し、リモートコンピュータシステム１１８３は、ネットワークのコンピュータシステムを表す。
【０１５８】
同様に、コンピュータシステム１１２０には入出力インターフェース１１４６が含まれ、入出力インターフェース１１４６を通じて、コンピュータシステム１１２０はデータを外部ソースから受信、および／または、データを外部ソースに送信する。入出力インターフェース１１４６はモデム１１５４（例えば、標準モデム、ケーブルモデム、またはデジタル加入者線（「ＤＳＬ」）モデム）に、リンク１１５９を介して結合され、モデム１１５４を通じてコンピュータシステム１１２０はデータを外部ソースから受信、および／または、データを外部ソースに送信する。図１１に示すように、入出力インターフェース１１４６およびモデム１１５４は、リンク１１５２を介したリモートコンピュータシステム１１９３とのデータの交換を容易にする。リンク１１５２は、ネットワークの一部を表し、リモートコンピュータシステム１１９３は、ネットワークのコンピュータシステムを表す。
【０１５９】
図１１は、本発明のための適切なオペレーティング環境を表すが、本発明の原理を、必要であれば適切な修正により、本発明の原理を実施することができる、いかなるシステム内で使用することもできる。図１１に例示した環境は例示的でしかなく、決して、本発明の原理を実施することができる幅広い環境のごく一部さえ表さない。
【０１６０】
本発明によれば、名前空間の管理、プロバイダおよびリソース、ならびに、名前空間のデータベース、名前空間の識別子および文字列、ハッシュ、リソース識別子、ルーティングテーブルおよび名前空間のツリーを含む、関連したデータを格納することができ、コンピュータシステム１１２０に関連付けられたコンピュータ読取り可能な媒体のいずれからもアクセスすることができる。例えば、このようなモジュールの一部および関連したプログラムデータの一部は、システムメモリ１１２２への格納のために、オペレーティングシステム１１３５、アプリケーションプログラム１１３６、プログラムモジュール１１３７および／またはプログラムデータ１１３８内に含まれる可能性がある。
【０１６１】
例えば、磁気ハードディスク１１３９など、大容量記憶装置が、コンピュータシステム１１２０に結合されるとき、このようなモジュールおよび関連したプログラムデータもまた、大容量記憶装置内に格納することができる。ネットワーク環境では、コンピュータシステム１１２０に関連して示したプログラムモジュールまたはその一部を、リモートメモリ記憶装置に格納することができ、リモートメモリ記憶装置は、リモートコンピュータシステム１１８３および／またはリモートコンピュータシステム１１９３に関連付けられたシステムメモリおよび／または大容量記憶装置などである。このようなモジュールの実行を、前述のように分散環境内で実行することができる。
【０１６２】
本発明を、その精神または本質的特性から逸脱することなく、他の特定の形態において実施することができる。説明した実施形態はあらゆる点で例示的でしかなく、限定的ではないと見なされるべきである。本発明の範囲は、したがって、前述の説明によってではなく、付属の特許請求の範囲によって示される。特許請求の範囲の等価物の意味および範囲内に入るすべての変更は、それらの範囲内に包含されるべきである。
【図面の簡単な説明】
【０１６３】
【図１】名前空間のフェデレーションインフラストラクチャの実施形態を例示する図である。
【図２】要求を間接的にパートナーにルーティングすることを容易にするコンピュータアーキテクチャの実施形態を例示する図である。
【図３】名前空間のフェデレーションインフラストラクチャ内の複数の名前空間の管理の間の２項関係の実施形態を例示する図である。
【図４】名前空間のフェデレーションインフラストラクチャを他のプロトコルと統合することを容易にするアーキテクチャの実施形態を例示する図である。
【図５】プロバイダからの名前空間のフェデレーションインフラストラクチャおよび名前空間のコレクションビューの実施形態を例示する図である。
【図６】複数の名前空間内で使用可能にされたリソースを有する名前空間のフェデレーションインフラストラクチャの実施形態を例示する図である。
【図７Ａ】名前空間の登録要求をルーティングするための方法の実施形態のフローチャートを例示する図である。
【図７Ｂ】名前空間の登録要求を移行するための方法の実施形態のフローチャートを例示する図である。
【図７Ｃ】名前空間の登録要求を処理するための方法の実施形態のフローチャートを例示する図である。
【図８Ａ】名前空間の検索要求をルーティングするための方法の実施形態のフローチャートを例示する図である。
【図８Ｂ】名前空間の検索要求を移行するための方法の実施形態のフローチャートを例示する図である。
【図８Ｃ】名前空間の検索要求を処理するための方法の実施形態のフローチャートを例示する図である。
【図９】リソースが複数の名前空間に参加するための方法の実施形態のフローチャートを例示する図である。
【図１０】リソースの部分集合を名前空間のフェデレーションインフラストラクチャ内で識別するための方法の実施形態のフローチャートを例示する図である。
【図１１】本発明の原理のための適切なオペレーティング環境を例示する図である。
【図１２】複数のリソースを編成するための方法の実施形態のフローチャートを例示する図である。
【図１３】リソースを記述するために使用することができるスキーマ分類法の実施形態を例示する図である。
【図１】
2006107501.tif 000003
【図２】
2006107501.tif 000004
【図３】
2006107501.tif 000005
【図４】
2006107501.tif 000006
【図５】
2006107501.tif 000007
【図６】
2006107501.tif 000008
【図７Ａ】
2006107501.tif 000009
【図７Ｂ】
2006107501.tif 000010
【図７Ｃ】
2006107501.tif 000011
【図８Ａ】
2006107501.tif 000012
【図８Ｂ】
2006107501.tif 000013
【図８Ｃ】
2006107501.tif 000014
【図９】
2006107501.tif 000015
【図１０】
2006107501.tif 000016
【図１１】
2006107501.tif 000017
【図１２】
2006107501.tif 000018
【図１３】
2006107501.tif 000019