CN103970794B - 数据访问方法和数据访问装置 - Google Patents

数据访问方法和数据访问装置 Download PDF

Info

Publication number
CN103970794B
CN103970794B CN201310042863.0A CN201310042863A CN103970794B CN 103970794 B CN103970794 B CN 103970794B CN 201310042863 A CN201310042863 A CN 201310042863A CN 103970794 B CN103970794 B CN 103970794B
Authority
CN
China
Prior art keywords
file system
data
request
sent
user
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
CN201310042863.0A
Other languages
English (en)
Other versions
CN103970794A (zh
Inventor
邓宁
林松涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing Ltd
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 Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN201310042863.0A priority Critical patent/CN103970794B/zh
Publication of CN103970794A publication Critical patent/CN103970794A/zh
Application granted granted Critical
Publication of CN103970794B publication Critical patent/CN103970794B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/18File system types
    • G06F16/188Virtual file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种数据访问方法和数据访问装置。所述方法应用于电子设备,所述电子设备具有多层空间架构,所述多层空间架构至少包括用户空间层和内核层。所述方法包括:在所述内核层中,拦截从所述用户空间层中的应用程序发出的用于访问数据的请求,并且将所述请求传送到第一文件系统;通过所述第一文件系统来将所述请求传送到所述用户空间层中的确定单元;以及通过所述确定单元来确定所述请求所指向的数据的获取方式。因此,在本发明中,可以在无需修改应用程序源代码的情况下自适应地确定用于获取数据的方式,提高了用户的数据访问体验。

Description

数据访问方法和数据访问装置
技术领域
本发明涉及计算机技术领域,更具体地,本发明涉及一种数据访问方法和数据访问装置。
背景技术
随着计算机技术的不断发展,个人用户拥有了越来越多的高性能电子设备,比如智能手机、平板电脑(PAD)、超级本、智能电视(Smart TV)和个人计算机(PC)。这些功能丰富的电子设备在具有非常强的计算能力的同时,也具有了越来越大的存储空间以及快速的互联网访问能力。
在互联网高速发展的今天,电子设备的文件下载依然大多采用客户端/服务器(Client/Server,C/S)的模式进行,然而,采取这种模式所构建的文件下载服务容易受到服务器端的局限。
例如,当很多用户同时从服务器中下载文件时,服务器及网络带宽将成为整个下载操作的瓶颈,这无疑将致使下载速度变得非常缓慢,和/或使得下载出错的概率增加。此外,采用C/S架构的网络环境中服务器端的安全性和稳定性也一直是其遭人诟病的重要原因。
为了克服C/S模式所带来的各种问题,在现有技术中提出了一种新的点对点(P2P)模式来进行文件下载。在该P2P模式中,一个文件的下载者们在下载的同时也在不断互相上传数据,使得文件源可以在增加很有限的负载的情况下支持大量下载者同时下载。然而,由于使用P2P模式代替C/S模式来完成下载操作需要修改已有应用程序的源代码并重新进行编译和安装,这极大地增加了开发人员的劳动,并且也给使用电子设备的最终用户带来不便,因此该P2P模式一直未能得到大规模应用。
随着移动互联网内容的不断丰富,特别是多媒体应用逐渐成为主流,显然,其在改善用户视听体验的同时,也消耗了大量的网络带宽和流量。因此,如何将移动互联网中丰富的资源与网络资源进行高效的整合,成为进一步提升移动互联网服务质量、改善用户体验的重要保障。
发明内容
为了解决上述技术问题,根据本发明的一个方面,提供了一种数据访问方法,应用于电子设备,所述电子设备具有多层空间架构,所述多层空间架构至少包括用户空间层和内核层,所述方法包括:在所述内核层中,拦截从所述用户空间层中的应用程序发出的用于访问数据的请求,并且将所述请求传送到第一文件系统;通过所述第一文件系统来将所述请求传送到所述用户空间层中的确定单元;以及通过所述确定单元来确定所述请求所指向的数据的获取方式。
此外,根据本发明的另一方面,提供了一种数据访问装置,应用于电子设备,所述电子设备具有多层空间架构,所述多层空间架构至少包括用户空间层和内核层,所述装置包括:虚拟文件系统,用于在所述内核层中,拦截从所述用户空间层中的应用程序发出的用于访问数据的请求,并且将所述请求传送到第一文件系统;第一文件系统,用于将所述请求传送到所述用户空间层中的确定单元;以及确定单元,用于确定所述请求所指向的数据的获取方式。
与现有技术相比,采用根据本发明的数据访问方法和数据访问装置,可以在内核层中拦截在用户空间层中由一应用程序发出的请求,通过第一文件系统将所述请求从内核层传送到所述用户空间层中的确定单元,并且通过所述确定单元来确定所述请求所指向的数据的获取方式。因此,在本发明中,可以在无需修改应用程序源代码的情况下,自适应地确定用于获取数据的方式,从而通过最为简单的方式避免了在现有技术中电子设备只能通过客户端/服务器这种单一模式来访问数据所带来各种问题,提高了用户的数据访问体验。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1图示了根据现有技术的解决方案的数据访问系统架构。
图2图示了根据本发明的数据访问方法。
图3图示了根据本发明的数据访问装置。
图4图示了根据本发明实施例的数据访问方法。
图5图示了根据本发明实施例的数据访问装置。
具体实施方式
将参照附图详细描述根据本发明的各个实施例。这里,需要注意的是,在附图中,将相同的附图标记赋予基本上具有相同或类似结构和功能的组成部分,并且将省略关于它们的重复描述。
首先,将参考图1来详细地描述现有技术中存在的问题、以及用于解决该技术问题的现有技术方案的原理。
图1图示了根据现有技术的解决方案的数据访问系统架构。
如图1所图示的,数据访问系统包括:一个或多个电子设备100和一个或多个文件服务器200。
例如,该电子设备100处于客户端,可以是智能手机、平板电脑(PAD)、超级本、智能电视(Smart TV)和个人计算机(PC)等;而该文件服务器200处于服务器端,可以是内容提供商运营的、提供诸如音频下载、视频观看、文件存储之类的各种内容服务器(如,文件服务器、终端服务器和邮件服务器等)。
该电子设备100通过有线和/或无线网络而连接到该文件服务器200,以便访问存储在所述文件服务器200中的各种数据。
如背景技术中描述的,在现有技术中,传统电子设备中的用户空间文件系统(FUSE)直接通过C/S获取方式来从服务器端获取文件。即,应用程序发出获取文件的请求,并且由分布式文件系统中的服务器响应文件获取的请求,从而向应用程序传送其所请求的文件。
可以看出,虽然这种解决方案可以满足电子设备下载文件的需求,但是显然,文件服务器200是整个网络环境中的瓶颈,特别当数量众多的电子设备100同时对其进行访问时,整个下载过程将受制于服务器的性能和网络带宽等因素,因此其服务质量将无法保证。
此外,由于在服务器端,内容提供商仅仅通过一个服务器或者有限数目个服务器来提供该文件下载服务,所以该服务器容易受到攻击,甚至出现宕机的情况,此时将无法继续为各种电子设备提供服务,这对于最终用户而言无疑是非常不便的。
另外,如背景技术中描述的,尽管在现有技术中已经提出了具有更高下载效率的P2P模式,但是,由于涉及到对于已有应用程序的重新修改、编译和安装,因此它无法为已安装有大量应用程序的最终用户提供很好的用户体验。
对此,本发明人提出了一种新型的数据访问方法和数据访问装置来解决上述问题。
在下文中,将参考图2和图3来描述根据本发明的数据访问方法和数据访问装置。
图2图示了根据本发明的数据访问方法,而图3图示了根据本发明的数据访问装置300。
图2所图示的数据访问方法应用于电子设备100,所述电子设备100具有多层空间架构,所述多层空间架构至少包括用户空间层和内核层。该数据访问方法通过图3所图示的数据访问装置300来实现。具体地,该数据访问装置300包括:虚拟文件系统310、第一文件系统320、和确定单元330。
如图2所图示的,所述数据访问方法包括:
在步骤S210中,在所述内核层中,拦截从所述用户空间层中的应用程序发出的用于访问数据的请求,并且将所述请求传送到第一文件系统;
在步骤S220中,通过所述第一文件系统来将所述请求传送到所述用户空间层中的确定单元;以及
在步骤S230中,通过所述确定单元来确定所述请求所指向的数据的获取方式。
由此可见,采用根据本发明的数据访问方法和数据访问装置,可以在内核层中拦截在用户空间层中由一应用程序发出的请求,通过第一文件系统将所述请求从内核层传送到所述用户空间层中的确定单元,并且通过所述确定单元来确定所述请求所指向的数据的获取方式。因此,在本发明中,可以在无需修改应用程序源代码的情况下,自适应地确定用于获取数据的方式,从而通过最为简单的方式避免了在现有技术中电子设备只能通过客户端/服务器这种单一模式来访问数据所带来各种问题,提高了用户的数据访问体验。
在下文中,将参考图4和5来描述根据本发明实施例的数据访问方法和装置。
图4图示了根据本发明实施例的数据访问方法,而图5图示了根据本发明实施例的数据访问装置300。
图4所图示的根据本发明实施例的数据访问方法可以通过图5所图示的数据访问装置300来实现。如图5所图示的,与图3中一样,该数据访问装置300可以包括:虚拟文件系统310、第一文件系统320、和确定单元330。此外,优选地,该数据访问装置300还可以包括:第二文件系统340。并且,该确定单元330可以具体地包括:C/S获取模块331和P2P获取模块332。
该数据访问装置300可以应用于一个或多个电子设备100,并且在所述电子设备100中安装有一个或多个应用程序(APP)400,该应用程序400可以通过该数据访问装置300来访问位于该电子设备100本地或远端的各种数据。
此外,所述电子设备100具有多层空间架构,所述多层空间架构至少包括用户空间(User Space)层和内核(Kernel)层。
具体而言,目前在电子设备的操作系统(OS)中简化了分段机制,使得虚拟地址与线性地址总是一致。该操作系统将与线性地址对应的全部虚拟地址空间分为两部分。将较高的一部分虚拟地址空间供内核使用,称为“内核层”或“内核空间层”;而将较低的一部分虚拟地址空间供各个进程使用,称为“用户空间层”。所述内核空间和用户空间一般可以通过系统调用而相互进行通信。
如图4所图示的,该应用程序400处于用户空间层,用于根据用户的需要来访问数据和执行其他各种操作。
该虚拟文件系统310处于内核层,它是一种用于网络环境的分布式文件系统,是允许与操作系统使用不同的文件系统实现的接口。具体地,虚拟文件系统(Virtual FileSystem,VFS)是物理文件系统与服务之间的一个接口层,它对操作系统的每个文件系统的所有细节进行抽象,使得不同的文件系统在操作系统核心以及系统中运行的其他进程(例如,应用程序或系统进程)看来都是相同的。
该第一文件系统320处于内核层,例如它可以是用户空间文件系统(FUSE)。FUSE来源于英文表述“Filesystem in Userspace”,也就是用户空间文件系统。准确的说,FUSE是为开发用户空间的文件系统所提供的一个框架,可以认为它是操作系统的一个内核模块。
该确定单元330处于用户空间层,例如当该第一文件系统320是用户空间文件系统时,它可以是与该用户空间文件系统对应的守护进程(Daemon)。具体地,可以通过调用FUSE所提供的开发接口来在用户空间层中创建一个守护进程,这个进程就是进行文件(或称之为,数据)获取的实体。
此外,该数据访问装置300可以通过任何方式与该电子设备100进行通信。
在一个示例中,该数据访问装置300可以作为一个软件模块和/或硬件装置而集成到该电子设备中,换言之,该电子设备可以包括该数据访问装置300。例如,当电子设备是移动电话时,该数据访问装置300可以是该移动电话的操作系统中的一个软件模块,或者可以是针对于该移动电话所开发的一个应用程序;当然,该数据访问装置300同样可以是该移动电话的众多硬件装置之一。
替换地,在另一示例中,该数据访问装置300与该电子设备也可以是分离的设备,并且该数据访问装置300可以通过有线和/或无线网络连接到该电子设备,并且按照约定的数据格式来传输交互信息。
下面,将以移动电话作为电子设备100的示例、以用户空间文件系统作为第一文件系统320的示例、并且以守护进程作为确定单元330的示例,来具体地说明本发明的实施例。
然而,需要说明的是,本发明不限于此。该电子设备100可以是任何类型的电子设备,其包括但不限于:台式计算机、笔记本计算机、平板电脑、电子阅读器、多媒体播放器、和个人数字助理等。该第一文件系统320可以是任何类型的文件系统,其包括但不限于:分配表(FAT)32文件系统、扩展文件分配表(exFAT)文件系统、网络文件系统(NFS)、新技术文件系统(NTFS)、第二扩展文件系统(Ext2)、第三扩展文件系统(Ext3)、第四扩展文件系统(Ext3)、泽字节文件系统(ZFS)等。该确定单元330也可以是任何类型的进程。此外,还可以将根据本发明的数据访问方法应用于数据访问装置与电子设备之间的其他交互过程。
如图4所图示的,根据本发明实施例的数据访问方法包括:
在步骤S410中,应用程序发出数据访问请求。
各种应用程序400通常可以通过以下两种方式而安装在用户的电子设备100(例如,移动电话)中,即:在生产该移动电话100时预装在其中的,或者用户通过经由网络下载或从其他电子设备中复制的方式自行安装在该移动电话100中的。
在上述任意情况下,当用户想要执行在电子设备100中安装的某一应用程序400时,他/她可以首先在该电子设备中通过在主菜单或者桌面中选择该应用程序400的图标来启动它。例如,该应用程序400可以是用于播放网络视频的应用程序。
在启动之后,该应用程序400可以在供各个进程使用的用户空间中进行运行,并且根据用户的选择来发出数据访问请求。该数据访问请求是用于访问数据的请求,其可以包括读取操作或写入操作。该读取操作的格式例如是:read/doc/file,而该写入操作的格式例如是:write/doc/file。
在一个具体示例中,当用户希望在电子设备上播放特定网络视频时,根据用户对于该特定网络视频的选择,处于用户空间层中的该应用程序400可以发出用于下载该网络视频流的请求。
在步骤S420中,拦截数据访问请求。
当应用程序400在用户空间层中发出用于访问数据的请求之后,在所述内核层中,虚拟文件系统310拦截该请求,以便对该请求进行后续的判断和转发处理。
在步骤S430中,判断与数据访问请求对应的文件系统的类型。
在拦截到应用程序400在用户空间层中发出用于访问数据的请求之后,该虚拟文件系统310判断与数据访问请求对应的文件系统的类型。
具体地,所述虚拟文件系统310对与所述请求对应的文件系统进行解析,并生成解析结果。例如,所述虚拟文件系统可以通过确定所述请求的属性,并且根据所述属性来判断与所述请求对应的文件系统的类型,来生成该解析结果。换言之,当应用程序在用户空间层中发出的文件操作请求被Linux中的虚拟文件系统310截获以后,该VFS310将根据此次操作的属性访问与之匹配的文件系统。
在一种实现方式中,在该数据访问请求中可以包括关于希望使用的文件系统的标识符(ID),使得虚拟文件系统310可以根据该标识符而唯一地确定出与所述请求对应的文件系统的类型。
当该解析结果指示出所述请求对应于所述内核层中的第一文件系统(例如,用户空间文件系统)320时,该虚拟文件系统310将所述请求传送到所述第一文件系统320,并且本方法继续执行步骤S450;而当所述解析结果指示出所述请求对应于所述内核层中的第二文件系统(例如,除了用户空间文件系统之外的文件系统)340时,该虚拟文件系统310将所述请求传送到所述第二文件系统340,并且本方法继续执行步骤S440。
此外,需要说明的是,除了第一文件系统320和第二文件系统340之外,该数据访问装置300还可以包括一个或多个其他文件系统。当所述解析结果指示出所述请求对应于所述内核层中的其他文件系统时,该虚拟文件系统310同样地将所述请求传送到所述其他文件系统,以进行后续操作。
在步骤S440中,访问第二文件系统。
一方面,在内核层中,在该虚拟文件系统310将所述请求传送到所述第二文件系统340之后,所述第二文件系统340获取所述请求所指向的数据。
具体地,取决于电子设备的实际配置,该第二文件系统340可以包括文件分配表(FAT)32文件系统、扩展文件分配表(exFAT)文件系统、网络文件系统(NFS)、新技术文件系统(NTFS)、第二扩展文件系统(Ext2)、第三扩展文件系统(Ext3)、第四扩展文件系统(Ext3)、泽字节文件系统(ZFS)等中的任何一个或多个。
当该用于访问数据的请求达到第二文件系统340时,可能说明该数据位于该电子设备100的本地存储器上,于是该第二文件系统340可以按照现有的文件获取方式根据该请求来确定要访问的数据在本地存储器上的存储地址,并且从该存储地址中读取该数据。
此外,在获取到所述数据之后,该第二文件系统340可以进一步将所述数据从所述内核层传送到(即,返回给)所述用户空间层中的所述应用程序。
具体地,与步骤S410到S430中的传送顺序相反地,所述第二文件系统340首先将所述数据传送到虚拟文件系统310,并且由所述虚拟文件系统310来确定所述用户空间层中的发出所述请求的应用程序。一旦确定了是哪一个应用程序请求访问该数据之后,该虚拟文件系统310将所述数据从内核层传送到用户空间层中的所述应用程序,以便该应用程序对于该数据进行后续处理,例如播放在本地存储器中存储的视频流、显示在本地存储器中存储的文件等。
在步骤S450中,访问第一文件系统。
另一方面,在内核层中,在该虚拟文件系统310将所述请求传送到所述第一文件系统320之后,所述第一文件系统320将所述请求传送到所述用户空间层中的确定单元330。
例如,该第一文件系统320可以是FUSE,并且该确定单元330可以是由开发者通过调用FUSE所提供的开发接口所创建的、用于通过各种获取方式来访问数据的守护进程。
具体地,在VFS根据数据访问请求的属性而确定出要访问FUSE320之后,FUSE320的内核模块可以将该请求进一步发送到用户空间(或称之为,用户态)中的守护进程330,进一步处理文件获取的请求。
在步骤S460中,确定所述请求所指向的数据的获取方式。
在用户空间层中,在从内核层中的第一文件系统320接收到该数据访问请求之后,该确定单元330通过各种方式来确定所述请求所指向的数据的获取方式。
具体地,在本发明实施例所定义的Daemon中包含了通过各种获取方式来获取文件的相关操作,所述获取方式至少包括以下各项中的至少一个:客户端/服务器(C/S)获取方式、浏览器/服务器(Browse/Server,B/S)获取方式、主从(Slave/Master,S/M)获取方式、和点对点(P2P)获取方式等。
在该C/S获取方式中,应用程序发出获取文件的请求,并且由分布式文件系统中的服务器响应文件获取的请求,从而向应用程序传送其所请求的文件。
该B/S获取方式是对C/S获取方式的一种改进。在这种方式中,软件应用的业务逻辑完全在应用服务器端实现,用户表现完全在网络(Web)服务器实现,客户端只需要浏览器即可进行业务处理,是一种全新的软件系统构造技术。
该S/M获取方式类似于该C/S获取方式。在这种方式中,每一个从设备都可以向一个主设备发出数据访问请求。
在该P2P获取方式中,不同于C/S获取方式,网络上的每个实体都拥有相同的等级,其可以同时扮演客户端与服务器的角色。
下面,为了简洁,仅仅以C/S获取方式和P2P获取方式两者为例继续说明本发明的实施例。
确定单元330可以根据实时信息(例如,网络拥塞信息和/或服务器负载信息等)来确定使用哪一种获取方式来获取数据。
具体地,在采用用户空间文件系统(FUSE)320的情况下,通过在与FUSE320对应的Daemon330中判断当前网络环境的拥塞状态和服务器的负载状态等实时信息,来自适应地选择文件获取是采用P2P的方式还是传统的C/S的方式进行。
例如,如果当前用于提供文件下载的服务器处于忙碌状态,或者如果当前网络处于拥塞状态,则该Daemon330可以选择根据P2P获取方式来获取数据。相反地,如果当前用于提供文件下载的服务器处于空闲状态,或者如果当前网络处于低流量状态,则该Daemon330可以选择根据C/S获取方式来获取数据。
在步骤S470中,判断获取方式的类型。
如果在步骤S460中确定单元330根据网络拥塞信息和/或服务器负载信息确定出根据C/S获取方式来获取数据,则本方法进入步骤S480;而如果在步骤S460中确定单元330确定出根据P2P获取方式来获取数据,则本方法进入步骤S490。
在步骤S480中,根据C/S获取方式来获取数据。
一旦确定单元330确定出根据C/S获取方式来获取数据,则在确定单元330中,C/S获取模块331通过C/S获取方式而与用于提供该数据的内容服务器进行通信,并且从网络中的该内容服务器获取所述数据。
在步骤S490中,根据P2P获取方式来获取数据。
如上所述,由于在本发明实施例所定义的确定单元(Daemon)330中包含了通过P2P方式获取文件的相关操作,因此可以根据需要通过P2P方式在分布式文件系统中获取文件。
也就是说,一旦确定单元330确定出根据P2P获取方式来获取数据,则在确定单元330中,P2P获取模块332通过P2P获取方式而与网络中的各个对等节点进行通信,并且从该各个对等节点获取所述数据访问请求所指向的数据。
无论是根据C/S获取方式、还是根据P2P获取方式,在成功地获得了用户所需要的数据之后,用户空间层中的确定单元330将所述数据传送到所述内核层中的第一文件系统320,并且所述第一文件系统320将所述数据从所述内核层传送到所述用户空间层中的所述应用程序400。
具体地,通过Daemon330所获取的文件可以依照与该请求的原路径相反的路径,即经过Daemon330->FUSE320->VFS310->APP400的顺序,返回到应用程序400中,从而完成文件获取的工作。
也就是说,在确定单元330获取到所述数据之后,该确定单元330首先将所述数据传送到所述第一文件系统320,所述第一文件系统320继而将所述数据传送到虚拟文件系统310,并且由所述虚拟文件系统310来确定所述用户空间层中的发出所述请求的应用程序。一旦确定了是哪一个应用程序请求访问该数据之后,该虚拟文件系统310将所述数据从内核层传送到用户空间层中的所述应用程序。
这样,该应用程序即可成功地获得自己所请求的数据,并且对于该数据进行各种后续处理,例如播放在本地存储器中存储的视频流、显示在本地存储器中存储的文件等。
由此可见,采用根据本发明实施例的数据访问方法和数据访问装置,可以在内核层中拦截在用户空间层中由一应用程序发出的数据访问请求(例如,数据读取请求或数据写入请求),通过第一文件系统将所述请求从内核层传送到所述用户空间层中的确定单元,通过所述确定单元来确定所述请求所指向的数据的获取方式,根据所确定的获取方式来从网络中获取数据,并最终将该数据经由第一文件系统返回到该应用程序。
因此,在本发明的实施例中,可以在采用用户空间文件系统(FUSE)框架的情况下,通过在FUSE中判断当前网络环境和服务器状态等实时信息,自适应地选择文件获取方式。这样,整个文件获取方式的仲裁完全由FUSE根据需要自动完成,其过程对上层应用透明,不需要修改应用程序源代码。也就是说,根据本发明实施例的数据访问方法和数据访问装置将在分布式环境中采用各种模式来获取文件的操作封装在FUSE的用户空间守护进程(Daemon)中执行,从而保证了整个文件获取过程对用户程序透明,并且无需修改原有应用的源代码就可实现P2P的文件获取,增加了文件获取的灵活性,显著提升了用户的操作体验。
最后,需要说明的是,尽管在上文中以各种数据的读取操作为例说明了根据本发明的数据访问方法和数据访问装置,但是本发明不限于此。本发明还可以应用于数据的写入操作。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助于软件加必需的硬件平台的方式来实现,当然也可以全部通过软件、或硬件来实施。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁盘、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
在上面详细描述了本发明的各个实施例。然而,本领域技术人员应该理解,在不脱离本发明的原理和精神的情况下,可对这些实施例进行各种修改,组合或子组合,并且这样的修改应落入本发明的范围内。

Claims (16)

1.一种数据访问方法,应用于电子设备,所述电子设备具有多层空间架构,所述多层空间架构至少包括用户空间层和内核层,
其特征在于,所述方法包括:
在所述内核层中,拦截从所述用户空间层中的应用程序发出的用于访问数据的请求,并且将所述请求传送到第一文件系统;
通过所述第一文件系统来将所述请求传送到所述用户空间层中的确定单元;以及
通过所述确定单元来确定所述请求所指向的数据的获取方式,
其中,所述方法还包括:
在获取到所述数据之后,通过所述确定单元来将所述数据传送到所述第一文件系统;以及
通过所述第一文件系统来将所述数据从所述内核层传送到所述用户空间层中的所述应用程序。
2.根据权利要求1的方法,其特征在于,将所述请求传送到第一文件系统的步骤包括:
对与所述请求对应的文件系统进行解析,并生成解析结果;以及
当所述解析结果指示出所述请求对应于所述内核层中的第一文件系统时,将所述请求传送到所述第一文件系统。
3.根据权利要求2的方法,其特征在于,对与所述请求对应的文件系统进行解析的步骤包括:
通过虚拟文件系统来确定所述请求的属性;以及
根据所述属性来判断与所述请求对应的文件系统的类型。
4.根据权利要求2的方法,其特征在于,所述方法还包括:
当所述解析结果指示出所述请求对应于所述内核层中的第二文件系统时,将所述请求传送到所述第二文件系统;
通过所述第二文件系统来获取所述数据;以及
在获取到所述数据之后,通过所述第二文件系统来将所述数据从所述内核层传送到所述用户空间层中的所述应用程序。
5.根据权利要求4的方法,其特征在于,通过所述第二文件系统来将所述数据从所述内核层传送到所述用户空间层中的所述应用程序的步骤包括:
通过所述第二文件系统来将所述数据传送到虚拟文件系统;
通过所述虚拟文件系统来确定所述用户空间层中的发出所述请求的应用程序;以及
将所述数据传送到所述应用程序。
6.根据权利要求1的方法,其特征在于,通过所述确定单元来确定所述请求所指向的数据的获取方式的步骤包括:
根据网络拥塞信息和/或服务器负载信息来确定所述数据的获取方式;以及
根据所确定的获取方式来从网络中获取所述数据。
7.根据权利要求6的方法,其特征在于,所述获取方式至少包括以下各项中的至少一个:客户端/服务器获取方式、浏览器/服务器获取方式、主从获取方式、和点对点获取方式。
8.根据权利要求1的方法,其特征在于,通过所述第一文件系统来将所述数据从所述内核层传送到所述用户空间层中的所述应用程序的步骤包括:
通过所述第一文件系统来将所述数据传送到虚拟文件系统;
通过所述虚拟文件系统来确定所述用户空间层中的发出所述请求的应用程序;以及
将所述数据传送到所述应用程序。
9.一种数据访问装置,应用于电子设备,所述电子设备具有多层空间架构,所述多层空间架构至少包括用户空间层和内核层,
其特征在于,所述装置包括:
虚拟文件系统,用于在所述内核层中,拦截从所述用户空间层中的应用程序发出的用于访问数据的请求,并且将所述请求传送到第一文件系统;
第一文件系统,用于将所述请求传送到所述用户空间层中的确定单元;以及
确定单元,用于确定所述请求所指向的数据的获取方式,
其中在获取到所述数据之后,所述确定单元将所述数据传送到所述第一文件系统,并且
所述第一文件系统将所述数据从所述内核层传送到所述用户空间层中的所述应用程序。
10.根据权利要求9的装置,其特征在于,所述虚拟文件系统对与所述请求对应的文件系统进行解析,并生成解析结果,并且当所述解析结果指示出所述请求对应于所述内核层中的第一文件系统时,将所述请求传送到所述第一文件系统。
11.根据权利要求10的装置,其特征在于,所述虚拟文件系统确定所述请求的属性,并且根据所述属性来判断与所述请求对应的文件系统的类型。
12.根据权利要求10的装置,其特征在于,
当所述解析结果指示出所述请求对应于所述内核层中的第二文件系统时,所述虚拟文件系统将所述请求传送到所述第二文件系统,并且
所述装置还包括:
第二文件系统,用于获取所述数据,并且在获取到所述数据之后,将所述数据从所述内核层传送到所述用户空间层中的所述应用程序。
13.根据权利要求12的装置,其特征在于,
所述第二文件系统将所述数据传送到所述虚拟文件系统,并且
所述虚拟文件系统确定所述用户空间层中的发出所述请求的应用程序,并且将所述数据传送到所述应用程序。
14.根据权利要求9的装置,其特征在于,所述确定单元根据网络拥塞信息和/或服务器负载信息来确定所述数据的获取方式,并且根据所确定的获取方式来从网络中获取所述数据。
15.根据权利要求14的装置,其特征在于,所述获取方式至少包括以下各项中的至少一个:客户端/服务器获取方式、浏览器/服务器获取方式、主从获取方式、和点对点获取方式。
16.根据权利要求9的装置,其特征在于,
所述第一文件系统将所述数据传送到所述虚拟文件系统,并且
所述虚拟文件系统确定所述用户空间层中的发出所述请求的应用程序,并且将所述数据传送到所述应用程序。
CN201310042863.0A 2013-02-01 2013-02-01 数据访问方法和数据访问装置 Active CN103970794B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310042863.0A CN103970794B (zh) 2013-02-01 2013-02-01 数据访问方法和数据访问装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310042863.0A CN103970794B (zh) 2013-02-01 2013-02-01 数据访问方法和数据访问装置

Publications (2)

Publication Number Publication Date
CN103970794A CN103970794A (zh) 2014-08-06
CN103970794B true CN103970794B (zh) 2017-11-28

Family

ID=51240306

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310042863.0A Active CN103970794B (zh) 2013-02-01 2013-02-01 数据访问方法和数据访问装置

Country Status (1)

Country Link
CN (1) CN103970794B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104407946A (zh) * 2014-12-31 2015-03-11 浪潮电子信息产业股份有限公司 一种便捷的备份邮件到hdfs上的方法
CN106776734A (zh) * 2016-11-21 2017-05-31 深圳市深信服电子科技有限公司 一种应用层文件系统访问的方法及电子设备
CN109542696B (zh) * 2017-09-22 2023-04-28 龙芯中科技术股份有限公司 获取设备数据的方法、装置、可读存储介质及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101075879A (zh) * 2006-06-13 2007-11-21 腾讯科技(深圳)有限公司 一种数据下载方法
CN102360369A (zh) * 2011-09-28 2012-02-22 中兴通讯股份有限公司 在用户空间文件系统上实现聚合写文件脏页的方法和装置
CN102546728A (zh) * 2010-12-27 2012-07-04 北大方正集团有限公司 一种对等网络资源下载方法
CN102609769A (zh) * 2011-01-19 2012-07-25 上海中信信息发展股份有限公司 数据采集工具及数据采集方法
WO2012098211A1 (en) * 2011-01-21 2012-07-26 Technicolor Delivery Technologies Method for backward-compatible aggregate file system operation performance improvement, and respective apparatus
CN102868720A (zh) * 2011-08-05 2013-01-09 新游网络科技有限公司 散布补丁文件的方法及其装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8458236B2 (en) * 2008-07-16 2013-06-04 Oracle International Corporation File system interface for CIM

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101075879A (zh) * 2006-06-13 2007-11-21 腾讯科技(深圳)有限公司 一种数据下载方法
CN102546728A (zh) * 2010-12-27 2012-07-04 北大方正集团有限公司 一种对等网络资源下载方法
CN102609769A (zh) * 2011-01-19 2012-07-25 上海中信信息发展股份有限公司 数据采集工具及数据采集方法
WO2012098211A1 (en) * 2011-01-21 2012-07-26 Technicolor Delivery Technologies Method for backward-compatible aggregate file system operation performance improvement, and respective apparatus
CN102868720A (zh) * 2011-08-05 2013-01-09 新游网络科技有限公司 散布补丁文件的方法及其装置
CN102360369A (zh) * 2011-09-28 2012-02-22 中兴通讯股份有限公司 在用户空间文件系统上实现聚合写文件脏页的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"基于Fuse的资源搜索文件系统设计与实现";吴宗坤;《中国优秀硕士学位论文全文数据库 信息科技辑》;20111215(第12期);论文第12-13页,附图2-6 *

Also Published As

Publication number Publication date
CN103970794A (zh) 2014-08-06

Similar Documents

Publication Publication Date Title
EP2663052B1 (en) API Platform That Includes Server-Executed Client-Based Code
US9954746B2 (en) Automatically generating service documentation based on actual usage
Sitaram et al. Moving to the cloud: Developing apps in the new world of cloud computing
US8548976B2 (en) Balancing load requests and failovers using a UDDI proxy
US10013500B1 (en) Behavior based optimization for content presentation
US8577892B2 (en) Utilizing affinity groups to allocate data items and computing resources
JP2019517043A (ja) ハイブリッドアプリケーションの自動更新
US9722879B1 (en) Method and apparatus of an intuitive web based command line interface
JP7397094B2 (ja) リソース構成方法、リソース構成装置、コンピューター機器、及びコンピュータープログラム
US9047308B2 (en) Methods and apparatus for providing unified access to various data resources using virtualized services
US20160261693A1 (en) Cloud-based data backup and operation method and system
JP2018502383A (ja) 多数のコンピュータサブシステム用の再構成可能リソースを備えるシステムオンチップ
CN101237561A (zh) 网络视频加速系统及控制方法
KR20140055288A (ko) 클라우드 환경 내의 데이터 분석 서비스 제공 시스템 및 방법
CN110781505B (zh) 系统构建方法及装置、检索方法及装置、介质和设备
EP2808792B1 (en) Method and system for using arbitrary computing devices for distributed data processing
US11882154B2 (en) Template representation of security resources
JP2020035453A (ja) I/oステアリングエンジンを備えるシステムオンチップ
Xinogalos et al. Recent advances delivered by HTML 5 in mobile cloud computing applications: a survey
US9716666B2 (en) Process cage providing attraction to distributed storage
CN103970794B (zh) 数据访问方法和数据访问装置
CN103108046A (zh) 云终端的虚拟机登录方法、装置和系统
Guo et al. Jupiter: transparent augmentation of smartphone capabilities through cloud computing
Johansson et al. Web-based adaptive application mobility
CN110020290B (zh) 网页资源缓存方法、装置、存储介质及电子装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant