在数据库内部表示的文件系统的制作方法

文档序号:6554387阅读:173来源:国知局
专利名称:在数据库内部表示的文件系统的制作方法
相关申请的交叉引用本申请要求2005年2月28日提交的名为“FILE SYSTEM REPRESENTEDINSIDE A DATABASE(在数据库内部表示的文件系统)”的美国临时专利申请第60/657,533号的优先权。该申请的全部内容通过引用结合于此。
背景技术
计算机技术中的进步(例如,微处理器速度、存储器容量、数据传输带宽、软件功能等)一般促进了各种行业中越来越多的计算机应用。通常被配置成服务器阵列的更强大的服务器系统常被提供来服务源自诸如万维网等外部源的请求。
当可用电子数据的量增长时,以可管理的方式储存这类数据也变得越来越重要,该方式便于用户友好且快速的数据搜索和检索。当今,一种常用的方法是将电子数据储存在一个或多个数据库中。一般而言,典型的数据库可被称为信息的有组织集合,其中数据被结构化使得例如计算机程序能够快速地搜索和选择期望的数据片断。通常,数据库内的数据是通过一个或多个表来组织的。这类表被排列为行和列的数组。
同样,表可包括一组记录,且记录包括一组字段。记录通常被索引为表内的行,而记录字段通常被索引为列,使得索引的行/列对可引用表内的特定数据。例如,行可储存涉及销售交易、人或项目的完整数据记录。同样,表的列可定义行中具有该同一通用数据格式的离散部分,其中列可定义记录的字段。
每一个别的数据片断当独立时一般不能提供非常多的信息。数据库应用程序使得数据更有用,因为它们帮助用户组织和处理数据。数据库应用程序允许用户比较、分类、排序、合并、分离和互连数据,使得可从数据中生成有用的信息。然而,数据库的容量和多功能性已经增长为难以置信的数量,以允许利用数据库的实际上无限的存储容量。此外,典型的数据库系统提供了基于时间、文件扩展名、位置和大小的有限查询能力。例如,为搜索与数据库相关联的大量数据,典型的搜索限于文件名、文件大小、创建日期,其中这些技术是不完善且不适当的。
随着来自最终用户的持续且不断增长的数据创建,围绕寻找、相关和储存这类数据的问题和困难正逐渐达到其最高峰。最终用户编写文档、储存照片、从光盘中剥离音乐、接收电子邮件、保留已发送电子邮件的副本等等、例如,在简单的创建音乐光盘的过程中,最终用户可创建兆字节的数据。从光盘中剥离音乐,将文件转换成合适的格式,创建珠宝盒封面、设计光盘标签,所有这些都需要创建数据。
不仅对于用户有复杂性,开发者也具有类似的数据问题。开发者创建和编写无数的应用程序,从个人应用程序到高度开发的企业应用程序变化。在创建和/或开发时,开发者经常(如果不是总是)要收集数据。在获取这些数据时,数据需要被储存。换言之,围绕查找、相关和储存数据的问题和困难危及开发者和最终用户两者。
此外,数据库中的技术进步导致大量的格式和/或配置。数据库格式和/或配置预定地增长,其中这类改变可造成集成的难题。换言之,完全不同的文件数据库通常不能基于开发差异而良好地彼此适应。因此,需要克服与常规系统和数据库相关联的上述示例性缺陷。

发明内容
以下提出了本发明的简化概述,以提供对本发明的某些方面的基本理解。本概述不是本发明的广泛综述。它不旨在标识本发明的关键或决定性要素,也不旨在勾画本发明的范围。其唯一的目的是以简化的形式提出本发明的某些概念,作为下文中提出的更详细描述的序言。
本发明涉及便于适配完全不同的文件系统的系统和/或方法。文件系统适配器可提供第一文件系统和第二文件系统之间的统一性。该统一性可允许第一文件系统的应用程序和/或API能够在第二文件系统中实现。文件系统适配器可实现文件后备项目(file-backed item),它可以是涉及依赖于文件和/或文件系统来填充与其相关联的至少一个属性的第二文件系统的项目。文件后备项目可利用该文件和/或相关联的文件流来用第二文件系统中的属性和/或元数据填充项目。通过利用文件后备项目,文件系统适配器允许与第二文件系统相关联的API以及涉及第一文件系统的当前和先前版本的现有API的操纵。文件系统适配器也可提供第一文件系统和第二文件系统之间的同步。可以明白和理解,文件后备项目可将第一文件系统的特征结合到第二文件系统中,这些特征诸如属性、安全特征、文件流、文件等等。
依照本发明的一方面,文件系统适配器可包括属性组件。属性组件可向第二文件系统提供关联到与第一文件系统相关联的文件和/或文件流的属性。文件可具有至少一个属性,诸如但不限于,只读、压缩、归档文件等,其中,一个和/或多个比特可表示这些属性。属性组件可允许表示第一文件系统中的文件和/或文件流的文件后备项目将这些属性结合到第二文件系统中。
依照本发明的另一方面,文件系统适配器可包括允许至少一个属性保持在项目、文件后备项目以及后备文件(例如,文件系统中由文件后备项目表示的文件)之间同步的元数据处理程序组件。属性可在后备文件流中修改,其中元数据处理程序组件可将新值升级到第二文件系统内的项目中的适当字段。此外,属性可通过与第二文件系统相关联的API来改变;元数据处理程序组件可将新值降级到第一文件系统内的后备文件流。
依照本发明的又一方面,文件系统适配器可包括为文件后备项目的属性提供同步的映象组件。另外,属性隧道传送组件可用于提供属性隧道传送以便于第二文件系统内的名称改变和/或保存资源。此外,文件系统适配器可包括结合本发明利用有向无环图的DAG组件。在本发明的其它方面,提供了便于适配完全不同的文件系统的方法。
以下描述和附图详细陈述了本发明的某些说明性方面。然而,这些方面仅指示了可采用本发明的原理的各种方法中的几种,且本发明并不旨在包括所有这些方面及其等效方面。当结合附图考虑以下本发明的详细描述时,可以清楚本发明的其它优点和新颖特征。


图1示出了便于适配文件流关联的文件系统和元数据关联的文件系统的示例性系统的框图。
图2示出了便于适配至少两个完全不同的文件系统来提供统一性的示例性系统的框图。
图3示出了便于适配文件流关联的文件系统和元数据关联的文件系统的示例性系统的框图。
图4示出了便于同步至少两个完全不同的文件系统的示例性系统的框图。
图5示出了便于将一个文件系统适配到一个完全不同的文件系统的文件后备项目的框图。
图6示出了便于适配文件流关联的文件系统和元数据关联的文件系统的示例性系统的框图。
图7示出了便于文件流关联的文件系统和元数据关联的文件系统的示例性系统的框图。
图8示出了用于适配至少两个完全不同的文件系统以提供统一性的示例性方法。
图9示出了用于将一个文件系统适配到一个完全不同的文件系统的示例性方法。
图10示出了用于适配文件流关联的文件系统和元数据关联的文件系统的示例性方法。
图11示出了其中可采用本发明的新颖方面的示例性联网环境。
图12示出了可依照本发明采用的示例性操作环境。
具体实施例方式
如本申请中所使用的,术语“组件”、“系统”、“接口”等指的是计算机相关的实体,它们可以是硬件、软件(例如,执行中的)和/或固件。例如,组件可以是运行在处理器上的进程、处理器、对象、可执行文件、程序和/或计算机。作为说明,运行在服务器上的应用程序和服务器都可以是组件。一个或多个组件可驻留在进程中,且组件可以位于一台计算机上和/或分布在两台或多台计算机之间。
本发明是参考附图来描述的,在所有附图中,相同的参考标号用于指相同的元素。在以下描述中,为解释起见,陈述了多个具体细节以提供对本发明的全面理解。然而,很明显,本发明可以不使用这些具体细节来实施。在其它情况下,以框图的形式示出了公知的结构和设备以便于描述本发明。
现在转向附图,图1示出了便于将一个文件系统与一个完全不同的文件系统适配的系统100。文件系统102可以是文件存储系统,其中结构是基于文件流和/或目录。文件系统102可利用该文件系统,使得应用程序和/或应用程序编程接口(API)可丰富(enrich)该文件系统以提供更多结构。文件系统103可以是更复杂的模型,其中定义了项目、子项目、属性和关系以允许在文件系统104内将信息表示成复杂类型的实例。项目可以被定义为文件系统104中的最小一致性单元,它可以被独立地保护、串行化、同步、复制、备份/恢复等。项目是类型的实例,其中文件系统104中的所有项目可被储存在单个全局项目范围中。文件系统104可以基于至少一个项目和/或容器结构。文件系统104可以是展示在文件内作为项目隐藏的丰富的元数据的存储平台。可以理解,文件系统104可以是由数据模型表示的文件存储系统以支持所讨论的功能。
文件系统适配器106可提供文件系统102和文件系统104之间的兼容性和/或统一性。兼容性和/或统一性可允许文件系统102的应用程序和/或API在文件系统104内实现。文件系统适配器106可实现文件后备项目,它可以是涉及文件系统104的项目,它依赖于文件和/或文件流来填充与其相关联的至少一个属性。文件后备项目可以担当文件系统102和丰富模式化的文件系统104和/或与其有关的数据模型之间的桥梁。例如,文件系统104中的图像项目可以是文件后备项目,其中,图像项目是以文件系统102中符合标准图像格式(例如,JPEG、TIF、BMP等)的文件作为后备的。换言之,文件后备项目可利用文件和/或相关联的文件流(例如,由文件系统102利用)来用文件系统104中的属性和/或元数据来填充项目。通过利用文件后备项目,文件系统适配器106允许由与文件系统104相关联的API以及涉及文件系统102的当前和先前版本的现有API的操纵。文件系统适配器106也可提供文件系统102和文件系统104之间的同步。具体地,文件后备项目可提供与后备文件中的对应数据同步的数据。可以明白和理解,文件后备项目可向文件系统104提供文件系统102的特征,诸如但不限于,属性、安全特征、文件流、文件等。
系统100还包括接口组件108,它提供了各种适配器、连接器、通道、通信路径等,以将文件系统适配器106集成到实际上任何操作系统中。另外,接口组件108可提供各种适配器、连接器、通道、通信路径等,它们能够与数据和文件系统适配器106交互。可以理解,尽管接口组件108被结合到文件系统适配器106中,这种实现并不如此受限制。例如,接口组件108可以是独立的组件,以接收或发送与系统100有关的数据。
图2示出了便于适配至少两个完全不同的文件系统来提供统一性的系统200。文件系统适配器206可提供文件系统202和文件系统204之间的统一性和/或兼容性。然而,可以明白和理解,文件系统适配器206可提供对多个完全不同的文件系统的适配。文件系统202可以是基于文件流和目录的文件系统,它利用至少一个API和/或应用程序。例如,与文件系统202有关的API和/或应用程序可以是,但不限于,16位、32位等版本。文件系统204可以是利用项目作为一致性单元的复杂结构,其中元数据、属性、关系被实现为复杂类型的实例。文件系统204可以是可描述数据形状、声明隐含数据上的某一语义一致性的约束、以及定义数据之间的语义关联的数据模型。通过利用文件系统适配器206,与文件系统202有关的API和/或应用程序可以在文件系统204内统一地使用。可以理解,文件系统202、文件系统204和文件系统适配器206可以基本上分别类似于图1中的文件系统102、文件系统104和文件系统适配器106。
文件系统适配器206可包括分析文件系统202的分析器组件210。分析器组件210可确定与其相关联的目录和/或文件,以便于提供可与文件系统204适配和/或兼容的系统。分析器组件210可确定至少一个叶节点。可以理解,叶节点可以被表示为文件后备项目,其中文件系统202的所有目录和/或文件可被表示为文件系统204中的项目。由此,不是叶节点的目录和/或文件具有文件系统204中的存在,但没有与其相关联的流。
文件系统适配器206还可包括创建和/或生成文件后备项目的生成器组件212。生成器组件212可至少部分地基于对文件系统202的分析来创建文件后备项目。例如,生成器组件212可为与文件系统202相关联的任何叶节点创建文件后备项目,其中文件后备项目与文件系统204兼容,因为文件后备项目是由来自文件系统202的文件和/或文件流来丰富的。生成器组件212可用以下的至少一个来创建文件后备项目文件后备项目具有相关联的(例如,后备)文件流;文件后备项目不能包含其它项目(例如,它们是名字空间中的叶节点);文件后备项目可以被建立映象(在下文中讨论);以及文件属性(在下文中讨论)是为文件后备项目维护的。
文件后备项目可担当文件系统202和文件系统204之间的桥梁。如果1)内容的至少一部分是来自文件系统202的文件和/或文件流,和/或2)底层文件的内容要由与文件系统202相关联的至少一个API和/或应用程序来操纵,则文件系统204的任何项目可以被指定为文件后备项目。文件系统204中的文件后备项目可储存与项目相关联的元数据属性,以及与项目相关联的文件流。可以理解,文件系统202文件夹/目录/文件分层结构机制可在文件系统204中利用包含包括文件后备项目的其它项目的容器项目来表示。由此,利用文件系统202的API的应用程序可与文件系统204的存储机制无缝地工作。
图3示出了便于适配文件流关联的文件系统和元数据关联的文件系统的系统300。文件系统适配器306可在文件系统302和与之完全不同的文件系统304之间提供统一和兼容的交互。文件系统适配器306可利用文件后备项目作为文件系统304内可用与文件系统302相关联的文件和/或文件流来填充至少一个属性和/或元数据的项目。文件后备项目可担当文件系统302(例如,文件格式)以及文件系统304(例如,丰富模式化的复杂类型实例)之间的桥梁。
文件系统适配器306可包括向文件系统304提供关联到与文件系统302相关联的文件和/或文件流的属性的属性组件310。例如,文件系统302利用基于文件流的存储系统,其中文件可具有至少一个属性,诸如但不限于,只读、压缩、归档文件等等,其中一个或多个位可表示这些属性。属性组件310可允许表示文件系统302中的文件和/或文件流的文件后备项目将这些属性结合到文件系统304中。可以理解,属性组件310可表示和/或对应这些属性,作为具有各自的文件后备项目的属性。在一个示例中,属性组件310可在通过来自文件系统302的调用关闭文件流之后提供对文件属性的更新。属性可通过与文件系统304相关联的API(在下文讨论)来更新。
属性组件310还可提供项目属性,它是包含对所有项目公用的属性的嵌套类型。属性可以由通过文件系统304和/或与文件系统304相关联的API工作的任何应用程序设置。以下属性可作为示例提供,以供应用程序和/或与文件系统302的兼容性使用。


文件系统适配器306可包括允许至少一个属性保持在项目、文件后备项目以及后备文件(例如,文件系统302中由文件后备项目表示的文件)之间同步的元数据处理程序组件312。例如,属性可在后备文件流中修改,其中,元数据处理程序组件312可将新值升级到文件系统304内的项目中的适当字段。在另一示例中,属性可通过与文件系统304相关联的API来改变;元数据处理程序组件312可将新值降级到文件系统302内的后备文件流。可以明白和理解,不同类型的文件后备项目可具有与其相关联的不同元数据处理程序组件312。
例如,升级可以由元数据处理程序组件312在文件由应用程序关闭之后异步地完成。另一方面,降级可以是异步的。特殊的项目属性可指定升级的属性是否在项目和后备文件之间保持同步。升级状态可指定项目升级出错状态。该状态可与默认的文件后备项目流上的文件关闭异步地设置。该状态对于非文件后备项目可以为空。下表描述了升级状态的可能值。

可以理解,文件系统306可利用项目表,其中储存了至少一个项目和/或文件后备项目。项目表可利用文件流表和/或文件属性表,该表将文件流和/或文件属性关联到可被储存在项目表中的相应的文件后备项目。文件流表和/或文件属性表可储存与要成为文件后备项目(例如,包含文件流和/或文件以丰富和/或填充至少一个属性)的项目有关的相应文件流和文件属性。可以理解,文件属性可储存在项目表中。文件属性语义可以由例如更新API来实现。
此外,全局项目表可包含对文件后备项目的以下添加。

例如,文件流表可以具有以下属性。

以下被示出为利用文件流存储的文件系统的一个示例,其中,实现了32位系统,且不被看作对本发明的局限。以下是用于可由系统300和文件存储系统(FSS)(例如,文件系统304)支持的32位文件系统的属性的示例。




继续前一示例,以下属性可被部分地支持和/或完整地支持。

