CN111989903A - 用于云服务的数据高速缓存 - Google Patents

用于云服务的数据高速缓存 Download PDF

Info

Publication number
CN111989903A
CN111989903A CN201980026717.4A CN201980026717A CN111989903A CN 111989903 A CN111989903 A CN 111989903A CN 201980026717 A CN201980026717 A CN 201980026717A CN 111989903 A CN111989903 A CN 111989903A
Authority
CN
China
Prior art keywords
data
resource
shared cache
determining
request
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.)
Granted
Application number
CN201980026717.4A
Other languages
English (en)
Other versions
CN111989903B (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.)
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 CN111989903A publication Critical patent/CN111989903A/zh
Application granted granted Critical
Publication of CN111989903B publication Critical patent/CN111989903B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/5682Policies or rules for updating, deleting or replacing the stored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • 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/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/154Networked environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本文描述了用于使用共享高速缓存来高速缓存用于资源的数据的方法和系统。所述数据可以存储在配置服务中、所述资源中或所述共享高速缓存中。可以修改存储在所述配置服务中的数据。可以根据所述配置服务中的修改后的数据来更新存储在所述资源中和所述共享高速缓存中的数据。可以基于操作模式来使用存储在所述配置服务、所述资源或所述共享高速缓存中的数据。

Description

用于云服务的数据高速缓存
相关申请的交叉引用
本申请是于2018年4月3日提交的、题为“用于云服务的数据高速缓存(DATACACHING FOR CLOUD SERVICES)”的美国非临时申请号15/944,107的国际申请,并要求其优先权,其全部内容通过引用并入本文并作为本文的一部分。
技术领域
本文描述的各方面总体上涉及计算机以及网络硬件和软件。特别地,本公开涉及用于在云系统中使用共享高速缓存来高速缓存用于资源的数据的方法和系统。
背景技术
企业越来越多地采用云计算服务以及包括对象存储在内的数据存储的新方法。云计算服务可以向用户提供各种资源作为服务。用于资源或由资源使用的数据可以被存储在云计算服务器上运行的数据库中。当资源需要数据或由资源需要数据时,可以将获取数据的请求发送到在云计算服务器上运行的数据库。随着访问资源的用户数量迅速增加,可以开发用于处理获取数据的大量请求的架构。
发明内容
以下呈现了本文描述的各个方面的简化概述。该概述不是宽泛性综述,并且不意图标识必需的或重要的元素或描绘权利要求的范围。以下概述仅以简化形式呈现一些概念,作为下面提供的更详细描述的介绍性序言。
本文描述的示例针对被配置为进行用于使用共享高速缓存来高速缓存用于资源的数据的方法的系统、设备、和/或计算机可读介质。该方法可以包括:从用户装置并且由计算装置接收访问资源的请求。计算装置可以确定与资源相关联的标识符和指示与资源相关联的第一数据的数据标识符。第一数据可以被存储在资源中。计算装置可以基于指示配置服务的负载的信息来确定操作模式。在确定操作模式包括高负载操作模式之后,计算装置可以向共享高速缓存发送确定与资源相关联的第二数据是否存储在共享高速缓存中的请求。确定与资源相关联的第二数据是否存储在共享高速缓存中的请求可以包括与资源相关联的标识符和数据标识符。计算装置可以从共享高速缓存接收与资源相关联的第二数据是否存储在共享高速缓存中的指示。计算装置可以基于与资源相关联的第二数据是否存储在共享高速缓存中的指示来确定是否向配置服务发送获取与资源相关联的第三数据的请求。
在一些示例中,计算装置可以基于数据标识符来确定第二数据是否与第一数据不同。在确定第二数据与第一数据不同之后,计算装置可以用第二数据替换第一数据。在一些示例中,计算装置可以接收第二数据对应于第一数据的指示。计算装置可以基于第一数据来启动资源。
在一些示例中,第二数据可以在到期时段之后到期。在确定操作模式包括高负载操作模式之后,计算装置可以刷新第二数据的到期时段。在一些示例中,在确定第二数据没有存储在共享高速缓存中之后,计算装置可以向配置服务发送获取第三数据的请求。计算装置可以从配置服务接收第三数据。计算装置可以将第三数据插入共享高速缓存中。
在一些示例中,计算装置可以接收访问第二资源的第二请求。在确定第二操作模式包括低负载操作模式之后,计算装置可以向配置服务发送获取与第二资源相关联的第四数据的请求。在一些示例中,确定操作模式可以包括基于与用户装置的用户相关联的企业的营业时间来确定操作模式。
在一些示例中,计算装置可以在一个时间段内接收访问多个资源的多个请求。确定操作模式可以包括基于多个请求的数量超过阈值来确定操作模式。在一些示例中,共享高速缓存可以包括存储器内数据库。在一些示例中,数据标识符可以包括第一数据的指纹。
受益于下面进一步详细讨论的公开内容,将会理解这些方面和附加方面。
附图说明
通过参考以下考虑附图的描述,可以获得对本文描述的各方面及其优点的更完整的理解,在附图中,相同的附图标记表示相同的特征,并且其中:
图1描绘了可以根据本文描述的一个或多个说明性方面使用的说明性计算机系统架构。
图2描绘了可以根据本文描述的一个或多个说明性方面使用的说明性远程访问系统架构。
图3描绘了可以根据本文描述的一个或多个说明性方面使用的说明性虚拟化(管理程序)系统架构。
图4描绘了可以根据本文描述的一个或多个说明性方面使用的说明性的基于云的系统架构。
图5是示出用于在云系统中高速缓存数据的示例系统的示意图。
图6是示出用于使用共享高速缓存来高速缓存数据的示例方法的流程图。
图7是示出用于更新或刷新存储在共享高速缓存中的数据的示例方法的流程图。
图8是示出用于基于数据改变事件来更新存储在共享高速缓存中的数据的示例方法的流程图。
具体实施方式
在以下对各种实施方案的描述中,参考了以上标识的附图,这些附图形成了本说明书的一部分,并且其中通过图示的方式示出了其中可以实践本文描述的各方面的各种实施方案。应当理解的是,在不脱离本文描述的范围的情况下,可以利用其他实施方案并且可以进行结构和功能上的修改。各个方面能够存在其他实施方案并且能以各种不同方式实践或进行。
作为下面更详细描述的主题的一般介绍,本文描述的各方面针对使用共享高速缓存来高速缓存用于资源的数据。用户可以请求访问资源以用于其多种用途。与资源相关联的数据可以存储在配置服务、资源或共享高速缓存中。可以修改存储在所述配置服务中的数据。可以基于配置服务中的修改后的数据来更新存储在资源中和共享高速缓存中的数据。可以基于操作模式来使用配置服务、资源或共享高速缓存中存储的数据。
应当理解的是,本文使用的用语和术语是为了描述的目的且不应被视为限制性的。而是,本文中使用的短语和术语将被给予其最广泛的解释和含义。术语“包括”和“包含”及其变化意指涵盖其后列出的项目和其等同物以及附加项目及其等同物。术语“安装”、“连接”、“耦接”、“定位”、“接合”和类似术语的使用意味着包括直接和间接的安装、连接、耦接、定位和接合。
计算架构
可以在各种不同的系统环境中使用计算机软件、硬件和网络,包括独立环境,联网环境,远程访问(也称为远程桌面)环境、虚拟化环境、和/或基于云的环境等。图1示出了可以用于在独立和/或联网环境中实现本文描述的一个或多个说明性方面的系统架构和数据处理装置的一个示例。各种网络节点103、105、107和109可以经由诸如互联网的广域网(WAN)101互连。也可以或可选地可以使用其他网络,包括专用内联网、公司网络、局域网(LAN)、城域网(MAN)、无线网络、个人网络(PAN)等。网络101是出于说明目的,并且可以用更少或额外的计算机网络代替。局域网133可以具有任何已知LAN拓扑中的一个或多个,并且可以使用各种不同协议中的一个或多个,例如以太网。装置103、105、107和109以及其他装置(未示出)可以经由双绞线、同轴电缆、光纤、无线电波或其他通信介质连接到一个或多个网络。
如本文所使用的以及附图中所描绘的术语“网络”不仅指其中远程存储装置经由一个或多个通信路径耦接在一起的系统,而且还指可能不时耦接到具有存储功能的此类系统的独立装置。因此,术语“网络”不仅包括“物理网络”,还包括“内容网络”,它由驻留在所有物理网络中的数据(归因于单个实体)构成。
这些部件可以包括数据服务器103、web服务器105和客户端计算机107、109。数据服务器103提供对用于进行本文描述的一个或多个说明性方面的数据库和控制软件的整体访问、控制和管理。数据服务器103可以连接到web服务器105,用户可以通过该web服务器与之交互并根据请求获取数据。可选地,数据服务器103可以充当web服务器本身并且直接连接到互联网。数据服务器103可以通过局域网133、广域网101(例如,互联网)、经由直接或间接连接、或经由某些其他网络连接到web服务器105。用户可以使用远程计算机107、109(例如,使用web浏览器通过由web服务器105托管的一个或多个外部暴露的网站连接到数据服务器103)与数据服务器103进行交互。客户端计算机107、109可以与数据服务器103一起使用以访问存储在其中的数据,或者可以用于其他目的。例如,用户可以使用本领域已知的互联网浏览器,或者通过执行通过计算机网络(诸如互联网)与web服务器105和/或数据服务器103通信的软件应用程序来从客户端装置107访问web服务器105。
服务器和应用程序可以组合在同一台物理计算机上,并保留单独的虚拟或逻辑地址,或者可以驻留在单独的物理计算机上。图1仅示出了可以使用的网络架构的一个示例,并且本领域技术人员将理解,所使用的特定网络架构和数据处理装置可以变化,并且对于它们提供的功能是次要的,如本文进一步描述的那样。例如,可以在单个服务器上组合由web服务器105和数据服务器103提供的服务。
每个部件103、105、107、109可以是任何类型的已知计算机、服务器或数据处理装置。数据服务器103例如可以包括控制数据服务器103的整体操作的处理器111。数据服务器103还可以包括随机存取存储器(RAM)113、只读存储器(ROM)115、网络接口117、输入/输出接口119(例如,键盘、鼠标、显示器、打印机等)和存储器121。输入/输出(I/O)119可以包括各种接口单元和驱动器,用于读取、写入、显示和/或打印数据或文件。存储器121可以进一步存储用于控制数据处理装置103的整体操作的操作系统软件123、用于指示数据服务器103进行本文所描述的各方面的控制逻辑125、以及提供辅助、支持和/或可以结合或可以不结合本文描述的各方面使用的其他功能的其他应用程序软件127。控制逻辑在本文中也可以称为数据服务器软件125。数据服务器软件的功能可以指的是基于编码到控制逻辑中的规则自动进行的操作或决策、由向系统中提供输入的用户手动进行的操作或决策、和/或基于用户输入(例如查询、数据更新等)的自动处理的组合。
存储器121还可以存储用于进行本文所述一个或多个方面的数据,包括第一数据库129和第二数据库131。在一些实施方案中,第一数据库可以包括第二数据库(例如,作为单独的表、报告等)。也就是说,根据系统设计,信息可以存储在单个数据库中,或者被分为不同的逻辑数据库、虚拟数据库或物理数据库。装置105、107和109可以具有与相对于装置103所述的架构相似或不同的架构。本领域技术人员将理解,如本文所述的数据处理装置103(或装置105、107或109)的功能可以分布在多个数据处理装置上,例如,以将处理负载分布在多个计算机上,以基于地理位置、用户访问级别、服务质量(QoS)等分离交易。
一个或多个方面可以体现在计算机可用或可读数据中和/或如本文所述由一个或多个计算机或其他装置执行的诸如在一个或多个程序模块中的计算机可执行指令中。一般而言,程序模块包括在由计算机或其他装置中的处理器执行时进行特定任务或实现特定抽象数据类型的例程、程序、对象、部件、数据结构等。模块可以用源代码编程语言(其然后被编译用于执行)编写,或者可以用脚本语言编写,诸如(但不限于)超文本标记语言(HTML)或可扩展标记语言(XML)。可以将计算机可执行指令存储在诸如非易失性存储装置的计算机可读介质上。可以使用任何合适的计算机可读存储介质,包括硬盘、CD-ROM、光学存储装置、磁存储装置和/或它们的任何组合。此外,如本文所述的表示数据或事件的各种传输(非存储)介质可以以通过诸如金属线、光纤和/或无线传输介质(例如空气和/或空间)的信号传导介质行进的电磁波的形式在源和目的地之间传输。本文描述的各个方面可以体现为方法、数据处理系统或计算机程序产品。因此,各种功能可以全部或部分地体现在软件、固件、和/或硬件或硬件等效物中,诸如集成电路、现场可编程门阵列(FPGA)等中。特定的数据结构可以用于更有效地实现本文所述的一个或多个方面,并且这些数据结构被设想在本文所述的计算机可执行指令和计算机可用数据的范围内。
进一步参考图2,可以在远程访问环境中实现本文描述的一个或多个方面。图2描绘了示例性系统架构,该示例性系统架构包括可以根据本文所述的一个或多个说明性方面使用的说明性计算环境200中的计算装置201。计算装置201可以用作配置为给客户端访问装置提供虚拟机的单服务器或多服务器桌面虚拟化系统(例如,远程访问或云系统)中的服务器206a。计算装置201可以具有处理器203,用于控制服务器及其相关联的部件(包括RAM205、ROM 207、输入/输出(I/O)模块209和存储器215)的整体操作。
I/O模块209可以包括计算装置201的用户可通过其提供输入的鼠标、键盘、触摸屏、扫描仪、光学阅读器和/或手写笔(或一个或多个其他输入装置),并且还可以包括用于提供音频输出的扬声器中的一个或多个,以及用于提供文本、视听和/或图形输出的视频显示装置中的一个或多个。软件可以存储在存储器215和/或其他存储装置中以向处理器203提供指令,以用于将计算装置201配置为专用计算装置,以便进行本文所述的各种功能。例如,存储器215可以存储由计算装置201使用的软件,诸如操作系统217、应用程序219和相关联的数据库221。
计算装置201可以在支持与一个或多个远程计算机(例如终端240(也称为客户端装置))的连接的联网环境中操作。终端240可以是包括以上关于计算装置103或201描述的许多或所有元件的个人计算机、移动装置、膝上型计算机、平板电脑或服务器。图2中描绘的网络连接包括局域网(LAN)225和广域网(WAN)229,但是也可以包括其他网络。当在LAN联网环境中使用时,计算装置201可以通过网络接口或适配器223连接到LAN 225。当在WAN联网环境中使用时,计算装置201可以包括调制解调器227或用于通过WAN 229(诸如计算机网络230(例如,互联网))建立通信的其他广域网接口。应当理解的是,所示的网络连接是说明性的,并且可以使用在计算机之间建立通信链路的其他手段。计算装置201和/或终端240也可以是包括各种其他部件(诸如电池、扬声器和天线(未示出))的移动终端(例如,移动电话、智能电话、个人数字助理(PDA)、笔记本等)
本文描述的各方面也可以与许多其他通用或专用计算系统环境或配置一起操作。可以适合于与本文描述的各方面一起使用的其他计算系统、环境和/或配置的示例包括但不限于个人计算机、服务器计算机、手持或膝上型装置、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人计算机(PC)、小型计算机、大型计算机、包括任何上述系统或装置的分布式计算环境等。
如图2所示,一个或多个客户端装置240可以与一个或多个服务器206a至206n(本文中通常称为“一个或多个服务器206”)通信。在一个实施方案中,计算环境200可以包括安装在一个或多个服务器206和一个或多个客户端机器240之间的网络装置。网络装置可以管理客户端/服务器连接,并且在某些情况下可以在多个后端服务器206之间对客户端连接进行负载平衡。
在一些实施方案中,一个或多个客户端机器240可以被称为单个客户端机器240或单个客户端机器240组,而一个或多个服务器206可以被称为单个服务器206或单个服务器206组。在一个实施方案中,单个客户端计算机240与多于一个的服务器206通信,而在另一实施方案中,单个服务器206与多于一个客户端240通信。在又一实施方案中,单个客户端机器240与单个服务器206通信。
在一些实施方案中,客户端机器240可以由以下非穷举性术语中的任何一个来引用:一个或多个客户端机器、一个或多个客户端、一个或多个客户端计算机、一个或多个客户端装置、一个或多个客户端计算装置、本地机器、远程机器、一个或多个客户端节点、一个或多个端点、或一个或多个端点节点。在一些实施方案中,服务器206可以由以下非穷举性术语中的任何一个来引用:一个或多个服务器、本地机器、远程机器、一个或多个服务器场或一个或多个主机计算装置。
在一个实施方案中,客户端机器240可以是虚拟机。虚拟机可以是任何虚拟机,而在一些实施方案中,虚拟机可以是由类型1或类型2管理程序(例如,由Citrix Systems、IBM、VMware开发的管理程序或任何其他管理程序)管理的任何虚拟机。在一些方面,虚拟机可以由管理程序管理,而在其他方面,虚拟机可以由在服务器206上执行的管理程序或在客户端240上执行的管理程序管理。
一些实施方案包括客户端装置240,该客户端装置显示由在服务器206或其他远程定位的机器上远程执行的应用程序生成的应用程序输出。在这些实施方案中,客户端装置240可以执行虚拟机接收器程序或应用程序以在应用程序窗口、浏览器或其他输出窗口中显示输出。在一个示例中,该应用程序是桌面,而在其他示例中,该应用程序是生成或呈现桌面的应用程序。桌面可以包括图形壳,该图形壳为可以在其中集成本地和/或远程应用程序的操作系统的实例提供用户界面。如本文中所使用的应用程序是在已经加载了操作系统(以及任选地,还有桌面)的实例之后执行的程序。
在一些实施方案中,服务器206使用远程呈现协议或其他程序将数据发送到在客户端上执行的瘦客户端或远程显示应用程序,以呈现由在服务器206上执行的应用程序生成的显示输出。瘦客户端或远程显示协议可以是以下协议的非穷举列表中的任何一个:由佛罗里达州劳德代尔堡的Citrix Systems公司开发的独立计算架构(ICA)协议、或由华盛顿州雷德蒙德的微软公司制造的远程桌面协议(RDP)。
远程计算环境可以包括多于一个服务器206a至206n,使得例如在云计算环境中将服务器206a至206n按逻辑分组在一起成为服务器场206。服务器场206可以包括在地理上分散并且同时被逻辑分组在一起的服务器206,或者彼此相邻地定位并且同时被逻辑分组在一起的服务器206。在一些实施方案中,服务器场206内的地理位置分散的服务器206a至206n可以使用WAN(广域)、MAN(城域)或LAN(局域)进行通信,其中不同的地理区域可以被表征为:不同的大陆、大陆的不同区域、不同国家、不同的州、不同的城市、不同的校园、不同的房间、或前述地理位置的任意组合。在一些实施方案中,服务器场206可以被管理为单个实体,而在其他实施方案中,服务器场206可以包括多个服务器场。
在一些实施方案中,服务器场可以包括执行基本相似类型的操作系统平台(例如,WINDOWS、UNIX、LINUX、iOS、ANDROID、SYMBIAN等)的服务器206。在其他实施方案中,服务器场206可以包括执行第一类型操作系统平台的第一组一个或多个服务器,以及执行第二类型操作系统平台的第二组一个或多个服务器。
服务器206可以根据需要被配置为任何类型的服务器,例如,文件服务器、应用程序服务器、web服务器、代理服务器、器具、网络器具、网关、应用程序网关、网关服务器、虚拟化服务器、部署服务器、安全套接字层(SSL)VPN服务器、防火墙、web服务器、应用程序服务器,或被配置为主应用程序服务器、执行活动目录的服务器、或执行提供防火墙功能、应用程序功能或负载平衡功能的应用程序加速程序的服务器。也可以使用其他服务器类型。
一些实施方案包括第一服务器206a,该第一服务器从客户端机器240接收请求、将请求转发到第二服务器206b(未示出),并且用来自第二服务器206b(未示出)的响应来响应由客户端机器240生成的请求。第一服务器206a可以获取客户端机器240可用的应用程序的枚举,以及与托管应用程序的枚举中标识的应用程序的应用程序服务器206相关联的地址信息。然后,第一服务器206a可以使用web界面来呈现对客户端的请求的响应,并且直接与客户端240通信以向客户端240提供对所标识的应用程序的访问。一个或多个客户端240和/或一个或多个服务器206可以通过网络230(例如,网络101)传输数据。
图3示出了说明性桌面虚拟化系统的高级架构。如图所示,桌面虚拟化系统可以是单服务器或多服务器系统或云系统,包括被配置为向一个或多个客户端访问装置240提供虚拟桌面和/或虚拟应用程序的至少一个虚拟化服务器301。如本文所用,桌面是指可以在其中托管和/或执行一个或多个应用程序的图形环境或空间。桌面可以包括图形壳,该图形壳为可以在其中集成本地和/或远程应用程序的操作系统的实例提供用户界面。应用程序可以包括在已经加载操作系统(以及任选地,还有桌面)的实例之后执行的程序。操作系统的每个实例可以是物理的(例如,每个装置一个操作系统)或虚拟的(例如,在单个装置上运行的OS的许多实例)。每个应用程序可以在本地装置上执行,或者在远程定位的装置(例如,远程的)上执行。
计算机装置301可以被配置为虚拟化环境(例如,单服务器、多服务器或云计算环境)中的虚拟化服务器。图3中示出的虚拟化服务器301可以被部署为图2中示出的服务器206的一个或多个实施方案和/或由该一个或多个实施方案实现或者由其他已知的计算装置来实现。虚拟化服务器301中包括硬件层,该硬件层可以包括一个或多个物理磁盘304、一个或多个物理装置306、一个或多个物理处理器308以及一个或多个物理存储器316。在一些实施方案中,固件312可以被存储在物理存储器316中的存储器元件内,并且可以由物理处理器308中的一个或多个执行。虚拟化服务器301还可以包括操作系统314,该操作系统可以存储在物理存储器316中的存储器元件中,并由物理处理器308中的一个或多个执行。更进一步,管理程序302可以被存储在物理存储器316中的存储器元件中,并且可以由物理处理器308中的一个或多个执行。
在物理处理器308中的一个或多个上可以执行一个或多个虚拟机332A至332C(通常为332)。每个虚拟机332可以具有虚拟磁盘326A至326C和虚拟处理器328A至328C。在一些实施方案中,第一虚拟机332A可以使用虚拟处理器328A执行包括工具栈324的控制程序320。控制程序320可以被称为控制虚拟机、Dom0、域0或其他用于系统管理和/或控制的虚拟机。在一些实施方案中,一个或多个虚拟机332B至332C可以使用虚拟处理器328B至328C执行来宾操作系统330A至330B。
虚拟化服务器301可以包括具有与虚拟化服务器301通信的一个或多个硬件的硬件层310。在一些实施方案中,硬件层310可以包括一个或多个物理磁盘304、一个或多个物理装置306、一个或多个物理处理器308以及一个或多个物理存储器316。物理部件304、306、308和316可以包括例如上述部件中的任何一个。物理装置306可以包括例如网络接口卡、视频卡、键盘、鼠标、输入装置、监视器、显示装置、扬声器、光驱、存储装置、通用串行总线连接、打印机、扫描仪、网络元件(例如,路由器、防火墙、网络地址转换器、负载平衡器、虚拟专用网络(VPN)网关、动态主机配置协议(DHCP)路由器等),或者连接到虚拟化服务器301或与该虚拟化服务器通信的任何装置。硬件层310中的物理存储器316可以包括任何类型的存储器。物理存储器316可以存储数据,并且在一些实施方案中可以存储一个或多个程序或可执行指令的集合。图3示出了其中固件312被存储在虚拟化服务器301的物理存储器316内的实施方案。存储在物理存储器316中的程序或可执行指令可以由虚拟化服务器301的一个或多个处理器308执行。
虚拟服务器301还可以包括管理程序302。在一些实施方案中,管理程序302可以是由虚拟化服务器301上的处理器308执行以创建和管理任何数量的虚拟机332的程序。管理程序302可以被称为虚拟机监视器或平台虚拟化软件。在一些实施方案中,管理程序302可以是可执行指令和监视在计算机器上执行的虚拟机的硬件的任何组合。管理程序302可以是类型2管理程序,其中管理程序在虚拟化服务器301上执行的操作系统314内执行。然后,虚拟机可以在高于管理程序的级别执行。在一些实施方案中,类型2管理程序可以在用户的操作系统的情景中执行,使得类型2管理程序与用户的操作系统交互。在其他实施方案中,虚拟化环境中的一个或多个虚拟化服务器301可以替代地包括类型1管理程序(未示出)。类型1管理程序可以通过直接访问硬件层310内的硬件和资源而在虚拟化服务器301上执行。也就是说,虽然类型2管理程序302通过主机操作系统314访问系统资源(如图所示),但是类型1管理程序可以在没有主机操作系统314的情况下直接访问所有系统资源。类型1管理程序可以直接在虚拟化服务器301的一个或多个物理处理器308上执行,并且可以包括存储在物理存储器316中的程序数据。
在一些实施方案中,管理程序302可以以模拟有权直接访问系统资源的操作系统330或控制程序320的任何方式向在虚拟机332上执行的操作系统330或控制程序320提供虚拟资源。系统资源可以包括但不限于物理装置306、物理磁盘304、物理处理器308、物理存储器316和虚拟化服务器301的硬件层310中包含的任何其他部件。管理程序302可用于模拟虚拟硬件、对物理硬件进行分区、将物理硬件虚拟化、和/或执行提供对计算环境的访问的虚拟机。在其他实施方案中,管理程序302可以控制在虚拟化服务器301上执行的虚拟机332的处理器调度和存储器分区。管理程序302可以包括由加利福尼亚州帕洛阿尔托的VMWare公司制造的那些管理程序、XENPROJECT管理程序(这是开源产品,其开发由开源XenProject.org社区监督)、由微软提供的HyperV、VirtualServer或虚拟PC管理程序、或其他管理程序。在一些实施方案中,虚拟化服务器301可以执行管理程序302,该管理程序创建来宾操作系统可以在其上执行的虚拟机平台。在这些实施方案中,虚拟化服务器301可以被称为主机服务器。这种虚拟化服务器的一个示例是由佛罗里达州劳德代尔堡的CitrixSystems公司提供的XENSERVER。
管理程序302可以创建在其中执行来宾操作系统330的一个或多个虚拟机332B至332C(通常为332)。在一些实施方案中,管理程序302可以加载虚拟机映像以创建虚拟机332。在其他实施方案中,管理程序302可以在虚拟机332内执行来宾操作系统330。在其他实施方案中,虚拟机332可以执行来宾操作系统330。
除了创建虚拟机332之外,管理程序302还可以控制至少一个虚拟机332的执行。在其他实施方案中,管理程序302可以向至少一个虚拟机332呈现由虚拟化服务器301提供的至少一个硬件资源(例如,硬件层310内可用的任何硬件资源)的抽象。在其他实施方案中,管理程序302可以控制虚拟机332访问虚拟化服务器301中可用的物理处理器308的方式。控制对物理处理器308的访问可以包括确定虚拟机332是否应有权访问处理器308,以及如何向虚拟机332呈现物理处理器能力。
如图3所示,虚拟化服务器301可以托管或执行一个或多个虚拟机332。虚拟机332是可执行指令的集合,当由处理器308执行时,这些可执行指令可以模仿物理计算机的操作,使得虚拟机332可以像物理计算装置那样执行程序和处理。虽然图3示出了其中虚拟化服务器301托管三个虚拟机332的实施方案,但在其他实施方案中,虚拟化服务器301可以托管任何数量的虚拟机332。在一些实施方案中,管理程序302可以向每个虚拟机332提供对该虚拟机332可用的物理硬件、存储器、处理器和其他系统资源的唯一虚拟视图。在一些实施方案中,唯一虚拟视图可以基于以下中的一个或多个:虚拟机权限、策略引擎对一个或多个虚拟机标识符的应用、访问虚拟机的用户、在虚拟机上执行的应用程序、虚拟机访问的网络或任何其他期望的标准。例如,管理程序302可以创建一个或多个不安全虚拟机332和一个或多个安全虚拟机332。可以防止不安全虚拟机332访问资源、硬件、存储器位置以及安全虚拟机332可以被允许访问的程序。在其他实施方案中,管理程序302可以向每个虚拟机332提供可用于虚拟机332的物理硬件、存储器、处理器和其他系统资源的基本相似的虚拟视图。
每个虚拟机332可以包括虚拟磁盘326A至326C(通常为326)和虚拟处理器328A至328C(通常为328)。在一些实施方案中,虚拟磁盘326是虚拟化服务器301的一个或多个物理磁盘304或虚拟化服务器301的一个或多个物理磁盘304的一部分的虚拟化视图物理磁盘304的虚拟化视图可以由管理程序302生成、提供和管理。在一些实施方案中,管理程序302为每个虚拟机332提供物理磁盘304的唯一视图。因此,在这些实施方案中,当与其他虚拟磁盘326相比时,每个虚拟机332中包括的特定虚拟磁盘326可以是唯一的。
虚拟处理器328可以是虚拟化服务器301的一个或多个物理处理器308的虚拟化视图。在一些实施方案中,可以通过管理程序302来生成、提供和管理物理处理器308的虚拟化视图。在一些实施方案中,虚拟处理器328具有至少一个物理处理器308的基本上所有相同的特性。在其他实施方案中,虚拟处理器308提供物理处理器308的修改视图,使得虚拟处理器328的特性中的至少某些不同于相对应的物理处理器308的特性。
进一步参考图4,可以在基于云的环境中实现本文描述的一些方面。图4示出了云计算环境(或云系统)400的示例。如图4所见,客户端计算机411至414可以与云管理服务器410通信以访问云系统的计算资源(例如,主机服务器403a至403b(在本文中通常称为“主机服务器403”)、存储资源404a至404b(在本文中通常称为“存储资源404”)和网络资源405a至405b(在本文中通常称为“网络资源405”)。
管理服务器410可以在一个或多个物理服务器上实现。管理服务器410可以运行例如佛罗里达州劳德代尔堡的Citrix Systems公司的CLOUDPLATFORM或OPENSTACK等。管理服务器410可以管理各种计算资源,包括云硬件和软件资源,例如,主机计算机403、数据存储装置404和联网装置405。云硬件和软件资源可以包括私有和/或公共部件。例如,可以将云配置为私有云以便由一个或多个特定顾客或客户端计算机411至414和/或通过专用网络使用。在其他实施方案中,可以由其他顾客通过开放或混合网络使用公共云或混合的公共-私有云。
管理服务器410可以被配置为提供用户界面,云运营商和云顾客可以通过该用户界面与云系统400交互。例如,管理服务器410可以提供应用程序编程接口(API)的集合和/或具有用户界面的一个或多个云运营商控制台应用程序(例如,基于web的应用程序或独立应用程序)以允许云运营商管理云资源、配置虚拟化层、管理顾客帐户并进行其他云管理任务。管理服务器410还可以包括API的集合和/或具有用户界面的一个或多个顾客控制台应用程序,这些用户界面被配置为经由客户端计算机411至414从终端用户接收云计算请求,例如,创建、修改或销毁云内的虚拟机的请求。客户端计算机411至414可以通过互联网或其他某种通信网络连接到管理服务器410,并且可以请求对由管理服务器410管理的计算资源中的一个或多个的访问。响应于客户端请求,管理服务器410可以包括资源管理器,该资源管理器被配置为基于客户端请求在云系统的硬件层中选择和供应物理资源。例如,管理服务器410和云系统的附加部件可以被配置为通过网络(例如,因特网)为客户端计算机411至414处的顾客供应、创建和管理虚拟机及其操作环境(例如,管理程序、存储资源、由网络元件提供的服务等),从而为顾客提供计算资源、数据存储服务、联网能力以及计算机平台和应用程序支持。云系统还可以被配置为提供各种特定服务,包括安全系统、开发环境、用户界面等。
某些客户端411至414可能相关,例如,代表相同终端用户创建虚拟机的不同客户端计算机、或者隶属于相同公司或组织的不同用户。在其他示例中,某些客户端411至414可能是不相关的,诸如隶属于不同公司或组织的用户。对于不相关的客户端,关于任何一个用户的虚拟机或存储装置的信息可能对其他用户隐藏。
现在参考云计算环境的物理硬件层,可用性区域401至402(或区域)可以指物理计算资源的并置集合。区域可以在地理上与整个计算资源云中的其他区域分离。例如,区域401可以是位于加利福尼亚的第一云数据中心,而区域402可以是位于佛罗里达的第二云数据中心。管理服务器410可以位于可用性区域中的一个处或位于分离的位置处。每个区域可以包括内部网络,该内部网络通过网关与该区域外部的装置(诸如管理服务器410)对接。云的最终用户(例如,客户端411至414)可能会也可能不会意识到区域之间的区别。例如,终端用户可以请求创建具有指定量的存储器、处理能力和网络能力的虚拟机。管理服务器410可以响应用户的请求,并且可以分配资源来创建虚拟机,而无需用户知晓虚拟机是使用来自区域401还是区域402的资源创建的。在其他示例中,云系统可以允许终端用户请求在特定区域中或区域内的特定资源403至405上分配虚拟机(或其他云资源)。
在此示例中,每个区域401至402可以包括各种物理硬件部件(或计算资源)403至405(例如,物理托管资源(或处理资源)、物理网络资源、物理存储资源、交换机和可以用于向顾客提供云计算服务的其他硬件资源)的布置。云区域401至402中的物理托管资源可以包括可以被配置为创建和托管虚拟机实例的一个或多个计算机服务器403(诸如上述的虚拟化服务器301)。云区域401或402中的物理网络资源可以包括一个或多个网络元件405(例如,网络服务提供商),该一个或多个网络元件包括被配置为向云顾客提供网络服务的硬件和/或软件,诸如防火墙、网络地址转换器、负载平衡器、虚拟专用网络(VPN)网关、动态主机配置协议(DHCP)路由器等。云区域401至402中的存储资源可以包括存储盘(例如,固态驱动器(SSD)、磁硬盘等)和其他存储装置。
图4中示出的示例云计算环境还可以包括虚拟化层(例如,如图1至图3所示),该虚拟化层具有被配置为创建和管理虚拟机并使用云中的物理资源向顾客提供其他服务的附加硬件和/或软件资源。虚拟化层可以包括管理程序(如上图3所述)以及提供网络虚拟化、存储虚拟化等的其他部件。虚拟化层可以作为与物理资源层分离的层,或者可以与物理资源层共享相同的硬件和/或软件资源中的一些或全部。例如,虚拟化层可以包括安装在具有物理计算资源的虚拟化服务器403中的每一个中的管理程序。可以可选地使用已知的云系统,例如,WINDOWS AZURE(华盛顿州雷蒙德的微软公司)、AMAZON EC2(华盛顿州西雅图的亚马逊公司)、IBM BLUE CLOUD(纽约州阿蒙克的IBM公司)或者其他。
用于云服务的数据高速缓存
图5是示出用于在云系统中高速缓存数据的示例系统的示意图。该系统可以包括一个或多个远程计算装置(例如,远程计算装置501A、501B)、云服务503和内部云505。远程计算装置501A、501B、云服务503和内部云505可以经由网络(例如,广域网101、计算机网络230、互联网或其他网络)彼此通信。
远程计算装置501A、501B可以包括例如客户端计算机107、109、客户端装置240、客户端计算机411至414或其他计算装置。客户端代理507可以被实现在远程计算装置501A上。用户代理509可以被实现在远程计算装置501B上。
云服务503可以包括被实现在例如数据服务器103、web服务器105、服务器206、虚拟化服务器301、区域401至402或其他计算装置上的进程。云服务503可以是例如开放供公众使用的公共云。云服务503可以包括配置服务513、刷新服务515、资源管理器517(包括一个或多个资源519A至519N)以及共享高速缓存521。
云服务503的部件可以被实现在一个服务器上或多个服务器上。例如,这些部件可以被实现在中央数据中心中的服务器或服务器集群上。另外地或可选地,部件可以被实现在位于不同地理区域中的不同服务器上。另外地或可选地,配置服务513可以在被实现在位于一个地理区域的中央数据中心中的服务器上,并且资源管理器517(包括资源519A至519N)可以被实现在位于不同地理区域的多个数据中心中。刷新服务515和共享高速缓存521可以被实现在更靠近资源管理器517的每个实例的不同地理区域中的每一个中。
内部云505可以包括例如在数据服务器103、web服务器105、服务器206、虚拟化服务器301、区域401至402或其他计算装置上运行的进程。内部云505可以是例如为一个或多个组织操作的私有云。内部云505可以例如位于组织场所中、更靠近终端用户。
内部云505可以包括云连接器523和内部资源525。云连接器523可以允许在云服务503和内部资源525之间进行通信。内部资源525可以包括例如文档、文件、应用程序、桌面、数据(例如,私有数据)等。云服务503(诸如经由资源519A至519N)可以通过云连接器523访问内部资源525。
系统可以将资源519A至519N中的一个或多个作为服务提供给各个用户。单个用户可以是例如自然人或法人实体。另外地或可选地,系统可以将资源519A至519N作为服务提供给用户组。用户组可以包括多个用户。用户组可以是例如组织(例如,商业组织、政府组织等)或组织的一部分。用户组可以是例如云服务503的顾客。
用户组可以控制、使用或管理来自资源519A至519N的许多资源。用户组的管理员(或与用户组相关联的其他人员或实体)可以管理用户组的资源。例如,管理员可以授权用户组中的用户访问用户组的资源。管理员可以将用户组资源中的资源与用户相关联(例如,允许用户通过输入用户名和口令来访问资源)。
管理员可以通过客户端代理507管理用户组的资源。客户端代理507可以包括例如web浏览器、移动应用程序、瘦客户端、终端仿真器等。客户端代理507可以与云服务503通信。客户端代理507可以提供用户界面。通过用户界面,管理员可以管理用户组的资源。例如,管理员可以监视用户组的资源的运行状态(例如,监视RAM使用率、磁盘驱动器使用率等)。
资源519A至519N可以包括例如虚拟机(例如,虚拟机332)、服务器(例如,主机服务器403)、存储装置(例如,存储资源404)、网络(例如,网络资源405)、数据库、web服务器、电子邮件、虚拟桌面、游戏、应用程序或其他资源。
用户可以通过用户代理509访问资源519A至519N中的资源。用户代理509可以包括例如web浏览器、移动应用程序、瘦客户端、终端仿真器等。用户代理509可以用于访问资源519A至519N中的一个或多个。用户代理509可以提供用户界面。通过用户界面,用户可以使用资源(例如,向资源发布命令)。例如,用户可以通过用户界面起动虚拟机、启动应用程序或发送电子邮件。
资源管理器517可以包括例如管理程序(例如,管理程序302)、StoreFront即服务(SFaaS)或可以控制资源519A至519N的其他进程。资源管理器517可以根据用于资源的配置数据将硬件、软件、网络或外围装置分配给资源。资源管理器517可以根据它们各自相同或不同的配置数据将资源519A至519N配置为相同或不同。另外地或可选地,资源管理器517可以包括由服务器集群驱动的工作空间存储(例如,可以为用户提供访问资源519A至519N的接口的企业应用商店)。服务器集群可能位于负载平衡器之后。负载均衡器可以从用户代理509接收访问资源519A至519N中的资源的请求。基于负载平衡算法,负载平衡器可以将请求路由到服务器集群中的服务器。服务器集群中的服务器可以接收该请求并且发起对资源进行配置(例如,根据用于资源的配置数据)。可以基于负载平衡算法将访问资源519A至519N的不同请求路由到服务器集群中的不同服务器。
配置数据可以包括例如指定资源的配置的信息。例如,虚拟机的配置数据可以包括虚拟机的来宾操作系统类型和版本、中央处理单元(CPU)能力、随机存取存储器(RAM)大小、磁盘驱动器、网络适配器信息或其他设置。另外地或可选地,配置数据可以指定是否允许与用户相关联的资源或与用户相关联的用户代理访问内部资源525或其他云资源的全部或一部分。配置数据可以指定资源或用户代理可以访问内部资源525或其他云资源的方式(例如,安全或不安全的连接、连接带宽、通信协议等)。另外地或可选地,配置数据可以指定由用户代理509提供的用户界面的设计(例如,颜色、符号、输入控件、导航部件、信息部件等)。配置数据可以是其他类型的数据(例如,用于资源或由资源使用的数据)。
用于资源519A至519N的配置数据可以被存储在配置服务513中。例如,配置服务513可以维护存储用于资源519A至519N的配置数据的数据库。用户组的管理员可以修改存储在数据库中的配置数据(例如,通过连接到配置服务513的客户端代理507)。数据库可以包括任何类型的数据库系统(例如,ORACLE数据库、MySQL、MICROSOFT SQL服务器、IBM DB2等)。下面示出了存储配置数据的示例数据库表。
用户组 配置数据
GroupA RAM大小2GB、磁盘10GB、来宾操作系统Windows
GroupB RAM大小1GB、磁盘20GB、来宾操作系统Linux
GroupC RAM大小1GB、磁盘20GB、来宾操作系统Macintosh
在该表中,用户组可以由组标识符(例如,GroupA、GroupB、GroupC等)标识。每个用户组可以具有相对应的配置数据。用户组的配置数据可以用于配置用户组的资源。例如,可以根据配置数据“RAM大小2GB、磁盘10GB、来宾操作系统Windows”来配置用户组GroupA的资源。
用户组可以划被分为几个子组,并且每个子组可以具有自己的配置数据,该配置数据可以与另一子组的配置数据相同或不同。子组的配置数据可以用于配置与子组相关联的资源。另外地或可选地,用户组的资源中的每个资源可以具有其自己的特定配置数据。数据库可以存储资源标识符和相对应的配置数据的记录。资源标识符可以标识特定资源。相对应的配置数据可以用于配置该特定资源。
存储在配置服务513中的配置数据可以被资源519A至519N使用或用于资源519A至519N。例如,当用户请求访问资源时,资源管理器517可以向配置服务513发送获取用于资源的配置数据的请求。该请求可以包括用户的组标识符。配置服务513可以搜索配置数据数据库以识别与组标识符相对应的配置数据。配置服务513可以将配置数据发送到资源管理器517。资源管理器517可以根据所接收的配置数据来配置资源。
当获取存储在配置服务513中的配置数据的请求的数量变大(例如,数百万个请求)时,配置服务513可能存在可扩展性挑战。例如,配置服务513可能无法经济地配置为处理获取配置数据的大量请求。
在资源519A至519N中存储配置数据可以帮助减轻配置服务513的可扩展性挑战。例如,资源可以由资源管理器517分配的存储装置。该存储装置可以是资源本地的。该存储装置可以是例如高速缓存、存储器、磁盘、虚拟存储装置或其他类型的存储装置。用于资源的配置数据可以存储在资源的本地存储装置中,并且可以由资源管理器517读取和使用以配置资源。
如果资源管理器517没有周期性地查询配置服务513来得到存储在其中的最新配置数据并且更新存储在资源519A至519N中的配置数据,则存储在资源519A至519N中的配置数据可能变得过时,或者可能在资源519A至519N之间变得不一致。例如,当最初建立资源时,可以从配置服务513复制存储在资源中的配置数据。在以后的某个时间,可能再次需要配置数据来配置资源。在此期间,管理员可以改变用于资源的配置数据,并且可以对存储在配置服务513中的配置数据进行这种改变。如果资源管理器517没有(例如,周期性地)查询配置服务513,则存储在资源中的配置数据可能变得不同于存储在配置服务513中的最新配置数据。
共享高速缓存521可以帮助减轻配置服务513的可扩展性挑战,并且有助于使存储在资源中的配置数据保持最新。共享高速缓存521可以包括例如云数据库或高可用性数据库。例如,共享高速缓存521可以包括存储器内数据库,该存储器内数据库主要依赖于主存储器(例如,RAM)而不是磁盘存储装置来进行数据存储。另外地或可选地,共享高速缓存521可以是REDIS数据库。
用于资源519A至519N的配置数据可以被存储在共享高速缓存521中。例如,当用户请求访问资源时,资源管理器517可以将请求发送到共享高速缓存521以获得存储在共享高速缓存521中的配置数据。共享高速缓存521可以维护与配置服务513中的数据库表相似的数据库表。例如,共享高速缓存521中的数据库表可以包括组标识符和相对应的配置数据的数据记录。共享高速缓存521可以使用组标识符作为关键字来搜索相对应的配置数据。另外地或可选地,数据记录可以包括子组标识符和相对应的配置数据。共享高速缓存521可以基于搜索子组标识符来识别配置数据。另外地或可选地,数据记录可以包括资源标识符和相对应的配置数据。共享高速缓存521可以基于搜索资源标识符来识别配置数据。
存储在共享高速缓存中的配置数据可以在到期时段(例如5分钟)之后到期。刷新服务515可以刷新数据的到期时段,以将其保持存储在共享高速缓存521中持续更长的时间段。刷新服务515可以更新存储在共享高速缓存521中的配置数据。例如,刷新服务515可以周期性地检查管理员是否改变了配置数据,并且可以根据改变后的配置数据来更新存储在共享高速缓存521中的配置数据。另外地或可选地,当管理员改变存储在配置服务513中的配置数据时,配置服务513可以将该改变通知给刷新服务515。刷新服务515可以接收通知,并继续更新存储在共享高速缓存521中的配置数据。
如果共享高速缓存521包括存储器内的高可用性数据库,则共享高速缓存521可能比其他类型的高速缓存更昂贵或更耗能。可能有利的是,确定使用共享高速缓存521的时间可能是优选的,诸如访问资源519A至519N的请求的数量或获取配置数据的请求的数量较大时。刷新服务515可以基于指示用户访问事件的数量的信息来确定操作模式。基于操作模式,系统可以确定是使用配置服务513还是共享高速缓存521作为源来获得配置数据。结合图6至图8进一步讨论了用于使用共享高速缓存521来高速缓存数据的方法。
获取数据的请求(例如,由资源管理器517发送到配置服务513或发送到共享高速缓存521的获取配置数据的请求)可能涉及通信数据标识符,而不是数据本身。数据标识符可以唯一地标识数据,但是可以具有比数据更小的文件大小。这可能有助于减少网络流量。当两个数据标识符的比较示出与两个数据标识符相关联的两个数据实例相同时,可能不会发送实际数据。
图6是示出用于使用共享高速缓存来高速缓存数据的示例方法的流程图。该方法可以由例如结合图5讨论的系统来进行。该方法在下文且在图6中针对配置数据进行讨论。然而,该方法可以适用于任何类型的数据(例如,用于资源或由资源使用的数据)。
在步骤601中,用户代理509可以向资源管理器517发送访问资源519A至519N中的资源的请求。远程计算装置501B的用户可以经由用户代理509输入访问资源的命令。例如,用户可以在web浏览器中输入指向云服务503的统一资源定位符(URL),并且web浏览器可以示出包括多个图标的网页。用户可以经由远程计算装置501B的输入装置(例如,触摸屏、键盘、鼠标、手势等)选择用于资源的图标。在远程计算装置501B上实现的用户代理509可以发起与资源管理器517的通信。
资源管理器517可以从用户代理509接收访问资源的请求。资源管理器517可以发起配置资源的进程,诸如获取用于资源的配置数据。在步骤603中,资源管理器517可以确定用户的组标识符(例如,基于用户访问资源的请求)。例如,用户在链接到云服务503的web浏览器中输入的URL可以指示用户的组标识符(例如,URL“groupA.cloudservice.com”指示组标识符是“groupA”)。URL中包含的组标识符可以包含在访问资源的请求中。
另外地或可选地,资源管理器517可以确定用户的身份(例如,基于用户访问资源的请求)。例如,用户可以在web浏览器中输入链接到云服务503的URL。与URL相关联的网页可能会提示用户输入其用户名和口令以对其进行验证。用户名和口令可以包含在访问资源的请求中。资源管理器517可以基于用户名和口令来确定用户的身份。资源管理器517可以基于用户的身份来识别与用户相关联的资源。
在步骤603中,资源管理器517还可以确定用于存储在资源中的配置数据的配置数据标识符。配置数据标识符可以用于确定配置数据的两个实例是否相同。资源管理器517可以检索存储在资源中的配置数据,并且基于所检索的配置数据来生成配置数据标识符。
配置数据标识符可以是例如配置数据中的全部或部分的连续组合。例如,如果配置数据包括数据字段RAM大小、磁盘大小和来宾操作系统,并且这些数据字段的值分别为2GB、10GB和Operating_System_1,则配置数据标识符可以是2GB 10GB Operating_System_1。
另外地或可选地,可以通过指纹算法来生成配置数据标识符。指纹算法可以将大数据集映射到唯一地标识原始数据集的较短的位串(例如,指纹)。指纹算法的输入可以包括配置数据或其一部分。指纹算法的输出可以包括配置数据标识符。
另外地或可选地,可以通过哈希函数(例如,对配置数据进行哈希处理以生成配置数据标识符)来生成配置数据标识符。另外地或可选地,配置数据标识符可以包括实体标签(ETag),并且可以由ETag生成算法(例如,抗碰撞哈希函数)生成。
另外地或可选地,可以基于配置数据的最后修改时间戳来生成配置数据标识符。例如,当管理员在配置服务513中修改配置数据时,可以记录(例如,与配置数据结合存储)进行修改的时间(例如,时间戳)。时间戳可以指示配置数据的版本。另外地或可选地,可以通过将指纹算法或哈希函数应用于上一修改时间戳来生成配置数据标识符。
由于可以通过网络传输配置数据标识符,因此使用指纹或哈希算法生成配置数据标识符可以帮助减少流量并节省网络的带宽。
在步骤605中,资源管理器517可以向刷新服务515发送指示访问事件的消息。指示访问事件的消息可以向刷新服务515指示用户正在请求访问资源,并且用于资源的配置数据是期望的。访问事件消息可以包括用户的组标识符和/或发送消息的时间戳。
在步骤607,刷新服务515可以接收消息并且可以记录访问事件。可以由刷新服务515使用该消息来确定操作模式(例如,高负载操作模式或低负载操作模式)。操作模式可以指示配置服务513还是共享高速缓存521将成为获取配置数据的来源。刷新服务515可以聚合由于访问资源的不同的用户请求而生成的访问事件。刷新服务515可以基于聚合的访问事件来确定操作模式。
可以确定用户组特定的操作模式。刷新服务515可以聚合与特定用户组相关联的访问事件,并且确定在时间窗口(例如10分钟)内生成的与用户组相关联的访问事件的数量。例如,如果请求访问资源的用户是用户组A的成员,则刷新服务515可以考虑由于用户访问资源的请求而生成的访问事件来确定用户组A的操作模式。如果请求访问资源的另一用户是用户组B的成员,则刷新服务515可以不考虑由于另一用户访问资源的请求而生成的访问事件来确定用户组A的操作模式。
如果在时间窗口内与用户组相关联的访问事件的数量超过阈值,则刷新服务515可以将用户组的操作模式设置为高负载操作模式。否则,刷新服务515可以将用户组的操作模式设置为低负载操作模式。可以基于配置服务513处理请求以获得配置数据的能力来确定阈值。例如,如果配置服务513可以在时间窗口内处理N个请求,并且云服务503具有M个用户组,则可以将阈值设置为N/M(N除以M)。另外地或可选地,如果配置服务513可以在时间窗口内处理N个请求,云服务503具有M个用户,并且特定用户组包括L个用户,则可以将阈值设置为N*L/M(N乘以L除以M)。
另外地或可选地,刷新服务515可以基于与用户组相关联的营业时间来确定用户组的操作模式。例如,刷新服务515可以确定在用户组所位于的区域(例如,用户组的主要位置)中的标准营业时间期间操作模式是高负载操作模式。例如,如果用户组在美国,并且在美国的标准营业时间是上午9点至下午5点,则系统可以确定该用户组的操作模式从上午9点至下午5点是高负载操作模式。
另外地或可选地,刷新服务515可以确定用户组的通用操作模式。刷新服务515可以聚合接收到的与用户组相关联的访问事件,并确定在时间窗口(例如10分钟)内生成的访问事件的数量。如果在时间窗口内的访问事件的数量超过阈值,则刷新服务515可以将公共操作模式设置为高负载操作模式。否则,刷新服务515可以将公共操作模式设置为低负载操作模式。可以基于配置服务513的能力来确定阈值。例如,如果配置服务513能够在时间窗口期间处理1百万个请求以获得配置数据,则阈值可以被设置为1百万。
历史数据可以用于预测可能有获取配置数据的大量请求的时间段。例如,刷新服务515可以考虑针对上一天、上一月或上一年记录的访问事件。如果历史数据表明星期一的上午10点至上午11点的访问事件的数量超过阈值,则刷新服务515可以确定下星期一的上午10点至上午11点的时间段期间的操作模式可以是高负载操作模式。
刷新服务515可以将所确定的操作模式通知给配置服务513、资源管理器517、共享高速缓存521或其他部件。例如,当操作模式从一种状态改变为另一状态时,刷新服务515可以发送指示操作模式的改变的消息。
资源管理器517可以接收(例如,从刷新服务515)针对一个或多个用户组的操作模式。资源管理器517可以确定用于用户访问资源的请求的操作模式。例如,用于访问资源的请求的操作模式可以是针对发送请求的用户是其中的成员的用户组的操作模式。
基于用户访问资源的请求的操作模式,该方法可以前进到两组可选步骤。如果资源管理器517确定609用于用户访问资源的请求的操作模式包括低负载操作模式,则该方法可以进行到步骤613。在步骤613中,资源管理器517可以向配置服务513发送获取用于资源的配置数据的请求。该请求可以包括用户的组标识符。配置服务513可以接收该请求,并且基于组标识符找到用于资源的相对应的配置数据。在步骤615中,配置服务513可以将找到的配置数据发送到资源管理器517。资源管理器517可以从配置服务513接收配置数据。资源管理器517可以用所接收的配置数据替换存储在资源中的配置数据。资源管理器517可以基于接收到的配置数据来配置资源。
另外地或可选地,在步骤613中由资源管理器517发送的获取配置数据的请求可以包括用于存储在资源中的配置数据的配置数据标识符。配置服务513可以基于用于存储在配置服务513中的资源的配置数据来生成第二配置数据标识符。配置服务513可以比较两个配置数据标识符。如果配置服务513确定它们不同,则配置服务513可以向资源管理器517发送指示存储在资源中的配置数据过期的消息。该消息可以包括存储在配置服务513中的配置数据。否则,配置服务513可以向资源管理器517发送指示资源中存储的配置数据是最新的消息,并且资源管理器517可以使用资源中存储的配置数据来配置资源。
如果资源管理器517确定611用户访问资源的请求的操作模式包括高负载操作模式,则该方法可以进行到步骤617。在步骤617中,资源管理器517可以向共享高速缓存521发送得到用于资源的配置数据的请求。该请求可以包括用户的组标识符。共享高速缓存521可以接收请求。在步骤619中,共享高速缓存521可以基于组标识符来确定用于资源的相对应的配置数据是否存储在共享高速缓存521中。
基于用于资源的配置数据是否存储在共享高速缓存521中,该方法可以进行到两组可选步骤。如果共享高速缓存521确定621其存储了用于资源的配置数据,则该方法可以进行到步骤625。在步骤625中,共享高速缓存521可以向资源管理器517发送用于存储在共享高速缓存521中的资源的配置数据。资源管理器517可以从共享高速缓存521接收配置数据。资源管理器517可以用所接收的配置数据替换存储在资源中的配置数据。资源管理器517可以使用接收到的配置数据来配置资源。
另外地或可选地,在步骤617中由资源管理器517发送的获取配置数据的请求可以包括用于存储在资源中的配置数据的配置数据标识符。共享高速缓存521可以基于用于存储在共享高速缓存521中的资源的配置数据来生成第二配置数据标识符。共享高速缓存521可以比较两个配置数据标识符。如果共享高速缓存521确定它们是不同的,则配置服务513可以向资源管理器517发送指示存储在资源中的配置数据不同(例如,过期)的消息。该消息可以包括存储在共享高速缓存521中的配置数据。否则,共享高速缓存521可以向资源管理器517发送指示存储在资源中的配置数据是最新的消息,并且资源管理器517可以使用存储在资源中的配置数据来配置资源。
如果共享高速缓存521确定623其不存储用于资源的配置数据,则该方法可以进行到步骤627。在步骤627中,共享高速缓存521可以向资源管理器517发送指示用于资源的配置数据未存储在共享高速缓存521中的响应。资源管理器517可以接收响应。
在步骤629中,资源管理器517可以向配置服务513发送获取用于服务的配置数据的请求。配置服务513可以以类似于上述步骤613的方式在步骤629中响应请求。在步骤631中,配置服务513可以以类似于上述步骤615的方式向资源管理器517发送配置数据。如上所述,在步骤629、631中,用于存储在资源中的配置数据的一个或多个配置数据标识符可以用于节省资源管理器517与配置服务513之间的通信中的带宽。
资源管理器517可以从配置服务513接收用于资源的配置数据,并且可以根据所接收的配置数据来配置资源。资源管理器517可以用所接收的配置数据替换存储在资源中的配置数据。在步骤633中,资源管理器517可以向共享高速缓存521发送消息,以将资源管理器517从配置服务513接收的配置数据(例如,在步骤631中)插入共享高速缓存521中。另外地或可选地,如果步骤631中的配置服务513指示存储在资源中的配置数据是最新的,则资源管理器517在步骤633中可以向共享高速缓存521发送用于将存储在资源中的配置数据插入共享高速缓存521中的消息。
共享高速缓存521可以将所接收的配置数据作为新记录插入其数据库表中。如果此后共享高速缓存521接收到获取用于相同资源或用于与相同用户组相关联的资源的配置数据的请求,则共享高速缓存521可以基于新记录返回配置数据。
另外地或可选地,当用户组的操作模式从低负载操作模式改变为高负载操作模式时,系统可以在配置服务513中识别与用户组相关联的配置数据,并将所识别的配置数据插入共享高速缓存521中。
在步骤635中,共享高速缓存521可以向资源管理器517发送指示配置数据已经被插入共享高速缓存521中的响应。在步骤637中,资源管理器517可以通过用户代理509使所配置的资源对用户可用。
图7是示出用于更新或刷新存储在共享高速缓存中的数据的示例方法的流程图。该方法在下文并在图7中针对配置数据进行讨论。然而,该方法可以适用于任何类型的数据(例如,用于资源或由资源使用的数据)。可以针对存储在共享高速缓存521中的数据的每个记录进行该方法。
基于用户组的操作模式,该方法可以进行到两组可选步骤。如果系统确定703用户组的操作模式是低负载操作模式,则该方法可能不进行任何步骤来更新或刷新存储在共享高速缓存521中的用户组的配置数据。例如,如果用于用户组的配置数据存储在共享高速缓存521中,并且用户组的操作模式包括低负载操作模式,则系统可以允许该配置数据在到期时段之后到期。
如果系统确定701用户组的操作模式是高负载操作模式,则该方法可以进行到步骤705。在步骤705中,刷新服务515可以唤醒以发起进程以在高负载操作模式期间将配置数据保持存储在共享高速缓存521中,并且维持存储在共享高速缓存521中的配置数据是最新的。刷新服务515可以周期性地唤醒。例如,刷新服务515可以在与配置数据的到期时段相同的时间段之后唤醒。另外地或可选地,刷新服务515可以在不同于配置数据的到期时段的时间段之后唤醒。
在步骤707中,刷新服务515可以向共享高速缓存521发送得到与用户组相关联的配置数据的请求。该请求可以包括组标识符。共享高速缓存521可以接收请求,并找到与组标识符相对应的配置数据。在步骤709中,共享高速缓存521可以向刷新服务515发送指示与用户组相关联的配置数据的响应。刷新服务515可以接收响应,并且可以从响应中提取配置数据。刷新服务515可以基于所提取的配置数据来生成配置数据标识符。另外地或可选地,为了减少所发送的数据量,刷新服务515可以在步骤707中向共享高速缓存521发送获取用于与用户组相关联的配置数据的配置数据标识符的请求。在接收到请求之后,共享高速缓存521可以找到与用户组相对应的配置数据,并且可以基于所找到的配置数据来生成配置数据标识符。共享高速缓存521可以向刷新服务515发送所生成的配置数据标识符。
在步骤711中,刷新服务515可以向配置服务513发送获取存储在配置服务513中的用于用户组的配置数据的请求。在某个时间点,用户组的管理员可以通过客户端代理507修改用于用户组的配置数据。该改变可以反映在存储在配置服务513中的配置数据中,而不反映在存储在共享高速缓存521中的配置数据中。
获取配置数据的请求可以包括用户组的组标识符,以及刷新服务515生成或从共享高速缓存521接收的配置数据标识符。配置服务513可以接收请求。配置服务513可以搜索其数据库以找到与组标识符相关联的配置数据。配置服务513可以基于所找到的配置数据来生成第二配置数据标识符。配置服务513可以比较所接收的配置数据标识符和第二配置数据标识符以查看它们是否不同。如果它们不同,则配置服务513可以确定管理员已经修改了存储在配置服务513中的配置数据,并且确定存储在共享高速缓存521中的配置数据过期。否则,配置服务513可以确定管理员未修改存储在配置服务513中的配置数据,并且存储在共享高速缓存521中的配置数据是最新的。
基于管理员是否已经改变了存储在配置服务513中的配置数据,该方法可以前进到两组可选步骤。如果配置服务513确定713存储在其中的配置数据已被改变,则该方法可以进行到步骤717。在步骤717中,配置服务513可以向刷新服务515发送指示存储在配置服务513中的配置数据已被改变的响应。该响应可以包括与存储在配置服务513中的用户组相关联的配置数据。刷新服务515可以接收响应,并且可以提取配置数据。
在步骤719中,刷新服务515可以向共享高速缓存521发送将提取的配置数据插入共享高速缓存521中的请求。共享高速缓存521可以接收请求,并且可以将配置数据作为新记录插入共享高速缓存521中。在步骤721中,共享高速缓存521可以向配置服务513发送指示配置数据已经被插入共享高速缓存521中的响应。
如果配置服务513确定715存储在其中的配置数据未改变,则该方法可以进行到步骤723。在步骤723中,配置服务513可以向刷新服务515发送指示存储在配置服务513中的配置数据未改变的响应。刷新服务515可以接收响应。
在步骤725中,刷新服务515可以向共享高速缓存521发送刷新配置数据的到期时段的请求。共享高速缓存521可以接收请求,并且可以刷新配置数据的到期时间。在步骤727中,共享高速缓存521可以向刷新服务515发送指示配置数据的到期时段已经被刷新的响应。
图8是示出用于基于数据改变事件来更新存储在共享高速缓存中的数据的示例方法的流程图。该方法在下文并在图8中针对配置数据进行讨论。然而,该方法可以适用于任何类型的数据(例如,用于资源或由资源使用的数据)。
在步骤801中,客户端代理507可以向配置服务513发送改变与用户组相关联的配置数据的请求。例如,用户组的管理员可以通过客户端代理507改变用于用户组的存储在配置服务513中的配置数据。
配置服务513可以接收请求,并且可以改变配置数据。在步骤803中,配置服务513可以向客户端代理507发送指示配置服务513中的用于用户组的配置数据已经被改变的响应。
在步骤805中,配置服务513可以向刷新服务515发送配置数据改变事件的消息。该消息可以指示用于用户组的配置数据被改变。该消息可以包括用户组的组标识符。
在步骤807中,刷新服务515可以确定用户组的操作模式。如果用户组的操作模式包括高负载操作模式,则刷新服务515可以进行到步骤809。如果用户组的操作模式包括低负载操作模式,则刷新服务515可以在步骤807处停止,并且可以不进行至步骤809。
在步骤809中,刷新服务515可以向配置服务513发送获取与用户组相关联的配置数据的请求。在步骤811中,配置服务513可以向刷新服务515发送指示所请求的配置数据的响应。
刷新服务515可以接收响应,并且可以提取配置数据。在步骤813中,刷新服务515可以向共享高速缓存521发送将提取的配置数据插入共享高速缓存521中的请求。共享高速缓存521可以接收请求、提取配置数据、并将配置数据作为新记录插入共享高速缓存521中。如果在共享高速缓存521接收到插入请求时与用户组相关联的配置数据已经存储在共享高速缓存521中,则共享高速缓存521可以替代地用所提取的配置数据来更新存储在共享高速缓存521中的配置数据。在步骤815中,共享高速缓存521可以向刷新服务515发送指示配置数据已经插入共享高速缓存521中的响应。
尽管已经用专用于结构特征和/或方法论行为的语言对主题进行了描述,但应当理解,所附权利要求中定义的主题不一定限制于上文所描述的特定特征或行为。相反,上文所描述的特定特征和动作被描述为以下权利要求的示例实现方式。

Claims (20)

1.一种方法,所述方法包括:
从用户装置并且由计算装置接收访问资源的请求;
确定与所述资源相关联的标识符和指示与所述资源相关联的第一数据的数据标识符,其中所述第一数据存储在所述资源中;
基于指示配置服务的负载的信息,确定操作模式;
在确定所述操作模式包括高负载操作模式之后,向共享高速缓存发送确定与所述资源相关联的第二数据是否存储在所述共享高速缓存中的请求,其中所述确定与所述资源相关联的所述第二数据是否存储在所述共享高速缓存中的请求包括与所述资源相关联的所述标识符和所述数据标识符;
从所述共享高速缓存中接收与所述资源相关联的所述第二数据是否存储在所述共享高速缓存中的指示;以及
基于与所述资源相关联的所述第二数据是否存储在所述共享高速缓存中的所述指示来确定是否向所述配置服务发送获取与所述资源相关联的第三数据的请求。
2.如权利要求1所述的方法,所述方法还包括:
基于所述数据标识符来确定所述第二数据是否与所述第一数据不同;以及
在确定所述第二数据不同于所述第一数据之后,用所述第二数据替换所述第一数据。
3.如权利要求1所述的方法,所述方法还包括:
接收所述第二数据对应于所述第一数据的指示;以及
基于所述第一数据启动所述资源。
4.如权利要求1所述的方法,其中所述第二数据在到期时段之后到期,所述方法还包括在确定所述操作模式包括所述高负载操作模式之后,刷新所述第二数据的所述到期时段。
5.如权利要求1所述的方法,所述方法还包括:
在确定所述第二数据没有存储在所述共享高速缓存中之后,向所述配置服务发送获取所述第三数据的请求;
从所述配置服务接收所述第三数据;以及
向所述共享高速缓存中插入所述第三数据。
6.如权利要求1所述的方法,所述方法还包括:
接收访问第二资源的第二请求;以及
在确定第二操作模式包括低负载操作模式之后,向所述配置服务发送获取与所述第二资源相关联的第四数据的请求。
7.如权利要求1所述的方法,其中所述确定所述操作模式包括基于与所述用户装置的用户相关联的企业的营业时间来确定所述操作模式。
8.如权利要求1所述的方法,所述方法还包括在一个时间段内接收访问多个资源的多个请求,其中所述确定所述操作模式包括基于所述多个请求的数量超过阈值来确定所述操作模式。
9.如权利要求1所述的方法,其中所述共享高速缓存包括存储器内数据库。
10.如权利要求1所述的方法,其中所述数据标识符包括所述第一数据的指纹。
11.一种计算装置,所述计算装置包括:
一个或多个处理器;以及
存储指令的存储器,所述指令当由所述一个或多个处理器执行时致使所述计算机装置:
从用户装置接收访问资源的请求;
确定与所述资源相关联的标识符和指示与所述资源相关联的第一数据的数据标识符,其中所述第一数据存储在所述资源中;
基于指示配置服务的负载的信息,确定操作模式;
在确定所述操作模式包括高负载操作模式之后,向共享高速缓存发送确定与所述资源相关联的第二数据是否存储在所述共享高速缓存中的请求,其中所述确定与所述资源相关联的所述第二数据是否存储在所述共享高速缓存中的请求包括与所述资源相关联的所述标识符和所述数据标识符;
从所述共享高速缓存接收与所述资源相关联的所述第二数据是否存储在所述共享高速缓存中的指示;以及
基于与所述资源相关联的所述第二数据是否存储在所述共享高速缓存中的所述指示来确定是否向所述配置服务发送获取与所述资源相关联的第三数据的请求。
12.如权利要求11所述的计算装置,其中所述指令当由所述一个或多个处理器执行时还致使所述计算装置:
基于所述数据标识符来确定所述第二数据是否与所述第一数据不同;以及
在确定所述第二数据不同于所述第一数据之后,用所述第二数据替换所述第一数据。
13.如权利要求11所述的计算装置,其中所述指令当由所述一个或多个处理器执行时还致使所述计算装置:
接收所述第二数据对应于所述第一数据的指示;以及
基于所述第一数据启动所述资源。
14.如权利要求11所述的计算装置,其中所述第二数据在到期时段之后到期,并且其中所述指令当由所述一个或多个处理器执行时还致使所述计算装置:在确定所述操作模式包括所述高负载操作模式之后,刷新所述第二数据的所述到期时段。
15.如权利要求11所述的计算装置,其中所述指令当由所述一个或多个处理器执行时还致使所述计算装置:
在确定所述第二数据没有存储在所述共享高速缓存中之后,向所述配置服务发送获取所述第三数据的请求;
从所述配置服务接收所述第三数据;以及
向所述共享高速缓存中插入所述第三数据。
16.如权利要求11所述的计算装置,其中所述指令当由所述一个或多个处理器执行时还致使所述计算装置在一个时间段内接收访问多个资源的多个请求,并且其中所述指令当由所述一个或多个处理器执行时致使所述计算装置通过以下方式来确定所述操作模式:基于所述多个请求的数量超过阈值来确定所述操作模式。
17.如权利要求11所述的计算装置,其中所述共享高速缓存包括存储器内数据库。
18.一种或多种非暂时性计算机可读介质,所述非暂时性计算机可读介质存储计算机可读指令,所述计算机可读指令在被执行时会致使计算装置:
从用户装置接收访问资源的请求;
确定与所述资源相关联的标识符和指示与所述资源相关联的第一数据的数据标识符,其中所述第一数据存储在所述资源中;
基于指示配置服务的负载的信息,确定操作模式;
在确定所述操作模式包括高负载操作模式之后,向共享高速缓存发送确定与所述资源相关联的第二数据是否存储在所述共享高速缓存中的请求,其中所述确定与所述资源相关联的所述第二数据是否存储在所述共享高速缓存中的请求包括与所述资源相关联的所述标识符和所述数据标识符;
从所述共享高速缓存接收与所述资源相关联的所述第二数据是否存储在所述共享高速缓存中的指示;以及
基于与所述资源相关联的所述第二数据是否存储在所述共享高速缓存中的所述指示来确定是否向所述配置服务发送获取与所述资源相关联的第三数据的请求。
19.如权利要求18所述的非暂时性计算机可读介质,其中所述计算机可读指令在被执行时还致使所述计算装置:
基于所述数据标识符来确定所述第二数据是否与所述第一数据不同;以及
在确定所述第二数据不同于所述第一数据之后,用所述第二数据替换所述第一数据。
20.如权利要求18所述的非暂时性计算机可读介质,其中所述计算机可读指令在被执行时还致使所述计算装置:
在确定所述第二数据没有存储在所述共享高速缓存中之后,向所述配置服务发送获取所述第三数据的请求;
从所述配置服务接收所述第三数据;以及
向所述共享高速缓存中插入所述第三数据。
CN201980026717.4A 2018-04-03 2019-03-14 用于云服务的数据高速缓存 Expired - Fee Related CN111989903B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/944,107 US10805421B2 (en) 2018-04-03 2018-04-03 Data caching for cloud services
US15/944,107 2018-04-03
PCT/US2019/022168 WO2019194946A1 (en) 2018-04-03 2019-03-14 Data caching for cloud services

Publications (2)

Publication Number Publication Date
CN111989903A true CN111989903A (zh) 2020-11-24
CN111989903B CN111989903B (zh) 2021-12-21

Family

ID=65995859

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980026717.4A Expired - Fee Related CN111989903B (zh) 2018-04-03 2019-03-14 用于云服务的数据高速缓存

Country Status (6)

Country Link
US (3) US10805421B2 (zh)
EP (1) EP3777075B1 (zh)
JP (1) JP7143434B2 (zh)
CN (1) CN111989903B (zh)
AU (1) AU2019248441B2 (zh)
WO (1) WO2019194946A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112764943A (zh) * 2020-12-31 2021-05-07 北京橙色云科技有限公司 信息处理方法、系统、电子设备和计算机可读存储介质

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7195796B2 (ja) * 2018-07-23 2022-12-26 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及び、プログラム
CN111294331A (zh) * 2020-01-08 2020-06-16 北京奇艺世纪科技有限公司 一种数据交互方法及装置
CN111935781B (zh) * 2020-06-28 2023-04-25 中国科学院深圳先进技术研究院 数据分享网络的控制方法、网络系统及相关装置
CN112231106B (zh) * 2020-10-26 2024-02-06 中国工商银行股份有限公司 Redis集群的访问数据处理方法及装置
US11954039B2 (en) * 2022-03-25 2024-04-09 Atlassian Pty Ltd. Caching system and method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011041709A1 (en) * 2009-10-02 2011-04-07 Limelight Networks, Inc. Content delivery network cache grouping
CN102428685A (zh) * 2009-05-08 2012-04-25 F-赛酷公司 用于url评级的方法和设备
CN102985921A (zh) * 2010-05-07 2013-03-20 谷歌公司 在具有电子资源数据库的客户端装置中高速缓存电子文档资源
WO2017188871A1 (en) * 2016-04-28 2017-11-02 Telefonaktiebolaget Lm Ericsson (Publ) Server, client device and methods therein for handling cached content resources

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5581734A (en) * 1993-08-02 1996-12-03 International Business Machines Corporation Multiprocessor system with shared cache and data input/output circuitry for transferring data amount greater than system bus capacity
JP4044266B2 (ja) * 2000-06-01 2008-02-06 富士通株式会社 情報提供装置及びその情報提供装置での処理をコンピュータに行なわせるためのプログラムを格納した記憶媒体
JP3943867B2 (ja) * 2001-06-13 2007-07-11 株式会社東芝 サーバ側プロキシ、データ転送方法及びプログラム
JP4306152B2 (ja) * 2001-06-26 2009-07-29 株式会社日立製作所 クラスタ化したアプリケーションサーバおよびデータベース構造を持つWebシステム
JP2009140290A (ja) * 2007-12-07 2009-06-25 Fujitsu Ltd コンテンツ中継装置、コンテンツ中継システム及びコンテンツ中継方法並びにプログラム
JP4677482B2 (ja) * 2008-03-27 2011-04-27 西日本電信電話株式会社 アクセス振分システム、サーバ装置、共通管理装置、アクセス振分装置、アクセス振分方法、及び、コンピュータプログラム
CN101609432B (zh) * 2009-07-13 2011-04-13 中国科学院计算技术研究所 共享缓存管理系统及方法
JP6036190B2 (ja) * 2012-11-07 2016-11-30 富士通株式会社 情報処理装置、情報処理システムの制御方法及び情報処理システムの制御プログラム
US9766824B2 (en) * 2013-11-26 2017-09-19 Hitachi, Ltd. Storage device and computer system
US9720734B2 (en) * 2015-06-30 2017-08-01 Sandisk Technologies Llc Multi-host configuration for virtual machine caching
US11228490B1 (en) * 2016-12-20 2022-01-18 Amazon Technologies, Inc. Storage management for configuration discovery data
US10162542B1 (en) * 2017-04-19 2018-12-25 EMC IP Holding Company LLC Data protection and incremental processing for multi-span business applications

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102428685A (zh) * 2009-05-08 2012-04-25 F-赛酷公司 用于url评级的方法和设备
WO2011041709A1 (en) * 2009-10-02 2011-04-07 Limelight Networks, Inc. Content delivery network cache grouping
CN102985921A (zh) * 2010-05-07 2013-03-20 谷歌公司 在具有电子资源数据库的客户端装置中高速缓存电子文档资源
WO2017188871A1 (en) * 2016-04-28 2017-11-02 Telefonaktiebolaget Lm Ericsson (Publ) Server, client device and methods therein for handling cached content resources

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112764943A (zh) * 2020-12-31 2021-05-07 北京橙色云科技有限公司 信息处理方法、系统、电子设备和计算机可读存储介质

Also Published As

Publication number Publication date
US20220286528A1 (en) 2022-09-08
US11356531B2 (en) 2022-06-07
EP3777075B1 (en) 2022-12-14
US20200412829A1 (en) 2020-12-31
JP2021517695A (ja) 2021-07-26
JP7143434B2 (ja) 2022-09-28
US20190306266A1 (en) 2019-10-03
CN111989903B (zh) 2021-12-21
US10805421B2 (en) 2020-10-13
US11716406B2 (en) 2023-08-01
AU2019248441B2 (en) 2021-11-25
WO2019194946A1 (en) 2019-10-10
AU2019248441A1 (en) 2020-11-19
EP3777075A1 (en) 2021-02-17

Similar Documents

Publication Publication Date Title
CN111989903B (zh) 用于云服务的数据高速缓存
CN107925685B (zh) 用于安全网页浏览的重定向器
US20210337034A1 (en) Browser Server Session Transfer
US11206253B2 (en) Domain pass-through authentication in a hybrid cloud environment
US8924592B2 (en) Synchronization of server-side cookies with client-side cookies
US11003468B2 (en) Preloading of application on a user device based on content received by the user device
US11558268B2 (en) System and method for processing network data
US11201930B2 (en) Scalable message passing architecture in a cloud environment
US11057358B2 (en) Concealment of customer sensitive data in virtual computing arrangements
US11675964B2 (en) Management of remote access user application layouts
US11838362B2 (en) Data object delivery for distributed cluster computing
US20230108778A1 (en) Automated Generation of Objects for Kubernetes Services
US10984015B2 (en) Multi-select dropdown state replication
US20230148314A1 (en) Fast Launch Based on Hibernated Pre-launch Sessions
US11366832B2 (en) Cloud services management

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
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20211221