CN105765949A - 用于交互式云应用的地理分布式灾难恢复 - Google Patents

用于交互式云应用的地理分布式灾难恢复 Download PDF

Info

Publication number
CN105765949A
CN105765949A CN201480061769.2A CN201480061769A CN105765949A CN 105765949 A CN105765949 A CN 105765949A CN 201480061769 A CN201480061769 A CN 201480061769A CN 105765949 A CN105765949 A CN 105765949A
Authority
CN
China
Prior art keywords
option
data
application
session
state data
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
CN201480061769.2A
Other languages
English (en)
Other versions
CN105765949B (zh
Inventor
A·坎萨尔
S·戈文丹
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105765949A publication Critical patent/CN105765949A/zh
Application granted granted Critical
Publication of CN105765949B publication Critical patent/CN105765949B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/045Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption

Abstract

为被托管在当前数据中心上的应用提供了灾难恢复,从而确保该应用的可用性。选择用于复制该应用的会话状态数据的选项。这一选择是从各自包括不同的性能和资源成本权衡的一组不同的会话状态数据复制选项中做出的。所选择的选项确定应用的会话状态数据要如何被复制。所选择的选项被实施,其中该实施导致应用的会话状态数据被复制到当前数据中心之外,从而确保这一数据在当前数据中心离线的情况下保持可用。

Description

用于交互式云应用的地理分布式灾难恢复
背景
因特网是服务全世界数十亿用户的全球数据通信系统。因特网为用户提供对于大量在线信息资源和服务(包括由万维网、基于内联网的企业等提供的那些)的访问。得益于如今存在的各种类型的个人计算设备(诸如个人计算机、膝上型/笔记本计算机、智能手机和平板计算机)的普及以及因特网的普及,在数量越来越多的地理区域中的数量持续增长的用户在他们的日常生活中惯例地使用数量越来越多的web应用。例如,用户依赖于web应用来收发电子邮件、收发文本消息、视频会议、听音乐、看电影、搜索在线信息、存储和访问在线信息、以及在线购物和银行。Web应用通常被托管在数据中心上。
概述
提供本概述以便以简化形式介绍将在以下的详细描述中进一步描述的一些概念选择。本概述并非旨在标识出要求保护的主题的关键特征或必要特征,亦非旨在用作辅助确定要求保护的主题的范围。
本文中描述的地理分布式灾难恢复技术一般适用于确保被托管在当前数据中心上的应用的可用性。换言之,地理分布式灾难恢复技术实施例为应用提供灾难恢复。在一个示例性实施例中,用于复制所述应用的会话状态数据的选项被选择,其中所述选择是从各自包括不同的性能和资源成本权衡的一组不同的会话状态数据复制选项中做出的,并且所选择的选项确定所述应用的会话状态数据要如何被复制。所选择的选项随后被实施,其中该实施导致应用的会话状态数据被复制到当前数据中心之外,从而确保这一数据在当前数据中心离线的情况下保持可用。
在另一示例性实施例中,客户端计算机从当前数据中心接收指定用于复制应用的会话状态数据的选项的消息,其中这一选择是从各自包括不同的性能和资源成本权衡的一组不同的会话状态数据复制选项中做出的,并且所指定的选项确定应用的会话状态数据要如何被复制。所指定的选项随后被实施,其中该实施导致应用的会话状态数据被复制到当前数据中心之外,从而确保这一数据在当前数据中心离线的情况下保持可用。
又一示例性实施例涉及在数据中心网络中供应和使用备用数据中心容量。对要被添加到数据中心网络中的每一个数据中心的备用服务器容量的量作出判断,以使得这一网络能够在任何一个数据中心发生故障时接管其当前的应用负载。这一确定通过考虑不同因素来做出,因素包括以下的一个或多个:数据中心的总数、或者每一个数据中心的当前服务器容量、或者每一个数据中心的地理位置。随后指示被确定的量的备用服务器容量被添加到每一个数据中心。随后,每当任何一个数据中心发生故障时,发生故障的数据中心的当前应用负载被分发到被添加到每一个剩余的数据中心的备用服务器容量上。
附图简述
参考以下描述、所附权利要求书以及附图,将更好地理解此处所描述的地理分布式灾难恢复技术实施例的具体特征、方面和优点,附图中:
图1是以简化形式示出用于实现本文描述的灾难恢复技术实施例的体系结构框架的示例性实施例的示图。
图2是概述可被本文中描述的地理分布式灾难恢复技术实施例使用的不同会话状态数据复制选项以及与每一个复制选项相关联的性能和资源成本参数的表。
图3以简化形式示出用于选择用于复制正被托管在数据中心上的云应用的会话状态数据的合适的选项的过程的一个实施例的流程图。
图4是以简化形式示出用于选择用于复制云应用的会话状态数据的合适的选项的过程的另一实施例的流程图。
图5是以简化形式示出用于选择用于复制云应用的会话状态数据的合适的选项的过程的又一实施例的流程图。
图6以简化形式示出用于确保云应用的可用性的服务器侧的过程的示例性实施例的流程图。
图7以简化形式示出用于为云应用提供灾难恢复的客户端侧的过程的示例性实施例的流程图。
图8以简化形式示出用于供应和使用云中的多余数据中心容量的示例性实施例的流程图。
图9是示出其上可实现本文所述的灾难恢复技术的各实施例和元素的通用计算机系统的简化示例的示图。
详细描述
在以下对地理分布式灾难恢复技术实施例(此后简称为灾难恢复技术实施例)的描述中,对附图进行了参考,附图形成了实施例的一部分且在其中作为说明示出了可在其中实践该灾难恢复技术的具体实施例。可以理解,可以使用其它实施例并且可以做出结构上的改变而不背离灾难恢复技术实施例的范围。
还应注意,出于清楚的目的,在描述此处所描述的灾难恢复技术实施例中将依靠具体的术语,但并不意味着这些实施例被限制于所选择的具体术语。此外,应当理解的是,每个具体术语包括以宽泛地类似方式工作以实现类似目的的所有其技术等同物。此处提及“一个实施例”、或“另一实施”、或“示例性实施例”、或“替代实施例”、或“一个实施方式”、或“另一实施方式”、或“示例性实施方式”、或“替代实施方式”意味着结合实施例或实施方式描述的特定特征、特定结构或特定特性可被包括在灾难恢复技术的至少一个实施例中。在本说明书中各个地方出现短语“在一个实施例中”、“在另一实施例中”、“在示例性实施例中”、“在替代实施例中”、“在一个实施方式中”、在“另一实施方式中”、在“示例性实施方式中”、以及在“替代实施方式中”不一定全都指同一实施例或实施方式,也不是与其他实施例/实施方式互斥的单独或替换实施例/实施方式。此外,表示灾难恢复技术的一个或多个实施例或实施方式的过程流的顺序并不固有地指示任何特定顺序,也不暗示对灾难恢复技术的任何限制。
术语“云应用”被使用在此以指在云中运行并且可被托管(例如被部署)在可位于不同地理区域(例如,世界的不同区域)中的多个数据中心上、并且可由多个远程终端用户(此后简称为用户)并发地使用的web应用。换言之,云应用是地理上分布的web应用。术语“客户端计算设备”被使用在此以指用户用来创建与给定交互式云应用的交互式会话的计算设备。
1.0用于交互式云应用的地理分布式灾难恢复
如云计算领域中可理解的,有一类新兴的被快速开发并被托管在流行的云平台上的交互式云应用。一般来说,本文中描述的灾难恢复技术实施例提供用于这类应用的地理分布式灾难恢复,而同时最小化与提供这一灾难恢复相关联的性能成本(例如,最小化客户端等待时间)并且最小化资源成本(例如,网络带宽成本和数据存储成本等)。换言之,灾难恢复技术实施例一般涉及确保(例如,最大化)交互式云应用的可用性,使得应用及其最近访问(例如,最新鲜)状态数据保持对用户可用,即使托管该应用的数据中心中的一个或多个出于无论什么原因离线。
一般来说,并且web应用领域中可理解的,存在与给定的交互式云应用的总体状态相关联的两种类型的数据,即会话状态数据和持久状态数据。会话状态数据与一个或多个用户创建的与应用的交互式会话相关联。将会理解,会话状态可每当用户与应用交互时递增地改变。持久状态数据具有会话状态数据所不具有的两个属性,即持久性和并发性。持久状态数据的持久性属性指的是持久状态数据持续到所有的用户已离开该交互式会话之后并且该交互式会话结束之后的事实。相反,会话状态数据持续仅仅该交互式会话的生命期,并且可一旦所有的用户离开该交互式会话就立即被丢弃。持久状态数据的并发性属性指的是多个用户和多个交互式会话可在同时使用该持久状态数据的事实。用户与应用的交互中的许多影响会话状态数据但是不影响持久状态数据。
如将从以下更详细的描述中理解的,本文中描述的灾难恢复技术实施例中的全部特别聚焦于复制发生在网络上的在给定交互式云应用和一个或多个客户端计算设备之间的交互式会话的会话状态数据。然而,灾难恢复技术实施例中的一些也可被用于复制应用的持久状态数据。灾难恢复技术实施例确保在当前正主存应用并服务该会话的数据中心离线并因此变得不能够继续服务该会话的情况下,最近的会话状态数据将保持对客户端计算设备可用。如云计算领域中可理解的,存在各种技术用于在数据中心故障的情况下保护该持久状态数据,其中的一个示例是传统的Paxos协议族。灾难恢复技术实施例将会话状态数据与持久状态数据分开对待的事实不要求对现有web应用的明显修改,因为这类应用已经通过使用用于web应用的开发平台所提供的会话状态应用编程接口(API)显式地保存了连续的客户端请求之间的会话状态。灾难恢复技术实施例保持会话状态数据和持久状态数据之间的一致性,因为各实施例存储并将在一旦当前服务该会话的数据中心出于无论什么原因离线并因此变得不能继续服务该会话时恢复最近会话状态数据。
如将在以下更详细描述的,存在与确保交互式云应用的可用性相关联的各种性能和资源成本(例如,资源使用)权衡。灾难恢复技术实施例允许给定交互式云应用的开发者通过复制应用的会话状态数据来确保应用对用户的可用性。由此,与应用的交互式会话的会话状态数据被针对数据中心故障而受到保护。如将从以下的更详细描述中理解的,灾难恢复技术实施例复制整个会话状态,包括以用户为中心的数据以及服务器计算的数据两者。
如以下还将更详细描述的,灾难恢复技术实施例提供用于复制应用的会话状态数据的一组不同选项,其中每一个不同的会话状态数据复制选项具有不同的性能和资源成本权衡。灾难恢复技术实施例还提供各种用于自动选择会话状态数据复制选项中的一个合适的选项的方法,该合适的选项增加(例如最大化)与应用的给定交互式会话的性能(并因此应用的用户体验到的性能)和/或减少(例如最小化)该交互式会话的资源成本(例如,减少所使用的资源)。这一自动选择基于可由应用规定的各种性能约束和资源成本约束以及它们的优先次序。灾难恢复技术实施例可在交互式会话中间基于这些约束中的变化、它们优先次序的变化、或规定的在支持该应用的计算和联网基础结构中的运行时条件来自动从之前选择的会话状态数据复制选项切换到新选择的会话状态数据复制选项。
换言之,灾难恢复技术实施例自动地调节与确保交互式云应用的可用性相关联的性能和资源成本权衡并且每当刚刚描述的规定的运行时条件改变时动态调适这一调节(例如,实时地调适这一调节)。一般来说,并且如之后将更详细描述的,这些运行时条件可包括但不限于各种性能和资源成本,诸如网络带宽成本、客户端计算设备体验到的网络等待时间、数据存储成本、处理成本、以及电池能量耗取成本等等。运行时条件还可包括但不限于各种资源可用性,诸如计算设备处理器、存储器、以及电池等的当前可用性(例如,百分比使用)。这些运行时条件中的每一个对于基础结构中的不同客户端和服务器计算设备可以是不同的,并且对于基础结构中的网络的不同部分是不同的。运行时条件中的每一个还可以随时间改变。
出于包括但不限于以下的各种原因,本文中描述的灾难恢复技术实施例是有利的。如将从以下的更详细描述中理解的,灾难恢复技术实施例通过复制应用的会话状态数据来将交互式云应用从数据中心故障中复原。灾难恢复技术实施例最小化与这一会话状态数据复制相关联的计算和网络传输成本,使得与该应用的交互式会话的性能被最大化、针对该应用的用户响应时间被最小化、并且主存该应用的数据中心的资源成本被最小化。灾难恢复技术实施例还允许地区法律要求被满足(例如,一些国家中的当前规定指示由数据中心服务的数据中的一些必须位于国家疆界内)。灾难恢复技术实施例还容易地与现有云应用集成,在一些情况下,无需源代码修改。灾难恢复技术实施例自动适配于客户端计算设备处的网络带宽变化(例如,由蜂窝或者WiFi网络信号强度波动导致的网络带宽变化、或者因特网服务提供商的线路回路使用、或DSL(数字订户线)网络线长度变化、或边缘网络拥塞(也被知晓为最后一英里拥塞)、或移动代理服务器可能对要发送给客户端计算设备的数据进行压缩的事实等等)。灾难恢复技术实施例还自动适配于变化的数据中心放置,并且当新的数据中心被添加到云时明显使云应用受益。
如迄今描述的,数量持续增长的地理区域中的数量不断增长的用户在其日常生活中惯例地使用数量不断增长的web应用。由于现实中对数据中心的容量(例如,存储大小、计算能力、网络带宽、以及功耗)方面的限制,这种情形为主存web应用的数据中心带来了伸缩性挑战。本文中描述的灾难恢复技术实施例是进一步有利的,在于它们提供针对交互式云应用的使用伸缩性(例如,即使是大量用户正同时使用该应用,灾难恢复技术实施例也确保给定交互式云应用的可用性)。本文中描述的灾难恢复技术实施例还允许发生在网络上的在交互式云应用和客户端计算设备之间的交互式会话由附近的数据中心来服务。换言之,灾难恢复技术实施例确保正主存给定交互式云应用并且当前服务该应用和给定客户端计算设备之间的给定交互式会话的数据中心将靠近客户端计算设备,而不管客户端计算设备处于哪个地理区域。数据中心和客户端计算设备的这一紧密靠近降低了客户端等待时间和用户响应时间。
将会理解,给定交互式云应用的用户在与该应用的会话的交互阶段期间特别对应用的性能特别敏感。作为示例而非限制,电子商务网站的用户在浏览该网站上的商品时可能想要快速响应,但是可在进行涉及信用卡验证的商品购买的最后阶段期间接受稍慢的响应时间。一旦用户开始使用该应用(例如,一旦用户在电子商务网站上输入对于想要的商品名称的搜索请求、或者在旅行网站上针对航班搜索输入想要的出发和目的地城市以及想要的日期、或者将朋友邀请到在线聊天会话、或诸如此类),则本文中描述的灾难恢复技术实施例假设与该应用的交互式会话已开始。与交互式会话相关的数据可惯例地随会话推进由用户和应用两者生成。作为示例而非限制,一旦在旅行网站上的航班搜索已被完成,该网站可能已生成了关于哪些可用航班在想要的日期在想要的出发和目的地城市之间运营的数据。用户可能还已输入了针对航班搜索的过滤条件(例如,在各种类型的过滤条件中,用户可能已请求查看仅仅在5:00PM之后出发并且最多具有一站的可用航班)。在交互式会话中的这一刻,会话状态数据将包括由用户输入的数据(例如,想要的出发和目的地城市、想要的日期、以及过滤条件)以及由网站响应于这一用户输入的数据而生成的数据(例如,哪些可用航班在想要的日期在想要的出发和目的地城市之间运营并且满足过滤条件)两者。
本文中描述的灾难恢复技术实施例确保即使主存应用并且当前服务网络上的在应用和一个或多个客户端计算设备之间的交互式会话的数据中心出于任何原因离线并且也主存该应用的另一个数据中心接管服务该会话的情况下,最近会话状态数据保持对给定交互式云应用可用。换言之,在刚刚描述的其中用户在旅行网站上执行航班搜索的示例中,如果主存应用并且当前服务与用户的交互式会话的数据中心离线,则灾难恢复技术实施例确保接管服务该会话的另一数据中心能够访问最近会话状态数据。因此,用户将不必非得重新输入他们之前输入过的任何数据,并且另一数据中心将不必非得重新计算之前响应于用户输入的数据计算过的任何数据。如果用户接着输入请求仅查看通过一特定中转机场运营的可用航班的另一过滤条件,则这一另一过滤条件将被路由到该另一数据中心,该另一数据中心使用最近会话状态数据来为用户生成指示之前选择和过滤的航班中的哪些航班满足这一另一过滤条件的新数据。
1.1体系结构框架
图1以简化形式示出用于实现本文描述的灾难恢复技术实施例的体系结构框架的示例性实施例。如图1中例示的,体系结构框架100包括一个或多个客户端计算设备102/116、网络108、以及云138。如云计算领域中可理解的,云138一般包括可被放置在不同地理区域中的多个数据中心(例如104/106/118)。网络108允许客户端计算设备102/116与数据中心104/106/118通信并交换信息,并且还允许数据中心彼此通信和交换信息。将会理解,网络108可采用各种各样的局域和广域联网技术。作为示例而非限制,在灾难恢复技术实施例的示例性实施例中,网络108是因特网。客户端计算设备102/116中的每一个可以是任何类型的计算设备。作为示例而非限制,客户端计算设备102/116中的每一个可以是移动计算设备(诸如智能手机、或平板计算机、或个人数字助理等),或可以是非移动计算设备(诸如台式个人计算机(PC)、或膝上型计算机等)。
如迄今所描述的并且再次参考图1,用户(未示出)可使用客户端计算设备102/116来创建与想要的交互式云应用114/132(此后有时被简称为云应用,或者有时甚至被更简称为应用)的交互式会话112,该交互式云应用可被托管在数据中心104/106/118上。各具体地,当正使用给定客户端计算设备102的给定用户想要使用想要的云应用114/132时,包括但不限于以下的各种事情发生。与应用114/132相关联的应用客户端110运行在客户端计算设备102上。数据中心104中主存应用114的那个数据中心被选择服务应用和应用客户端110之间的交互式会话112。如图1中所例示的,当前被选择服务交互式会话112的数据中心在本文中被称为当前数据中心104。
再次参考图1,在当前数据中心104处于无论什么原因变为不能够服务交互式会话112的情况下,主存应用的副本132的一个或多个其它数据中心106/118被选择服务交互式会话112。将会理解,当前数据中心104可能出于包括但不限于以下的各种理由变得不能继续服务交互式会话112。由于当前数据中心内的故障或网络108中的故障、或者当前数据可能变得过载的缘故,当前数据中心104可离线。如图1例示的,在当前数据中心104变为不能够服务交互式会话112的情况下,被选择服务交互式会话112的其它数据中心在本文中被称为后备数据中心106/118。本文中描述的灾难恢复技术实施例假设被托管在后备数据中心106/118上的应用的副本132可提供与被托管在当前数据中心104上的应用114相同的功能。
如云计算领域中可理解的并且再次参考图1,体系结构框架100中的数据中心104/106/118中的每一个可包括在数据中心中的内部网络(未示出)上通信的多个服务器计算设备(未示出)。一般来说,大型数据中心包括大量服务器计算设备,而小型数据中心包括少量的服务器计算设备。本文中描述的灾难恢复技术实施例可被用在各种框架100配置中,从包括少量大型数据中心的配置到包括大量小型数据中心的配置。在灾难恢复技术的示例性实施例中,应用114运行在当前数据中心104中的服务器计算设备中的一个上。换言之,发生在网络108上的应用114和应用客户端110之间的交互式会话112由当前数据中心104中的服务器计算设备中的一个来服务。当前数据中心104中运行应用114并服务交互式会话112的服务器计算设备此后被简称为应用服务器。
如云计算领域中还理解的并且再次参考图1,对于数据中心104/106/118中哪一个将是主存应用114/132的当前数据中心104、而这些数据中心中的哪一个或多个将是备份数据中心106/118的选择可使用各种传统方法来动态(例如,实时地)作出。作为示例而非限制,这一选择可或者由为应用114/132部署的边缘节点网络(未示出)或者由内容递送网络(也被称为内容分发网络或缩写为CDN)(未示出)作出,或者由应用客户端110本身(如使用循环域名系统的情况)作出。无论被用来选择当前数据中心104和后备数据中心106/118的具体方法是什么,本文中描述的灾难恢复技术实施例假设这些选择已经被作出。一旦当前数据中心104和后备数据中心106/118已被选择,可在网络108上创建应用客户端110和运行在当前数据中心中的应用114之间的交互式会话112。灾难恢复技术实施例假设对于当前数据中心104和后备数据中心106/118的预选择对于每个交互式会话112是已知的。
再次参考图1,如果当前数据中心104在存在多个后备数据中心106/118处于工作中的时刻离线,可以各种方式作出对于哪个备份数据中心将被选择成为针对每一个现有和新的交互式会话112的新的当前数据中心的确定。作为示例而非限制,在本文中描述的灾难恢复技术的一个实施例中,这一选择可基于静态供应决策(例如,如果两个后备数据中心106和118当前正工作,则这些后备数据中心中的一个106可接管服务现有和新的交互式会话112的一半,而这些后备数据中心中的另一个118可接管服务现有和新的交互式会话112的另一半)。在灾难恢复技术实施例的另一实施例中,这一选择可基于交互式会话112被最初创建时在每一个后备数据中心106/118中的当前负载条件。
再次参考图1,注意到在交互式会话112期间,与应用有关的消息在网络108上仅在运行在客户端计算设备102上的应用客户端110和运行在当前数据中心104中的应用114之间交换。换言之,没有与应用有关的消息在当前数据中心104和后备数据中心106/118之间被交换。如将会从以下并且在图1中例示的更详细的描述中理解的,除了与应用有关的消息,此后更详细描述的各个附加程序模块可在网络108上在客户端计算设备102/116和当前数据中心104之间、以及在当前数据中心和后备数据中心106/118之间交换各种其它类型的信息。这些特定信息交换在此后被简称为灾难恢复信息交换。
将理解刚描述的灾难恢复信息交换可用各种方式来实现。作为示例而非限制,在给定灾难恢复信息交换将发生在给定客户端计算设备(例如102)和当前数据中心104之间的情况下,灾难恢复信息交换可被背负在要在网络108上客户端计算设备和当前数据中心之间的给定与应用相关的消息上(例如,被包括在内)。在给定灾难恢复信息交换要发生在当前数据中心104和给定后备数据中心(例如106)之间的情况下,灾难恢复信息交换可由附加的程序模块来实现,该附加的程序模块将它们各自的同与应用有关的消息无关的消息通过网络108传送。在给定客户端计算设备(例如,102)和当前数据中心104之间的灾难恢复信息交换也可能由附加的程序模块来实现,该附加的程序模块将它们各自的同与应用有关的消息无关的消息通过网络108传送。
再次参考图1,除了应用客户端110,各个附加程序模块可被运行在客户端计算设备102/116中的每一个上。如图1中例示的,这些附加程序模块包括但不限于客户端状态存储模块120、故障检测器模块122、以及客户端资源探测模块124。这些附加程序模块120/122/124中的每一个的示例性功能将在以下更详细地描述。如将从对于也在以下的不同会话状态数据复制选项的更详细描述中理解的,这些选项中的一些需要使用所有的附加程序模块120/122/124,而这些选项中的另一些需要使用这些附加程序模块的仅仅一个子集。因此,客户端计算设备102/116中的一些可能正运行所有的附加程序模块120/122/124,而其它客户端计算设备可能正运行这些附加程序模块的仅仅一个子集。当前被选择并被实现用于给定客户端计算设备(例如,102)的特定会话状态数据复制选项确定附加程序模块120/122/124中的哪些在给定的时间点正运行在客户端计算设备上。
再次参考图1,针对涉及将会话状态数据存储在客户端计算设备上的会话状态数据复制选项,客户端状态存储模块120将交互式会话112的会话状态数据存储在客户端计算设备102上。换言之,客户端状态存储模块输入包括最近的会话状态数据的数据对象(未示出)并将其存储在客户端计算设备102上。该客户端状态存储模块还可在应用客户端110请求存储的数据对象时检索和输出这一存储的数据对象。客户端状态存储模块因而确保了该最近的会话状态数据保持对于应用客户端可用,只要该客户端计算设备是可用的(例如,保持工作)。
再次参考图1,客户端状态存储模块120可用各种方式来实现。作为示例而非限制,在本文中描述的灾难恢复技术的一个实施例中,客户端状态存储模块可使用由传统web浏览器所提供的cookie机制来将数据存储在客户端计算设备102上。在灾难恢复技术的另一实施例中,客户端状态存储模块可使用JavaScript程序,该JavaScript程序将客户端计算设备上的数据对象存储在该客户端计算设备上可用的易失性存储器中或者各种类型的非易失性存储器(例如,持久存储)中的任意一种中。这类非易失性存储器的示例包括但不限于磁盘存储和闪存存储器。将可立即,将最近的会话状态数据存储在客户端计算设备上的易失性存储器中不会有问题,因为如迄今所描述的,会话状态数据仅持续交互式会话的生命周期,并且可在一旦应用客户端110离开了该交互式会话就被丢弃。在灾难恢复技术的又一实施例中,客户端状态存储模块可使用如今的web浏览器应用所支持的传统web存储API来将最近的会话状态数据写到辅助存储,诸如云138中的blob存储元件。这一特定实施例的优点在于它最小化了客户端计算设备上的存储器开销。
再次参考图1并且如将在之后更详细描述的,当交互式会话112的会话状态数据使用不同会话状态数据复制选项中的第四个来复制时,故障检测器模块122工作。一般来说,故障检测器模块以两个阶段工作,即故障检测阶段和后续恢复阶段。如将从以下的更消息描述中理解的,故障检测器模块的各特征的优点在于它们最小化从当前数据中心104离线中恢复所耗费的时间。本文中描述的灾难恢复技术实施例假设云138中的各个数据中心104/106/118采用传统的故障-停止故障模型。如分布式计算领域所理解的,由于众所周知的采用OneFaultyProcess(一故障过程)的分布式一致性的不可能性(也被称为“FLP结果”和“FLP不可能性证据”)的缘故,分布式故障检测器不得不在完整性(例如,每一个故障被最终检测)和准确性(例如,正误识)之间选择。本文中描述的灾难恢复技术实施例提供快速并且确保完整性但是不一定确保准确性的故障检测方案。需要注意,更复杂但是可确保完整性和准确性两者的灾难恢复技术的替代实施例是可能的。
在故障检测阶段期间,故障检测器模块122检测正服务交互式会话112的当前数据中心104何时离线并因此变得不能够继续服务该会话。故障检测器模块可以用各种方式来实现。作为示例而非限制,在本文中描述的灾难恢复技术的一个实施例中,故障检测器模块可使用定时器来测量从应用客户端110最后通过网络108向应用114提交客户端请求消息以来所逝去的时间。如果应用客户端没有在预规定的时间段内接收到对于客户端请求消息的应用响应,则故障检测器模块可假设当前数据中心已故障并且离线(虽然将理解导致当前数据中心不能响应的实际故障可以处于网络中的某处或其它处)。在灾难恢复技术的另一实施例中,故障检测器模块可周期性地通过网络传送文本消息给当前数据中心,并从其接收指示其当前可用性的测试响应消息(例如,这一测试响应消息可指示当前数据中心或者完全可用,或者当前变得过负载并因此可能在不久的将来不可用,或者当前正采用电池后备能源来工作并因此可能在不久的将来故障等等)。在灾难恢复技术的又一实施例中,每当故障检测器模块检测到当前数据中心的导致当前不能服务交互式会话的故障时,故障检测器模块可周期性地使用与当前数据中心无关的机制来测试客户端计算设备102处网络的可能性,并且故障检测器模块可使用这一网络可用性信息来增强其关于当前数据中心为什么当前不能服务交互式会话的知识。
再次参考图1,一旦故障检测阶段完成,应用客户端110就启动恢复阶段,该恢复阶段通过网络108将会话恢复请求消息传送给已被选择为接管服务该交互式会话112的后备数据中心(例如106),其中这一消息包括被存储在客户端计算设备102上的该交互式会话的最近的会话状态数据。当被选择的后备数据中心接收到来自应用客户端的这一会话恢复请求消息时,被选择的后备数据中心将从该消息中提取最近的会话状态数据并将其提供给应用的副本132,使得该交互式会话112可被恢复。
将会理解,在当前数据中心离线之后,应用被暂停,直到在被选择的后备数据中心处已恢复了最近的会话状态数据并且已恢复了该交互式会话。应用的这一暂停可能使用户认为应用已冻结。为了最小化用户的挫败感并避免他们认为应用已冻结,在故障检测器模块检测到当前数据中心已离线之后,故障检测器模块可任选地通知应用客户端当前数据中心已离线,并且应用客户端可任选地向用户显示一消息,告诉他们这一情况并且期望等待直到交互式会话被恢复。一旦恢复阶段被成功完成并且交互式会话已在后备数据中心处被恢复,应用客户端就可任选地向用户显示另一消息,告诉他们应用再次可供使用。
一般来说并且再次参考图1,客户端资源探测模块124与运行在当前数据中心104上的当前服务器资源探测模块130协作地工作以周期性地测量客户端计算设备102处的相关网络性能情况和资源可用性情况。也运行在当前数据中心104上的决策引擎模块126可使用这些测得的情况与本文中描述的其它测得的情况一起来选择合适的会话状态数据复制选项。更具体地并且作为示例而非限制,在本文中描述的灾难恢复技术的一个实施例中,客户端资源探测模块124可接收由当前服务器资源探测模块130周期性地发送给客户端资源探测模块的服务器探测消息,并且可立即对这些消息中的每一个进行响应。当前服务器资源探测模块130可简单地通过测量服务器资源探测模块通过网络108传送每一个服务器探测消息给客户端资源探测模块124的时间和服务器资源探测模块从客户端资源探测模块接收到对于该服务器探测消息的响应的时间之间的时间来测量与同客户端计算设备102通信相关联的当前网络等待时间(例如,当前数据中心104抵达客户端计算设备的当前网络往返时间)。这一测量提供对零有效载荷下的当前网络等待时间的估计。将会理解,由于每一个服务器探测消息具有非常微小的有效载荷,因此与服务器探测消息及其相关联的响应相关联的网络108开销是可忽略不计的。
再次参考图1,在本文中描述的灾难恢复技术的另一实施例中,客户端资源探测模块124可周期性地测量与同当前数据中心104通信相关联的=当前网络等待时间以及将这一网络等待时间测量值传送给当前数据中心。客户端资源探测模块还可周期性地测量客户端计算设备102可用的当前网络带宽并将这一网络带宽测量值传送给当前数据中心。客户端资源探测模块还可周期性地测量客户端计算设备中的一个或多个资源的当前可用性(包括但不限于其当前电池可用性(例如,百分比使用)、其当前处理器可用性、以及其当前存储器可用性)并将这些资源可用性测量值传送给当前数据中心。
再次参考图1,客户端资源探测模块124可使用客户端计算设备102上可用的各种机制以各种方式来实现。作为示例而非限制,在本文中描述的灾难恢复技术的一个实施例中,客户端资源探测模块可简单地通过测量应用客户端110通过网络108传送每一个客户端请求消息给应用114的时间和应用客户端从应用接收对于客户端请求消息的应用响应的时间之间的时间来周期性地测量与同当前数据中心104通信相关联的当前网络等待时间、以及对客户端计算设备可用的当前网络带宽。在灾难恢复技术的另一实施例中,客户端资源探测模块可周期性地通过网络传送客户端探测消息给当前数据中心,并且随后使用接收到的来自当前数据中心的探测响应消息来确定与同当前数据中心的通信相关联的当前网络等待时间、以及对客户端计算设备可用的当前网络带宽。在灾难恢复技术的又一实施例中,客户端资源探测模块可使用可能在客户端计算设备的操作系统中存在的一个或多个API来确定刚刚描述的客户端计算设备中的资源的当前可用性。将会理解,可能存在不可能测量客户端计算设备中的某些资源的时候(例如,当应用客户端是运行在web浏览器中的网页时,该应用客户端可能不被允许进行某些资源测量)。
再次参考图1,除了应用114,各个附加程序模块可被运行在当前数据中心104上。如图1中例示的,这些附加程序模块包括但不限于决策引擎模块126、当前状态存储128、以及当前服务器资源探测模块130。这些附加程序模块126/128/130中的每一个的示例性功能将在以下更详细地描述。在本文中描述的灾难恢复技术的示例性实施例中,决策引擎和当前状态存储模块126和128可以运行在应用服务器(未示出)上,或可以运行在当前数据中心104中的另一服务器计算设备上。当前服务器资源探测模块130一般运行在应用服务器上。
一般来说并且再次参考图1,当前服务器资源探测模块130与客户端资源探测模块124以及运行在后备数据中心106/118中的每一个上的后备服务器资源探测模块134两者协作地工作以周期性地测量当前数据中心104中的应用服务器处的相关网络性能情况和资源可用性情况。当前服务器资源探测模块130将这些测量值传送给决策引擎模块126。决策引擎模块126可使用这些测得的情况与本文中描述的其它测得的情况一起来选择合适的会话状态数据复制选项。更具体地并且作为示例而非限制,当前服务器资源探测模块130可周期性地测量与同客户端计算设备102的通信相关联的当前网络等待时间、以及对客户端计算设备可用的当前网络带宽。在本文中描述的灾难恢复技术的示例性实施例中,这些当前网络等待时间和当前网络带宽的测量值可由以下来作出:当前服务器资源探测模块130周期性地通过网络108传送服务器探测消息给客户端计算设备102,并且随后使用接收到的来自客户端计算设备的探测响应消息来确定与同客户端计算设备的通信相关联的当前网络等待时间、以及对客户端计算设备可用的当前网络带宽。当前服务器资源探测模块130还可周期性地测量与同每一个后备数据中心106/118的通信相关联的当前网络等待时间、以及对每一个后备数据中心可用的当前网络带宽。在灾难恢复技术的示例性实施例中,这些当前网络等待时间和当前网络带宽的测量值可由以下来作出:当前服务器资源探测模块130周期性地通过网络108传送服务器探测消息给每一个后备数据中心106/118,并且随后使用接收到的来自每一个后备数据中心的探测响应消息来确定与同每一个后备数据中心的通信相关联的当前网络等待时间、以及对每一个后备数据中心可用的当前网络带宽。
再次参考图1,当前服务器资源探测模块130还可周期性地测量应用服务器中的一个或多个资源的当前可用性,包括但不限于当前处理器可用性和当前存储器可用性。将会理解,当前服务器资源探测模块可使用在应用服务器上可用的各种机制以各种方式来进行这些资源可用性测量。作为示例而非限制,当前服务器资源探测模块可使用可能在应用服务器的操作系统中存在的一个或多个API来确定刚刚描述的应用服务器中的资源的当前可用性。当前服务器资源探测模块还可包括客户端资源探测模块124可用来测量对客户端计算设备102可用的当前网络带宽的功能。作为示例而非限制,在通过网络108从客户端资源探测模块接收到上述的客户端探测消息之际,当前服务器资源探测模块可通过将数据有效载荷通过网络传送给客户端资源探测模块来对该客户端探测消息进行响应。客户端资源探测模块可测量接收数据有效载荷所花费的时间,并且随后可使用这一时间和有效载荷的大小来计算对客户端计算设备可用的当前网络带宽。
再次参考图1,决策引擎模块126周期性地通过网络108从客户端资源探测模块124接收信息,其中这一信息包括客户端资源探测模块在客户端计算设备102处所作出的最近的网络性能和资源可用性测量值。决策引擎模块126还周期性地接收来自当前服务器资源探测模块130的信息,其中这一信息包括当前服务器资源探测模块在当前数据中心104中的应用服务器处所作出的最近的网络性能和资源可用性测量值。决策引擎模块126还接收上述的可由应用114规定的各种性能约束和资源成本约束以及它们的优先次序。可由应用规定的示例性性能约束包括但不限于对于客户端计算设备102的与复制会话状态数据相关联的最大可允许等待时间成本、或者对于应用114/132的最小可允许可用性值中的任意一个、或者这一最大可允许等待时间成本和这一最小可允许可用性值两者。以下将更详细描述可由应用规定的示例性资源成本和相关约束。决策引擎模块126随后为与应用114的交互式会话112选择用于复制会话状态数据的合适的选项,该选项提高交互式会话的性能和/或降低交互式会话的资源成本。如以下将更详细描述的,这一选择是从一组不同的会话状态数据复制选项中作出的,这些选项中的每一个具有不同的性能和资源成本权衡,并且可基于刚刚描述的约束及其优先次序。换言之,决策引擎模块126确定应用114的会话状态数据将如何在框架100中被存储和复制。决策引擎模块126可使用各种方法来作出这一选择,以下将更详细地描述这些方法的示例。
再次参考图1,在本文中描述的灾难恢复技术的示例性实施例中,在决策引擎模块126已选择了合适的会话状态数据复制选项并实施之后,决策引擎模块可不间断地监视其从客户端资源探测模块和当前服务器资源探测模块124和130接收的信息。决策引擎模块126还可不间断地监视可由应用114规定的各种性能约束和资源成本约束以及它们的优先次序。每当决策引擎模块126检测到这一接收的信息或这些约束或其优先次序中的改变时,决策引擎模块可再次选择提高与应用114的交互式会话112的性能和/或降低交互式会话的资源成本的合适的一个会话状态数据复制选项,其中这一新选择的选项可与之前选择的选项相同或可以不同。
再次参考图1,针对涉及将会话状态数据存储在当前数据中心上的会话状态数据复制选项,当前状态存储模块128将交互式会话112的会话状态数据存储在当前数据中心104中。换言之,当前状态存储模块128输入包括最近的会话状态数据的数据对象(未示出)并将其存储在当前数据中心104中。该当前状态存储模块128还可在应用114请求存储的数据对象时检索和输出这一存储的数据对象。当前状态存储模块128因此确保了最近的会话状态数据在交互式会话112活跃时并且只要当前数据中心104可用就保持可用。当前状态存储模块128可以各种方式将数据对象存储在当前数据中心104中。作为示例而非限制,在本文中描述的灾难恢复技术的一个实施例中,当前状态存储模块128可将数据对象存储在易失性存储器中,或可以存储在当前数据中心104中可用的各种类型的非易失性存储器(例如,磁盘存储等)中。当前状态存储模块128还可将数据对象冗余地存储在当前数据中心104中以针对其内的服务器故障进行保护。
如图1中例示的,后备数据中心106/118中的每一个主存一个应用副本132。在当前数据中心104出于无论什么原因变为不能够服务交互式会话112的情况下,这些后备数据中心中的一个(例如106)将被自动选为接管服务该交互式会话。当这一接管发生时,在本文中描述的灾难恢复技术的示例性实施例中,应用的副本132将在被选择的后备数据中心106中的服务器计算设备中的一个上运行,并且交互式会话112将通过网络108在这一应用副本和应用客户端110之间恢复。应当注意,应用的副本132保持不被使用,直到这一接管发生。被选择的后备数据中心106中的运行应用的副本132并接管服务该交互式会话112的服务器计算设备此后被简称为后备应用服务器。
再次参考图1,除了应用的副本132,各个附加程序模块可被运行在后备数据中心106/118中的每一个上。如图1中例示的,这些附加程序模块包括但不限于之前提到的后备服务器资源探测模块134以及后备状态存储模块136。这些附加程序模块134/136中的每一个的示例性功能将在以下更详细地描述。在本文中描述的灾难恢复技术的示例性实施例中,后备状态存储模块136可以运行在后备应用服务器(未示出)上,或可以运行在所选的后备数据中心106中的另一服务器计算设备上。后备服务器资源探测模块134一般运行在后备应用服务器上。
再次参考图1,针对涉及将会话状态数据存储在后备数据中心中的会话状态数据复制选项,后备状态存储模块136接收来自当前数据中心104的交互式会话112的最近的会话状态数据并将这一接收到的会话状态数据存储在后备数据中心106中。换言之,后备状态存储模块136输入包括接收到的会话状态数据的数据对象(未示出)并将其存储在后备数据中心106中。该后备状态存储模块136还可在应用的副本132请求存储的数据对象时检索和输出这一存储的数据对象。后备状态存储模块136因此确保了会话状态数据在交互式会话112活跃时并且只要后备数据中心106可用就保持可用。后备状态存储模块136可以各种方式将数据对象存储在后备数据中心106中。作为示例而非限制,在本文中描述的灾难恢复技术的一个实施例中,后备状态存储模块136可将数据对象存储在易失性存储器中,或可以存储在后备数据中心106中可用的各种类型的非易失性存储器中。在灾难恢复技术的另一实施例中,后备状态存储模块136可将数据对象写入辅助存储,诸如可被放置在后备数据中心106内或者云138中的其它处的blob存储元件。这一特定实施例的优点在于增强的伸缩性并且最小化存储器开销。后备状态存储模块136还可将数据对象冗余地存储在后备数据中心106中以针对其内的服务器故障进行保护。将会理解,后备状态存储模块136可存储由当前数据中心104服务的多个交互式会话的会话状态数据。
一般来说并且再次参考图1,后备服务器资源探测模块134实现远程端点功能,该功能与当前服务器资源探测模块130协作式地工作并支持其之前提到的对与同后备数据中心106的通信相关联的当前网络等待时间以及对后备数据中心106可用的当前网络带宽的周期性测量。更具体地并且作为示例而非限制,后备服务器资源探测模块134可接收由当前服务器资源探测模块130周期性地发送的服务器探测消息,并且可立即响应这些消息中的每一个。在当前服务器资源探测模块130接收到来自后备服务器资源探测模块134的探测响应消息之际,当前服务器资源探测模块可通过测量每一个服务器探测消息被发送的时间与对应的探测响应消息被接收的时间之间的时间(例如,通过测量当前数据中心104和后备数据中心106之间的当前往返网络延迟)来确定与同后备数据中心106的通信相关联的当前网络等待时间。
考虑上述因素并且再次参考图1,将会理解,由本文中描述的灾难恢复技术实施例所提供的对会话状态数据的复制确保了应用114/132的会话状态数据在当前数据中心104出于无论什么原因离线并且因此变得不能够继续服务交互式会话112的情况下保持对应用客户端110可用(例如,没有任何会话状态数据被丢失)。如迄今描述的,灾难恢复技术实施例复制并因此保护整个会话状态,包括以用户为中心的数据以及服务器计算的数据两者。相应地,灾难恢复技术实施例允许正在应用客户端和应用之间进行的交互式会话的整个状态被保持,即使是在当前数据中心离线并且后备数据中心106/118中的一个接管服务该交互式会话的情况下。由此,如果当前数据中心出于无论何种原因离线,则没有任何会话状态数据将不得不由用户重新输入或由后备数据中心重新计算。
虽然本文中描述的灾难恢复技术实施例是在交互式会话被创建在给定的云应用和正由单个用户使用的单个客户端计算设备之间的上下文中讨论的,但是应当注意,灾难恢复技术实施例也支持与包括共同参与交互式会话并且可位于不同地理区域中的多个用户和多个客户端计算设备的云应用的交互式会话。换言之,灾难恢复技术实施例支持仅单个应用客户端正参与交互式会话的情形。灾难恢复技术实施例还支持运行在不同客户端计算设备上的多个应用客户端正协作地同时参与公共的交互式会话的情形(这一情形的示例包括多个地理上分布的用户协作地玩多玩家在线游戏、或者协作地参与在线视频电话会议、或者协作地编辑在线文档、或者协作地使用给定企业应用等等)。如从以下更详细描述中可理解的,在这一多客户端交互式会话中,灾难恢复技术实施例可取决于客户端计算设备处的各个网络性能情况和资源可用性情况来为参与会话的应用客户端中的不同的应用客户端选择不同的会话状态数据复制选项。另外,在这一多客户端交互式会话中,任何一个或多个应用客户端可在会话期间的任何时间离开,而灾难恢复技术实施例将确保该会话对于其余的应用客户端正确地继续。
另外,虽然灾难恢复技术实施例在本文中是在给定云应用服务单个交互式会话的上下文中讨论的,但是应当注意,灾难恢复技术实施例也支持其中应用同时服务多个交互式会话的场景。在这一场景中,灾难恢复技术实施例被针对由应用服务的每一个交互式会话独立地实现。
1.2通用库
一般来说,本章节描述了本文中描述的灾难恢复技术的各个实施例,其中之前提到的可被运行在客户端计算设备、当前数据中心、以及后备数据中心上的附加程序模块可被实现为通用库(未示出)。本章节中描述的灾难恢复技术实施例此后被简称为本文中描述的灾难恢复技术的通用库实施例。灾难恢复技术的通用库实施例在当前数据中心出于无论什么原因离线的情况下,自动在后备数据中心处恢复与云应用的活跃的交互式会话并且恢复最近的会话状态数据。通用库实施例既支持基于请求-响应的超文本传输协议(HTTP)云应用,也支持基于连续交互的web-socket(网络套接字)云应用。通用库实施例优先于云应用中的现有会话状态API和其应用客户端中的现有通信API。
在本文中描述的灾难恢复技术的通用库实施例的示例性实现中,每一个通用库就仅仅处于网络栈的应用层之下。相应地,通常将通过HTTP或web-socket来进行的与应用的交互将通过通用库来进行。换言之,通用库截取应用用来在网络上通信的HTTP和web-socket方法,并在应用消息被通过网络传送之前将附加信息(该附加信息被用于支持本文中描述的灾难恢复技术实施例)添加到应用消息中。这类附加信息的示例包括后备数据中心地址和会话状态时戳,以及其它类型的信息。在通用库实施例的示例性实现中,使用JSON(JavaScriptObjectNotation,JavaScript对象标注)编码来将这一附加信息添加到应用消息中。当消息在网络的另一端被接收到时,在该消息被传递给应用之前,该附加信息被通用库移除。
如将从以下的更详细描述中理解的,灾难恢复技术的通用库实施例出于包括但不限于以下的各种原因而有优势。通用库实施例允许附加程序模块容易地与现有的云应用集成,而无需非得对其进行显著的代码修改。通用库实施例还允许云应用开发者从附加程序模块的功能中受益,而无需非得理解它们底层实现的细节。通用库实施例还允许每一个附加程序模块以应用独立的方式工作,使得给定附加程序模块可由不同应用客户端或不同云应用所共享。通用库实施例因此消除了针对被托管在当前数据中心上的每一个不同应用分开实现决策引擎模块、当前状态存储模块、以及当前服务器资源探测模块的必要。通用库实施例还消除了针对被托管在每一个后备数据中心上的不同的应用副本分开实现后备服务器资源模块以及后备状态存储模块的必要。通用库实施例还消除了针对运行在每一个客户端计算设备上的每个不同应用客户端分开实现客户端状态存储模块、故障检测器模块、以及客户端资源探测模块的必要。
更具体地并且再次参考图1,决策引擎模块126可被实现为一个运行在当前数据中心104上并且由被托管在当前数据中心上的所有不同云应用(例如114)共享的通用库。这一特定通用库此后被简称为复制选项选择库。被托管在当前数据中心上的所有应用可将它们的性能约束和资源成本约束以及这些约束的优先次序输入到该复制选项选择库。对于被托管在当前数据中心上的每一个应用,复制选项选择库可随后使用该应用的约束及其约束的优先次序来独立地为当前正在进行或可能在将来要进行的与应用的交互式会话(例如112)中的每一个选择最优的会话状态数据复制选项。将会理解,将决策引擎模块实现为通用库特别好地适用于云计算场景、虚拟化的服务器场景、以及其中多个应用被托管在同一数据中心上的其它场景。在这些场景中,当前数据中心可服务与大量应用的大量交互式会话,并且复制选项选择库可在所有的会话和应用中共享。
再次参考图1,当前状态存储模块和当前服务器资源探测模块128和130可被实现为运行在当前数据中心104上并且由被托管在当前数据中心上的各个云应用(例如114)共享的另一个通用库。后备状态存储模块和后备服务器资源探测模块136和134可被实现为运行在每一个后备数据中心106/118上并且由各个云应用共享的又一个通用库。
再次参考图1,客户端状态存储模块、故障检测器模块以及客户端资源探测模块120/122/124可被实现为每一个应用客户端110可包括在其实现中的又一个通用库。作为示例而非限制,对于作为在客户端计算设备102/116上的网页来运行的基于web浏览器的应用,这一库可用JavaScript程序的形式来实现(这是有利的,因为JavaScript程序受大多数web浏览器支持)。对于其它类型的应用,这一库可以各种因平台而异的形式来实现(例如,在运行(微软公司的注册商标)操作系统的客户端计算设备上,这一库可以.NETDLL(动态链接库)的形式来实现)。将会理解,这些通用库实现都是有利的,因为它们生成可跨各种各样的客户端平台便携的通用库。
1.3会话状态数据复制选项
再次参考图1,本章节提供可由本文中描述的灾难恢复技术实施例使用的不同会话状态数据复制选项的更详细描述。换言之,本章节提供了对于用于复制发生在网络108上的应用114和应用客户端110之间的交互式会话112的会话状态数据的不同选项的更详细描述。如迄今所述的并且将会从以下的更详细描述中理解的,每一个不同的会话状态数据复制选项具有不同的性能和资源成本权衡。一般来说并且将会在之后被更详细描述的,TCn是表示对于客户端计算设备的与给定复制选项n相关联的等待时间成本的成本参数。BCn是表示对于该客户端计算设备的与复制选项n相关联的网络带宽成本的另一成本参数。BATCn是表示对于该客户端计算设备的与复制选项n相关联的电池能量耗取成本的又一成本参数。BDn是表示对于当前数据中心的与复制选项n相关联的网络带宽成本的另一成本参数。如云计算领域中可理解的,云服务提供商通常针对他们主存的给定云应用在与该应用相关联的数据离开主存该应用的数据中心时(诸如当当前数据中心将会话状态数据传送给客户端计算设备、或者传送给后备数据中心时)进行收费。SDn是表示对于当前数据中心的与复制选项n相关联的数据存储成本的另一成本参数。CDn是表示对于当前数据中心的与复制选项n相关联的处理成本的另一成本参数。
图2概述了可由本文中描述的灾难恢复技术实施例所使用的不同会话状态数据复制选项以及与每一个复制选项相关联的性能和资源成本参数(此后被简称为成本参数)。以下更详细地描述每一个会话状态数据复制选项及其相关联的成本参数。
图2中例示的会话状态数据复制选项中的第一个涉及将交互式会话的最近的会话状态数据存储在客户端计算设备上。这一特定选项此后被简称为复制选项1。一般来说并且现在将更详细描述的,在复制选项1中,交互式会话的最近的会话状态数据被添加到应用通过网络传送给应用客户端的每一个应用响应消息中。在应用客户端接收到给定应用响应消息之际,应用客户端将从该应用响应消息中提取最近的会话状态数据,并且客户端状态存储模块将把这一提取出的数据存储在客户端计算设备上,如迄今所描述的。交互式会话的最近的会话状态数据还被添加到应用客户端通过网络传送给应用的每一个客户端请求消息中。
在复制消息1的一个实施例中,应用将把最近的会话状态数据的整个集合添加到应用通过网络传送给应用客户端的每一个应用响应消息中。由此,应用客户端从应用接收的每一个应用响应消息将包括最近的会话状态数据的整个集合。应用客户端还将最近的会话状态数据的整个集合添加到应用客户端通过网络传送给应用的每一个客户端请求消息中。由此,应用从应用客户端接收的每一个客户端请求消息将包括最近的会话状态数据的整个集合。相应地,在当前数据中心离线并且来自应用客户端的给定客户端请求消息被转发到后备数据中心的情况下,接收到该客户端请求消息的应用的副本将具有最近的会话状态数据的整个集合,因为该集合被包括在该客户端请求消息中。
在复制选项1的另一实施例中,取代将最近的会话状态数据的整个集合添加到应用传送给应用客户端的每一个应用响应消息中,应用将把最近的会话状态数据的整个集合添加到应用传送给应用客户端的第一个应用响应消息中,以及添加到此后应用传送给应用客户端的每隔N个应用响应消息中(N是大于1的第一规定数目)。类似地,取代将最近的会话状态数据的整个集合添加到应用客户端传送给应用的每一个客户端请求消息中,应用客户端将把最近的会话状态数据的整个集合添加到应用客户端传送给应用的第一个客户端请求消息中,以及添加到此后应用客户端传送给应用的每隔M个客户端请求消息中(M是大于1的第二规定数目)。将会理解,N可以等于M、N可以大于M、或者N可以小于M。作为示例而非限制,当N=M=3时,会话状态数据的整个集合将被添加到应用传送给应用客户端的第一个应用响应消息和此后的每隔3个应用响应消息。类似地,会话状态数据的整个集合将被添加到应用客户端传送给应用的第一个客户端请求消息和此后的每隔3个客户端请求消息。
在复制选项1的又一实施例中,取代将最近的会话状态数据的整个集合添加到应用传送给应用客户端的每一个应用响应消息中,应用将把最近的会话状态数据的整个集合添加到应用传送给应用客户端的第一个应用响应消息中,并且应用仅会将会话状态数据中的增量(例如,仅仅会话状态数据的经修改的部分)添加到此后应用传送给应用客户端的每一个应用响应消息中(例如,应用将在第一个响应消息之后的每一个应用响应消息中仅仅添加自会话状态数据被最后一次传送给应用客户端以来会话状态数据中的改变)。类似地,取代将最近的会话状态数据的整个集合添加到应用客户端传送给应用的每一个客户端请求消息中,应用客户端将把最近的会话状态数据的整个集合添加到应用客户端传送给应用的第一个客户端请求消息中,并且应用客户端仅会将会话状态数据中的增量添加到此后应用客户端传送给应用的每一个客户端请求消息中(例如,应用客户端将在第一个客户端请求消息之后的每一个客户端请求消息中仅仅添加自会话状态数据被最后一次传送给应用以来会话状态数据中的改变)。
在复制选项1的又一实施例中,取代将最近的会话状态数据的整个集合添加到应用传送给应用客户端的每一个应用响应消息中,应用将把最近的会话状态数据的整个集合添加到应用传送给应用客户端的第一个应用响应消息中,并且应用将仅把会话状态数据中的增量添加到此后应用传送给应用客户端的每隔N个应用响应消息中。类似地,取代将最近的会话状态数据的整个集合添加到应用客户端传送给应用的每一个客户端请求消息中,应用客户端将把最近的会话状态数据的整个集合添加到应用客户端传送给应用的第一个客户端请求消息中,并且应用客户端将仅把会话状态数据中的增量添加到此后应用客户端传送给应用的每隔M个客户端请求消息中。作为示例而非限制,当N=M=3时,会话状态数据的整个集合将被添加到应用传送给应用客户端的第一个应用响应消息,并且仅会话状态数据中的增量将被添加到此后应用传送给应用客户端的每隔3个应用响应消息中。类似地,会话状态数据的整个集合将被添加到应用客户端传送给应用的第一个客户端请求消息,并且仅会话状态数据中的增量将被添加到此后应用客户端传送给应用的每隔3个客户端请求消息中。
将会理解,最近的会话状态数据可以各种方式被添加到应用客户端通过网络传送给应用的客户端请求消息、以及应用通过网络传送给应用客户端的应用响应消息中。作为示例而非限制,在本文中描述的灾难恢复技术的一个实施例中,最近的会话状态数据可以cookie形式被添加。在本文中描述的灾难恢复技术的另一实施例中,最近的会话状态数据可被添加到每一个客户端请求消息和每一个应用响应消息的主体中。灾难恢复技术的替代实施例也是可能的,其中,取代将最近的会话状态数据添加到客户端请求和应用响应消息中,应用客户端可将包括该最近的会话状态数据的隐藏消息传送给应用,并且应用可将类似的隐藏消息传送给应用客户端。
一般来说,复制选项1具有在某些情况下可能变得与图2中例示的其它会话状态数据复制选项相比不想要的某些性能和资源成本。更具体地,如果会话状态数据较大(例如,在之前提到的其中用户在旅行网站上执行航班搜索的示例中,会话状态数据可包括满足用户迄今输入的搜索准则的所有可用航班),则将会话状态数据包括在应用客户端通过网络传送给应用的每一个请求消息中将使得客户端变慢(并且因此对客户端的性能产生不利影响),因为对于大部分计算设备可用的网络上传带宽一般将明显小于对其可用的网络下载带宽。此外,将会话状态数据包括在应用客户端传送给应用的每一个客户端请求消息中并且包括在应用传送给应用客户端的每一个应用响应消息中会增加客户端的请求-响应等待时间(并因此对客户端的性能产生不利影响)。
需要注意,与给定会话状态数据复制选项相关联的成本参数对与复制选项不被实施时(例如,当会话状态数据不被复制时)的性能和资源使用相比的与实施该复制选项相关联的性能和/或资源使用开销进行量化。例如,可能是,应用已将所有的会话状态数据传送给应用客户端,因为该客户端可执行对于会话状态数据的本地处理以在无需非得联系该应用的情况下服务用户的请求中的一些。在这种情况下,客户端的请求-响应等待时间方面的增加将仅仅是由于客户端将会话状态数据传送给应用的缘故造成。当数字值被分派给本章节中描述的各个成本参数时,使用类似的考虑。
TC1是表示在复制选项1中对于客户端计算设备的与其从应用接收(例如下载)会话状态数据并将会话状态数据传送(例如上传)给应用相关联的等待时间成本的成本参数。换言之,TC1表示与这一会话状态数据接收和传送相关联的应用客户端延迟方面的增加。BC1是表示在复制选项1中对于客户端计算设备的与其从应用接收会话状态数据并将会话状态数据传送给应用相关联的网络带宽成本的另一成本参数。换言之,BC1表示应用客户端为了这一会话状态数据接收和传送而不得不支付的金额。当客户端计算设备经由不限数据流量的有线连接连接到网络时,BC1可以为零。替代地,当客户端计算设备经由工作在漫游模式下的传统蜂窝数据连接连接到网络时,BC1可以非常高。BATC1是表示在复制选项1中对于客户端计算设备的与应用客户端从应用接收会话状态数据并将会话状态数据传送给应用相关联的电池能量耗取成本的又一成本参数。换言之,BATC1表示客户端计算设备中的多少电池能量被用于这一会话状态数据接收和传送。虽然当客户端计算设备通过AC(交流电)电源来工作时,BATC1可能不是非常相关,但是当客户端计算设备通过电池来工作时(例如,客户端计算设备是智能手机、或者平板计算机等),BATC1相当相关。
图2中例示的会话状态数据复制选项中的第二个涉及将交互式会话的最近的会话状态数据同步地存储在后备数据中心中的一个或多个中。这一特定选项此后被简称为复制选项2。在复制选项2中,每当会话状态改变时,当前数据中心通过网络上传(例如传送)最近的会话状态数据给后备数据中心中的一个或多个,从而确保后备数据中心存储最近的会话状态数据。如迄今描述的,后备状态存储模块将把这一最近的会话状态数据存储在一个或多个后备数据中心中,并且随后将向当前数据中心传送指示最近的会话状态数据已被成功存储在后备数据中心中的确认消息。作为示例而非限制,每当应用接收到来自应用客户端的客户端请求消息时,当前数据中心将通过网络将最近的会话状态数据上传到后备数据中心中的一个或多个。应用将随后等待响应该客户端请求消息,直到当前数据中心接收到来自后备数据中心中的至少一个的确认消息。在复制选项2的一个实施例中,每当会话状态改变时,当前数据中心将最近的会话状态数据的整个集合上传到后备数据中心中的一个或多个。在复制选项2的另一实施例中,当前数据中心将在会话状态首次改变时将最近的会话状态数据的整个集合上传到后备数据中心中的一个或多个,而在此之后,当前数据中心将仅把会话状态数据中的增量上传到后备数据中心(例如,当前数据中心将仅上传自从会话状态数据被最后一次上传到后备数据中心之后的会话状态数据中的改变)。
复制选项2具有以下性能和资源成本权衡。由于复制选项2不对客户端计算设备造成负担,因此其避免了对于客户端计算设备的任何网络带宽成本。然而,复制选项2确实增加了应用客户端不得不等待接收来自应用的应用响应消息的时间,这对客户端的性能产生不利影响。TC2是表示复制选项2中的对于客户端计算设备的与应用客户端不得不等待接收来自应用的应用响应消息相关联的等待时间成本的成本参数。换言之,TC2表示与这一不得不等待相关联的应用客户端延迟方面的增加。复制选项2还增加了对于当前数据中心主存该应用的成本,因为当前数据中心不得不为其用来将最近的会话状态数据上传到后备数据中心中的一个或多个的网络带宽付费。BD2是表示在复制选项2中对于当前数据中心的与其将状态会话数据上传到后备数据中心中的一个或多个相关联的网络带宽成本的另一成本参数。换言之,BD2表示当前数据中心为了这一会话状态数据上传而不得不支付的金额。复制选项2还为当前数据中心带来了将会话状态数据存储在后备数据中心中的一个或多个中的成本。SD2是表示在复制选项2中对于当前数据中心的与其将状态会话数据存储在后备数据中心中的一个或多个中相关联的数据存储成本的又一成本参数。
图2中例示的会话状态数据复制选项中的第三个涉及将交互式会话的最近的会话状态数据的经编码的版本存储在客户端计算设备上,其中编码缩小了数据大小。这一特定选项此后被简称为复制选项3。一般来说,在复制选项3中,交互式会话的最近的会话状态数据的经编码的版本被添加到应用通过网络传送给应用客户端的每一个应用响应消息中,并且交互式会话的最近的会话状态数据的经编码的版本被添加到应用客户端通过网络传送给应用的每一个客户端请求消息中。由此,应用客户端从应用接收的每一个应用响应消息将包括最近的会话状态数据的经编码的版本。在应用客户端接收到给定应用响应消息之际,应用客户端将从该应用响应消息中提取最近的会话状态数据的经编码的版本,并且客户端状态存储模块将把这一提取出的数据存储在客户端计算设备上,如迄今所描述的。类似地,应用从应用客户端接收的每一个客户端请求消息将包括最近的会话状态数据的经编码的版本。相应地,在当前数据中心离线并且来自应用客户端的给定客户端请求消息被转发到后备数据中心的情况下,接收到该客户端请求消息的应用副本将具有最近的会话状态数据的经编码的版本,因为该经编码的版本被包括在该客户端请求消息中。将会理解,最近的会话状态数据的经编码的版本可以各种方式(包括但不限于之前结合复制选项1描述的各种方式)被添加到客户端请求消息和应用响应消息中。
如现在将更详细描述的,在复制选项3中通过网络传送并存储在客户端计算设备上的状态会话数据的经编码的版本在大小上比在复制选项1中通过网络传送并存储在客户端计算设备上的状态会话数据的非经编码的版本小。事实上,对于某些应用,状态会话数据的经编码的版本可能比其非经编码的版本小得多。更具体地并且作为示例而非限制,在本文中描述的灾难恢复技术的一个实施例中,最近的状态会话数据的经编码的版本仅包括用户最近输入到客户端计算设备中的数据(此后被简称为最近的用户输入数据)。在当前数据中心离线并且来自应用客户端的给定客户端请求消息被转发到后备数据中心的情况下,接收到该客户端请求消息的应用的副本可处理该最近的用户输入数据并且重建最近的会话状态数据的剩余部分。在灾难恢复技术的另一实施例中,会话状态数据的经编码的版本是在复制选项1中被传送和存储的所有会话状态数据的经压缩的版本。对会话状态数据的这一压缩和后续的解压缩可使用任何数据压缩方法来执行。作为示例而非限制,在灾难恢复技术的示例性实施例中,传统增量压缩方法被用于这一压缩和解压缩;这一特定方法是有利的,因为如迄今所描述的,会话状态可随着用户与应用的交互推进而增量地改变。
TC3是表示在复制选项3中对于客户端计算设备的与其从应用接收经编码的会话状态数据并将经编码的会话状态数据传送给应用相关联的等待时间成本的成本参数。换言之,TC3表示与这一经编码的会话状态数据接收和传送相关联的应用客户端延迟方面的增加。BC3是表示在复制选项3中对于客户端计算设备的与其从应用接收经编码的会话状态数据并将经编码的会话状态数据传送给应用相关联的网络带宽成本的另一成本参数。换言之,BC3表示应用客户端为了这一经编码的会话状态数据接收和传送而不得不支付的金额。当客户端计算设备经由不限数据流量的有线连接连接到网络时,BC3可以为零。替代地,当客户端计算设备经由工作在漫游模式下的蜂窝数据连接连接到网络时,BC3可以非常高。BATC3是表示在复制选项3中对于客户端计算设备的与应用客户端从应用接收经编码的会话状态数据并将经编码的会话状态数据传送给应用相关联的电池能量耗取成本的又一成本参数。换言之,BATC3表示客户端计算设备中的多少电池能量被用于这一经编码的会话状态数据接收和传送。虽然当客户端计算设备通过AC电源来工作时,BATC3可能不是非常相关,但是当客户端计算设备通过电池电源来工作时,BATC3相当相关。
由于复制选项3缩小了通过网络传送并且存储在客户端计算设备上的会话状态数据的大小,因此TC3将会小于TC1,BC3将会小于BC1,并且BATC3将会小于BATC1。事实上,对于某些应用,TC3、BC3和BATC3可能分别比TC1、BC1和BATC1小得多。CD3是表示复制选项3中对于当前数据中心的与应用解码经编码的会话状态数据相关联的处理成本的又一成本参数。将会理解,当前数据中心中的应用不得不对其从客户端接收的每一个客户端请求消息中的经编码的会话状态数据进行解码(例如,或者处理用户输入的数据并重建最近的会话状态数据的剩余部分,或者对经压缩的会话状态数据解压缩来生成最近的会话状态数据)以便能够对该客户端请求响应作出响应。这一解码操作将增加当前数据中心中的处理器开销,并且还将稍稍增加客户端的请求-响应等待时间。
图2中例示的会话状态数据复制选项中的第四个(此后被简称为复制选项4)也涉及将交互式会话的最近的会话状态数据存储在客户端计算设备上。复制选项4与复制选项1的类似之处在于交互式会话的最近的会话状态数据被添加到应用通过网络传送给应用客户端的每一个应用响应消息中。在应用客户端接收到给定应用响应消息之际,应用客户端将从该应用响应消息中提取最近的会话状态数据,并且客户端状态存储模块将把这一提取出的数据存储在客户端计算设备上,如迄今所描述的。需要注意,最近的会话状态数据可以各种方式(包括但不限于之前结合复制选项1描述的各种方式)被添加到应用响应消息中。
复制选项4与复制选项1在以下方式中不同。在复制选项4中,取代交互式会话的最近的会话状态数据被添加到应用客户端通过网络传送给应用的每一个客户端请求消息中,客户端计算设备上的故障检测软件(例如,之前提到的故障检测器模块)负责检测服务该交互式会话的当前数据中心何时已离线并因而已变得不能够继续服务该会话。每当这一故障检测软件检测到当前数据中心已离线并因而变得不能够继续服务该交互式会话时,应用客户端将把该交互式会话的最近的会话状态数据上传给已被选择为接管服务该交互式会话的后备数据中心。交互式会话的最近的会话状态数据将随后被添加到应用的副本通过网络传送给应用客户端的每一个应用响应消息中。在应用客户端接收到来自应用的副本的应用响应消息之际,应用客户端将从该应用响应消息中提取最近的会话状态数据,并且客户端状态存储模块将把这一提取出的数据存储在客户端计算设备上,如迄今所描述的。
TC4是表示在复制选项4中对于客户端计算设备的与其每当当前数据中心变得不能够继续服务交互式会话时从应用接收会话状态数据并将会话状态数据传送给后备数据中心相关联的等待时间成本的成本参数。换言之,TC4表示与这一会话状态数据接收和传送相关联的应用客户端延迟方面的增加。BC4是表示在复制选项4中对于客户端计算设备的与其每当当前数据中心变得不能够继续服务交互式会话时从应用接收会话状态数据并将会话状态数据传送给后备数据中心相关联的网络带宽成本的另一成本参数。换言之,BC4表示应用客户端为了这一会话状态数据接收和传送而不得不支付的金额。当客户端计算设备经由不限数据流量的有线连接连接到网络时,BC4可以为零。替代地,当客户端计算设备经由工作在漫游模式下的蜂窝数据连接连接到网络时,BC4可以非常高。BATC4是表示在复制选项4中对于客户端计算设备的与每当当前数据中心变得不能够继续服务交互式会话时应用客户端从应用接收会话状态数据并且客户端将会话状态数据传送给后备数据中心相关联的电池能量耗取成本的又一成本参数。换言之,BATC4表示客户端计算设备中的多少电池能量被用于这一会话状态数据接收和传送。虽然当客户端计算设备通过AC电源来工作时,BATC4可能不是非常相关,但是当客户端计算设备通过电池电源来工作时,BATC4相当相关。由于复制选项4不涉及应用客户端将会话状态数据添加到应用客户端通过网络传送给应用的每一个客户端请求消息中(如复制选项1中所做的一样),因此TC4将会小于TC1,BC4将会小于BC1,并且BATC4将会小于BATC1。
图2中例示的会话状态数据复制选项中的第五个涉及将交互式会话的最近的会话状态数据异步地存储在后备数据中心中的一个或多个中。这一特定选项此后被简称为复制选项5。在复制选项5中,每当会话状态改变时,当前数据中心通过网络上传最近的会话状态数据(或者是其整个集合,或者仅仅是其中的增量,如结合复制选项2描述的一样)给后备数据中心中的一个或多个,从而确保后备数据中心存储最近的会话状态数据。如迄今描述的,后备状态存储模块将把这一最近的会话状态数据存储在一个或多个后备数据中心中,并且随后将向当前数据中心传送指示最近的会话状态数据已被成功存储在后备数据中心中的确认消息。作为示例而非限制,每当应用接收到来自应用客户端的客户端请求消息时,当前数据中心将通过网络将最近的会话状态数据上传到后备数据中心中的一个或多个。
然而,取代应用等待对客户端请求消息作出响应直到当前数据中心接收到来自后备数据中心中的至少一个的确认消息(如复制选项2中所做的),在复制选项5中,应用将在当前数据中心接收到来自后备数据中心中的至少一个的这一确认消息之前对客户端请求消息作出响应,但是应用客户端将等待向客户端计算设备的用户展示该应用响应直到从后备数据中心中的至少一个接收到确认消息。因此,在复制选项5中,在大部分最近的会话状态数据被上传到后备数据中心的时间期间,客户端计算设备已经正下载该应用响应,因此隐藏了当前数据中心和后备数据中心之间的网络往返时间中的一些。将会理解,这样做引入了风险,即如果当前数据中心在最近的会话状态数据被传送给后备数据中心之后发生故障,并且后备数据中心由于网络传输错误而无法接收到最近的会话状态数据,则在后备数据中心中的一个被选择为接管服务该交互式会话时,最近的会话状态数据将不会对应用的副本可用。
复制选项5可以各种方式解决这一风险(例如,防止当前数据中心的故障导致最近的会话状态数据被丢失)。作为示例而非限制,在本文中描述的灾难恢复技术的一个实施例中,在应用对客户端请求消息作出响应之前,应用可在交互式会话的最近的会话状态数据被上传给一个或多个后备数据中心之后等待一预定时间段,其中这一时间段被定的足够大以确保最近的会话状态数据已离开当前数据中心(例如,已离开当前数据中心的内部网络(未示出)并且已被传送到外部网络上)。在灾难恢复技术的另一实施例中,当前数据中心可在最近的会话状态数据被上传给后备数据中心之前将前向纠错(FEC)码添加到最近的会话状态数据中。如数据通信领域中可理解的,如果上传的数据中仅有一些被给定后备数据中心接收而上传的数据中的其它数据被当前数据中心的内部网络或外部网络中的任一者丢失,则FEC码允许后备数据中心重构被丢失的数据。
复制选项5具有以下性能和资源成本权衡。由于复制选项5不对客户端计算设备造成负担,因此其避免了对于客户端计算设备的任何网络带宽成本。然而,复制选项5确实稍稍增加了应用客户端不得不等待接收来自应用的应用响应消息的时间,这对客户端的性能产生非常小的不利影响。TC5是表示复制选项5中的对于客户端计算设备的与应用客户端不得不等待接收来自应用的应用响应消息相关联的等待时间成本的成本参数。换言之,TC5表示复制选项5中与应用客户端不得不等待接收来自应用的应用响应消息的额外的时间量相关联的应用客户端延迟方面的增加。BATC5是表示对于客户端计算设备的与应用客户端不得不等待这一额外时间量相关联的电池能量耗取成本的另一成本参数。考虑以上描述,将会理解,TC5一般将小于TC2。
复制选项5增加了对于当前数据中心主存该应用的成本,因为当前数据中心不得不为其用来将最近的会话状态数据上传到后备数据中心中的一个或多个的网络带宽付费。BD5是表示在复制选项5中对于当前数据中心的与其将状态会话数据和FEC码上传到后备数据中心中的一个或多个相关联的网络带宽成本的另一成本参数。换言之,BD5表示当前数据中心为了这一会话状态数据和FEC码上传而不得不支付的金额。由于在被传送的数据中添加了FEC码的缘故,BD5将大于BD2。复制选项5还为当前数据中心带来了将会话状态数据存储在后备数据中心中的一个或多个中的成本。SD5是表示在复制选项5中对于当前数据中心的与其将状态会话数据存储在后备数据中心中的一个或多个中相关联的数据存储成本的又一成本参数。将会理解,SD5将与SD2相同。
图2中例示的会话状态数据复制选项中的第六个是涉及将交互式会话的最近的会话状态数据的经加密的版本存储在客户端计算设备上的复制选项3的变体。这一特定选项此后被简称为复制选项6。复制选项6适用于其中由应用计算的会话状态数据要被存储在客户端计算设备上但是不对客户端计算设备的用户公开的情形。这类情形的一个示例是在线牌类游戏应用,其中应用所计算的会话状态数据包括为当前玩游戏的所有用户生成的手牌。对这一会话状态数据加密避免了除了客户端计算设备的用户以外的用户的手牌以及计算机玩家的手牌对客户端计算设备的用户公开。会话状态数据可使用任何传统的数据加密方法来加密。
TC6是表示在复制选项6中对于客户端计算设备的与其从应用接收经加密的会话状态数据相关联的等待时间成本的成本参数。换言之,TC6表示与这一经加密的会话状态数据接收相关联的应用客户端延迟方面的增加。BC6是表示在复制选项6中对于客户端计算设备的与其从应用接收经加密的会话状态数据相关联的网络带宽成本的另一成本参数。换言之,BC6表示应用客户端为了这一经加密的会话状态数据接收而不得不支付的金额。当客户端计算设备经由不限数据流量的有线连接连接到网络时,BC6可以为零。替代地,当客户端计算设备经由工作在漫游模式下的蜂窝数据连接连接到网络时,BC6可以非常高。BATC6是表示在复制选项6中对于客户端计算设备的与应用客户端从应用接收经加密的会话状态数据相关联的电池能量耗取成本的又一成本参数。换言之,BATC6表示客户端计算设备中的多少电池能量被用于这一经加密的会话状态数据接收。虽然当客户端计算设备通过AC电源来工作时,BATC6可能不是非常相关,但是当客户端计算设备通过电池电源来工作时,BATC6相当相关。CD6是表示复制选项6中对于当前数据中心的与应用加密该经加密的会话状态数据相关联的处理成本的又一成本参数。这一加密操作将增加当前数据中心中的处理器开销,并且还将稍稍增加客户端的请求-响应等待时间。
图2中例示的会话状态数据复制选项中的第七个(此后被简称为复制选项7)是可包括复制选项1-6的任意组合的混合选项。作为示例而非限制,在以上提到的其中运行在不同客户端计算设备上的多个应用客户端同时共同参与交互式会话的情形中,可为每一个客户端计算设备独立选择会话状态数据复制选项。换言之并且再次参考图1,决策引擎模块可决定将会话状态数据存储在所有的客户端计算设备上。决策引擎模块还可决定将会话状态数据存储在客户端计算设备中的仅仅一些上并且存储在后备数据中心中的一个或多个中。决策引擎模块还可决定将会话状态数据仅存储在后备数据中心中的一个或多个中。
替代地,复制选项2可被用于将交互式会话的会话状态数据存储在靠近当前数据中心的后备数据中心中,而复制选项5可被用于将会话状态数据存储在不靠近(例如,远离)当前数据中心的另一后备数据中心中。复制选项2和5的这一组合使用是有利的,因为靠近当前数据中心的后备数据中心不太可能与不靠近当前数据中心的后备数据中心同时发生故障(尤其是在故障由地震、火灾、雷击、或其它类型的自然灾害所触发的情形中)。复制选项3也可与复制选项2或复制选项5中的任意一个组合,使得交互式会话的会话状态数据的经编码的版本被同步地或异步地存储在每一个后备数据中心中。如图2中指示的,与复制选项1-6相关联的不同性能和资源成本参数的各种组合变得在复制选项7中相关。
当给定云应用被开发或部署时,与复制选项1-7相关联的不同性能和资源成本参数可以不是静态的,并且它们的值可以不是预先知晓的。作为示例而非限制,对于涉及正使用用电池电源来工作并经由无线连接(诸如传统蜂窝数据连接、或WiFi连接等)连接到网络的客户端计算设备的用户的交互式会话(例如,当客户端计算设备是智能手机、或平板计算机等时)来说,客户端的网络带宽成本(例如BC1)和电池能量耗取成本(例如BATC1)可能非常高。另一方面,对于涉及正使用用AC电源来工作并经由有线连接连接到网络的客户端计算设备的用户的交互式会话来说,客户端的网络带宽成本和电池能量耗取成本可能是可忽略不计的。此外,当前数据中心的网络带宽成本(例如BD2)和数据存储成本(例如SD2)可随时间取决于各种因素(诸如当前数据中心和后备数据中心上的负载方面的变化)而变化。此外,将会理解,应用客户端不得不等待从应用接收应用响应消息的时间(例如TC2)取决于后备数据中心离当前数据中心有多远。当给定云应用被首次部署时,这一客户端等待时间可能是较高的,因为应用可能最初被仅仅托管在彼此相隔较远的两个数据中心上。随着对应用的使用的增加,应用可能被部署到处于不同位置的其它数据中心中,或者应用可能开始租借位于不同位置的由云服务提供商提供的数据中心容量,这两者中的任意一个可减少当前数据中心和后备数据中心中的一个或多个之间的距离,从而减少客户端等待时间(例如,减少TC2)。
因此,将会理解,与复制选项1-7相关联的不同性能和资源成本参数的值可以针对与给定云应用的不同交互式会话而不同,并且可随时间变化。本文中描述的灾难恢复技术实施例可在应用被首次部署时选择合适的会话状态数据复制选项,因为此时一些性能和资源成本参数变得已知(例如,主存应用的数据中心的最初数量变得已知,物理位置以及由此的各个数据中心配对之间的距离变得已知、并且每一个数据中心的网络带宽和数据存储成本变得已知)。灾难恢复技术实施例还可在每当支持该应用的计算和联网基础结构中存在配置改变时选择合适的会话状态数据复制选项(例如,每当主存应用的数据中心的数目和/或物理位置改变时,或者每当一个或多个数据中心的网络带宽和数据存储成本改变时)。
本文中描述的灾难恢复技术实施例还可在每当在运行在给定数据中心上的给定云应用和运行在给定用户正使用的给定客户端计算设备上的应用客户端之间创建了新的交互式会话时选择合适的会话状态数据复制选项(在这种情况下,与复制选项1-7相关联的所有性能和资源成本参数可被考虑)。在交互式会话被创建并且合适的会话状态数据复制选项已被选择之后,灾难恢复技术实施例还可监视所有的性能和资源成本参数,并且每当这些参数中存在改变时再次选择合适的会话状态数据复制选项,其中这一新选择的选项与之前选择的选项既可以相同也可以不同。
1.4选择用于复制会话状态数据的选项
本章节提供了对于之前提到的决策引擎模块可用来选择用于复制正被托管在当前数据中心上的交互式云应用的会话状态数据的合适的选项的各种方法的更详细描述。这一选择可根据包括但不限于之前提到的复制选项1-7的一组不同的会话状态数据复制选项来做出。如迄今所描述的,这些复制选项中的每一个具有不同的性能和资源成本权衡。还如迄今所描述的并且现在将更详细描述的,这一选择可基于可由客户端资源探测模块、当前服务器资源探测模块、以及后备服务器资源探测模块测量的各种网络性能情况和资源可用性情况。这一选择还可基于可由应用规定的各种性能约束和资源成本约束以及它们的优先次序。
图3以简化形式示出用于选择用于复制正被托管在当前数据中心上的云应用的会话状态数据的合适的选项的过程的一个实施例。如图3中例示的,过程开始于框300,其中估计对于客户端计算设备的与一组不同的会话状态数据复制选项中的每一个会话状态数据复制选项相关联的等待时间成本。换言之,作为示例而非限制,TC1、TC2、TC3、TC4、TC5和TC6可使用迄今描述的各种测量技术来估计。具有对于客户端计算设备的最小估计等待时间成本的会话状态数据复制选项随后被选择为要被用于复制应用和客户端之间的交互式会话的会话状态数据的选项(框302)。因此将会理解,图3中例示的过程实施例最小化对于客户端计算设备的与复制会话状态数据相关联的等待时间成本,并由此最小化由于会话状态数据复制的缘故用户将体验到的延迟开销。
图4以简化形式示出用于选择用于复制正被托管在当前数据中心上的云应用的会话状态数据的合适的选项的过程的另一实施例。如图4中所例示的,该过程始于框400,其中输入由应用指定的一个或多个性能约束。这些性能约束包括对于客户端计算设备的与复制交互式会话的会话状态数据相关联的最大可允许等待时间成本(例如,对于TC1、TC2、TC3、TC4、TC5和TC6的约束)。性能约束还可任选地包括该应用的最小可允许可用性。随后输入由应用指定的一个或多个资源成本约束(框402)。这些资源成本约束可包括客户端资源成本约束或数据中心资源成本约束中的一个或多个。示例性客户端资源成本约束包括但不限于以下约束中的一个或多个:针对对于客户端计算设备的与复制交互式会话的会话状态数据相关联的网络带宽成本的约束(例如,对于BC1、BC3、BC4和BC6的约束)、或者针对对于客户端计算设备的与复制这一会话状态数据相关联的电池能量耗取成本的约束(例如,对于BATC1、BATC3、BATC4、BATC5和BATC6的约束)、或者针对对于客户端计算设备的与复制这一会话状态数据相关联的处理成本的约束(例如,对此的处理器使用预算)、或者针对对于客户端计算设备的与复制这一会话状态数据相关联的存储器成本的约束(例如,对此的存储器使用预算)。示例性数据中心资源成本约束包括但不限于以下约束中的一个或多个:针对对于当前数据中心的与复制交互式会话的会话状态数据相关联的网络带宽成本的约束(例如,对于BD2和BD5的约束)、或者针对对于当前数据中心的与复制这一会话状态数据相关联的数据存储成本的约束(例如,对于SD2和SD5的约束)、或者针对对于当前数据中心的与复制这一会话状态数据相关联的处理成本的约束。
再次参考图4,在已输入了性能和资源成本约束(框400和402)之后,如迄今所描述的,估计对于客户端计算设备的与一组不同的会话状态数据复制选项中的每一个会话状态数据复制选项相关联的等待时间成本(框404)。随后标识对于客户端计算设备的其估计等待时间成本小于或等于刚刚描述的对于客户端计算设备的最大可允许等待时间成本的会话状态数据复制选项(框406)。这些被标识的选项中满足资源成本约束的那个选项随后被选择为要被用于复制交互式会话的会话状态数据的选项(框408)。因此将会理解,图4中例示的过程实施例可连带地最小化对于客户端计算设备的与复制会话状态数据相关联的等待时间成本、以及与复制会话状态数据相关联的一个或多个预先规定的资源成本两者。
图5以简化形式示出用于选择用于复制正被托管在当前数据中心上的云应用的会话状态数据的合适的选项的过程的又一实施例。如图5中所例示的,该过程始于框500,其中输入由应用指定的一个或多个资源成本约束。随后估计对客户端计算设备的与一组不同的会话状态数据复制选项中的每一个会话状态数据复制选项相关联的等待时间成本(框502)随后标识满足资源成本约束的会话状态数据复制选项(框504)。这些被标识的选项中具有对客户端计算设备的最小估计等待时间成本的那个选项随后被选择为要被用于复制交互式会话的会话状态数据的选项(框506)。因此将会理解,图5中例示的过程实施例也可连带地最小化对于客户端计算设备的与复制会话状态数据相关联的等待时间成本、以及与复制会话状态数据相关联的一个或多个预先规定的资源成本两者。
应当注意,资源成本约束可以各种方式由应用指定。作为示例而非限制,可为与应用的各个交互式会话指定资源成本约束。资源成本约束还可被指定为要跨与应用的多个交互式会话分配的总的资源成本预算。在这种情况下,决策引擎模块可以包括但不限于以下的各种方式来分配总的资源成本预算。决策引擎模块可实时地为具有高于预规定的阈值的当前网络等待时间的各个交互式会话分配总的资源成本预算(例如,其它资源可被用于减少网络等待时间并由此减少用户响应时间)。决策引擎模块还可分配一规定时间段上的总的资源成本预算。更具体地并且作为示例而非限制,可为一周中的特定的天分配特定的预算量。预算可与该时间段上预期的应用负载(例如,对于该应用的用户请求)成比例地分配。换言之,不同的预算部分可基于该时间段的不同部分中的每一个部分期间预期的应用负载来被分配给该时间段的不同部分。
本文中描述的灾难恢复技术的替代实施例也是可能的,其中应用指定的一个或多个性能约束、以及应用指定的一个或多个资源成本约束可通过对每一个性能约束和每一个资源成本约束施加权重而被组合成统一的约束。将会理解,被施加给不同性能和资源成本约束的权重用于对这些约束排定优先次序。作为示例而非限制,这些权重可被用于指定对于客户端计算设备的等待时间成本与对于客户端计算设备的网络带宽成本相比对于应用的相对重要性。权重可以各种方式来确定。作为示例而非限制,在这一替代实施例中,权重是由应用预确定的。
1.5过程框架
图6以简化形式示出用于确保正被托管在当前数据中心上的云应用的可用性的服务器侧的过程的示例性实施例。如图6中所例示的,该过程开始于框600,其中选择用于复制应用的会话状态数据的选项。如迄今所描述的,这一选择是从各自具有不同性能和资源成本权衡的一组不同会话状态数据复制选项中做出的,并且被选择的选项确定应用的会话状态数据要如何来复制。被选择的选项随后被实施(框602),其中该实施导致应用的会话状态数据被复制到当前数据中心之外,从而确保这一数据在当前数据中心离线的情况下保持可用。
图7以简化形式示出用于为正被托管在当前数据中心上的云应用提供灾难恢复的客户端侧的过程的示例性实施例。如图7中所例示的,过程开始于框700,其中从当前数据中心接收指定已为给定客户端计算设备选择的用于复制应用的会话状态数据的选项的消息。所指定的选项随后被实施(框702),其中该实施导致应用的会话状态数据被复制到当前数据中心之外。
2.0供应和使用备用数据中心容量
再次参考图1,迄今描述的灾难恢复技术实施例假设多个数据中心(例如104/106/118)存在于云138中,并且还假设这一多个数据中心包括具有足够的备用(例如,空闲)容量(例如,足够的备用/空闲处理容量和足够的备用/空闲数据存储容量)的用于在当前数据中心104发生故障的情况下接管其当前应用负载的一个或多个后备数据中心106/118。换言之,迄今描述的灾难恢复技术实施例假设后备数据中心具有足够的备用容量来在当前数据中心发生故障的情况下接管正由当前数据中心主存的当前进行中的与云应用114的交互式会话112。
本章节描述本文中描述的灾难恢复技术的将备用容量添加到云中的每一个数据中心的示例性实施例,其中这一备用容量足够允许数据中心中的任何一个的故障被剩余的数据中心所容纳。换言之,如果云中的任何一个数据中心发生故障,则由本章节中描述的灾难恢复技术实施例添加到每一个剩余的数据中心的备用容量允许发生故障的数据中心的当前应用负载被分发到剩余的数据中心上(例如,剩余的数据中心可共同接管正由故障的数据中心服务的交互式会话)。
图8以简化形式示出用于供应和使用云中的备用数据中心容量的示例性实施例。如图8中例示的,过程开始于框800,其中确定必须被添加给云中的每一个数据中心的备用服务器容量的量(例如,额外服务器的数量)以使得云能够在任何一个数据中心发生故障时接管该数据中心的当前应用负载。这一确定通过考虑不同因素来做出,因素包括但不限于以下的一个或多个:云中的数据中心的总数、每一个数据中心的当前服务器容量(例如,其中的当前的服务器数量)、以及每一个数据中心的地理位置。在要被添加到每一个数据中心的备用服务器容量的量被确定之后(框800),随后指示这一经确定的量的备用服务器容量被添加到每一个数据中心(框802)。随后,每当任何一个数据中心发生故障时,发生故障的数据中心的当前应用负载将跨被添加到每一个剩余的数据中心的备用服务器容量来分发(804)。
应当注意,图8中例示的过程实施例适用于其中云中的每一个数据中心的当前服务器容量是相同的情形,或适用于其中一个或多个数据中心的当前服务器容量与其它数据中心的当前服务器容量是不同的情形。图8中例示的过程实施例还适用于其中所有的数据中心位于同一地理区域的情形,或适用于其中数据中心位于两个或更多个不同地理区域的情形,其中这些不同地理区域既可位于同一时区,也可位于不同时区。还应注意,取决于做出刚刚描述的对于备用服务器容量的确定时被考虑的具体因素,可为每一个数据中心添加相同量的备用服务器容量,或可为数据中心中的不同的各个数据中心添加不同量的备用服务器容量。
考虑前述内容,将会理解,图8中例示的过程实施例的优点在于其能够最小化必须被添加给云中的每一个数据中心的备用服务器容量的量以使得云能够在任何一个数据中心发生故障时接管该数据中心的当前应用负载。因此,图8中例示的过程实施例可最小化与供应备用数据中心容量相关联的消耗。
3.0附加实施例
尽管具体参考各实施例描述了灾难恢复技术,但可以理解,可对这些实施例作出修改和变化而不背离灾难恢复技术的真正精神和范围。作为示例而非限制,本文中描述的灾难恢复技术的实施例是可能的,其中给定云应用和给定应用客户端之间的给定交互式会话的会话状态数据包括不能被仅仅存储在允许该应用客户端的客户端计算设备上的一个或多个数据项。作为示例而非限制,当交互式会话是超文本传输协议加密(HTTPS)会话(诸如当用户在安全银行网站上进行电子商务交易时),与HTTPS会话相关联的密钥必须同时存储在应用服务器和客户端计算设备两者上,并且应用和应用客户端已妥善处理好该密钥。在这类情形中,将仅使用将最近的会话状态数据存储在一个或多个后备数据中心上的会话状态复制选项(以上提到的复制选项2或复制选项5中的任一者),因为甚至是对在当前数据中心离线的情况下后备数据中心可能从应用客户端接收的任何客户端请求消息进行解密,后备数据中心也必须具有私钥(例如,密钥)。
本文中描述的灾难恢复技术的另一实施例也是可能的,其中在给定交互式会话期间被存储在给定客户端计算设备上的最近的会话状态数据由客户端状态存储模块加密。更具体地,在应用客户端已从给定应用响应消息中提取了交互式会话的最近的会话状态数据之后,客户端状态存储模块将使用任何传统数据加密方法对这一提取出的数据进行加密,并且随后将把这一经加密数据和相关联的加密密钥存储在客户端计算设备上。另外,在复制选项4中,每当故障检测器模块检测到当前数据中心已离线时,应用客户端传输给已被选择为接管该交互式会话的后备数据中心的会话恢复请求消息将包括该交互式会话的经加密的最近的会话状态数据和被存储在客户端计算设备上的相关联的加密密钥两者。这允许后备数据中心在其恢复与客户端计算设备的交互式会话之前对经加密的最近的会话状态数据进行解密。这一特定实施例适用于其中状态会话数据包括可能不适合展示给用户的私有信息的情形。这类私有信息的示例包括顾客数据库中的顾客简档数据、对要在会话期间被显示的广告或要被提供的折扣码的选择、由电子商务应用生成的某些类型的信息等等。另外,在在线牌类游戏应用中,会话状态数据可包括为当前玩游戏的所有用户生成的手牌。以加密形式将这类私有信息存储在客户端计算设备上是有利的,因为该信息被保持安全。
还应当注意,可以按所需的任何组合来使用上述实施例的任一个或全部以形成另外的混合实施例。虽然已经用对结构特征和/或方法动作专用的语言描述了各灾难恢复技术实施例,但是应该理解,在所附权利要求中定义的主题不必限于上述的具体特征或动作。相反,迄今描述的具体特征和动作是作为实现权利要求的示例形式公开的。
4.0示例操作环境
本文描述的灾难恢复技术实施例可在多种通用或专用计算系统环境或配置内操作。图9示出其上可实现本文所描述的灾难恢复技术的各实施例和元素的通用计算机系统的简化示例。应当注意,图9中示出的简化的计算设备900中的断线或虚线所标识的任何框表示该简化计算设备的替代实施例。如以下所描述的,这些替代实施例中的任意一个或全部可与本文通篇描述的其它替代实施例组合使用。简化计算设备900通常可以在具有至少某种最小计算能力的设备中找到,这些设备诸如个人计算机(PC)、服务器计算机、手持式计算设备、膝上型或移动计算机、诸如蜂窝电话和个人数字助理(PDA)等通信设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机、大型计算机、音频或视频媒体播放器。
为允许设备实现本文描述的各灾难恢复技术实施例,该设备应当具有足够的计算能力和系统存储器以启用基本计算操作。具体而言,图9中所示的简化计算设备900的计算能力一般由一个或多个处理单元910示出,并且还可包括一个或多个图形处理单元(GPU)915,这两者中的任一个或全部与系统存储器920通信。注意,简化计算设备900的处理单元910可以是专用微处理器(诸如数字信号处理器(DSP)、甚长指令字(VLIW)处理器、场可编程门阵列(FPGA)、或其他微控制器)或者可以是具有一个或多个处理核的常规中央处理单元(CPU)。
另外,图9中所示的简化计算设备900还可包括其他组件,诸如通信接口930。简化计算设备900还可包括一个或多个常规计算机输入设备940(例如定点设备、键盘、音频(例如语音)输入设备、视频输入设备、触觉输入设备、姿势识别设备、用于接收有线或无线数据传输的设备等)。简化计算设备900还可包括其他光学组件,诸如一个或多个常规计算机输出设备950(例如显示设备955、音频输出设备、视频输出设备、用于传送有线或无线数据传输的设备等)。注意,用于通用计算机的典型通信接口930、输入设备940、输出设备950和存储设备960是本领域技术人员所公知的,且将不在此详细描述。
图9中所示的简化计算设备900还可包括各种计算机可读介质。计算机可读介质可以是可由计算机900经由存储设备960访问的任何可用介质,并且可包括是可移动970和/或不可移动980的易失性和非易失性介质,该介质用于存储诸如计算机可读或计算机可执行指令、数据结构、程序模块或其他数据等信息。计算机可读介质包括计算机存储介质和通信介质。计算机存储介质指代有形的计算机可读或机器可读介质或存储设备,诸如数字多功能盘(DVD)、紧致盘(CD)、软盘、磁带驱动器、硬盘驱动器、光盘驱动器、固态存储器设备、随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存或其他存储器技术、磁带盒、磁带、磁盘存储或其他磁存储设备。
诸如计算机可读或计算机可执行指令、数据结构、程序模块等信息的保持还可通过使用各种上述通信介质(与计算机可读介质相对)中的任一种来编码一个或多个已调制数据信号或载波或其他传输机制或通信协议来实现,并且可包括任何有线或无线信息传递机制。注意,术语“已调制数据信号”或“载波”一般指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。例如,通信介质可包括诸如有线网络或直接线连接等携带一个或多个已调制数据信号的有线介质,以及诸如声学、射频(RF)、红外线、激光和其他无线介质等用于传送和/或接收一个或多个已调制数据信号或载波的无线介质。
此外,可以按计算机可执行指令或其他数据结构的形式存储、接收、传送或者从计算机可读或机器可读介质或存储设备和通信介质的任何所需组合中读取具体化本文描述的各种灾难恢复技术实施方式中的部分或全部的软件、程序和/或计算机程序产品。
最终,此处描述的灾难恢复技术实施例还可在由计算设备执行的诸如程序模块等计算机可执行指令的一般上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。灾难恢复技术实施例还可以在其中任务由通过一个或多个通信网络链接的一个或多个远程处理设备执行或者在该一个或多个设备的云中执行的分布式计算环境中实现。在分布式计算环境中,程序模块可位于包括媒体存储设备的本地和远程计算机存储介质两者中。另外,上述指令可以部分地或整体地作为可以包括或不包括处理器的硬件逻辑电路来实现。

Claims (10)

1.一种用于确保被托管在当前数据中心上的应用的可用性的计算机实现的过程,包括:
使用所述当前数据中心中的一个或多个服务器计算机来执行以下过程动作:
选择用于复制所述应用的会话状态数据的选项,所述选择是从各自包括不同的性能和资源成本权衡的一组不同的会话状态数据复制选项中做出的,所述被选择的选项确定所述数据要如何被复制;以及
实施所述被选择的选项,所述实施导致所述数据被复制到所述当前数据中心之外,从而确保所述数据在所述当前数据中心离线的情况下保持可用,同时提高了与所述应用的给定交互式会话的性能、或降低了所述交互式会话的资源成本、或两者。
2.如权利要求1所述的过程,其特征在于,所述当前数据中心服务所述应用和客户端计算机之间的交互式会话,所述被选择的选项包括将所述交互式会话的最近的会话状态数据存储在所述客户端计算机上,并且所述实施所述被选择的选项的动作包括以下动作:
将指定所述被选择的选项的消息传送给所述客户端计算机;
从所述客户端计算机接收客户端请求消息,每一个所述客户端请求消息包括所述交互式会话的最近的会话状态数据;以及
将所述交互式会话的最近的会话状态数据添加到所述应用传送给所述客户端计算机的每一个应用响应消息中。
3.如权利要求1所述的过程,其特征在于,所述当前数据中心服务所述应用和客户端计算机之间的交互式会话,所述被选择的选项包括将所述交互式会话的最近的会话状态数据同步地存储在一个或多个后备数据中心中,并且所述实施所述被选择的选项的动作包括以下动作:
每当所述会话状态改变时,将所述交互式会话的最近的会话状态数据上传给所述后备数据中心;以及
等待对从所述客户端计算机接收的客户端请求消息作出响应,直到从所述后备数据中心中的至少一个中接收到指示该后备数据中心已成功存储了所述最近的会话状态数据的确认消息。
4.如权利要求1所述的过程,其特征在于,所述当前数据中心服务所述应用和客户端计算机之间的交互式会话,所述被选择的选项包括将所述交互式会话的最近的会话状态数据的经编码的版本存储在所述客户端计算机上,所述编码缩小了数据大小,并且所述实施所述被选择的选项的动作包括以下动作:
将指定所述被选择的选项的消息传送给所述客户端计算机;
从所述客户端计算机接收客户端请求消息,每一个所述客户端请求消息包括所述交互式会话的最近的会话状态数据的经编码的版本;以及
将所述交互式会话的最近的会话状态数据的经编码的版本添加到所述应用传送给所述客户端计算机的每一个应用响应消息中。
5.如权利要求1所述的过程,其特征在于,所述当前数据中心服务所述应用和客户端计算机之间的交互式会话,所述被选择的选项包括将所述交互式会话的最近的会话状态数据异步地存储在一个或多个后备数据中心中,并且所述实施所述被选择的选项的动作包括以下动作:
每当所述会话状态改变时,将所述交互式会话的最近的会话状态数据上传给所述后备数据中心;以及
在从所述后备数据中心中的至少一个中接收到指示该后备数据中心已成功存储了所述最近的会话状态数据的确认消息之前对从所述客户端计算机接收的客户端请求消息作出响应,所述客户端计算机等待将所述响应展示给用户,直到从所述后备数据中心中的至少一个中接收到所述确认消息。
6.如权利要求1所述的过程,其特征在于,所述当前数据中心服务所述应用和客户端计算机之间的交互式会话,并且所述选择用于复制所述应用的会话状态数据的选项的动作包括以下动作:
估计对于所述客户端计算机的与所述不同会话状态数据复制选项中的每一个相关联的等待时间成本;以及
将所述选项中具有对所述客户端计算机的最小估计等待时间成本的选项选择为被用于复制所述交互式会话的会话状态数据的选项。
7.如权利要求1所述的过程,其特征在于,所述当前数据中心服务所述应用和客户端计算机之间的交互式会话,并且所述选择用于复制所述应用的会话状态数据的选项的动作包括以下动作:
输入由所述应用指定的一个或多个性能约束,所述性能约束包括对于所述客户端计算机的与复制所述交互式会话的会话状态数据相关联的最大可允许等待时间成本;
输入由所述应用指定的一个或多个资源成本约束;
估计对于所述客户端计算机的与所述不同会话状态数据复制选项中的每一个相关联的等待时间成本;
标识所述选项中的对于所述客户端计算机的估计等待时间成本小于或等于所述最大可允许等待时间成本的选项;
将所述被标识的选项中满足所述资源成本约束的选项选择为被用于复制所述交互式会话的会话状态数据的选项。
8.如权利要求1所述的过程,其特征在于,所述当前数据中心服务所述应用和客户端计算机之间的交互式会话,并且所述选择用于复制所述应用的会话状态数据的选项的动作包括以下动作:
输入由所述应用指定的一个或多个资源成本约束;
估计对于所述客户端计算机的与所述不同会话状态数据复制选项中的每一个相关联的等待时间成本;
标识所述选项中满足所述资源成本约束的选项;以及
将所述被标识的选项中具有对所述客户端计算机的最小估计等待时间成本的选项选择为被用于复制所述交互式会话的会话状态数据的选项。
9.一种用于为被托管在当前数据中心上的应用提供灾难恢复的计算机实现的过程,包括:
使用客户端计算机来执行以下过程动作:
从所述当前数据中心接收指定已为所述客户端计算机选择的用于复制所述应用的会话状态数据的选项的消息,所述选择是从各自包括不同的性能和资源成本权衡的一组不同的会话状态数据复制选项中做出的,所述指定的选项确定所述数据要如何被复制;以及
实施所述指定的选项,所述实施导致所述数据被复制到所述当前数据中心之外,从而确保所述数据在所述当前数据中心离线的情况下保持对所述客户端计算机可用,同时提高了与所述应用的给定交互式会话的性能、或降低了所述交互式会话的资源成本、或两者。
10.如权利要求9所述的过程,其特征在于,所述当前数据中心服务所述应用和客户端计算机之间的交互式会话,所述指定的选项包括将所述交互式会话的最近的会话状态数据存储在所述客户端计算机上,并且所述实施所述指定的选项的动作包括以下动作:
从所述应用接收应用响应消息,每一个所述应用响应消息包括所述交互式会话的最近的会话状态数据;
从每一个所述应用响应消息中提取所述交互式会话的最近的会话状态数据;
将所述提取的数据存储在所述客户端计算机上;
检测所述当前数据中心何时离线并因而变得不能够继续服务所述交互式会话;以及
每当检测到所述当前数据中心已离线时,将会话恢复请求传送给已被选择来接管服务所述交互式会话的后备数据中心,所述消息包括所述被存储的数据。
CN201480061769.2A 2013-11-11 2014-11-03 用于交互式云应用的地理分布式灾难恢复的方法 Active CN105765949B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/076,715 US10594784B2 (en) 2013-11-11 2013-11-11 Geo-distributed disaster recovery for interactive cloud applications
US14/076,715 2013-11-11
PCT/US2014/063614 WO2015069584A1 (en) 2013-11-11 2014-11-03 Geo-distributed disaster recovery for interactive cloud applications

Publications (2)

Publication Number Publication Date
CN105765949A true CN105765949A (zh) 2016-07-13
CN105765949B CN105765949B (zh) 2019-11-05

Family

ID=51999514

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480061769.2A Active CN105765949B (zh) 2013-11-11 2014-11-03 用于交互式云应用的地理分布式灾难恢复的方法

Country Status (5)

Country Link
US (1) US10594784B2 (zh)
EP (1) EP3069496B1 (zh)
CN (1) CN105765949B (zh)
BR (1) BR112016010037A8 (zh)
WO (1) WO2015069584A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108833479A (zh) * 2018-05-18 2018-11-16 吉林亿联银行股份有限公司 一种数据同步方法和装置
CN109981777A (zh) * 2019-03-27 2019-07-05 深圳市网心科技有限公司 基于cdn的副本维护方法、服务器、副本存储节点以及系统
CN110009244A (zh) * 2019-04-12 2019-07-12 西安交通大学 一种考虑抗灾恢复的区域综合能源系统优化调度方法

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3014623B1 (fr) * 2013-12-06 2016-01-22 Airbus Operations Sas Systeme de communication dans un aeronef comportant un reseau redondant
US9785505B1 (en) * 2014-05-12 2017-10-10 Amazon Technologies, Inc. Communicative building management system for data loss prevention
US10383059B2 (en) * 2014-05-23 2019-08-13 General Motors Llc Vehicle telematics unit power management
US20150348177A1 (en) * 2014-05-29 2015-12-03 International Business Machines Corporation Managing lease transactions in distributed systems
US10650085B2 (en) 2015-03-26 2020-05-12 Microsoft Technology Licensing, Llc Providing interactive preview of content within communication
JP6540356B2 (ja) * 2015-08-10 2019-07-10 富士通株式会社 システム複製制御装置およびシステムの複製制御方法
US9971664B2 (en) * 2015-08-27 2018-05-15 Vmware, Inc. Disaster recovery protection based on resource consumption patterns
US9875373B2 (en) 2015-09-28 2018-01-23 International Business Machines Corporation Prioritization of users during disaster recovery
US10962780B2 (en) * 2015-10-26 2021-03-30 Microsoft Technology Licensing, Llc Remote rendering for virtual images
US9430337B1 (en) 2016-01-07 2016-08-30 International Business Machines Corporation Disaster recovery as a dynamic service
US10324635B1 (en) * 2016-03-22 2019-06-18 EMC IP Holding Company LLC Adaptive compression for data replication in a storage system
US10565058B1 (en) 2016-03-30 2020-02-18 EMC IP Holding Company LLC Adaptive hash-based data replication in a storage system
US10567460B2 (en) * 2016-06-09 2020-02-18 Apple Inc. Managing data using a time-based directory structure
CN109496414B (zh) * 2016-07-28 2022-05-24 皇家飞利浦有限公司 识别数据将被复制到的网络节点
US10116569B1 (en) 2016-08-19 2018-10-30 EMC IP Holding Company LLC Embedded diagnostic tool for prediction of problems relating to network bandwidth
US10614043B2 (en) * 2016-09-30 2020-04-07 Adobe Inc. Document replication based on distributional semantics
US10241848B2 (en) 2016-09-30 2019-03-26 Microsoft Technology Licensing, Llc Personalized diagnostics, troubleshooting, recovery, and notification based on application state
US10476768B2 (en) * 2016-10-03 2019-11-12 Microsoft Technology Licensing, Llc Diagnostic and recovery signals for disconnected applications in hosted service environment
CN107959693B (zh) * 2016-10-14 2022-04-15 中兴通讯股份有限公司 一种呼出方法、同步服务器以及呼出系统
US10447672B2 (en) * 2016-11-01 2019-10-15 Salesforce.Com, Inc. Facilitating encrypted persistent storage in browsers
US11080632B2 (en) * 2016-11-29 2021-08-03 International Business Machines Corporation Optimization of steady state cost for multi-site high availability application deployment of management and managed intrastructure
CN108632067B (zh) 2017-03-21 2020-12-08 华为技术有限公司 容灾部署方法、装置及系统
CN108287762B (zh) * 2018-01-09 2022-04-12 福建星瑞格软件有限公司 分布式计算交互式模式使用资源优化方法以及计算机设备
US10452296B1 (en) 2018-03-23 2019-10-22 Amazon Technologies, Inc. Accelerated volumes
US10459655B1 (en) 2018-04-30 2019-10-29 Amazon Technologies, Inc. Rapid volume backup generation from distributed replica
US11023157B2 (en) 2018-04-30 2021-06-01 Amazon Technologies, Inc. Intermediary duplication to facilitate copy requests in distributed storage systems
US11343314B1 (en) 2018-04-30 2022-05-24 Amazon Technologies, Inc. Stream-based logging for distributed storage systems
US10931750B1 (en) * 2018-07-30 2021-02-23 Amazon Technologies, Inc. Selection from dedicated source volume pool for accelerated creation of block data volumes
US10956442B1 (en) 2018-07-30 2021-03-23 Amazon Technologies, Inc. Dedicated source volume pool for accelerated creation of block data volumes from object data snapshots
US11068192B1 (en) 2019-03-26 2021-07-20 Amazon Technologies, Inc. Utilizing mutiple snapshot sources for creating new copy of volume in a networked environment wherein additional snapshot sources are reserved with lower performance levels than a primary snapshot source
US10983719B1 (en) 2019-03-28 2021-04-20 Amazon Technologies, Inc. Replica pools to support volume replication in distributed storage systems
US11269689B2 (en) * 2019-08-02 2022-03-08 International Business Machines Corporation Distribution of components of displayed data between a server and a client based on server and client load factors
US11544149B2 (en) * 2020-01-07 2023-01-03 Oracle International Corporation System and method for improved fault tolerance in a network cloud environment
US11323507B2 (en) * 2020-04-07 2022-05-03 Supercell Oy Server system and method of managing server system
US11899625B2 (en) * 2021-06-30 2024-02-13 EMC IP Holding Company LLC Systems and methods for replication time estimation in a data deduplication system
US11886307B2 (en) * 2021-07-19 2024-01-30 Vmware, Inc. Site locality support for file services in a stretched cluster environment
US11853559B1 (en) 2022-09-22 2023-12-26 International Business Machines Corporation Mirror write consistency check policy for logical volume manager systems

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1688979A (zh) * 2002-06-20 2005-10-26 国际商业机器公司 用于事务流水线分解的方法和系统
CN101535978A (zh) * 2006-11-10 2009-09-16 微软公司 分布式服务器系统中的消息转发备份管理器
CN102202061A (zh) * 2010-05-24 2011-09-28 微软公司 客户机-服务器会话并行化
CN102498715A (zh) * 2009-05-19 2012-06-13 宝美瑞思网络有限公司 带宽回收用受管理自适应比特率的方法、装置及计算机可读介质
US20130054822A1 (en) * 2011-08-30 2013-02-28 Rajiv P. Mordani Failover Data Replication with Colocation of Session State Data

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6076108A (en) * 1998-03-06 2000-06-13 I2 Technologies, Inc. System and method for maintaining a state for a user session using a web system having a global session server
WO2002015526A1 (en) * 2000-08-11 2002-02-21 Netscape Communications Corporation Server-side session management
US20030110266A1 (en) * 2001-12-10 2003-06-12 Cysive, Inc. Apparatus and method of using session state data across sessions
US20050010588A1 (en) * 2003-07-08 2005-01-13 Zalewski Stephen H. Method and apparatus for determining replication schema against logical data disruptions
US8850141B2 (en) * 2003-07-15 2014-09-30 International Business Machines Corporation System and method for mirroring data
US8359491B1 (en) * 2004-03-30 2013-01-22 Symantec Operating Corporation Disaster recovery rehearsal using copy on write
US7747760B2 (en) * 2004-07-29 2010-06-29 International Business Machines Corporation Near real-time data center switching for client requests
US8281014B2 (en) * 2004-12-28 2012-10-02 Sap Ag Session lifecycle management within a multi-tiered enterprise network
US8064356B1 (en) * 2005-01-11 2011-11-22 Verizon Services Corp. System and methods for measuring network performance
US7698416B2 (en) * 2005-01-25 2010-04-13 Cisco Technology, Inc. Application layer message-based server failover management by a network element
US8024566B2 (en) * 2005-04-29 2011-09-20 Sap Ag Persistent storage implementations for session data within a multi-tiered enterprise network
US7761435B2 (en) * 2005-04-29 2010-07-20 Sap Ag External persistence of session state information
US8199654B2 (en) * 2005-06-21 2012-06-12 Alcatel Lucent Method and apparatus for providing end-to-end high quality services based on performance characterizations of network conditions
US7651593B2 (en) 2005-12-19 2010-01-26 Commvault Systems, Inc. Systems and methods for performing data replication
US8051179B2 (en) * 2006-02-01 2011-11-01 Oracle America, Inc. Distributed session failover
US8024439B2 (en) * 2006-03-17 2011-09-20 Microsoft Corporation Server session management application program interface and schema
US7711848B2 (en) * 2006-06-15 2010-05-04 Oracle International Corporation System using session initiation protocol for seamless network switching in a media streaming session
US7751320B2 (en) * 2006-09-30 2010-07-06 Alcatel-Lucent Usa Inc. Admission control of sessions with preference lists
US8725890B2 (en) * 2006-10-31 2014-05-13 Thomson Licensing Data recovery in heterogeneous networks using peer's cooperative networking
US7844851B2 (en) 2006-12-13 2010-11-30 Oracle International Corporation System and method for protecting against failure through geo-redundancy in a SIP server
JP4982304B2 (ja) * 2007-09-04 2012-07-25 株式会社日立製作所 電源障害の発生を把握するストレージシステム
US7870095B2 (en) * 2007-12-03 2011-01-11 International Business Machines Corporation Apparatus, system, and method for replication of data management information
WO2010102084A2 (en) 2009-03-05 2010-09-10 Coach Wei System and method for performance acceleration, data protection, disaster recovery and on-demand scaling of computer applications
US20100228824A1 (en) * 2009-03-06 2010-09-09 Cisco Technology, Inc. Distributed server selection for online collaborative computing sessions
US9537957B2 (en) * 2009-09-02 2017-01-03 Lenovo (Singapore) Pte. Ltd. Seamless application session reconstruction between devices
US8694469B2 (en) * 2009-12-28 2014-04-08 Riverbed Technology, Inc. Cloud synthetic backups
US9686355B2 (en) * 2010-12-20 2017-06-20 Microsoft Technology Licensing, Llc Third party initiation of communications between remote parties
US8539338B2 (en) * 2011-04-11 2013-09-17 Microsoft Corporation Cooperative rendering cache for mobile browser
US8954786B2 (en) * 2011-07-28 2015-02-10 Oracle International Corporation Failover data replication to a preferred list of instances
US20130073670A1 (en) 2011-09-15 2013-03-21 Microsoft Corporation Geo-Migration Of User State
US10152398B2 (en) * 2012-08-02 2018-12-11 At&T Intellectual Property I, L.P. Pipelined data replication for disaster recovery
US9378060B2 (en) * 2012-08-28 2016-06-28 Oracle International Corporation Runtime co-location of executing logic and frequently-accessed application data
US8874506B2 (en) * 2012-09-10 2014-10-28 Oracle International Corporation Preventing database replication conflicts in a distributed environment
US8977598B2 (en) * 2012-12-21 2015-03-10 Zetta Inc. Systems and methods for on-line backup and disaster recovery with local copy
US9075704B2 (en) * 2013-01-25 2015-07-07 Hewlett-Packard Development Company, L.P. Mitigating risks during a high availibility and disaster recovery (HA/DR) rehearsal
US9465855B2 (en) * 2013-10-22 2016-10-11 International Business Machines Corporation Maintaining two-site configuration for workload availability between sites at unlimited distances for products and services

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1688979A (zh) * 2002-06-20 2005-10-26 国际商业机器公司 用于事务流水线分解的方法和系统
CN101535978A (zh) * 2006-11-10 2009-09-16 微软公司 分布式服务器系统中的消息转发备份管理器
CN102498715A (zh) * 2009-05-19 2012-06-13 宝美瑞思网络有限公司 带宽回收用受管理自适应比特率的方法、装置及计算机可读介质
CN102202061A (zh) * 2010-05-24 2011-09-28 微软公司 客户机-服务器会话并行化
US20130054822A1 (en) * 2011-08-30 2013-02-28 Rajiv P. Mordani Failover Data Replication with Colocation of Session State Data

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108833479A (zh) * 2018-05-18 2018-11-16 吉林亿联银行股份有限公司 一种数据同步方法和装置
CN108833479B (zh) * 2018-05-18 2021-02-09 吉林亿联银行股份有限公司 一种数据同步方法和装置
CN109981777A (zh) * 2019-03-27 2019-07-05 深圳市网心科技有限公司 基于cdn的副本维护方法、服务器、副本存储节点以及系统
CN110009244A (zh) * 2019-04-12 2019-07-12 西安交通大学 一种考虑抗灾恢复的区域综合能源系统优化调度方法

Also Published As

Publication number Publication date
WO2015069584A1 (en) 2015-05-14
EP3069496A1 (en) 2016-09-21
BR112016010037A8 (pt) 2020-04-14
US20150134723A1 (en) 2015-05-14
EP3069496B1 (en) 2020-02-12
US10594784B2 (en) 2020-03-17
CN105765949B (zh) 2019-11-05

Similar Documents

Publication Publication Date Title
CN105765949A (zh) 用于交互式云应用的地理分布式灾难恢复
CN105637481B (zh) 计算会话的管理
JP7212266B2 (ja) タスクを共同処理するためのプラットフォーム
Chang et al. Probability-based cloud storage providers selection algorithms with maximum availability
US9392054B1 (en) Distributed cloud computing platform and content delivery network
US9934020B2 (en) Intelligent mobile application update
US9734473B2 (en) Computer-implemented system for hierarchical unconstraining in data processes
US11961056B2 (en) Mixed deployment architecture for distributed services
US10693821B2 (en) System and method for delivering inline interactive objects encapsulated in a message
US20230081978A1 (en) Localized blockchain utilizing mesh networks for localized events
EP3814896A1 (en) Task completion using a blockchain network
US20220006860A1 (en) Intelligent, decentralized and autonomous marketplace for distributed computing and storage
Vigil et al. A first look at tribal web traffic
CN112313629A (zh) 备份和恢复验证
CN103562876A (zh) 在临时断线期间将请求重定向至次要位置
Phuoc Hung et al. An adaptive procedure for task scheduling optimization in mobile cloud computing
US20190080408A1 (en) System And Method For Global Trading Exchange
CN111226242B (zh) 云计算网络检查技术
Bai et al. Edge Computing and Capability-Oriented Architecture
US10503592B2 (en) Overcoming bottlenecks in partial and traditional rebuild operations
Sedivy et al. Mcsync-distributed, decentralized database for mobile devices
US10402271B2 (en) Overcoming bottlenecks in zero information gain (ZIG) rebuild operations
US20240144777A1 (en) Systems and methods for arranging interface elements based on broadcaster events
US20200412804A1 (en) Direct file send from storage to end client by transferring socket information to the storage
CN104539619B (zh) 用于互联网在线交易的数据处理方法

Legal Events

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