一种基于ContextFS上下文文件系统的文件服务方法

文档序号:6573550阅读:339来源:国知局
专利名称:一种基于ContextFS上下文文件系统的文件服务方法
技术领域
本发明涉及文件系统领域,主要是一种基于ContextFS上下文文件系统的文件服务方法。
背景技术
随着普适计算的发展和下一代存储技术的逐渐成熟,大量的信息以文件的形式存放于各种文件系统中,传统的文件系统与其它分布式文件存储系统采用简单的目录结构来组织文件,目录名仅仅作为一种的解决命名空间冲突的手段,而将复杂烦琐的文件分类、检索工作转嫁给用户;另一方面,传统文件系统所支持的文件元数据匮乏,往往仅包含了创建时间、修改时间、所有人、读写权限等简单元数据,这些元数据无法对基于内容的文件分类与检索提供帮助;更进一步,以单个文件为最小单位来进行权限控制的手段缺乏灵活性,且对同一内容文件的不同片断的多次存储造成大量存储资源的浪费。
如何解决这些传统文件系统的问题,同时又能主动地为用户提供正确、即时的数据服务,并且兼容基于现有传统文件系统上的应用,基于ContextFS上下文文件系统提供了一种完美的解决方案。

发明内容
本发明要解决上述技术所存在的缺陷,提供一种基于ContextFS上下文文件系统的文件服务方法。
本发明解决其技术问题所采用的技术方案这种基于ContextFS上下文文件系统的文件服务方法,主要包括如下步骤1.1)、利用空间中或用户随身携带的各种可计算设备和传感器获得用户在空间中的上下文信息,并确定用户的身份;1.2)、根据用户历史操作或自定义偏好的历史数据来确定该用户的偏好上下文;1.3)、根据文件系统中的文件元数据和上下文信息组织构建虚拟目录与虚拟文件,即文件系统以虚拟目录与虚拟文件的形式向用户提供适合当前上下文环境的数据服务;1.4)、当用户访问虚拟目录与虚拟文件时,用户和环境上下文信息被文件系统记录并和文件语义信息一同保存并发给上下文文件系统。
本发明有益的效果是基于ContextFS上下文文件系统是一种以主动服务为特性,利用上下文驱动目录、文件组织的分布式文件系统。为了兼容现有的文件系统与基于现有传统文件系统上的应用,上下文文件系统处于本地文件系统之上,应用程序之下的中间层,它对应用提供所有标准文件系统支持的操作接口,同时它能够根据获得的上下文,与本地文件系统中文件的元数据,来重新组织生成虚拟目录与虚拟文件。虚拟目录与虚拟文件采用统一的命名空间并进行副本管理,有效的解决了多个用户对同一个文件进行读写的情况,同时又维持命名空间的一致性。并可根据用户携带的移动设备的计算能力,将原文件转换成相应格式。


图1是本发明的系统结构示意图;图2是本发明上下文文件系统数据流图;图3是本发明的系统接口部分结构示意图;图4是本发明的VFS体系结构示意图;图5是本发明的文件系统逻辑层次图;图6是本发明的上下文文件系统体系结构图;具体实施方式
下面结合附图和实施例对本发明作进一步介绍本发明所述的这种基于ContextFS上下文文件系统的文件服务方法,主要包括如下步骤1.1)、利用空间中或用户随身携带的各种可计算设备和传感器(激光、红外、声纳、GPR定位、成像仪器等)获得用户在空间中的上下文信息(包括时间、位置等信息),并确定用户的身份;1.2)、根据用户历史操作或自定义偏好的历史数据来确定该用户的偏好上下文;1.3)、根据文件系统中的文件元数据和上下文信息(如何时何地被任何人读写的信息)组织构建虚拟目录与虚拟文件,即文件系统以虚拟目录与虚拟文件的形式向用户提供适合当前上下文环境的数据服务;1.4)、当用户访问虚拟目录与虚拟文件时(读、写、创建、删除、移动等文件系统基本操作),用户和环境上下文信息被文件系统记录并和文件语义信息一同保存并发给上下文文件系统。
所述的虚拟目录与虚拟文件采用统一的命名空间并进行副本管理,解决各种逻辑问题与冲突,支持多个用户对同一文件进行修改。当用户从其虚拟目录中创建新文件或移动其他文件到该虚拟目录时,文件将继承所有当前上下文;当用户从虚拟目录删除文件时,仅删除该文件的当前上下文,使得其不再出现于当前虚拟目录,当文件失去所有上下文时该文件才被删除。所述的副本管理具体步骤如下
2.1)、用户A对本文件系统中文件F发出读取请求,系统检查其权限,如果没有读权限则返回读失败;如果有读权限,则读请求会立即将请求的数据返回给用户A;2.2.1)、用户A对本文件系统中文件F发出写入请求,系统检查其权限,如果没有写权限则返回写失败;如果有写权限,则判断文件F的所有者是否是用户A,如果是用户A的文件则返回写成功;2.2.2)、如果不是用户A的文件,则创建用户副本,文件F被复制成文件F.A,文件F.A的元数据被写入文件元数据库,这个副本除了所有者、存储的物理位置和原文件不同外,其它文件元数据都和原文件一致,文件系统设定优先显示用户自身创建的文件F.A,对文件F的操作映射到文件F.A中,在文件F.A中写入数据并返回写成功到用户A。
主动服务的上下文文件系统支持多种网络和各种可计算设备访问,当用户采用不同的可计算设备(普通PC机、智能手机、PDA)访问该文件系统时,根据用户所在设备的计算能力转换成适于该设备读取的虚拟文件形式。如某PDA不能支持对PPT文档的浏览,文件系统自动将PPT文档转换成该PDA能够显示的图片格式,并使该PPT文档在虚拟目录中以图片形式出现,具体的格式转换主要包括下述步骤3.1)、根据可计算设备的配置信息,得到可以量化比较的权值,通过权值大小设定用户可计算设备的计算能力,如果该设备上的程序中定义了格式转换的规则,则按照规则转换;如果未定义规则,则根据文件系统对设备计算能力的划分选择最接近该设备计算能力能处理的文件类型;3.2)、文件格式转换时采用链式转换,格式转换程序作为上下文文件系统的一个插件,负责生成转换链,并根据转换链对各种文档进行格式转换,一个文件经过至少一次格式转换,最终转成相应格式,次转换的中间结果可被保存起来;3.3)、格式转换程序在多条转换链中根据各个转换所要消耗的计算能力,设定权值,并根据权值选择合适的转换链进行转换。
所述的上下文文件系统根据文件语义和上下文信息自动组织文件内容,根据用户所在场景和所需内容,确定用户角色,结合文件语义,将文件的部分内容以独立文件的形式提供给用户。
1.上下文自动获取如图1所示,上下文获取主要分以下步骤首先用户态程序——上下文控件被安装在空间中各个可计算设备和传感器上。上下文控件由JAVA实现,其核心可以应用于多种平台。控件可以利用空间中的无线网络,通过发送广播包的形式向空间中的上下文控件发现程序发送注册信息。注册信息包括设备及其所有者的相关信息,如当前设备类型、所有者名称等等。
控件完成注册后,控件发现程序根据空间中各个上下文订阅程序的需求,发送新加入控件设备的IP地址和端口到所需的订阅程序,其后订阅程序将主动连接控件的端口,获取从控件发来的上下文。订阅程序为上下文文件系统服务,提供经过初步处理的上下文数据。订阅程序可以根据其订阅的多个不同控件发来的消息推断出现在发生的事件,上下文订阅程序也会将这些推断结果也以上下文的形式发送给上下文文件系统。
如当前的时间是上午9点,根据日程安排,9点将有一个讨论会,与会人员有A、B、C三人。那么当A或其它人进入智能空间(存在可计算设备和多种传感器的空间)时,A所携带设备上的控件程序就会将A进入空间的上下文发送给上下文订阅程序,订阅程序根据A日程安排和当前的时间(9点)推断出A的活动为参与讨论会,并将这个推断结果作为事件上下文发送给文件系统。
同时上下文订阅程序也可以为历史上下文数据库服务,通过订阅所有的上下文,并将这些上下文进行分类,数据挖掘并将结果和上下文数据一并写入历史上下文数据库,订阅程序需要专门开发以适应不同的应用场景,一个空间中也可以运行多个上下文订阅程序。
当安装了上下文控件程序的用户设备进入智能空间后,负责向上下文文件系统提供上下文的订阅程序就可以得到该设备的类型和相关信息,如能够支持的文档类型(txt、html、pdf...)和媒体文件类型(mp3、wma、avi...);并可以从历史上下文数据库中获取用户的偏好;从被订阅的其它控件程序(如传感器上安装的控件程序)上获取时间、位置上下文;以及根据上下文采用人工智能方法推断出来的信息(如当前真正发生多个事件)。这些都被组织成上下文,一并发给上下文文件系统。
2.上下文文件系统实现如图2,3所示,上下文文件系统的目标是利用当前环境上下文,自动的为用户提供文件服务。系统的实现基于Linux内核。上下文文件系统在VFS(Virtual Filesystem Switch)之下,由内核向下提供的文件系统接口。ContextFS上下文文件系统实现内核提供的各个文件系统接口,完成文件系统的各个功能。
在Linux内核中为了实现对多种文件系统的支持,采用了VFS的结构,通过函数指针的方式将各种文件系统(如nfs,ext3,xfs等)挂载到VFS之下,使得用户应用程序可以通过同一个文件系统操作界面,对于各种不同的文件系统(以及文件)进行操作。
如图4所示,ContextFS上下文文件系统作为一个与EXT3、NFS等文件系统相同内核模块,实现了VFS的接口,并可以被VFS调用。用户可以通过mount(挂载)命令将上下文文件系统挂载到本地设备上,并用umount(卸载)命令卸载该文件系统。
以用户读为例,假设用户空间某个应用程序要读一个虚拟文件中,从偏移offset开始,大小为size的某段内容,并已经通过了权限的验证。对于这个读请求的系统调用,最终会被转到内核空间中VFS模块,由于VFS中采用了函数指针的形式,这个操作被进一步转移到VFS下的ContextFS中具体执行,由于ContextFS是一个虚拟文件系统,它本身并不存储文件和文件元数据,所以ContextFS会唤醒一个用户态的守护进程,将这个请求封装并转发给那个守护进程,同时ContextFS自己进入等待状态。用户态进程首先查询文件元数据库,得到文件的真实物理存储位置,文件可能存储在本地文件系统中(如EXT3、NTFS等),也有可能存储在其它网络文件系统中(如NFS、CIFS等)。得到文件的真实存储位置后,这个用户空间中的进程会用同样的方法通过VFS从对应的文件系统中取得相应的数据。最后,用户空间的守护进程将唤醒并发送结果到ContextFS,ContextFS将结果返回给VFS,并最终返回给发送读请求的用户程序。
3.虚拟目录原理与实现如图5所示,虚拟目录是上下文文件系统中的重要组成部分,虚拟目录作为虚拟文件系统中提供给上层应用的接口,根据当前上下文自动完成利用语义组织文件;文件格式转换如图5标号(3);文件部分内容转换如图5标号(5);本地、远程文件虚拟映射如图5标号(1)中等功能。
在上下文文件系统中,底层文件系统上的文件,对应了真实存在于物理磁盘上的文件,它们被记录在一个本地(即运行上下文文件系统的服务器)或远程数据库中,该数据库维护文件的元数据,定义该数据库为文件元数据数据库。
文件元数据数据库除了记录上下文文件系统中所有文件的大小、存储位置、所有者、创建者、创建位置、创建时间和创建事件等文件元数据外,还记录了文件语义。文件语义是文件内容和形式相关的信息,它包括文件格式、可接受转换的类型、各个类型以何种形式出现(可读写,只读,只写……)、文件内容摘要、文件片断以及片断语义
如图5所示,根据元数据数据库中所记录的底层文件系统中的文件,上下文文件系统在其上层构建虚拟文件,虚拟文件是对底层文件系统中文件的同名镜像如图5标号(2)、更名映射如图5标号(4)、格式转换后的文件如图5标号(3)和部分内容的映射如图5标号(5)。虚拟文件的动态生成是由上下文环境确定的,并被最终呈现在虚拟目录中以供上层应用调用。
其中同名镜像是指,上下文文件系统不对远程文件系统中的文件内容以及文件名进行任何修改,仅仅利用文件元数据,直接提供文件给上层虚拟目录;更名映射是指,上下文文件系统不对远程文件系统中的文件内容进行修改,仅仅对文件进行了简单的重命名(为了避免同名冲突,或是解决不同系统中长文件名、编码等显示问题等);格式转换是指,上下文文件系统将根据某些规则(上下文信息,比如可计算设备的性能、当前负载等)对文件进行格式转换,并将转换后的文件提供给用户(格式转换可以是对整个文件的部分也可以是全部,可以多次转换也可以一次转换,转换后的产生的信息可以缓存,可以保留(默认),也可以立即丢弃,这些和环境上下文、文件语义定义以及系统规则有关);文件部分内容的映射是指根据文件的语义描述对文件进行分断,并将这些片断以独立文件的形式提供给用户(文件片断可以是对文件的虚拟映射也可以是对文件内容抽象的真实存在)。
4.下文文件系统体系及其应用场景上下文文件系统的体系结构如图6所示,分成后台、中间层、和用户接入层三个部分。后台的作用就是提供图5中所示的底层远程文件系统中的文件,它可由专用文件服务器、普通PC等日常工作设备(有良好网络带宽,和比较强的计算能力,但是不方便移动,操作系统Windows,Linux或MAC等)组成;后台通过本地应用程序连接文件元数据数据库。并对其本地文件系统中的文件进行元数据标记和语义标记,并通过相应的共享协议将这些文件共享给中间层。
中间层是运行ContextFS上下文文件系统的文件服务器,操作系统Linux,并支持多种文件共享协议如NFS(Linux下文件共享)/CIFS(windows下文件共享)/AFS(MAC下文件共享),这使得中间层可以访问到各种平台上组成的后台所提供的文件,并构建图5中的倒数第二层——底层文件系统中的文件。更进一步中间层获得从各个传感器过来的上下文信息(包括用户接入层中接入设备的计算能力),根据上下文构建图5中的虚拟文件系统中的文件;同时中间层系统支持有线与无线网络,使得它能为各种平台上的各种接入设备(有线设备、无线设备)提供文件服务,即以图5中最顶层的虚拟目录的形式提供给用户接入层中的各种可计算设备使用。
上下文文件系统支持以构建场景为目的的虚拟场景建立,也支持以搜索、演示为目的的场景再现和对场景的时间遍历。
以几个应用场景为例子说明其调用过程场景1.假设在一个博物馆参观活动中,用户没有导游陪同,但却需要获得对当前看到的馆藏物品的更详细信息时,如果博物馆拥有ContextFS上下文文件系统,用户就可以使用各自的携带的可计算设备读取适合自身计算能力的数据,比如用户携带了智能手机,手机支持对图片,视频的浏览,但不能支持doc,ppt,excel等office文档的浏览,这时当用户访问上下文文件系统时(列目录的时候),用户的用户名(userid)会被传入,上下文文件系统根据用户的用户名来查找与之相关的上下文信息(包括可能的历史数据),通过这些上下文信息,文件系统了解到用户所在的位置等信息,推理出用户现在进行的活动,并了解到用户所能提供的计算能力(即携带的可计算设备的计算能力),这时文件系统搜索文件元数据数据库,取得与当前用户需要的相关信息并以文件的形式列出在其的虚拟目录中,这时原本的doc,ppt文档在用户的手持式设备上看起来就变成了jpg,gif文档,当用户访问这些文档时,格式转换就发生了,文件系统使用格式转换程序或调用格式转换库对文档进行格式转换,如用VBA(Visual Basic Scripting)读取office文档的内容,并将它们输出到图片文件中,这时用户就可以看到文档的内容了。
场景2.假设公司需要召开一个讨论会,讨论会的主题和人员已经被确定,每个发言人在各自的电脑上独立编辑了与这个会议相关的文档(比如介绍自己工作进展的文档),并准备了相应的材料(包括视频、图片、PPT等等)。这时发言人可以为讨论会构建虚拟场景(即由发言人直接提供仿真的上下文给虚拟文件系统),因为那些对ContextFS上下文文件系统有写权限的用户,当他们向虚拟目录内写入数据时,当前上下文环境的信息会作为文件元数据的一部分被记录到文件元数据数据库中。而数据本身会被保存到用户指定的本地系统中。当然除了上下文信息外,文件语义信息也通过本地的程序自动或用户手动被标记(主要是文件内容摘要部分),最后的所有文件元数据被写入到文件元数据库中,虚拟场景构造完成。
当会议开始时,每个与会者(包括发言的和不发言的)携带自己的移动设备(PDA、平版电脑、智能手机等)进入会场时,通过各种身份认证手段,取得自己的用户名。上下文文件系统将根据用户名判断是否是与会者,并向与会者提供发言人的演讲稿(即构造的虚拟场景在真实的环境中被再现),这些演讲稿的格式也同上个例子中一样,是根据用户所能提供的计算能力来确定的。同时通过将一个文件分成多个文件片断,并给每个片断标上不同的文件语义。发言者可以让与会者对同一个文件在不同时间看到不同的内容,也可以将同一个文件的多个文件片断映射为多个不同的文件同时展示给与会者,甚至可以将不同文件的多个片断组合成一个新的文件。我们以最简单的文本文件为例我们对文本文件的不同部分添加语义标签,用来描述这些部分语义信息(比如内容,或什么时候给什么人看,或是约束条件,如在某个信息被提供之后它才能被看到),这些标签并不储存在文本文件中,而是统一的作为文件语义信息保存在文件元数据数据库中。通过第一部分所描述的上下文文件系统实现,在ContextFS的读写函数中,我们将对文件片断的读写映射到对原文件某些部分的读写,而到底读写哪些部分,这由文件语义来决定,至于到底哪些片断什么时候出现,什么时候组合等问题,这由系统规则和环境上下文来决定。
权利要求
1.一种基于ContextFS上下文文件系统的文件服务方法,其特征在于主要包括如下步骤1.1)、利用空间中或用户随身携带的各种可计算设备和传感器获得用户在空间中的上下文信息,并确定用户的身份;1.2)、根据用户历史操作或自定义偏好的历史数据来确定该用户的偏好上下文;1.3)、根据文件系统中的文件元数据和上下文信息组织构建虚拟目录与虚拟文件,即文件系统以虚拟目录与虚拟文件的形式向用户提供适合当前上下文环境的数据服务;1.4)、当用户访问虚拟目录与虚拟文件时,用户和环境上下文信息被文件系统记录并和文件语义信息一同保存并发给上下文文件系统。
2.根据权利要求1所述的基于ContextFS上下文文件系统的文件服务方法,其特征在于所述的虚拟目录与虚拟文件采用统一的命名空间并进行副本管理,当用户从其虚拟目录中创建新文件或移动其他文件到该虚拟目录时,文件将继承所有当前上下文;当用户从虚拟目录删除文件时,仅删除该文件的当前上下文,使得其不再出现于当前虚拟目录,当文件失去所有上下文时该文件才被删除。
3.根据权利要求1所述的基于ContextFS上下文文件系统的文件服务方法,其特征在于当用户采用不同的可计算设备访问该文件系统时,根据用户所在设备的计算能力转换成适于所在设备能够读取的虚拟文件形式。
4.根据权利要求1所述的基于ContextFS上下文文件系统的文件服务方法,其特征在于所述的上下文文件系统根据文件语义和上下文信息自动组织文件内容,根据用户所在场景和所需内容,确定用户角色,结合文件语义,将文件的部分内容以独立文件的形式提供给用户。
5.根据权利要求2所述的基于ContextFS上下文文件系统的文件服务方法,其特征在于所述的副本管理具体步骤如下5.1)、用户A对本文件系统中文件F发出读取请求,系统检查其权限,如果没有读权限则返回读失败;如果有读权限,则读请求会立即将请求的数据返回给用户A;5.2.1)、用户A对本文件系统中文件F发出写入请求,系统检查其权限,如果没有写权限则返回写失败;如果有写权限,则判断文件F的所有者是否是用户A,如果是用户A的文件则返回写成功;5.2.2)、如果不是用户A的文件,则创建用户副本,文件F被复制成文件F.A,文件F.A的元数据被写入文件元数据库,这个副本除了所有者、存储的物理位置和原文件不同外,其它文件元数据都和原文件一致,文件系统设定优先显示用户自身创建的文件F.A,对文件F的操作映射到文件F.A中,在文件F.A中写入数据并返回写成功到用户A。
6.根据权利要求3所述的基于ContextFS上下文文件系统的文件服务方法,其特征在于所述的格式转换主要包括下述步骤6.1)、根据可计算设备的配置信息,得到可以量化比较的权值,通过权值大小设定用户可计算设备的计算能力,如果该设备上的程序中定义了格式转换的规则,则按照规则转换;如果未定义规则,则根据文件系统对设备计算能力的划分选择最接近该设备计算能力能处理的文件类型;6.2)、文件格式转换时采用链式转换,格式转换程序作为上下文文件系统的一个插件,负责生成转换链,并根据转换链对各种文档进行格式转换,一个文件经过至少一次格式转换,最终转成相应格式,多次转换的中间结果可被保存起来;6.3)、格式转换程序在多条转换链中根据各个转换所要消耗的计算能力,设定权值,并根据权值选择合适的转换链进行转换。
全文摘要
本发明涉及一种基于ContextFS上下文文件系统的文件服务方法,主要包括如下步骤利用空间中或用户随身携带的各种可计算设备和传感器获得用户在空间中的上下文信息,并确定用户的身份;根据用户历史操作或自定义偏好的历史数据来确定该用户的偏好上下文;根据文件系统中的文件元数据和上下文信息组织构建虚拟目录与虚拟文件;当用户访问虚拟目录与虚拟文件时,用户和环境上下文信息被文件系统记录并和文件语义信息一同保存并发给上下文文件系统。本发明有益的效果是本发明是一种以主动服务为特性,利用上下文驱动目录、文件组织的分布式文件系统,它能够根据获得的上下文,与本地文件系统中文件的元数据,来重新组织生成虚拟目录与虚拟文件。
文档编号G06F17/30GK101082927SQ20071006983
公开日2007年12月5日 申请日期2007年7月2日 优先权日2007年7月2日
发明者杨建华, 吴朝晖, 汤斯亮, 陶美军 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1