CN106462610A - 一种预获取系统和方法 - Google Patents
一种预获取系统和方法 Download PDFInfo
- Publication number
- CN106462610A CN106462610A CN201580026182.2A CN201580026182A CN106462610A CN 106462610 A CN106462610 A CN 106462610A CN 201580026182 A CN201580026182 A CN 201580026182A CN 106462610 A CN106462610 A CN 106462610A
- Authority
- CN
- China
- Prior art keywords
- file
- caching
- item
- buffer memory
- version
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5681—Pre-fetching or pre-delivering data based on network characteristics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
在一个实施例中,一种预获取文件的方法包括:解析项目文件,以产生解析后的项目文件;从所述解析后的项目文件中提取多个文件,以产生文件列表。所述方法还包括:缓存设备通过网络在文件服务器中根据所述文件列表检索所述多个文件,将所述多个文件存储至缓存中。
Description
相关申请案交叉申请
本申请要求于2014年5月22日递交的发明名称为“一种预获取系统和方法”申请号为14/285,204的美国非临时专利申请的在先申请优先权,该在先申请的内容以引入的方式并入本文。
技术领域
本发明涉及缓存管理的系统和方法,尤其涉及一种预获取系统和方法。
背景技术
在现今的企业世界,全球范围内存在地理上分散的远端办公室,所述远端办公室有集中的总部和相对较少的数据中心。可以通过广域网(wide area network,WAN)在全球范围内的多个远端办公室间共享所述数据中心的数据。因为带宽有限,WAN并不可靠。同时,应用对带宽的要求越来越高,这间接导致了对文件的简单操作的性能问题,例如,读和写操作。
应用使用文件共享协议。为了提升使用这些协议时的性能,安装中间缓存设备,以缓存对象。缓存可以为读缓存和写缓存,其缓存数据以获得更好的用户体验,提供更好的数据一致性。数据缓存是将内容临时存储在网络边缘侧的机制,以在用户再次存取所述内容时减少带宽使用量、降低服务器负载以及感知到的延迟。缓存可以应用于各种不同的网络实现中,例如,在内容分发网络(content distribution networks,CDNs)、企业网、因特网服务提供方(internet service provider,ISP)网络等。一般来说,缓存通过如下方式进行:获取内容以响应存取所述内容的客户端,将所述内容存储在缓存中一段时间,当所述客户端尝试再次存取所述内容时直接从所述缓存中提供所述内容。
通用Internet文件系统(common internet file system,CIFS)等协议多次读取和写入数据,比较繁复。同样,当多个用户尝试存取同一数据时,如超文本传输协议(hypertext transfer protocol,HTTP)等协议一遍又一遍地生成同样的数据。应用也对同样的文件操作(打开、读取和关闭)进行多次迭代。缓存设备通过进行数据缓存和预获取以执行此操作。当用户表现有打开或读取文件的兴趣时,可以发起数据预获取。如果数据在后端文件服务器中被修改,用户会接入缓慢,因为被修改的数据在网络中流动。又如,在用户存取所述数据之前,所述设备的管理员手动预加载所述数据。但是,这容易发生错误,且具有不确定性。
发明内容
一种预获取文件的实施例方法包括:解析项目文件,以产生解析后的项目文件;从所述解析后的项目文件中提取多个文件,以产生文件列表。所述方法还包括:缓存设备通过网络在文件服务器中根据所述文件列表检索所述多个文件,将所述多个文件存储至缓存中。
一种打开文件的实施例方法包括:当客户端发起只打开项目文件或多个文件的子集时,缓存设备通过网络在文件服务器中检索缓存中与所述项目文件关联的所述多个文件,将所述多个文件存储至所述缓存设备的缓存中。所述方法还包括:所述缓存设备从用户处接收文件打开请求,以打开第一文件,其中,所述多个文件包括所述第一文件;从所述缓存中读取所述第一文件。
一种缓存设备实施例包括:处理器和计算机可读存储介质,用于存储所述处理器执行的程序。所述程序包括执行以下操作的指令:解析项目文件,以产生解析后的项目文件;从所述解析后的项目文件中提取多个文件,以产生文件列表。所述程序还包括执行以下操作的指令:通过网络在文件服务器中根据所述文件列表检索所述多个文件;将所述多个文件存储至缓存中。
上述宽泛地概括了本发明实施例的特征,以便能够更好地理解本发明以下详细描述。以下将对本发明实施例的其他特征与优点即本发明权利要求书的主题进行描述。本领域的技术人员应当理解,所公开的概念和特定实施例易被用作修改或设计其他实现与本发明相同的目的的结构或过程的基础。本领域的技术人员还应当意识到,这种等效构造不脱离所附权利要求书所阐述的本发明的精神和范围。
附图说明
为了更完整地理解本发明及其优点,现在参考下文结合附图进行的描述,其中:
图1示出了一种预获取的网络实施例;
图2示出了另一种预获取的网络实施例;
图3示出了用于缓存文件的消息图;
图4A至4D示出了容器文件的实施例;
图5示出了一种预获取的系统实施例;
图6示出了一种预获取的方法实施例的流程图;
图7示出了另一种预获取的方法实施例的流程图;
图8示出了一种通用计算机系统的实施例的方框图。
除非另有指示,否则不同图中的对应标号和符号通常指代对应部分。绘制各图是为了清楚地说明实施例的相关方面,因此未必是按比例绘制的。
具体实施方式
首先应理解,尽管下文提供一项或多项实施例的说明性实施方案,但所公开的系统和/或方法可使用任何数目的技术来实施,无论该技术是当前已知还是现有的。本发明决不应限于下文所说明的说明性实施方案、附图和技术,包括本文所说明并描述的示例性设计和实施方案,而是可在所附权利要求书的范围以及其等效物的完整范围内修改。
远端办公室遍布世界。从集中服务器传输的数据受广域网(wide area networks,WANs)的时延和带宽限制的影响,所述广域网通常比局域网(local area network,LAN)慢。但是,WAN用户希望拥有LAN一样的用户体验。
为了提高用户体验质量,当用户通过对文件发起第一次读取表现出对所述文件的兴趣时,中间缓存设备发起预获取所述文件。通常,在打开所述文件或读取第一个数据块之后,发起预获取。但是,用户倾向于对文件的逻辑组或数据集合关联成的项目进行操作。每个项目包含少数至多个文件。如果所述文件集合在一起,则所述用户倾向于打开所述关联文件中的一个文件之后就打开所述关联文件中的一些文件。
逻辑上归在一起的文件可以形成项目文件或容器文件。项目文件包含关于文件位置和文件名的元数据。所述项目文件的格式可以是基于Makefile的文本文件,对于如Visual Studio或AutoCAD等应用是基于可扩展标记语言(extensible markup language,XML)的,或者为任何其他的格式,例如,批处理文件。当远端用户通过WAN存取所述项目文件时,他可能会打开所述项目中的不止一个文件。因为可获得所述项目文件中的大部分文件具体信息,本实施例的缓存系统包含解析所述项目文件、在文件和/或目录上执行预获取操作的基础结构。因为存在多个项目文件格式不同的应用,基础结构中的插件呈现多种格式,其中,不同的插件处理不同类型的项目。这些插件解析各自的格式,提取路径名和目录的列表。将该信息提供给预获取引擎,所述预获取引擎在所述用户实际发起打开或读取所述文件中的一个文件之前,预获取所述文件。可以将所述插件通过通用语言基础结构(commonlanguage infrastructure,CLI)或其他方式加载到所述缓存引擎中。插件管理器直接更新其可用插件的数据库,因此,对所请求的项目文件的操作可以传递到正确的插件上。例如,应用特定的而不是基于协议的插件。AutoCAD、Eclipse和Corel等应用可以以不同的方式优化,即使它们在WAN中工作于相同的协议。
图1示出了支持文件预获取的网络环境290。如图所示,所述网络环境290包括文件服务器292、缓存设备296、网络294和客户端302。所述文件服务器292可以是任意用于存储文件的组件或者组件的集合。所述文件服务器292可以为存储待被远端客户端存取的文件的远端服务器,例如,所述客户端302。
所述网络294可以为WAN、LAN或者其他类型的网络。所述客户端302通过所述网络294存取所述文件服务器292上的文件。
所述缓存设备296可以是任意代表所述客户端302从所述文件服务器292上获取文件且缓存所述文件以使所述文件可以被所述客户端302存取的组件或组件的集合。所述缓存设备296可以包括用于获取文件的获取模块298和用于存储文件的缓存300。通过所述网络294从所述文件服务器292上下载文件。所述获取模块298通过所述网络294从文件服务器上获取文件至所述缓存300,通过所述网络294从所述文件服务器292中预获取文件至所述客户端302,从所述缓存300中预获取文件至所述客户端302。
所述客户端302可以对应于存取所述文件服务器292上存储的文件的任意实体(例如,个人、办公室、公司等)或实体组(例如,用户组等)。在此处提供的实施例中,所述缓存设备296可以在所述客户端302再次存取所述文件之前从所述文件服务器292预获取文件和/或文件更新,将预获取的文件存储在所述缓存300中。可以基于所述客户端302打开的项目预获取所述文件,一旦所述文件被所述客户端302再次存取,所述缓存300可以直接为所述客户端302提供所述文件。
本说明书中提供的预获取技术的实施例适用于将存储在网络一侧的文件在所述网络的另一侧缓存的任意网络环境,,所述网络包括内容分发网络(content distributednetworks,SDNs)、企业网、因特网服务提供方(internet service provider,ISP)网络、广域优化网络等。图2示出了包括通过WAN通信的数据中心和分办公室的网络环境100。数据中心102通过WAN106耦合到分办公室104上,所述数据中心102包含文件服务器112,所述文件服务器112可以为Windows或Unix文件服务器。所述文件服务器112存储了可以被远程存取的文件。数据存储在存储器110和所述数据中心102的磁带备份区114中。
WAN优化(WAN optimization,WANO)区116进行WAN优化,以提高所述WAN106的数据效率。WANO技术包括优化吞吐量、带宽要求、时延、协议优化以及拥塞避免。
防火墙118保护所述数据中心。所述防火墙118是控制入网和出网流量的网络安全系统。
路由器120在所述数据中心102和所述WAN106间交互,而路由器122在所述WAN106和所述分办公室104间交互。所述路由器120和122在所述数据中心102和所述分办公室104间转发数据包。
在所述分办公室104中,所述WAN106耦合到所述路由器122。防火墙124保护所述分办公室104,所述防火墙124控制入网和出网流量,为所述分办公室104提供保护。
WANO区126接收所述数据,将所述数据传播到客户端128中,所述WANO区126进行优化,以提高所述WAN106中的效率。并且,所述WANO区126包括用于存储数据的缓存。所述WANO区116和126可以是用于为所述WAN106提供接口的任意设备,可以包括预获取模块和/或其他用于执行本说明书提供的获取和优化技术的组件。
关于预获取的更多信息在2014年3月14日递交的发明名称为“基于存取模式的智能文件预获取”申请号为14/231,508的美国专利申请中已作讨论,该在先申请的内容以引入的方式并入本文。
图3示出了提前读取单个文件的缓存的消息图140。基于单个文件进行提前读取缓存,其中各个文件都被缓存。当存在多个文件时,例如,存在项目时,一次性预获取所有文件。在实施例中,可以一次性预获取多个文件。当客户端尝试存取文件时开始该过程,以提示缓存设备将文件请求发送至文件服务器,以获取所述文件的版本。客户端142将认证和连接请求发送至缓存设备144,所述缓存设备144认证所述认证和连接请求或将所述认证和连接请求转发至服务器146。作为回应,所述服务器146发送响应至所述缓存设备144,其中,所述缓存设备144将所述响应转发至所述客户端142。
接下来,所述客户端142打开文件1,请求打开所述文件。将该请求发送至所述缓存设备144,传递至所述服务器146,所述服务器146响应所述缓存设备144,将所述响应发送至所述客户端142,然后所述文件被打开。
所述缓存设备144请求从所述服务器146中读取并提前读取文件1。在所述服务器146上进行读取和磁盘输入/输出(input/output,IO),将数据发送至所述缓存设备144。所述缓存设备144将所读取的数据发送至所述客户端142。并且,所述缓存设备144代表所述客户端142进行预获取,进行提前读取。
所述客户端142再次打开文件2,请求文件2的响应。和文件1一样,所述客户端142为读取和提前读取文件2接收数据,将这个请求发送至所述缓存设备144,传递至所述服务器146,所述服务器146响应所述缓存设备144,将所述响应发送至所述客户端142,然后所述文件被打开。
通常,文件在逻辑上以文件集合的形式归在一起,作为项目文件或容器文件。所述项目或容器文件包含项目中文件的名称和位置。例如,所述项目或容器文件为:.NET项目文件(.vcxproj)、Eclipse项目文件(.project)、Rstudio(.rproj)、Qt项目文件(.pro)、AutoCAD项目文件(.wdp,.wdd)、Unix/Linus Makefile、A4desk(.a4p)、Adobe设备(.adcp)、Anjuta集成开发环境(integrated developer environment,IDE)(anjuta)、Borlanddeveloper studio(.bdsproj)、C#项目文件(.scproj)和Delphi项目(.dproj)。图4A至4D示出了项目文件的一些示例。图4A示出了.NET项目文件150,图4B示出了C#项目文件160,图4C示出了Borland项目文件170,图4D示出了Borlandfile文件180。
图5示出了用于预获取项目文件的系统190。当打开容器文件时或当打开容器文件的子文件之一时,预获取文件。所述系统190检测文件集合,缓存关联的项目文件中的所有文件。当用户请求打开项目文件时,打开模块200接收该请求,将所述请求传递至插件管理器202中。所述请求可以为打开项目文件、与项目文件关联的文件或与项目文件不关联的文件。例如,缓存中已存储有所述文件。或者,缓存中未存储所述文件。
所述插件管理器202管理插件192,所述插件管理器202管理所述插件192,确定待读取的文件是否是已识别的项目文件、与已识别的插件关联的文件或两者都不是。例如,基于专用文件格式确定针对所述项目文件格式的插件类型。当所述文件是项目文件或项目文件的一部分时,所述插件管理器202解析所述请求至正确的插件上,所述正确的插件解析对应的项目文件。所述插件包括针对适当容器文件的解析器,提取待获取的文件。所述插件从所述项目文件中提取信息,解析所述信息,准备完整文件名的列表,将所述列表传递到所述插件管理器中。
然后,将所述文件列表传递至预获取模块208中,获取所述文件,将所述文件保存在缓存中。缓存模块212预获取这些文件,将这些文件存储在本地永久缓存,即缓存214中。通过WAN206在远端服务器204中检索所述文件,以将所述文件存储在所述缓存214中。所述文件存储在所述本地永久缓存214中。
当用户请求读取这些文件之一时,所述读取模块210在所述缓存模块212中检索所述文件。如果所述文件以当前的版本存储在所述缓存214中,所述缓存模块212从所述缓存214读取所述文件,将数据传递至所述读取模块210,所述读取模块210迅速做出响应。当所述文件的所述当前版本未存储在缓存中时,可以通过所述网络从所述远端服务器下载所述文件。
图6示出了用于预获取项目文件的方法的流程图220。首先,在步骤222中,用户发起打开文件。例如,所述用户打开存储在远端服务器上的文件。所述文件可以为项目文件、项目文件的一部分或者与项目文件不关联的文件。
接下来,在步骤224中,复制打开信息,将所述打开信息发送至插件管理器。将所述打开信息发送至所述插件管理器,以打开所述文件和所述项目文件中的其他文件。
然后,在步骤226中,所述插件管理器进行验证。所述插件管理器确定所述插件是项目文件还是项目文件的一部分。当待打开的文件不是项目文件的一部分时,只打开所述文件。当所述待打开的文件是项目文件或项目文件的一部分时,预获取所述项目文件中的文件,因为所述用户在将来很可能会打开它们。所述插件管理器确定打开所述文件的合适插件。
在步骤228中,所述插件管理器确定是否有合适的插件。所述插件管理器可以下载、更新或删除插件,以获得所述合适的插件。在步骤230中,当所述合适的插件不可用时,所述系统不执行任何操作;在步骤232中,当所述插件可用时,所述插件解析所述项目文件。
在步骤234中,在解析所述项目文件之后,所述插件提取待预获取文件的列表。例如,预获取所述项目文件中所有的文件。或者,只预获取所述文件中的一部分。
接下来,在步骤236中,预获取模块预获取所述项目文件。预获取在步骤234中确定的所述列表中的文件,将其存储在永久缓存238中。之后所述文件可以从所述缓存中存取。
当所述用户之后想打开文件时,可以从所述永久缓存238中快速读取所述文件。在步骤240中,为了读取已在缓存中存储的文件,所述用户发起读取文件1。
在步骤242中,读取模块验证所述文件的最新副本存储在缓存238中。在所述缓存中可能存在所述文件的旧版本,所述旧版本不是最近的版本。例如,可以在所述远端服务器上更新所述文件的新版本,但是这个新版本还未下载至所述缓存中。然后,在步骤244中,确定缓存中的本地副本是否是最新版本。当最新副本未存储在所述缓存中时,例如,当所述文件已被更新,或者如果所述文件从未被预获取,在步骤248中,所述系统读取所述文件。在步骤250中,通过所述WAN读取所述文件。这会导致时延。
当最新副本存储在所述缓存中时,在步骤246中,所述系统从所述永久缓存238中读取所述文件。这可以快速地执行。
图7示出了用于预获取文件的方法的流程图310。首先,在步骤340中,用户发起打开文件。
在步骤316中,缓存设备确定所述文件是否是容器文件。这可以通过确定所述文件是否是专有容器文件实现。当所述文件是项目文件的一部分时,可以存取所述项目文件。当所述文件不是项目文件或项目文件的一部分时,所述缓存设备继续执行步骤314。当所述文件是项目文件的一部分或是项目文件时,所述缓存设备继续步骤318。
在步骤314中,所述缓存设备确定所述文件是否已在缓存中。当所述文件已在所述缓存中,所述系统继续执行步骤326。另一方面,当所述文件未存储在所述缓存中时,所述系统继续执行步骤324。
在步骤324中,所述缓存设备通过网络获取单个文件。所述网络可以为WAN或其他网络。通过所述网络从远端服务器读取所述单个文件。并且,将所述文件保存在缓存中,以便后来存取。
在步骤326中,所述缓存设备确定所述缓存中的所述文件的版本是否是所述文件的最新版本。在步骤328中,当所述缓存中所述文件的版本是所述文件的最新版本时,所述系统从所述缓存中读取所述文件。在步骤324中,当所述缓存中的所述文件的版本不是所述文件的最新版本时,所述系统通过所述网络获取所述文件。此时,所述文件打开时有一定的时延。所述文件也被保存在所述缓存中,以便后来存取。
在步骤318中,所述缓存设备确定针对所述项目文件的合适插件,且确定所述插件可用。插件管理器检查所述容器文件,确定是否有合适的插件可用。可以新增新的插件、更新现有的插件或必要时删除插件。在步骤330中,当所述插件不可用时,所述系统不预获取所述项目文件。当有合适的插件可用时,所述系统继续执行步骤320。
在步骤320中,所述缓存设备从所述容器文件提取所述文件。解析所述容器文件,提取所述文件,以创建文件列表。所述列表可以包含文件名和文件位置。
最后,在步骤322中,通过所述网络预获取所述文件。然后,当所述用户发起读取所述容器文件中的一个文件时,可以从所述缓存中快速读取所述文件。
此处使用的术语“预获取文件”指的是在尝试存取电子文件的客户端没有提示的情况下获取所述电子文件的动作。而且,所述术语“文件”用于宽泛地表示拥有共同的特征或分类的任意对象(例如,文件内容),因此,短语“预获取文件”不应理解为暗指获取的所述电子文件等于所述客户端之前存取的“所述(电子)文件”。例如,所述预获取的文件可以为所述客户端之前存取的电子文件的更新版本。又如,所述预获取的文件可以是所述客户端之前存取的周期性电子文件类型的新实例,例如,周期收入报告、日程等。在此例中,所述客户端没有存取所述预获取的电子文件的任何版本。为了阐述所述概念,假设所述客户端是编辑周二体育版面的定稿的报纸编辑,所述缓存设备预获取周三体育版面的定稿的电子版本。短语“预获取文件”应被理解为包括情况:即使周三体育版面的内容与周二体育版面的内容不同,因为(在本实例中)“所述文件”指的是与周二和周三体育版面相关联的类型或分类,而不是周二体育版面的具体内容。
图8是处理系统270的方框图,该处理系统可以用来实现本文公开的设备和方法。特定装置可利用所有所示的组件或所述组件的仅一子集,且装置之间的集成程度可能不同。此外,设备可以包括部件的多个实例,例如多个处理单元、处理器、存储器、发射器、接收器等。处理系统可以包括配备一个或多个输入/输出设备,例如扬声器、麦克风、鼠标、触摸屏、按键、键盘、打印机、显示器等的处理单元。另外,处理系统270可配备一个或多个输出设备,例如,扬声器、打印机、显示器等。处理单元可以包括中央处理器(CPU)274、存储器276、大容量存储器设备278、视频适配器280以及连接至总线的I/O接口288。
总线可以是任意类型的若干总线架构中的一个或多个,包括存储总线或存储控制器、外设总线、视频总线等等。CPU 274可包括任意类型的电子数据处理器。存储器276可包括任何类型的系统存储器,例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、只读存储器(ROM)或其组合等等。在实施例中,存储器可包括在开机时使用的ROM以及执行程序时使用的程序和数据存储器的DRAM。
大容量存储器设备278可包括任意类型的存储设备,其用于存储数据、程序和其它信息,并使这些数据、程序和其它信息通过总线访问。大容量存储器设备278可包括如下项中的一种或多种:固态磁盘、硬盘驱动器、磁盘驱动器、光盘驱动器等等。
视频适配器280以及I/O接口288提供接口以将外部输入以及输出装置耦合到处理单元上。如所图示,输入以及输出装置的实例包含耦合到显示卡上的显示器以及耦合到I/O接口上的鼠标/键盘/打印机。其它装置可以耦合到处理单元上,并且可以利用额外的或较少的接口卡。举例来说,串行接口卡(未图示)可以用于为打印机提供串行接口。
处理单元还包含一个或多个网络接口284,所述网络接口284可以包括例如以太网电缆或其类似者等有线链路,和/或用以接入节点或不同网络的无线链路。网络接口284允许处理单元经由网络与远程单元通信。举例来说,网络接口可以经由一个或多个发射器/发射天线以及一个或多个接收器/接收天线提供无线通信。在一个实施例中,所述处理单元与局域网或者广域网耦合以进行数据处理以及与远端设备比如其他处理单元、因特网、远端存储设备等通信。
虽然本发明中已提供若干实施例,但应理解,在不脱离本发明的精神或范围的情况下,本发明所公开的系统和方法可以以许多其他特定形式来体现。本发明的实例应被视为说明性而非限制性的,且本发明并不限于本文本所给出的细节。例如,各种元件或部件可以在另一系统中组合或合并,或者某些特征可以省略或不实施。
此外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、模块、技术或方法进行组合或合并。展示或论述为彼此耦合或直接耦合或通信的其它项也可以采用电方式、机械方式或其它方式通过某一接口、设备或中间部件间接地耦合或通信。其他变化、替代和改变的示例可以由本领域的技术人员在不脱离本文精神和所公开的范围的情况下确定。
Claims (20)
1.一种预获取文件的方法,其特征在于,所述方法包括:
解析项目文件,以产生解析后的项目文件;
从所述解析后的项目文件中提取多个文件,以产生文件列表;
缓存设备通过网络在文件服务器中根据所述文件列表检索所述多个文件;
将所述多个文件存储在缓存中。
2.根据权利要求1所述的方法,其特征在于,所述项目文件是可扩展标记语言(extensible markup language,XML)文件。
3.根据权利要求1所述的方法,其特征在于,所述项目文件为文本文件。
4.根据权利要求1所述的方法,其特征在于,所述网络为广域网(wide area network,WAN)。
5.根据权利要求1至4中任意一项所述的方法,其特征在于,提取所述多个文件是由插件执行。
6.根据权利要求5所述的方法,其特征在于,还包括:
根据所述项目的类型识别所述插件;
确定所述插件是否可用。
7.根据权利要求6所述的方法,其特征在于,还包括:当所述插件不可用或所述插件的更新的版本可用时,更新所述插件。
8.根据权利要求6所述的方法,其特征在于,还包括:当所述插件不可用或所述插件的更新的版本可用时,下载所述插件。
9.根据权利要求1至8中任意一项所述的方法,其特征在于,还包括:所述缓存设备从用户处接收文件打开请求,以打开所述项目文件。
10.根据权利要求1至8中任意一项所述的方法,其特征在于,还包括:所述缓存设备从用户处接收文件打开请求,以打开与所述项目文件关联的第一文件。
11.根据权利要求10所述的方法,其特征在于,还包括:所述缓存设备从用户处接收文件打开请求,以在将所述多个文件存储在所述缓存之后打开所述第一文件。
12.根据权利要求11所述的方法,其特征在于,还包括:确定所述第一文件的版本是否存储在所述缓存中。
13.根据权利要求12所述的方法,其特征在于,还包括:确定所述第一文件的版本是否是当前版本。
14.根据权利要求13所述的方法,其特征在于,还包括:当所述第一文件的版本是所述当前版本时,从所述缓存中读取所述第一文件的所述版本。
15.根据权利要求13所述的方法,其特征在于,还包括:当所述第一文件的版本不是所述当前版本时,所述缓存设备通过所述网络在所述文件服务器中检索所述第一文件。
16.一种打开文件的方法,其特征在于,所述方法包括:
当客户端发起只打开项目文件或多个文件的子集时,缓存设备通过网络在文件服务器中检索缓存中与所述项目文件关联的所述多个文件;
将所述多个文件存储在所述缓存设备的缓存中;
所述缓存设备从用户处接收文件打开请求,以打开第一文件,其中,所述多个文件包括所述第一文件;
从所述缓存中读取所述第一文件。
17.根据权利要求16所述的方法,其特征在于,还包括:确定所述缓存中的所述第一文件的版本是否是当前版本,其中,当所述缓存中的所述第一文件的版本是所述当前版本时,从所述缓存中读取所述第一文件。
18.根据权利要求17所述的方法,其特征在于,还包括:
当所述缓存中的所述第一文件的版本不是所述当前版本时,所述缓存设备通过所述网络在所述文件服务器中检索所述第一文件;
将所述第一文件存储至所述缓存中。
19.一种缓存设备,其特征在于,包括:
处理器;
计算机可读存储介质,用于存储所述处理器执行的程序,其中,所述程序包括执行以下操作的指令:
解析项目文件,以产生解析后的项目文件;
从所述解析后的项目文件中提取多个文件,以产生文件列表;
通过网络在文件服务器中根据所述文件列表检索所述多个文件;
将所述多个文件存储在缓存中。
20.一种缓存设备,其特征在于,包括:
处理器;
计算机可读存储介质,用于存储所述处理器执行的程序,其中,所述程序包括执行以下操作的指令:
当客户端发起只打开项目文件或多个文件的子集时,将与所述项目文件关联的所述多个文件存储至缓存中;
从用户处接收文件打开请求,以打开第一文件,其中,所述多个文件包括所述第一文件;
从所述缓存中读取所述第一文件。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/285,204 US20150341460A1 (en) | 2014-05-22 | 2014-05-22 | System and Method for Pre-fetching |
US14/285,204 | 2014-05-22 | ||
PCT/CN2015/079385 WO2015176659A1 (en) | 2014-05-22 | 2015-05-20 | System and method for pre-fetching |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106462610A true CN106462610A (zh) | 2017-02-22 |
Family
ID=54553433
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580026182.2A Pending CN106462610A (zh) | 2014-05-22 | 2015-05-20 | 一种预获取系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20150341460A1 (zh) |
EP (1) | EP3134833A4 (zh) |
CN (1) | CN106462610A (zh) |
WO (1) | WO2015176659A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112866356A (zh) * | 2021-01-04 | 2021-05-28 | 成都知道创宇信息技术有限公司 | Cdn缓存方法、装置及电子设备 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10445290B1 (en) * | 2014-10-29 | 2019-10-15 | Cadence Design Systems, Inc. | System and method for a smart configurable high performance interactive log file viewer |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030061278A1 (en) * | 2001-09-27 | 2003-03-27 | International Business Machines Corporation | Addressing the name space mismatch between content servers and content caching systems |
US20080010585A1 (en) * | 2003-09-26 | 2008-01-10 | Fuji Xerox Co., Ltd. | Binding interactive multichannel digital document system and authoring tool |
US20090049108A1 (en) * | 2007-07-17 | 2009-02-19 | Gridiron Software Inc. | Method and apparatus for workflow versioning |
US20090138808A1 (en) * | 2003-09-05 | 2009-05-28 | Groove Networks, Inc. | Method and apparatus for providing attributes of a collaboration system in an operating system folder-based file system |
US20090222453A1 (en) * | 2008-02-29 | 2009-09-03 | International Business Machines Corporation | Prefetching remote files on local disk space |
US20110066676A1 (en) * | 2009-09-14 | 2011-03-17 | Vadim Kleyzit | Method and system for reducing web page download time |
CN102541985A (zh) * | 2011-10-25 | 2012-07-04 | 曙光信息产业(北京)有限公司 | 一种分布式文件系统中客户端目录缓存的组织方法 |
US20120317239A1 (en) * | 2011-06-08 | 2012-12-13 | Workshare Ltd. | Method and system for collaborative editing of a remotely stored document |
US20140053057A1 (en) * | 2012-08-16 | 2014-02-20 | Qualcomm Incorporated | Speculative resource prefetching via sandboxed execution |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7181574B1 (en) * | 2003-01-30 | 2007-02-20 | Veritas Operating Corporation | Server cluster using informed prefetching |
CA2622404A1 (en) * | 2004-09-15 | 2006-03-23 | Adesso Systems, Inc. | System and method for managing data in a distributed computer system |
US8099400B2 (en) * | 2006-08-18 | 2012-01-17 | National Instruments Corporation | Intelligent storing and retrieving in an enterprise data system |
CN101814038B (zh) * | 2010-03-23 | 2012-10-03 | 杭州顺网科技股份有限公司 | 一种加快计算机启动速度的方法 |
US8788628B1 (en) * | 2011-11-14 | 2014-07-22 | Panzura, Inc. | Pre-fetching data for a distributed filesystem |
US9811532B2 (en) * | 2010-05-03 | 2017-11-07 | Panzura, Inc. | Executing a cloud command for a distributed filesystem |
US9128626B2 (en) * | 2010-10-01 | 2015-09-08 | Peter Chacko | Distributed virtual storage cloud architecture and a method thereof |
-
2014
- 2014-05-22 US US14/285,204 patent/US20150341460A1/en not_active Abandoned
-
2015
- 2015-05-20 EP EP15795947.9A patent/EP3134833A4/en not_active Withdrawn
- 2015-05-20 CN CN201580026182.2A patent/CN106462610A/zh active Pending
- 2015-05-20 WO PCT/CN2015/079385 patent/WO2015176659A1/en active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030061278A1 (en) * | 2001-09-27 | 2003-03-27 | International Business Machines Corporation | Addressing the name space mismatch between content servers and content caching systems |
US20090138808A1 (en) * | 2003-09-05 | 2009-05-28 | Groove Networks, Inc. | Method and apparatus for providing attributes of a collaboration system in an operating system folder-based file system |
US20080010585A1 (en) * | 2003-09-26 | 2008-01-10 | Fuji Xerox Co., Ltd. | Binding interactive multichannel digital document system and authoring tool |
US20090049108A1 (en) * | 2007-07-17 | 2009-02-19 | Gridiron Software Inc. | Method and apparatus for workflow versioning |
US20090222453A1 (en) * | 2008-02-29 | 2009-09-03 | International Business Machines Corporation | Prefetching remote files on local disk space |
US20110066676A1 (en) * | 2009-09-14 | 2011-03-17 | Vadim Kleyzit | Method and system for reducing web page download time |
US20120317239A1 (en) * | 2011-06-08 | 2012-12-13 | Workshare Ltd. | Method and system for collaborative editing of a remotely stored document |
CN102541985A (zh) * | 2011-10-25 | 2012-07-04 | 曙光信息产业(北京)有限公司 | 一种分布式文件系统中客户端目录缓存的组织方法 |
US20140053057A1 (en) * | 2012-08-16 | 2014-02-20 | Qualcomm Incorporated | Speculative resource prefetching via sandboxed execution |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112866356A (zh) * | 2021-01-04 | 2021-05-28 | 成都知道创宇信息技术有限公司 | Cdn缓存方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
US20150341460A1 (en) | 2015-11-26 |
WO2015176659A1 (en) | 2015-11-26 |
EP3134833A4 (en) | 2017-04-19 |
EP3134833A1 (en) | 2017-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100525288C (zh) | 网络中大有效负载分布的方法和装置 | |
US10242100B2 (en) | Managing cached data in a network environment | |
CN103365865B (zh) | 数据存储方法、数据下载方法及其装置 | |
US7058720B1 (en) | Geographical client distribution methods, systems and computer program products | |
KR100719285B1 (ko) | 웹 스토리지의 분산 파일관리시스템 및 파일관리방법 | |
US8260820B2 (en) | Method and apparatus for searching | |
CN103733568B (zh) | 一种使用流处理对请求进行响应的方法和系统 | |
CN103248645B (zh) | Bt离线数据下载系统及方法 | |
US20040044731A1 (en) | System and method for optimizing internet applications | |
US20120072465A1 (en) | Dynamic schema-based api mapping for traversing inter-cloud application boundaries | |
US20040249965A1 (en) | Node caching system for streaming media applications | |
CN109040252A (zh) | 文件传输方法、系统、计算机设备和存储介质 | |
CN105472045A (zh) | 数据库迁移的方法和装置 | |
CN108710681A (zh) | 文件获取方法、装置、设备及存储介质 | |
CN103179148A (zh) | 一种在互联网中分享附件的处理方法和系统 | |
KR20100067976A (ko) | 분산 저장된 컨텐츠 파일의 동기화 방법 | |
CN104794190A (zh) | 一种大数据有效存储的方法和装置 | |
US9292703B2 (en) | Electronic document management method | |
CN106254528A (zh) | 一种资源下载方法和缓存设备 | |
CN103327036B (zh) | 互联网浏览设备的标识方法以及Cookie服务器 | |
CN106294842A (zh) | 一种数据交互方法、平台及分布式文件系统 | |
CN106462610A (zh) | 一种预获取系统和方法 | |
CN107291826A (zh) | 文件搜索处理方法及装置 | |
US20120331381A1 (en) | Systems and Methods for Communicating Information | |
CN107357922A (zh) | 一种分布式文件系统的nfs访问审计方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170222 |
|
WD01 | Invention patent application deemed withdrawn after publication |