图4示出了便于将一个文件系统与一个完全不同的文件系统适配和/或结合的系统400。文件系统适配器406可提供与文件系统402和文件系统404的统一性。文件系统402可以基于文件流,且可包括目录、文件夹和文件。例如,文件流402可以是16位文件流,32位文件流(例如,胖文件系统),其中API(例如,16位API、32位API)利用这一文件系统用于各自的操作系统。文件系统404可以是基于复杂类型的系统,且包括类型、项目、属性、关系、类型实例、容器等等。可以理解,文件系统404是要将信息单元表示为具有相关联元数据和/或属性的对象。此外,文件系统402和文件系统404可以基本上类似于分别在图3、2和1中的文件系统302、304、202、204、102和104。
文件系统适配器406可至少部分地基于文件系统402的文件结构来创建文件后备项目,以允许无缝地集成到文件系统404中。文件后备项目可由文件和/或文件流来填充和/或丰富,以创建和/或附加由文件系统404利用的属性。文件后备项目可允许在文件系统404中利用文件系统402的API,而无论需要文件流的API格式如何,因为文件后备项目是具有与其相关联的文件和/或文件流的类型。换言之,文件后备项目是文件系统402和文件系统404之间的桥梁。
文件系统适配器406可包括为文件后备项目的属性提供同步的映象组件410。映象组件410可以创建映象项目,它是另一文件后备项目的复制品,但不包含文件流。此外,映象组件410可提供建立映象,建立映象是用于创建映象项目和/或将现有项目转换成映象项目的操作。映象组件410也可提供解除映象,它是用于将映象项目转换成常规项目的操作。尽管映象组件410被结合到文件系统适配器406中,但是可以理解,映象组件410可以是单独的组件和/或独立的单元。
下表可提供关于映象组件410的能力的进一步描述。

在一个示例中,映象组件410可对文件系统404的实体建立映象。如果项目不是文件后备项目,则可返回错误。如果项目已被建立映象,则操作是空操作且返回成功。映象组件410可将该信息传播到该映象项目树中的所有子实体(例如,所有嵌入项目、关系和/或扩展),并将一个位设为真以通知该实体状态已被建立映象。文件流内容可在发生建立映象之后对该映象项目删除(例如,将文件流设为NULL)。
在另一示例中,实体可由映象组件410解除映象。如果映象不是文件后备项目,则返回错误。如果项目没有被建立映象,则操作是空操作且返回成功。可以将一个位设为假来通知该实体状态,该实体没有被建立映象。零长度的文件流可以被创建并添加到文件流表中。解除映象不会恢复文件流内容,调用者必须明确地用适当的内容来填充文件流(例如,较佳地在基本上类似的事务中)。在一个实例中,解除映象操作的使用模式可以如下打开事务;对项目解除映象;填充/恢复文件流内容;以及提交事务。
文件系统适配器406可包括属性隧道传送组件(ATC)412。ATC 412提供了属性隧道传送以便于文件系统404内的名称改变和/或保存资源。文件系统402利用临时文件,其中这一文件是在打开、访问和/或编辑之后创建的。当文件被保存在文件系统402中时,临时文件和保存的文件名被交换。例如,可在文件系统402中创建和访问文件food.doc。在文件系统402内进行访问之后,可创建文件f1.tmp。food.doc可被移至f2.tmp,而f1.tmp被移至food.doc。文件f2.tmp可在文件系统402中删除。然而,基于文件系统404的结构以及对项目的利用来表示信息单元,更新名称的API调用是一种昂贵的资源。一般而言,ATC 412允许在两个文件后备项目之间交换相关联的文件流。例如,储存在表文件流表中的文件流可以由ATC 412利用,其中可交换两个文件流的项目ID。尽管被描述为结合到文件系统适配器406中,然而可以理解,ATC 412可以是独立的组件、被结合到任一合适的组件中、和/或其组合。
图5示出了被创建以便于适配多个完全不同的文件系统的文件后备项目。具体地,文件后备项目502可提供文件系统504和文件系统506之间的统一性。可以理解,文件系统504可以基本上类似于分别在图4、3、2和1中的文件系统402、302、202和102。此外,文件系统506可以基本上类似于分别在图4、3、2和1中的文件系统404、304、204和104。
文件后备项目502可提供提供语义的语义层508(例如,由上文描述的更新API和/或元数据处理程序组件实现)。文件后备项目502还包括文件流510。文件流510可以具有文件系统502的技术。与文件系统504相关联的应用程序(例如,32位应用程序和/或API)可利用文件后备项目502直接在用于储存在文件系统506中的文件的文件流上操作。诸如但不限于高速缓存管理、流传送、字节范围锁定以及存储器映射等许多文件系统504的技术无需由文件系统506重新实现。底层流与文件后备项目502相关联。此外文件流510可以由至少一个访问控制列表(ACL)来访问。文件流510可以存诸如下表的文件流表中表示。

另外,文件后备项目502也可包括文件属性512和实体状态514、改变单元516以及项目数据518。文件属性512可以被储存在项目表中,其中文件属性语义可以由例如更新API来实现。实体状态514可具有储存在实体状态项目用户类型(UDT)字段中的属性。实体状态属性的语义可由更新API和/或元数据处理程序组件(未示出)来实现。此外,文件后备项目502可利用改变单元512来改变表示与项目有关的数据的至少一个单元和/或项目数据518。
在一个示例中,下表可表示实体状态514的至少一个特征。


图6示出了便于适配文件流关联的文件系统和元数据关联的文件系统的系统600。文件系统适配器600可提供文件系统602(例如,基于文件流的系统,利用32位的API)和文件系统604(例如,基于对象的系统,利用项目、类型、属性和关系来表示信息单元)之间的统一性和无缝集成。可以理解,文件系统602可以基本上类似于分别在图5、4、3、2和1中的504、402、302、202和102。另外,文件系统604可以基本上类似于分别在图5、4、3、2和1中的506、404、304、204和104。
有向无环图(DAG)组件608可结合本发明使用。DAG组件608可利用没有任何回路的有向图,其中对每一顶点,没有从这一顶点开始并在这一顶点结束的有向路径。源是没有进入边的顶点,而宿是没有外出边的顶点。有限的DAG具有至少一个源和至少一个宿。DAG的长度是最长有向路径的长度(例如,边数)。可以理解,文件系统602不结合DAG,而文件系统604可经由文件系统适配器606来利用DAG组件608。尽管被描述为独立的单元,但DAG组件608可被结合到文件系统适配器606和/或任一其它合适的组件中。通过利用DAG组件608,文件可同时描述两个目录。例如,当从一个目录中删除且物理地移除文件时,该文件仍可作为该目录的父节点。
图7示出了采用智能来便于将一个文件系统与一个完全不同的文件系统集成的系统700。系统700可包括文件系统702、文件系统704、文件系统适配器706以及接口108,它们都可以基本上类似于在先前的附图中所描述的代表性组件。系统700还包括智能组件708。智能组件708可由文件系统适配器706使用,以便于适配至少两个完全不同的文件系统。例如,智能组件708可以用于便于确定文件系统702的文件结构。
可以理解,智能组件708能够从一组通过事件和/或数据捕捉的观察中推出或推断系统、环境和/或用户的状态。推断可用于标识特定的上下文或行动,或可生成状态的概率分布。推断可以是概率性的—即,基于数据和事件的考虑计算感兴趣的状态的概率分布。推断也可以指用于从一组事件和/或数据组成更高级事件的技术。这类推断导致从一组观察的事件和/或储存的事件数据构造新的事件或行动,无论事件是否在相邻的时间上相关,也无论事件是否来自一个或若干个事件和数据源。各种分类(显式和/或隐式训练的)方案和/或系统(例如,支持矢量机、神经网络、专家系统、贝叶斯信任网、模糊逻辑、数据融合引擎……)可用于执行关于本发明的自动和/或推断的动作。
分类器是将输入属性矢量x=(x1,x2,x3,x4,xn)映射到该输入属于一个类的置信度的函数,即f(x)=confidence(class)。这一分类可采用基于概率和/或基于统计的分析(例如,分解成分析效用和成本)来预测或推断用户期望自动执行的动作。支持矢量机(SVM)是可采用的分类器的一个示例。SVM通过找出可能输入空间中的超曲面(hypersurface)来操作,其中,超曲面试图将触发准则从非触发事件中分离出来。直观上,这使得分类对于接近但不等同于训练数据的测试数据正确。可采用其它定向和非定向模型分类方法包括,例如,单纯贝叶斯、贝叶斯网络、决策树以及提供不同独立性模式的概率分类模型。此处所使用的分类也包括用于开发优先级模型的统计回归。
呈现组件710可提供各种类型的用户界面以便于在用户和/或耦合到文件系统适配器706的任何组件之间的交互。如图所示,呈现组件710是可与文件系统适配器706一起使用的单独实体。然而,可以理解,呈现组件710和/或类似的查看组件可以被结合到文件系统适配器706和/或独立单元中。呈现组件710可提供一个或多个图形用户界面(GUI)、命令行界面等等。例如,GUI可以被呈现为向用户提供加载、导入、读取等数据的区域或手段,并可包括呈现它们的结果的区域。这些区域可以包括已知的文本和/或图形区域,包括对话框、静态控件、下拉菜单、列表框、弹出菜单、编辑控件、组合框、单选按钮、复选框、按钮以及图形框。另外,可采用便于呈现这些垂直和/或水平滚动条以供导航的实用程序和工具条按钮来确定区域是否可被查看。例如,用户可与耦合到文件系统适配器706的一个或多个组件交互。
用户也可与区域交互以经由各种设备来选择和提供信息,这些设备诸如,例如鼠标、滚动球、小键盘、键盘、笔和/或语音激活。通常诸如键盘上的按钮或回车键等机制可在输入信息之后使用,以启动搜索。然而,可以理解,本发明不限于此。例如,仅仅加亮一复选框就可启动信息传输。在另一示例中,可采用命令行界面。例如,命令行界面可提示(例如,通过显示器上的文本消息和音频音调)用户通过提供文本消息来输入信息。用户然后可提供合适的信息,诸如对应于界面提示中提供的选项的字母数字输入或对提示中提出的问题的回答。可以理解,命令行界面可以结合GUI和/或API来使用。另外,命令行界面可结合具有有限图形支持和/或低带宽信道的硬件(例如,视频卡)和/或显示器(例如,黑白和EGA)来使用。
图8-10示出了依照本发明的方法。为解释简明起见,方法被描绘和描述成一系列动作。可以理解和明白,本发明不受所示的动作和/或动作的顺序限制,例如,动作可以按各种顺序和/或与此处未呈现和提出的其它动作同时发生。此外,并非所示的所有动作都是实现依照本发明的方法所必需的。另外,本领域的技术人员可以理解和明白,方法可以通过状态图或事件替换地被表示为一系列相互关联的状态。
图8示出了便于向至少两个完全不同的文件系统适配和/或提供统一性的方法800。第一文件系统可以是文件存储系统,其中结构基于文件流和/或目录。第一文件系统可利用文件流,使得应用程序/或API可丰富该文件流以提供更多结构。第二文件系统可以是更复杂的模型,其中定义了项目、子项目、属性和关系以允许在第二文件系统内将信息表示为复杂类型的实例。项目可以被定义为第二文件系统中的最小一致性单元,它可以被独立地保护、串行化、同步、复制、备份/恢复等。项目是类型的实例,其中第二文件系统中的所有项目可被储存在项目的单个全局范围中。第二文件系统可以基于至少一个项目和/或容器结构。第二文件系统可以是将文件中隐藏的丰富元数据展示为项目的存储平台。
在参考标号802处,可分析基于文件流的第一文件系统。这一分析可确定文件结构,以及要用于提供统一性的内容。在参考标号804处,可至少部分地基于该分析创建文件后备项目。例如,分析可确定与这一结构相关联的32位文件存储系统以及叶节点的数量。由此,可对与第一文件系统相关联的每一叶节点创建文件后备项目,而项目可用于表示不是叶节点的文件和/或目录。文件后备项目可以是第二文件系统内的项目,它依赖于文件和/或文件流来填充其某些或全部属性。文件后备项目可担当第一文件系统和第二文件系统之间的桥梁。在参考标号806处,文件后备项目可用于至少部分地基于用文件流和文件的第一文件系统,以及结合包含可与第一文件系统有关的文件和/或文件流的文件后备项目的第二文件系统,来提供两个完全不同的文件系统之间的统一性。
图9示出了用于将一个文件系统适配到一个完全不同的文件系统的方法900。在参考标号902处,分析利用文件和/或文件流作为其结构的第一文件系统。从这一分析中,在参考标号904处为不是第一文件系统的叶节点的每一目录和/或文件创建项目。在参考标号906处,可确定叶节点存在于第一文件系统中,其中对其创建文件后备项目。文件后备项目是利用复杂类型实例来表示信息单元的关联到第二文件系统的项目。在参考标号908处,文件后备项目用文件、文件流、属性、安全特征等来丰富和/或填充,以将文件表示为第二文件系统中的项目。在参考标号910处,使用文件后备项目将第一文件系统适配到第二文件系统。
图10示出了便于适配文件流结构化的文件系统和元数据关联的文件系统的方法1000。在参考标号1002处,分析文件流结构化的文件系统(例如,被称为第一文件系统)。在参考标号1004处,可至少部分地基于对第一文件系统的分析生成文件后备项目。文件后备项目是关联到第二系统的项目,其中文件和/或文件流可丰富至少一个其属性。在1006处,文件后备项目可用于将第一文件系统与第二文件系统适配。
在参考标号1008处,可提供建立映象来确保第一文件系统和第二文件系统的属性完整性和同步。例如,可创建映象项目,使得它是另一文件后备项目的复制品,但不包括文件流。此外,可以提供作为用于创建映象项目和/或将现有项目转换成映象项目的操作的映象建立。另外,可使用解除映象,它是用于将映象项目转换成常规项目的操作。在参考标号1010处,来自第一文件系统的属性可被结合到与第二文件系统相关联的文件后备项目中和/或与其一起使用。第一文件系统可包含属性,它可以是,但不限于,只读、压缩、归档文件等等,其中一个和/或多个位可表示这些属性。可以理解,属性可通过文件后备项目被结合到第二文件系统中。
在参考标号1012处,可使用属性隧道传送和/或DAG。属性隧道传送可提供至少两个文件后备项目之间的文件流的交换,以允许在第二文件系统中的临时文件之间保存资源和/或改变名称。在参考标号1014处,来自第一文件系统的API可通过采用提供无缝集成的文件后备项目用于第二文件系统。换言之,文件后备项目包含了与项目相关联的元数据属性以及与项目相关联的文件流。后备项目可以由与第二文件系统相关联的API以及作为第一文件系统的一部分的API来操纵。
为了提供用于实现本发明的各方面的附加上下文,图11和12及以下讨论旨在提供对适于在其中实现本发明的各方面的计算环境的简要概括描述。尽管以上本发明是在由运行在本地计算机和/或远程计算机上的计算机程序的计算机可执行指令的一般上下文环境中描述的,但本领域的技术人员可以认识到,本发明也可结合其它程序模块来实现。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等,它们执行特定的任务或实现特定的抽象数据类型。
此外,本领域的技术人员可以理解,本发明可以用其它计算机系统配置来实践,包括单处理器或多处理器计算机系统、小型机、大型计算机、以及个人计算机、手持式设备、基于微处理器和/或可编程消费者电子设备等等,其每一个可在操作上与一个或多个相关联的设备通信。本发明所示的各方面也可以在分布式计算环境中实践,其中,任务由通过通信网络连接的远程处理设备来执行。然而,本发明的某些(如果不是全部)方面可以在独立的计算机上实施。在分布式计算环境中,程序模块可以位于本地和/或远程存储器存储设备中。
图11是其中本发明可交互的示例计算环境1100的示意性框图。系统1100包括一个或多个客户机1110。客户机1110可以是硬件和/或软件(如,线程、进程、计算装置)。系统1100也包括一个或多个服务器1120。服务器1120也可以是硬件和/或软件(如,线程、进程、计算装置)。例如,服务器1120可容纳线程,以例如通过使用本发明执行变换。
客户机1110和服务器1120之间的一个可能的通信可以是适用于在两个或多个计算机进程之间传输的数据分组的形式。系统1100包括可用于促进客户机1110和服务器1120之间的通信的通信框架1140。客户机1110操作上连接至可用于储存对客户机1110本地的信息的一个或多个客户机数据存储1150。类似地,服务器1120操作上连接至可用于储存对服务器1120本地的信息的一个或多个服务器数据存储1130。
参考图12,用于实现本发明的各方面的示例性环境1200包括计算机1212。计算机1212包括处理单元1214、系统存储器1216和系统总线1218。系统总线1218将包括但不限于系统存储器1216的系统组件耦合至处理单元1214。处理单元1214可以是各种可用处理器的任一种。双微处理器和其它多处理器体系结构也可用作处理单元1214。
系统总线1218可以是若干种总线结构类型的任一种,包括存储器总线或存储器控制器、外围总线或外部总线、和/或使用各类总线体系结构的局部总线,这些体系结构包括但不限于,工业标准体系结构(ISA)、微通道体系结构(MCA)、扩展ISA(EISA)、智能驱动电子设备(IDE)、VESA局部总线(VLB)、外围部件互连(PCI),插件总线、通用串行总线(USB)、高级图形端口(AGP)、个人计算机存储卡国际协会总线(PCMCIA)、火线(IEEE 1394)以及小型计算机系统接口(SCSI)。
系统存储器1216包括易失性存储器1220和非易失性存储器1222。基本输入/输出系统(BIOS)包括如在启动时帮助在计算机1212内的元件之间传输信息的基本例程,通常储存在非易失性存储器1222中。作为说明而非局限,非易失性存储器1222可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除ROM(EEPROM)或闪存。易失性存储器1220包括随机存取存储器(RAM),它担当外部高速缓存。作为说明而非局限,RAM以许多形式可用,如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)和Rambus直接RAM(RDRAM)、直接Rambus动态RAM(DRDRAM)以及Rambus动态RAM(RDRAM)。
计算机1212也包括可移动/不可移动、易失性/非易失性计算机存储介质。例如,图12示出了盘存储1224。盘存储1224包括但不限于,诸如磁盘驱动器、软盘驱动器、磁带驱动器、Jaz驱动器、Zip驱动器、LS-100驱动器、闪存卡或记忆棒等设备。另外,盘存储1224可单独包括存储介质或与其它存储介质组合,其它存储介质包括但不限于,诸如光盘ROM设备(CD-ROM)、CD可记录驱动器(CD-R驱动器)、CD可重写驱动器(CD-RW驱动器)或数字多功能盘ROM驱动器(DVD-ROM)等光盘驱动器。为便于盘存储设备1224连接到系统总线1218,通常使用可移动或不可移动接口,如接口1226。
可以理解,图12描述了担当用户和合适的操作环境1210中描述的基本计算机资源之间的中介的软件。这类软件包括操作系统1228。操作系统1228可储存在盘存储1224中,它用于控制并分配计算机系统1212的资源。系统应用程序1230利用操作系统1228通过储存在系统存储器1216或盘存储1224上的程序模块1232和程序数据1234对资源的管理。可以理解,本发明可用各种操作系统或操作系统的组合来实现。
用户通过输入设备1236向计算机1212输入命令和信息。输入设备1236包括但不限于,诸如鼠标、跟踪球、指示笔、触摸垫等定位设备、键盘、麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪、TV调谐卡、数码相机、数码摄像机、web摄像头等等。这些和其它输入设备通过系统总线1218经由接口端口1238连接到处理单元1214。接口端口1238包括,例如,串行端口、并行端口、游戏端口、通用串行总线(USB)。输出设备1240使用与输入设备1236相同类型端口中的某一些。由此,例如,USB端口可用于向计算机1212提供输入,并从计算机1212输出信息到输出设备1240。提供了输出适配器1242以说明存在一些输出设备1240,如监视器、扬声器和打印机,以及需要特殊适配器的其它输出设备1240。输出适配器1242包括,作为说明而非局限,提供输出设备1240和系统总线1218之间的连接装置的显卡和声卡。应当注意,其它设备和/或设备的系统可同时提供输入和输出能力,如远程计算机1244。
计算机1212可以在使用到一个或多个远程计算机,如远程计算机1244的逻辑连接的网络化环境中操作。远程计算机1244可以是个人计算机、服务器、路由器、网络PC、工作站、基于微处理器的电器、对等设备或其它常见的网络节点等等,并通常包括相对于计算机1212所描述的许多或所有元件。为简明性起见,仅示出了远程计算机1244具有存储器存储设备1246。远程计算机1244通过网络接口1248逻辑上连接至计算机1212,然后通过通信连接1250物理地连接。网络接口1248包含诸如局域网(LAN)和广域网(WAN)等通信网络。LAN技术包括光纤分布式数据接口(FDDI)、铜缆分布式数据接口(CDDI)、以太网/IEEE 802.3、令牌环/IEEE 802.5等等。WAN技术包括但不限于,点对点链路、诸如综合业务数字网(ISDN)及其变体等电路交换网络、分组交换网络以及数字订户线(DSL)。
通信连接1250指用于将网络接口1248连接到总线1218的硬件/软件。尽管为说明的清晰性,示出通信连接1250在计算机1212内,然而它也可以对计算机1212是外部的。仅为示例性起见,连接到网络接口1248必需的硬件/软件包括内部和外部技术,如包括常规电话级调制解调器、线缆调制解调器和DSL调制解调器的调制解调器、ISDN适配器和以太网卡。
上文所描述的包括本发明的示例。当然,不可能为了描述本发明而描述组件或方法的每一可想象的组合,但是本领域的普通技术人员可以认识到,本发明的许多另外的组合和置换是可能的。因此,本发明旨在包含落入所附权利要求书的精神和范围中的所有这样的改变、修改和变化。
特别地,关于由上述组件、设备、电路、系统等执行的各种功能,用于描述这些组件的术语(包括对“装置”的引用)除非另外指明,否则旨在对应于执行所描述的组件的指定功能的任何组件(例如,功能等效物),即使在结构上不等效与所揭示的结构,这些结构执行此处所示的本发明的示例性方面中的功能。在这一点上,也可以理解,本发明包括系统以及具有用于执行本发明的各种方法的动作和/或事件的计算机可执行指令的计算机可读介质。
另外,尽管本发明的具体特征是相对于若干实现中的仅一个来揭示的,但是特征可以如对任何给定或特定应用所需且有利的那样与其它实现的一个或多个其它特征相组合。此外,在术语“包括”以及“其中包括”及其变体用于详细描述或权利要求书的意义上,这类术语旨在以与术语“包含”类似的方式为包含性的。
权利要求
1.一种便于在完全不同的文件系统之间提供统一性的系统,包括从第一文件系统和第二文件系统接收数据的接口;以及通过采用文件后备项目在所述第一文件系统和所述第二文件系统之间提供统一性的文件系统适配器,所述文件后备项目是由文件丰富的,以提供项目的属性以及与项目相关联的文件流中的至少一个,以允许由所述第一文件系统的API和所述第二文件系统的API中的至少一个进行操纵。
2.如权利要求1所述的系统,其特征在于,所述第一文件系统是利用文件和具有相关联的文件流的目录在应用程序的空间中提供更多结构的16位文件系统和32位文件系统中的至少一种。
3.如权利要求1所述的系统,其特征在于,所述第二文件系统是定义项目、子项目、属性和关系中的至少一个来将信息表示为复杂类型的文件存储系统。
4.如权利要求1所述的系统,其特征在于,还包括分析所述第一文件系统来确定目录、文件、文件流、属性、节点、叶节点以及安全特征中的至少一个的分析器组件。
5.如权利要求1所述的系统,其特征在于,还包括创建用于所述第一文件系统的叶节点的文件后备项目以及用于所述第一文件系统的目录中的非叶节点的项目中的至少一个的生成器组件。
6.如权利要求1所述的系统,其特征在于,还包括将所述第一文件系统内的文件的属性关联到由所述第二文件系统使用的文件后备项目的属性组件。
7.如权利要求6所述的系统,其特征在于,所述属性是可表示以下的至少一个的一个位只读、压缩文件、归档文件。
8.如权利要求1所述的系统,其特征在于,还包括允许所述文件后备项目以及在所述第一文件系统内的文件后备之间的同步的元数据处理程序组件。
9.如权利要求8所述的系统,其特征在于,所述元数据处理程序提供以下的至少一个当在后备文件流中修改属性时,将新值升级到所述第二文件系统内的文件后备项目中的适当字段;以及当通过所述第二文件系统的API修改属性时,将新值降级到所述后备文件流。
10.如权利要求1所述的系统,其特征在于,还包括提供以下的至少一个的映象组件;作为另一文件后备项目的复制品但不包含所述文件流的映象项目;创建所述映象项目的建立映象操作;以及将所述映象项目转换成常规项目的映象解除操作。
11.如权利要求1所述的系统,其特征在于,还包括通过允许交换与其相关联的文件流来提供至少一个文件后备项目的同步的属性隧道传送组件。
12.如权利要求11所述的系统,其特征在于,所述文件流在文件流表中,其中所述项目ID可被交换。
13.如权利要求1所述的系统,其特征在于,所述文件后备项目包含以下的至少一个语义层;文件流;文件属性;实体状态;改变单元;以及项目数据。
14.如权利要求1所述的系统,其特征在于,还包括提供没有回路的连接项目图的有向无环图(DAG)组件。
15.一种其上储存有如权利要求1所述的系统的组件的计算机可读介质。
16.一种便于提供完全不同的文件系统之间的统一性的计算机实现的方法,包括分析利用文件和具有相关联的文件流的目录的第一文件系统,以在应用程序的空间中提供更多结构;生成文件后备项目,所述文件后备项目由文件丰富以提供项目的属性和与项目相关联的文件流中的至少一个;利用所述文件后备项目来提供所述第一文件系统和第二文件系统之间的统一性。
17.如权利要求16所述的方法,其特征在于,还包括以下的至少一个创建用于所述第一文件系统内的非叶节点的项目;生成用于所述第一文件系统内的叶节点的文件后备项目;将所述文件的属性与所述文件后备项目结合;以及允许由所述第一文件系统的API和所述第二文件系统的API的至少一个的操纵。
18.如权利要求16所述的方法,其特征在于,还包括以下的至少一个提供映象建立和映象解除的至少一个;利用属性隧道传送;以及利用DAG。
19.一种在文件系统适配器和接口之间通信的数据分组,所述数据分组促进如权利要求16所述的方法。
20.一种便于在完全不同的文件系统之间提供统一性的计算机实现的系统,包括用于从第一文件系统和第二文件系统接收数据的装置;以及用于通过采用文件后备项目在所述第一文件系统和所述第二文件系统之间提供统一性的装置,所述文件后备项目是由文件来丰富的,以提供项目的属性和与项目相关联的文件流中的至少一个,以允许由所述第一文件系统的API和所述第二文件系统的API的至少一个的操纵。
全文摘要
本发明提供了便于适配至少两个完全不同的文件系统的系统和/或方法。文件系统适配器可提供第一文件系统和第二文件系统之间的统一性和/或无缝集成。文件系统适配器可采用文件后备项目,该文件后备项目是由文件丰富的,以提供项目的属性和与项目相关联的文件流的至少一个。文件后备项目可允许由第一文件系统的API和第二文件系统的API的至少一个的操纵。
文档编号G06F17/30GK1828596SQ200610004659
公开日2006年9月6日 申请日期2006年1月27日 优先权日2005年2月28日
发明者J·S·利齐尼斯, J·T·亨特, S·P·阿查里雅 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1