JP4879547B2 - より効率的なおよび確かなリソースアクセスを容易にするコレクションへのリソースの編成 - Google Patents

より効率的なおよび確かなリソースアクセスを容易にするコレクションへのリソースの編成 Download PDF

Info

Publication number
JP4879547B2
JP4879547B2 JP2005287843A JP2005287843A JP4879547B2 JP 4879547 B2 JP4879547 B2 JP 4879547B2 JP 2005287843 A JP2005287843 A JP 2005287843A JP 2005287843 A JP2005287843 A JP 2005287843A JP 4879547 B2 JP4879547 B2 JP 4879547B2
Authority
JP
Japan
Prior art keywords
namespace
resource
unique
namespaces
network communication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005287843A
Other languages
English (en)
Other versions
JP2006107501A (ja
Inventor
クリシュナ アール.カキバヤ ゴパラ
エル.ハシヤ リチャード
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2006107501A publication Critical patent/JP2006107501A/ja
Application granted granted Critical
Publication of JP4879547B2 publication Critical patent/JP4879547B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/30Managing network names, e.g. use of aliases or nicknames
    • H04L61/3015Name registration, generation or assignment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/30Managing network names, e.g. use of aliases or nicknames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4552Lookup mechanisms between a plurality of directories; Synchronisation of directories, e.g. metadirectories
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99948Application of database or data structure, e.g. distributed, multimedia, or image

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、一般には、リソースを編成することに関し、より詳細には、リソースをコレクションに編成することによって、より効率的なおよび確かなリソースアクセスを容易にすることに関する。
コンピュータシステムおよび関連技術は、社会の多数の面に影響を与える。実際に、コンピュータシステムの、情報を処理する能力は、我々が生活し、働く方法を変えてきている。コンピュータシステムは現在一般に、コンピュータシステムの出現以前は手動で実行されていた多数のタスク(例えば、文書処理、スケジューリングおよびデータベース管理)を実行する。より最近では、コンピュータシステムが互いに、また他の電子装置に結合されて、有線および無線コンピュータネットワークが形成されるようになり、このネットワークを介して、コンピュータシステムおよび他の電子装置は電子データを転送することができる。結果として、コンピュータシステムで実行された多数のタスク(例えば、音声通信、電子メールへのアクセス、ホームエレクトロニクスのコントロール、ウェブブラウジング、およびドキュメントの印刷)には、有線および/または無線コンピュータネットワークを介した、いくつかのコンピュータシステムおよび/または他の電子装置の間の電子通信が含まれる。
コンピュータネットワークを介してアクセス可能であるリソース(例えば、装置およびサービス)の品質および多様性により、様々な異なるアクセスメカニズムが開発されている。多数のアクセスメカニズムは異なるプロトコルを利用する。例えば、ワールドワイドウェブ(「WWW」)上のウェブページにアクセスすることは通常、ハイパーテキスト転送プロトコル(「HTTP」)を使用して容易にされる。他方では、ファイルにリモートロケーションからアクセスすることを、ファイル転送プロトコル(「FTP」)を使用して容易にすることができる。時には、同じコンテンツを、異なるプロトコルを使用して異なる時間に転送することができる。例えば、電子メールメッセージを複数のメールサーバの間で、簡易メール転送プロトコルを使用して転送し、次いで、インターネットメッセージアクセスプロトコル(「IMAP」)またはポストオフィスプロトコル(「POP」)を使用して、クライアントに転送することができる。
しかし、プロトコルを使用してリソースの転送またはアクセスができるようになる前に、対応するアクセスメカニズムは、アクセスまたは転送されるべきであるリソースを識別するためのある方法を有していなければならない。例えば、ウェブブラウザがHTTPを使用してウェブページにアクセスできるようになる前に、ウェブブラウザは、アクセスされるべきであるウェブページを識別するためのある方法を有していなければならない。同様に、メールクライアントがIMAPまたはPOPを使用して電子メールメッセージを受信することができるようになる前に、メールクライアントは、電子メッセージを格納中であるメールサーバを識別するためのある方法を有していなければならない。したがって、実質的にはすべてのリソースアクセスメカニズムには、リソースを識別するために使用することができる識別メカニズムも含まれる。
1つの識別メカニズムには、ネットワークアドレス(例えば、インターネットプロトコル「IP」アドレス)を利用して、対応するコンピューティング装置(例えば、ラップトップ、メールサーバ、プリンタ、PDAなど)を識別することが含まれる。ネットワークアドレスによってコンピューティング装置を識別することは、より小さいネットワーク(例えば、ホームエリアネットワーク(「HAN」))上、および/または、ネットワークアドレスが比較的まれに変わるネットワーク上では、十分である場合がある。しかし、分散型のより大規模のネットワーク上では、ネットワークアドレスを識別メカニズムとして使用することには、しばしば問題がある。例えば、インターネット上に大量のコンピューティング装置があることにより、ユーザーがアクセスすることを望む可能性のあるあらゆるコンピューティング装置のためのIPアドレスを記憶していることは、不可能でないとしても、困難である可能性がある。さらに、プロバイダがコンピューティング装置のネットワークアドレスを変更するか、またはコンピューティング装置の所有権を、異なるネットワークアドレスをコントロールする異なるプロバイダに移すようになる可能性は常にある。したがって、以前に知られていたネットワークアドレスにあるコンピューティング装置に、後にアクセスしようと試みると失敗する可能性があり、より最近のネットワークアドレスを容易に決定するための方法がない場合がある。
したがって、他の識別メカニズムはネットワークアドレスを、通常はより記憶しやすい英字の文字列として表現し、ネットワークアドレスからのあるレベルの抽象化を提供する。例えば、ドメインネームサービス(「DNS」)を使用して、IPアドレスを英字文字列(例えば、ドメインネームに対応する)として表現することができる。英字文字列が使用されてコンピューティング装置が識別されるとき、DNSは変換データベースをチェックして英字文字列を、コンピューティング装置のための対応するIPアドレスに変換する。さらに、新しいIPアドレスがコンピューティング装置に割り当てられるとき、変換データベースを更新して、以前に利用された、コンピューティング装置を識別する英字文字列が、新しいIPアドレスに対応するようにすることができる。このように、DNSはあるレベルの抽象化を提供し、この抽象化により、コンピューティング装置を表現する英字文字列を変更する必要なしに、コンピューティング装置のためのIPアドレスの変更が可能となる。したがって、プロバイダがコンピューティング装置のためのIPアドレスを変更する場合、同じ英字文字列をしばしば使用して、コンピューティング装置にアクセスすることができる。
しかし、コンピュータシステムを、いくつかの異なるサービスを同時に提供するように構成することができるので、DNSのみを使用することは、コンピューティング装置の特定のリソースを識別するために十分ではない場合がある。例えば、いくつかの環境では、DNSを単独の識別メカニズムとして使用することにより、同じウェブサーバによって提供された複数の異なるサービス(電子メール、探索機能性など)の間で区別することが困難になる可能性がある。すなわち、ウェブサーバを(例えば、ネットワークアドレスまたは英字文字列によって)識別することは、必ずしも、ウェブサーバによって提供された特定のサービスのいずれかの指示を提供するとは限らない。このように、ウェブサーバの電子メールサービスにアクセスするために、識別メカニズムは、電子メールサービスをウェブサーバの他のサービスから区別するためのある方法を必要とするようになる。
ユニフォームリソース識別子(「URI」)は、リソースをより正確に識別するために開発されている1つのメカニズムである。URIは、コンピューティング装置を識別するネットワークアドレスまたは英字文字列、ならびに、コンピューティング装置での特定のリソースを識別する追加の英数字文字列を含むことができる。ユニフォームリソースロケータ(「URL」)は、リソースを、それらのプライマリアクセスメカニクス(例えば、それらのネットワークロケーション)の表現を介して識別する、URIの部分集合を指す。ユニバーサルリソース名(「URN」)は、グローバルに一意のまま残ること、および、対応するリソースが存在することをやめるときにさえ持続することが必要とされる、URIの部分集合を指す。
URLは通常、インターネット上のリソースにアクセスするために使用される。例えば、URL「http://[ドメインネーム]/[英数字文字列]」を使用して、WWW上のコンピューティング装置での特定のリソースを識別することができる。URLはまた通常は、異なる(しばしば階層的)名前空間(namespace)を表現する、異なるスキームに細分される。例えば、インターネット上で使用された異なるスキームのいくつかには、ftp、http、gopher、mailto、newsおよびtelnetが含まれる。これらの各スキームは、それぞれ異なる対応する名前空間を表現する。これは、リソースの識別が異なる名前空間にわたる範囲とすることができ、および各スキームがその対応する名前空間内でリソースを識別するための異なる構文を有することができるので、有益である。例えば、httpの名前空間内でリソースを識別するための構文、および、ftpの名前空間内でリソースを識別するための構文は、異なる場合がある。
残念ながら、少なくとも部分的には、異なる構文を有する異なるスキームにより、複数の名前空間内からリソースにアクセスすることができるように、リソースへのアクセスを構成することは、不可能でない場合、しばしば困難である。すなわち、リソースをある名前空間からアクセス可能にすることは通常、そのリソースが他の名前空間からアクセス可能となることを妨げる。例えば、httpスキームは通常、ftpスキームを使用した識別のために構成されているリソースを識別する(およびftpを使用して転送する)ために、使用することはできない。すなわち、http://[ドメインネーム]/[英数字文字列]という形式のURLは通常、ftpの名前空間内でリソースを識別するために使用することはできない。
さらに、通常のリソース識別メカニズムは、問い合わせる能力が限られている。例えば、URIの1つの部分集合は、階層関係を表現するための共通構文を、指定された名前空間と共に共有する。この部分集合のURIは、<スキーム>://<オーソリティ><パス>?<クエリ>の形式を有することができ、ただし、クエリ部分は、<スキーム>://<オーソリティ><パス>でのリソースによって解釈されるべき情報の文字列である。これにより、クエリをリソースに発行して、例えば、リソース探索または発見機能を実行することなどが容易になる。
しかし、通常のリソース識別メカニズムは、URIを利用して、名前空間内に含まれたリソースについて名前空間を問い合わせるための機能性が、ある場合も、制限されている。いくつかの名前空間のためのURI構文はクエリ機能性を可能にするが、名前空間の階層内の最低レベル(例えば、リーフノード)のみである。この結果は、少なくとも部分的には、既存の名前空間のメカニズムが中間ノードをリソースとして見ないという事実から生じる。このように、例えば、指定された会社のためのウェブサイトを表現するURIなど、URIを公式化して、特定のエンドポイントでのテキストファイルについて問い合わせることができる。しかし、URIを公式化して、「.com」で終了するあらゆるドメインのみからのテキストファイルについて、同じ名前空間の階層を問い合わせることは、不可能でない場合も、困難となる。
さらに、既存の探索メカニズムは、大量のリソース情報がキャッシュされることを必要とする。例えば、大部分のインターネット探索エンジンは、新しいURLのために絶えずインターネットをスキャンし、URLをローカルでキャッシュする。探索(またはクエリ)が探索エンジンにサブミットされるとき、探索エンジンは、キャッシュされたURLを探索する。したがって、リソースのためのURLがキャッシュされないか、または、キャッシングの後にURLが変更となる場合、リソースのためのURLまたは正しいURLは、探索結果において戻されない場合がある。したがって、より効率的なおよび確かなリソースアクセスを容易にするシステム、方法、コンピュータプログラム製品は、有利であろう。
従来技術による前述の問題は、本発明の原理によって克服され、本発明は、より効率的なおよび確かなリソースアクセスを容易にするために、リソースをコレクションに編成するための方法、システムおよびコンピュータプログラム製品を対象とする。
いくつかの実施形態では、名前空間の登録要求は、名前空間のフェデレーションインフラストラクチャ(federation infrastructure)において転送される。名前空間の分岐(namespace branch)を登録するための名前空間の登録要求が受信され、名前空間の登録要求は、名前空間の分岐を識別する名前空間の文字列を含む。少なくとも一方向の同値の数値の識別値(at least one−way equivalent numeric identification value)は、例えば、ハッシュ値は、フラットURIスキームについては名前空間の文字列全体に基づいて、または、階層URLスキームについては名前空間の文字列の第1のパスセグメントまでの部分に基づいて、生成される。名前空間の登録要求は、他の名前空間の管理(namespace manager)の識別子よりも、少なくとも一方向の同値の数値の識別値に数量的に近い識別子を有する名前空間の管理へ、送信(および、潜在的にルーティング)される。名前空間の分岐は、名前空間の管理と結び付けられる。
他の実施形態では、名前空間の登録要求は、名前空間のフェデレーションインフラストラクチャ内で移行される。名前空間の管理がポリシー制約を満たしていることが決定される。ポリシー制約と結び付けられたポリシーアクションを満たすように移行されることが可能である名前空間の分岐が識別される。名前空間の分岐のための既存の登録は、ポリシーアクションに応答して、パートナーの名前空間の管理に移行される。
さらに他の実施形態では、名前空間の登録要求は、名前空間のフェデレーションインフラストラクチャ内で処理される。名前空間の分岐を登録するための名前空間の登録要求が受信される。名前空間の登録要求は、名前空間の分岐を識別する名前空間の文字列、および、名前空間の分岐内で登録を要求するプロバイダのための識別子を含む。名前空間の管理が名前空間の分岐に関心を有することが決定される。名前空間の文字列は、適切にインデックス付けされた名前空間の登録データベース内に保存される。登録要求発信元(例えば、名前空間のプロバイダ)の活性がどのような頻度で後に検証されるべきであるかが、さらに決定される。
さらなる実施形態では、名前空間の検索要求は、名前空間のフェデレーションインフラストラクチャ内で送信(および、潜在的にルーティング)される。名前空間の分岐を識別する名前空間の文字列を含む、名前空間の検索要求が受信される。少なくとも一方向の同値の数値の識別値、例えば、ハッシュ値が、フラットURIスキームについては名前空間の文字列全体に基づいて、または、階層URIスキームについては名前空間の文字列の第1のパスセグメントまでの部分に基づいて、生成される。名前空間の検索要求は、例えば近接性メトリックに従って、目的地の名前空間の管理に送信(および潜在的にルーティング)される。目的地の名前空間の管理は、少なくとも一方向の同値の数値の識別値に数量的に最も近い一意の識別子を有する名前空間の管理の予め定義された範囲内である、名前空間の管理の近傍のいずれか1つにすることができる。名前空間の検索要求は、名前空間の分岐に関心があるか、または名前空間の分岐を担うと表現している、対応する登録要求の発信元(例えば、名前空間のプロバイダ)への配信のために、転送される。
さらなる実施形態では、名前空間の検索要求は、名前空間のフェデレーションインフラストラクチャ内で移行される。名前空間の管理は、名前空間の分岐のための名前空間の検索要求を受信する。名前空間の管理は、名前空間の分岐を識別する一意の名前空間の識別子を含む。名前空間の管理のための名前空間の管理の一意識別子は、1つまたは複数の他の名前空間の管理に属する名前空間の管理の一意識別子よりも、生成された名前空間の分岐の一意識別子(例えば、少なくとも一方向の同値の数値の識別値)に近い。名前空間の分岐が、異なる名前空間の管理の一意識別子を有する異なる名前空間の管理に移行されているという指示が、検出される。
さらに他の実施形態では、名前空間の検索要求は、名前空間のフェデレーションインフラストラクチャ内で処理される。名前空間に属する名前空間の分岐を識別する名前空間の文字列を含む、名前空間の検索要求が受信される。名前空間の検索要求の名前空間の検索要求型が識別される。1つまたは複数のプロバイダが、名前空間の分岐に関係付けられた名前空間の部分について登録していることが検出される。名前空間の検索要求は、識別された名前空間の検索要求型に基づいて、少なくとも1つのプロバイダに転送される。
追加の実施形態では、リソースは名前空間のフェデレーションインフラストラクチャにおける複数の名前空間に参加する。リソースのための一意のリソース識別子が確立される。第1の名前空間において、リソースの有用性が発行される。一意のリソース識別子は、第1の名前空間を横断してリソースを識別するような第1の名前空間内で、既存の名前空間のノードリソースにリンクされる。第2の名前空間において、リソースの有用性が発行される。一意のリソース識別子は、第2の名前空間を横断してリソースを識別するような第2の名前空間において、既存の名前空間のノードリソースにリンクされる。
さらに追加の実施形態では、名前空間のフェデレーションインフラストラクチャにおけるリソースの部分集合が識別される。クエリが発信元から受信される。クエリは、第1のクエリ基準を満たすリソースの第1の部分を、名前空間の階層内の第1のレベルで識別する、第1のクエリ部分を含む。クエリは、リソースの第1の部分内に含まれたリソースの中から選択された、リソースの第2の部分を識別する、第2のクエリ部分を含む。リソースの第2の部分は、名前空間のフェデレーションインフラストラクチャ内の第2の異なるロケーションで識別される。リソースの第2の部分のアイデンティティは、発信者に戻される。
さらに追加の実施形態では、複数のリソースが編成される。リソースが1つまたは複数の名前空間内に含まれるべきであることが決定され、1つまたは複数の名前空間の各々は1つまたは複数のリソースを編成するように構成される。リソースに関係付けられるべきである、1つまたは複数の名前空間の第1の名前空間内の第1のリソースが識別される。第1の名前空間のセグメントが使用されて、リソースが第1のリソースにリンクされ、名前空間のセグメントが横断されて第1のリソースから名前空間内のリソースへナビゲート(navigate)することができるようにされる。
本発明のこれらおよび他の目的および特徴は、以下の説明および付属の特許請求の範囲からより十分に明らかになり、または、以下に示す本発明の実施によって学習することができる。
本発明の上記および他の利点および特徴をさらに明確にするため、本発明のより詳しい説明を、添付の図面に例示されるその特定の実施形態を参照することによって提供する。これらの図面は本発明の典型的な実施形態のみを示し、したがって、その範囲を限定するように考えられるべきではないことを理解されたい。本発明を、添付の図面の使用を通じて、追加の特定性および詳細と共に説明する。
本発明の原理は、より効率的なおよび確かなリソースアクセスを容易にするための、リソースのコレクションへの編成を提供する。いくつかの実施形態では、名前空間の登録要求は、名前空間のフェデレーションインフラストラクチャ内で転送される。名前空間の分岐を登録するための名前空間の登録要求が受信され、名前空間の登録要求は、名前空間の分岐を識別する名前空間の文字列を含む。少なくとも一方向の同値の数値の識別値、例えば、ハッシュ値が、フラットURIスキームについては名前空間の文字列全体に基づいて、または、階層URLスキームについては名前空間の文字列の第1のパスセグメントまでの部分に基づいて、生成される。名前空間の登録要求は、他の名前空間の管理の識別子よりも、少なくとも一方向の同値の数値の識別値に数量的に近い識別子を有する名前空間の管理へ、送信(および、潜在的にルーティング)される。名前空間の分岐は、名前空間の管理と結び付けられる。
他の実施形態では、名前空間の登録要求は、名前空間のフェデレーションインフラストラクチャ内で移行される。名前空間の管理がポリシー制約を満たしていることが決定される。ポリシー制約と結び付けられたポリシーアクションを満たすように移行されることが可能である名前空間の分岐が識別される。名前空間の分岐のための既存の登録は、ポリシーアクションに応答して、パートナーの名前空間の管理に移行される。
さらに他の実施形態では、名前空間の登録要求は、名前空間のフェデレーションインフラストラクチャ内で処理される。名前空間の分岐を登録するための名前空間の登録要求が受信される。名前空間の登録要求は、名前空間の分岐を識別する名前空間の文字列、および、名前空間の分岐内で登録を要求するプロバイダのための識別子を含む。名前空間の管理が名前空間の分岐に関心を有することが決定される。名前空間の文字列は、適切にインデックス付けされた名前空間の登録データベースに保存される。登録要求発信元(例えば、名前空間のプロバイダ)の活性がどのような頻度で後に検証されるべきであるかが、さらに決定される。
さらなる実施形態では、名前空間の検索要求が名前空間のフェデレーションインフラストラクチャ内で送信(および、潜在的にルーティング)される。名前空間の分岐を識別する名前空間の文字列を含む、名前空間の検索要求が受信される。少なくとも一方向の同値の数値の識別値、例えば、ハッシュ値が、フラットURIスキームについては名前空間の文字列全体に基づいて、または、階層URLスキームについては名前空間の文字列の第1のパスセグメントまでの部分に基づいて、生成される。名前空間の検索要求は、例えば近接性メトリックに従って、目的地の名前空間の管理に送信(および潜在的にルーティング)される。目的地の名前空間の管理は、少なくとも一方向の同値の数値の識別値に数量的に最も近い一意の識別子を有する名前空間の管理の予め定義された範囲内である、名前空間の管理の近傍のいずれか1つにすることができる。名前空間の検索要求は、名前空間の分岐に関心があるか、または名前空間の分岐を担うと表現している、対応する登録要求の発信元(例えば、名前空間のプロバイダ)への配信のために、転送される。
さらなる実施形態では、名前空間の検索要求は、名前空間のフェデレーションインフラストラクチャ内で移行される。名前空間の管理は、名前空間の分岐のための名前空間の検索要求を受信する。名前空間の管理は、名前空間の分岐を識別する一意の名前空間の識別子を含む。名前空間の管理のための名前空間の管理の一意識別子は、1つまたは複数の他の名前空間の管理に属する名前空間の管理の一意識別子よりも、生成された名前空間の分岐の一意識別子(例えば、少なくとも一方向の同値の数値の識別値)に近い。名前空間の分岐が、異なる名前空間の管理の一意識別子を有する異なる名前空間の管理に移行されているという指示が、検出される。
さらに他の実施形態では、名前空間の検索要求は、名前空間のフェデレーションインフラストラクチャ内で処理される。名前空間に属する名前空間の分岐を識別する名前空間の文字列を含む、名前空間の検索要求が受信される。名前空間の検索要求の名前空間の検索要求型が識別される。1つまたは複数のプロバイダが、名前空間の分岐に関係付けられた名前空間の部分について登録していることが検出される。名前空間の検索要求は、識別された名前空間の検索要求型に基づいて、少なくとも1つのプロバイダに転送される。
追加の実施形態では、リソースは、名前空間のフェデレーションインフラストラクチャにおける複数の名前空間に参加する。リソースのための一意のリソース識別子が確立される。第1の名前空間において、リソースの有用性が発行される。一意のリソース識別子は、第1の名前空間内で、既存の名前空間のノードリソースにリンクされ、第1の名前空間が横断されてリソースを識別することができるようにされる。第2の名前空間において、リソースの有用性が発行される。一意のリソース識別子は、第2の名前空間において、既存の名前空間のノードリソースにリンクされ、第2の名前空間が横断されてリソースを識別することができるようにされる。
さらに追加の実施形態では、名前空間のフェデレーションインフラストラクチャ内のリソースの部分集合が識別される。クエリが発信元から受信される。クエリは、第1のクエリ基準を満たすリソースの第1の部分を、名前空間の階層内の第1のレベルで識別する、第1のクエリ部分を含む。クエリは、リソースの第1の部分内に含まれたリソースの中から選択された、リソースの第2の部分を識別する、第2のクエリ部分を含む。リソースの第2の部分は、名前空間のフェデレーションインフラストラクチャ内の第2の異なるロケーションで識別される。リソースの第2の部分のアイデンティティは、発信者に戻される。
さらに追加の実施形態では、複数のリソースが編成される。リソースが1つまたは複数の名前空間内に含まれるべきであることが決定され、1つまたは複数の名前空間の各々は1つまたは複数のリソースを編成するように構成される。リソースに関係付けられるべきである、1つまたは複数の名前空間の第1の名前空間内の第1のリソースが識別される。第1の名前空間のセグメントが使用されて、リソースが第1のリソースにリンクされ、名前空間のセグメントが横断されて第1のリソースから名前空間内のリソースへナビゲートすることができるようにされる。
本発明の範囲内の実施形態には、格納されたコンピュータ実行可能命令またはデータ構造を搬送または有するためのコンピュータ読取り可能な媒体が含まれる。このようなコンピュータ読取り可能な媒体は、汎用または専用コンピュータシステムによってアクセス可能である、いかなる使用可能な媒体であってもよい。例として、限定ではなく、このようなコンピュータ読取り可能な媒体は、RAM、ROM、EPROM、CD−ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶媒体、またはコンピュータ実行可能な命令、コンピュータ読取可能な命令、もしくはデータ構造の形式を用いる所望のプログラムコードを搬送するまたは格納するために使用することができ、かつ汎用もしくは専用のコンピュータシステムによってアクセスすることができる他のあらゆる媒体などの物理的な記憶媒体を含むことができる。
本明細書および以下の特許請求の範囲では、「ネットワーク」は、コンピュータシステムおよび/またはモジュール(例えば、ハードウェアおよび/またはソフトウェアモジュール)の間の電子データの移送を可能にする、(場合によっては異なる速度の)1つまたは複数のデータリンクとして定義される。情報が、ネットワークまたは別の通信接続(ハードワイヤード、無線、または、ハードワイヤードもしくは無線の組合せ)を介して、コンピュータシステムに転送または提供されるとき、この接続は適切にコンピュータ読取り可能な媒体と見なされる。このように、いかなるこのような接続も適切にコンピュータ読取り可能な媒体と称される。上記の組合せもまた、コンピュータ読取り可能な媒体の範囲内に含まれるべきである。コンピュータ実行可能命令は、例えば、汎用コンピュータシステムまたは専用コンピュータシステムに、ある関数または関数のグループを実行させる、命令およびデータを備える。コンピュータ実行可能命令は、例えば、バイナリ、アセンブリ言語などの中間フォーマット命令、またはソースコードであってもよい。いくつかの実施形態では、例えば専用集積回路またはゲートアレイなどのハードウェアモジュールが、本発明の原理を実施するために最適化される。
本明細書および以下の特許請求の範囲では、「コンピュータシステム」は、共に働いて電子データにおいてオペレーションを実行する、1つまたは複数のソフトウェアモジュール、1つまたは複数のハードウェアモジュール、または、その組合せとして定義される。例えば、コンピュータシステムの定義には、パーソナルコンピュータのハードウェアコンポーネント、ならびに、パーソナルコンピュータのオペレーティングシステムなど、ソフトウェアモジュールが含まれる。これらのモジュールの物理的レイアウトは重要ではない。コンピュータシステムには、ネットワークを介して結合された1つまたは複数のコンピュータが含まれる可能性がある。同様に、コンピュータシステムには、単一の物理的装置(携帯電話、または携帯情報端末「PDA」など)が含まれる可能性があり、内部モジュール(メモリおよびプロセッサなど)は共に働いて、電子データにおいてオペレーションを実行する。さらに、コンピュータシステムには専用ハードウェアが含まれる可能性があり、このハードウェアは例えば、専用集積回路を含むルータなどである。
本発明を、多数の種類のコンピュータシステム構成を有するネットワークコンピューティング環境内で実施することができ、これらのコンピュータシステム構成には、パーソナルコンピュータ、ラップトップコンピュータ、ハンドへルド装置、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラマブルコンシューマエレクトロニクス、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、携帯電話、PDA、ページャ、ルータ、ゲートウェイ、ブローカ、プロキシ、ファイアウォール、リダイレクタ、ネットワークアドレストランスレータなどが含まれることは、当業者には理解されよう。本発明をまた、分散システム環境内で実施することもでき、この環境ではローカルおよびリモートコンピュータシステムがネットワークを通じてリンクされ(ハードワイヤードデータリンク、無線データリンクによって、または、ハードワイヤードおよび無線データリンクの組合せによって)、共にタスクを実行する。分散システム環境では、プログラムモジュールはローカルおよびリモートのメモリ記憶装置内に位置することができる。
本明細書および以下の特許請求の範囲では、「リソース」は、例えば、データを格納すること、データフォーマットを定義すること、ドキュメントを印刷することなど、指定された関数を満たすために利用することができる、いかなるモジュール、コンポーネント、オブジェクト、コンピュータシステム、装置、ファイル、データベース項目、スキーマ、サービスなどとしても定義される。リソースをサービスコンポーネントによって支援および/またはホストすることができる。例えば、ファイルリソースは、ファイルサーバを、ファイルにアクセスするためのサービスコンポーネントとして有することができる。同様に、会議室は、受付係のメールボックスを、会議をスケジューリングするためのサービスコンポーネントとして有することができる。実施されたリソースを、複数の他のリソースにわたって分散させることができる。
リソースはまた、例えば、名前空間内に含まれた名前空間のノードリソースを含むようにも定義され、名前空間のノードリソースは、例えば名前空間のセキュリティおよび管理機能などの名前空間の機能へのアクセスを容易にするか、または提供し、および/または、例えば別の名前空間のノードリソース、コンピュータシステムまたはコンピュータシステムコンポーネントなど、他のリソースにアクセスするために横断されることが可能である。いくつかの実施形態では、名前空間のノードリソースを分散方法で実施することができる。さらに、名前空間のノードリソースは、名前空間のツリー内で対応するノードを表現することができる。
本明細書および以下の特許請求の範囲では、「リソース記述子」は、リソースを記述するデータ構造(例えば、リソース記述子スキーマに従ってフォーマットされる)として定義される。
本明細書および特許請求の範囲では、「名前空間」は、それを介して解決、発見およびメッセージルーティングを実行することができる部分にリソース(例えば、インターネット上のすべてのリソース)を分割するための、範囲メカニズムとして定義される。名前空間は、新しいスコープ(scope)を定義することができ、個々のスコープを階層的にすることができるように、拡張可能である。
名前空間を森と見なすことができ、各名前空間(ツリー)は、スキームによりユニフォームリソース識別子(「URI」)として表現され、その直後の部分はルートとしての機能を果たす。URIスキームを階層的またはフラットにすることができる。「ネーム」および「http」などの階層スキームを(「uuid」などのフラットスキームとは対照的に)、スキーム名の後の「:/」文字シーケンスの存在によって識別することができる。階層スキームの第1の部分は、URIコンポーネントの残りを担う命名機関を識別することができる。このようなURIは、スキーム名の後の「://」文字シーケンスの存在によって識別される。名前空間を階層的にすることができ、ルーティング可能であり、これは、名前空間が、送信側から受信側への通信パスを識別するために使用することができる識別子としての機能を果たすという意味である。
いくつかの実施形態では、名前空間を以下のように定義することができる。
名前空間:=フラット|階層
フラット:=スキーム「:」不透明_部分
階層:=スキーム「:/」(「/」オーソリティ「/」)?セグメント(「/」セグメント)*
スキーム:=RFC−2396によってURI汎用構文において定義される
不透明_部分:=RFC−2396によってURI汎用構文において定義される
オーソリティ:=RFC−2396によってURI汎用構文において定義される
セグメント:=RFC−2396によってURI汎用構文において定義される
リソースを、ツリー中のいかなる分岐でも使用可能にすることができ、所与のリソースを複数の名前空間内で公開することができる。また、所与の名前空間は、単一のリソースまたは名前空間の分岐(リソースのグループ)を識別することができる。このようなグループ化を、名前空間のセマンティクスに応じて論理的または物理的にすることができる。グループは、深さ優先探索を、識別された名前空間の分岐において実行することによって、得られる。リソースのグループが識別された後、ある基準を満たすリソースを選択する、所与のメッセージをグループ内のもののみに送信する(および潜在的にルーティングする)など、多数のオペレーションをリソースのグループにおいて実行することができる。
単一のリソースをトリビアルコレクションと見なすことができる。したがって、あらゆるリソースにネーム(スペース)を割り当てることができる。名前空間はルーティング可能であるので、メッセージを、名前空間のフェデレーションインフラストラクチャを介して、ネームを有するいかなるリソースにもルーティングすることができる。このようなルーティングは信頼境界を横断し、ファイアウォールを横断することができる。
一般に、リソースに、そのリソースにアクセスするために使用することができる1つまたは複数のURIを割り当てることができる。リソースに割り当てられた、1つのURIであるリソースIDを、最低でも、所与の名前空間のフェデレーションインフラストラクチャによって実施されたすべての名前空間にわたって一意にして、このリソースを単独で参照できるようにすることができる。他の、潜在的に一意でないURIもまた、リソースに割り当てることができる。これらの他の、潜在的に一意でないURIは、所与の名前空間のフェデレーションインフラストラクチャによって実施された名前空間内で追加のロケーションを介して、リソースへのアクセスを提供する。リソースに、そのリソースにアクセスするために横断することができる各名前空間について、少なくとも1つの潜在的に一意でないURIを割り当てることができる。
図5は、プロバイダからの名前空間のフェデレーションインフラストラクチャおよび名前空間のコレクションビューの実施形態を例示する。名前空間のフェデレーションインフラストラクチャ500は、プロバイダを名前空間のツリー内のいかなる分岐で登録することもできることを示す。さらに、プロバイダを、潜在的には異なるツリー内の、複数の名前空間の分岐で登録することができる。例えば、プロバイダ501は、名前空間の分岐location:/CorporateBuildings/bldg34、location:/CorporateBuildings/bldg50/floor2、および、location:/CorporateBuildings/bldg50/floor1/room1304について登録される。プロバイダ502は、名前空間の分岐location:/CorporateBuildings/bldg50およびlocation:/CorporateBuildings/bldg26について登録される。プロバイダ503は、location:/CorporateBuildings/bldg50/floor1について登録される。
図5に示すように、アプリケーションは名前空間を、階層的にネストすることができるリソースの論理コレクションと見なすことができる。すなわち、中間の名前空間のノード(例えば、location:/CorporateBuildings/bldg50/floor1およびlocation:/CorporateBuildings/bldg50)はリソース、ネームノードリソースとして見なされる。アプリケーションは効率的にこのような論理コレクションにおいて、コヒーレントおよびスケーラブルな方法で動作することができ、これらの動作には、コレクションの内部からの発行、探索、位置決め、追跡、ターゲッティング、およびソーシングイベントが含まれる。論理コレクションの内部のすべてのリソースが必ずしも単一のコンピュータシステムまたは装置上に位置するとは限らないことに留意されたい。リソースを、多数のコンピュータシステムおよび装置にわたる空間および時間において分散させることができる。名前空間のフェデレーションインフラストラクチャは、いかなる所与のコレクションに参加するコンピュータシステムおよび装置への検索要求の効率的なルーティングをも処理し、それにより、一様で一貫性のあるビューをアプリケーションに提供する。
図6は、リソースが複数の名前空間内で使用可能にされた名前空間のフェデレーションインフラストラクチャの実施形態を例示する。URI Organization:/Productは、名前空間のツリー601のルートを識別する。同様に、URI Location:/Bldg42は、名前空間のツリー602のルートを識別する。図示のように、プリンタ603は、名前空間のツリー601および名前空間のツリー602の両方で公開される。
本明細書および以下の特許請求の範囲内では、名前空間のノードリソースを、単に名前空間のツリー内のノードと見なすことができる。いくつかの名前空間のノードリソースをルートノード(例えば、Location:/Bldg42)と見なすことができ、他の名前空間のノードリソースを中間ノード(例えば、Organization:/Product/Devices Team)と見なすことができ、他の名前空間のノードリソースをリーフノード(例えば、Location:/Bldg 42/Floor 1/Room 1226/Printer 603)と見なすことができる。しかし、ある名前空間のツリー内の名前空間のノードリソースは、別の名前空間のツリー内の名前空間のノードリソース(または他のリソース)を参照することができることを理解されたい。このように、名前空間のノードリソースをある名前空間のツリー内のルート、中間またはリーフと見なすことは、他の名前空間のツリーからのその名前空間のノードリソースのクエリを制限しない。
名前空間にはまた、2つ以上の名前空間のノードリソースをリンクさせる(または関係付ける)名前空間のセグメントも含まれる。名前空間のセグメントを利用して、同じ名前空間内の名前空間のノードリソースをリンクさせることができる。例えば、名前空間のセグメント611(「Devices」)は、Organization:/ProductをDevices Teamにリンクさせる。さらに、名前空間のセグメントは、異なる名前空間のツリー内の(他の方法で接続された)名前空間のノードリソースをリンクさせ、それによりシンボリックリンクの機能性を提供することができる。名前空間のセグメントを横断することには、すべてのターゲットの名前空間のノードリソースへのナビゲーションが含まれる。例えば、名前空間のセグメント641(「Project」)はPM TeamをファイルリソースSpecTemplate.docおよびMilestone.prjに接続する。
したがって、名前空間のセグメント611(「Devices」)、名前空間のセグメント621(「Dev」)、および名前空間のセグメント631(「Printer」)が名前空間のツリー601内で横断されて、プリンタ603を識別することが可能である。同様に、名前空間のセグメント612(「Floor 1」)、名前空間のセグメント622(「Room 1226」)、および名前空間のセグメント632(「Printer」)が名前空間のツリー602内で横断されて、プリンタ603を識別することが可能である。名前空間のツリー601のURIスキームおよび名前空間のツリー602のURIスキームは、異なる可能性があることを理解されたい。
同じリソースが複数の名前空間に参加することができるので、また、シンボリックリンク機能性の存在により、すべての名前空間およびそれらに参加するリソースのグローバルなビューは、有向グラフを形成し、名前空間のセグメントは、ラベル付きグラフのエッジとしての機能を果たし、名前空間のノードリソースおよび他のリソースは、グラフノードとしての機能を果たす。名前空間のルートは、効果的に、このグローバルなグラフにおける名前空間のノードリソースおよび他のリソースを、開始および到達可能リソースの集合に分割し、開始の名前空間のノードリソースは、名前空間の範囲のための基礎を提供する。したがって、クエリを実施するためのキャッシュされた情報が、減らされ、および各名前空間にわたって分散される。
また、いかなる所与の名前空間もグラフを形成することができ、これは同じリソースを複数の名前空間の分岐で使用可能にすることができ、いくつかのセグメントが他の方法で接続された名前空間のノードリソースを接続することができるからである。
図1は、名前空間のフェデレーションインフラストラクチャの実施形態を例示する。名前空間のフェデレーションインフラストラクチャ100には、異なる型のフェデレーティングパートナーシップを形成することができる、名前空間の管理101、102、103、111および112が含まれる。例えば、名前空間の管理101、102、103は、ルートの名前空間の管理なしに、互いの間でピア(peer)として連合される(federate)。他方では、名前空間の管理111および112は、名前空間の管理101および102と連合され、それぞれ名前空間の管理101および102は、ルートの名前空間の管理としての機能を果たす。異なる型の装置は名前空間のフェデレーションインフラストラクチャに参加することができ、これらの装置には、ホスト(例えば、リソースをホストするPC)、メッセージルータ、メッセージゲートウェイ(例えば、ファイアウォール、ネットワークアドレス変換(「NAT」ボックス)、およびリダイレクタ)、およびメッセージブローカ(例えば、発行/加入の(pub−sub)仲介)が含まれる。名前空間のフェデレーションインフラストラクチャ100は、バスプロトコル(例えば、活性、コントロール、イベンティングおよびストリーミング)を容易にする。さらに、名前空間のフェデレーションインフラストラクチャ100は、例えばWS−DiscoveryおよびWS−Eventingなど、関連したWSプロトコルを使用して、サードパーティソフトウェアおよびハードウェアスタックと相互運用することができる。
一般に、名前空間の管理101、102、103、111および112は、名前空間のフェデレーショプロトコルを利用して、パートナーシップを形成することができ、名前空間の情報を交換することができる。パートナーシップの形成および名前空間の情報の交換は、名前空間のリソースへのより効率的なおよび確かなアクセスを容易にする。ピアの名前空間の管理(例えば、名前空間の管理101、102および103)は、名前空間の情報を他のピアの名前空間の管理と交換することができる。しかし、他の名前空間の管理(例えば、名前空間の管理111および112)は、名前空間の情報を対応するルート名前空間の管理(例えば、名前空間の管理101および102)と交換することができる。名前空間の管理101、102、103、111および112の各々は、名前空間の情報のデータベースを維持することができ、この情報は例えば、何の名前空間の管理またはプロバイダがどの名前空間の分岐に関心を有するかなどである。
名前空間のフェデレーションインフラストラクチャ100は、プロバイダ121、122、123、124、126および127を含む。各プロバイダは、名前空間のフェデレーションインフラストラクチャ内の1つまたは複数の名前空間の分岐に関心を有する可能性がある。プロバイダは名前空間の情報を、対応する名前空間の管理と交換する。例えば、プロバイダ122は名前空間の情報を、名前空間の管理111と交換する。対応する名前空間の管理は次いで、名前空間の情報を他の名前空間の管理に転送することを容易にする。例えば、名前空間の管理111は名前空間の情報を名前空間の管理101に転送することができ、名前空間の管理101は名前空間の情報の関連部分を名前空間の管理102および103に転送することができる。
名前空間のフェデレーションインフラストラクチャ(例えば、名前空間のフェデレーションインフラストラクチャ100)は、名前空間を介して検索要求を適切なプロバイダに分散させることを容易にする。例えば、プロバイダ501、502および503がプロバイダ121、122、123、124、126または127のうちの各々のひとつであることがある。
名前空間の管理を、様々な異なるメカニズムを使用して連合させることができる。第1のフェデレーティングメカニズムは、ピアの名前空間の管理が名前空間の情報をすべての他のピアの名前空間の管理に転送することを含む。名前空間の管理が名前空間のフェデレーションインフラストラクチャに結合するようになるとき、名前空間の管理は、例えばWS−Discoveryなどのブロードキャスト/マルチキャスト発見プロトコルを利用して、その存在をアナウンスし(ブロードキャスト/マルチキャストHello)、ブロードキャスト/マルチキャストProbeを発行して、他の名前空間の管理を検出する。次いで、名前空間の管理は、すでにネットワーク上に存在する他の名前空間の管理との単純な転送パートナーシップを確立し、新たに結合する名前空間の管理との新しいパートナーシップを受け入れる。その後、名前空間の管理はあらゆる名前空間の要求をそのパートナーに転送することができる。
第2のフェデレーティングメカニズムは、ピアの名前空間の管理がすべての名前空間の情報を他のピアの名前空間の管理に効率的に転送することを含む。新しい名前空間の管理が名前空間のフェデレーションインフラストラクチャに結合するようになるとき、新しい名前空間の管理は、例えばWS−Discoveryなどのブロードキャスト/マルチキャスト発見プロトコルを利用して、その存在をアナウンスし(ブロードキャスト/マルチキャストHello)、ブロードキャスト/マルチキャストProbeを発行して、名前空間のフェデレーションインフラストラクチャの一部である他の名前空間の管理を検出する。別の名前空間の管理を検出した上で、新しい名前空間の管理は、他の名前空間の管理とのパートナーシップを確立する。確立されたパートナーシップから、新しい名前空間の管理は、すでに名前空間のフェデレーションインフラストラクチャに参加している他の名前空間の管理の存在について学習する。新しい名前空間の管理は次いで、これらの新たに学習された名前空間の管理とのパートナーシップを確立し、いかなる新着のパートナーシップ要求をも受け入れる。
名前空間の管理の到着/出発および名前空間の登録の両方は、名前空間のフェデレーションインフラストラクチャを通じてフラッディングされ、あらゆる名前空間の管理が他の名前空間の管理および名前空間の登録のグローバルな知識を有する結果となる。このようなグローバルな知識により、いかなる名前空間の管理も、検索要求を、要求内で指定された名前空間の分岐の下で登録されたプロバイダ/サブスクライバを有するパートナーのみに、転送することができる。
第3のフェデレーティングメカニズムは、ピアの名前空間の管理が名前空間の情報を他のピアの名前空間の管理に間接的に転送することを含む。第3のメカニズムでは、名前空間の管理に、例えば128ビットまたは160ビットIDなど、一意の識別子(ID)が割り当てられる。所与の名前空間のツリーを担う名前空間の管理は、例えば、所与の名前空間のツリーをハッシングするなど、少なくとも一方向の写像関数によって得られたものに最も近いIDを有するものになるように決定される。名前空間のためのこのようなハッシングベースの写像スキームを、以下でさらに詳細に説明する。
この第3のメカニズムでは、名前空間の管理の到着および出発は、ファブリックを介してフラッディングされる。他方では、名前空間の登録は、要求内で指定された名前空間の分岐を担うように決定された名前空間の管理に転送される。スケーラビリティ、負荷分散およびフォールトトレランスのために、名前空間の登録を受信する名前空間の管理は、これらの登録を、その近傍集合内であるこれらの名前空間の管理の間で、信頼可能にフラッディングすることができる。指定された名前空間の管理のための近傍集合は、有限モジュロIDアドレススペース内の指定された名前空間の管理のIDの両側において予め定義された範囲内のIDを有する、名前空間の管理の集合であるように決定される。
メカニズム2と同様に、新たに結合する名前空間の管理は、例えばWS−Discoveryなどのブロードキャスト/マルチキャスト発見プロトコルを利用して、その存在をアナウンスし(ブロードキャスト/マルチキャストHello)、ブロードキャスト/マルチキャストProbeを発行して、すでに名前空間のフェデレーションインフラストラクチャの一部である名前空間の管理を検出する。新しい名前空間の管理は、発見された名前空間の管理とのパートナーシップを確立し、そのパートナーシップを使用して、名前空間のフェデレーションインフラストラクチャに参加している他の名前空間の管理の存在について学習する。新しい名前空間の管理は次いで、新たに発見された名前空間の管理とのさらなるパートナーシップを確立し、いかなる新着のパートナーシップ要求をも受け入れる。新しい名前空間の管理は、それが担う名前空間の分岐の下でそのパートナーから入ってくる名前空間の登録を受け入れ、これらの名前空間の登録を、その近傍集合を介してフラッディングすることができる。
入ってくる検索要求に応答して、新しい名前空間の管理はその登録データベースを調べ、これらの要求を、要求内で指定された名前空間の分岐の下で登録されたプロバイダ/サブスクライバを有する名前空間の管理に転送する。したがって、この第3のメカニズムを使用するとき、名前空間のフェデレーションインフラストラクチャ内のあらゆる名前空間の管理は、すべての他の名前空間の管理のグローバルな知識を有するが、登録情報は名前空間の管理の間で効率的に分割される。名前空間の管理はこのように検索要求を、要求内で指定された名前空間の分岐の下で登録されたプロバイダ/サブスクライバを有するパートナーのみに、間接的に転送する。この間接化は、要求内で指定された名前空間の分岐の下の名前空間の登録のグローバルな知識を有する名前空間の管理を介して、実施される。
第4のフェデレーティングメカニズムは、ピアの名前空間の管理が名前空間の情報を他のピアの名前空間の管理に間接的にルーティングすることを含む。この第4のメカニズムは、名前空間の管理の到着/出発および名前空間の登録/検索要求の両方が、フラッディングされるのではなくすべてルーティングされるという意味で、第3のメカニズムとは異なる。ルーティングプロトコルは、名前空間の検索要求と名前空間の登録要求との間の集合を保証するように設計される。
図2は、要求を間接的にパートナーにルーティングすることを容易にするコンピュータアーキテクチャの実施形態を例示する。コンピュータアーキテクチャ200は、名前空間のフェデレーションインフラストラクチャに参加する複数のローカルに発見するスコープにわたって潜在的に広がった、異なる型のコンピュータシステムおよび装置を示す。
ワークステーション233は、location:/architecture200/scope221/Devicesの名前空間の分岐の下で対応する名前空間の管理に登録する、PnPプロバイダインスタンスを含むことができる。そのパートナーに、このPnPプロバイダインスタンスの存在を通知するために、ワークステーション233は名前空間の登録要求201を、名前空間のフェデレーションインフラストラクチャを介してルーティングする。名前空間の登録要求201は最初にラップトップ231に転送され、ラップトップ231は名前空間の登録要求201をメッセージブローカ237に転送し、メッセージブローカ237は名前空間の登録要求201をメッセージゲートウェイ241に転送する。メッセージゲートウェイ241は登録情報登録要求201をそのデータベース内に保存し、成功メッセージ204をワークステーション233に戻す。
続いて、別のプロバイダインスタンス、今回は実行中のサービスのものが、ワークステーション233内で活動化し、それ自体を、location:/architecture200/scope221/Servicesの名前空間の分岐の下で対応する名前空間の管理に登録する。今回は、名前空間の管理は、メッセージゲートウェイ241がlocation:/architecture200の下の登録を担うことを認識し、登録要求205をメッセージゲートウェイ241に直接転送する。メッセージゲートウェイ241は登録情報登録要求205をそのデータベース内に保存し、成功メッセージ206をワークステーション233に戻す。
続いて、プリンタ236(例えば、UPnPプリンタ)が電源を入れられ、アナウンスメント207を送信する。サーバ234はアナウンスメント207を検出し、名前空間のlocation:/architecture200/scope224/Devicesをプリンタ236に割り当て、登録要求208をメッセージブローカ237にルーティングする。メッセージブローカ237は登録要求208をメッセージゲートウェイ241に転送する。メッセージゲートウェイ241は登録情報登録要求208をそのデータベース内に保存し、成功メッセージ210をサーバ234に戻す。
続いて、パーソナルコンピュータ242は発見要求211を発行して、名前空間の分岐location:/architecture200の下のすべての装置を発見する。パーソナルコンピュータ242は、どこに発見要求211を転送するべきであるかを知らないので、発見要求211を、ワークステーション243を通じてルーティングする。ルーティングプロトコルは本質的に、所与の名前空間のツリーのための登録および検索要求の間の集合を保証するので、ワークステーション243は発見要求211をメッセージゲートウェイ241に転送する。メッセージゲートウェイ241は発見要求211を、ワークステーション233およびサーバ234に転送する。ワークステーション233およびサーバ234は、応答メッセージ214および216をそれぞれパーソナルコンピュータ242に送信する。
この第4のメカニズムは、要求内で指定された名前空間の分岐(例えば、location:/architecture200)の下の名前空間の登録のグローバルな知識を有する名前空間の管理(メッセージゲートウェイ241)に、要求をルーティングすることによって機能する。この第4のメカニズムは本質的に、ルーティングをO(log N)個のホップで実施することができることを保証し、ただし、Nは、名前空間のフェデレーションインフラストラクチャに参加する名前空間の管理の数である。この第4のメカニズムは名前空間の登録情報を効率的に分割し、すべての参加中の名前空間の管理のグローバルな知識を要求しないので、大変大きいネットワーク、インターネットにもスケールする。
図3は、名前空間のフェデレーションインフラストラクチャ内の複数の名前空間の管理の間の2項関係の実施形態を例示する。図3に示す2項関係は、名前空間の管理の間でより効率的なルーティングを実施するために利用することができる、1つの関係である。名前空間のフェデレーションインフラストラクチャに参加する名前空間の管理は、再帰的、反対称的、推移的、全体的である2項関係を使用してソートされたリストとして編成され、および名前空間の管理のアイデンティティに属する領域で定義される。ソートされたリストの両端が結合され、それによりリング306が形成される。これにより、ソートされたリスト内の各名前空間の管理がそれ自体を、ソートされたリストの中心にあると見なすことが可能となる。ソートされたリストを二重連結にして、いかなる名前空間の管理もこのソートされたリストを両方向で横断することができるようにすることができる。さらに、名前空間の管理のアイデンティティに属する値領域(例えば、2、50または151)から名前空間の管理自体への1対1写像がある。この写像は、写像が緊密(tight)ではない場合の値領域における名前空間の管理の希薄性(sparseness)を明らかにする。
リング306上の各名前空間の管理はルーティングテーブルを含むことができ、ルーティングテーブルは、名前空間の情報(例えば、登録および検索要求)を他の名前空間の管理にルーティングすることを容易にする。ID64を有する名前空間の管理のための実施形態のルーティングテーブルを、図3に示す。このルーティングテーブルは、ID64の後続がID76であることを指示する。後続は、リング306上でID64から時計回り方向にすぐ隣接した名前空間の管理内であることが可能である。後続は、例えば、新しい名前空間の管理(例えば、71のIDを有するもの)が結合するか、または既存の名前空間の管理(例えば、ID76)が名前空間のフェデレーションインフラストラクチャを離れるとき、変更になる可能性がある。
このルーティングテーブルは、ID64の先行がID50であることを指示する。先行は、リング306上でID64から反時計回り方向にすぐ隣接した名前空間の管理であることが可能である。先行は、例えば、新しい名前空間の管理(例えば、59のIDを有するもの)が結合するか、または既存の名前空間の管理(例えば、ID50)が名前空間のフェデレーションインフラストラクチャを離れるとき、変更になる可能性がある。
このルーティングテーブルは、ID64の近傍のものがID83、76、50および46であることを指示する。近傍のものを、2つの係数であるサイズおよび範囲のうち大きい方を使用して識別することができる。名前空間の管理は、対応するIDが(例えば、リング306の時計周りまたは反時計回り方向で)対象IDの最小範囲内であるか、または、ある構成された最小近傍未満のサイズが近傍内にすでに存在するとき、近傍のメンバとして識別される。例えば、リング306上で、指定された範囲は、20の大きさを有することができ、このサイズは4より大きいことが可能である。したがって、時計回り(+10)および反時計回り(−10)方向でID64の20ロケーション以内のIDは、ID64の近傍のものである。近傍のものは例えば、名前空間の管理が名前空間のフェデレーションインフラストラクチャに結合するか、もしくはこれを離れるとき、または、指定された範囲が変更されるとき、変更になる可能性がある。例えば、4に等しいサイズでは、ID48を有する新しい名前空間の管理は、ID46を有する名前空間の管理に取って代わることができる。
このルーティングテーブルは、ID64が直接ID200、2、30、46、50、64、76、83、98および135にルーティングすることができることを指示する。したがって、ID64を有する名前空間の管理が要求を受信する場合、名前空間の管理は、要求における名前空間の管理のIDにより近いIDをルーティングテーブルに有する名前空間の管理に、要求をルーティングすることができる。
図4は、名前空間のフェデレーションインフラストラクチャを他のプロトコルと統合することを容易にするアーキテクチャの実施形態を例示する。名前空間のフェデレーションインフラストラクチャは、プロバイダベースの拡張モデルをサポートすることができる。したがって、既存のプロトコルのリソースモデルが名前空間のリソースモデルとの互換性を有するとすれば、名前空間のフェデレーションインフラストラクチャを既存のプロトコルと統合することができる。アーキテクチャ400は、名前空間の管理401、404、406(例えば、名前空間のフェデレーションインフラストラクチャのもの)が、アクティブディレクトリ402およびUDDIサーバ403と相互運用することを示す。この実線の矢印は、名前空間の管理が名前空間のフェデレーションプロトコル(federation protocol)を使用して通信することを示し、破線のエリアは、名前空間の管理がアクティブディレクトリ402と、LDAPプロトコルを使用して通信することを示し、点線の矢印は、名前空間の管理がUDDIサーバ403と、UDDIプロトコルを使用して通信することを示す。
発行/加入のトピックは、名前空間のもう1つの使用例である。発行/加入のトピックを、そのトピックへのサブスクライバのコレクションと見なすことができ、したがって、トピック名は名前空間として扱われる。発行/加入のトピックを名前空間として扱う利点は、名前空間のフェデレーションインフラストラクチャを使用して、通知メッセージをパブリッシャからサブスクライバへルーティングすることができることである。トピックへのサブスクリプションを、名前空間の登録要求と見なすことができ、トピックへの発行を、名前空間の検索要求と見なすことができる。
いくつかの実施形態では、名前空間のフェデレーションインフラストラクチャは、バスのような抽象化をプログラマに、分散アプリケーションを開発するために提供することができる。例えば、名前空間のフェデレーションインフラストラクチャは活性、すなわち、アプリケーションが関心を有するリソースがネットワークから落ちているときを知るためにアプリケーションが使用するメカニズムを、抽象化することができる。所与のリソースを追跡するために、そのリソースのアイデンティティのURI(すなわち、その名前)にちなんで名付けられた発行/加入のトピックに送信された通知に、アプリケーションを加入させる。所与のリソースがネットワークから落ちていることに気付くいかなるコンポーネント(例えば、アプリケーション)も、活性通知メッセージを、そのリソースのアイデンティティのURIにちなんで名付けられたトピックに発行し、それにより、リソースの追跡に関心を有する他のアプリケーションに通知することができる。発行/加入のサブスクリプションは、名前空間のインフラストラクチャにわたって連合されるので、また、多数のアイデンティティのスキームは階層的である(リソースの包含の性質を活性の観点から取り込むため)ので、システムは、単純な検出システムのnピンギング問題を回避し、大変よくスケールする。さらに、コンポーネント(例えば、アプリケーション)が所与のリソースにより関心を有するほど、そのリソースがネットワークから落ちていることに何物かが気付くことがより速くなり、有利である。
開発者は名前空間のフェデレーションインフラストラクチャを、その中にファイルなどのリソースおよびイベントソースが登録されるクラウドとして見なすことができる。アプリケーションは発見要求をクラウドに対して発行して、登録されたリソースを発見することができる。アプリケーションはまたクラウドに、それらに代わって現在および将来の、クラウドに登録するイベントソースに加入させることを、要求することもできる。さらに、アプリケーションは、クラウド内で維持された発行/加入のトピックに加入させることができる。いかなるものも通知メッセージを発行することができ、クラウドはこのメッセージを、そのメッセージが発行されたイベントトピックのサブスクライバに転送することを処理する。
様々な型のリソースを名前空間内で発行することができ、これらのリソースには、サービス、装置、ファイル、ホスト、コンポーネント、データベース内の項目、メタデータについてのメタデータ(スキーマ)などが含まれる。リソースは、それをホスト/支援するサービスコンポーネントを有することができる。例えば、ファイルリソースはファイルサーバを、ファイルにアクセスするためのサービスコンポーネントとして有することができる。会議室は、受付係のメールボックスを、会議をスケジューリングするためのサービスコンポーネントとして有することができる。
各リソースは、その記述的アスペクトを取り込むリソース記述子と結び付けられることが可能である。したがって、リソース記述子を問い合わせて、関心のあるリソースを識別することができる。リソースが識別されるとき、リソースに、リソースの対応するサービスアスペクトを通じてアクセスすることができる。リソースをホスト/支援するサービスに送信することができるメッセージの型は、リソース型によって変わる。例えば、ファイルサーバは、ファイルリソースを開くことをサポートし、受付係は、会議室のためのスケジューリング要求を受け入れる。
リソース記述子を実施するためのデータモデルは、バージョン可能、拡張可能および相互運用可能にすることができる。このようなリソースデータモデルを、分散ファイルシステム(「DFS」)、ADおよびUDDIなど、現在のフレームワークの多数にわたって共有することができる。このような単一の共有データモデルは、ADオブジェクトおよびDFSファイル(または、他のリソース管理システムからのリソース)がリソースとして見なされ、名前空間の手法を使用して連合されること、および、それらをホストするサービスにメッセージを送信することによってそれらがアクセスされることを、容易にすることができる。
したがって、リソースを、以下のプロパティを有するように定義することができる。
リソースID:オプションで参照プロパティの集合により増補することができ、空間および時間において安定することができるURI。リソース参照スキーマのインスタンスとして表現することができる。リソースIDは、リソースプロパティと共に、集合的にリソースのアイデンティティを表現することができる。
記述子:リソースについての半静的なメタデータを含む、リソース特有のスキーマインスタンス。このメタデータは、リソース選択のために有用である。リソース記述子スキーマを分類化することができる。
Config番号:リソース記述データの特定のバージョンを識別する、単調増加数。この数は、リソース記述が修正されるときは常に増分される。
インスタンスID:アクティブリソースの特定のインスタンスを識別する、単調増加数。例えば、これは、サービス/装置リソースのためのブート時間またはファイルリソースのためのファイル修正時間と同じにすることができる。
さらに記述子に関して、装置は、1つまたは複数のスキーマに従ってメタデータを有することができる。例えば、プリンタは、プリンタの異なるアスペクトを記述する、異なるスキーマに従ってメタデータを有することができる。リソース記述子スキーマを、UPnPフォーラムワーキンググループ(例えば、プリンタスキーマを、UPnPプリンタワーキンググループによって標準化することができる)およびW3Cなどの組織によって、標準化することができる。図13は、リソースを記述するため分類法の実施形態を示す。分類法1300内では、異なるスキーマは全体的に以下のように表現される。
サービス参照スキーマ:リソース参照スキーマを拡張し、リソースによってサポートされたメッセージを識別するビヘイビア型のリスト、そのアサーションのためのポリシーコンテナ(サポートされたトランスポートなど)、および拡張集合を指定する。
リソース記述子スキーマ:リソース参照スキーマを拡張し、記述子の構成番号(説明については以下を参照)、リソースのフレンドリ名、リソースを支援するサービスのサービス参照、および拡張集合を指定する。
名前空間のノード記述子スキーマ:リソース記述子スキーマを拡張し、それから到達可能なリソースを、エッジ記述子スキーマのインスタンスとして指定する。
エッジ記述子スキーマ:ローカルの範囲のエッジ名、エッジ型およびターゲットリソースを指定する。
装置記述子スキーマ:リソース記述子スキーマを拡張し、シリアル番号およびメーカー名を指定する。
プリンタ記述子スキーマ:装置記述子スキーマを拡張し、解像度、カラー印刷能力、毎分のページ数、およびサポートされた用紙サイズなど、プリンタ特有のプロパティを指定する。
上記の記述スキーマのいずれにおいて定義された情報のいずれも、名前空間のフェデレーションインフラストラクチャ内のリソースを識別するためのクエリに含めることができる。例えば、記述子データを探索し、フィルタ(またはクエリ)式を使用してナビゲートすることができる。例えば、記述子スキーマの型またはフィールド値によってフィルタすることができ、その参照フィールドから到達可能なインスタンスへナビゲートすることができ、サブフィルタをそれらに適用することなどができる。いくつかの実施形態では、XPathベースのフィルタ式が使用される。図6に戻って参照すると、XPath構文を使用して、リソース記述スキーマによって指定された記述データ上で動作するフィルタ式を使用して、カラーで印刷することができるLocation:/Bldg42/Floor1内のプリンタを探し出すことができる。
名前空間は、選択および横断に対して、名前空間のノードリソース上で定義されたフィールド/属性について、URIセグメントパラメータの形式で、フィルタ式を指定することができる。例えば、名前空間のLocation:/Bldg42/Floor1/Room1226;employee="employee1"/printerは、「Room 1226」の記述子が値「employee1」を有する「employee」フィールドを有する場合にのみ、名前空間のノードリソース「Room 1226」を横断するようになる。同様に、名前空間のOrganization:/Product/DevicesTeam;building="Bldg33"/Dev/Computer604;printer="color"は、その記述子が値「Bldg33」を有する「building」フィールドを有する(したがって、リソースの第1の部分を識別する)場合にのみ、名前空間のノードリソース「Devices Team」を横断するようになり、その記述子が値「color」を有する「printer」フィールドを有する(カラープリンタがそれに接続されていることを識別するように意味される)場合にのみ、名前空間のノードリソース「Computer 604」を選択するようになる。
前述のように、名前空間の管理に、例えば160ビットIDなど、一意の数値識別子を割り当てることができる。いくつかの実施形態では。一意の識別子は、例えば、ドメインネームサービス(「DNS」)名、ロケーション、デパートメントなど、1つまたは複数の名前空間の管理の特性をハッシュすることから、生成される。例えばSHAなど、様々な異なるハッシング関数のいずれかを使用して、一意のIDを生成することができる。
一意の名前空間の管理のIDを利用すると、以下の関数は、名前空間のフェデレーションインフラストラクチャにおいて名前空間の情報のルーティングを提供することができる。
RouteNumerically(V,Msg):名前空間の管理のアイデンティティに属する値領域からの値V、およびメッセージ「Msg」が与えられると、メッセージを、写像関数を使用してVに写すことができるアイデンティティを有する名前空間の管理Xに配信する。
Neighborhood(X,S):Neighborhoodは、Sに等しいカーディナリティを有する名前空間の管理X(例えば、リング306上)のどちらか一方の側上の名前空間の管理の集合である。
さらに、本発明の実施形態は、フェデレーションに参加する名前空間の管理に属する近接性基準を利用することもできる。近接性基準を、連合する名前空間の管理に属する集合をクラス(または分割)の互いに素な集合に分割する、同値関係として定義することができる。一般に、集合S上の関係Rは、以下の特性を満たす場合、同値関係である。
・ 再帰的:Sの要素に属するx→xRx
・ 対称的:Sの要素x、yが与えられると、xRy→yRx
・ 推移的:Sの要素x、y、zが与えられると、xRy∧yRz→xRz
本発明の実施形態は複数の異なる近接性基準をサポートすることができ、近接性基準を、半順序で配列することができる。例えば、「Corporation 1」に属するすべての名前空間のノードリソースが近接的に近いと見なす基準は、「Corporation 1,Location A」内のすべての名前空間の管理が近接的に近いと見なす基準より上位である。これは、前者の基準(「Corporation 1」に属すること)によって近接的に近いと見なされた名前空間の管理の集合が、後者の基準(「Corporation 1,Location A」に属すること)によって近接的に近いと見なされた名前空間の管理の集合の上位集合であることに起因する。他方では、「Corporation 1」内のすべての名前空間の管理を近接的に近いと見なす基準と、「Corporation 1,Location A」内のすべての名前空間の管理を近接的に近いと見なす基準の間に、順序関係はない。
フェデレーション内の各名前空間の管理のためのルーティングの名前空間の管理を計算するときに、近接性の検討事項を考慮に入れることにより、最終目的地へのパス上の各ルーティングホップが、要求を発信した名前空間の管理の近接内に残る可能性が高まる結果となる。さらに、数値空間内の名前空間の管理の間の距離を埋めることを、なお著しく進展させることができる。
一意のIDを近接性基準と共に利用して、以下の追加の関数は、名前空間のフェデレーションインフラストラクチャにおいて名前空間の情報のルーティングを提供することができる。
RouteProximally(V,Msg,P):名前空間の管理のアイデンティティに属する領域からの値V、およびメッセージ「Msg」が与えられると、メッセージを、近接性基準Pによって等価と見なされる名前空間の管理の間で、Vに写すことができるアイデンティティを有する名前空間の管理Yに配信する。
プロバイダ/サブスクライバが、名前空間の分岐で名前空間の管理に登録するとき、登録要求が、登録要求内で指定された名前空間のツリーのための登録情報を維持することを担うパートナーの名前空間の管理に送信(および潜在的にルーティング)される。あるいはまた、名前空間の登録要求をファブリックへ発信する名前空間の管理は、責任のある名前空間の管理であることがある。方法710を、図1の名前空間のフェデレーションインフラストラクチャおよび図6の名前空間に関して説明する。
方法710は、名前空間の分岐を登録するための名前空間の登録要求を受信する動作を含み、名前空間の登録要求は、名前空間の分岐を識別する名前空間の識別子を含む(動作711)。例えば、名前空間の管理112は、名前空間のID142を含む登録要求132を、プロバイダ131から受信することができる。名前空間の管理112はピアの名前空間の管理ではないので、名前空間の管理112は登録要求132を名前空間の管理102に転送することができる。名前空間の管理112は名前空間のID142を、名前空間のフェデレーションインフラストラクチャ100を介して登録要求132を転送する前に、そのスキームによって識別されたルールによって、正規化することができる。
方法710は、少なくとも一方向の同値の識別値を、名前空間の識別子のパス部分の少なくとも一部と共に、名前空間の識別子のスキーム部分に基づいて、生成する動作を含む(動作712)。例えば、名前空間の管理102はハッシュ152を、名前空間のID142のパス部分の少なくとも一部と共に、名前空間のID142のスキーム部分に基づいて、生成することができる。例えばSHAなど、様々な異なるハッシング関数のいずれかを使用して、ハッシュ値を名前空間の文字列の部分から生成することができる。名前空間の文字列のためのハッシュ値の生成は、名前空間のフェデレーションインフラストラクチャの構成に基づいて変わる可能性がある。
「uuid」など非階層の名前空間のスキーム(例えば、スキームの後の「:/」の文字シーケンスの欠如によって識別される)では、ハッシュを、名前空間の全体上で生成することができる。例えば、名前空間の文字列「uuid:a36fab9c−9c7f−42c3−97d8−36cd57e9bd29」全体を使用して、SHAハッシュ値を生成することができる。
階層の名前空間を、権限のある、または権限のないものにすることができ、これら2つは、例えば、スキームコンポーネントの後に続く各文字シーケンス「://」および「:/」によって区別される。「name」など、権限のある名前空間では、ハッシュはスキーム部分上で生成され、その後に「://」文字シーケンス、オーソリティコンポーネント、および名前空間の最初のパスコンポーネントが続く。例えば、名前空間の文字列「name://red.prn.xrx:200/Printers/b42−1749−a」の一部「name://red.prn.xrx:200/Printers」を使用して、SHAハッシュ値を生成することができる。図6の「location」スキームなど、権限のない名前空間では、ハッシュはスキーム部分上で生成され、その後に「:/」文字シーケンス、および名前空間の最初のパスコンポーネントが続く。例えば、名前空間の文字列「location:/Bldg42/Floor1/Room1226」の一部「location:/Bldg42」を使用して、SHAハッシュ値を生成することができる。
方法710は、名前空間の登録要求を、他の名前空間の管理の識別子よりも少なくとも一方向の同値の数値の識別値に数量的に近い識別子を有する、名前空間の管理に送信する動作を含む(動作713)。例えば、名前空間の管理102は、RouteNumerically関数を呼び出し、ハッシュ152および登録メッセージ132を入力として、例えばRouteNumerically関数(ハッシュ152、登録メッセージ132)を供給することができる。代替として、RouteProximally関数を使用することができる。いくつかの実施形態では、名前空間の登録要求が直接送信され、ルーティングは発生しない。
名前空間のフェデレーションインフラストラクチャ100は次いで、フェデレーションプロトコルを利用して、登録メッセージを適切な名前空間の管理に転送する。例えば、登録メッセージ132を名前空間の管理103にルーティングすることができる。名前空間の管理103は、名前空間の分岐に対する責任を別の名前空間の管理に移行していることがある。したがって、名前空間の管理103は、委託メッセージを名前空間の管理102に戻すことができる。したがって、名前空間の分岐に対する責任が委託されているとき、名前空間の管理102は、適切な名前空間の管理を指定する委託メッセージを受信することができる。名前空間の管理102は、登録要求132を適切な名前空間の管理に送信することができる。名前空間の管理が登録要求を受け入れるかあるいは拒否するまで、1つまたは複数の委託に遭遇する可能性がある。
方法710は、名前空間の管理と名前空間の分岐とを結び付ける動作を含む(動作714)。例えば、名前空間の管理103を、(プロバイダ131を介して)名前空間のID142によって識別された名前空間の分岐と結び付けることができる。名前空間のID142は例えば、名前空間の601または名前空間の602の一部を識別することができる。名前空間の管理と名前空間の分岐との間の結び付けにより、登録要求内で指定されたものの真下の名前空間の分岐を指定する要求(例えば、検索要求)を、結び付けで指定された名前空間の管理に、ルーティングするのではなく転送することが可能となる。名前空間の管理の障害が検出されるか、または、異なる名前空間の管理への委託が得られる場合、結び付けは壊される。障害が検出される場合、新しい結び付けを形成することができるようになるまで、後続の要求はルーティングされる。
図7Bは、名前空間の登録要求を移行するための方法720の実施形態のフローチャートを例示する。方法720を、図1の名前空間のフェデレーションインフラストラクチャおよび図6の名前空間に関して説明する。
方法720は、名前空間の管理がポリシー制約を満たしていることを決定する動作を含む(動作721)。例えば、名前空間の管理103は、名前空間の情報(名前空間のフェデレーションインフラストラクチャ100に関連する)が名前空間の管理103で処理される量が、構成されたしきい値を超えていることを決定することができる。構成されたしきい値を、例えば、名前空間の管理で維持された登録の総数、または、名前空間の管理でサービスされている検索要求の総数にすることができる。
方法720は、ポリシー制約と結び付けられたポリシーアクションを満たすように移行されることが可能である、名前空間の分岐を識別する動作を含む(動作722)。例えば、名前空間の管理103は、構成されたしきい値より下で名前空間の管理103において処理された名前空間の情報を減らすように、移行されることが可能である、名前空間の分岐(例えば、名前空間のID142に対応する)を識別することができる。名前空間の管理は、移行のために、より大量にポピュレートされた、および/または、大量にサービスされた、名前空間の分岐を識別することができる。
方法720は、ポリシーアクションに応答して、名前空間の分岐のための既存の登録を、パートナーの名前空間の管理に移行する動作を含む(例えば、動作723)。例えば、大量にポピュレートされた、および/または、大量にサービスされた名前空間の分岐への負担を軽減するために発生するようになるアクションに応答して、名前空間の管理103は既存の登録をパートナー(例えば、近傍)の名前空間の管理へ移行することができる。
方法720はまた、名前空間の分岐に対応する名前空間の要求を受信する動作を含むこともできる。例えば、名前空間の管理103は、名前空間のID142によって表現された名前空間の分岐に対応する、登録要求132を受信することができる。
方法720はまた、名前空間の要求をパートナーの名前空間の管理にリダイレクトする処置を取る動作を含むこともできる。例えば、点線の矢印で示すように、名前空間の管理103は登録要求132を名前空間の管理101に再ルーティングすることができる。名前空間の分岐を移行する名前空間の管理は、RouteNumericallyを呼び出して、要求を異なる名前空間の管理に再ルーティングすることができる。例えば、RouteNumerically(H,migrateMsg)を呼び出して、移行されている名前空間の分岐の少なくとも一方向の同値の値によって識別された、名前空間の管理(例えば、名前空間の管理101)に、要求を再ルーティングすることができる。例えば、分岐location:/Bldg42/Floor1を移行するため、名前空間の管理103はハッシュHを文字列「location:/Bldg42/Floor1」上で生成し、RouteNumerically(H,migrateMsg)を呼び出して、移行された分岐を担う名前空間の管理101を識別し、location:/Bldg42/Floor1/Room1226およびlocation:/Bldg42/Floor1/Room119など、移行された分岐の真下のすべての名前空間の登録を、識別された名前空間の管理101に移行する。
名前空間の管理はまた、移行された名前空間の分岐のスパイン(spine)に沿って遭遇されたすべての名前空間の登録を、分岐をホストするパートナーの名前空間の管理に転送するように決定することもできる。これにより、パートナーの名前空間の管理の分岐は、要求が直接または間接的にいつでも、移行する名前空間の管理を通過する必要なしに、名前空間の分岐を指定するすべての検索要求をサービスすることが容易になる。移行する名前空間の管理は、それが登録情報を指定された名前空間の分岐の下で移行していることを指示するスタブを残すことができる。移行する名前空間の管理はまた、移行された登録内で指定されたプロバイダ/サブスクライバを追跡する活性通知のサブスクリプションがある場合も、取り消すことができる。したがって、移行する名前空間の管理によって受信された、移行された名前空間の分岐のスパインの下およびそれに沿った後続の名前空間の登録は、パートナーの名前空間の管理に転送される。
図7Cは、名前空間の登録要求を処理するための方法の実施形態のフローチャートを例示する。方法730を、図1の名前空間のフェデレーションインフラストラクチャおよび図6の名前空間に関して説明する。
方法730は、名前空間の分岐を登録するための名前空間の登録要求を受信する動作を含み、名前空間の登録要求は、名前空間の分岐を識別する名前空間のURI文字列、および、名前空間の分岐内で登録を要求するプロバイダ(またはサブスクライバ)のための一意の参照または識別子を含む(動作731)。例えば、名前空間の管理103は、プロバイダ131への参照を含む登録要求132を受信することができる。
方法730は、名前空間の管理が名前空間の分岐に関心を有することを決定する動作を含む(動作732)。例えば、名前空間の管理102は、名前空間の管理102が、名前空間のID142によって表現された名前空間の分岐(例えば、Organization:/Product/Messaging Team)を担うかどうかを判断することができる。名前空間の管理102が担わないとき、名前空間の管理102は名前空間の登録要求(例えば、登録要求132)を、指定された名前空間の分岐について、担う名前空間の管理(例えば、名前空間の管理103)に転送することができる。代替として、名前空間の管理102が担わないとき、名前空間の管理102は委託メッセージ134を、登録要求(例えば、登録要求133)を開始した名前空間の管理(例えば、名前空間の管理103)に送信して、その代わりに担う名前空間の管理(例えば、名前空間の管理101)に接触することができる。名前空間の管理102が担うとき、名前空間の管理102は名前空間の登録要求を保存することができる。
方法730は、名前空間の識別子を、適切にインデックス付けされた名前空間の登録データベース内に保存する動作を含む(動作733)。例えば、名前空間の識別子がURI文字列である場合、名前空間の登録データベースインデックス内に、アルファベット順で長い文字列が上位にランクされるように格納される。例えば、名前空間の管理103は名前空間のID142を名前空間の登録データベース内に保存することができる。破線、および、プロバイダ131の周囲の対応する破線のボックスは、名前空間の管理103がプロバイダ131を、名前空間のID142によって表現された名前空間に関心を有するとして参照していることを指示する。
方法730はまた、プロバイダの活性がどのような頻度で後に検証されるべきであるかを決定する動作を含むこともできる。例えば、名前空間の管理103は、プロバイダ131の活性がどのような頻度で後に検証されるべきであるかを決定することができる。名前空間の管理103は、オプションでID161によって識別されたプロバイダ131の発行/加入のトピックに発行された活性通知に加入させることができる。発行/加入のトピックをID161によって識別することができる。代替として、活性サブスクリプションが行われない場合、登録には時間制限付きのリースが割り当てられる。プロバイダ131はリースが満了する前に、名前空間の管理103に直接接触することによって、登録を更新することができる。他の活性メカニズムを使用することもできる。
名前空間の管理およびプロバイダ活性を、階層にわたって分散させることができる。階層内のより上位のレベルに位置する名前空間の管理は、他の同様に位置する名前空間の管理に依拠して、対応するより下位レベルの名前空間の管理およびプロバイダについての活性情報をレポートすることができる。例えば図1では、名前空間の管理103は名前空間の管理102(両方ともルートの名前空間の管理)の活性を追跡することができる。名前空間の管理103は名前空間の管理102に依拠して、いかなる対応する下位レベルの名前空間の管理(例えば、名前空間の管理112)またはプロバイダ(例えば、プロバイダ124)の障害をもレポートすることができる。名前空間の管理102は同様に、名前空間の管理103に依拠して、類似の型の障害(例えば、プロバイダ126の障害)をレポートするようになる。
プロバイダ131の登録の成功(または失敗)の後に続いて、名前空間の管理102は、成功(または失敗)を指示するメッセージをプロバイダ131に送信することができる。
時々、コンシューマ(他のコンピュータシステムまたは装置)は、プロバイダによって管理される名前空間の分岐内のリソースへのアクセスを望む場合がある。リソースへのアクセスを得るため、コンシューマは検索要求を発行して、リソースを識別しようと試みることができる。検索要求を名前空間の管理で受信し、1つまたは複数の適切なプロバイダに配信することができる。一般に、名前空間の管理は、検索要求を受信するとき、その検索要求を、それに最も近いパートナーの名前空間の管理(ある予め定義された近接性メトリックによって決定される)へ、および、要求内で指定された名前空間の分岐を担う名前空間の管理の近傍の方へ、ルーティングする。登録情報は近傍の名前空間の管理にわたってレプリケートされるので、検索要求を、近傍集合内のいかなる名前空間の管理によっても満たすことができる。
検索要求を発信する名前空間の管理に最も近い名前空間の管理を介したルーティングは、ネットワークスループットの改善および動的な負荷分散の結果となり、これは、検索要求を満たす観点から、検索要求が自動的および効率的に、近傍の名前空間の管理にわたって分割されるからである。ルーティングを容易にするため、検索要求内で指定された名前空間のIDを写すためのアルゴリズムは、登録要求内で指定された名前空間のIDを写すためのアルゴリズムと、本質的に同じである可能性がある。例えば、名前空間のアイデンティティの値領域から名前空間の管理への1対1写像を使用して、検索および登録の両方の要求について名前空間のIDを写すことができる。
図8Aは、名前空間の検索要求をルーティングするための方法の実施形態のフローチャートを例示する。方法810を、図1の名前空間のフェデレーションインフラストラクチャおよび図6の名前空間に関して説明する。
方法810は、名前空間の分岐を識別する名前空間の識別子を含む、名前空間の検索要求を受信する動作を含む(動作811)。例えば、名前空間の管理103は検索要求133を受信することができる。検索要求133は、例えば、Location:/Bldg42/Floor2/Room2005など、名前空間のツリー602の分岐を識別する名前空間のID143を指定することができる。
方法810は、少なくとも一方向の同値の数値の識別値を、名前空間の識別子に基づいて生成する動作を含む(動作812)。例えば、名前空間の管理102は、名前空間のID143のパス部分の少なくとも一部と共に名前空間のID143のスキーム部分をハッシュして、ハッシュ153を生成することができる。
方法810は、名前空間の検索要求を目的地の名前空間の管理に送信する動作を含む(動作813)。目的地の名前空間の管理は、少なくとも一方向の同値の数値の識別値に数量的に最も近い一意の識別子を有する、名前空間の管理の予め定義された範囲内である、名前空間の管理の近傍内に含まれる。検索要求133をルーティングするために、名前空間の管理103は、RouteProximally(またはRouteNumerically)関数を呼び出すことができる。例えば、名前空間の管理103は、RouteProximally(ハッシュ153、検索メッセージ133、近接性基準P)を呼び出して、検索メッセージ133をパートナーの名前空間の管理102にルーティングすることができ、これは、パートナーの名前空間の管理102が、指定された近接性基準Pの下で名前空間の管理103に近接的に近いと見なされた名前空間の管理の間で数量的に最も近い一意のIDを有するものとして、識別されるからである。RouteProximally関数から、名前空間の管理102を識別することができる。
方法810はまた、名前空間の分岐に関心を有する1つまたは複数のプロバイダへの配信のために、名前空間の検索要求を転送する動作を含むこともできる。例えば、名前空間の管理103は、検索要求133を名前空間の管理102に転送することができる。名前空間の管理102は、検索要求133をプロバイダ131に転送することができる。
図8Bは、名前空間の検索要求を移行するための方法の実施形態のフローチャートを例示する。方法820を、図1の名前空間のフェデレーションインフラストラクチャおよび図6の名前空間に関して説明する。
方法820は、名前空間の分岐のための名前空間の検索要求を受信する動作を含む(動作821)。名前空間の検索要求は、特定の名前空間の分岐を識別する一意の名前空間の識別子を含む。例えば、名前空間の識別子をURI ID143にすることができる。さらに、受信された名前空間の検索要求は、オプションで指定された名前空間の分岐のための識別子に基づいて生成された、少なくとも一方向の同値の数値の識別値を含む。例えば、ハッシュ153は、名前空間のID143のスキームおよびパス部分の少なくとも一部から生成されることがある。名前空間の管理に対する名前空間の管理の識別子は、1つまたは複数の他の名前空間の管理に属する名前空間の分岐の識別子よりも、名前空間の分岐の識別子に近い。名前空間の管理102は、一意のID172が、名前空間のフェデレーションインフラストラクチャ100内の他の名前空間の管理の一意の識別子(例えば、ID174)よりもハッシュ153に近い結果として、検索要求133を受信することができる。
方法820は、名前空間の分岐が、異なる名前空間の管理の識別子を有する異なる名前空間の管理に移行されているという指示を、検出する動作を含む(動作822)。例えば、名前空間の管理102は、名前空間のID143によって表現された名前空間の分岐が名前空間の管理101に移行されていることを指示するスタブの存在を検出することができる。
方法820はまた、発信側の名前空間の管理に、名前空間の分岐が異なる名前空間の管理に移行されていることを、少なくとも通知する動作を含むこともできる。例えば、名前空間の管理102は名前空間の管理103に、名前空間のID143によって表現された名前空間の分岐が移行されていることを、少なくとも通知することができる。例えば、名前空間の管理102は委託メッセージ134を名前空間の管理103に送信して、名前空間の管理103が名前空間の管理101に接触するべきであるか、または、移行された分岐のための新しい検索要求132を開始するべきであることを指示することができる。
名前空間の管理103は、委託メッセージ内に含まれる名前空間の管理102からの命令に従うことができる。
名前空間の管理102は代替として、RouteProximally(新しいID H、検索要求133、近接性基準P)をそれ自体において呼び出すことによって、検索要求133自体を再ルーティングすることができる。例えば、新しいID Hを、スキーマ部分およびパスコンポーネントの第1の部分をハッシュすることのみによって生成された、元のハッシュ値とは対照的に、コンポーネント全体の移行された名前空間の分岐をハッシュすることによって、生成することができる。RouterProximallyを呼び出すことは、名前空間の管理101への配信のために(検索要求133を含む、破線の矢印によって示す)、検索要求133を他の名前空間の管理にルーティングさせることを可能にする。
図8Cは、名前空間の検索要求を処理するための方法の実施形態のフローチャートを例示する。方法830を、図1の名前空間のフェデレーションインフラストラクチャおよび図5の名前空間に関して説明する。
方法830は、名前空間に属する名前空間の分岐を識別する名前空間の識別子を含む、名前空間の検索要求を受信する動作を含む(動作831)。例えば、名前空間の管理102は、名前空間のID143を含む、名前空間の検索要求133を受信することができる。名前空間のID143は、名前空間のインフラストラクチャ500の名前空間の分岐を識別することができる。
方法830は、名前空間の検索要求の名前空間の検索要求型を識別する動作を含む(動作832)。例えば、名前空間の管理102は、検索要求133の名前空間の検索要求型を識別する。いくつかの実施形態では、名前空間の検索要求型を、汎用要求型(例えば、いずれかの名前空間の分岐向け)、または、ターゲットにされた要求型(例えば、特定の名前空間の分岐向け)にすることができる。
方法830は、1つまたは複数のプロバイダが、名前空間の分岐に関係付けられた名前空間の部分について登録していることを、検出する動作を含む(動作833)。例えば、名前空間の管理102は、1つまたは複数のプロバイダが、名前空間のID143によって表現された名前空間の分岐に関係付けられた名前空間の部分について登録していることを、検出することができる。このとき図5を参照すると、名前空間のID143がLocation:/Corporate Buildings/Bldg 50/Floor 1である場合、プロバイダ501、502および503を識別することができる。プロバイダ501はRoom 1304(名前空間のツリー500内のFloor 1の下)について登録しており、プロバイダ502はBldg 50(名前空間のツリー500内のfloor 1の上)について登録され、プロバイダ503は名前空間のツリー500内のFloor 1について登録される。
方法830はまた、名前空間の検索要求を、識別された名前空間の検索要求型に基づいて、少なくとも1つのプロバイダに転送する動作を含むこともできる。例えば、名前空間の管理102は検索要求133を、プロバイダ501、502および503のうち1つまたは複数に転送することができる。
汎用要求では、名前空間の管理102は、その登録の名前空間の分岐が、検索要求内で指定されたもののプレフィクスまたはサフィックスのいずれかである、すべてのプロバイダに、要求を転送する。例えば、名前空間の管理102は、名前空間のID143がLocation:/Corporate Buildings/Bldg 50/Floor 1であった場合、名前空間の検索要求133をプロバイダ501、502および503に転送することができる。ターゲットにされた要求では、名前空間の管理は要求を、その登録の名前空間の分岐が、検索要求内で指定されたものの最大プレフィクスである、プロバイダにのみ、要求を転送する。しかし、汎用およびターゲットにされた型の両方では、501など、所与のプロバイダの複数のコピーが使用可能である場合、名前空間の管理102は要求を、選択された近接性メトリックの下で、検索要求の発信元(この場合、名前空間の管理103)により近いプロバイダに転送する。
名前空間の管理103は、名前空間のID143によって表現された名前空間の分岐と、名前空間の管理102との間の結び付けを作成することができる(例えば、それを名前空間のデータベース内に格納する)。このような結び付けは、結び付けにおいて指定されたものの真下の名前空間の分岐(例えば、Location:/Corporate Buildings/Bldg 50/Floor 1)を指定する名前空間の検索要求が、名前空間の管理102にルーティングされるのではなく、転送されることを容易にする。ターゲットの名前空間の管理の障害が検出されるか、または、異なる名前空間の管理への委託が得られる場合、結び付けは壊される。前者の場合、後続の要求は、新しい結び付けを形成できるようになるまでルーティングされる。
図9は、リソースが複数の名前空間に参加するための方法の実施形態のフローチャートを例示する。方法900を、図6の名前空間のツリーに関して説明する。
方法900は、リソースのための一意のリソース識別子を確立する動作を含む(動作901)。動作901は、リソースに対応するURIのパス部分を確立することを含むことができる。例えば、「プリンタ603」の識別子を、プリンタのために確立することができる。
方法900は、第1の名前空間において、リソースの有用性を発行する動作を含む(動作902)。例えば、プリンタ603は、その有用性を名前空間のツリー601内で発行することができる。方法900は、一意のリソース識別子を、第1の名前空間内の第1の名前空間のノードリソースにリンクさせて、第1の名前空間が横断されてリソースを識別することができるようにする動作を含む(動作903)。例えば、名前空間のセグメント631を確立して、プリンタ603を「Dev Team」の名前空間のノードリソースにリンクさせることができる。したがって、名前空間のツリー601(および、「Dev Team」の名前空間のノードリソース)が横断されてプリンタ603を識別することができる。
方法900は、第2の名前空間において、リソースの有用性を発行する動作を含む(動作904)。例えば、プリンタ603は、その有用性を名前空間のツリー602内で発行することができる。方法900は、一意のリソース識別子を、第2の名前空間内の第2の名前空間のノードリソースにリンクさせて、第2の名前空間が横断されてリソースを識別することができるようにする動作を含む(動作905)。例えば、名前空間のセグメント632を確立して、プリンタ603を「Room 1226」の名前空間のノードリソースにリンクさせることができる。したがって、名前空間のツリー602(および、「Room 1226」の名前空間のノードリソース)が横断されてプリンタ603を識別することもできる。
図10は、リソースの部分集合を名前空間のフェデレーションインフラストラクチャ内で識別するための方法の実施形態のフローチャートを例示する。方法1000を、図6の名前空間のツリーに関して説明する。
方法1000は、クエリを装置から受信する動作を含む(動作1001)。例えば、名前空間のツリー602のためのプロバイダはクエリを、そのプロバイダに接続可能なネットワークである装置から受信することができる。クエリは、名前空間の階層内の第1のレベルで第1のクエリ基準を満たす、リソースの第1の部分を識別する、第1のクエリ部分を含む。例えば、第1のクエリ部分は、名前空間のセグメント「Floor 2」(名前空間のツリー602内)を横断した後に、第1のクエリ基準を満たすリソースの第1の部分を識別することができる。リソースの第1の部分を、例えば従業員にすることができ、第1の基準はまた、例えば、「Messaging Team」に割り当てられることを含むこともできる。このように、第1のクエリ部分は、(Bldg 42の)Floor 2で働く「Messaging Team」に割り当てられたすべての従業員を識別することができる。いくつかの実施形態では、第1のクエリ基準が利用されて、リソースの第1の部分を参照するリソースのプロパティ中がナビゲートされる。
クエリは、リソースの第1の部分に含まれたリソースの中から選択されたリソースの第2の部分を識別する、第2のクエリ部分を含む。例えば、第2のクエリ部分は、名前空間のセグメント「Room 2005」(名前空間のツリー602内)を横断した後に、第2のクエリ基準を満たすリソースの第2の部分を識別することができる。リソースの第2の部分を、例えば管理者にすることができ、第2の基準を、例えば装置にすることができる。このように、第2のクエリ部分は、Room 2005内のオフィスキュービクルを有するプリンタ管理者を識別することができる。いくつかの実施形態では、第2のクエリ基準が利用されて、リソースの第2の部分を参照するリソースの第1の部分のプロパティ中がナビゲートされる。
したがって、第1のクエリ部分から識別されたリソースを、第2のクエリ部分への入力として提供すると、受信されたクエリの結果は(リソーススキーマ内のフィールド定義に応じて)、2階、Room 2005内のオフィスを有し、Messaging Teamに割り当てられた、プリンタ管理者を識別することができる。
方法1000は、リソースの第2の部分のアイデンティティを装置に戻す動作を含む(動作1002)。例えば、名前空間のツリー602のためのプロバイダは、Floor 2上のMessaging Team従業員によって所有される、Room2005内の装置の管理者のアイデンティティを、ネットワーク接続可能な装置に戻すことができる。
図12は、複数のリソースを編成するための方法の実施形態のフローチャートを例示する。方法1200を、図6の名前空間のインフラストラクチャに関して説明する。
方法1200は、新しいリソースが1つまたは複数の名前空間内に含まれるべきであることを決定する動作を含み、1つまたは複数の名前空間の各々は、1つまたは複数のリソースを編成するように構成される(動作1201)。例えば、プリンタ603が名前空間601および/または名前空間602内に含まれるべきであることを、決定することができる。方法1200は、新しいリソースに関係付けられるべきである、1つまたは複数の名前空間の第1の名前空間内の第1のリソースを識別する動作を含む(動作1202)。例えば、名前空間602内のルーム1226がプリンタ603に関係付けられるべきであると、識別することができる。同様に、名前空間601内のDev Teamがプリンタ603に関係付けられるべきであると、識別することができる。
方法1200は、第1の名前空間のセグメントを使用して、新しいリソースを第1のリソースにリンクさせ、名前空間のセグメントが横断されて既存のリソースから名前空間内の新しいリソースへナビゲートすることができるようにする動作を含む(動作1203)。例えば、名前空間のセグメント632を使用して、プリンタ603をRoom 1226にリンクさせ、名前空間のセグメント632が横断されてRoom 1226からプリンタ603へナビゲートすることができるようにすることができる。同様に、名前空間のセグメント631を使用して、プリンタ603をDev Teamにリンクさせ、名前空間のセグメント631が横断されてDev Teamからプリンタ603へナビゲートすることができるようにすることができる。
図11および以下の考察は、本発明を実施することができる、実施形態の適切なコンピューティング環境の簡単な全体的説明を提供するように意図される。必要ではないが(例えば、ハードウェアにおいて実施されるとき)、本発明を一般に、プログラムモジュールなど、コンピュータシステムによって実行されるコンピュータ実行可能命令に関連して説明する。一般に、プログラムモジュールには、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれ、これらは特定のタスクを実行するか、あるいは特定の抽象データ型を実装する。コンピュータ実行可能命令、関連したデータ構造、およびプログラムモジュールは、本明細書で開示された方法の動作を実行するためのプログラムコード手段の実施例を表す。
図11を参照すると、本発明を実施するための実施形態のシステムには、コンピュータシステム1120の形態における汎用コンピューティングシステムが含まれ、コンピュータシステム1120には、処理装置1121、システムメモリ1122、および、システムメモリ1122を含む様々なシステムコンポーネントを処理装置1121に結合するシステムバス1123が含まれる。処理装置1121は、本発明の特徴を含む、コンピュータシステム1120の特徴を実施するように設計された、コンピュータ実行可能命令を実行することができる。システムバス1123は、いくつかの種類のバス構造のいずれかにすることができ、これらのバス構造には、様々なバスアーキテクチャのいずれかを使用する、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスが含まれる。システムメモリには、読み取り専用メモリ(「ROM」)1124およびランダムアクセスメモリ(「RAM」)1125が含まれる。基本入出力システム(「BIOS」)1126は、起動中など、コンピュータシステム1120内の複数の要素の間で情報を転送する助けとなる基本ルーチンを含み、ROM1124に格納することができる。
コンピュータシステム1120にはまた、磁気ハードディスク1139に対する読み書きを行うための磁気ハードディスクドライブ1127、リムーバブル磁気ディスク1129に対する読み書きを行うための磁気ディスクドライブ1128、および、例えばCD−ROMまたは他の光記憶媒体など、リムーバブル光ディスク1131に対する読み書きを行うための光ディスクドライブ1130が含まれる場合もある。磁気ハードディスクドライブ1127、磁気ディスクドライブ1128および光ディスクドライブ1130はそれぞれシステムバス1123に、ハードディスクドライブインターフェース1132、磁気ディスクドライブインターフェース1133、および光ドライブインターフェース1134によって接続される。ドライブおよびそれらの関連したコンピュータ読取り可能な媒体は、コンピュータシステム1120用のコンピュータ実行可能命令、データ構造、プログラムモジュールおよび他のデータの不揮発性記憶装置を提供する。本明細書で説明する実施例の環境は、磁気ハードディスク1139.リムーバル磁気ディスク1129およびリムーバブル光ディスク1131を使用するが、データを格納するための他の種類のコンピュータ読取り可能な媒体を使用することができ、これらのコンピュータ読取り可能な媒体には、磁気カセット、フラッシュメモリカード、デジタル多用途ディスク、ベルヌーイカートリッジ、RAM、ROMなどが含まれる。
1つまたは複数のプログラムモジュールを備えるプログラムコード手段を、ハードディスク1139、磁気ディスク1129、光ディスク1131、ROM1124またはRAM1125上に格納することができ、これらのプログラムモジュールには、オペレーティングシステム1135、1つまたは複数のアプリケーションプログラム1136、他のプログラムモジュール1137、およびプログラムデータ1138が含まれる。ユーザーはコマンドおよび情報をコンピュータシステム1120へ、キーボード1140、ポインティング装置1142、または、例えばマイクロフォン、ジョイスティック、ゲームパッド、スキャナなど、他の入力装置(図示せず)を通じて入力することができる。これらおよび他の入力装置を処理装置1121へ、システムバス1123に結合された入出力インターフェース1146を通じて接続することができる。入出力インターフェース1146は、例えば、シリアルポートインターフェース、PS/2インターフェース、パラレルポートインターフェース、ユニバーサルシリアルバス(「USB」)インターフェース、または、米国電気電子学会(「IEEE」)1394インターフェース(すなわち、FireWireインターフェース)など、幅広い種類の異なるインターフェースのいずれかを論理的に表し、または、異なるインターフェースの組合せを論理的に表す場合もある。
モニタ1147または他の表示装置もまたシステムバス1123へ、ビデオインターフェース1148を介して接続することができる。スピーカ1169または他のオーディオ出力装置もまたシステムバス1123へ、オーディオインターフェース1149を介して接続される。例えば、プリンタなど、他の周辺出力装置(図示せず)もまた、コンピューティングシステム1120に接続することができる。
コンピュータシステム1120は、例えば、オフィス全体または企業全体のコンピュータネットワーク、ホームネットワーク、イントラネットおよび/またはインターネットなど、ネットワークに接続可能である。コンピュータシステム1120はデータを、例えば、リモートコンピュータシステム、リモートアプリケーション、および/またはリモートデータベースなど、外部リソースと、このようなネットワークを介して交換することができる。
コンピュータシステム1120にはネットワークインターフェース1153が含まれ、ネットワークインターフェース1153を通じて、コンピュータシステム1120はデータを外部ソースから受信、および/または、データを外部ソースに送信する。図11に示すように、ネットワークインターフェース1153は、リンク1151を介したリモートコンピュータシステム1183とのデータの交換を容易にする。ネットワークインターフェース1153は、例えば、ネットワークインターフェースカードおよび対応するネットワークドライバインターフェース規約(「NDIS」)スタックなど、1つまたは複数のソフトウェアおよび/またはハードウェアモジュールを論理的に表すことができる。リンク1151は、ネットワークの一部(例えば、イーサネット(登録商標)セグメント)を表し、リモートコンピュータシステム1183は、ネットワークのコンピュータシステムを表す。
同様に、コンピュータシステム1120には入出力インターフェース1146が含まれ、入出力インターフェース1146を通じて、コンピュータシステム1120はデータを外部ソースから受信、および/または、データを外部ソースに送信する。入出力インターフェース1146はモデム1154(例えば、標準モデム、ケーブルモデム、またはデジタル加入者線(「DSL」)モデム)に、リンク1159を介して結合され、モデム1154を通じてコンピュータシステム1120はデータを外部ソースから受信、および/または、データを外部ソースに送信する。図11に示すように、入出力インターフェース1146およびモデム1154は、リンク1152を介したリモートコンピュータシステム1193とのデータの交換を容易にする。リンク1152は、ネットワークの一部を表し、リモートコンピュータシステム1193は、ネットワークのコンピュータシステムを表す。
図11は、本発明のための適切なオペレーティング環境を表すが、本発明の原理を、必要であれば適切な修正により、本発明の原理を実施することができる、いかなるシステム内で使用することもできる。図11に例示した環境は例示的でしかなく、決して、本発明の原理を実施することができる幅広い環境のごく一部さえ表さない。
本発明によれば、名前空間の管理、プロバイダおよびリソース、ならびに、名前空間のデータベース、名前空間の識別子および文字列、ハッシュ、リソース識別子、ルーティングテーブルおよび名前空間のツリーを含む、関連したデータを格納することができ、コンピュータシステム1120に関連付けられたコンピュータ読取り可能な媒体のいずれからもアクセスすることができる。例えば、このようなモジュールの一部および関連したプログラムデータの一部は、システムメモリ1122への格納のために、オペレーティングシステム1135、アプリケーションプログラム1136、プログラムモジュール1137および/またはプログラムデータ1138内に含まれる可能性がある。
例えば、磁気ハードディスク1139など、大容量記憶装置が、コンピュータシステム1120に結合されるとき、このようなモジュールおよび関連したプログラムデータもまた、大容量記憶装置内に格納することができる。ネットワーク環境では、コンピュータシステム1120に関連して示したプログラムモジュールまたはその一部を、リモートメモリ記憶装置に格納することができ、リモートメモリ記憶装置は、リモートコンピュータシステム1183および/またはリモートコンピュータシステム1193に関連付けられたシステムメモリおよび/または大容量記憶装置などである。このようなモジュールの実行を、前述のように分散環境内で実行することができる。
本発明を、その精神または本質的特性から逸脱することなく、他の特定の形態において実施することができる。説明した実施形態はあらゆる点で例示的でしかなく、限定的ではないと見なされるべきである。本発明の範囲は、したがって、前述の説明によってではなく、付属の特許請求の範囲によって示される。特許請求の範囲の等価物の意味および範囲内に入るすべての変更は、それらの範囲内に包含されるべきである。
名前空間のフェデレーションインフラストラクチャの実施形態を例示する図である。 要求を間接的にパートナーにルーティングすることを容易にするコンピュータアーキテクチャの実施形態を例示する図である。 名前空間のフェデレーションインフラストラクチャ内の複数の名前空間の管理の間の2項関係の実施形態を例示する図である。 名前空間のフェデレーションインフラストラクチャを他のプロトコルと統合することを容易にするアーキテクチャの実施形態を例示する図である。 プロバイダからの名前空間のフェデレーションインフラストラクチャおよび名前空間のコレクションビューの実施形態を例示する図である。 複数の名前空間内で使用可能にされたリソースを有する名前空間のフェデレーションインフラストラクチャの実施形態を例示する図である。 名前空間の登録要求をルーティングするための方法の実施形態のフローチャートを例示する図である。 名前空間の登録要求を移行するための方法の実施形態のフローチャートを例示する図である。 名前空間の登録要求を処理するための方法の実施形態のフローチャートを例示する図である。 名前空間の検索要求をルーティングするための方法の実施形態のフローチャートを例示する図である。 名前空間の検索要求を移行するための方法の実施形態のフローチャートを例示する図である。 名前空間の検索要求を処理するための方法の実施形態のフローチャートを例示する図である。 リソースが複数の名前空間に参加するための方法の実施形態のフローチャートを例示する図である。 リソースの部分集合を名前空間のフェデレーションインフラストラクチャ内で識別するための方法の実施形態のフローチャートを例示する図である。 本発明の原理のための適切なオペレーティング環境を例示する図である。 複数のリソースを編成するための方法の実施形態のフローチャートを例示する図である。 リソースを記述するために使用することができるスキーマ分類法の実施形態を例示する図である。

Claims (22)

  1. 複数のコンピュータを含む名前空間フェデレーションインフラストラクチャにおいて該複数のコンピュータの少なくとも一台によって実行される、異なるネットワーク通信スキームを有する名前空間であって階層構造の複数の異なる名前空間の各々において横断可能な名前空間パスを通じたアクセスが可能なリソースを、前記階層構造の複数の異なる名前空間において登録するための方法であって、前記異なるネットワーク通信スキームの少なくとも2つが、特定の名前空間内で前記リソースを識別するためのシンタックスを識別する異なるリソースを有している、方法において、
    前記リソースについて一意のリソース識別子を確立するステップであって、該一意のリソース識別子を用いて前記階層構造の複数の異なる名前空間において前記リソースを識別可能であり、前記階層構造の複数の異なる名前空間中の各名前空間が前記異なるネットワーク通信スキームとは別のネットワーク通信スキームを有しており、前記名前空間フェデレーションインフラストラクチャにおいて実装されるすべての名前空間を通して前記一意のリソース識別子が一意である、ステップ、
    前記階層構造の複数の異なる名前空間中の、前記異なるネットワーク通信スキームからの第1のネットワーク通信スキームを有する第1の名前空間において、前記リソースの有用性を発行するステップ、
    前記リソースを識別するために第1のネットワーク通信スキームを用いて横断される前記第1の名前空間において、前記一意のリソース識別子を第1の名前空間ノードリソースにリンクさせるステップ、
    前記第1の名前空間における前記横断可能な名前空間パスを横断して、該第1の名前空間において有用性が発行された前記リソースを突き止めるステップ、ここで、該ステップは、前記第1の名前空間における1つまたはそれよりも多い名前空間ノードリソースにナビゲートして、前記第1の名前空間内での前記リソースの名前空間ロケーションを判定することを含んでいる、
    前記階層構造の複数の異なる名前空間中の、前記異なるネットワーク通信スキームからの第2のネットワーク通信スキームを有する第2の名前空間において、前記リソースの有用性を発行するステップ、ここで、該ステップは、前記第2の名前空間内の少なくとも複数のノードに、前記リソースが前記第2の名前空間内に存在することを知らせる通知をブロードキャストすることを含んでいる、
    前記リソースを識別するために前記第2のネットワーク通信スキームを用いて横断される前記第2の名前空間において、前記一意のリソース識別子を第2の名前空間ノードリソースにリンクさせるステップ、及び、
    ブロードキャストされた前記通知を受信した前記横断可能な名前空間パスを、前記第2の名前空間におけるノードのいずれかから横断して、該第2の名前空間において有用性が発行された前記リソースを突き止めるステップ、ここで、該ステップは、ブロードキャストされた前記通知を受信した、前記第2の名前空間における1つまたはそれよりも多い名前空間ノードリソースにナビゲートして、前記第2の名前空間内での前記リソースの前記名前空間ロケーションを判定することを含んでいる、
    を含むことを特徴とする方法。
  2. 前記第1の名前空間において前記リソースの有用性を発行する前記ステップは、前記第1の名前空間において、名前空間の範囲のための基礎を提供するリソースを分割する複数の名前空間の中から前記リソースの有用性を発行することを含むことを特徴とする、請求項1に記載の方法。
  3. 前記第1の名前空間において前記リソースの有用性を発行する前記ステップは、前記リソースを他のリソースが前記第1の名前空間内で識別するためにクエリされる従業員名前空間ノードリソースを持った、前記階層構造の複数の異なる名前空間中の前記第1の名前空間において、該有用性を発行することを含む特徴とする、請求項1に記載の方法。
  4. 前記一意のリソース識別子を前記第1の名前空間ノードリソースにリンクさせる前記ステップは、URIを前記リソースに関連付けるステップを含むことを特徴とする、請求項1に記載の方法。
  5. 前記関連付けるステップは一意のURIを前記リソースに関連付けることを含み、該一意のURIは、前記リソースに単独でアクセスするために使用されることを特徴とする、請求項4に記載の方法。
  6. さらに、追加のリソースに前記階層構造の複数の異なる名前空間のうち1つの中で、アクセスするための1つまたはそれよりも多い追加のURIを前記リソースに割り当てることを含むことを特徴とする、請求項5に記載の方法。
  7. 前記一意のリソース識別子を前記第1の名前空間ノードリソースにリンクさせる前記ステップは、前記リソースと前記第1の名前空間ノードリソースとの間で名前空間のセグメントを形成することを含むことを特徴とする、請求項1に記載の方法。
  8. 前記第2の名前空間において前記リソースの有用性を発行する前記ステップは、前記第2の名前空間において、名前空間の範囲のための基礎を提供するリソースを分割する複数の名前空間の中から前記リソースの有用性を発行することを含むことを特徴とする、請求項1に記載の方法。
  9. 前記第2の名前空間において前記リソースの有用性を発行する前記ステップは、前記リソースを他のリソースが前記第2の名前空間内で識別するためにクエリされる従業員名前空間ノードリソースを持った、前記階層構造の複数の異なる名前空間中の前記第2の名前空間において、該有用性を発行することを特徴とする、請求項1に記載の方法。
  10. 前記一意のリソース識別子を前記第2の名前空間ノードリソースにリンクさせる前記ステップは、前記第2の名前空間のためのURIを前記リソースに関連付けることを含むことを特徴とする、請求項1に記載の方法。
  11. 前記一意のリソース識別子を前記第2の名前空間ノードリソースにリンクさせる前記ステップは、前記リソースと前記第2の名前空間ノードリソースとの間で名前空間のセグメントを形成することを含むことを特徴とする、請求項1に記載の方法。
  12. 前記リソースは名前空間ノードリソースであることを特徴とする、請求項1に記載の方法。
  13. 前記第1及び第2の名前空間の各々のための少なくとも1つの一意でないリソース識別子が前記リソースに割り当てられ、前記リソースにアクセスするために前記リソース識別子が横断されることを特徴とする、請求項1に記載の方法。
  14. 前記一意でないリソース識別子は、追加の位置を通じた前記リソースへのアクセスを、前記名前空間フェデレーションインフラストラクチャにおいて実装される少なくとも1つの他の名前空間内で提供することを特徴とする、請求項13に記載の方法。
  15. 前記一意のリソース識別子は、1つまたはそれよりも多い名前空間の管理の特性をハッシュすることから生成されることを特徴とする、請求項1に記載の方法。
  16. 異なるネットワーク通信スキームを有する、階層構造の複数の異なる名前空間の各々において横断可能な名前空間パスを通じたアクセスが可能なリソースを、前記階層構造の複数の異なる名前空間において登録するための方法を実施するための及び名前空間フェデレーションインフラストラクチャにおいて使用するための、コンピュータ実行可能な命令をストアした、1つまたはそれよりも多い記録可能タイプのコンピュータ読み取り可能な記憶媒体に記憶されたコンピュータプログラムであって、前記異なるネットワーク通信スキームの少なくとも2つが、特定の名前空間内で前記リソースを識別するためのシンタックスを識別する異なるリソースを有している、コンピュータプログラムにおいて、該コンピュータプログラムがプロセッサにより実行されると、前記名前空間フェデレーションインフラストラクチャを、
    前記リソースについて一意のリソース識別子を確立する手段であって、該一意のリソース識別子を用いて前記階層構造の複数の異なる名前空間において前記リソースを識別可能であり、前記階層構造の複数の異なる名前空間中の各名前空間が前記異なるネットワーク通信スキームとは別のネットワーク通信スキームを有しており、前記名前空間フェデレーションインフラストラクチャにおいて実装されるすべての名前空間を通して前記一意のリソース識別子が一意である、手段、
    前記階層構造の複数の異なる名前空間中の、前記異なるネットワーク通信スキームからの第1のネットワーク通信スキームを有する第1の名前空間において、前記リソースの有用性を発行する手段、
    前記リソースを識別するために第1のネットワーク通信スキームを用いて横断される前記第1の名前空間において、前記一意のリソース識別子を第1の名前空間ノードリソースにリンクさせる手段、
    前記第1の名前空間における前記横断可能な名前空間パスを横断して、該第1の名前空間において有用性が発行された前記リソースを突き止める手段、ここで、該手段は、前記第1の名前空間における1つまたはそれよりも多い名前空間ノードリソースにナビゲートして、前記第1の名前空間内での前記リソースの名前空間ロケーションを判定することを含んでいる、
    前記階層構造の複数の異なる名前空間中の、前記異なるネットワーク通信スキームからの第2のネットワーク通信スキームを有する第2の名前空間において、前記リソースの有用性を発行する手段、ここで、該手段は、前記第2の名前空間における少なくとも複数のノードに、前記リソースが前記第2の名前空間内に存在することを知らせる通知をブロードキャストすることを含んでいる、
    前記リソースを識別するために第2のネットワーク通信スキームを用いて横断される前記第2の名前空間において、前記一意のリソース識別子を第2の名前空間ノードリソースにリンクさせる手段、及び、
    ブロードキャストされた前記通知を受信した前記横断可能な名前空間パスを、前記第2の名前空間におけるノードのいずれかから横断して、該第2の名前空間において有用性が発行された前記リソースを突き止める手段、ここで、該手段は、ブロードキャストされた前記通知を受信した、前記第2の名前空間における1つまたはそれよりも多い名前空間ノードリソースにナビゲートして、前記第2の名前空間内での前記リソースの前記名前空間ロケーションを判定することを含んでいる、
    として動作させることを特徴とするコンピュータプログラム。
  17. 前記一意のリソース識別子を第1の名前空間ノードリソースにリンクさせる前記手段が、前記リソースと前記第1の名前空間ノードリソースとの間で名前空間のセグメントを形成することを特徴とする、請求項16に記載のコンピュータプログラム。
  18. 前記一意のリソース識別子を第2の名前空間ノードリソースにリンクさせる前記手段が、前記リソースと前記第2の名前空間ノードリソースとの間で名前空間のセグメントを形成することを特徴とする、請求項16に記載のコンピュータプログラム。
  19. 複数のコンピュータを含む名前空間フェデレーションインフラストラクチャにおいて該複数のコンピュータの少なくとも一台によって実行される、階層構造の複数の異なる名前空間の各々において横断可能な名前空間パスを通じたアクセスが可能なリソースを、前記階層構造の複数の異なる名前空間において登録するための方法において、
    前記リソースについて一意のリソース識別子を確立するステップであって、該一意のリソース識別子を用いて前記階層構造の複数の異なる名前空間において前記リソースを識別可能であり、前記階層構造の複数の異なる名前空間中の各名前空間が異なるネットワーク通信スキームを有しており、前記名前空間フェデレーションインフラストラクチャにおいて実装されるすべての名前空間を通して前記一意のリソース識別子が一意であり、前記横断可能な名前空間パスを通じて前記リソースにアクセス可能である、ステップ、
    前記階層構造の複数の異なる名前空間中の第1の名前空間であって該第1の名前空間に一意の第1のフォーマットの第1のネットワーク通信スキームを有する第1の名前空間において、前記リソースのイベントトピックを示す有用性を加入者に知らせるメッセージを発行するステップ、ここで、前記第1のフォーマットが前記第1の名前空間における別のリソースによって認識されたセマンティックを含んでおり、前記イベントトピックが前記リソースのための前記一意のリソース識別子にちなんで名付けられる、
    前記リソースを識別するために第1のネットワーク通信スキームシンタックスを用いて横断される前記第1の名前空間において、前記一意のリソース識別子を第1の名前空間ノードリソースにリンクさせるステップ、
    前記第1の名前空間における前記横断可能な名前空間パスを該第1の名前空間に一意の前記第1のフォーマットを用いて横断して、該第1の名前空間において前記有用性を加入者に知らせる前記メッセージが発行された前記リソースを突き止めるステップ、
    前記階層構造の複数の異なる名前空間中の第2の名前空間であって前記異なるネットワーク通信スキームからの第2のネットワーク通信スキームを有する第2の名前空間において、前記リソースの前記イベントトピックを示す前記有用性を知らせる前記メッセージを、該第2の名前空間に一意の第2のフォーマットで前記加入者に発行するステップであって、前記イベントトピックが前記リソースのための前記一意のリソース識別子にちなんで名付けられ、前記第2の名前空間に一意の前記第2のフォーマットが該第2の名前空間における別のリソースによって認識されたセマンティックを含んでいる、ステップ、ここで、該ステップは、前記第2の名前空間における複数のノードに、該第2の名前空間にノードが存在することを知らせる通知をブロードキャストすることを含んでいる、
    前記リソースを識別するために第2のネットワーク通信スキームを用いて横断される前記第2の名前空間において、前記一意のリソース識別子を第2の名前空間ノードリソースにリンクさせるステップ、及び、
    ブロードキャストされた前記通知を受信した前記横断可能な名前空間パスを、前記第2の名前空間におけるノードのいずれかから横断して、該第2の名前空間において前記有用性を知らせる前記メッセージが発行された前記リソースを突き止めるステップ、
    を含むことを特徴とする方法。
  20. 前記第1のフォーマットと前記第2のフォーマットには互換性がなく、前記第1のフォーマットに対応する識別子を、前記第2のフォーマットの識別子を認識するように構成された装置では認識できないことを特徴とする、請求項19に記載の方法。
  21. 前記リソースがネットワークから落ちていることに気付いたノードが、前記リソースの前記一意のリソース識別子にちなんで名付けられた前記イベントトピックに対し、活性通知メッセージを発行するように構成されることを特徴とする、請求項19に記載の方法。
  22. 階層構造の複数の異なる名前空間の各々において横断可能な名前空間パスを通じたアクセスが可能なリソースを、前記階層構造の複数の異なる名前空間において登録するための方法を実施するための及び名前空間フェデレーションインフラストラクチャにおいて使用するための、コンピュータ実行可能な命令をストアした、1つまたはそれよりも多い記録可能タイプのコンピュータ読み取り可能な記憶媒体に記憶されたコンピュータプログラムにおいて、該コンピュータプログラムがプロセッサにより実行されると、前記名前空間フェデレーションインフラストラクチャを、
    前記リソースについて一意のリソース識別子を確立する手段であって、該一意のリソース識別子を用いて前記階層構造の複数の異なる名前空間において前記リソースを識別可能であり、前記階層構造の複数の異なる名前空間中の各名前空間が異なるネットワーク通信スキームを有しており、前記名前空間フェデレーションインフラストラクチャにおいて実装されるすべての名前空間を通して前記一意のリソース識別子が一意であり、前記横断可能な名前空間パスを通じて前記リソースにアクセス可能である、手段、
    前記階層構造の複数の異なる名前空間中の第1の名前空間であって該第1の名前空間に一意の第1のフォーマットの第1のネットワーク通信スキームを有する第1の名前空間において、前記リソースのイベントトピックを示す有用性を加入者に知らせるメッセージを発行する手段、ここで、前記第1のフォーマットが前記第1の名前空間における別のリソースによって認識されたセマンティックを含んでおり、前記イベントトピックが前記リソースのための前記一意のリソース識別子にちなんで名付けられる、
    前記リソースを識別するために第1のネットワーク通信スキームシンタックスを用いて横断される前記第1の名前空間において、前記一意のリソース識別子を第1の名前空間ノードリソースにリンクさせる手段、
    前記第1の名前空間における前記横断可能な名前空間パスを該第1の名前空間に一意の前記第1のフォーマットを用いて横断して、該第1の名前空間において前記有用性を加入者に知らせる前記メッセージが発行された前記リソースを突き止める手段、
    前記階層構造の複数の異なる名前空間中の第2の名前空間であって前記異なるネットワーク通信スキームからの第2のネットワーク通信スキームを有する第2の名前空間において、前記リソースの前記イベントトピックを示す前記有用性を知らせる前記メッセージを、該第2の名前空間に一意の第2のフォーマットで前記加入者に発行する手段であって、前記イベントトピックが前記リソースのための前記一意のリソース識別子にちなんで名付けられ、前記第2の名前空間に一意の前記第2のフォーマットが該第2の名前空間における別のリソースによって認識されたセマンティックを含んでいる、手段、ここで、該手段により、前記第2の名前空間における複数のノードに、該第2の名前空間にノードが存在することを知らせる通知をブロードキャストする、
    前記リソースを識別するために第2のネットワーク通信スキームを用いて横断される前記第2の名前空間において、前記一意のリソース識別子を第2の名前空間ノードリソースにリンクさせる手段、及び、
    ブロードキャストされた前記通知を受信した前記横断可能な名前空間パスを、前記第2の名前空間におけるノードのいずれかから横断して、該第2の名前空間において前記有用性を知らせる前記メッセージが発行された前記リソースを突き止める手段、
    として動作させることを特徴とするコンピュータプログラム。
JP2005287843A 2004-09-30 2005-09-30 より効率的なおよび確かなリソースアクセスを容易にするコレクションへのリソースの編成 Expired - Fee Related JP4879547B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/956,472 US7613703B2 (en) 2004-09-30 2004-09-30 Organizing resources into collections to facilitate more efficient and reliable resource access
US10/956,472 2004-09-30

Publications (2)

Publication Number Publication Date
JP2006107501A JP2006107501A (ja) 2006-04-20
JP4879547B2 true JP4879547B2 (ja) 2012-02-22

Family

ID=35593841

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005287843A Expired - Fee Related JP4879547B2 (ja) 2004-09-30 2005-09-30 より効率的なおよび確かなリソースアクセスを容易にするコレクションへのリソースの編成

Country Status (10)

Country Link
US (6) US7613703B2 (ja)
EP (1) EP1643730B1 (ja)
JP (1) JP4879547B2 (ja)
KR (1) KR101153014B1 (ja)
CN (1) CN100578494C (ja)
AU (1) AU2005203695A1 (ja)
BR (1) BRPI0504205A (ja)
CA (2) CA2833834C (ja)
MX (1) MXPA05009679A (ja)
RU (1) RU2409846C2 (ja)

Families Citing this family (124)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7958115B2 (en) * 2004-07-29 2011-06-07 Yahoo! Inc. Search systems and methods using in-line contextual queries
US7603349B1 (en) 2004-07-29 2009-10-13 Yahoo! Inc. User interfaces for search systems using in-line contextual queries
US7421441B1 (en) 2005-09-20 2008-09-02 Yahoo! Inc. Systems and methods for presenting information based on publisher-selected labels
US7409402B1 (en) * 2005-09-20 2008-08-05 Yahoo! Inc. Systems and methods for presenting advertising content based on publisher-selected labels
US7856441B1 (en) 2005-01-10 2010-12-21 Yahoo! Inc. Search systems and methods using enhanced contextual queries
US7571464B2 (en) * 2004-08-27 2009-08-04 International Business Machines Corporation Secure bidirectional cross-system communications framework
US7613703B2 (en) 2004-09-30 2009-11-03 Microsoft Corporation Organizing resources into collections to facilitate more efficient and reliable resource access
US20070133520A1 (en) * 2005-12-12 2007-06-14 Microsoft Corporation Dynamically adapting peer groups
US7640299B2 (en) * 2004-09-30 2009-12-29 Microsoft Corporation Optimizing communication using scaleable peer groups
US20060090003A1 (en) * 2004-10-22 2006-04-27 Microsoft Corporation Rendezvousing resource requests with corresponding resources
US8549180B2 (en) * 2004-10-22 2013-10-01 Microsoft Corporation Optimizing access to federation infrastructure-based resources
US8392515B2 (en) * 2004-10-22 2013-03-05 Microsoft Corporation Subfederation creation and maintenance in a federation infrastructure
US8095601B2 (en) * 2004-10-22 2012-01-10 Microsoft Corporation Inter-proximity communication within a rendezvous federation
US8014321B2 (en) 2004-10-22 2011-09-06 Microsoft Corporation Rendezvousing resource requests with corresponding resources
US20110082928A1 (en) * 2004-10-22 2011-04-07 Microsoft Corporation Maintaining consistency within a federation infrastructure
US8095600B2 (en) 2004-10-22 2012-01-10 Microsoft Corporation Inter-proximity communication within a rendezvous federation
US20080288659A1 (en) 2006-11-09 2008-11-20 Microsoft Corporation Maintaining consistency within a federation infrastructure
US20060168320A1 (en) * 2004-12-30 2006-07-27 Kidd Nelson F Network topology discovery service
US20070005746A1 (en) * 2005-06-30 2007-01-04 Roe Bryan Y Enhanced network discovery service
US8117443B1 (en) * 2005-10-05 2012-02-14 Oracle America, Inc. Method and apparatus for generating location independent unique identifiers
US9146789B2 (en) 2006-03-21 2015-09-29 Oracle America, Inc. Method and apparatus for generating and using location-independent distributed object references
EP1843539B1 (de) * 2006-04-04 2008-06-18 Müller Marken GmbH & Co. Betriebs-KG Automatische Verifizierung von Messenger-Kontaktdaten
US7849069B2 (en) * 2006-06-21 2010-12-07 International Business Machines Corporation Method and system for federated resource discovery service in distributed systems
US7827407B2 (en) * 2006-06-29 2010-11-02 Microsoft Corporation Scoped federations
ATE413765T1 (de) * 2006-07-07 2008-11-15 Alcatel Lucent Verteilter hashing-mechanismus für selbstorganisierende netzwerke
US7860882B2 (en) * 2006-07-08 2010-12-28 International Business Machines Corporation Method and system for distributed retrieval of data objects using tagged artifacts within federated protocol operations
US7676586B2 (en) * 2006-10-05 2010-03-09 Microsoft Corporation Hierarchical federation metadata
US9697019B1 (en) 2006-10-17 2017-07-04 Manageiq, Inc. Adapt a virtual machine to comply with system enforced policies and derive an optimized variant of the adapted virtual machine
US9015703B2 (en) * 2006-10-17 2015-04-21 Manageiq, Inc. Enforcement of compliance policies in managed virtual systems
US9086917B1 (en) 2006-10-17 2015-07-21 Manageiq, Inc. Registering and accessing virtual systems for use in a managed system
US9038062B2 (en) * 2006-10-17 2015-05-19 Manageiq, Inc. Registering and accessing virtual systems for use in a managed system
US8234641B2 (en) 2006-10-17 2012-07-31 Managelq, Inc. Compliance-based adaptations in managed virtual systems
US8949826B2 (en) 2006-10-17 2015-02-03 Managelq, Inc. Control and management of virtual systems
US8612971B1 (en) 2006-10-17 2013-12-17 Manageiq, Inc. Automatic optimization for virtual systems
US8949825B1 (en) 2006-10-17 2015-02-03 Manageiq, Inc. Enforcement of compliance policies in managed virtual systems
US8458695B2 (en) 2006-10-17 2013-06-04 Manageiq, Inc. Automatic optimization for virtual systems
US8752045B2 (en) * 2006-10-17 2014-06-10 Manageiq, Inc. Methods and apparatus for using tags to control and manage assets
US8234640B1 (en) 2006-10-17 2012-07-31 Manageiq, Inc. Compliance-based adaptations in managed virtual systems
US8312046B1 (en) * 2007-02-28 2012-11-13 Netapp, Inc. System and method for enabling a data container to appear in a plurality of locations in a super-namespace
DE102007026242A1 (de) * 2007-05-30 2008-12-11 Carad Beteiligungen Gmbh Datenspeichereinrichtung
US7886301B2 (en) * 2007-06-29 2011-02-08 Microsoft Corporation Namespace merger
US8887297B2 (en) * 2007-07-13 2014-11-11 Microsoft Corporation Creating and validating cryptographically secured documents
US8452789B2 (en) * 2007-10-15 2013-05-28 International Business Machines Corporation Searching a database
US8418173B2 (en) 2007-11-27 2013-04-09 Manageiq, Inc. Locating an unauthorized virtual machine and bypassing locator code by adjusting a boot pointer of a managed virtual machine in authorized environment
US8407688B2 (en) 2007-11-27 2013-03-26 Managelq, Inc. Methods and apparatus for storing and transmitting historical configuration data associated with information technology assets
US20090187978A1 (en) * 2008-01-18 2009-07-23 Yahoo! Inc. Security and authentications in peer-to-peer networks
JP5243804B2 (ja) * 2008-01-21 2013-07-24 インターナショナル・ビジネス・マシーンズ・コーポレーション 構成要素を管理するためのコンピュータ・システム、並びにその方法及びコンピュータ・プログラム
US8051080B2 (en) * 2008-04-16 2011-11-01 Yahoo! Inc. Contextual ranking of keywords using click data
US8515994B2 (en) * 2008-06-12 2013-08-20 International Business Machines Corporation Reaching resource neighborhoods
US7526554B1 (en) 2008-06-12 2009-04-28 International Business Machines Corporation Systems and methods for reaching resource neighborhoods
US8370417B2 (en) * 2008-06-30 2013-02-05 Motorola Solutions, Inc. Method for peer to peer subscriber registration and affiliation
US20100185652A1 (en) * 2009-01-16 2010-07-22 International Business Machines Corporation Multi-Dimensional Resource Fallback
US7953896B2 (en) * 2009-05-27 2011-05-31 Microsoft Corporation Managing user accounts and groups in multiple forests
US8086633B2 (en) * 2009-08-27 2011-12-27 International Business Machines Corporation Unified user identification with automatic mapping and database absence handling
US8341269B2 (en) * 2010-03-19 2012-12-25 International Business Machines Corporation Configuring cloud resources
US8751655B2 (en) * 2010-03-29 2014-06-10 International Business Machines Corporation Collective acceleration unit tree structure
US8473515B2 (en) * 2010-05-10 2013-06-25 International Business Machines Corporation Multi-tenancy in database namespace
US8676848B2 (en) 2010-06-09 2014-03-18 International Business Machines Corporation Configuring cloud resources
JP2012029244A (ja) * 2010-07-27 2012-02-09 Ricoh Co Ltd 通信装置、通信システム、通信方法、プログラムおよび記憶媒体
US8738673B2 (en) * 2010-09-03 2014-05-27 International Business Machines Corporation Index partition maintenance over monotonically addressed document sequences
US9779168B2 (en) 2010-10-04 2017-10-03 Excalibur Ip, Llc Contextual quick-picks
US10194314B2 (en) * 2010-10-22 2019-01-29 Blackberry Limited Method and system for identifying an entity in a mobile device ecosystem
US8578268B2 (en) * 2010-12-30 2013-11-05 Konica Minolta Laboratory U.S.A., Inc. Rendering electronic documents having linked textboxes
US8554951B2 (en) 2011-03-08 2013-10-08 Rackspace Us, Inc. Synchronization and ordering of multiple accessess in a distributed system
US8510267B2 (en) * 2011-03-08 2013-08-13 Rackspace Us, Inc. Synchronization of structured information repositories
US8712975B2 (en) 2011-03-08 2014-04-29 Rackspace Us, Inc. Modification of an object replica
US8538926B2 (en) 2011-03-08 2013-09-17 Rackspace Us, Inc. Massively scalable object storage system for storing object replicas
RU2454711C1 (ru) * 2011-04-04 2012-06-27 Общество с ограниченной ответственностью "СДН-видео" Способ распределения нагрузки между серверами сети доставки контента (cdn)
US8725681B1 (en) * 2011-04-23 2014-05-13 Infoblox Inc. Synthesized identifiers for system information database
US8549010B2 (en) 2011-05-13 2013-10-01 Nokia Corporation Method and apparatus for providing distributed key range management
US8510807B1 (en) * 2011-08-16 2013-08-13 Edgecast Networks, Inc. Real-time granular statistical reporting for distributed platforms
US8930320B2 (en) * 2011-09-30 2015-01-06 Accenture Global Services Limited Distributed computing backup and recovery system
US10277421B2 (en) * 2011-10-31 2019-04-30 Extreme Networks, Inc. Route lookup resolution
US9628438B2 (en) * 2012-04-06 2017-04-18 Exablox Consistent ring namespaces facilitating data storage and organization in network infrastructures
US8805880B2 (en) 2012-08-01 2014-08-12 International Business Machines Corporation Establishment, optimization, and routing of remote transitive name space access
US9438499B2 (en) * 2012-09-06 2016-09-06 Intel Corporation Approximation of the physical location of devices and transitive device discovery through the sharing of neighborhood information using wireless or wired discovery mechanisms
US8769105B2 (en) 2012-09-14 2014-07-01 Peaxy, Inc. Software-defined network attachable storage system and method
US8832254B1 (en) * 2012-10-29 2014-09-09 Symantec Corporation Systems and methods for managing registration and discovery of URI schemes
US20140188815A1 (en) * 2013-01-03 2014-07-03 Amazon Technologies, Inc Annotation of Resources in a Distributed Execution Environment
US9407583B2 (en) * 2013-03-15 2016-08-02 Red Hat, Inc. Handling unavailable destinations in a messaging network
US9112824B2 (en) 2013-03-15 2015-08-18 Red Hat, Inc. Forwarding multicast messages in a messaging network
US9552382B2 (en) 2013-04-23 2017-01-24 Exablox Corporation Reference counter integrity checking
US9514137B2 (en) 2013-06-12 2016-12-06 Exablox Corporation Hybrid garbage collection
JP2015001784A (ja) * 2013-06-13 2015-01-05 富士通株式会社 情報処理システム、情報処理装置、及び情報処理プログラム
CA2820492A1 (en) * 2013-06-18 2014-12-18 El Fresko Technologies Limited Namespace transformations
JP2016526720A (ja) 2013-06-19 2016-09-05 エグザブロックス・コーポレーション クラスタベースの記憶システムにおけるデータスクラビング
US9934242B2 (en) 2013-07-10 2018-04-03 Exablox Corporation Replication of data between mirrored data sites
US10747475B2 (en) 2013-08-26 2020-08-18 Vmware, Inc. Virtual disk blueprints for a virtualized storage area network, wherein virtual disk objects are created from local physical storage of host computers that are running multiple virtual machines
US9811531B2 (en) * 2013-08-26 2017-11-07 Vmware, Inc. Scalable distributed storage architecture
US9887924B2 (en) 2013-08-26 2018-02-06 Vmware, Inc. Distributed policy-based provisioning and enforcement for quality of service
US11016820B2 (en) 2013-08-26 2021-05-25 Vmware, Inc. Load balancing of resources
US10536545B2 (en) * 2013-09-27 2020-01-14 Oracle International Corporation Cloud database connection multiplexing
US10248556B2 (en) 2013-10-16 2019-04-02 Exablox Corporation Forward-only paged data storage management where virtual cursor moves in only one direction from header of a session to data field of the session
US9985829B2 (en) 2013-12-12 2018-05-29 Exablox Corporation Management and provisioning of cloud connected devices
US9774582B2 (en) 2014-02-03 2017-09-26 Exablox Corporation Private cloud connected device cluster architecture
WO2015120071A2 (en) 2014-02-04 2015-08-13 Exablox Corporation Content based organization of file systems
US10812313B2 (en) * 2014-02-24 2020-10-20 Netapp, Inc. Federated namespace of heterogeneous storage system namespaces
EP3161610B1 (en) * 2014-06-26 2020-08-05 Google LLC Optimized browser rendering process
CN106462582B (zh) 2014-06-26 2020-05-15 谷歌有限责任公司 批处理优化渲染和获取架构
CN104158854B (zh) * 2014-07-23 2015-11-11 小米科技有限责任公司 资源共享方法及装置
US9800519B2 (en) * 2014-08-21 2017-10-24 Microsoft Technology Licensing, Llc Equitable sharing of system resources in workflow execution
WO2016032500A1 (en) * 2014-08-29 2016-03-03 Hewlett Packard Enterprise Development Lp Resource trees by management controller
US9311811B1 (en) * 2014-10-08 2016-04-12 Google Inc. Alarm profile for a fabric network
US10001913B2 (en) 2015-04-01 2018-06-19 Dropbox, Inc. Shared workspaces with selective content item synchronization
US10963430B2 (en) 2015-04-01 2021-03-30 Dropbox, Inc. Shared workspaces with selective content item synchronization
US9922201B2 (en) * 2015-04-01 2018-03-20 Dropbox, Inc. Nested namespaces for selective content sharing
US10474654B2 (en) 2015-08-26 2019-11-12 Storagecraft Technology Corporation Structural data transfer over a network
US10140122B2 (en) 2015-09-23 2018-11-27 Hanan Potash Computer processor with operand/variable-mapped namespace
US10691718B2 (en) 2015-10-29 2020-06-23 Dropbox, Inc. Synchronization protocol for multi-premises hosting of digital content items
US9697269B2 (en) 2015-10-29 2017-07-04 Dropbox, Inc. Content item block replication protocol for multi-premises hosting of digital content items
US9537952B1 (en) 2016-01-29 2017-01-03 Dropbox, Inc. Apparent cloud access for hosted content items
ES2911020T3 (es) * 2016-03-28 2022-05-17 Aiphone Co Ltd Dispositivo terminal y sistema de intercomunicación que se proporciona con el dispositivo terminal
US11093286B2 (en) * 2016-04-26 2021-08-17 Hanan Potash Computing device with resource manager and civilware tier
US9846553B2 (en) 2016-05-04 2017-12-19 Exablox Corporation Organization and management of key-value stores
US10721275B2 (en) * 2017-01-23 2020-07-21 Fireeye, Inc. Automated enforcement of security policies in cloud and hybrid infrastructure environments
US10812570B1 (en) * 2017-08-02 2020-10-20 Intuit Inc. System for data consolidation across disparate namespaces
US10686844B2 (en) * 2018-01-17 2020-06-16 International Business Machines Corporation Trusted group identification code
US10705856B2 (en) 2018-03-28 2020-07-07 Ebay Inc. Network address management systems and methods
US11030185B2 (en) 2018-05-07 2021-06-08 Microsoft Technology Licensing, Llc Schema-agnostic indexing of distributed databases
DE102018113082A1 (de) * 2018-05-31 2019-12-05 Atos Information Technology GmbH System von dynamisch verwalteten / selbstorganisierenden Objektnetzwerken
US10735369B2 (en) 2018-06-22 2020-08-04 Microsoft Technology Licensing, Llc Hierarchical namespace service with distributed name resolution caching and synchronization
CN112438040A (zh) * 2019-07-01 2021-03-02 思杰系统有限公司 用于使用命名空间访问计算资源的系统和方法
US11290531B2 (en) 2019-12-04 2022-03-29 Dropbox, Inc. Immediate cloud content item creation from local file system interface
US11955184B2 (en) 2022-05-10 2024-04-09 Sandisk Technologies Llc Memory cell group read with compensation for different programming speeds

Family Cites Families (92)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5483652A (en) * 1994-01-24 1996-01-09 Digital Equipment Corporation Mechanism for locating without search discrete application resources known by common name only in a distributed network computing environment
US5692180A (en) * 1995-01-31 1997-11-25 International Business Machines Corporation Object-oriented cell directory database for a distributed computing environment
CA2179337C (en) * 1995-08-22 2000-11-14 Thomas F. Laporta Network-based migrating user agents for personal communication services
US5831975A (en) * 1996-04-04 1998-11-03 Lucent Technologies Inc. System and method for hierarchical multicast routing in ATM networks
US5704407A (en) 1996-09-16 1998-01-06 Hamby, Jr.; Thomas E. Tree delimbing device
AT1751U1 (de) 1996-09-30 1997-10-27 Kuehn Eva Koordinations-system
US5893116A (en) * 1996-09-30 1999-04-06 Novell, Inc. Accessing network resources using network resource replicator and captured login script for use when the computer is disconnected from the network
US6353929B1 (en) 1997-06-23 2002-03-05 One River Worldtrek, Inc. Cooperative system for measuring electronic media
US6061743A (en) * 1998-02-19 2000-05-09 Novell, Inc. Method and apparatus for aggregating disparate namespaces
US6665702B1 (en) * 1998-07-15 2003-12-16 Radware Ltd. Load balancing
US6381627B1 (en) * 1998-09-21 2002-04-30 Microsoft Corporation Method and computer readable medium for discovering master DNS server computers for a given domain name in multiple master and multiple namespace configurations
US6411966B1 (en) * 1998-09-21 2002-06-25 Microsoft Corporation Method and computer readable medium for DNS dynamic update to minimize client-server and incremental zone transfer traffic
US6701415B1 (en) * 1999-03-31 2004-03-02 America Online, Inc. Selecting a cache for a request for information
EP1052802B1 (de) 1999-05-11 2005-02-02 LANCOM Systems GmbH Verfahren zur Kopplung von NetBIOS Netzwerken und Rechnern
US6546415B1 (en) * 1999-05-14 2003-04-08 Lucent Technologies Inc. Network management system using a distributed namespace
US6553423B1 (en) * 1999-05-27 2003-04-22 Cisco Technology, Inc. Method and apparatus for dynamic exchange of capabilities between adjacent/neighboring networks nodes
US6505244B1 (en) 1999-06-29 2003-01-07 Cisco Technology Inc. Policy engine which supports application specific plug-ins for enforcing policies in a feedback-based, adaptive data network
US7065784B2 (en) * 1999-07-26 2006-06-20 Microsoft Corporation Systems and methods for integrating access control with a namespace
US7463648B1 (en) * 1999-08-23 2008-12-09 Sun Microsystems, Inc. Approach for allocating resources to an apparatus based on optional resource requirements
US6826182B1 (en) 1999-12-10 2004-11-30 Nortel Networks Limited And-or multi-cast message routing method for high performance fault-tolerant message replication
US6807423B1 (en) * 1999-12-14 2004-10-19 Nortel Networks Limited Communication and presence spanning multiple access networks
AU2000231428A1 (en) * 2000-03-10 2001-09-17 Shenzhen Liming Network Systems Co., Ltd. A platform of information switch
EP1139602A1 (en) 2000-03-31 2001-10-04 Lucent Technologies Inc. Method and device for multicasting
CN1300677C (zh) 2000-06-22 2007-02-14 微软公司 分布式计算服务平台
US7379994B2 (en) * 2000-10-26 2008-05-27 Metilinx Aggregate system resource analysis including correlation matrix and metric-based analysis
US7072982B2 (en) * 2000-11-22 2006-07-04 Microsoft Corporation Universal naming scheme for peer to peer resources
US6965575B2 (en) 2000-12-29 2005-11-15 Tropos Networks Selection of routing paths based upon path quality of a wireless mesh network
WO2002056182A2 (en) 2001-01-12 2002-07-18 Epicrealm Operating Inc Method and system for community data caching
US7188145B2 (en) * 2001-01-12 2007-03-06 Epicrealm Licensing Llc Method and system for dynamic distributed data caching
WO2002057917A2 (en) * 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
US6956821B2 (en) 2001-01-30 2005-10-18 Telefonaktiebolaget L M Ericsson (Publ) Path determination in a data network
US7062563B1 (en) * 2001-02-28 2006-06-13 Oracle International Corporation Method and system for implementing current user links
US20020184368A1 (en) * 2001-04-06 2002-12-05 Yunsen Wang Network system, method and protocols for hierarchical service and content distribution via directory enabled network
US7209973B2 (en) 2001-04-09 2007-04-24 Swsoft Holdings, Ltd. Distributed network data storage system and method
US20030018701A1 (en) 2001-05-04 2003-01-23 Gregory Kaestle Peer to peer collaboration for supply chain execution and management
US7016085B2 (en) 2001-08-31 2006-03-21 Hewlett-Packard Development Company, L.P. Remote proofing service adaptively isolated from the internet
DE10143754A1 (de) 2001-09-06 2003-04-03 Siemens Ag Skalierbares Peer-to-Peer-Netzwerk mit einem Verzeichnisdienst
US8001189B2 (en) * 2001-10-16 2011-08-16 Microsoft Corporation Routing of network messages
US20030088620A1 (en) 2001-11-05 2003-05-08 Microsoft Corporation Scaleable message dissemination system and method
US20030126304A1 (en) * 2001-12-31 2003-07-03 Wyatt David A. Method for attaching a resource to a parent within a global resource namespace
US7076796B2 (en) * 2002-01-04 2006-07-11 Reeves Drue A Virtual media from a directory service
CN1613084A (zh) * 2002-01-08 2005-05-04 提维股份有限公司 电子内容分发与交换系统
US7085848B2 (en) 2002-03-15 2006-08-01 Microsoft Corporation Time-window-constrained multicast using connection scheduling
US6938042B2 (en) 2002-04-03 2005-08-30 Laplink Software Inc. Peer-to-peer file sharing
US7058639B1 (en) * 2002-04-08 2006-06-06 Oracle International Corporation Use of dynamic multi-level hash table for managing hierarchically structured information
JP2003316636A (ja) * 2002-04-23 2003-11-07 Fuji Xerox Co Ltd 計算機リソース管理装置および方法
US7310314B1 (en) * 2002-06-10 2007-12-18 Juniper Networks, Inc. Managing periodic communications
US20030233455A1 (en) 2002-06-14 2003-12-18 Mike Leber Distributed file sharing system
US7200113B2 (en) * 2002-06-17 2007-04-03 Siemens Communications, Inc. Apparatus and method for isochronous network delay compensation
US20040083305A1 (en) * 2002-07-08 2004-04-29 Chung-Yih Wang Packet routing via payload inspection for alert services
US7613796B2 (en) * 2002-09-11 2009-11-03 Microsoft Corporation System and method for creating improved overlay network with an efficient distributed data structure
JP2004110624A (ja) * 2002-09-20 2004-04-08 Fuji Xerox Co Ltd 計算機リソース管理装置および方法
US7206934B2 (en) 2002-09-26 2007-04-17 Sun Microsystems, Inc. Distributed indexing of identity information in a peer-to-peer network
JP3836858B2 (ja) 2002-09-27 2006-10-25 富士通株式会社 データ配信方法、システム、伝送方法及びプログラム
US7200657B2 (en) * 2002-10-01 2007-04-03 International Business Machines Corporation Autonomic provisioning of network-accessible service behaviors within a federated grid infrastructure
EP1414211A1 (en) 2002-10-23 2004-04-28 Sony International (Europe) GmbH Software architecture for capability and quality-of-service negotiations and session establishment for distributed multimedia applications
US8037202B2 (en) * 2002-10-31 2011-10-11 Oracle America, Inc. Presence detection using mobile agents in peer-to-peer networks
US20040098455A1 (en) 2002-11-14 2004-05-20 Motorola, Inc. Method and apparatus for controlling communications between subscriber units
US7010534B2 (en) 2002-11-16 2006-03-07 International Business Machines Corporation System and method for conducting adaptive search using a peer-to-peer network
US7152180B2 (en) * 2002-12-06 2006-12-19 Ntt Docomo, Inc. Configurable reliable messaging system
US7899932B2 (en) * 2003-01-15 2011-03-01 Panasonic Corporation Relayed network address translator (NAT) traversal
US7533141B2 (en) * 2003-01-24 2009-05-12 Sun Microsystems, Inc. System and method for unique naming of resources in networked environments
US7774495B2 (en) * 2003-02-13 2010-08-10 Oracle America, Inc, Infrastructure for accessing a peer-to-peer network environment
US7293286B2 (en) * 2003-02-20 2007-11-06 Bea Systems, Inc. Federated management of content repositories
JP4517578B2 (ja) 2003-03-11 2010-08-04 株式会社日立製作所 ピアツーピア通信装置および通信方法
US7200675B2 (en) * 2003-03-13 2007-04-03 Microsoft Corporation Summary-based routing for content-based event distribution networks
US7693952B2 (en) * 2003-03-27 2010-04-06 Microsoft Corporation Availability and scalability in a messaging system in a manner transparent to the application
US7831641B2 (en) 2003-04-24 2010-11-09 Neopath Networks, Inc. Large file support for a network file server
US20040249953A1 (en) * 2003-05-14 2004-12-09 Microsoft Corporation Peer-to-peer instant messaging
US7426637B2 (en) * 2003-05-21 2008-09-16 Music Public Broadcasting, Inc. Method and system for controlled media sharing in a network
DE602004030446D1 (de) * 2003-06-12 2011-01-20 Camiant Inc Dynamische dienstablieferung mit topologie-discovery für kommunikationsnetzwerke
US7602725B2 (en) 2003-07-11 2009-10-13 Computer Associates Think, Inc. System and method for aggregating real-time and historical data
US7415711B2 (en) * 2003-08-01 2008-08-19 Microsoft Corporation System and method for a transport independent gaming API for mobile devices
US20050044301A1 (en) 2003-08-20 2005-02-24 Vasilevsky Alexander David Method and apparatus for providing virtual computing services
JP2005092784A (ja) 2003-09-19 2005-04-07 Nippon Telegraph & Telephone West Corp 検索方式の動的切替方法、検索方式を動的に切り替える装置、及び検索方式を動的に切り替える切替プログラム
US7392422B2 (en) 2003-10-20 2008-06-24 Sony Computer Entertainment America Inc., Violations in a peer-to-peer relay network
JP2005142959A (ja) 2003-11-07 2005-06-02 Toshiba Solutions Corp アドホック通信システムおよびその通信装置、ならびに送信先決定方法
JP2005148956A (ja) 2003-11-12 2005-06-09 Denso It Laboratory Inc 情報配布方法及び情報配布処理用プログラム
US7340169B2 (en) 2003-11-13 2008-03-04 Intel Corporation Dynamic route discovery for optical switched networks using peer routing
US8104043B2 (en) 2003-11-24 2012-01-24 Microsoft Corporation System and method for dynamic cooperative distributed execution of computer tasks without a centralized controller
US20050182856A1 (en) * 2003-12-22 2005-08-18 Mcknett Charles L. Systems and methods for creating time aware networks using independent absolute time values in network devices
JP2005223722A (ja) 2004-02-06 2005-08-18 Matsushita Electric Ind Co Ltd 携帯端末及び車載端末
JP2005252755A (ja) 2004-03-05 2005-09-15 Mitsubishi Electric Corp 情報配信システム及び情報配信装置及び通信装置及び情報配信方法及び通信方法及びプログラム
US7613703B2 (en) * 2004-09-30 2009-11-03 Microsoft Corporation Organizing resources into collections to facilitate more efficient and reliable resource access
US7640299B2 (en) 2004-09-30 2009-12-29 Microsoft Corporation Optimizing communication using scaleable peer groups
US20070133520A1 (en) 2005-12-12 2007-06-14 Microsoft Corporation Dynamically adapting peer groups
FR2876233A1 (fr) 2004-10-06 2006-04-07 St Microelectronics Sa Filtre analogique a composants passifs pour signaux a temps discret
US8014321B2 (en) 2004-10-22 2011-09-06 Microsoft Corporation Rendezvousing resource requests with corresponding resources
US8549180B2 (en) 2004-10-22 2013-10-01 Microsoft Corporation Optimizing access to federation infrastructure-based resources
US20060167841A1 (en) * 2004-11-18 2006-07-27 International Business Machines Corporation Method and system for a unique naming scheme for content management systems
US7814226B2 (en) 2006-09-19 2010-10-12 Bea Systems, Inc. System and method for supporting service networks in a service-oriented architecture environment
TWI390869B (zh) 2008-04-24 2013-03-21 Univ Nat Taiwan 網路資源分配系統及方法

Also Published As

Publication number Publication date
RU2005130350A (ru) 2007-04-10
US9244926B2 (en) 2016-01-26
EP1643730A3 (en) 2012-06-13
EP1643730B1 (en) 2014-03-26
US8275826B2 (en) 2012-09-25
US20100005071A1 (en) 2010-01-07
US20120331103A1 (en) 2012-12-27
KR20060050878A (ko) 2006-05-19
CN100578494C (zh) 2010-01-06
CA2833834C (en) 2015-11-03
US8892626B2 (en) 2014-11-18
US20090327312A1 (en) 2009-12-31
AU2005203695A1 (en) 2006-04-13
CA2517538A1 (en) 2006-03-30
JP2006107501A (ja) 2006-04-20
CA2517538C (en) 2014-03-04
US7496602B2 (en) 2009-02-24
US8307028B2 (en) 2012-11-06
RU2409846C2 (ru) 2011-01-20
BRPI0504205A (pt) 2006-05-09
US20060074876A1 (en) 2006-04-06
CA2833834A1 (en) 2006-03-30
MXPA05009679A (es) 2006-04-05
CN1755694A (zh) 2006-04-05
US7613703B2 (en) 2009-11-03
EP1643730A2 (en) 2006-04-05
US20120331122A1 (en) 2012-12-27
KR101153014B1 (ko) 2012-06-08
US20060117024A1 (en) 2006-06-01

Similar Documents

Publication Publication Date Title
JP4879547B2 (ja) より効率的なおよび確かなリソースアクセスを容易にするコレクションへのリソースの編成
US9961164B2 (en) DNS overriding-based methods of accelerating content delivery
Pietzuch Hermes: A scalable event-based middleware
US9130970B2 (en) Systems for accelerating content delivery via DNS overriding
US7143139B2 (en) Broadcast tiers in decentralized networks
US7251689B2 (en) Managing storage resources in decentralized networks
US8549180B2 (en) Optimizing access to federation infrastructure-based resources
US7069318B2 (en) Content tracking in transient network communities
US7181536B2 (en) Interminable peer relationships in transient communities
JP3899076B2 (ja) 一時的ネットワーク
JP4437956B2 (ja) ファイル共有アプリケーションに対するインデックス・サーバ・サポートを提供する方法
Friese et al. A framework for resource management in peer-to-peer networks
Pöhlsen et al. Integrating a decentralized web service discovery system into the internet infrastructure
Schmidt The p-grid system-overview
Yan et al. ISBORD: Internet Searching Based on Resource

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080930

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110727

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110809

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111101

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111125

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111130

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141209

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees