[发明专利]用于管理程序代码的实例的方法和系统有效
申请号: | 201280026757.7 | 申请日: | 2012-05-29 |
公开(公告)号: | CN103562853B | 公开(公告)日: | 2017-03-22 |
发明(设计)人: | J·泰勒;J·布朗;K·沃尔夫;E·平特;S·巴特雷斯;N·塔尔伯特 | 申请(专利权)人: | 微软技术许可有限责任公司 |
主分类号: | G06F9/06 | 分类号: | G06F9/06;G06F9/44 |
代理公司: | 上海专利商标事务所有限公司31100 | 代理人: | 范玮 |
地址: | 美国华*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 管理程序 代码 实例 方法 系统 | ||
背景
分布式应用通常在具有多个节点的系统上运行。分布式应用使用各种消息交换来在这些节点之间进行内部通信。为维护总体应用的一致状态,消息交换常常需要第三方协调器来确保各个节点发送、接收以及处理这些消息而无故障。如果需要,第三方协调器允许整个交换被回退,并且提供适当的补偿逻辑。在典型分布式应用中,系统的每一节点上必需部署并管理分布式事务协调器。开发者必需明确地选择加入使用第三方协调器程序中的事务。然而,在诸如云计算的特定环境(其中这样的第三方协调器不可用)中,开发者承担确保消息收发交换中的一致性的负担。
概述
状态协调协议和情节执行模型(episodic execution model)可被用于实现分布式应用中的最终一致性,而无需分布式事务协调器。这消除了部署和管理分布式事务协调器节点的负担,并且简化了编程模型,使得全部消息收发交互可无缝地参与。各实施例提供了异步消息收发系统,该系统适于在大规模云计算环境中需要一致性的长期运行的分布式应用。该系统可与基于延续的运行时进行组合,以提供依赖于最终一致性的大规模工作流系统。
一个实施例将程序的情节执行与消息交换协议进行组合,以协调分布式应用中的节点的状态。利用情节执行与消息交换协议的组合来实现分布式系统中各节点之间的通信的最终一致性。实例的执行作为一系列情节而发生。
在另一实施例中,情节执行模型将消息状态与应用状态进行匹配。该匹配基于应用入口点(诸如应用级或系统级消息),应用需要这些入口点来确定它是否准备好执行。程序逻辑被用于将各消息与其对应的应用入口点进行匹配。在检查点操作(checkpointing)之前,情节执行模型收集输出数据以及写入,诸如传出消息。执行的情节采用消息状态和应用状态一起作为输入,并且生成一组写入、一组应用恢复点、和经更新的应用状态。当持久状态存储被使用时,这些情节是幂等的并且容忍机器或网络故障。
情节执行循环以匹配事件状态开始,在匹配事件状态期间该程序等待特定输入事件。当相关事件被检测到时,该情节开始并且该程序移至执行程序状态。在执行程序状态期间,可生成输出,并且可标识入口点和恢复点。当没有附加输入而该程序不能进一步前进时,该情节移至检查点状态,其中经处理的输入事件、应用状态、以及相关消息状态被记录。检查点状态之后,过程移至发送和证实状态,其中在执行程序状态中标识出的任何传出消息被发送。该情节随后返回匹配事件状态以等待新的输入事件。这一机制在该基础结构内运行,并且应用本身不知晓该基础结构如何处理这些消息或事件。应用生成要发送的事件或消息,标识它现在愿意接受的各事件或消息,并且标识当这些事件或消息之一到达时它会希望返回的某一状态。例如,消息可以是要传被输至一地址的数据片段。应用或使用无需关注该情节如何被处理,因为这是由基础结构处理的。
发送者发起的成对消息交换协议可被用于状态协调。消息交换协议重试、证实并确认发送和接收消息,同时检测并且丢弃重复。通过减少一致性所要求的消息数量以使不需要证实消息,从而针对幂等操作来优化协议。
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的选择的概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
附图说明
图1是情节执行循环的高级图示;
图2示出根据一个实施例的发送者状态转变;
图3示出根据一个实施例的接收者状态转变;
图4是根据一个实施例的分布式实例系统的各组件的高级框图;以及
图5是根据一个实施例的分布式实例系统的拓扑结构的高级框图。
详细描述
大型计算系统包括多个分布式应用。各应用负责对处理逻辑进行处理并执行可能持续数星期、数月或甚至数年的长期运行的业务过程。各应用是隔离的,除了访问共享网络之外。各应用通过在这一网络上发送消息来进行通信。这些过程的执行通过大量物理计算资源发生。分布式应用包括大量个体程序定义。每一程序隔离地执行,并且可仅经由异步消息交换与其他程序通信。正在执行的程序被称为“实例”。在任一时刻,可能存在为程序定义中的任一个而执行的大量个体实例。这些实例是在实例运行时的管理下被执行的。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201280026757.7/2.html,转载请声明来源钻瓜专利网。