CN1755694A - 将资源组织成集合以促进更有效和可靠的资源访问 - Google Patents

将资源组织成集合以促进更有效和可靠的资源访问 Download PDF

Info

Publication number
CN1755694A
CN1755694A CNA2005101133213A CN200510113321A CN1755694A CN 1755694 A CN1755694 A CN 1755694A CN A2005101133213 A CNA2005101133213 A CN A2005101133213A CN 200510113321 A CN200510113321 A CN 200510113321A CN 1755694 A CN1755694 A CN 1755694A
Authority
CN
China
Prior art keywords
resource
name space
name
action
space
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.)
Granted
Application number
CNA2005101133213A
Other languages
English (en)
Other versions
CN100578494C (zh
Inventor
G·K·R·卡其瓦亚
R·L·哈萨
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 Technology Licensing LLC
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 CN1755694A publication Critical patent/CN1755694A/zh
Application granted granted Critical
Publication of CN100578494C publication Critical patent/CN100578494C/zh
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)

Abstract

本发明扩展了将资源组织成集合以促进更有效和可靠的资源访问的方法、***和计算机程序产品。名字空间管理器彼此通信以形成联盟名字空间基础结构。该基础结构可以有效地路由、迁移和处理名字空间请求,诸如例如,来自请求管理名字空间各部分的供应者的名字空间注册请求和来自请求对受管理资源访问的消费者的查找请求。资源可以注册在多个不同名字空间中并且使它们可以从多个不同名字空间访问。资源可以使用嵌套的查询来标识,这些查询在分层名字空间的多个层上过滤结果。

Description

将资源组织成集合以促进更有效和可靠的资源访问
技术领域
本发明涉及组织资源,且更具体地说,涉及将资源组织成集合以促进更有效和可靠的资源访问。
背景技术
计算机***及相关技术影响社会的许多方面。确实,计算机***处理信息的能力已经改变了我们的生活和工作方式。计算机***现在一般用作任务(例如,字处理,安排时间和数据库管理)的主机,这些任务在计算机***出现之前是手工完成的。最近,计算机***已经彼此耦合并且与其它电子设备耦合,形成有线和无线两者的计算机网络,在网络上计算机***和其它电子设备能够传送电子数据。结果,在计算机***上执行的许多任务(例如,语音通信,访问电子邮件,控制家用电子产品,Web浏览,以及打印文档)包括大量计算机***和/或其它电子设备之间通过有线和/或无线计算机网络的电子通信。
由于可通过计算机网络访问的资源(例如设备和服务)的数量和多样化,因此开发了各种各样不同的访问机制。许多访问机制使用不同的协议。例如,访问万维网(“WWW”)上的网页通常是使用超文本传输协议(“HTTP”)来进行的。另一方面,访问来自远程位置的文件可以使用文件传输协议(“FTP”)来进行。有时,相同的内容可以在不同时间使用不同协议来传输。例如,电子邮件消息可以在邮件服务器之间使用简单邮件传输协议来传输,并且随后使用因特网消息访问协议(“IMAP”)或者邮局协议(“POP”)来传送到客户机。
然而,在可以使用协议传送或者访问资源之前,相应的访问机制必须具有某种方法来标识要访问或者传输的资源。例如,在Web浏览器可以使用HTTP访问Web网页之前,Web浏览器必须具有某种方法来标识要访问的Web网页。同样,在邮件客户机能够使用IMAP或者POP接收电子邮件消息之前,邮件客户机必须具有某种方法来标识存储电子邮件的邮件服务器。因此,实际上所有资源访问机制还包括可以用于标识资源的标识机制。
一种标识机制包括使用网络地址(例如互联网协议(“IP”)地址)来标识相应的计算设备(例如,膝上型计算机,邮件服务器,打印机,PDA等等)。通过网络地址标识计算设备在较小的网络(例如,家庭区域网络(“HAN”))上和/或在网络地址相对不频繁地改变的网络上可能足够了。然而,在分布式较大规模的网络上,使用网络地址作为标识机制常常有问题。例如,由于因特网上巨量的计算设备,因此,要让用户记住用户想要访问的每个计算设备的IP地址,即使不是不可能,也是很困难的。而且,始终存在供应者会改变计算设备网络地址的可能性或者将计算设备的拥有权转移到一个控制不同网络地址的不同供应者。因而,随后的以先前已知的网络地址对一个计算设备的访问企图会失败,并且没有容易地确定最新的网络地址的方法。
因此,其它标识机制将网络地址表示为字母串,它一般更易于记忆并且对网络地址提供某种程度的抽象。例如,域名服务(“DNS”)可以用于将IP地址表示为字母串(例如,相应于域名)。当字母串用于标识计算设备时,DNS检查翻译数据库,将字母串翻译成该计算设备的相应IP地址。而且,当将新的IP地址分配给计算设备时,可以更新翻译数据库,使得先前使用的标识该计算设备的字母串相应于新的IP地址。因而,DNS提供一种抽象层,它允许计算设备的IP地址改变而不必改变表示该计算设备的字母串。相应地,如果供应者改变一个计算设备的IP地址,则同一字母串经常可以用于访问该计算设备。
然而,由于计算机***可以配置成同时提供许多不同的服务,因此仅使用DNS不足以标识一个计算设备的特定资源。例如,在有些环境中,使用DNS作为唯一的标识机制,会使它难以区分由同一Web服务器提供的不同服务(电子邮件,搜索功能等)。即,标识Web服务器(例如,通过网络地址或者字母串)不一定提供由Web服务器提供的特定服务的任何指示。因而,为访问Web服务器的电子邮件服务,标识机制需要有某种方法将电子邮件服务与Web服务器的其它服务区分开来。
统一资源标识符(“URI”)是一种已经开发的机制,它更精确地标识资源。URI可以包括网络地址或者标识计算设备的字母串,以及一个附加的字母数字串,标识计算设备上的特定资源。统一资源定位符(“URL”)指一个URI子集,它们通过它们的主要访问机制的表示(例如,它们的网络位置)来标识资源。全球资源名字(“URN”)指一个URI子集,要求它们保持全球唯一和持久不变,即使相应的资源停止存在。
URL一般用于访问因特网上的资源。例如,URL“http://[域名]/[字母数字串]”可以用于标识WWW上一个计算设备处的特定资源。URL通常还细分成不同的方案,表示不同(经常是分层的)名字空间。例如,在因特网上使用的一些不同方案包括ftp,http,gopher,mailto,news和telent。这些方案的每一个分别代表一个不同的相应名字空间。其好处在于,资源的标识范围可以跨不同名字空间,并且每个方案可以具有不同的语法来标识其相应名字空间内的资源。例如,标识http名字空间中资源的语法和标识fpt名字空间中资源的语法可以不同。
遗憾的是,由于至少部分不同方案具有不同的语法,因此,配置对资源的访问,使得资源可以从多个名字空间内来访问,这如果不是不可能,也常常是困难的。即,使资源可从一个名字空间访问,一般就阻止该资源从其它名字空间来访问。例如,http方案一般不能用于标识已经配置为使用ftp方案(和使用ftp的传输)标识的资源。即,http://[域名]/[字母数字串]形式的URL一般不能用于标识ftp名字空间中的资源。
而且,典型的资源标识机制具有有限的查询能力。例如,一个URL子集共享一个公共语法,用于表示具有指定名字空间的分层关系。这个子集的URI可以具有<scheme>://<authority><path>?<query>(<方案>://<当局><路径>?<查询>)形式,其中查询部分是由在<scheme>://<authority><path>(<方案>://<当局><路径>)处的资源解释的信息串。这有利于对资源发出查询,诸如例如,以执行一个搜索或者发现资源能力。
然而,典型的资源标识机制即使有,也只有有限的功能来使用URI查询包含在名字空间中的资源的名字空间。用于某些名字空间的URI语法允许查询功能,但只在名字空间内的最低层(例如,在叶节点)。这至少部分地是由于现有的名字空间机制不将中间节点视为资源的事实所导致的。因而,可以格式化表示URI以查询特定端点处的文本文件,诸如例如,表示一个指定公司Web网站的URI。然而,格式化表示URI以只从每个以“.com”结束的域对同一名字空间分层结构查询文本文件,即使不是不可能,也是困难的。
而且,现有的搜索机制要求高速缓存大量的资源信息。例如,大多数因特网搜索引擎不断地扫描因特网中的新URL并在本地高速缓存该URL。当一个搜索(或者查询)被提交给搜索引擎时,搜索引擎搜索高速缓存的URL。因而,如果没有高速缓存资源的URL或者在高速缓存之后URL改变了,则在搜索结果中不能返回资源的该URL或正确URL。因此,促进更有效和可靠的资源访问的***、方法、计算机程序产品是有益的。
发明内容
与背景技术有关的上述问题由本发明的原理来克服,本发明的目标是将资源组成集合以促进更有效和可靠的资源访问的方法、***和计算机程序产品。在有些实施例中,在名字空间联盟基础结构中传输名字空间注册请求。接收注册一个名字空间分支的名字空间注册请求,该名字空间注册请求包括一个名字空间串,它标识该名字空间分支。一个至少单向的等价数字标识值如散列值,是基于平面URI方案的整个名字空间串或者基于直到分层的URL方案的名字空间串的第一路径段的部分产生的。名字空间注册请求被发送(并且有可能被路由)到一个名字空间管理器,它具有一个在数字上比其它名字空间管理器的标识符更接近至少单向的等价数字标识值的标识符。该名字空间分支与该名字空间管理器相关联。
在其它实施例中,在名字空间联盟基础结构中迁移一个名字空间注册请求。确定名字空间管理器已经满足了政策约束。标识能够迁移来满足与该政策约束相关联的政策动作的名字空间分支。该名字空间分支的现有注册,响应于该政策动作,被迁移到一个合作伙伴名字空间管理器。
在还有的其它实施例中,在名字空间联盟基础结构中处理一个名字空间注册请求。接收注册一个名字空间分支的名字空间注册请求。该名字空间注册请求包括一个标识该名字空间分支的名字空间串和一个请求注册该名字空间分支的供应者的标识符。确定名字空间管理器对该名字空间分支感兴趣。该名字空间串保存在一个经适当索引的名字空间注册数据库中。还确定注册请求发起者(例如名字空间供应者)的活动性随后要以什么频度来验证。
在还有一些实施例中,在名字空间联盟基础结构中发送(并且有可能路由)一个名字空间查找请求。接收包括标识一个名字空间分支的名字空间串的名字空间查找请求。一个至少单向的等价数字标识值如散列值,是基于平面URI方案的整个名字空间串或者基于直到分层URI方案的名字空间串的第一路径段的部分产生的。名字空间查找请求被发送(并且有可能被路由)到一个目的地名字空间管理器,例如,按照接近度量。目的地名字空间管理器可以是在一个具有唯一的在数字上最接近该至少单向的等价数字标识值的标识符的名字空间管理器的预定范围内的邻近名字空间管理器中的任何一个。名字空间查找请求被转送以交付给相应注册请求的发起者(例如名字空间供应者),它们已经表达了对该名字空间分支感兴趣或者负责该名字空间分支。
在还有一些另外的实施例中,在联盟名字空间基础结构中迁移一个名字空间查找请求。名字空间管理器接收一个名字空间分支的名字空间查找请求。该名字空间管理器包括一个唯一的名字空间标识符,它标识该名字空间分支。名字空间管理器唯一的标识符标识比一个或多个其它名字空间管理器的名字空间管理器唯一标识符更接近于所产生的名字空间分支唯一标识符(例如,至少单向的等价数字标识值)的名字空间管理器。检测名字空间分支已经被迁移到一个具有不同名字空间管理器唯一标识符的名字空间管理器的标志。
在还有一些其它实施例中,在联盟名字空间基础结构中处理一个名字空间查找请求。接收包括标识一个名字空间的名字空间分支的名字空间串的名字空间查找请求。标识该名字空间查找请求的名字空间查找请求类型。检测一个或多个已经注册了与该名字空间分支相关的名字空间的部分的供应者。基于所标识的名字空间查找请求类型,该名字空间查找请求被转送到至少一个供应者。
在其它实施例中,一个资源参加到联盟名字空间基础结构中的多个名字空间。建立资源的唯一资源标识符。在第一名字空间中发布该资源的可用性。该唯一资源标识符被链接到第一名字空间中一个现有的名字空间节点资源,使得可以穿过第一名字空间来标识该资源。在第二名字空间中发布该资源的可用性。该唯一资源标识符被链接到第二名字空间中的一个现有的名字空间节点资源,使得可以穿过第二名字空间来标识该资源。
在还有的一些其它实施例中,标识名字空间联盟基础结构中的一个资源子集。从一个发起者接收一个查询。该查询包括第一查询部分,它标识在名字空间分层结构的第一层上满足第一查询准则的第一部分资源。该查询包括第二查询部分,它标识从包括在第一部分资源内的资源中选择的第二部分资源。第二部分资源是在名字空间联盟基础结构中第二不同位置上标识的。第二部分资源的身分被返回给发起者。
在还有的其它实施例中,组织多个资源。确定一个资源被包括在一个或多个名字空间内,其中,这一个或多个名字空间的每一个被配置成组织一个或多个资源。标识在这一个或多个名字空间的第一名字空间内的第一资源,并且标识与该资源相关的名字空间。第一名字空间段用于将该资源链接到第一资源,使得可以穿越该名字空间段从第一资源导航到该名字空间内的该资源。
本发明的这些和其它目标和特征,通过下面的描述和所附权利要求书将变得更显而易见,或者可通过如下所述的本发明实践来了解。
附图说明
为进一步阐明本发明的上述和其它优点与特征,将参考特定的实施例和说明它们的附图来呈现本发明的更具体的描述。要意识到,这些附图只示出了本发明的典型实施例,并因此不能认为是对本发明范围的限制。通过使用附图,用附加的特异性和细节来描述和说明本发明,这些附图是:
图1例示了一个名字空间联盟基础结构的例子。
图2例示了一个促进将请求间接地路由到合作伙伴的计算机体系结构的例子。
图3例示了一个名字空间联盟基础结构中名字空间管理器之间的二元关系。
图4例示了一个促进将名字空间联盟基础结构与其它协议集成的体系结构的例子。
图5例示了从一个名字空间的供应者和集合视图来看的名字空间联盟基础结构的例子。
图6例示了具有使其在多个名字空间中可用的资源的示例名字空间联盟基础结构。
图7A例示了一个路由名字空间注册请求的方法的示例流程图。
图7B例示了一个迁移名字空间注册请求的方法的示例流程图。
图7C例示了一个处理名字空间注册请求的方法的示例流程图。
图8A例示了一个路由名字空间查找请求的方法的示例流程图。
图8B例示了一个迁移名字空间查找请求的方法的示例流程图。
图8C例示了一个处理名字空间查找请求的方法的示例流程图。
图9例示了一个资源参加多个名字空间的方法的示例流程图。
图10例示了一个标识名字空间联盟基础结构中资源子集的方法的示例流程图。
图11例示了一个适合于本发明原理的操作环境。
图12例示了一个组织多个资源的方法的示例流程图。
图13例示了可以用于描述资源的示例模式分类法。
详细说明
本发明的原理提供将资源组织成集合,以促进更有效和可靠的资源访问。在有些实施例中,在一个名字空间联盟基础结构中传输名字空间注册请求。接收注册一个名字空间分支的名字空间注册请求,该名字空间注册请求包括一个标识该名字空间分支的名字空间串。一个至少单向的等价数字标识值如散列值,是基于平面URI方案的整个名字空间串或者基于直到分层URI模式的名字空间串的第一路径段的部分产生的。名字空间注册请求被发送(并且有可能被路由)到一个名字空间管理器,它具有在数字上比其它名字空间管理器的标识符更接近该至少单向的等价数字标识值的标识符。将该名字空间分支与该名字空间管理器相关联。
在其它实施例中,在一个名字空间联盟基础结构中迁移一个名字空间注册请求。确定一个名字空间管理器已经满足了政策约束。标识能够迁移来满足与该政策约束相关联的政策动作的名字空间分支。该名字空间分支的现有注册,响应于该政策动作,被迁移到一个合作伙伴名字空间管理器。
在还有的其它实施例中,在一个名字空间联盟基础结构中处理一个名字空间注册请求。接收注册一个名字空间分支的名字空间注册请求。该名字空间注册请求包括一个标识该名字空间分支的名字空间串和请求注册该名字空间分支的供应者的标识符。确定名字空间管理器对该名字空间分支感兴趣。该名字空间串保存在一个经适当索引的名字空间注册数据库中。还确定注册请求发起者(例如名字空间供应者)的活动性随后要以什么频度来验证。
在还有一些实施例中,在一个名字空间联盟基础结构中发送(并且有可能路由)一个名字空间查找请求。接收包括标识一个名字空间分支的名字空间串的名字空间查找请求。一个至少单向的等价数字标识值如散列值,是基于平面URI方案的整个名字空间串或者基于直到分层URI方案的名字空间串的第一路径段的部分产生的。名字空间查找请求被发送(并且有可能被路由)到一个目的地名字空间管理器,例如,按照接近度量。目的地名字空间管理器可以是在一个具有唯一的在数字上最接近该至少单向的等价数字标识值的标识符的名字空间管理器的预定范围内的邻近名字空间管理器中的任何一个。名字空间查找请求被转送以交付给相应注册请求的发起者(例如名字空间供应者),它们已经表达了对该名字空间分支感兴趣或者负责该名字空间分支。
在还有一些另外的实施例中,在一个联盟名字空间基础结构中迁移一个名字空间查找请求。名字空间管理器接收一个名字空间分支的名字空间查找请求。该名字空间管理器包括一个唯一的名字空间标识符,它标识该名字空间分支。名字空间管理器唯一的标识符标识比一个或多个其它名字空间管理器的名字空间管理器唯一标识符更接近所产生的名字空间分支唯一标识符(例如,至少单向的等价数字标识值)的名字空间管理器。检测名字空间分支已经被迁移到一个具有不同名字空间管理器唯一标识符的名字空间管理器的标志。
在还有一些其它实施例中,在一个联盟名字空间基础结构中处理一个名字空间查找请求。接收包括标识一个名字空间的名字空间分支的名字空间串的名字空间查找请求。标识该名字空间查找请求的名字空间查找请求类型。检测一个或多个已经注册了与该名字空间分支相关的名字空间的部分的供应者。基于所标识的名字空间查找请求类型,该名字空间查找请求被转送到至少一个供应者。
在其它实施例中,一个资源参加联盟名字空间基础结构中的多个名字空间。建立资源的唯一资源标识符。在第一名字空间中发布该资源的可用性。该唯一资源标识符被链接到第一名字空间中一个现有的名字空间节点资源,使得可以穿过第一名字空间来标识该资源。在第二名字空间中发布该资源的可用性。该唯一资源标识符被链接到第二名字空间中的一个现有的名字空间节点资源,使得可以穿过第二名字空间来标识该资源。
在还有的一些其它实施例中,标识名字空间联盟基础结构中的一个资源子集。从一个发起者接收一个查询。该查询包括第一查询部分,它标识在名字空间分层结构的第一层上满足第一查询准则的第一部分资源。该查询包括第二查询部分,它标识从包括在第一部分资源内的资源中选择的第二部分资源。第二部分资源是在名字空间联盟基础结构中第二不同位置上标识的。第二部分资源的身分被返回给发起者。
在还有的其它实施例中,组织多个资源。确定一个资源被包括在一个或多个名字空间内,其中,这一个或多个名字空间的每一个被配置成组织一个或多个资源。标识在这一个或多个名字空间的第一名字空间内第一资源,并且标识与该资源相关的名字空间。第一名字空间段用于将该资源链接到第一资源,使得可以穿越该名字空间段从第一资源导航到该名字空间内的该资源。
在本发明范围内的实施例包括用于携带或者具有存储在其上的计算机可执行指令或数据结构的计算机可读介质。这类计算机可读介质可以是任何可用的、可由通用或专用计算机***访问的介质。作为例子而非限制性地,这类计算机可读介质可以包括物理存储介质,诸如RAM、ROM、EPROM、CD-ROM或者其它光盘存储、磁盘存储或者其它磁存储设备,或者任何可以用于以计算机可执行指令、计算机可读指令或者数据结构或者可由通用或专用计算机***访问的形式携带或者存储所需要的程序代码方法的其它介质。
在本说明书中以及在所附的权利要求书中,“网络(network)”被定义为一个或多个数据链接(有可能速度不同),支持在计算机***和/或模块(例如,硬件和/或软件模块)之间传输电子数据。当信息通过网络或其它通信连接(或者硬线的,无线的,或者硬线或无线的组合)传送或者提供给计算机***时,将该连接适当地视为计算机可读介质。因而,任何这类连接适当地称为计算机可读介质。上述的组合也应该包括在计算机可读介质内。计算机可执行指令包括,例如,使通用计算机***或专用计算机***执行某个功能或者一组功能的指令和数据。计算机可执行指令可以是,例如,二进制的,中间格式指令如汇编语言,或者甚至是源代码。在有些实施例中,硬件模块,诸如例如,专用集成电路或门阵列被优化以实现本发明的原理。
在本说明书中以及在所附的权利要求书中,“计算机***(computersystem)”被定义为一个或多个软件模块,一个或多个硬件模块,或者它们的组合,它们一起工作以对电子数据执行操作。例如,计算机***的定义包括个人计算机的硬件组件,以及软件模块,诸如个人计算机的操作***。这些模块的物理布局不重要。计算机***可以包括一个或多个通过网络耦合的计算机。同样,计算机***可以包括一个单个的物理设备(诸如移动电话或者个人数字助理“PDA”),其中内部模块(诸如存储器和处理器)一起工作以对电子数据执行操作。而且,计算机***可以包括专用硬件,诸如例如,包括专用集成电路的路由器。
那些本领域的熟练技术人员将意识到,本发明可在网络计算环境中实践,该环境具有许多类型的计算机***配置,包括个人计算机、膝上型计算机、手持设备、多处理器***、基于微处理器的或者可编程消费电子产品、网络PC、小型机、大型机、移动电话、PDA、寻呼机、路由器、网关、中介器(broker)、代理、防火墙、重定向器、网络地址翻译器等等。本发明还可在分布式***环境中实践,其中本地和远程计算机***通过网络链接起来(或者通过硬线数据链路,无线数据链路,或者通过硬线数据链路和无线数据链路的组合)共同执行任务。在分布式***环境中,程序模块可位于本地和远程两者的存储器存储设备中。
在本说明书中以及在所附的权利要求书中,“资源(resource)”被定义为任何模块、对象、计算机***、设备、文件、数据库项、模式、服务等等,它们可以用于满足指定的功能,诸如例如,存储数据,定义数据格式,打印文档等。资源可以由服务组件来支持和/或主机控。例如,文件资源可以具有一个作为访问该文件的服务组件的文件服务器。同样,会议室可以具有一个接待员邮箱作为安排会议时间的服务组件。实现的资源可跨多个其它资源分布。
资源还定义为包括名字空间节点资源,例如,被包括在一个名字空间内,促进或者提供对名字空间功能的访问,诸如例如,名字空间安全和管理功能,和/或可以被穿过以访问其它资源,诸如例如,另一个名字空间节点资源、计算机***或计算机***组件。在有些实施例中,名字空间节点资源可以以分布方式实现。而且,名字空间节点资源可以表示一个名字空间树中的相应节点。
在本说明书中以及在所附的权利要求书中,“资源描述符(resourcedescriptor)”定义为描述资源的数据结构(例如,按照资源描述符模式格式化的)。
在本说明书中以及在所附的权利要求书中,“名字空间(namespace)”定义为确定范围机制,用于将资源(例如,在因特网上的全部资源)分解成多个部分,在这些部分上可以执行解析、发现和消息路由。名字空间是可扩展的,因此可以定义新的范围并且各个范围可以是分层的。
名字空间可以视为森林,其中每个名字空间(树)表示为具有方案的统一资源标识符(“URI”)并且紧跟在其后的用作根的部分。URI方案可以是分层的或者是平面的。分层方案诸如“名字(name)”和“http”(与平面方案如“uuid”相反)可以由在方案名字之后“:/”字符序列的存在来标识。分层方案的第一部分可以标识负责URI组件其余部分的命名授权机构。这类URI是由在方案名字之后的“://”字符序列的存在来标识的。名字空间可以既是分层的又是可路由的,意思是名字空间用作可以用于标识从发送者到接收者的通信路径的标识符。
在有些实施例中,名字空间可以定义为如下:
Namespace:=Flat|Hierarchical(平面的|分层的)
Flat:=Scheme‘:’Opaque_part(方案‘:’不透明部分)
Hierarchical:=Scheme“:/”(‘/’Authority‘/’)?Segment(‘/’Segment)*(方案“:/”(‘/’授权机构‘/’)?段(‘/’段)*)
Scheme:=按URI一般句法由RFC-2396定义的
Opaque-part:=按URI一般句法由RFC-2396定义的
Authority:=按URI一般句法由RFC-2396定义的
Segment:=按URI一般句法由RFC-2396定义的
资源可以使其在树中的任何分支上可用,并且给定资源可以在多个名字空间中揭示。而且,给定的名字空间可以标识单个资源或者名字空间分支(一组资源)。这样的分组可以是逻辑的或物理的,取决于名字空间的语义。分组是通过在所标识的名字空间分支上执行深度优先搜索来获得的。一旦一个资源分组已经被标识,就可以在它们上面执行许多操作,诸如选择满足某些准则的资源,仅发送(并且有可能路由)给定的消息到在一个分组中那些资源,等等。
单个资源可以视为一个平凡的集合。因而,每个资源可以分配一个名字(空间)。因为名字空间是可路由的,消息可以通过名字空间联盟基础结构被路由到任何具有名字的资源。这样的路由可以跨越信任边界并且穿过防火墙。
通常,资源可以分配一个或多个URI,它们可以用于访问该资源。一个URI,分配给资源的资源ID,在最低程度上可以跨越由一个给定的名字空间联盟基础结构实现的所有名字空间,使得资源可以以异乎寻常的方式被引用。其它有可能非唯一的URI也可以分配给资源。这些其它有可能非唯一的URI提供通过由一个给定名字空间联盟基础结构实现的名字空间内的附加位置来访问资源。资源可以分配至少一个有可能非唯一的URI,用于可以被穿过以访问该资源的每个名字空间。
图5例示从名字空间的供应者和集合观点来看的名字空间联盟基础结构的例子。名字空间联盟基础结构500示出供应者可以在名字空间树中任何分支上注册。而且,供应者可以注册在有可能不同树中的多个名字空间分支上。例如,供应者501注册为名字空间分支location:/CorporateBuildings/bldg34(位置:/公司大楼/大楼34)、location:/CorporateBuildings/bldg50/floor2(位置:/公司大楼/大楼50/楼层2)和location:/CorporateBuildings/bldg50/floor1/room1304(位置:/公司大楼/大楼50/楼层1/房间1304)。供应者502注册为名字空间分支location:/CorporateBuildings/bldg50(位置:/公司大楼/大楼50)和location:/CorporateBuildmgs/bldg26(位置:/公司大楼/大楼26)注册。供应者503向location:/CorporateBuildings/bldg50/floor1(位置:/公司大楼/大楼50/楼层1)。
如图5所示,应用可以将名字空间视为可以分层嵌套的资源逻辑集合。即,中间名字空间节点(例如,Location:/CorporateBuildings/bldg50/floor1(位置:/公司大楼/大楼50/楼层1)和Location:/CorporateBuildings/bldg50(位置:/公司大楼/大楼50)被视为资源一名字空间节点资源。应用可以有效地以相干和可伸缩的方式在这类逻辑集合上操作,包括发布、搜索、定位、跟踪、确定来自集合内部的事件的目标与源。注意,不是逻辑集合内的所有资源有必要定位在单个计算机***或设备上。资源可以在空间和时间上跨计算机***和设备分布。名字空间联盟基础结构照管有效地将查找请求路由到参加任何给定集合的计算机***和设备,从而对应用提供统一和一致的视图。
图6例示了使其资源在多个名字空间中可用的示例名字空间联盟基础结构600。URIOrganization:/Product(组织/产品)标识名字空间树601的根。同样,URILocation:/Bldg(位置:/大楼)42标识名字空间树602的根。如所示的,Printer(打印机)603既在名字空间树601中又在名字空间树602中出现。
在本说明书和所附的权利要求书中,名字空间节点资源可以简单地视为名字空间树中的一个节点。有些名字空间节点资源可以被视为根节点(例如,Location:/Bldg(位置:/大楼)42),其它的可以被视为中间节点(例如,Organization:/Product/Devices Team(组织:/产品/设备团队)),还有其它的可以被视为叶节点(例如,Location:/Bldg 42/Floor 1/Room 112/Printer603(位置:/大楼42/楼层1/房间112/打印机603))。然而,应该理解,一个名字空间树中的名字空间节点资源可以引用另一个名字空间树中的名字空间节点资源(或者其它资源)。因而,将名字空间节点资源视为一个名字空间树中的根、中间或者叶不限制从其它名字空间树对该名字空间节点资源的查询。
名字空间还包括将两或多个名字空间节点资源链接(或者相关)起来的名字空间段。名字空间段可以用于链接同一名字空间中的名字空间节点资源。例如,名字空间段611(“Devices(设备)”)链接Organization:/Product(组织/产品)到设备团队。而且,名字空间段可以链接(或者连接)不同名字空间树中的名字空间节点资源,从而提供符号链接的功能。穿过名字空间段包括导航到所有目标名字空间节点资源。例如,名字空间段641(“工程”)将PM Team(PM团队)连接到文件资源SpecTemplate.doc和Milestone.prj。
因此,可以穿过名字空间树601中的名字空间段611(“Devices(设备)”),名字空间段621(“设备”)和名字空间段631(“Printer(打印机)”)来标识Printer(打印机)603。同样,可以穿过名字空间树602中的名字空间段612(“Floor(楼层)1”)、名字空间段622(“Room(房间)1226”)和名字空间段632(“Printer(打印机)”)来标识Printer(打印机)603。应该理解,名字空间树601的URI方案和名字空间树602的URI方案可以不同。
由于同一资源可以参加多个名字空间并且提供符号链接功能,因此所有参加它们的名字空间和资源的全局视图形成有向图,其中名字空间段用作有标签的图边,而其它资源用作图节点。名字空间根有效地将这个全局图中的名字空间节点资源和其它资源划分成起始和可到达资源的集合,其中起始名字空间节点资源提供名字空间确定范围的基础。因此,用于实现查询的高速缓存的信息被减少并跨每个名字空间分布。
而且,任何给定的名字空间可以形成一个图,因为同一资源可以使其在多个名字空间分支上可用并且有些段可以连接以其它方式连接的名字空间节点资源。
图1例示名字空间联盟基础结构100的例子。名字空间联盟基础结构100包括名字空间管理器101,102,103,111和112,它们可以形成不同类型的结成联盟的合作伙伴。例如,名字空间管理器101,102,103彼此对等地结成联盟而没有根名字空间管理器。另一方面,名字空间管理器111和112分别与名字空间管理器101和102结成联盟,其中名字空间管理器101和102用作根名字空间管理器。不同类型的设备可以参加名字空间联盟基础结构,包括主机(例如,PC主机资源),消息路由器,消息网关(例如,防火墙,网络地址翻译(“NAT”盒,以及重定向器)和消息中介器(例如,发布-预订中介(pub-subintermediarie))。名字空间联盟基础结构100便利于总线协议(例如,活动性,控制,事件化和流化)。而且,名字空间联盟基础结构100可以使用相关的WS协议诸如例如WS-发现和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。每个供应者可以对名字空间联盟基础结构中一个或多个名字空间分支感兴趣。供应者与相应的名字空间管理器交换名字空间信息。例如,供应者122与名字空间管理器111交换名字空间信息。相应的名字空间管理器随后促进将名字空间信息传送到其它名字空间管理器。例如,名字空间管理器111可以将名字空间信息传送到名字空间管理器101,而名字空间管理器101可以接着将名字空间信息的有关部分传送到名字空间管理器102和103。
名字空间联盟基础结构(例如,名字空间联盟基础结构100)促进在名字空间上分发查找请求到合适的供应者。例如,供应者501,502,503可以是供应者121,122,123,124,126或127中每一个。
名字空间管理器可以使用各种各样不同机制来结成联盟。第一种结成联盟机制包括对等名字空间管理器转送名字空间信息到所有其它对等名字空间管理器。当一个名字空间管理器要加入一个名字空间联盟基础结构时,该名字空间管理器使用广播/多播发现协议,诸如例如WS-发现,来宣布它的存在(广播/多播Hello(你好))并且发出广播/多播探测信号来检测其它名字空间管理器。该名字空间管理器随后与已经存在于网络上的其它名字空间管理器建立简单的转送合作伙伴关系,并且接受与新加入的名字空间管理器的新合作伙伴关系。之后,该名字空间管理器可以将每个名字空间请求转送到它的合作伙伴。
第二种结成联盟机制包括对等名字空间管理器有效地转送所有名字空间信息到其它对等名字空间管理器。当一个新的名字空间管理器要加入一个名字空间联盟基础结构时,新名字空间管理器使用广播/多播发现协议,诸如例如WS-发现来宣布它的存在(广播/多播Hello(你好))并且发出广播/多播探测信号来检测作为名字空间联盟基础结构一部分的其它名字空间管理器。在检测到另一个名字空间管理器时,新的名字空间管理器与其它名字空间管理器建立合作伙伴关系。从已建立的合作伙伴关系,新的名字空间管理器了解到已经参加联盟名字空间基础结构的其它名字空间管理器的存在。它接着与这些新了解到的名字空间管理器建立合作伙伴关系并且接受任何新进入的合作伙伴关系请求。
名字空间管理器的到达/离开和名字空间注册两者都是通过名字空间联盟基础结构来充满,使得每个名字空间管理器都具有其它名字空间管理器和名字空间注册的全局知识。有了这样的全局知识,任何名字空间管理器可以将查找请求只转送到具有已在请求中指定的名字空间分支下注册的供应者/预订者的合作伙伴。
第三种结成联盟机制包括对等名字空间管理器间接地将名字空间信息转送到其它对等的名字空间管理器。在这第三种机制中,名字空间管理器分配唯一的标识符(ID的),诸如例如,128位或160位ID。负责给定名字空间树的名字空间管理器被确定是一个其ID最接近于由至少单向映射功能诸如例如散列给定名字空间树而获得的名字空间管理器。基于名字空间的映射方案的这样一个散列化在下面更详细地描述。
在这第三种机制中,名字空间管理器在结构上来充满名字空间管理器到达和离开。另一方面,名字空间注册被转送到被确定为负责在请求中指定的名字空间分支的名字空间管理器。为了可伸缩性、负载平衡和容错,接收名字空间注册的名字空间管理器可靠地在那些在其邻近集合中内的名字空间管理器中充满这些注册。一个指定名字空间管理器的邻近集合被确定为具有在一个有限的模ID的地址空间内指定名字空间管理器的ID任何一边上预定义范围内的ID的名字空间管理器集合。
与机制2相似,新加入的名字空间管理器使用广播/多播发现协议,诸如例如WS-发现来宣布它的存在(广播/多播Hello(你好))并且发出一个广播/多播探测信号来检测已经是名字空间联盟基础结构一部分的名字空间管理器。新名字空间管理器与所发现的名字空间管理器建立合作伙伴关系并且使用该合作伙伴关系了解参加名字空间联盟基础结构的其它名字空间管理器的存在。新名字空间管理器随后与新发现的名字空间管理器建立进一步的合作伙伴关系并且接收任何新进入的合作伙伴关系请求。它从其在它所负责的名字空间分支之下的合作伙伴接受进入的名字空间注册,并且可在其邻近集合上充满它们。
响应于进入的查找请求,新名字空间管理器咨询其注册数据库并且将请求转送到具有在请求中指定的名字空间分支之下注册的供应者/预订者的名字空间管理器。因而,当使用这第三种机制时,在名字空间联盟基础结构中的每个名字空间管理器具有所有其它名字空间管理器的全局知识,但除了将注册信息有效地划分在名字空间管理器中。名字空间管理器因而间接地将查找请求只转送到那些具有在请求中指定的名字空间分支之下注册的供应者/预订者的合作伙伴。这个间接是通过具有在请求中指定的名字空间分支之下的名字空间注册的全局知识的名字空间管理器来完成的。
第四种结成联盟机制包括对等名字空间管理器间接地将名字空间信息路由到其它对等的名字空间管理器。这第四种机制不同于第三种机制,在于名字空间管理器到达/离开和名字空间注册/查找请求两者全部是路由的而不是充满的。路由协议设计为保证名字空间查找请求和名字空间注册请求之间的集合点。
图2例示促进将请求间接地路由到合作伙伴的计算机体系结构200的例子。计算机体系结构200示出不同类型的计算机***和设备有可能跨多个参加名字空间联盟基础结构的本地发现范围而扩展。
工作站233可以包括一个PnP供应者实例,它向在location:/architecture200/scope224/Devices(位置:/体系结构200/范围224/设备)名字空间分支之下的相应名字空间管理器注册。为通知其合作伙伴有关这个供应者实例的存在,工作站233经过名字空间联盟基础结构路由名字空间注册请求201。名字空间注册请求201最初被转送到膝上型231,它接着将名字空间注册请求201转送到消息中介器237,后者进而将名字空间注册请求201转送到消息网关241。消息网关241将注册信息注册请求201保存在它的数据库中并且返回成功消息204到工作站233。
随后,另一个供应者实例,这次是运行服务的供应者实例,在工作站233内出现活动,并且将它自己向在location:/architecture200/scope221/Services(位置:/体系结构200/范围221/服务)名字空间分支之下的相应名字空间管理器注册。这次名字空间管理器知道消息网关241负责在location:/architecture200(位置:/体系结构200)之下的注册并且将注册请求205直接转送到消息网关241。消息网关241将注册信息注册请求205保存在它的数据库中并且返回成功消息206到工作站233。
随后,打印机236(例如,UPnP打印机)加电并且发送宣告207。服务器234检测到宣告207,给打印机236分配名字空间location:/architecture200/scope224/Devices(位置:/体系结构200/范围224/设备),并且将注册请求208路由到消息中介器237。消息中介器237将注册请求208转送到消息网关241。消息网关241将注册信息注册请求208保存在它的数据库中并且返回成功消息210到服务器234。
随后,个人计算机242发出发现请求211以发现在名字空间分支location:/architecture200(位置:/体系结构200)之下的所有设备。由于个人计算机242不知道将发现请求211转送到哪里,因此它通过工作站243路由发现请求211。因为路由协议实质上保证给定名字空间树的注册和查找请求之间的集合点,所以工作站243将发现请求211转送到消息网关241。消息网关241将发现请求211转送到工作站233和服务器234两者。工作站233和服务器234分别发送应答消息214和216到个人计算机242。
这第四种机制通过将请求路由到具有在请求中指定的名字空间分支(例如,location:/architecture200(位置:/体系结构200)之下的名字空间注册的全局知识的名字空间管理器(消息网关241)来工作。这第四种机制实质上保证路由可以在0(logN)跳内完成,其中N是参加联盟名字空间基础结构的名字空间管理器的数量。由于这第四种机制有效地划分名字空间注册信息并且不要求所有参加的名字空间管理器的全局知识,因此它的尺度可达非常大的网络,甚至是因特网。
图3例示在一个名字空间联盟基础结构中名字空间管理器之间二元关系的例子。在图3中所示的二元关系是一种可用于实现名字空间管理器之间更有效路由的关系。使用反射的、反对称的、传递的和总的并且在名字空间管理器身分域上定义的二元关系,将参加名字空间联盟基础结构的名字空间管理器组织为一个经排序的列表。经排序列表的两端是连接的,从而形成环306。这使得在经排序列表中的每个名字空间管理器有可能将其本身视为在经排序列表的中间。经排序列表可以双向链接,因此任何名字空间管理器可以以任一方向穿过经排序列表。而且,存在从名字空间管理器身分的值域(例如,2,50或151)到名字空间管理器本身的1∶1映射。这个映射考虑到了在映射不紧密时是由于在值域中名字空间管理器的稀疏造成的。
在环306上的每个名字空间管理器可以包括一个路由表,它促进将名字空间信息(例如,注册和查找请求)路由到其它名字空间管理器。图3中示出一个具有ID 64的名字空间管理器的示例路由表。该路由表指示ID 64的后继者是ID 76。后继者可以是在环306上从ID 64顺时针方向的直接毗邻名字空间管理器。后继者可以改变,例如,当新的名字空间管理器(例如,具有ID为71的)加入或者现有的名字空间管理器(例如,ID 76)离开名字空间联盟基础结构时。
该路由表指示ID 64的先前者是ID 50。先前者可以是在环306上从ID 64逆时针方向的直接毗邻名字空间管理器。先前者可以改变,例如,当新的名字空间管理器(例如,具有ID为59的)加入或者现有名字空间管理器(例如,ID 50)离开名字空间联盟基础结构时。
该路由表指示ID 64的邻近者是ID 83,76,50和46。邻近者可以使用两个因子大小和范围中较大者来标识。名字空间管理器被标识为一个邻近的成员,当相应的ID在主ID(例如,以环306的顺时针或逆时针方向)的最小范围内或者小于在邻近中已经存在的某个配置的最小邻近大小时。例如,在环306上,指定的范围可以具有20的数量并且大小可以大于4。因此,在ID 64顺时针(+10)和逆时针(-10)两者的20个位置内的ID都是ID 64的邻近者。邻近者可以改变,例如,当名字空间管理器加入或者离开名字空间联盟基础结构时或者当指定的范围被改变时。例如,在大小等于4的情况下,具有ID 48的名字空间管理器可以替代具有ID 46的名字空间管理器。
该路由表指示ID 64可以直接路由到ID 200,2,30,46,50,64,76,83,98和135。因而,当具有ID 64的名字空间管理器接收请求时,名字空间管理器可以将请求路由到具有路由表中比较接近于请求中的名字空间管理器ID的ID的名字空间管理器。
图4例示促进将名字空间联盟基础结构与其它协议集成的体系结构400的例子。名字空间联盟基础结构可以支持基于供应者的扩展模型。因此,联盟名字空间基础结构可以与现有的协议集成,假定现有协议的资源模型与名字空间的兼容。体系结构400示出与现用目录402和UDDI服务器403互操作的名字空间管理器401,404,406(例如,名字空间联盟基础结构的)。实箭头指示名字空间管理器使用名字空间联盟协议通信,虚线区域指示名字空间管理器使用LDAP协议与现用目录402通信,而点线箭头指示名字空间管理器使用UDDI协议与UDDI服务器403通信。
发布-预订主题是名字空间的另一个示例用法。发布-预订主题可以视为对该主题的预订者的集合;因此,主题名字被视为名字空间。将发布-预订主题视为名字空间的优点是名字空间联盟基础结构可以用于将通知消息从发布者路由到预订者。对主题的预订者可以被视为名字空间注册请求并且对主题的发布可以被视为名字空间查找请求。
在有些实施例中,名字空间联盟基础结构可以给编程者提供类似总线的抽象来开发分布式应用。例如,名字空间联盟基础结构可以抽象活动性一应用使用这种机制来了解它们感兴趣的资源何时已经离开网络了。为了跟踪给定的资源,应用预订发送到在该资源的身分URI(例如,它的名字)之后命名的发布-预订主题的通知。通知给定资源已经离开网络的任何组件(例如应用)可以发布一个活动性通知消息给在资源的身分URI之后命名的主题,从而通知感兴趣跟踪该资源的其它应用。由于发布-预订的预订跨名字空间基础结构结成联盟并且由于许多身分方案是分层的(以从活动性观点捕捉资源的容纳(containment)方面),因此***避免了简单检测***的n2次ping(测试网络节点连通性)问题并且在网络规模很大时也非常好。而且,较感兴趣的组件(例如应用),对于给定的资源,越快注意到它已经离开网络,就越有利。
开发者可以将名字空间联盟基础结构视为在其中注册了资源诸如文件和事件源的云团。应用可以发出针对该云团的发现请求来发现已注册的资源。应用也可以请求该云团代表它们预订当前和将来的向该云团注册过的事件源。而且,应用可以预定在该云团中维护的发布-预订主题。任何人可以发布通知消息并且该云团照管将该消息转送给向其发布该消息的事件主题的预订者。
各种类型的资源可以在名字空间中发布,包括服务、设备、文件、主机、组件、数据库中的项、关于元数据的元数据(模式)等等。资源可以具有作为它的主管/支持它的服务组件。例如,文件源可以具有文件服务器作为访问该文件的服务组件。会议室可以具有接待员邮箱作为安排会议时间的服务组件。
每个资源可以与捕捉其描述性方面的资源描述符相关联。因而,可以查询资源描述符来标识感兴趣的资源。当标识了一个资源时,该资源可以通过该资源的相应服务方面来访问。可以发送到作为资源的主管/支持资源的服务的消息类型从一种资源类型改变成另一种类型。例如,文件服务器支持开放文件资源而接待员接受会议室的安排时间请求。
实现资源描述符的数据模型可以是可版本化的,可扩展的和可互操作的。这样一个资源数据模型可以跨许多当前的框架诸如分布式文件***(“DFS”),AD和UDDI来共享。这样一个单一的共享的数据模型可以促进AD对象和DFS文件(或者形成其它资源管理***的资源)被视为使用名字空间方法结成联盟的资源,并且通过发送消息给作为主管的服务来访问。
因此,资源可以定义为具有下列属性:
资源ID:可以任选地用一组引用属性来增补并且可以在空间和时间上稳定的URI。可以表示为资源引用模式的实例。资源ID连同资源属性可以共同地表示资源的身分。
描述符:资源专用模式实例,包含有关该资源的半静态元数据。该元数据用于资源选择。资源描述符模式可以分类。配置数字:单调增强的数字,标识资源描述符数据的特定版本。这个数字每当资源描述符被修改时就增加。
实例ID:单调增加的数字,标识活动资源的特定实例。例如,这可以与服务/设备资源的引导时间相同或者与文件资源的文件修改时间相同。
进一步参考描述符,设备可以具有按照一个或多个模式的元数据。例如,打印机可以具有按照描述该打印机不同方面的不同模式的元数据。资源描述符模式可以由组织如UPnP论坛工作组(例如,打印机模式可以由UPnP打印机工作组来标准化)和W3C来标准化。图13示出描述资源的示例分类1300。在分类1300内,不同模式通常表示为如下:
服务引用模式:扩展资源引用模式并且指定一个动作类型列表,该列表标识由资源支持的消息,它的断言的政策容器(诸如所支持的传输),以及一组扩展名。
资源描述符模式:扩展资源引用模式并且指定描述符的配置数字(见下面的说明),资源的友好名字,支持资源的服务的服务引用,以及一组扩展名。
名字空间节点描述符模式:扩展资源描述符模式并且指定从它可达到的资源作为边缘描述符模式的实例。
边缘描述符模式:指定在本地确定范围的边缘名字,边缘类型和目标资源。
设备描述符模式:扩展资源描述符模式并且指定序列号和制造者名字。
打印机描述符模式:扩展设备描述符模式并且指定打印机专用属性诸如分辨率,彩色打印的能力,每分钟页数,以及所支持的纸张大小。
以上述任何描述模式定义的任何信息可以包括在一个用于标识联盟名字空间基础结构中资源的查询中。例如,可以使用过滤器(或者查询)表达式搜索和导航描述符数据。例如,可以按照描述符模式或字段值类型来过滤,导航到从它的引用字段可到达的实例,对这些应用预订者的过滤器,等等。在有些实施例中,使用基于XPath的过滤器表达式。回来参考图6,使用XPath句法,在由资源描述符模式指定的描述数据上操作的过滤器表达式可以用于定位一个在Location:/Bldg42/Floor1(位置:/大楼42/楼层1)的可以彩色打印的打印机。
名字空间可以指定一个过滤器表达式,以URI段参数的形式,用于在选择和穿越的名字空间节点资源上定义的字段/属性。例如,名字空间Location:/Bldg42/Floor1/Room1226;employee=″employee1″/printer(位置:/大楼42/楼层1/房间1226;职员=“职员1”/打印机)仅当“Room 1226(房间1226)”描述符具有“employee(职员)”字段具有值“employee1(职员1)”时才穿越名字空间节点资源“Room 1226(房间1226)”。同样,名字空间Orgamzation:/Product/DevicesTeam;building=″Bldg33″/Dev/Computer604;printer=″color″(组织:/产品/设备团队;大楼=“大楼33”/设备/计算机604;打印机=“彩色”)仅当它的描述符具有值为“Bldg33(大楼33)”的“building(大楼)”字段(因而标识资源的第一部分)时才穿越名字空间节点资源“Devices Team(设备团队)”,并且仅当它的描述符具有值“color(彩色)”的“printer(打印机)”(意味着标识一台彩色打印机已经附在它上面了)字段时才选择名字空间节点资源“Computer 604(计算机604)”。
##
使用唯一的名字空间管理器ID,可以提供下面的功能来路由名字空间联盟基础结构中的名字空间信息:
RouteNumerically(V,Msg):给定从名字空间管理器的值域标识的值V和消息“Msg”,将该消息递送给名字空间管理器X(它的身分可以使用映射功能映射到V)。
Neighborhood(X,S):Neighborhood(邻近)是在名字空间管理器X的任一侧的具有集的势等于S的名字空间管理器集合(例如在环306上)。
本发明的实施例还可以使用参***的名字空间管理器的接近准则。接近准则可以定义为一种等价关系,将结成联盟的名字空间管理器集合划分成一组不相交的类(或分区)。通常,在集合S上的关系R如果满足下列属性就是等价关系:
·反射:x是S的一个元素→x R x
·对称:给定S的x,y元素,x R y→y R x
·传递:给定S的x,y,z元素,x R y∧y R z→x R z
本发明的实施例可以支持多个不同接近准则,并且接近准则可以以偏序来排列。例如,认为所有属于“公司1”的名字空间节点资源是最接近的准则在认为在“公司1,位置A”内的所有名字空间管理器是最接近的准则之前。这是前面的准则(属于“公司A”)认为最接近的名字空间管理器的集合为后面的准则(属于“公司1,位置A”)认为最接近的名字空间管理器的集合的超集所得到的结果。另一方面,在认为“公司1”内所有名字空间管理器最接近的准则与认为“公司1,位置A”内所有名字空间管理器最接近的准则之间没有先后关系。
在计算联盟中每个名字空间管理器的路由名字空间管理器时考虑接近事项,其结果是在到最终目的地的路径上的每个路由跳跃保持在发起请求的名字空间管理器的最接近范围内。而且,仍能产生用数字表示的空间中名字空间管理器之间闭合距离的明显进步。
使用唯一的ID连同接近准则,可以提供下面的附加功能用于在名字空间联盟基础结构中路由名字空间信息:
RouteProximally(V,Msg,P):给定从名字空间管理器的域标识的值V和消息“Msg”,将该消息递送到名字空间管理器Y,其身分可以被映射到接近准则P认为等价的名字空间管理器之中的V。
当供应者/预订者在名字空间分支注册一个名字空间管理器时,注册请求被发送(并且有可能被路由)到负责维护在注册请求中指定的名字空间树的注册信息的合作伙伴名字空间管理器。可供替换地,发起名字空间注册请求到结构中的名字空间管理器是负责的名字空间管理器。将相对于图1的名字空间联盟基础结构和图6的名字空间来描述方法710。
方法710包括接收注册一个名字空间分支的名字空间注册请求的动作,该名字空间注册请求包括标识该名字空间分支的名字空间标识符(动作711)。例如,名字空间管理器112可以从供应者131接收注册请求132,它包括名字空间ID 142。由于名字空间管理器112不是对等名字空间管理器,因此名字空间管理器112可以将注册请求132转送到名字空间管理器102。名字空间管理器112可以在经过名字空间联盟基础结构100传递注册请求132之前按照它的方案所标识的规则规范化名字空间ID 142。
方法710包括一个动作,基于名字空间标识符连同该名字空间标识符路径部分的至少一部分来产生至少单向等价标识值(动作712)。例如,名字空间管理器102可以基于名字空间ID 142连同名字空间ID 142的路径部分的至少一部分来产生散列152。任何各种各样不同的散列函数,诸如例如,SHA,可以用于从名字空间串的各部分产生散列值。产生名字空间串的散列值可以基于名字空间联盟基础结构的配置而改变。
对于非分层的名字空间方案诸如“uuid”(例如,由在方案之后不包含“:/”字符序列来标识的),可以在整个名字空间上产生散列。例如,整个名字空间串“uuid:a36fab9c-9c7f-42c3-97d8-36cd57e9bd29”可用于产生SHA散列值。
分层的名字空间可以是授权的或非授权的,方案部分之后用两个相应的字符序列“://”和“:/”来区分。对于授权的名字空间诸如“name(名字)”,在跟随在“://”字符序列之后的方案部分、授权分量和名字空间的第一路径分量上产生散列。例如,名字空间串″name://red.pm.xrx:200/printers/b42-1749-a″的″name://red.pm.xrx:200/printers″部分可用于产生SHA散列值。对于非授权的名字空间诸如图6的“location(位置)”方案,可以在跟随在“:/”字符序列之后的方案部分和名字空间的第一路径分量上产生散列。例如,名字空间串″location:/Bldg42/Floor1/Room1226″的″location:/Bldg42″部分。
方法710包括一个动作,发送名字空间注册请求到一个名字空间管理器,这个名字空间管理器具有一个在数字上比其它名字空间管理器的标识符更接近于至少单向的等价数字标识值的标识符(动作713)。例如,名字空间管理器102可以启用RouteNumerically(在数字上路由)函数,提供散列152和注册消息132作为输入,例如,RouteNumerically(散列152,注册消息132)。可供替换地,可以使用RouteProximally(最接近地路由)函数。在有些实施例中,名字空间注册请求被直接发送而没有路由发生。
联盟名字空间基础结构100随后使用联盟协议来将注册消息转送到适当的名字空间管理器。例如,注册消息132可以被路由到名字空间管理器103。名字空间管理器103可已将名字空间分支的责任迁移到了另一个名字空间管理器。因而,名字空间管理器103可返回一个指引消息给名字空间管理器102。因此,当已经指向了名字空间分支的责任时,名字空间管理器102可以接收指定适当的名字空间管理器的指引消息。名字空间管理器102进而可以发送注册请求132到适当的名字空间管理器。可以遇到一个或多个指引,直到有一个名字空间管理器接受或者拒绝该注册请求为止。
方法710包括一个动作,将该名字空间管理器与该名字空间分支相关联(动作714)。例如,名字空间管理器103可以与由名字空间ID 142标识的名字空间分支相关联(通过供应者131)。名字空间ID 142可以,例如,标识名字空间601或名字空间602的一部分。在名字空间管理器与名字空间分支之间的关联允许请求(例如,查找请求)指定在要转送的注册请求中所指定的之下的名字空间分支,代替被路由到在该关联中指定的名字空间管理器。当检测到名字空间管理器故障或者获得对一个不同名字空间管理器的指引时,关联被打断。当检测到故障时,路由后来的请求,直到可以形成一个新的关联为止。
图7B例示迁移名字空间注册请求的方法720的示例流程图。方法720将相对于图1的名字空间联盟基础结构和图6的名字空间来描述。
方法720包括一个动作,确定名字空间管理器已经满足了政策约束(动作721)。例如,名字空间管理器103可以确定在名字空间管理器103处正在处理的名字空间信息的数量(与联盟名字空间基础结构100有关的)已经超过一个配置的阈限。配置的阈限可以是,例如,保持在名字空间管理器处的注册总数或者在名字空间管理器处正在服务的查找请求的总数。
方法720包括一个动作,标识一个可以被迁移以满足与政策约束相关联的政策行动的名字空间分支(动作722)。例如,名字空间管理器103可以标识一个可以被迁移以减少在名字空间管理器103处理的名字空间信息低于配置的阈限的名字空间分支(例如,相应于名字空间ID 142)。名字空间管理器可标识一个更重地填充了的和/或更重地服务的名字空间分支用于迁移。
方法720包括一个动作,响应于政策行动,将名字空间分支的现有注册迁移到合作伙伴名字空间管理器(动作723)。例如,名字空间管理器103可以响应于一个行动,将现有注册迁移到合作伙伴(例如,邻近)名字空间管理器,这个行动是为减轻较重填充了的和/或较重服务的名字空间分支上的负担而发生的。
方法730也可以包括一个动作,接收相应于名字空间分支的名字空间请求。例如,名字空间管理器103可以接收相应于由名字空间ID 142表示的名字空间分支的注册请求132。
方法720还可以包括一个动作,采取行动将名字空间请求重定向到合作伙伴名字空间管理器。例如,由点线箭头指示,名字空间管理器103可以重新将注册请求132路由到名字空间管理器101。迁移名字空间分支的名字空间管理器可以启用RouteNumerically(在数字上路由)来将请求重新路由到不同的名字空间管理器。例如,可以启用RouteNumerically(H,migrateMsg)来将请求重新路由到由正在迁移的名字空间分支的至少单向的等价值标识的名字空间管理器(例如,名字空间管理器101)。例如,要迁移分支location:/Bldg42/Floor1(位置:/大楼42/楼层1),名字空间管理器103在串“location:/Bldg42/Floor1”上产生散列H,启用RouteNumerically(H,migrateMsg)来标识负责被迁移分支的名字空间管理器101,并且将在被迁移名字空间分支之下的所有名字空间注册如location:/Bldg42/Floor1/Room1226(位置:/大楼42/楼层1/房间1226)和location:/Bldg42/Floor1/Room1119(位置:/大楼42/楼层1/房间1119)迁移到所标识的名字空间管理器101。
名字空间管理器也可决定将所有沿被迁移的名字空间分支的干线所遇到的名字空间注册转送到作为该分支主机的合作伙伴名字空间管理器。这促进合作伙伴名字空间管理器分支为所有指定该名字空间分支的查找请求服务,而不必让这些请求经历正在迁移的名字空间管理器,或者直接或者间接地,自始至终。正在迁移的名字空间管理器可以留在指示它已经迁移了指定名字空间分支之下的注册信息的树桩之后。正在迁移的名字空间管理器也可以废除对跟踪在被迁移的注册中指定的供应者/预订者的活动性通知的预订,如果有的话。因此,随后在由正在迁移的名字空间管理器接收的被迁移名字空间分支的干线之下和沿此干线的名字空间注册被转送到合作伙伴名字空间管理器。
图7C例示处理名字空间注册请求的方法730的示例流程图。方法720将相对于图1的名字空间联盟基础结构和图6的名字空间来描述。
方法730包括一个动作,接收注册一个名字空间分支的名字空间注册请求,该名字空间注册请求包括一个标识该名字空间分支的名字空间URI串,并包括一个唯一的引用或标识符,用于请求该名字空间分支中注册的供应者(或者预订者)(动作731)。例如,名字空间管理器103可以接收包括对供应者131的引用的注册请求132。
方法730包括一个动作,确定名字空间管理器对该名字空间分支感兴趣(动作732)。例如,名字空间管理器102可以确定名字空间管理器102是否负责由名字空间ID 142表示的名字空间分支(例如,Organiztion:/Product/Messaging Team(组织:/产品/消息团队))。当名字空间管理器102不负责时,名字空间管理器102可以将该名字空间注册请求(例如,注册请求132)转送到指定名字空间分支的负责的名字空间管理器(例如名字空间管理器103)。可供替换地,当名字空间管理器102不负责时,名字空间管理器102可以发送指引消息134到发起该注册请求(例如注册请求133)的名字空间管理器(例如,名字空间管理器103)来代替联系负责的名字空间管理器(例如,名字空间管理器101)。当名字空间管理器102负责时,名字空间管理器102可以保留该名字空间注册请求。
方法730包括一个动作,将名字空间标识符保存在适当索引的名字空间注册数据库(动作733)。例如,如果名字空间标识符是URI串,则以字母顺序存储在名字空间注册数据库中,其中较长的串排列得较高。例如,名字空间管理器103可以将名字空间ID 142保存在名字空间注册数据库中。围绕供应者131的虚线和相应的虚线框,指示名字空间管理器103已经将供应者131引用为对名字空间ID 142表示的名字空间感兴趣。
方法730还可以包括一个动作,确定随后要多么频繁地验证供应者的活动性。例如,名字空间管理器103可以确定随后要多么频繁地验证供应者131的活动性。名字空间供应者103可以可选地预订发布到由ID 161标识的供应者的发布-预订主题的活动性通知。发布-预订主题可以由ID 161标识。可供替换地,如果没有进行活动性预订,则给注册分配一段时间有限的租期。供应者131可以在租期期满之前通过直接联系名字空间管理器103来更新注册。其它活动性机制也可以使用。
名字空间管理器和供应者活动性可以跨分层结构来分布。位于分层结构中较高层处的名字空间管理器可以依赖于位于相似位置的其它名字空间管理器来报告相应的较低层名字空间管理器和供应者的活动性信息。例如在图1中,名字空间管理器103可以跟踪名字空间管理器102的活动性(两者都是根名字空间管理器)。名字空间管理器103可以依赖于名字空间管理器102来报告任何相应的较低层名字空间管理器(例如,名字空间管理器112)或者供应者(例如,供应者124)的故障。名字空间管理器102进而依赖于名字空间管理器103来报告相似类型故障(例如,供应者126的故障)。
在成功注册供应者131(或者失败)之后,名字空间管理器102可以发送指示成功(或失败)消息到供应者131。
有时,消费者(其它计算机***或设备)可能希望访问由一个供应者管理的名字空间分支中的资源。为获得对资源的访问,消费者可发出查找请求以试图标识资源。查找请求可以在名字空间管理器处接收并且递送到一个或多个适当的供应者。通常,当名字空间管理器接收查找请求时,它将该查找请求路由到最接近它(如由有个预定义的接近度量确定的)并且朝着负责在该请求中指定的名字空间分支的名字空间管理器邻近的合作伙伴名字空间管理器。随着跨邻近名字空间管理器复制注册信息,该查找请求可以由在邻近集合中任何名字空间管理器来满足。
通过最接近发起该查找请求的名字空间管理器来路由,其结果是改善的网络吞吐量和动态负载平衡,因为从查找请求满足的角度,查找请求获得跨邻近名字空间管理器自动和有效地划分。为促进路由,映射查找请求中指定的名字空间ID的算法可以实质上与映射注册请求中指定的名字空间ID的算法相同。例如,从名字空间身分的值域到名字空间管理器的1∶1映射可以用于映射查找和注册请求两者的名字空间ID。
图8A例示了路由名字空间查找请求的方法810的示例流程图。方法810将相对于图1的联盟名字空间基础结构和图6的名字空间来描述。
方法810包括一个动作,接收名字空间查找请求,它包括一个标识名字空间分支的名字空间标识符(动作811)。例如,名字空间管理器103可以接收查找请求133。查找请求133可以指定标识名字空间树602的一个分支的名字空间ID 143,诸如例如,Location:/Bldg 42/Floor 2/ConfRoom 2005(位置:/大楼42/楼层2/会议室2005)。
方法810包括一个动作,基于该名字空间标识符产生一个至少单向的等价数字标识值(动作812)。例如,名字空间管理器102可以散列名字空间ID 143的方案部分连同名字空间ID 143的路径部分的至少一部分来产生散列153。
方法810包括一个动作,发送名字空间查找请求到目的地名字空间管理器(动作813)。目的地名字空间管理器包括在邻近的名字空间管理器中,这些名字空间管理器在一个名字空间管理器的预定范围之内,这个名字空间管理器具有一个在数字上最接近该至少单向的等价数字标识值的唯一标识符。为了路由查找请求133,名字空间管理器103可启用RouteProximally(最接近地路由)(或者RouteNumerically(在数字上路由))功能。例如,名字空间管理器103可以启用RouteProximally(散列153,查找消息133,接近准则P)来路由查找消息133到合作伙伴名字空间管理器102,因为在被认为在指定的接近准则P下最接近名字空间管理器103的名字空间管理器之中,它被标识为一个具有在数字上最接近的唯一ID的名字空间管理器。通过RouteProximal1y(最接近地路由)功能,名字空间管理器102可以被标识。
方法810也可以包括一个动作,转送名字空间查找请求以递送到一个或多个对该名字空间分支感兴趣的供应者。例如,名字空间管理器103可以转送查找请求133到名字空间管理器102。名字空间管理器102可以转送查找请求133到供应者131。
图8B例示迁移名字空间查找请求的方法820的示例流程图。方法820将相对于图1的名字空间联盟基础结构和图6的名字空间来描述。
方法820包括一个动作,接收一个名字空间分支的名字空间查找请求(动作821)。名字空间查找请求包括一个唯一的名字空间标识符,它标识特定的名字空间分支。例如,名字空间标识符可以是URI ID 143。而且,所接收的名字空间查找请求可任选地包括一个至少单向的等价数字标识值,它是基于指定的名字空间分支的标识符产生的。例如,它可以从方案和名字空间ID 143的路径部分的至少一部分产生的散列值153。该名字空间管理器的名字空间管理器标识符比一个或多个其它名字空间管理器的名字空间分支标识符更接近名字空间分支标识符。名字空间管理器102可以接收查找请求133作为唯ID 172比名字空间联盟基础结构100中其它名字空间管理器的唯一标识符(例如ID174)更接近散列153的结果。
方法820包括一个动作,检测该名字空间分支已经被迁移到一个具有不同名字空间分支标识符的不同名字空间管理器的标志(动作822)。例如,名字空间管理器102可以检测树桩的存在,它指示由名字空间ID 143表示的名字空间分支已经被迁移到名字空间管理器101。
方法820还可以包括至少通知发起的名字空间管理器该名字空间分支已经被迁移到不同名字空间管理器的动作。例如,名字空间管理器102可以至少通知名字空间管理器103由名字空间ID 143表示的名字空间分支已经被迁移。例如,名字空间管理器102可以发送指引消息134到名字空间管理器103,指示名字空间管理器103应该联系名字空间管理器101或者为被迁移的分支发起一个新的查找请求132。
名字空间管理器103可以遵循来自名字空间管理器102包括在指引消息中的指令。
名字空间管理器102可以可供替换地重新路由查找请求133本身,通过在其本身上启用RouteProximally(新ID H,查找请求133,接近准则CriteriaP)。例如,与原始散列值相比,新ID H可以通过散列经迁移的名字空间分支的整个分量来产生,前者是通过只散列方案部分和路径组件的第一部分来产生的。启用RouteProximally(最接近地路由)可以使查找请求133被路由到其它名字空间管理器来递送到名字空间管理器101(如由包括查找请求133的虚线箭头所指示的)。
图8C例示处理名字空间查找请求的方法830的示例流程图。方法830将相对于图1的名字空间联盟基础结构和图5的名字空间来描述。
方法830包括一个动作,接收一个名字空间查找请求,它包括一个标识名字空间的名字空间分支的名字空间标识符(动作831)。例如,名字空间管理器102可以接收包括名字空间ID 143的名字空间查找请求133。名字空间ID 143可以标识名字空间基础结构500的名字空间分支。
方法830包括一个动作,标识名字空间查找请求的名字空间查找请求类型(动作832)。例如,名字空间管理器102标识查找请求133的名字空间查找请求类型。在有些实施例中,名字空间查找请求类型可以是一般的请求类型(例如对于任何名字空间分支)或者确定目标的请求类型(例如对于一个特定的名字空间分支)。
方法830包括检测一个或多个供应者已经注册了与该名字空间分支有关的名字空间的各部分的动作(动作833)。例如,名字空间管理器102可以检测一个或多个供应者已经注册了由名字空间ID 143表示的名字空间分支有关的名字空间的各部分。现在参考图5,如果名字空间ID 143是Location:/CorporateBuildings/Bldg 50/Floor1(位置:/公司大楼/大楼50/楼层1),则供应者501、502和503可以被标识。供应者502已经为Room 1304(房间1304)(名字空间树500的Floor1(楼层1)下面)注册,供应者502为Bldg 50(楼层50)(在名字空间树500的楼层1上面)注册,而供应者503向名字空间树500的Floor1(楼层1)注册。
方法830还可以包括一个动作,将名字空间查找请求转送到至少一个供应者,基于所标识的名字空间查找请求类型。例如,名字空间管理器102可以将查找请求133转送到供应者501、502和503中的一个或多个。
对于一个一般请求,名字空间管理器102将请求转送到所有其注册名字空间分支是查找请求中指定的名字空间管理器的前缀或后缀的供应者。例如,名字空间管理器102可将名字空间查找请求133转送到供应者501、502和503,如果名字空间ID 143是Location:/Corporate Buildings/Bldg 50/Floor1(位置:/公司大楼/大楼50/楼层1)。对于一个确定目标的请求,名字空间管理器将请求只转送到其注册名字空间分支是查找请求中指定的名字空间管理器的最大前缀的供应者。然而,对于一般和确定目标类型两者,如果不止一个给定供应者的拷贝诸如501可用,则名字空间管理器102将请求转送到在所选择的接近度量之下较接近查找请求的起点(在这种情况下,名字空间管理器103)的供应者。
名字空间管理器103可以在由名字空间ID 143表示的名字空间分支与名字空间管理器102之间创建一关联(例如,将它存储在名字空间数据库中)。这样一个关联促进名字空间查找请求指定在关联中指定的名字空间分支之下的一个名字空间分支(例如,在Location:/Corporate Buildings/Bldg 50/Floor1(位置:/公司大楼/大楼50/楼层1)之下)要被转送而不是被路由到名字空间管理器102。关联在检测到目标名字空间管理器故障或者获得对一个不同名字空间管理器的指引时被打断。在前一情况下,路由以后的请求,直到可以形成一个新的关联。
图9例示资源参加多个名字空间的方法900的示例流程图。方法900将相对于图6中的名字空间树描述。
方法900包括一个动作,创建资源的唯一资源标识符(动作901)。动作901可以包括创建相应于该资源的URI的路径部分。例如,可以为一个打印机建立“printer 603(打印机603)”的标识符。
方法900包括一个动作,在第一名字空间中发布该资源的可用性(动作902)。例如,打印机603可以发布它在名字空间树601中的可用性。方法900包括一个动作,将唯一资源标识符链接到第一名字空间中的第一名字空间节点资源,使得第一名字空间可以被穿过以标识该资源(动作903)。例如,可以建立名字空间段631以将打印机603链接到“Dev Team(设备团队)”名字空间节点资源。因此,名字空间树601(以及“Dev Team(设备团队)”名字空间节点资源)可以被穿过以标识打印机603。
方法900包括一个动作,在第二名字空间中发布该资源的可用性(动作904)。例如,打印机603可以发布它在名字空间树602中的可用性。方法900包括一个动作,将唯一资源标识符链接到第二名字空间中第二名字空间节点资源,使得第二名字空间可以被穿过以标识该资源(动作905)。例如,可以建立名字空间段632,将打印机603链接到“Room 1226(房间1226)”名字空间节点资源。因此,名字空间树602(和“Room 1226(房间1226)”名字空间节点资源)可以被穿过以标识打印机603。
图10例示了标识名字空间联盟基础结构中资源子集的方法1000的示例流程图。方法1000将相对于图6中的名字空间树描述。
方法1000包括一个动作,从设备接收查询(动作1001)。例如,名字空间树602的供应者可以从可网络连接到该供应者的设备接收查询。该查询包括第一查询部分,标识满足名字空间分层结构中第一层上的第一查询准则的第一部分资源。例如,第一查询部分可以标识在穿过名字空间段“Floor 2(楼层2)”之后满足第一查询准则的第一部分资源(在名字空间树602中)。第一部分资源可以是,例如职员,而第一准则也可以包括例如分配给“Messaging Team(收发消息团队)”的准则。因而,第一查询部分可以标识所有分配给在(Bldg 42(大楼42)的)Floor 2(楼层2)上工作的“Messaging Team(收发消息团队)”的职员。在有些实施例中,第一查询准则用于导航通过引用第一部分资源的资源属性。
查询包括第二查询部分,标识从包括在第一部分资源中的资源中选择的第二部分资源。例如,第二查询部分可以标识在穿过名字空间段“Room 2005(房间2005)”之后满足第二查询准则的第二部分资源(在名字空间树602中)。第二部分资源可以是例如管理员,而第二准则可以是例如设备。因而,第二查询部分可以标识在Room 2005(房间2005)中带有办公室小房间的打印机管理员。在有些实施例中,第二查询准则用于导航通过引用第二部分资源的第一部分资源的属性。
因此,提供从第一查询部分标识的资源作为到第二查询部分的输入,所接收的查询结果可以(取决于资源模式的字段定义)标识带有在第二楼层上Room2005(房间2005)的办公室的且分配给“Messaging Team(收发消息团队的)打印机管理员。
方法1000包括一个动作,返回第二部分资源的身分给该设备(动作1002)。例如,名字空间树602的供应者可以返回ConfRoom 2005(会议室2005)中设备的管理员身分给网络可连接的设备,这些设备是由收发消息团队的职员拥有的。
图12例示了组织多个资源的方法120的示例流程图。方法1200将相对于图6中的名字空间基础结构600来描述。
方法1200包括一个动作,确定一个新的资源要包括在一个或多个名字空间中,一个或多个名字空间的每一个配置为组织一个或多个资源(动作1201)。例如,可以确定打印机603要被包括在名字空间601和/或名字空间602中。方法1200包括一个动作,标识一个或多个名字空间的第一名字空间内的第一资源要与新资源相关(动作1202)。例如,可以标识在名字空间602中的房间1226要与打印机603相关。同样,可以标识名字空间601中的Dev Team(设备团队)要与打印机603相关。
方法1200包括一个动作,使用第一名字空间段链接新资源到第一资源,使得该名字空间段可以被穿过以从现有资源导航到该名字空间内的新资源(动作1203)。例如,名字空间段632可以用于链接603到房间1226,使得名字空间段632可以被穿过以从房间1226导航到打印机603。同样,名字空间段631可以用于链接打印机到Dev Team(设备团队),使得名字空间段631可以被穿过以从Dev Team导航到打印机603。
图11和下面的讨论目的是要提供适合于实现本发明的示例计算环境的简短概括的说明。尽管没有要求(例如,当在硬件中实现时),但本发明将在计算机可执行指令的一般上下文诸如由计算机***执行的程序模块中描述。通常,程序模块包括例程、程序、对象、组件、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机可执行指令,相关联的数据结构,以及程序模块表示执行在此所揭示方法的动作的程序代码的装置。
参考图11,实现本发明的示例***包括计算机***1120形式的通用计算设备,包括处理单元1121,***存储器1122,以及耦合包括***存储器1122在内的各种***组件到处理单元1121的***总线1123。处理单元1121可以执行设计为实现包括本发明特征在内的计算机***1120特征的计算机可执行指令。***总线1123可以是任何若干类型总线结构,包括存储器总线或存储器控制器,外设总线,以及使用任何各种各样总线体系结构的局部总线。***存储器包括只读存储器(“ROM”)1124和随机存取存储器(“RAM”)1125。基本输入/输出***(“BIOS”)1126,包含诸如在启动时帮助在计算机***1120内元件之前传输信息的基本例程,可存储在ROM 1124中。
计算机***1120也可包括读写硬磁盘1139的硬磁盘驱动器1127,读写可移动磁盘1129的磁盘驱动器1128,以及读写可移动光盘1131诸如CD-ROM或其它光介质的光盘驱动器1130。硬磁盘驱动器1127,磁盘驱动器1128和光盘驱动器1130分别通过硬盘驱动器接口1132、磁盘驱动器接口1133和光盘驱动器接口1134连接到***总线1123。驱动器及其相关联的计算机可读介质为计算机***1120提供计算机可执行指令、数据结构、程序模块和其它数据的非易失性存储。尽管在此描述的示例环境使用硬磁盘1139、可移动磁盘1129和可移动光盘1131,但可以使用其它类型的计算机可读介质,包括磁带、闪存卡、数字多功能盘,伯努利盒(Bernoulli cartridge)、RAM、ROM等等。
包括一个或多个程序模块的程序代码方法可存储在硬盘1139、磁盘1129、光盘1131、ROM 1124或RAM 1125,包括操作***1135,一个或多个应用程序1136,其它程序模块1137和程序数据1138。用户可通过键盘1140、定点设备1142或其它输入设备(未示出)诸如例如话筒、操纵杆、游戏垫、扫描仪等等将命令和信息输入到计算机***1120中。这些和其它输入设备可以通过耦合到***总线1123的输入/输出接口1146连接到处理单元1121。输入/输出接口1146在逻辑上表示任何多种多样的不同接口,诸如例如,串行端口接口,PS/2接口,并行端口接口,通用串行总线(“USB”)接口,或者电气和电子工程协会(“IEEE”)1394接口(即,FireWire接口),或者甚至可在逻辑上表示不同接口的组合。
监示器1147或其它显示设备也可以通过视频接口1148连接到***总线1123。扬声器1169或者其它音频输出设备也通过音频接口1149连接到***总线1123。其它***输出设备(未示出),诸如例如,打印机也可以连接到计算机***1120。
计算机***1120可连接到网络,诸如例如,办公室级或者企业级计算机网络,家庭网络,内联网,和/或因特网。计算机***1120可以通过这样的网络与外部源诸如例如远程计算机***,远程应用和/或远程数据库交换数据。
计算机***1120包括网络接口1153,通过它计算机***1120从外部源接收数据和/或发送数据到外部源。如图11所示,网络接口1153促进通过链路1151与远程计算机***1183的数据交换。网络接口1153可以在逻辑上表示一个或多个软件和/或硬件模块,诸如例如网络接口卡和相应的网络驱动程序接口规范(“NDIS”)堆栈。链路1151表示网络的一部分(例如以太网段),并且远程计算机***1183表示网络的一个计算机***。
同样,计算机***1120包括输入/输出接口1146,通过它计算机***1120从外部源接收数据和/或发送数据到外部源。输入/输出接口446通过链路459耦合到调制解调器454(例如,标准调制解调器,电缆调制解调器,或者数据订户线(“DSL”)调制解调器),通过它计算机***1120从外部源接收数据和/或发送数据到外部源。如图11所示,输入/输出接口1146和调制解调器1154促进通过链路1152与远程计算机***1193的数据交换。链路1152表示网络的一部分,而远程计算机***1193表示网络的一个计算机***。
尽管图11表示适合于本发明的操作环境,但本发明的原理可在任何能够实现本发明原理的(如果必要可做适当修改的)***中使用。在图11中例示的环境仅是说明性的,并且决不表示可实现本发明原理的多种多样环境的一小部分。
按照本发明,名字空间管理器,供应者和资源以及相关联的数据,包括名字空间数据库、名字空间标识符和串、散列、资源标识符、路由表和名字空间树,可从任何与计算机***1120相关联的计算机可读介质中存储和访问。例如,这类模块的部分和相关联程序数据的部分可包括在操作***1135、应用程序1136、程序模块1137和/或程序数据1138中,以存储在***存储器1122中。
当大容量存储设备诸如例如硬磁盘驱动器1139耦合到计算机***1120,这类模块和相关联的程序数据也可存储在大容量存储设备中。在网络化环境中,相对于计算机***1120所示的程序模块或其部分,可以存储在远程存储器存储设备中,诸如***存储器和/或与远程计算机***1183相关联的大容量存储设备和/或远程计算机***1193中。这类模块的执行可在分布式环境中完成,如前所述。
本发明可在不脱离它精神或实质特性的情况下以其它特定的形式实现。所述本发明是要在所有方面被认为只是说明性而不是限制性的。本发明的范围因此是由所附的权利要求书而不是由上述说明来表示的。所有来自权利要求书的等价意义和范围内的改变要包括在它们的范围之内。

Claims (53)

1.一种用于在一名字空间联盟基础结构中组织多个资源的方法,其特征在于,所述方法包括:
确定一个新资源要包括在一个或多个名字空间中的动作,所述一个或多个名字空间的每一个被配置成组织一个或多个资源;
标识所述一个或多个名字空间的第一名字空间中要与所述新资源相关的第一资源的动作;以及
使用第一名字空间段将所述新资源链接到所述第一资源,使得所述名字空间段可以被穿过,以从所述第一资源导航到所述名字空间内的所述新资源的动作。
2.如权利要求1所述的方法,其特征在于,还包括:
基于要包括在所述一个或多个名字空间中的资源建立所述一个或多个名字空间的动作,所述一个或多个名字空间的每一个标识资源查询的起点,使得高速缓存的用于实现查询的信息被减少,并且跨所述一个或多个名字空间的每一个分布。
3.如权利要求1所述的方法,其特征在于,还包括:
标识所述一个或多个名字空间的第二名字空间中要与所述新资源相关的第二资源的动作;以及
使用第二名字空间段将所述新资源链接到所述第二资源,使得所述名字空间段可以被穿过,以从现有资源导航到所述名字空间内的所述新资源的动作。
4.如权利要求1所述的方法,其特征在于,还包括:
发布所述第一名字空间中所述资源的可用性,使得所述第一名字空间可以被查询以定位所述资源的动作。
5.如权利要求1所述的方法,其特征在于,所述标识第一资源的动作包括查询所述名字空间内现有名字空间节点资源的属性的动作。
6.如权利要求1所述的方法,其特征在于,所述标识第一资源的动作包括标识所述第一名字空间中的中间名字空间节点资源的动作,所述中间名字空间节点资源具有可以在穿越所述第一名字空间期间被查询的属性。
7.如权利要求6所述的方法,其特征在于,所述标识所述第一名字空间中的中间名字空间节点资源的动作包括标识具有可以提供给过滤器作为输入的属性,以在穿越所述第一名字空间段时标识所述新资源的中间名字空间节点资源的动作。
8.如权利要求1所述的方法,其特征在于,还包括:
将URI分配给所述新资源,使得所述资源可以使用所述URI来访问的动作。
9.如权利要求8所述的方法,其特征在于,所述分配URI给所述新资源的动作包括分配唯一URI给所述资源,使得所述URI可以用于以异乎寻常的方式访问所述资源的动作。
10.如权利要求9所述的方法,其特征在于,还包括:
分配一个或多个附加URI给所述资源的动作,所述一个或多个附加URI的每一个用于从所述一个或多个名字空间之一内来访问所述新资源。
11.如权利要求8所述的方法,其特征在于,所述分配URI给所述新资源的动作包括分配可以用于在分层名字空间中标识所述新资源的URI的动作。
12.如权利要求8所述的方法,其特征在于,所述分配URI给所述新资源的动作包括分配可以在平面名字空间中标识所述新资源的URI的动作。
13.如权利要求8所述的方法,其特征在于,所述分配URI给所述新资源的动作包括分配具有一个或多个按照RFC-2396定义的部分的URI的动作。
14.如权利要求1所述的方法,其特征在于,使用第一名字空间段将所述新资源链接到所述第一资源包括除将所述第一资源链接到所述新资源之外,使用将所述第一资源链接到一个或多个其它资源的现有名字空间段的动作。
15.如权利要求1所述的方法,其特征在于,所述新资源是名字空间节点资源。
16.如权利要求1所述的方法,其特征在于,所述第一资源是名字空间节点资源。
17.如权利要求1所述的方法,其特征在于,还包括:
标识所述一个或多个名字空间的第二名字空间内要与所述新资源相关的第二资源的动作;以及
使用第二名字空间段将所述新资源链接到所述第二资源,使得所述第二名字空间段可以被穿过,以从所述第二资源导航到所述第二名字空间内的所述新资源的动作。
18.一种在一名字空间联盟基础结构中在多个名字空间中注册资源的方法,其特征在于,包括:
建立资源的唯一资源标识符的动作;
发布所述资源在第一名字空间中的可用性的动作;
将所述唯一资源标识符链接到所述第一名字空间中的第一名字空间节点资源,使得所述第一名字空间可以被穿过以标识所述资源的动作;
发布所述资源在第二名字空间中的可用性的动作;以及
将所述唯一资源标识符链接到所述第二名字空间中的第二名字空间节点资源,使得所述第二名字空间可以被穿过以标识所述资源的动作。
19.如权利要求18所述的方法,其特征在于,所述发布所述资源在第一名字空间中的可用性的动作包括发布所述资源在一个来自多个划分资源以提供名字空间确定范围的基础的多个名字空间中的第一名字空间中的可用性的动作。
20.如权利要求18所述的方法,其特征在于,所述发布所述资源在第一名字空间中的可用性的动作包括发布所述资源在具有一个起始名字空间节点资源的第一名字空间中的可用性的动作,所述起始名字空间节点资源可以由其它资源查询以标识在所述名字空间内的所述资源。
21.如权利要求18所述的方法,其特征在于,所述将所述唯一资源标识符链接到所述第一名字空间中第一名字空间节点资源使得所述第一名字空间可以被穿过以标识所述资源的动作包括将URI与所述资源相关联的动作。
22.如权利要求21所述的方法,其特征在于,所述将所述第一名字空间的URI与所述资源相关联的动作包括分配唯一URI给所述资源使得所述唯一URI可以用于以异乎寻常方式访问所述资源的动作。
23.如权利要求22所述的方法,其特征在于,还包括:
分配一个或多个附加URI给所述资源的动作,所述一个或多个附加URI的每一个用于从所述多个名字空间之一内访问所述新资源。
24.如权利要求18所述的方法,其特征在于,所述将所述唯一资源标识符链接到所述第一名字空间中的第一名字空间节点资源使得所述第一名字空间可以被穿过以标识所述资源的动作包括在所述资源与所述第一名字空间节点资源之间形成一名字空间段的动作。
25.如权利要求18所述的方法,其特征在于,所述发布所述资源在第二名字空间中的可用性的动作包括发布所述资源在来自划分资源以提供名字空间确定范围的基础的多个名字空间之中的第二名字空间中的可用性的动作。
26.如权利要求18所述的方法,其特征在于,所述发布所述资源在第二名字空间中的可用性的动作包括发布所述资源在一个具有起始名字空间节点资源的第二名字空间中的可用性的动作,所述起始名字空间节点资源可以由其它资源查询以标识在所述名字空间内的所述资源。
27.如权利要求18所述的方法,其特征在于,所述将所述唯一资源标识符链接到所述第二名字空间中的第二名字空间节点资源使得所述第二名字空间可以被穿过以标识所述资源的动作包括将所述第二名字空间的URI与所述资源相关联的动作。
28.如权利要求18所述的方法,其特征在于,所述将所述唯一资源标识符链接到所述第二名字空间中的第二名字空间节点资源使得所述第二名字空间可以被穿过以标识所述资源的动作包括在所述资源与所述第二名字空间节点资源之间形成一名字空间段的动作。
29.如权利要求18所述的方法,其特征在于,所述资源是名字空间节点资源。
30.一种用于在一名字空间联盟基础结构中在所述名字空间联盟基础结构中实现查询的方法,其特征在于,所述方法包括:
从设备接收查询的动作,所述查询包括:
第一查询部分,所述第一查询部分标识满足第一查询准则的第一部分资源,所述第一部分资源是在名字空间分层结构中第一层处标识的;以及
第二查询部分,所述第二查询部分标识从包括在第一部分资源中选择的满足第二查询准则的第二部分资源,所述第二部分资源是在名字空间中第二不同位置处标识的;以及
返回所述第二部分资源的身分给所述设备的动作。
31.如权利要求30所述的方法,其特征在于,所述从设备接收查询的动作包括名字空间的起始名字空间节点资源接收查询的动作。
32.如权利要求30所述的方法,其特征在于,所述从设备接收查询的动作包括名字空间内的一中间名字空间节点资源从所述名字空间的根名字空间节点资源接收查询的动作。
33.如权利要求30所述的方法,其特征在于,所述从设备接收查询的动作包括接收具有第二查询准则的查询的动作,所述查询标识所述名字空间分层结构中第二层处的资源。
34.如权利要求30所述的方法,其特征在于,所述从设备接收查询的动作包括接收具有第二查询准则的查询的动作,所述查询标识在第二不同名字空间分层结构中的资源。
35.如权利要求30所述的方法,其特征在于,所述返回第二部分资源的身分给所述设备的动作包括对于所述第二部分资源的每一个,返回至少一个可以用于以异乎寻常的方式访问资源的唯一相应的URI的动作。
36.如权利要求35所述的方法,其特征在于,还包括:
分配一个或多个附加URI给所述第二资源的每一个的动作,所述一个或多个附加URI的每一个用于从所述多个名字空间之一内访问所述第二资源的每一个。
37.如权利要求30所述的方法,其特征在于,还包括:
从所述第一部分资源中的第一资源穿越一名字空间段到所述第二部分资源中的第二资源的动作,所述名字空间段满足所述第二查询准则。
38.如权利要求30所述的方法,其特征在于,还包括:
使用所述第一查询准则导航通过引用所述第一部分资源的资源属性的动作。
39.如权利要求30所述的方法,其特征在于,还包括:
使用所述第二查询准则导航通过引用所述第二部分资源的所述第一部分资源的属性的动作。
40.一种在名字空间联盟基础结构中使用的计算机程序产品,所述计算机程序产品用于实现一种组织多个资源的方法,所述计算机程序产品包括一个或多个计算机可读介质,所述介质具有存储在其上的计算机可执行指令,当由处理器执行时,使所述名字空间联盟基础结构执行下列动作:
确定一新资源要包括在一个或多个名字空间中,所述一个或多个名字空间的每一个配置为组织一个或多个资源;
标识所述一个或多个名字空间的第一名字空间内要与所述新资源相关的第一资源;以及
使用第一名字空间段将所述新资源链接到所述第一资源,使得所述名字空间段可以被穿过以从所述第一资源导航到所述名字空间内的所述新资源。
41.如权利要求40所述的计算机程序产品,其特征在于,还包括计算机可执行指令,当被执行时,使所述名字空间联盟基础结构执行下列动作:
基于要包括在所述一个或多个名字空间中的所述资源,建立所述一个或多个名字空间,所述一个或多个名字空间的每一个标识资源查询的起点,使得高速缓存的用于实现查询的信息被减少,并且跨所述一个或多个名字空间的每一个分布所述高速缓存的信息。
42.如权利要求40所述的计算机程序产品,其特征在于,还包括计算机可执行指令,当被执行时,使所述名字空间联盟基础结构执行下列动作:
发布所述资源在所述第一名字空间中的可用性,使得所述第一名字空间可以被查询以定位所述资源。
43.如权利要求40所述的计算机程序产品,其特征在于,所述计算机可执行指令当被执行时使所述名字空间联盟基础结构标识包括名字空间的第一资源的计算机可执行指令包括计算机可执行指令,当被执行时,使所述名字空间联盟基础结构标识所述第一名字空间中的一中间名字空间节点资源,所述中间名字空间节点资源具有可以在穿越所述第一名字空间时查询的属性。
44.如权利要求40所述的计算机程序产品,其特征在于,所述在被执行时使所述名字空间联盟基础结构标识第一资源的计算机可执行指令包括计算机可执行指令,当被执行时,使所述名字空间联盟基础结构标识一中间名字空间节点资源,它具有可以作为输入提供给过滤器的属性,以在穿越所述第一名字空间段时标识所述新资源。
45.如权利要求40所述的计算机程序产品,其特征在于,还包括计算机可执行指令,当被执行时,使所述名字空间联盟基础结构执行下列动作:
分配一URI给所述新资源,使得所述资源可以使用所述URI来访问。
46.一种在名字空间联盟基础结构中使用的计算机程序产品,所述计算机程序产品用于实现一种在多个名字空间中注册资源的方法,所述计算机程序产品包括一个或多个计算机可读介质,所述介质具有存储在其上的计算机可执行指令,当由处理器执行时,使所述名字空间联盟基础结构执行下列动作:
建立资源的唯一资源标识符;
发布所述资源在第一名字空间中的可用性;
将所述唯一资源标识符链接到所述第一名字空间中的第一名字空间节点资源,使得所述第一名字空间可以被穿过以标识所述资源;
发布所述资源在第二名字空间中的可用性;以及
将所述唯一资源标识符链接到所述第二名字空间中的第二名字空间节点资源,使得所述第二名字空间可以被穿过以标识所述资源。
47.如权利要求46所述的计算机程序产品,其特征在于,所述计算机可执行指令在被执行时使名字空间联盟基础结构将所述唯一资源标识符链接到所述第一名字空间中第一名字空间节点资源的该计算机可执行指令包括计算机可执行指令,当被执行时,使所述名字空间联盟基础结构在所述资源与所述第一名字空间节点资源之间形成一名字空间段。
48.如权利要求46所述的计算机程序产品,其特征在于,所述计算机可执行指令在被执行时使所述名字空间联盟基础结构将所述唯一资源标识符链接到所述第二名字空间中第二名字空间节点资源的该计算机可执行指令包括计算机可执行指令,当被执行时,使所述名字空间联盟基础结构在所述资源与所述第二名字空间节点资源之间形成一名字空间段。
49.一种在名字空间联盟基础结构中使用的计算机程序产品,所述计算机程序产品用于实现一种实现在所述名字空间联盟基础结构中的查询的方法,所述计算机程序产品包括一个或多个计算机可读介质,所述介质具有存储在其上的计算机可读指令,当由处理器执行时,使所述名字空间联盟基础结构执行下列动作:
从一设备接收查询,所述查询包括:
第一查询部分,所述第一查询部分标识满足第一查询准则的第一部分资源,所述第一部分资源是在名字空间分层结构中第一层处标识的;以及
第二查询部分,所述第二查询部分标识从包括在第一部分资源中的资源中选择的满足第二查询准则的第二部分资源,所述第二部分资源是在名字空间中的第二不同位置标识的;以及
返回所述第二部分资源的身分给所述设备。
50.如权利要求49所述的计算机程序产品,所述计算机可执行指令在被执行时使所述名字空间联盟基础结构从一设备接收查询的该计算机可执行指令包括计算机可执行指令,当被执行时,使所述名字空间的起始名字空间节点资源接收所述查询。
51.如权利要求49所述的计算机程序产品,其特征在于,所述计算机可执行指令在被执行时使所述名字空间联盟基础结构从一设备接收查询的该计算机可执行指令包括计算机可执行指令,当被执行时,使所述名字空间联盟基础结构接收具有第二查询准则的查询,所述查询标识在所述名字空间分层结构中第二层处的资源。
52.如权利要求49所述的计算机程序产品,其特征在于,所述计算机可执行指令在被执行时使所述名字空间联盟基础结构从一设备接收查询的该计算机可执行指令包括计算机可执行指令,当被执行时,使所述名字空间联盟基础结构接收具有第二查询准则的查询,所述查询标识在第二不同名字空间分层结构中的资源。
53.如权利要求49所述的计算机程序产品,其特征在于,还包括计算机可读指令,当被执行时,使所述名字空间联盟基础结构执行下列动作:
从所述第一资源部分中的第一资源穿越一名字空间段到所述第二部分资源中的第二资源,所述名字空间段满足第二查询准则。
CN200510113321A 2004-09-30 2005-09-30 将资源组织成集合以促进更有效和可靠的资源访问 Expired - Fee Related CN100578494C (zh)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
CN1755694A true CN1755694A (zh) 2006-04-05
CN100578494C CN100578494C (zh) 2010-01-06

Family

ID=35593841

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200510113321A Expired - Fee Related CN100578494C (zh) 2004-09-30 2005-09-30 将资源组织成集合以促进更有效和可靠的资源访问

Country Status (10)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108886554A (zh) * 2016-03-28 2018-11-23 爱峰株式会社 终端设备及具有终端设备的对讲***

Families Citing this family (123)

* 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
US7409402B1 (en) * 2005-09-20 2008-08-05 Yahoo! Inc. Systems and methods for presenting advertising content based on publisher-selected labels
US7421441B1 (en) 2005-09-20 2008-09-02 Yahoo! Inc. Systems and methods for presenting information based on publisher-selected labels
US7856441B1 (en) 2005-01-10 2010-12-21 Yahoo! Inc. Search systems and methods using enhanced contextual queries
US7603349B1 (en) 2004-07-29 2009-10-13 Yahoo! Inc. User interfaces for search systems using in-line 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
US8250230B2 (en) * 2004-09-30 2012-08-21 Microsoft Corporation Optimizing communication using scalable peer groups
US20060090003A1 (en) * 2004-10-22 2006-04-27 Microsoft Corporation Rendezvousing resource requests with corresponding resources
US8095600B2 (en) 2004-10-22 2012-01-10 Microsoft Corporation Inter-proximity communication within a rendezvous federation
US8392515B2 (en) * 2004-10-22 2013-03-05 Microsoft Corporation Subfederation creation and maintenance in a federation infrastructure
US20110082928A1 (en) * 2004-10-22 2011-04-07 Microsoft Corporation Maintaining consistency within a federation infrastructure
US8549180B2 (en) * 2004-10-22 2013-10-01 Microsoft Corporation Optimizing access to federation infrastructure-based resources
US20080288659A1 (en) 2006-11-09 2008-11-20 Microsoft Corporation Maintaining consistency within a federation infrastructure
US8014321B2 (en) * 2004-10-22 2011-09-06 Microsoft Corporation Rendezvousing resource requests with corresponding resources
US8095601B2 (en) * 2004-10-22 2012-01-10 Microsoft Corporation Inter-proximity communication within a rendezvous federation
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
DK1843539T3 (da) * 2006-04-04 2008-10-13 Mueller Marken Gmbh & Co Betr Automatisk verificering af messenger-kontaktdata
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
EP1876788B1 (en) * 2006-07-07 2008-11-05 Alcatel Lucent Distributed Hashing Mechanism for self-organizing networks
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
US9038062B2 (en) * 2006-10-17 2015-05-19 Manageiq, Inc. Registering and accessing virtual systems for use in a managed system
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
US8234641B2 (en) 2006-10-17 2012-07-31 Managelq, Inc. Compliance-based adaptations in managed virtual systems
US8612971B1 (en) 2006-10-17 2013-12-17 Manageiq, Inc. Automatic optimization for virtual systems
US9015703B2 (en) 2006-10-17 2015-04-21 Manageiq, Inc. Enforcement of compliance policies in managed virtual systems
US8949826B2 (en) 2006-10-17 2015-02-03 Managelq, Inc. Control and management of 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
US8458695B2 (en) 2006-10-17 2013-06-04 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
US9086917B1 (en) 2006-10-17 2015-07-21 Manageiq, Inc. Registering and accessing virtual systems for use in a managed system
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
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
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
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
US8510267B2 (en) * 2011-03-08 2013-08-13 Rackspace Us, Inc. Synchronization of structured information repositories
US8554951B2 (en) 2011-03-08 2013-10-08 Rackspace Us, Inc. Synchronization and ordering of multiple accessess in a distributed system
US8538926B2 (en) 2011-03-08 2013-09-17 Rackspace Us, Inc. Massively scalable object storage system for storing object replicas
US8712975B2 (en) 2011-03-08 2014-04-29 Rackspace Us, Inc. Modification of an object replica
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
US9112824B2 (en) 2013-03-15 2015-08-18 Red Hat, Inc. Forwarding multicast messages in a messaging network
US9407583B2 (en) * 2013-03-15 2016-08-02 Red Hat, Inc. Handling unavailable destinations in a messaging network
US9552382B2 (en) 2013-04-23 2017-01-24 Exablox Corporation Reference counter integrity checking
EP3008647A4 (en) 2013-06-12 2017-01-25 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
WO2014205286A1 (en) 2013-06-19 2014-12-24 Exablox Corporation Data scrubbing in cluster-based storage systems
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
US9887924B2 (en) 2013-08-26 2018-02-06 Vmware, Inc. Distributed policy-based provisioning and enforcement for quality of service
US9811531B2 (en) 2013-08-26 2017-11-07 Vmware, Inc. Scalable distributed storage architecture
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
JP2017504924A (ja) 2014-02-04 2017-02-09 エグザブロックス・コーポレーション ファイルシステムのコンテンツベースの編成
US10812313B2 (en) * 2014-02-24 2020-10-20 Netapp, Inc. Federated namespace of heterogeneous storage system namespaces
CN106462582B (zh) 2014-06-26 2020-05-15 谷歌有限责任公司 批处理优化渲染和获取架构
EP3161610B1 (en) * 2014-06-26 2020-08-05 Google LLC Optimized browser rendering process
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
US10887249B2 (en) * 2014-08-29 2021-01-05 Hewlett Packard Enterprise Development Lp Resource trees by management controller
US9553843B1 (en) 2014-10-08 2017-01-24 Google Inc. Service directory profile for a fabric network
US10001913B2 (en) 2015-04-01 2018-06-19 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
US10963430B2 (en) 2015-04-01 2021-03-30 Dropbox, Inc. Shared workspaces with selective content item synchronization
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
US9479567B1 (en) 2015-10-29 2016-10-25 Dropbox, Inc. Synchronization 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
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
EP3782349A1 (en) * 2019-07-01 2021-02-24 Citrix Systems, Inc. Systems and methods for using namespaces to access computing resources
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
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
AT1751U1 (de) 1996-09-30 1997-10-27 Kuehn Eva Koordinations-system
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
CA2409920C (en) 2000-06-22 2013-05-14 Microsoft Corporation Distributed computing services platform
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
US7188145B2 (en) * 2001-01-12 2007-03-06 Epicrealm Licensing Llc Method and system for dynamic distributed data caching
WO2002056182A2 (en) 2001-01-12 2002-07-18 Epicrealm Operating Inc Method and system for community 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
EP1456796A4 (en) * 2002-01-08 2007-11-07 Tivo Inc SYSTEM FOR DISTRIBUTING AND EXCHANGING ELECTRONIC CONTENT
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
WO2004097624A1 (en) * 2003-04-24 2004-11-11 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
CA2840432C (en) * 2003-06-12 2017-08-29 Camiant, Inc. Dynamic service delivery with topology discovery for communication networks
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
US8250230B2 (en) 2004-09-30 2012-08-21 Microsoft Corporation Optimizing communication using scalable 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
US8549180B2 (en) 2004-10-22 2013-10-01 Microsoft Corporation Optimizing access to federation infrastructure-based resources
US8014321B2 (en) 2004-10-22 2011-09-06 Microsoft Corporation Rendezvousing resource requests with corresponding 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
WO2008036777A2 (en) 2006-09-19 2008-03-27 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 網路資源分配系統及方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108886554A (zh) * 2016-03-28 2018-11-23 爱峰株式会社 终端设备及具有终端设备的对讲***

Also Published As

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

Similar Documents

Publication Publication Date Title
CN1755694A (zh) 将资源组织成集合以促进更有效和可靠的资源访问
CN1200378C (zh) 预取信息的方法,***和服务器
US9094359B2 (en) Method and system for inter-social network communications
CN1703048A (zh) 网络服务应用协议和soap处理模型
CN1764171A (zh) 将资源请求与对应的资源会合
KR101357704B1 (ko) 구조화된 메타 데이터 기반 탐색을 게시하기 위한 플러그인 모델용에 대한 방법 및 장치
US20130304830A1 (en) Method and system for social media cooperation protocol
CN1705944A (zh) 使用对等网络执行自适应搜索的***和方法
US20080281807A1 (en) Search engine
CN1856790A (zh) 使用本体的信息访问
CN1852107A (zh) 关系信息的公开、获取方法及***
CN101064641A (zh) 对Web服务资源的基于属性的索引和/或查询方法及***
CN1451129A (zh) 自行公布的网络目录
CN1444746A (zh) 反向内容采集器
CN1643880A (zh) 瞬变网络中的动态寻址
CN1859390A (zh) 一种提供网页浏览信息的方法及装置
US8560630B2 (en) Sharing data over trusted networks
CN1664831A (zh) 支持异构事件的基于rdf的事件发布/订阅方法
CN1443328A (zh) 内容对象的活动目录
Pöhlsen et al. Integrating a decentralized web service discovery system into the internet infrastructure
JP2007011445A (ja) 履歴提供装置
Huang et al. Virtual and Dynamic Hierarchical Architecture: an overlay network topology for discovering grid services with high performance
JP2005222460A (ja) 情報管理装置、情報管理方法及び情報管理プログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150429

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150429

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100106

Termination date: 20170930

CF01 Termination of patent right due to non-payment of annual fee