CN101755262B - 命名空间合并 - Google Patents

命名空间合并 Download PDF

Info

Publication number
CN101755262B
CN101755262B CN2008800224414A CN200880022441A CN101755262B CN 101755262 B CN101755262 B CN 101755262B CN 2008800224414 A CN2008800224414 A CN 2008800224414A CN 200880022441 A CN200880022441 A CN 200880022441A CN 101755262 B CN101755262 B CN 101755262B
Authority
CN
China
Prior art keywords
resource
namespace
title
application program
sorted
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.)
Active
Application number
CN2008800224414A
Other languages
English (en)
Other versions
CN101755262A (zh
Inventor
J·M·希恩
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 CN101755262A publication Critical patent/CN101755262A/zh
Application granted granted Critical
Publication of CN101755262B publication Critical patent/CN101755262B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

在虚拟化环境中,对应用程序而言通常存在通过名称来访问计算机上的不同资源(例如,文件、配置设置等)的需要。所需资源可能来自计算机上的资源的多个离散命名空间或容器中的任何一个。资源名称可在一个命名空间中标识一个资源并在另一命名空间中标识另一资源,且这些命名空间可具有相对于彼此的不同优先次序。可通过枚举命名空间的逻辑合并中的名称来访问应用程序所需的资源,以使得当逻辑合并中的新名称被需要时可从这些命名空间中动态地选择它们。在不同命名空间中的两个资源具有相同名称时,可选择较高优先次序命名空间中的资源。

Description

命名空间合并
背景
计算机应用程序通常通过操作系统来访问计算机或系统资源。资源可以是文件、库、系统服务(例如,剪切和粘贴、打印机)、注册表或配置信息、以及其它。虚拟化环境或组件虚拟化应用程序对系统资源的访问,从而如同应用程序直接处理操作系统那样来透明地处理应用程序对系统资源的访问。
虚拟化环境可管理对多组系统资源的访问,这多组系统资源中的一部分可能重叠或冲突。本机操作系统可具有包括具有诸如“/某路径/某文件名”(“/somepath/someFileName”)等文件名的文件的一组文件资源。应用程序虚拟化包(或一组阴影资源)可具有使用同一文件名例如“/路径/某文件名”(“/path/someFileName”)的不同文件实例。虚拟化环境将以对应用程序透明的方式来管理应用程序对“/路径/某文件名”的访问。该应用程序可写入“/路径/某文件名”,且虚拟化环境将确定文件“/路径/某文件名”的哪个实例(本机操作系统文件或虚拟化包文件)将被写入。
在以下讨论涉及管理对资源的访问的技术。
概述
以下概述仅是为了介绍在以下详细描述中讨论的某些概念而包括的。本概述并不是全面的,并且不旨在描绘所要求保护的主题的范围,该范围由所附的权利要求书来阐明。
应用程序对计算机上在第一命名空间和第二命名空间中被命名的资源具有虚拟化访问权。第一命名空间包括资源的名称的第一列表而第二命名空间包括资源的名称的第二列表。每一命名空间对应于计算机上的不同资源组,其中某些资源尽管在不同组中,但在两个命名空间中都被命名。即,可能存在处于每一命名空间中但恰好具有相同名称的不同资源。应用程序请求第一名称的资源,而作为响应通过访问第一命名空间和第二命名空间来从由第一命名空间命名的资源组中获取该资源。应用程序请求第二名称的资源,而作为响应通过访问第一命名空间和第二命名空间来从由第二命名空间命名的资源组中获取该资源。
许多附带特征将参考以下的详细描述并结合附图考虑以在下文解释。
附图简述
根据附图阅读以下详细描述,将更好地理解本发明,其中在所附描述中使用相同的附图标记来指代相同的部分。
图1示出计算机上虚拟化环境。
图2示出管理对多组重叠资源的访问的虚拟化层。
图3示出用于资源命名空间的一次性合并的技术。
图4示出用于资源命名空间的动态合并的技术。
图5示出枚举逻辑资源命名空间时的操作的序列。
图6示出动态逻辑命名空间合并的过程。
图7示出在完成时将从资源命名空间中被动态地生成的逻辑资源命名空间。
图8-18示出得到图7中示出的逻辑资源命名空间的动态合并算法的操作的序列。
详细描述
概览
以下讨论的实施例涉及管理对计算机系统上的资源的虚拟访问。首先讨论虚拟环境。随后解释用于资源命名空间的静态合并的技术。与静态合并形成对比,随后介绍资源命名空间的动态合并,并解释动态合并的各方法。随后如会由动态合并的实施例之一处理的那样来走查示例问题。
虚拟环境
图1示出计算机102上的虚拟化环境100。在计算机102上运行的应用程序104通过该虚拟环境100来访问各系统资源106、108、和110。虚拟化环境100管理应用程序104对系统资源106、108、和110的访问。系统资源106、108、和110可以是在计算机上可用的任何类型的的资源。例如,系统资源106可以是系统文件、注册表或数据库条目、安装或配置文件、动态加载库等。系统资源108可以是诸如对象通信服务、打印服务、剪切和粘贴服务等系统服务。系统资源110可以是概况数据、TCP/IP地址和/或端口、互斥、信号量、命名管道、COM对象、字体。
系统资源106、108、和110可在计算机102上具有不同的可见范围。某些资源106、108、和110可以是对计算机102上的所有应用程序可见的全局本机资源。某些系统资源106、108、和110可以是仅可由应用程序104看见或访问的局部资源。例如,应用程序虚拟化包可包括文件、注册表条目、配置设置、或仅应用程序104使用的其它资源的实例。还可以存在仅对正在使用虚拟化环境100的特定用户或应用程序可用的其它半局部资源。值得注意的是,这些局部或半局部资源中的任何一个可能具有拥有相同名称的对应本机资源实例(即,计算机102上的全局资源)。即,如背景中所提到的,给定一资源名称,可能有:具有该名称的全局资源的实例、具有该名称的局部资源的实例、和/或具有该相同名称的半局部资源的实例。用于合并和访问此类重叠资源的技术在以下详细讨论。
虚拟化环境100使得资源106、108、和110作为一组虚拟资源112出现。尽管应用程序104可如同直接访问系统资源106、108、和110那样执行读和/或写操作,但是虚拟化环境中介这些操作。通常,应用程序104的操作将与在虚拟化环境100不在计算机102上存在时的操作没有任何不同。然而,无论应用程序在虚拟化环境存在的情况下是否改变其行为,以下讨论的用于合并资源(如系统资源106、108、和110)的命名空间的实施例将是适用的。
图2示出管理对多组重叠资源152、154、和156的访问的虚拟化层150。应用程序158通过虚拟化环境150来透明地访问资源152、154、和156。资源组152、154、和156具有不同的优先次序和目的。用户组152的范围仅为应用程序158,包组154的范围是在虚拟化层150下由相同用户运行的应用程序,而全局组156具有全局范围;主计算机上的任何应用程序或用户身份可能能够访问资源组156。可使用其它类型的资源。在另一实施例中,组152可用于所有在虚拟环境中运行的应用程序,而组154可用于运行一应用程序的所有用户上的所有虚拟环境。虽然资源组152、154、和156被示为按类型分成类别160、162、和164,但这并不是必需的,而取决于资源如何在特定计算平台上被访问。在一个实施例中,资源152、154、或156将是包含具有相同范围的所有类型的资源的容器,例如全局文件、注册表条目、网络连接、或局部文件和系统服务等。
资源组152、154、和156可如上所述地重叠,一个资源组可具有与另一组中的另一资源实例具有相同名称的资源实例。在图2的示例中,资源的实例“c:\目录\文件1(c:\dir\file1)”在资源组的每一个中。这些实例具有不同内容、不同大小等。诸如“c:\目录\文件4(c:\dir1\file4)”的另一资源仅在全局资源组156中。虚拟化层150处理应用程序158的打开名为“c:\目录\文件2(c:\dir1\file2)”的文件的请求。可能给定用户资源组152优先级,虚拟化层150可能打开使用资源152中的实例“c:\目录\文件2(c:\dir1\file2)”并将对应文件句柄或文件对象返回给应用程序158,从而使得应用程序158使用用于资源组152中的实例。在应用程序访问名为“c:\目录\文件4(c:\dir1\file4)”的文件时,从唯一具有该资源的资源组154中获取该资源。
合并资源命名空间
图3示出用于资源命名空间180、182、和184的一次性合并的技术。资源命名空间180、182、和184中的字母表示某些任意资源实例的名称,且不同资源命名空间中的相同字母表示相同名称的资源的不同实例(不同实例具有不同内容)。为提供对资源180、182、和184的一致且逻辑的访问,合并185这些资源以创建合并后的资源命名空间188。该合并185在应用程序186访问资源命名空间180、182、和184中的各种资源之前执行。具有其需要的资源的名称的列表的应用程序188,开始遍历该列表,以请求资源A、资源B、资源G等。在应用程序188需要例如资源A的资源时,其从完全合并的命名空间186中获取该资源。尽管合并后的命名空间可被描述为包含名称或资源,但实践中这样的合并将包含诸如名称(不同于由应用程序看到的名称)、唯一标识符、引用等全局明确信息。在一资源被描述为从命名空间中获取时,这包括获取允许该资源被访问的任何信息,例如指针、唯一标识符或地址、数据结构或用于访问该对象的对象等。
图3的静态合并方法存在若干问题。例如,如果基础资源命名空间180、182、和184之一的组成在一次性合并185之后改变,则合并后的资源命名空间188将是不正确的且可能向应用程序188提供不正确的资源,或资源命名空间180、182、和184将需要被重新合并。同样,存在预先合并命名空间所招致的性能成本。
动态资源命名空间合并
图4示出用于资源命名空间的动态合并的技术。使用此方法,应用程序从例如局部资源命名空间和全局资源命名空间等两个或多个组元资源命名空间中获取所需资源。在已经确定了200对资源的需要时,通过动态地合并组元资源命名空间来提供202逻辑命名空间。可经由具有用于枚举集合(名称的集合)的方法的对象接口来访问逻辑命名空间,其中将逻辑命名空间作为其所需的部分来生成(通过组元资源命名空间的动态合并),因此向应用程序给予逻辑命名空间是实际命名空间的表象。在应用程序需要204诸如资源A等资源时,动态合并的逻辑通过寻找具有资源A的组元资源命名空间来获取206该资源并将其返回给应用程序。资源A可来自诸如局部命名空间等组元命名空间中的任何一个。在应用程序需要208诸如资源B的另一资源时,动态合并逻辑随后查看各组元命名空间并确定哪一个将提供资源B,从该组元命名空间中获取210资源B并将其返回给应用程序。资源B可来自诸如全局命名空间等组元资源命名空间中的任何一个。两个命名空间可能具有名为A的不同资源的实例,且可能具有名为B的不同资源的实例。
图5示出枚举逻辑资源命名空间220时的操作的序列。在应用程序222需要224名为A的资源时,其例如使用诸如enumerate()、next()、nonempty()、first()等枚举接口的方法来向逻辑命名空间220请求资源。动态合并组件226查看基础资源命名空间228、230、和232中的资源的未合并名称。动态合并组件226检查基础资源命名空间228、230、和232并返回来自基础资源命名空间228的资源A,其作为逻辑资源命名空间220中的第一资源被返回给应用程序222。在应用程序222需要234资源B时,类似过程发生,动态合并组件226查看基础资源命名空间228、230、和232中的资源的未合并名称,并确定资源B虽然可在基础资源命名空间228和230中获得,但应来自基础资源命名空间280。将来自基础资源命名空间228的资源B返回给应用程序。在需要资源G时,从基础资源命名空间230将其返回,以此类推。
图6示出动态逻辑资源命名空间合并的过程。如前所述,集合(诸如命名空间中的资源的集合)的枚举涉及访问集合成员以使得先前未访问的集合成员被继续访问(优选地以某种逻辑次序)直到所有成员都已经被访问。在图6的过程中,应用程序或某个其它程序开始逻辑资源命名空间的枚举250。使用来自每一候选资源命名空间的下一未使用(未合并)名称来填充或填入252候选列表。从候选列表中返回254逻辑资源命名空间的滚动下一名称并将其增加到一空槽。通过例如从候选列表中移除被返回254的候选名称来刷新256候选列表。随着图6的过程的重复,任何空的候选列表条目再次被来自相应候选资源命名空间的下一未使用名称填充,且逻辑命名空间中的下一名称经由候选类表不断地从各候选资源命名空间之一到来。
如可见到的,在某些实施例中,按应用程序所需以滚动方式将来自重叠候选资源命名空间的资源从那些命名空间返回给该应用程序。如果需要各种任意资源,则可使用底层命名空间来直接查找名称而不使用枚举,在这种情况下在每一命名空间中执行查找并返回第一命中。使用动态合并的情况下,如果候选资源命名空间之一改变,则该改变对应用程序是可见的。此外,如果应用程序按序(例如,递增字母表次序)通过名称来请求资源,且如果按此对候选资源命名空间进行预先排序,则在资源被请求时该应用程序可快速地获取资源,因为不需要完成完整的合并。随着讨论图7-18这将变得更清楚。
图7示出在完成时将从示例资源命名空间282、284、和286中被动态地生成的逻辑资源命名空间288。图818示出应用于资源命名空间282、284、和286以得到图7中示出的逻辑资源命名空间288的动态合并算法280的合并操作的序列。示例资源命名空间282、284、和286是具有不同范围和优先次序的资源命名空间。在此示例中,在资源命名空间282、284、和286之间,资源命名空间282具有最高优先次序而资源命名空间286具有最低优先次序。在一个实施例中,资源命名空间282、284、和286的优先次序可随名称变化。换言之,对一个名称而言资源命名空间282可具有最高优先次序,而对另一名称而言资源命名空间284可具有较高优先次序。空初始逻辑命名空间288在图8中示出,而完成后的逻辑命名空间288在图18(以及图7)中示出。
如图8所示,最初,如也许在某些软件开始枚举逻辑命名空间时所请求地,需要来自逻辑命名空间288的下一名称。软件可以是在虚拟化环境中运行的应用程序或某个其它虚拟化或准虚拟化软件。随后使用来自其相应候选命名空间中的下一名称来填充280.1候选列表290中的空槽;其中A来自命名空间282、B来自命名空间284、而O来自命名空间286。如在候选命名空间282、284、和286中的“X”所示,这些资源被标记为在其相应的命名空间中使用。在图9中,找到280.2候选列表290中的最小条目,移除280.3候选列表290中具有该名称的所有条目(来自命名空间282的A)并将所找到282.2的条目A作为逻辑命名空间288的枚举中的下一名称返回280.5。
在图10中,在需要来自逻辑命名空间288的下一名称时重复过程280。使用资源命名空间282中的下一资源来填充资源命名空间282的空候选者,该下一资源是B282。B282被标记为用于资源命名空间282。在图11中,找到280.2候选列表290中的最小条目B。因为280.2.b是存在于命名空间280和284两者中的最小资源名称(在候选列表290中存在两个“B”条目),所以选择候选列表中最早的条目(来自最高优先级资源命名空间中的那个)。移除280.3候选列表290中的所有具有该名称的条目(来自命名空间282的B282和来自命名空间284的B284)。将所找到280.2的条目B282作为逻辑命名空间288中的下一名称返回280.5。
在图12中,在需要来自逻辑命名空间288的下一名称时重复过程280。使用资源命名空间282中的下一资源来填充资源命名空间282的空候选者,该下一资源是I(已删除)-I在资源命名空间282中被标记为在逻辑上已删除。使用资源命名空间284中的下一资源来填充资源命名空间282的空候选者,该下一资源是G。这两者都被标记为在对应资源命名空间282和284中使用。在图13中,找到280.2候选列表290中的最小条目G,将其从该候选列表290中移除280.3,并作为逻辑命名空间288中的下一名称返回280.5。
在图14中,在需要来自逻辑命名空间288的下一名称时重复过程280。使用资源命名空间284中的下一资源来填充资源命名空间284的空候选者,该下一资源是I。该条目被标记为用于资源命名空间284。在图15中,找到280.2候选列表290中的最小条目I(已删除)。从候选列表290中移除280.3所有I条目。然而,因为存在被标记为逻辑上已删除的I条目(该条目来自资源命名空间282),过程280重复且不将I作为逻辑命名空间288的成员返回,而不是返回280.5I(注意,当名称在一个命名空间中被标记为逻辑上已删除但未在另一个命名空间中这样标记时,来自较高优先级命名空间的名称控制删除是否应该进行)。在图16中,使用来自资源命名空间的名称来填充280.1由I条目空出的候选列表290槽;即来自资源命名空间282的名称L和来自资源命名空间284的名称K。在图17中,找到280.2最小候选资源K,将其从该候选列表290中移除280.3,并作为逻辑命名空间288中的下一条目返回280.5。图18示出在过程280的若干更多迭代之后的完成后的逻辑命名空间288。
逻辑命名空间的条目或元素可采取各种形式。较佳地,条目具有足够的信息以允许应用程序使用其来访问来自正确对应资源命名空间的资源。条目可仅具有资源名称或对资源名称的引用和指示其属于哪个资源命名空间的指示。例如,条目可包含指示文件的名称的信息以及指示文件处于一具体资源命名空间中的信息。可包括命名空间的标识符。条目可包含资源对象或对其的引用。可在动态合并期间要将资源添加到逻辑命名空间时生成这样的条目。使用该资源名称来打开对应基础资源命名空间中的资源。通过该资源的打开来返回对象、引用、文件句柄等并将其添加到逻辑命名空间。
如上文所述的逻辑删除对确保资源命名空间之间的一致性是有用的。如果应用程序需要删除一资源,其可从一个资源命名空间中在逻辑上删除该资源而不必从其它命名空间中删除该资源。该删除可通过逻辑合并来实现。在逻辑命名空间被生成时,将不在逻辑命名空间中包括具有在逻辑上已删除资源的名称的资源。尽管有用,但逻辑删除不是必需的。
根据上述各实施例,在应用程序要枚举逻辑命名空间的成员时,逻辑资源命名空间可被该应用程序高效地使用。即,如果应用程序需要访问一组资源且这些要访问的资源的名称被排序了,则可从候选命名空间中高效地获取这些资源。参考图7的示例,在应用程序按A、B、G、K、L、和O的次序来访问它们时,可使用很小的计算开销来从资源命名空间282、284、和286中获取这些资源(或名称/对其的引用)。同时,可一致地解决冲突资源,使得较高优先级资源较优先于具有相同名称的较低优先级资源而被使用。然而,当未在较高优先次序命名空间中找到资源时,仍可使用来自较低优先次序命名空间的资源。
结论
上述用于命名空间合并的技术在虚拟化设置中是有用的,但不限于虚拟化设置。在需要命名空间重叠的不同资源组时可使用该技术。尽管某些技术在资源命名空间被排序时可高效地运作,但这不是必需的。类似地,如果按序例如按字母表次序来枚举,则逻辑命名空间可被高效地使用。然而,这不是必需的,且逻辑命名空间中的元素也可被随机访问。
以上讨论的实施例和特征都可用储存在易失性或非易失性计算机或设备可读介质中的信息的形式来实现。这被认为至少包括诸如光学存储(例如,CD-ROM)、磁介质、闪速ROM、或存储数字信息的任何现有或未来装置等介质。所存储的信息可采用机器可执行指令(例如,经编译的可执行二进制代码)、源代码、字节代码、或任何其它可用于允许或配置计算机设备来执行上述各实施例的信息的形式。这还被认为至少包括诸如RAM和/或在程序的执行期间存储诸如CPU指令等信息以实现一实施例的虚拟存储器等易失性存储器,以及存储允许程序或可执行代码被加载和执行的信息的非易失性介质。实施例和特征可在任何类型的计算设备上执行,这些计算设备包括便携设备、工作站、服务器、移动无线设备等。

Claims (21)

1.一种用于使用计算机上的资源的第一命名空间和所述计算机上的资源的第二命名空间来提供对所述计算机上的资源的访问的方法,其中所述命名空间的资源被排序,且其中一个或多个名称对两个命名空间是共用的且这些一个或多个名称表示资源的不同的相应实例,所述方法包括:
接收应用程序对一资源的请求;
响应于所述接收,动态地合并所述第一命名空间和所述第二命名空间以形成逻辑命名空间;以及
使用所述逻辑命名空间来获取所述资源。
2.如权利要求1所述的方法,其特征在于,所述动态合并包括:
跟踪所述第一命名空间的当前候选者和所述第二命名空间的第二候选者,并从所述候选者中选择所述逻辑命名空间的名称,其中所述候选者是来自相应命名空间的未使用或未合并的资源的名称。
3.如权利要求2所述的方法,其特征在于,基于所述当前候选者的相对次序来选择所述逻辑命名空间的名称。
4.如权利要求3所述的方法,其特征在于,还包括在第一当前候选者已经被选择为所述逻辑命名空间的名称时将所述第一当前候选者设置成所述第一命名空间中的下一名称。
5.如权利要求4所述的方法,其特征在于,还包括:在第二当前候选者与已经被选择为所述逻辑命名空间的名称的所述第一当前候选者相同时,将所述第二当前候选者设置成所述第二命名空间中的下一名称。 
6.如权利要求1所述的方法,其特征在于,在完成所述第一命名空间和所述第二命名空间的完整逻辑合并之前从所述逻辑命名空间中获取所述资源。
7.如权利要求1所述的方法,其特征在于,按优先级排序所述命名空间,使得在当前候选者相同时,较高优先级命名空间的所述当前候选者被选择,其中所述候选者是来自相应命名空间的未使用或未合并的资源的名称。
8.一种向应用程序提供对计算机上的资源的虚拟化访问的方法,其中所述资源在第一命名空间和第二命名空间中被命名,所述第一命名空间包括资源的名称的第一列表而所述第二命名空间包括资源的名称的第二列表,其中每一命名空间对应于所述计算机上的不同资源组,其中某些资源尽管在不同组中,但在两个命名空间中用相同名称来命名,所述方法包括:
由所述应用程序请求第一名称的资源,而作为响应通过访问所述第一命名空间和所述第二命名空间来从由所述第一命名空间命名的资源组中获取所述资源;以及
由所述应用程序请求第二名称的资源,而作为响应通过访问所述第一命名空间和所述第二命名空间来从由所述第二命名空间命名的资源组中获取所述资源。
9.如权利要求8所述的方法,其特征在于,所述第一命名空间中的名称被排序且所述第二命名空间中的名称被排序,且在所述第一命名空间中的所述第一名称的资源的名称相对于所述第二命名空间中的相同名称的次序的基础上获取所述第一名称的资源。
10.如权利要求8所述的方法,其特征在于,所述第一命名空间中的名称被排序且所述第二命名空间中的名称被排序,且所述获取包括动态地合并所述命名空间使得通过名称对资源的后续请求导致次序越来越高的名称从所述命名空间被返回。 
11.如权利要求8所述的方法,其特征在于,所述第一命名空间中的名称被排序且所述第二命名空间中的名称被排序,且通过从沿着所述第一和第二命名空间移动的候选窗口中选择所述第一和第二资源的名称来获取所述第一和第二资源,其中所述第一和第二资源的名称处于所述窗口中,且基于所述第二资源的名称相对于所述第一资源的名称具有较低次序而在所述第一名称的资源之前获取所述第二名称的资源。
12.如权利要求8所述的方法,其特征在于,基于所述命名空间的相对优先级来给予一个命名空间中的名称优于另一命名空间中的相同名称的优先级。
13.如权利要求8所述的方法,其特征在于,当在所述第一命名空间中逻辑上删除一名称时,所述第一命名空间的对应资源和所述第二命名空间的对应资源两者都变得对所述应用程序不可用。
14.如权利要求8所述的方法,其特征在于,所述请求和所述获取被重复执行,使得从两个所述命名空间中的名称中获取资源的名称的排序列表。
15.一种访问由应用程序所需的资源的方法,其中所述应用程序将按增序来通过名称访问多个资源,其中所述资源可能来自计算机上的资源的多个容器中任何一个,且其中所述容器具有相对于彼此的不同和/或变化的优先次序,所述方法包括:
对每一容器,按增序提供其资源的名称的对应列表;以及
通过枚举名称的所述排序列表的逻辑合并中的名称来访问应用程序所需的资源,使得当所述逻辑合并中的新名称被需要时,可从所述排序列表中动态地选择它们。
16.一种访问由应用程序所需的资源的方法,其中所述应用程序将按降序来通过名称访问多个资源,其中所述资源可能来自计算机上的资源的多个容器中任 何一个,且其中所述容器具有相对于彼此的不同和/或变化的优先次序,所述方法包括:
对每一容器,按降序提供其资源的名称的对应列表;以及
通过枚举名称的所述排序列表的逻辑合并中的名称来访问应用程序所需的资源,使得当所述逻辑合并中的新名称被需要时,可从所述排序列表中动态地选择它们。
17.如权利要求15或16所述的方法,其特征在于,从所述排序列表中选择所述名称包括:
在相同的之前未选择名称出现在两个排序列表中时,从具有较高优先次序的对应容器的列表中选择所述名称。
18.如权利要求15或16所述的方法,其特征在于,从所述排序列表中的之前未选择名称之中按序选择所述逻辑合并的新名称。
19.如权利要求18所述的方法,其特征在于,从所述排序列表中选择所述名称包括:
当在两个排序列表中存在之前未选择名称时,为所述逻辑合并中的所述新名称选择最低名称。
20.如权利要求15或16所述的方法,其特征在于,从所述排序列表中选择所述名称包括:
在排序列表中的名称被标记为在逻辑上已删除时,将另一排序列表中的相同名称作为在逻辑上已删除对待,以使得所述名称从所述排序列表的逻辑合并中被略去。
21.如权利要求15或16所述的方法,其特征在于,所述资源在所述排序列表的逻辑合并未完成时被访问。 
CN2008800224414A 2007-06-29 2008-06-11 命名空间合并 Active CN101755262B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/770,768 2007-06-29
US11/770,768 US7886301B2 (en) 2007-06-29 2007-06-29 Namespace merger
PCT/US2008/066543 WO2009005979A1 (en) 2007-06-29 2008-06-11 Namespace merger

Publications (2)

Publication Number Publication Date
CN101755262A CN101755262A (zh) 2010-06-23
CN101755262B true CN101755262B (zh) 2013-04-24

Family

ID=40162406

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008800224414A Active CN101755262B (zh) 2007-06-29 2008-06-11 命名空间合并

Country Status (5)

Country Link
US (2) US7886301B2 (zh)
EP (1) EP2176781B1 (zh)
JP (1) JP5437238B2 (zh)
CN (1) CN101755262B (zh)
WO (1) WO2009005979A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7886301B2 (en) * 2007-06-29 2011-02-08 Microsoft Corporation Namespace merger
WO2009132256A1 (en) * 2008-04-25 2009-10-29 Vmware, Inc. Linking virtualized application namespaces at runtime
US20140157324A1 (en) * 2012-11-30 2014-06-05 Comcast Cable Communications, Llc Content Identification and Management
US9984083B1 (en) 2013-02-25 2018-05-29 EMC IP Holding Company LLC Pluggable storage system for parallel query engines across non-native file systems
US9454573B1 (en) 2013-02-25 2016-09-27 Emc Corporation Parallel processing database system with a shared metadata store
CA2820492A1 (en) * 2013-06-18 2014-12-18 El Fresko Technologies Limited Namespace transformations
US10067949B1 (en) 2013-12-23 2018-09-04 EMC IP Holding Company LLC Acquired namespace metadata service for controlling access to distributed file system
US9992236B2 (en) * 2015-06-22 2018-06-05 Dell Products L.P. Systems and methods for providing protocol independent disjoint port names
KR102614697B1 (ko) * 2016-12-08 2023-12-18 삼성전자주식회사 디스플레이 장치 및 디스플레이 장치의 채널 정보 획득 방법
CN107329808B (zh) * 2017-06-29 2020-12-18 联想(北京)有限公司 一种信息处理方法及装置
JP7399818B2 (ja) 2020-08-11 2023-12-18 株式会社東芝 情報処理装置、情報処理方法、およびプログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1920826A (zh) * 2005-07-28 2007-02-28 国际商业机器公司 在具有命名空间的文件系统中查找丢失对象的方法和装置

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724512A (en) 1995-04-17 1998-03-03 Lucent Technologies Inc. Methods and apparatus for storage and retrieval of name space information in a distributed computing system
JP3738787B2 (ja) * 1995-10-19 2006-01-25 富士ゼロックス株式会社 資源管理装置及び資源管理方法
JPH09190465A (ja) * 1996-01-11 1997-07-22 Yamaha Corp 分類格納された情報の参照方法
US5890011A (en) 1997-01-27 1999-03-30 International Business Machines Corporation Method and system for dynamically translating bus addresses within a computer system
US6678724B2 (en) 1997-03-12 2004-01-13 Microsoft Corporation Common namespace for internet and local filesystem objects
US6038677A (en) * 1997-03-31 2000-03-14 International Business Machines Corporation Automatic resource group formation and maintenance in a high availability cluster configuration
US6061743A (en) 1998-02-19 2000-05-09 Novell, Inc. Method and apparatus for aggregating disparate namespaces
US6256031B1 (en) 1998-06-26 2001-07-03 Microsoft Corporation Integration of physical and virtual namespace
US6865576B1 (en) * 1999-05-21 2005-03-08 International Business Machines Corporation Efficient schema for storing multi-value attributes in a directory service backing store
US6408298B1 (en) 1999-12-15 2002-06-18 Microsoft Corporation Methods and systems for copying and moving across virtual namespaces
US6816907B1 (en) * 2000-08-24 2004-11-09 International Business Machines Corporation System and method for providing differentiated services on the web
US6915507B1 (en) 2000-11-21 2005-07-05 Microsoft Corporation Extensible architecture for project-development systems
US6687701B2 (en) 2001-09-25 2004-02-03 Hewlett-Packard Development Company, L.P. Namespace management in a distributed file system
US6947940B2 (en) * 2002-07-30 2005-09-20 International Business Machines Corporation Uniform name space referrals with location independence
JP2004110624A (ja) 2002-09-20 2004-04-08 Fuji Xerox Co Ltd 計算機リソース管理装置および方法
US7444376B2 (en) * 2003-05-22 2008-10-28 Hewlett-Packard Development Company, L.P. Techniques for creating an activation solution for providing commercial network services
US7949682B2 (en) * 2003-11-05 2011-05-24 Novell, Inc. Method for providing a flat view of a hierarchical namespace without requiring unique leaf names
US7962918B2 (en) * 2004-08-03 2011-06-14 Microsoft Corporation System and method for controlling inter-application association through contextual policy control
US7690033B2 (en) * 2004-09-28 2010-03-30 Exobox Technologies Corp. Electronic computer system secured from unauthorized access to and manipulation of data
US7613703B2 (en) * 2004-09-30 2009-11-03 Microsoft Corporation Organizing resources into collections to facilitate more efficient and reliable resource access
US7725601B2 (en) 2004-10-12 2010-05-25 International Business Machines Corporation Apparatus, system, and method for presenting a mapping between a namespace and a set of computing resources
US7512957B2 (en) 2004-12-03 2009-03-31 Microsoft Corporation Interface infrastructure for creating and interacting with web services
US20060265508A1 (en) 2005-05-02 2006-11-23 Angel Franklin J System for administering a multiplicity of namespaces containing state information and services
WO2007014297A2 (en) 2005-07-26 2007-02-01 Invensys Systems, Inc. Method and system for hierarchical namespace
US9286595B2 (en) * 2006-08-02 2016-03-15 Emc Corporation System and method for collecting and normalizing entitlement data within an enterprise
US7886301B2 (en) * 2007-06-29 2011-02-08 Microsoft Corporation Namespace merger

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1920826A (zh) * 2005-07-28 2007-02-28 国际商业机器公司 在具有命名空间的文件系统中查找丢失对象的方法和装置

Also Published As

Publication number Publication date
EP2176781A4 (en) 2012-11-14
US8255918B2 (en) 2012-08-28
WO2009005979A1 (en) 2009-01-08
US20090007161A1 (en) 2009-01-01
CN101755262A (zh) 2010-06-23
EP2176781A1 (en) 2010-04-21
US7886301B2 (en) 2011-02-08
JP5437238B2 (ja) 2014-03-12
EP2176781B1 (en) 2019-04-24
US20110088040A1 (en) 2011-04-14
JP2010532523A (ja) 2010-10-07

Similar Documents

Publication Publication Date Title
CN101755262B (zh) 命名空间合并
US8832697B2 (en) Parallel filesystem traversal for transparent mirroring of directories and files
US7664927B2 (en) Hash tables
US10140461B2 (en) Reducing resource consumption associated with storage and operation of containers
CN102932415B (zh) 一种镜像文件存储方法及装置
US8321487B1 (en) Recovery of directory information
US20150012538A1 (en) Flexible namespace prioritization
US11586506B2 (en) System and method for indexing image backups
US9497257B1 (en) File level referrals
US20100312749A1 (en) Scalable lookup service for distributed database
US11093143B2 (en) Methods and systems for managing key-value solid state drives (KV SSDS)
CN111480155B (zh) 在文件系统中处理字母大小写的技术
CN100458792C (zh) 用于管理海量存储系统的方法和数据处理系统
US20180307759A1 (en) Systems and methods for managed asset distribution in a distributed heterogeneous storage environment
CN108319634B (zh) 分布式文件系统的目录访问方法和装置
US9177034B2 (en) Searchable data in an object storage system
US20180260155A1 (en) System and method for transporting a data container
US9239860B1 (en) Augmenting virtual directories
US20220129419A1 (en) Method and apparatus for providing metadata sharing service
EP3995972A1 (en) Metadata processing method and apparatus, and computer-readable storage medium
US20210303530A1 (en) Providing enhanced security for object access in object-based datastores
CN111435342A (zh) 海报的更新方法、更新系统以及管理系统
CN112506877B (zh) 基于重删域的数据重删方法、装置、系统及存储设备
CN102298619B (zh) 一种上层文件系统对空洞文件快速读取的方法及系统
US7523169B1 (en) Method and system for mapping network data for network database access

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: 20150513

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

Effective date of registration: 20150513

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.