CN113474763A - 增强型的文件共享***和方法 - Google Patents

增强型的文件共享***和方法 Download PDF

Info

Publication number
CN113474763A
CN113474763A CN202080016345.XA CN202080016345A CN113474763A CN 113474763 A CN113474763 A CN 113474763A CN 202080016345 A CN202080016345 A CN 202080016345A CN 113474763 A CN113474763 A CN 113474763A
Authority
CN
China
Prior art keywords
file
geographic location
user
bandwidth
identifying
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
Application number
CN202080016345.XA
Other languages
English (en)
Inventor
P·R·达纳巴兰
A·N·阿特鲁尔
N·阿奇尤斯
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.)
Citrix Systems Inc
Original Assignee
Citrix Systems Inc
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 Citrix Systems Inc filed Critical Citrix Systems Inc
Publication of CN113474763A publication Critical patent/CN113474763A/zh
Pending legal-status Critical Current

Links

Images

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/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5681Pre-fetching or pre-delivering data based on network characteristics
    • 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/182Distributed file systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

提供了一种计算机***。计算机***可以包括存储器、网络接口以及耦合至所述存储器和所述网络接口的至少一个处理器。至少一个处理器可以被配置为:识别要提供给计算设备的文件;预测所述计算设备要请求访问所述文件的地理位置;预测所述计算设备在所述地理位置处可用的网络带宽;基于所述文件和所述网络带宽,确定要存储在所述计算设备的高速缓存中的所述文件的第一部分;以及经由所述网络接口将所述文件的所述第一部分下载到所述高速缓存中。

Description

增强型的文件共享***和方法
相关申请
本申请要求享受于2019年4月5日递交的标题为“ENHANCED FILE SHARINGSYSTEMS AND METHODS”、序列号为16/376,026的美国非临时申请的优先权,通过引用的方式将上述申请的完整内容并入本文。
背景技术
分布式文件共享***使用户能够出于各种目的在不同位置访问文件。大多数文件共享***实现了这样的用户接口:其允许用户将文件上传到中央存储库并在用户自己的设备之间和/或与其他用户共享这些文件。可以在中央存储库之内查看、签出(check-out)、编辑或以其他方式访问共享文件。所共享的文件的副本也可以从中央存储库下载到一个或多个客户端设备上的本地存储库。为了使存储在本地存储库中的文件副本与存储在中央存储库中的文件副本保持同步,一些分布式文件共享***(例如Citrix
Figure BDA0003226767690000011
文件共享***)实现了自动同步特征。一旦被正确配置,这些特征会在本地存储库内自动维护存储在中央存储库中的文件副本。
发明内容
在一些示例中,提供了一种计算机***。在这些示例中,计算机***可以包括下列特征中的一个或多个。计算机***可以包括存储器、网络接口以及耦合至所述存储器和所述网络接口的至少一个处理器。至少一个处理器可以被配置为:识别要提供给计算设备的文件;预测所述计算设备要请求访问所述文件的地理位置;预测所述计算设备在所述地理位置处可用的网络带宽;基于所述文件和所述网络带宽,确定要存储在所述计算设备的高速缓存中的所述文件的第一部分;以及经由所述网络接口将所述文件的所述第一部分下载到所述高速缓存中。
在所述计算机***中,所述至少一个处理器还可以被配置为:接收所述文件;接收用于与用户共享所述文件的请求;以及识别所述用户与所述计算设备之间的关联,其中,所述至少一个处理器被配置为:响应于接收到所述文件和/或接收到用于共享所述文件的所述请求来识别要提供给所述计算设备的所述文件。所述至少一个处理器可以被配置为:通过在来自带宽预测过程的输出内识别网络带宽来预测所述网络带宽。所述带宽预测过程可以包括:使用代表网络带宽的历史数据训练的机器学习过程,从代表网络带宽的历史数据推导出的概率分布函数,访问将地理位置与网络带宽相关联的交叉引用的识别过程。代表网络带宽的所述历史数据可以被过滤以包括特定于所述用户和/或所述用户的对等体的数据。
在所述计算机***中,所述至少一个处理器可以被配置为:通过在来自地理位置预测过程的输出内识别所述地理位置来预测所述地理位置。所述地理位置预测过程可以包括:使用代表文件访问的历史数据训练的机器学习过程,从代表文件访问的历史数据推导出的概率分布函数,和/或用与所述计算设备相关联的用户的时间表来识别所述地理位置的互操作。代表文件访问的所述历史数据可以被过滤以包括特定于所述用户、所述用户的对等体和/或与所述文件相关的文件的数据。
在所述计算机***中,所述至少一个处理器可以被配置为:通过被配置为进行以下操作来确定要存储在所述高速缓存中的所述文件的所述第一部分:识别用于访问所述文件的应用的处理速率;确定在以所述处理速率处理所述文件的所述第一部分所需的时间段内可以下载到具有所述网络带宽的所述地理位置的所述文件的第二部分;以及将所述文件的所述第一部分标识为所述文件的除所述文件的所述第二部分之外的部分。所述文件可以是视频文件。
所述计算机***还可以包括与所述用户相关联的所述计算设备。所述计算设备可以包括一个或多个处理器。所述一个或多个处理器可以被配置为:接收消息以下载所述文件的所述第一部分;确定所述高速缓存中可用的未分配存储的量;确定所述未分配存储的量是否足以存储所述文件的所述第一部分;响应于确定所述未分配存储的量不足以存储所述文件的所述第一部分,识别存储在所述高速缓存中的数据,所述数据的大小结合所述未分配存储的量足以存储所述文件的所述第一部分;以及从所述高速缓存中删除所述数据。所述一个或多个处理器可以被配置为:至少部分地通过识别先前访问的文件的数据来识别存储在所述高速缓存中的所述数据。
在一些示例中,提供了一种管理高速缓存的数据的方法。在这些示例中,所述方法可以包括以下动作中的一个或多个。所述方法可以包括下列动作:在第一计算设备处接收文件;接收用于与用户共享所述文件的请求;识别所述用户与第二计算设备之间的关联;预测所述第二计算设备将请求访问所述文件的地理位置;预测所述第二计算设备在所述地理位置处可用的网络带宽;基于所述文件和所述网络带宽,确定要存储在所述第二计算设备的高速缓存中的所述文件的第一部分;以及将所述文件的所述第一部分下载到所述高速缓存中。
在所述方法中,预测所述网络带宽的所述动作可以包括:在来自带宽预测过程的输出内识别所述网络带宽的动作。识别所述带宽的所述动作可以包括:执行使用代表网络带宽的历史数据训练的机器学习过程,评估从代表网络带宽的历史数据推导出的概率分布函数,和/或在将地理位置与网络带宽相关联的交叉引用内识别所述网络带宽。预测所述地理位置的所述动作可以包括:在来自地理位置预测过程的输出内识别所述地理位置。在所述输出内识别所述地理位置的所述动作可以包括:执行使用代表文件访问的历史数据训练的机器学习过程,评估从代表文件访问的历史数据推导出的概率分布函数,和/或在所述用户的时间表内识别所述地理位置。执行所述机器学习过程的所述动作可以包括:执行使用历史数据训练的机器学习过程的动作,所述历史数据代表由与所述用户和/或所述用户的对等体相关联的设备发起的文件访问。确定要存储在所述高速缓存中的所述文件的所述第一部分的所述动作可以包括下列动作:识别用于访问所述文件的应用的处理速率;确定在以所述处理速率处理所述文件的所述第一部分所需的时间段内可以下载到具有所述网络带宽的所述地理位置的所述文件的第二部分;以及将所述文件的所述第一部分标识为所述文件的除所述文件的所述第二部分之外的部分。所述接收文件的动作可以包括接收视频文件的动作。
下面详细讨论其他方面、示例以及这些方面和示例的优点。此外,应当理解,前述信息和以下具体实施方式都仅仅是各个方面和特征的说明性示例,并且旨在提供用于理解所要求保护的方面和示例的性质和特征的概述或框架。本文中公开的任何示例或特征可以与任何其他示例或特征进行组合。对不同示例的引用不一定是相互排斥的,并且旨在指示结合示例描述的特定特征、结构或特性可以包括在至少一个示例中。因此,当提及本文描述的示例时,诸如“其他”和“另一”之类的术语并不旨在传达特征的任何种类的排他性或成组,而是被包括以提高可读性。
附图说明
下面参考不意在按比例绘制的附图来讨论至少一个示例的各个方面。附图被包括以提供对各个方面的说明和进一步理解,并且被并入并构成本说明书的一部分,但附图不意在作为任何特定示例的限制的定义。附图与说明书的其余部分一起用于解释所描述和要求保护的方面的原理和操作。在图中,各个图中所示的每个相同或几乎相同的组件由相同的附图标记表示。为清楚起见,可能未在每个图中标出每个组件。
图1是根据本公开内容的示例的、具有预测性高速缓存的增强型文件共享***的框图。
图2是在其中可以实现本公开内容的各个方面的计算设备的网络环境的框图。
图3是根据本公开内容的示例的、可以实现图2的计算设备中的一个或多个的计算设备的框图。
图4是根据本公开内容的示例的、由计算设备的特定配置实现的图1的文件共享***的框图。
图5是根据本公开内容的示例的预测性高速缓存过程的流程图。
图6是根据本公开内容的示例的训练过程的流程图。
图7是示出根据本公开内容的示例的预测过程的流程图。
具体实施方式
如上所述,本文描述的各种示例涉及用于增强型文件共享***中的预测性高速缓存***和方法。这些***和方法克服了在其他文件共享***中出现的技术困难,例如客户端设备的本地存储库没有足够的可用存储空间来存储自动同步的文件的完整副本。在这些情况下,文件共享***无法在本地存储库中存储至少一些文件的完整副本。
为了解决这个问题,一些文件共享***会在本地存储库中创建一个或多个“幻影文件(ghost file)”或部分高速缓存的文件。从操作***的角度来看,文件的这些缩略版本是完整的文件,但仅包含存储在文件共享***的中央存储库中的文件的一些数据或不包含其中的数据。当访问缩略版本时,文件共享***下载剩余的数据,从而创建文件的完整本地副本。然而,在没有足够的网络带宽可用于以及时的方式来完成下载的情况下,下载剩余的数据会导致不希望的延迟并使用户感到沮丧。
因此,并且根据本文公开的至少一些示例,提供了增强型文件共享***和方法。这些***和方法通过管理在访问文件时由用户感知到的延时来保持用户体验的质量。在一些示例中,增强型文件共享***预测用户将访问文件的地理位置(geographic location)(即,地理位置(geolocation))。在这些示例中,增强型文件共享***还预测可用于在预测的地理位置处下载文件的带宽。基于文件的这些预测和特性,增强型文件共享***在文件的缩略版本内存储足够的数据以允许应用在可接受的延时时段内处理文件。在一些示例中,可接受的延时时段无论怎样可以是没有延时。然而,在其他示例中,可接受的延时时段可以是1秒或最多几秒。
在某些示例中,增强型文件共享***参考用户和/或用户的一组对等体的历史文件访问模式来预测文件访问的地理位置和/或带宽。例如,在一些示例中,增强型文件共享***针对被访问的文件的每个实例记录被访问的文件的标识符、访问该文件的用户的标识符、访问该文件的客户端设备的标识符、访问的地理位置标识符,以及可用于将文件从中央数据存储下载到客户端设备上的本地高速缓存的平均带宽的标识符。这些记录可用于使用各种方式来预测未来文件访问的地理位置和/或带宽。
例如,在一些示例中,增强型文件共享***周期性地计算由对等组下载文件使用的平均带宽,并在增强型文件共享***维护的配置数据内记录平均带宽作为与文件相关联的预测的带宽。在其他示例中,增强型文件共享***周期性地计算由对等组下载文件所在的每个地理位置的平均带宽,并单独标识对等组访问文件的最频繁的地理位置。在这些示例中,增强型文件共享***将最频繁地理位置处的平均带宽记录为与文件相关联的预测的带宽。在其他示例中,增强型文件共享***包括人工神经网络,其被训练以预测在一个或多个地理位置处可用的带宽。在这些示例中,增强型文件共享***识别用户访问一文件的最频繁的地理位置,该文件具有或包含与文件相同名称和/或驻留在与文件相同的目录中,并提供最频繁的地理位置作为到人工神经网络的输入。在这些示例中,增强型文件共享***将由人工神经网络输出的带宽记录为与文件相关联的预测的带宽。在其他示例中,可以训练其他机器学***均带宽的标识符。鉴于本公开内容将理解,可以在本文公开的增强型文件共享***内实现用于预测的带宽和/或地理位置的大量其他方式(例如,回归、移动平均、指数平滑等)。
在一些示例中,增强型文件共享***使用预测的带宽和文件的特性来识别文件内起始点和终点之间的焦点,使得应用处理起始点和焦点之间的数据所需的时间等于下载焦点和终点之间的数据所需的时间。一旦给定文件的焦点被识别,增强型文件共享***就可以将包括起始点和焦点之间的数据的文件的缩略版本下载到与用户相关联的客户端设备中的本地高速缓存。
在某些示例中,针对给定文件的焦点位置不仅取决于可用于下载文件的预测的带宽,还取决于存储在文件中的数据的类型和数量。例如,某些类型的文件包含可由应用处理的数据部分(例如,视频和/或音频数据),而文件的其他部分则被下载。对于这些类型的文件,与应用需要文件的完整副本来启动处理的文件类型相比,增强型文件共享***可以识别更靠近文件起始点的焦点。
在一些示例中,增强型文件共享***周期性地或响应于事件重新组织本地高速缓存以增强其操作。例如,该事件可以是在增强型文件共享***的***存储和客户端设备的本地高速缓存之间自动同步新文件的尝试。在一些示例中,增强型文件共享***删除或覆盖存储在本地高速缓存中的文件,其中本地高速缓存的大小甚至不足以存储以自动同步为目标的文件的适当大小的缩略版本。在一些示例中,增强型文件共享***将本地高速缓存维护为先进先出队列,其中首先存储的文件也首先被删除。在其他示例中,增强型文件共享***使用访问的新近度和/或频率来对保留进行优先级排序,其中,近期和/或经常访问的文件优先于较不近期和/或不经常常访问的文件被保留。在其他示例中,增强型文件共享***使用预测的带宽来对保留进行优先级排序,其中,与较低带宽相关联的文件优先于与较高带宽相关联的文件。根据本公开内容将理解,可以在本文公开的增强型文件共享***内实现用于对文件保留进行优先级排序的多种其他方法。
本文中讨论的方法和***的示例不限于在以下描述中阐述或在附图中示出的构造和部件布置的细节的应用。这些方法和***能够在其他示例中实现并且能够以各种方式被实施或执行。本文中提供的具体实现的示例仅用于说明目的,并不意在为限制性的。具体而言,结合任何一个或多个示例讨论的动作、组件、元素和特征不意在被排除在任何其他示例中的类似作用之外。
此外,本文中使用的措辞和术语是为了描述的目的,不应被视为限制性的。对本文中以单数形式提及的***和方法的示例、组件、元素或动作的任何引用也可以涵盖包括复数的示例,并且本文中对任何示例、组件、元素或动作的任何复数引用也可以涵盖仅包括单数的示例。单数或复数形式的引用并意在在限制当前公开的***或方法,它们的组件、动作或元素。“包括(including)”、“包括有(comprising)”、“具有”、“包含”、“涉及”及其变体在本文中的使用意在涵盖其后列出的项目及其等价物以及附加项目。对“或”的引用可以被解释为包含性的,因此使用“或”描述的任何术语可以表示单个、多于一个以及所有所描述的术语中的任何一项。此外,倘若在本文档与通过引用并入本文中的那些文档之间存在术语用法不一致的情况,则并入的引用中的术语用法是本文档的术语用法的补充,对于不可调和的不一致情况来说,本文档中的术语用法是控制性的。
增强型文件共享***
在一些示例中,增强型文件共享***被配置为:实现预测性文件高速缓存以管理用户在访问以自动同步为目标的文件时感知到的任何延时。图1示出了根据一些示例的增强型文件共享***100的逻辑架构。如图所示,***100包括文件共享服务102、文件共享代理104、文件存储服务120、集中式文件存储106、配置数据存储库122、历史数据存储库108以及本地高速缓存118。共享服务102包括高速缓存服务110。高速缓存服务110包括地理位置预测器112、带宽预测器114以及高速缓存优化器116。图1中还描绘了活动目录服务126和日历服务124。
在一些示例中,共享服务102被配置为实现一组企业文件共享特征。这组特征可以包括与文件相关的特征(例如,文件上传、文件存储、文件下载、文件共享、文件同步等)、安全功能(例如,加密、用户认证、设备认证等),以及分析特征(例如,跟踪***100的使用、计算并提供描述使用情况的度量,等等)。如图1所示,共享服务102被配置为:通过执行各种过程来实现该特征集,过程包括涉及与代理104、存储服务120和历史数据存储库108通信的过程。
在一些示例中,共享服务102被配置为:通过经由一个或多个***接口(例如,web服务应用程序接口(API)、web服务器接口、光纤信道接口等)交换(即,发送和/或接收)消息来与代理104、存储服务120以及历史数据存储库108通信。例如,在一些示例中,共享服务102内包括的一个或多个服务器过程经由***接口与各种类型的客户端过程交换消息。这些客户端进程可以包括浏览器和/或更专业的程序——例如代理104。
在某些示例中,在共享服务102与客户端进程之间交换的消息可以包括针对上传、下载、共享和/或同步文件的授权的请求。消息还可以包括用于对用户或设备进行认证的请求和/或用于对由共享服务102所支持的特征进行配置的请求。
在这些示例中,共享服务102被配置为:通过与存储服务120通信以经由一组规则来确定请求中标识的操作是否是允许的来响应对授权请求的接收。此外,在这些示例中,共享服务102被配置为:经由响应向客户端进程(例如,代理104)通知所请求的操作的允许性。此外,共享服务102被配置为:维护历史数据存储库108,其中共享服务102从存储服务120接收授权操作被成功执行的消息。历史数据存储库108被配置为:存储由涉及***100的文件访问的每个实例的记录组成的使用数据。存储在历史数据存储库108中的记录可以包括被访问的文件的标识符、访问文件的用户的标识符、访问文件的客户端设备的标识符、访问的地理位置的标识符,以及可用于下载文件的平均带宽的标识符。在一些示例中,地理位置的标识符可以包括全球定位***坐标和/或网络信息(例如,连接的网络转发设备的互联网协议地址)或由其改进。
在一些示例中,共享服务102被配置为:通过与认证服务(例如,图1的活动目录服务126)通信经由一组规则来确定在认证请求中标识的实体(例如,用户或设备)是否被授权访问***100,而响应对认证请求的接收。此外,在这些示例中,共享服务102被配置为:经由响应消息来通知客户端进程该实体是否被授权访问***100。
在一些示例中,共享服务102被配置为:通过经由一组规则确定是否更改是可允许的来响应对用于更改其配置的请求的接收。此外,在这些示例中,共享服务102被配置为:在更改可允许的情况下执行更改,并经由响应向客户端进程通知所请求的更改的允许性和结果。在至少一个示例中,共享服务102被配置为:通过将配置数据存储库在配置数据存储库122中来执行配置更改。例如,该配置数据可以将特征(例如,自动同步特征)与用户、文件和文件目录相关联。
在一些示例中,存储服务120被配置为管理文件存储106。文件存储106被配置为:存储由***100服务的文件。在一些示例中,存储服务120被配置为:实现和公开***接口(API),***100的其他组件通过该接口访问文件存储106和描述存储在其中的文件的数据。例如,在存储服务120接收到用于执行授权的、文件相关的操作的请求的情况下,存储服务120通过处理该请求并向请求者和文件共享服务102通知操作结果来响应对该请求的接收。此外,在一些示例中,存储服务120被配置为:对经由***接口接收的请求和响应进行负载平衡。在下文参考图5阐述了在一些示例中关于由存储服务120执行的过程的更多细节。
在一些示例中,代理104是被配置为在客户端设备上执行的专用客户端程序。代理104管理本地高速缓存118。如图1所示,代理104被配置为:与共享服务102互操作以实现上述文件相关的和安全特征。在这些示例中,代理104经由上述***接口与共享服务102交换消息。消息可以包括针对对如上所述的授权、认证和/或配置的请求。例如,可以通过用户和由代理104提供的用户接口之间的交互来生成这样的消息。
在一些示例中,代理104被配置为接收和处理对授权请求的响应。例如,这些响应可以授权代理104执行文件相关的操作,例如上传、下载、共享和/或同步。响应于接收和处理授权响应,代理104可以与存储服务120交换消息以执行授权的文件相关的操作。例如,在代理104接收到授权下载文件的响应的情况下,代理104可以与存储服务120交换消息以请求和接收存储在文件存储106中的文件。相反,在代理104接收到授权上传文件的响应的情况下,代理104可以与存储服务120交换消息以将文件发送到文件存储106。
在其中共享服务102支持自动同步特征的至少一个示例中,代理104与共享服务102交换消息以将共享服务102配置为对与特定用户共享的目标文件进行自动同步。当执行自动同步特征时,共享服务102、代理104以及文件存储106彼此互操作以在高速缓存118内自动维护以自动同步为目标的任何文件的副本。在一些示例中,共享服务102利用高速缓存服务110来实现高速缓存118内的预测性高速缓存。在这些示例中,共享服务102通过向高速缓存服务110传送请求来调用预测性高速缓存。该请求可以包括目标文件或目录的标识符以及与与其共享目标文件或目录的用户的标识符。
如图1所示,高速缓存服务110包括地理位置预测器112、带宽预测器114以及优化器116。在一些示例中,这些组件互操作以识别目标文件的最佳部分来存储在与所识别的用户相关联的一个或多个客户端设备上。在这些示例中,高速缓存服务110被配置为:从共享服务102接收请求以执行预测性高速缓存。响应于对这些请求的接收,高速缓存服务110编排地理位置预测器112、带宽预测器114以及高速缓存优化器116的操作以确定最佳部分。此外,响应于针对预测性高速缓存的请求,高速缓存服务110被配置为:与存储服务120和代理104互操作以协调对最佳部分的下载。
在一些示例中,地理位置预测器112被配置为:识别用户最有可能访问目标文件的预测地理位置。例如,地理位置预测器112可以被配置为:接收、处理和响应由高速缓存服务110生成的请求。这些请求可以包括用户(和/或与用户相关联的客户端设备)的标识符以及目标文件的标识符。地理位置预测器112可以被配置为:响应于这些请求来执行预测过程以预测用户最有可能经由相关联的客户端设备访问目标文件的地理位置。由地理位置预测器112提供的响应可以包括预测的地理位置的标识符。在下文参考图5阐述了在一些示例中关于由地理位置预测器112执行的预测过程的更多细节。
在一些示例中,带宽预测器114被配置为:识别在预测的地理位置处可用于下载目标文件的带宽量。例如,带宽预测器114可以被配置为:接收、处理和响应由高速缓存服务110生成的请求。这些请求可以包括预测的地理位置的标识符。带宽预测器114可以被配置为:响应于这些请求来执行预测过程。由带宽预测器114提供的响应可以包括预测的带宽的量。在下文参考图5阐述了在一些示例中关于由带宽预测器114执行的预测过程的更多细节。
地理位置预测器112和带宽预测器114二者都被配置为执行一个或多个预测过程。由预测器112和114执行的预测过程的细节因示例而异。此外,在不脱离本公开内容的范围的情况下,任何合适的预测和/或预报技术可以由预测器112和114中的任一个执行。如图1所示,地理位置预测器112和带宽预测器114是分开的过程。然而,***100的示例不限于该架构。例如,在一些示例中,地理位置预测器112和带宽预测器114是统一预测组件,其分别使用由地理位置预测器112和带宽预测器114使用的一些或全部数据来预测可用于下载目标文件的带宽。此外,图1仅示出了一个代理104,但是***100的示例不限于任何特定数量的代理。
在一些示例中,优化器116被配置为:确定要下载并存储在高速缓存118中的文件的一部分,以便将用户在访问文件时所经历的任何延时减少到可接受的量。例如,优化器116可以被配置为接收、处理和响应由高速缓存服务110生成的请求。这些请求可以包括预测的带宽、文件的标识符、用户的标识符和/或与用户相关联的客户端设备的标识符。优化器116可以被配置为:响应于这些请求而执行优化过程。由优化器116向高速缓存服务110提供的响应可以包括具有指示优化过程的结果的数据的消息。在下文参考图5阐述了在一些示例中关于由优化器116执行的优化过程的更多细节。
参考图2,可以在其中实现本公开内容的各个方面的非限制性网络环境201包括一个或多个客户端机器202A-202N、一个或多个远程机器206A-206N、一个或多个网络204、204',以及安装在计算环境201内的一个或多个设备208。客户端机器202A-202N经由网络204、204'与远程机器206A-206N通信。计算环境201也可以被称为分布式计算机***。
在一些示例中,客户端机器202A-202N经由中间设备208与远程机器206A-206N通信。图示设备208位于网络204、204'之间,并且也可以被称为网络接口或网关。在一些示例中,设备208可以用作应用交付控制器(ADC),以向客户端提供对部署在数据中心、云中,或跨多种客户端设备作为软件即服务(SaaS)交付的业务应用和其他数据的访问,和/或提供其他功能,例如负载平衡等。在一些示例中,可以使用多个设备208,并且可以将设备208部署为网络204和/或204'的一部分。
客户端机器202A-202N通常可以被称为客户端机器202、本地机器202、客户端202、客户端节点202、客户端计算机202、客户端设备202、计算设备202、端点202或端点节点202。远程机器206A-206N通常可以被称为服务器206或服务器场206。在一些示例中,客户端设备202可以具有充当寻求对服务器206提供的资源的访问的客户端节点以及充当提供对其他客户端设备202A-202N的托管资源的访问的服务器206的能力。网络204、204'通常可以被称为网络204。可以在有线网络和无线网络的任何组合中配置网络204。
服务器206可以是任何服务器类型,例如:文件服务器、应用服务器、网络服务器、代理服务器、电器、网络设备、网关、应用网关、网关服务器、虚拟化服务器、部署服务器、安全套接层虚拟专用网(SSL VPN)服务器、防火墙、网络服务器、服务器执行活动目录、云服务器,或者执行应用加速程序的服务器,该程序提供防火墙功能、应用功能或负载平衡功能。
服务器206可以执行、操作或以其他方式提供可以是以下任意一项的应用:软件、程序、可执行指令、虚拟机、管理程序、网络浏览器、基于网络的客户端、客户服务器应用、精简客户端计算客户端、ActiveX控件、Java小程序、与互联网协议语音(VoIP)通信相关的软件(例如软互联网协议电话)、用于流式传输视频和/或音频的应用、用于促进实时数据通信的应用、超文本传输协议客户端、文件传输协议客户端、Oscar客户、Telnet客户端;或任何其他可执行指令集。
在一些示例中,服务器206可以执行使用精简客户端或远程显示协议的远程呈现服务程序或其他程序,以捕捉由在服务器206上执行的应用生成的显示输出,并将该应用显示输出发送到客户端设备202。
在其他示例例中,服务器206可以执行向客户端设备202的用户提供对计算环境的访问的虚拟机。客户端设备202可以是虚拟机。可以通过例如管理程序、虚拟机管理器(VMM)或服务器206内的任何其他硬件虚拟化技术来管理虚拟机。
在一些示例中,网络204可以是:局域网(LAN)、城域网(MAN)、广域网(WAN)、主要公共网络204、主专用网络204。附加的示例可以包括使用各种协议在移动设备之间进行通信的移动电话网的网络204。对于无线局域网(WLAN)内的短距离通信,协议可以包括802.11、蓝牙和近场通信(NFC)。
图3描绘了可用于实施客户端设备202、设备208和/或服务器206的示例的计算设备301的框图。计算设备301包括一个或多个处理器303、易失性存储器322(例如,随机存取存储器(RAM))、非易失性存储器328、用户接口(UI)323、一个或多个通信接口318以及通信总线350。计算设备301中的一个或多个也可以被称为计算机***。
非易失性存储器328可以包括:一个或多个硬盘驱动器(HDD)或其他磁性或光学存储介质;一个或多个固态驱动器(SSD),例如闪存驱动器或其他固态存储介质;一个或多个混合磁驱动器和固态驱动器;和/或一个或多个虚拟存储卷(例如云存储),或者此类物理存储卷和虚拟存储卷或其阵列的组合。
用户接口323可以包括图形用户接口(GUI)324(例如,触摸屏、显示器等)和一个或多个输入/输出(I/O)设备326(例如,鼠标、键盘、麦克风、一个或多个扬声器、一个或多个照相机、一个或多个生物特征扫描仪、一个或多个环境传感器以及一个或多个加速度计等)。
非易失性存储器328存储操作***315、一个或多个应用316以及数据317,从而例如,操作***315和/或应用316的计算机指令由处理器303在易失性存储器322外执行。在一些示例中,易失性存储器322可以包括可以提供比主存储器更快的响应时间的一种或多种类型的RAM和/或高速缓存存储器。可以使用GUI 324的输入设备来输入数据,或者可以从I/O设备326接收数据。计算机设备301的各种元件可以经由通信总线350进行通信。
图示的计算设备301仅被示为示例客户端设备或服务器并且可以由具有任何类型的机器或机器集合的任何计算或处理环境来实现,这些机器或机器集合可以具有能够如本文所述进行操作的合适的硬件和/或软件。
处理器303可以由一个或多个可编程处理器来实现以执行一个或多个可执行指令(例如计算机程序)以执行***的功能。如本文所使用的,术语“处理器”描述了执行功能、操作或操作序列的电路。功能、操作或操作序列可以被硬编码到电路中,或者可以通过保持在存储器设备中并由电路执行的指令被软编码。处理器可以使用数字值和/或使用模拟信号来执行功能、操作或操作序列。
在一些示例中,处理器可以体现在一个或多个专用集成电路(ASIC)、微处理器、数字信号处理器(DSP)、图形处理单元(GPU)、微控制器、现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、多核处理器或具有关联存储器的通用计算机中。
处理器303可以是模拟、数字或混合的。在一些示例中,处理器303可以是一个或多个物理处理器,或者一个或多个虚拟(例如,远程定位或云)处理器。包括多个处理器核和/或多个处理器的处理器可以提供用于指令的并行、同时执行或用于一个指令在一条以上的数据上的并行、同时执行的功能。
通信接口318可以包括一个或多个接口,以使计算设备301能够通过各种有线和/或无线连接(包括蜂窝连接)访问诸如局域网(LAN)、广域网(WAN)、个域网(PAN)或互联网的计算机网络。
在所描述的示例中,计算设备301可以代表客户端设备的用户来执行应用。例如,计算设备301可以执行由管理程序管理的一个或多个虚拟机。每个虚拟机可以提供执行会话,在该执行会话中,应用代表用户或客户端设备执行,例如托管的桌面会话。计算设备301还可以执行终端服务会话以提供托管的桌面环境。计算设备301可以提供对远程计算环境的访问,远程计算环境包括一个或多个应用、一个或多个桌面应用以及可以在可以执行一个或多个应用的一个或多个桌面会话。
可在编号为9,176,744和9,538,345的美国专利中找到对被配置为客户端设备202或服务器206或者客户端设备202和服务器206的中间设备的计算设备301的其他描述及其操作,通过引用的方式将上述两个美国专利的完整内容并入本文。'744和'345专利二者都被转让给了本公开内容的当前受让人。
图4示出了被配置用于在分布式计算平台(例如图2的网络环境201)内操作的增强型文件共享***(例如,图1的***100)。如图4所示,配置400包括服务器计算机402、服务器计算机404以及客户端设备406。在配置400内,计算设备402、404和406彼此通信耦合并经由网络(例如,图2的网络204和204')交换数据。
如图4所示,服务器402托管存储服务120和文件存储106。服务器404托管共享服务102和历史数据存储库108。客户端设备406托管维护高速缓存118的代理104。上文参考图1描述了图4中所示的许多组件。为简洁起见,此处不再重复这些描述,但图4中包括的图1的每个组件在图4中的结构和功能如图1中所述。
配置400只是可用于实现***100的许多潜在配置中的一个示例。例如,在一些示例中,服务器404托管文件共享服务102、历史数据存储库108、存储服务120、配置数据存储库122以及文件存储106。然而,在其他示例中,不同于服务器402和404的服务器托管历史数据存储库108,而又一个不同的服务器托管带宽预测器114。因此,本文中公开的示例不限于配置400并且其他配置被认为落入本公开内容的范围之内。
增强型文件共享过程
如上所述,图1的***100的一些示例被配置为:执行增强型文件共享和预测性高速缓存过程。图5示出了在一些示例中由***100执行的预测性高速缓存过程500的一个示例。过程500可以响应于事件(包括例如周期性定时器的期满和/或由用户接口生成的自组织请求的接收)而被执行。在一些示例中,可以响应于接收到以自动同步为目标的目录内的文件,响应于接收到用于共享这样的文件的请求,和/或响应于接收到以文件和/或目录为目标以进行自动同步的配置请求,来生成自组织请求。
过程500开始于共享服务(例如,图1的共享服务102)识别502以自动同步为目标的一组文件。在一些示例中,共享服务通过针对文件和/或目录之间的关联以及自动同步特征的标识符搜索配置数据存储库(例如,图1的配置数据存储库122)来识别502以自动同步为目标的文件。响应于找到这样的关联,共享服务将相关联的文件和/或目录内的文件作为目标以进行自动同步。
继续过程500,共享服务选择504下一个目标文件。共享服务识别506(例如,在配置数据存储库内)已启用目标文件的自动同步的一组用户。共享服务选择508下一用户并识别(例如,在配置数据内)所选择的用户与一个或多个客户端设备之间的一个或多个关联。为了向所选择的用户提供在客户端设备上对目标文件的预测性高速缓存,共享服务执行510高速缓存服务(例如,图1的高速缓存服务110)。
高速缓存服务预测512所选择的用户最有可能访问所选择的文件的地理位置。在一些示例中,高速缓存服务执行地理位置预测器(例如,图1的地理位置预测器112)以预测512地理位置。在这些示例中,地理位置预测器接收、处理和响应由高速缓存服务生成的请求,以识别所选择的用户最有可能访问目标文件的预测的地理位置。这些请求可以包括由共享服务从代理(例如,图1的代理104)接收的目标文件的标识符以及所选择的用户的标识符。响应于接收到请求,地理位置预测器解析请求并执行预测过程。预测过程接收所选择的用户和目标文件的标识符作为输入,并输出预测所选择的用户要访问目标文件的地理位置。预测过程可以被配置为执行多种预测/预报方法中的任一种来识别预测的地理位置。预测过程的计算复杂性和准确性因示例而异。
例如,在一些示例中,预测过程简单地识别所选择的用户最频繁访问目标文件的地理位置,并将该地理位置记录为预测地理位置。当执行该计算时,预测过程可以过滤历史使用数据以包括仅涉及用户、用户的对等体和/或与目标文件相关的文件的数据。在其他示例中,预测过程通过与日历服务(例如,图1的日历服务124)互操作来识别用户已安排预约的地理位置,并将该地理位置记录为预测的地理位置。在其他示例中,预测过程识别包括所选择的用户在内的对等组的任何成员最频繁访问目标文件所在的地理位置,并将该地理位置记录为预测的地理位置。在这些示例中,预测过程通过与活动目录服务(例如,图1的活动目录服务126)互操作来识别对等组。
在其中文件具有很少使用历史或没有使用历史的其他示例中,预测过程识别这样的地理位置:在此处,所选择的用户或对等组的成员最频繁访问在文件存储(例如,图1的文件存储106)中与目标文件驻留在同一目录中的文件。在其中目标文件具有很少使用历史或没有使用历史的其他示例中,预测过程识别这样的地理位置:在此处,所选择的用户或对等组的成员最频繁访问具有或包括与目标文件相同的名称的文件。在其中目标文件具有很少使用历史或没有使用历史的其他示例中,预测过程识别这样的地理位置:在此处,所选择的用户或对等组的成员最频繁访问与目标文件相同类型的文件(例如音频、视频等)。如以上示例所示,预测过程的各种实例可以利用所选择的用户与其他用户之间的共性和/或目标文件与其他文件之间的共性来预测访问的地理位置,在此处,特定于所选择用户和/或目标文件的使用数据不可用。
尽管上述预测过程基于简单的历史频率分析,但地理位置预测器的示例不限于该技术。例如,在计算频率时,预测过程可以基于使用数据的新近度和/或使用数据与所选择的用户和/或目标文件之间的共性的强度来分配权重。此外,预测过程可以执行其他类型的预测/预报。例如,在至少一个示例中,预测过程执行人工神经网络,该人工神经网络被训练以基于所选择的用户和/或对等组在访问目标文件和/或与目标文件具有某些共性的其他文件时的使用数据来识别预测的地理位置。根据本公开内容将理解,预测过程的各种示例可以实现多种预报/预测技术。
继续过程500,共享服务预测514可用于在预测的地理位置下载所选择的文件的带宽量。在一些示例中,高速缓存服务执行带宽预测器(例如,图1的带宽预测器114)以预测514带宽。在这些示例中,带宽预测器接收、处理并响应由高速缓存服务生成的请求,以识别预测地理位置处的预测的带宽。这些请求可以包括高速缓存服务从地理位置预测器接收到的预测地理位置的标识符。响应于接收到请求,带宽预测器解析请求并执行预测过程。预测过程接收预测地理位置的标识符作为输入,并输出预测地理位置处可用的带宽量。预测过程可以被配置为执行多种预测/预报方法中的任一种来识别预测的带宽。预测过程的计算复杂性和准确性因示例而异。
例如,在一些示例中,预测过程简单地识别历史上已将文件下载到预测地理位置的平均带宽,并将平均带宽记录为预测的带宽。在这些示例中,预测过程可以即时计算平均带宽和/或识别存储在配置数据中的交叉引用之内的先前计算的平均带宽。此外,预测过程可以过滤历史使用数据以仅包括涉及用户和/或用户对等体的数据。虽然该预测过程基于简单的历史频率分析,但带宽预测器的其他示例不限于该技术。例如,在计算带宽时,预测过程可以基于使用数据的新近度来分配权重。此外,预测过程可以执行其他类型的预测/预报。例如,在至少一个示例中,预测过程执行人工神经网络,该人工神经网络被训练以基于涉及预测地理位置的使用数据(上传和/或下载)来识别预测的带宽。在另一个示例中,预测过程构建将地理位置与带宽相关联的概率分布函数并使用预测位置来评估该函数。根据本公开内容将理解,预测过程的各种示例可以实现多种预报/预测技术。
继续过程500,高速缓存服务确定516目标文件的一部分以存储在与所选择的用户相关联的一个或多个客户端设备本地的一个或多个高速缓存中。在一些示例中,高速缓存服务执行高速缓存优化器(例如,高速缓存优化器116)以确定516该部分。在这些示例中,优化器接收、处理和响应由高速缓存服务生成的请求以识别该部分。这些请求可以包括目标文件的标识符和预测的带宽,并且是由高速缓存服务从带宽预测器接收到的。响应于接收到请求,优化器解析请求并执行优化过程。
为了收集执行优化过程所需的信息,优化器经由存储服务(例如,图1的存储服务120)的***接口来发送针对描述目标文件的数据的请求。该请求可以包括目标文件的标识符。存储服务接收、处理和响应请求。每个响应可以包括文件的标识符以及描述文件的附加数据,例如描述文件大小、文件所在文件***内的路径、文件中存储的数据类型,以及由优化器分析以识别要下载到高速缓存的文件的一部分的其他信息的数据。
在一些示例中,优化过程使用预测的带宽和文件的特性来识别文件内起始点和终点之间的焦点,使得应用处理起始点和焦点之间的数据所需的时间等于下载焦点和终点之间的数据所需的时间。
在某些示例中,针对给定文件的焦点位置不仅取决于可用于下载文件的预测的带宽,还取决于存储在文件中的数据的类型和数量。例如,某些类型的文件包含可由应用处理的数据的部分(例如,视频和/或音频数据),而文件的其他部分则被下载。对于这些类型的文件,与应用需要文件的完整副本来启动处理的文件类型相比,优化器识别更靠近文件的起始点的焦点。
在一些示例中,优化过程被配置为:将预测的带宽与用于访问目标文件的应用的处理速率进行比较。在这些示例中,配置数据包括存储在文件中的数据类型与用于访问这些数据类型的应用的处理率之间的关联的交叉引用。优化过程通过识别存储在目标文件中的数据类型以及通过识别交叉引用中的数据类型与处理速率之间的关联来确定处理速率。在预测的带宽等于或超过处理速率的情况下,优化过程确定文件的该部分可以不包括数据。然而,在预测的带宽小于处理速率的情况下,优化过程执行公式1的计算以确定要存储在文件的部分中的数据量。
Figure BDA0003226767690000191
其中,Size=该部分的大小(例如,以(MB为单位),Rate=应用的处理速率(例如,以MB/秒为单位),Bandwidth=预测的带宽(例如,以MB/秒为单位),并且Filesize=目标文件的大小(例如,以MB为单位)。
在一些示例中,公式1被修改为允许预测的带宽中存在一些错误,而不会对用户体验产生负面影响。在这些示例中,优化过程执行公式2的计算以确定要存储在文件的部分中的数据量。
Figure BDA0003226767690000192
其中,Size=该部分的大小(例如,以MB为单位),Rate=应用的处理速率(例如,以MB/秒为单位),Bandwidth=预测的带宽(例如,以MB/秒为单位),Tolerance为用于计算预测的带宽(例如,以MB/秒为单位)的样本的标准偏差的倍数,并且Filesize=目标文件的大小(例如,以MB为单位)。
在一些示例中,公式1或公式2被修改以允许在接收用于访问目标文件的请求和提供对目标文件的访问之间的一些可接受的延时。在这些示例中,优化过程从配置数据中识别可接受的延时,并执行公式2的计算以确定要存储在文件的该部分中的数据量。
Figure BDA0003226767690000201
其中,Size=该部分的大小(例如,以MB为单位),Rate=应用的处理速率(例如,以MB/秒为单位),Bandwidth=预测的带宽(例如,以MB/秒为单位),Tolerance为用于计算预测的带宽(例如,以MB/秒为单位)的样本的标准偏差的倍数,Filesize=目标文件的大小(例如,以MB为单位),并且Latency=可接受的延时时段(例如,以秒为单位)。
继续过程500,在优化过程完成之后,优化器、高速缓存服务和共享服务互操作用于编排520将文件的该部分下载到一个或多个高速缓存。在编排520期间,优化器用标识要下载到高速缓存的该目标文件的部分的信息来响应高速缓存服务。高速缓存服务又将该部分标识信息提供给共享服务。共享服务向存储服务发送用于将文件的该部分下载到由与所选择的用户相关联的客户端设备之一托管的每个代理的请求。存储服务通过生成授权响应并将该授权响应发送到共享服务来响应该请求,该授权响应包括可用于下载文件的该部分一个或多个唯一标识符(例如,散列值)。共享服务发送授权每个代理下载文件的该部分的一个或多个请求。
接下来,每个代理从共享服务接收授权下载该部分的请求,并确定522该部分的大小是否大于高速缓存的剩余可用容量。在代理确定522该部分的大小大于高速缓存的剩余可用容量的情况下,代理对高速缓存进行重组524。在一些示例中,在本地高速缓存的大小不足以存储该部分的情况下,代理删除或覆盖存储在本地高速缓存中的文件。在一些示例中,代理将本地高速缓存维护为FIFO队列,其中,首先存储的文件也首先被删除。在其他示例中,代理使用访问的新近度和/或频率来对保留进行优先级排序,其中,近期和/或经常访问的文件优先于较不近期和/或不经常访问的文件被保留。在其他示例中,代理优先保留尚未被访问的文件而不是先前已被访问过的文件。在其他示例中,代理使用预测的带宽来对保留进行优先级排序,与较低预测的带宽相关联的文件优先于与较高预测的带宽相关联的文件。
接下来,每个代理与存储服务互操作以在高速缓存中存储518文件的该部分。代理通过与存储服务交换消息(例如,包括唯一标识符)来下载文件的该部分,从而使用预测性高速缓存来完成文件的自动同步。
共享服务确定526所选择的用户是否是所识别的用户的集合的最终成员。在共享服务确定526所选择的用户不是最终成员的情况下,共享服务返回以选择508下一个用户。在共享服务确定526所选择的用户是最终成员的情况下,共享服务确定528所选择的目标文件是否是目标文件集合的最终成员。在共享服务确定528所选择的文件不是目标文件集合的最终成员的情况下,共享服务返回以选择504目标文件集合的下一个文件。在共享服务确定528所选择的文件是目标文件集合的最终成员的情况下,共享服务终止过程500。
如本文所述,根据过程500的过程使***100能够管理用户所感知的延时量。
在本文中公开的各种示例中,计算设备(例如,图3的计算设备301)执行训练过程以训练人工神经网络(例如,经由反向传播)以预测地理位置处可用的带宽。图6示出了该训练过程600的一个示例。
如图6所示,过程600开始于计算设备组装602训练数据,数据包括历史地理位置和带宽数据。例如,可以从历史数据存储库(例如,图1的历史数据存储库108)中取回该数据。接下来,该数据的一部分(例如,80%)被用于迭代地训练604人工神经网络(经由例如反向传播过程),以基于包括地理位置标识符的输入来预测带宽。最后,用于验证606经训练的人工神经网络和计算设备的另一部分数据(例如,20%)终止过程600。
根据过程600的过程使计算设备能够生成一组人工神经网络参数(例如,节点权重等),人工神经网络可以加载这组人工神经网络参数以使人工神经网络能够接收地理位置的标识符作为输入,并提供地理位置处可用于下载文件的预测的带宽作为输出。
在本文中公开的各种示例中,高速缓存服务(例如,图1的高速缓存服务110)执行人工神经网络以预测地理位置处可用的带宽。图7示出了该预测过程700的一个示例。
如图7所示,过程700开始于高速缓存服务向人工神经网络提供702预测的地理位置,该人工神经网络被训练(例如,经由图6的过程600)以预测地理位置处可用的带宽。高速缓存服务使用预测的地理位置作为输入来执行704人工神经网络。高速缓存服务从人工神经网络接收706输出,该人工神经网络预测在该地理位置处可用于下载文件的带宽量。
根据过程700的过程使高速缓存服务能够准确地预测可用于文件下载的带宽,从而使高速缓存服务能够为客户端设备提供预测性高速缓存。
本文中公开的过程分别描绘了特定示例中的一个特定动作序列。一些动作是可选的,并且因此可以根据一个或多个示例而省略。此外,在不脱离本文讨论的装置和方法的范围的情况下,可以改变动作的顺序,或者可以添加其他动作。
现在将呈现在其中可以改变动作顺序的附加示例以进一步说明本文中公开的示例的范围。在该示例中,移动用户在一周的工作期间将其客户端设备带到多个地理位置。这些地理位置包括用户的办公室、用户的家以及两个客户场所。在这些地方中的每一个,用户可以接入不同的带宽。表1列出了将用户访问的地理位置与由带宽预测器的一个示例(例如图1的带宽预测器114)计算的平均带宽相关联的交叉引用。
位置A 办公室 很高的带宽 100Mbps
位置B 中等带宽 10Mbps
位置C 客户场所1 低带宽 50Mbps
位置D 客户场所2 低带宽 3Mbps
表1
此外,在该示例中,用户的客户端设备没有足够的存储空间来存储她希望向她的客户展示的两个营销视频文件。这两个文件都以由增强型文件共享***(例如,图1的增强型文件共享***100)进行自动同步为目标。表2列出了这些文件的特征以及由位置预测器(例如图1的位置预测器112)生成的预测位置。
视频文件名 视频质量 预测位置
文件F1 1080p 位置C
文件F2 1080p 位置D
表2
此外,在该示例中,配置数据(例如,图1的配置数据122)指示用于渲染这些文件的视频播放器的处理速率以6MB/秒执行。
在该示例中,优化器(例如,图1的优化器116)确定下载到客户端设备的高速缓存的该目标文件F1的部分不包括数据。之所以如此,是因为位置C处的可用带宽足以支持流式传输文件F1,而不会出现不可接受的延时。但是,优化器确定下载的该目标文件F2的部分包括其总数据的50%。这是因为位置D处的带宽不足以支持没有缓冲/延时的流式传输。更具体地,优化器确定:给定处理速率和带宽之间的差异,文件F2的至少50%应该存储在客户端设备的高速缓存中。这将使用户能够开始查看存储在文件F2中的视频,同时可以并行下载/流式传输文件F2的另外50%。当用户的观看达到视频的50%时,将下载75%的视频。当用户完成视频时,她不会看到视频的任何缓冲。
因此已经描述了至少一个示例的若干方面,应当理解,本领域技术人员将容易想到各种改变、修改和改进。例如,本文中公开的示例也可用于其他上下文。此类改变、修改和改进旨在成为本公开的一部分并且旨在落入本文讨论的示例的范围内。因此,前述描述和附图仅作为示例。

Claims (21)

1.一种计算机***,其包括:
存储器;
网络接口;以及
至少一个处理器,其耦合至所述存储器以及所述网络接口,并且被配置为:
识别要提供给计算设备的文件,
预测所述计算设备要请求访问所述文件的地理位置,
预测在所述地理位置处所述计算设备可用的网络带宽,
基于所述文件和所述网络带宽,确定要存储在所述计算设备的高速缓存中的所述文件的第一部分,以及
经由所述网络接口将所述文件的第一部分下载到所述高速缓存中。
2.根据权利要求1所述的计算机***,其中,所述至少一个处理器还被配置为:
接收所述文件;
接收用于与用户共享所述文件的请求;以及
识别所述用户与所述计算设备之间的关联,其中,所述至少一个处理器被配置为响应于接收到所述文件和/或接收到用于共享所述文件的所述请求来识别要提供给所述计算设备的所述文件。
3.根据权利要求2所述的计算机***,其中,所述至少一个处理器被配置为通过在来自带宽预测过程的输出内识别所述网络带宽来预测所述网络带宽。
4.根据权利要求3所述的计算机***,其中,所述带宽预测过程包括使用代表网络带宽的历史数据训练的机器学习过程,从代表网络带宽的所述历史数据推导出的概率分布函数,和/或访问将地理位置与网络带宽相关联的交叉引用的识别过程。
5.根据权利要求4所述的计算机***,其中,代表网络带宽的所述历史数据被过滤以包括特定于所述用户和/或所述用户的对等体的数据。
6.根据权利要求1所述的计算机***,其中,所述至少一个处理器被配置为通过在来自地理位置预测过程的输出内识别所述地理位置来预测所述地理位置。
7.根据权利要求6所述的计算机***,其中,所述地理位置预测过程包括使用代表文件访问的历史数据训练的机器学习过程,从代表文件访问的所述历史数据推导出的概率分布函数,和/或用与所述计算设备相关联的用户的时间表来识别所述地理位置的互操作。
8.根据权利要求7所述的计算机***,其中,代表文件访问的所述历史数据被过滤以包括特定于所述用户、所述用户的对等体和/或与所述文件相关的文件的数据。
9.根据权利要求1至8中任一项所述的计算机***,其中,所述至少一个处理器被配置为通过被配置为进行以下操作来确定要存储在所述高速缓存中的所述文件的第一部分:
识别用于访问所述文件的应用的处理速率;
确定在以所述处理速率处理所述文件的第一部分所需的时间段内能够下载到具有所述网络带宽的所述地理位置的所述文件的第二部分;以及
将所述文件的第一部分标识为除所述文件的第二部分之外的所述文件的部分。
10.根据权利要求9所述的计算机***,其中,所述文件是视频文件。
11.根据权利要求1所述的计算机***,还包括与所述用户相关联的计算设备,所述计算设备包括一个或多个处理器,所述一个或多个处理器被配置为:
接收消息以下载所述文件的第一部分;
确定所述高速缓存中可用的未分配存储的量;
确定所述未分配存储的量是否足以存储所述文件的第一部分;
响应于确定所述未分配存储的量不足以存储所述文件的第一部分,识别存储在所述高速缓存中的数据,所述数据的大小结合所述未分配存储的量足以存储所述文件的第一部分的数据;以及
从所述高速缓存中删除所述数据。
12.根据权利要求11所述的计算机***,其中,所述一个或多个处理器被配置为至少部分地通过识别先前访问的文件的数据来识别存储在所述高速缓存中的所述数据。
13.一种管理高速缓存的数据的方法,所述方法包括:
在第一计算设备处接收文件;
接收用于与用户共享所述文件的请求;
识别所述用户与第二计算设备之间的关联;
预测所述第二计算设备将请求访问所述文件的地理位置;
预测在所述地理位置处所述第二计算设备可用的网络带宽;
基于所述文件和所述网络带宽,确定要存储在所述第二计算设备的高速缓存中的所述文件的第一部分;以及
将所述文件的第一部分下载到所述高速缓存中。
14.根据权利要求13所述的方法,其中,预测所述网络带宽包括在来自带宽预测过程的输出内识别所述网络带宽。
15.根据权利要求14所述的方法,其中,识别所述带宽包括执行使用代表网络带宽的历史数据训练的机器学习过程,评估从代表网络带宽的所述历史数据推导出的概率分布函数,和/或在将地理位置与网络带宽相关联的交叉引用内识别所述网络带宽。
16.根据权利要求13所述的方法,其中,预测所述地理位置包括在来自地理位置预测过程的输出内识别所述地理位置。
17.根据权利要求16所述的计算方法,其中,在所述输出内识别所述地理位置包括执行使用代表文件访问的历史数据训练的机器学习过程,评估从代表文件访问的所述历史数据推导出的概率分布函数,和/或在所述用户的时间表内识别所述地理位置。
18.根据权利要求17所述的方法,其中,执行所述机器学习过程包括执行使用代表文件访问的历史数据训练的机器学习过程,所述文件访问是由与所述用户和/或所述用户的对等体相关联的设备发起的。
19.根据权利要求13至18中任一项所述的方法,其中,确定要存储在所述高速缓存中的所述文件的第一部分包括:
识别用于访问所述文件的应用的处理速率;
确定在以所述处理速率处理所述文件的第一部分所需的时间段内能够下载到具有所述网络带宽的所述地理位置的所述文件的第二部分;以及
将所述文件的第一部分标识为除所述文件的第二部分之外的所述文件的部分。
20.根据权利要求19所述的方法,其中,接收所述文件包括接收视频文件。
21.一种非暂时性计算机可读介质,其存储计算机可执行指令,所述计算机可执行指令用于执行根据权利要求13至20中任一项所述的管理高速缓存的数据的方法。
CN202080016345.XA 2019-04-05 2020-04-05 增强型的文件共享***和方法 Pending CN113474763A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/376,026 2019-04-05
US16/376,026 US11381657B2 (en) 2019-04-05 2019-04-05 Enhanced file sharing systems and methods
PCT/US2020/026780 WO2020206397A1 (en) 2019-04-05 2020-04-05 Enhanced file sharing systems and methods

Publications (1)

Publication Number Publication Date
CN113474763A true CN113474763A (zh) 2021-10-01

Family

ID=70471105

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080016345.XA Pending CN113474763A (zh) 2019-04-05 2020-04-05 增强型的文件共享***和方法

Country Status (6)

Country Link
US (1) US11381657B2 (zh)
EP (1) EP3928215A1 (zh)
CN (1) CN113474763A (zh)
AU (1) AU2020256272A1 (zh)
CA (1) CA3130116A1 (zh)
WO (1) WO2020206397A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115460198A (zh) * 2022-06-27 2022-12-09 河北东来工程技术服务有限公司 一种船务文件传输计划确定方法、***和装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022063528A (ja) * 2020-10-12 2022-04-22 エヌ・ティ・ティ・コミュニケーションズ株式会社 データ管理装置、データ共用システム及び方法、及びデータ管理プログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104583963A (zh) * 2012-09-28 2015-04-29 英特尔公司 基于上下文的数据的预测性预缓存
US20160198016A1 (en) * 2015-01-05 2016-07-07 Onavo Mobile Ltd. Techniques for network resource caching using partial updates
CN107667352A (zh) * 2015-06-25 2018-02-06 英特尔公司 用于预测性的文件缓存和同步的技术
US10225365B1 (en) * 2014-12-19 2019-03-05 Amazon Technologies, Inc. Machine learning based content delivery

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5893920A (en) * 1996-09-30 1999-04-13 International Business Machines Corporation System and method for cache management in mobile user file systems
US7006530B2 (en) * 2000-12-22 2006-02-28 Wi-Lan, Inc. Method and system for adaptively obtaining bandwidth allocation requests
US9176955B2 (en) * 2005-03-09 2015-11-03 Vvond, Inc. Method and apparatus for sharing media files among network nodes
US10237757B2 (en) * 2009-01-28 2019-03-19 Headwater Research Llc System and method for wireless network offloading
CA2806529C (en) * 2010-07-26 2014-12-09 Seven Networks, Inc. Prediction of activity session for mobile network use optimization and user experience enhancement
US8499066B1 (en) * 2010-11-19 2013-07-30 Amazon Technologies, Inc. Predicting long-term computing resource usage
US9176744B2 (en) 2011-05-20 2015-11-03 Citrix Systems, Inc. Quickly provisioning a virtual machine by identifying a path to a differential file during pre-boot
US9215269B2 (en) * 2012-08-23 2015-12-15 Amazon Technologies, Inc. Predictive caching for content
US9380562B1 (en) * 2013-01-22 2016-06-28 Hypori, Inc. System, method and computer program product for providing notifications from a virtual device to a disconnected physical device
EP2770789B1 (en) * 2013-02-21 2016-09-07 Deutsche Telekom AG Contextual and predictive prioritization of spectrum access
US9379933B1 (en) * 2013-05-06 2016-06-28 Amazon Technologies, Inc. Dynamically adjusting media content cache size
US10412028B1 (en) * 2013-05-24 2019-09-10 HCA Holdings, Inc. Data derived user behavior modeling
US9363333B2 (en) * 2013-11-27 2016-06-07 At&T Intellectual Property I, Lp Server-side scheduling for media transmissions
US20150172216A1 (en) * 2013-12-18 2015-06-18 International Business Machines Corporation Determining rules for partitioning internet connection bandwidth
US10079885B1 (en) * 2014-09-17 2018-09-18 Amazon Technologies, Inc. Multi-channel distributed predictive edge cache
US9538345B2 (en) 2015-01-28 2017-01-03 Citrix Systems, Inc. Systems and methods for performing load balancing and message routing for short message peer to peer protocol
TW201633825A (zh) * 2015-01-29 2016-09-16 Vid衡器股份有限公司 增強無線網路應用QoE之頻寬預測及預取
US10219306B2 (en) * 2015-05-08 2019-02-26 Federated Wireless, Inc. Cloud based access solution for enterprise deployment
AU2016336443B2 (en) * 2015-10-06 2019-11-14 Kodiak Networks, Inc. PTT network with radio condition aware media packet aggregation scheme
US10225741B2 (en) 2016-12-12 2019-03-05 International Business Machines Corporation Security enabled predictive mobile data caching
US20180176325A1 (en) * 2016-12-15 2018-06-21 Huawei Technologies Co., Ltd. Data pre-fetching in mobile networks
US20180191801A1 (en) * 2016-12-30 2018-07-05 Facebook, Inc. Adaptively updating content delivery network link in a manifest file
US10659375B2 (en) * 2017-02-17 2020-05-19 At&T Intellectual Property I, L.P. Controlling data rate based on domain and radio usage history
US10374762B2 (en) * 2017-02-28 2019-08-06 At&T Intellectual Property I, L.P. Use of underutilized bandwidth via radio access resource sharing
US10735891B1 (en) * 2019-07-23 2020-08-04 International Business Machines Corporation Cognitively controlling data delivery

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104583963A (zh) * 2012-09-28 2015-04-29 英特尔公司 基于上下文的数据的预测性预缓存
US10225365B1 (en) * 2014-12-19 2019-03-05 Amazon Technologies, Inc. Machine learning based content delivery
US20160198016A1 (en) * 2015-01-05 2016-07-07 Onavo Mobile Ltd. Techniques for network resource caching using partial updates
CN107667352A (zh) * 2015-06-25 2018-02-06 英特尔公司 用于预测性的文件缓存和同步的技术

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115460198A (zh) * 2022-06-27 2022-12-09 河北东来工程技术服务有限公司 一种船务文件传输计划确定方法、***和装置

Also Published As

Publication number Publication date
CA3130116A1 (en) 2020-10-08
WO2020206397A1 (en) 2020-10-08
EP3928215A1 (en) 2021-12-29
US11381657B2 (en) 2022-07-05
US20200322445A1 (en) 2020-10-08
AU2020256272A1 (en) 2021-09-02

Similar Documents

Publication Publication Date Title
US11184438B2 (en) Omnichannel approach to application sharing across different devices
US8973005B2 (en) Information processing apparatus, information processing method, recording medium and information processing system
KR102289235B1 (ko) 사설 콘텐츠 분배 네트워크
US10771533B2 (en) Adaptive communication control device
US8271987B1 (en) Providing access to tasks that are available to be performed
US10021181B2 (en) System and method for discovering a LAN synchronization candidate for a synchronized content management system
CN105939335A (zh) 发布-订阅数据处理环境中管理通道所有权的方法和***
US10536517B2 (en) Distributed global server load balancing controllers sharing service delay time
WO2015172093A1 (en) Storage network data retrieval
JP2016516233A (ja) コンテンツアイテムの共有
US11630851B2 (en) Systems and methods for providing predictions to applications executing on a computing device
US9792339B2 (en) Automatic content replication
KR20140004799A (ko) 피어 투 피어 데이터 마이그레이션
US11605021B1 (en) Iterative model training and deployment for automated learning systems
CN113474763A (zh) 增强型的文件共享***和方法
US20210109895A1 (en) Determining user interface contexts for requested resources
US12020081B2 (en) Method to implement multi-tenant/shared redis cluster using envoy
EP3479550B1 (en) Constraint based controlled seeding
EP3896578A1 (en) Unified file storage system
US11676574B2 (en) Duration based task monitoring of artificial intelligence voice response systems
US20210318990A1 (en) Unified file storage system
US20210200591A1 (en) Method and system for preemptive caching across content delivery networks
US11863615B2 (en) Content management systems providing zero recovery time objective

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination