当前位置: 首页 > 专利查询>微软公司专利>正文

具有可配置保证的分布式消息收发系统技术方案

技术编号:5440600 阅读:229 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及用于在分布式消息收发系统内配置保证的方法、系统和计算机程序产品。一组定义的消息日志和游标组件可通过配置来激活和停用以在分布式消息收发系统内组成各种不同的捕捉保证、传输保证、以及送达保证。捕捉保证、传输保证、以及送达保证的合成可为消息收发系统提供端对端保证。端对端保证可包括最大努力、至多一次、至少一次、以及正好一次中的一个,并可包括以下之一:耐久或非耐久。使用一组定义的可激活和可停用消息日志和游标组件便于更高效地在所需保证之间进行转换。在一些实施例中,捕捉保证、传输保证、以及送达保证的合成提供耐久的正好一次消息传递。

【技术实现步骤摘要】
【国外来华专利技术】具有可配置保证的分布式消息收发系统背景背景和相关技术计算机系统和相关技术影响社会的许多方面。的确,计算机系统处理信息的能力 已转变了人们生活和工作的方式。计算机系统现在通常执行在计算机系统出现以前手动执 行的许多任务(例如,文字处理、日程安排和会计等)。最近,计算机系统彼此耦合并耦合到 其他电子设备以形成计算机系统和其他电子设备可以在其上传输电子数据的有线和无线 计算机网络。因此,许多计算任务的执行分布在多个不同的计算机系统和/或多个不同的 计算环境上。分布式消息收发系统可以实现排队和发布/订阅(“pub/sub”)消息模式。队列 本质上是一对一消费者消息交换。消息生产者将消息插入到队列中,并且消息消费者从该 队列中取出消息。另一方面,发布/订阅系统是一对多消息交换。消息生产者发布消息并 且多个消息消费者订阅并接收所发布的消息。分布式消息收发系统,包括实现排队和发布/订阅模式的那些系统,通常背后都 有一消息存储。在这些分布式消息收发系统中,使用消息存储来收集订阅来自一主题的消 息的或从一队列中进行消费的各单独消费者的状态。消费者(例如,用户代码应用程序) 通常使用分布式消息收发系统来确保消息从消息日志正好送达消费者一次。消费者使用事 务来检索消息,因为应用程序状态固有地与游标状态绑定。不幸的是,对于从队列或主题接 收消息的大量消费者,对事务的使用不能伸缩。典型的分布式消息系统还具有多个其他限制。例如,分布式消息系统通常紧耦合 到有限数量的或甚至单个网络拓扑结构。因此,即是存在也仅存在有限的修改分布式消息 系统以供在其他网络拓扑结构中使用的能力。例如,一些分布式消息系统不能在其中消费 者通过防火墙而与队列或主题分开的拓扑结构上使用。此外,分布式消息收发系统通常在它们提供的消息保证方面受到限制。例如,提供 最大努力消息送达的分布式消息收发系统通常未被设计成确保任何消息都不被丢掉。即使 是提供高保证的分布式消息收发系统通常也不能被修改来提供低保证。例如,提供正好一 次保证的分布式消息收发系统通常不能被容易地修改成提供至多一次、至少一次、或最大 努力送达。类似限制也与分布式消息收发系统内的消息耐久性相关联。即,分布式消息收发 系统通常在它们提供的消息存储的类型方面受到限制。此外,类似于与保证相关联的限制, 即使是提供增加可靠性的消息存储的分布式消息收发系统也不能被修改成提供较不可靠 消息存储。例如,提供耐久消息存储的分布式消息收发系统通常不能被容易地修改成提供 易失性或非事务消息存储。这些保证和消息日志限制可能是由于分布式消息系统的网络拓扑结构而施加的, 或可能是因分布式消息系统的软件内的硬编码指令而导致的。例如,设计耐久队列的开发 者可能没有理由包括或甚至考虑关于较不可靠消息存储的选项(并且从他的雇主的观点 看这是浪费资源)。同样,在不一定需要更可靠消息送达的情况下,使用最大努力送达的发布/订阅消息收发系统添加关于更可靠消息传递的选项将会浪费大量资源。然而,如大多数计算机化系统一样,分布式消息收发系统的要求可随时间改变。例 如,分布式消息系统可得到更多用户,用户的类型可以改变(例如,从免费软件转成收入模 型),政府规章可以改变,可作出战略业务决策来削减成本等。鉴于改变了的要求,对消息送 达保证和消息存储可靠性的对应改变可以是有正当理由的。例如,在从免费软件转成收入模型时,顾客可能要求增加的消息送达保证(例如, 从最大努力到正好一次)。或者,为削减成本,IT部门可确定降低消息送达保证是更加具有 成本效率的(例如,从至少一次到最大努力)。另一典型原因是在分布式消息系统上运行的 商业应用程序可被改变或替换,从而导致其对分布式消息收发系统的要求的改变。类似地, 底层网络的失败率可能改变,从而使得在较高层应用保证较不具有成本效率。不幸的是,通 常没有高效的方式来更改(增加或减少)分布式消息系统中的现有消息送达保证和消息存 储可靠性。一个选项是重建代码以包括所需送达保证和存储可靠性机制。然而,对开发者而 言,这很耗时、成本高昂、且资源密集。另一选项是购买包括所需送达保证和存储可靠性的 新分布式消息系统。然而,这也是成本高昂的且可在与现有组件和消息集成期间导致兼容 性困难。简要概述本专利技术涉及用于配置分布式消息收发系统内的保证的方法、系统和计算机程序产 品。组件化消息收发系统便于配置各种不同捕捉协议、传输协议、以及送达协议中的任一种 以彼此交互来提供所需消息保证。因此,公司可更高效地配置它们的消息系统(并改变其 配置)以与该公司的商业逻辑(该逻辑可能是变化且动态的)相匹配。在一些实施例中,组件化消息系统包括消息日志和游标。一般而言,消息日志被配 置成存储消息。消息日志还包括消息日志组件,该消息日志组件用于组成一组可扩展捕捉 协议中的任一协议以捕捉来自消息生产者的消息的,从而允许生产者使用不同保证并通过 不同协议来将消息移交给分布式消息收发系统。例如,可以使用任何请求-响应协议来实 现至少一次(AL0)保证。另一方面,单向协议只能完成至多一次(AM0),因为在消息丢失或 发生崩溃的情况下没有反馈。该组可扩展捕捉协议可以提供来自一组消息捕捉保证内的各 种不同消息捕捉保证中的任一种。通过使用消息日志组件的不同组合,包括利用耐久存储 和事务中的一个或多个,促进了不同的消息捕捉保证。一般而言,游标被配置成跟踪消费者在消息日志中的消息中的进展。游标还包括 游标组件,该游标组件用于组成一组可扩展送达协议和/或消息交换模式(MEP)中的任一 个以向将消息送达消息消费者。MEP通常标识谁首先向谁发送数据以及该数据包含什么 (例如,单向还是请求-回复)。送达响应指示该数据如何出现在线路上(例如,XML、字 节_分组等)。该可扩展组送达协议可以提供来自一组消息送达保证内的各种不同消息送 达保证中的任一种。通过使用游标组件的不同组合,包括利用耐久存储和事务中的一个或 多个,促进了不同的消息送达保证。消息日志和游标各自还包括用于彼此互操作以组成一组可扩展传输协议中的任 一种以将消息从消息日志传输到分开的游标的其他组件。该组可扩展传输协议可以提供来 自一组消息传输保证内的各种不同消息传输保证中的任一种。通过使用消息日志和游标组件的不同组合,包括利用时间窗和已确认送达的使用变化中的一个或多个,促进了不同的 消息传输保证。因此,可以组合捕捉保证、传输保证、以及送达保证的各种组合来提供不同的端对 端保证,诸如例如,其可以是最大努力、至多一次、至少一次、或正好一次以及耐久或易失 性。本专利技术的附加特征和优点将在以下描述中叙述,且其一部分根据本描述将是显而 易见的,或可通过对本专利技术的实践来获知。本专利技术的特征和优点可通过在所附权利要求书 中特别指出的工具和组合来实现和获得。本专利技术的这些和其他特征将通过以下描述和所附 权利要求书变得更加显而易见,或可通过对下文中所述的本专利技术的实践来领会。附图简述为了描述可获得本专利技术的上述和其他优点和特征的方法,将通过引用附图中示出 的本专利技术的具体实施例来呈现以上简要描述的本专利技术的更具体描述。可以理解,这些附图 仅描述本专利技术的典型实施例,从而不被认为是对其范围的限制,本专利技术将通过使用附图用 附加特征和细节来描述和说明,本文档来自技高网...

【技术保护点】
一种具有可配置保证的组件化消息收发系统(100),包括:被配置成存储消息的消息日志(102),所述消息日志包括一个或多个处理器、系统存储器、以及用于组成一组可扩展捕捉协议中的任一种以捕捉来自消息生产者(105)的消息(164)的消息日志组件(152),所述一组可扩展捕捉协议被配置成提供来自一组消息捕捉保证(201)内的各种不同的消息捕捉保证中的任一种,所述一组消息捕捉保证在耐久存储(122)的使用中变化并在事务的使用中变化;被配置成跟踪消费者(107)在所述消息日志(102)中的消息中的进展的游标(103),所述游标(103)包括一个或多个处理器、系统存储器、以及用于组成一组可扩展送达协议中的任一种以将消息(164)送达消息消费者(107)的游标组件(153),所述一组可扩展送达协议被配置成提供来自一组消息送达保证(203)内的各种不同的消息送达保证中的任一种,所述一组消息送达保证在耐久存储(122)的使用中变化并在事务的使用中变化;以及其中所述消息日志(102)和所述游标(103)各自还包括用于彼此互操作以组成一组可扩展传输协议中的任一种以将消息从所述消息日志(102)传输到分开的游标(103)的其他组件,所述一组可扩展传输协议被配置成提供来自一组消息传输保证(202)内的各种不同的消息传输保证中的任一种,所述一组消息传输保证在时间窗的使用中变化并在已确认送达的使用中变化。...

【技术特征摘要】
【国外来华专利技术】US 2007-11-16 60/988,735;US 2008-6-27 12/163,572一种具有可配置保证的组件化消息收发系统(100),包括被配置成存储消息的消息日志(102),所述消息日志包括一个或多个处理器、系统存储器、以及用于组成一组可扩展捕捉协议中的任一种以捕捉来自消息生产者(105)的消息(164)的消息日志组件(152),所述一组可扩展捕捉协议被配置成提供来自一组消息捕捉保证(201)内的各种不同的消息捕捉保证中的任一种,所述一组消息捕捉保证在耐久存储(122)的使用中变化并在事务的使用中变化;被配置成跟踪消费者(107)在所述消息日志(102)中的消息中的进展的游标(103),所述游标(103)包括一个或多个处理器、系统存储器、以及用于组成一组可扩展送达协议中的任一种以将消息(164)送达消息消费者(107)的游标组件(153),所述一组可扩展送达协议被配置成提供来自一组消息送达保证(203)内的各种不同的消息送达保证中的任一种,所述一组消息送达保证在耐久存储(122)的使用中变化并在事务的使用中变化;以及其中所述消息日志(102)和所述游标(103)各自还包括用于彼此互操作以组成一组可扩展传输协议中的任一种以将消息从所述消息日志(102)传输到分开的游标(103)的其他组件,所述一组可扩展传输协议被配置成提供来自一组消息传输保证(202)内的各种不同的消息传输保证中的任一种,所述一组消息传输保证在时间窗的使用中变化并在已确认送达的使用中变化。2.如权利要求1所述的系统,其特征在于,所述用于实现一组可扩展捕捉协议的消息 日志组件包括事务缓冲区,所述事务缓冲区可通过配置来激活和停用以帮助组成从所述一组可扩展 捕捉协议中选择的捕捉协议,激活所述事务缓冲区以向所选捕捉协议提供事务行为并且停 用所述事务缓冲区以向所选捕捉协议提供非事务行为;以及耐久存储,所述耐久存储可通过配置来激活和停用以帮助组成从所述一组可扩展捕捉 协议中选择的捕捉协议,激活所述耐久存储以向所选捕捉协议提供耐久存储并且停用所述 耐久存储以向所选捕捉协议提供易失性存储。3.如权利要求2所述的系统,其特征在于,激活所述事务缓冲区和耐久存储之一以及 停用所述事务缓冲区和耐久存储之一。4.如权利要求1所述的系统,其特征在于,所述用于实现一组可扩展送达协议的游标 组件包括事务组件,所述事务组件可通过配置来激活和停用以帮助组成从所述一组可扩展送达 协议中选择的送达协议,激活所述事务组件以向所选送达协议提供事务行为并且停用所述 事务组件以向所选送达协议提供非事务行为;以及耐久状态组件,所述耐久状态组件可通过配置来激活和停用以帮助实现从所述一组可 扩展送达协议中选择的送达协议,激活所述耐久状态组件以向所选送达协议提供耐久游标 状态并且停用所述耐久状态组件以向所选送达协议提供易失性游标状态。5.如权利要求4所述的系统,其特征在于,激活所述事务组件和耐久状态组件之一以 及停用所述事务组件和耐久状态组件之一。6.如权利要求1所述的系统,其特征在于,所述用于彼此互操作以实现一组可扩展传 输协议的消息日志和分开的游标组件包括消息确认组件,所述消息确认组件可通过配置来激活和停用以帮助实现从所述一组可扩展传输协议中选择的传输协议,激活所述消息确认组件以向所选传输协议提供消息确认 行为并且停用所述消息确认组件以向所选传输协议阻止消息确认行为;以及时间窗组件,所述时间窗组件可通过配置来激活和停用以帮助实现从所述一组可扩展 传输协议中选择的传输协议,激活所述时间窗组件以向所选传输协议提供消息窗保留并且 停用所述时间窗组件以向所选传输协议阻止消息窗保留。7.如权利要求6所述的系统,其特征在于,激活所述消息确认组件和时间窗组件之一 以及停用所述消息确认组件和时间窗组件之一。8.如权利要求1所述的系统,其特征在于,所述消息日志组件和游标组件可通过配置 来激活和停用以提供以下之一最大努力消息送达、至多一次消息送达、至少一次消息送 达、以及正好一次消息送达。9.如权利要求1所述的系统,其特征在于,所述消息日志组件和游标组件可通过配置 来激活和停用以提供以下之一耐久消息送达或易失性消息送达。10.如权利要求1所述的系统,其特征在于,所述消息日志组件和游标组件可通过配置 来激活和停用以提供耐久的正好一次消息送达。11.一种具有可配置保证的组件化消息收发系统,所述组件化消息收发系统被配置成 向多个客户机提供对消息的耐久的正好一次送达,所述系统包括消息日志,所述消息日志包括一个或多个处理器、系统存储器、以及用于实现一组可扩 展捕捉协议中的任一种以捕捉来自消息生产者的消息的可配置消息存储组件,所述消息日 志组件被配置成实现耐久的基于事务的捕捉协议以捕捉来自消息生产者的消息;分开的客户机侧游标,所述分开的客户机侧游标与所述消息日志分开,所述分开的游 标包括一个或多个处理器、系统存储器、以及用于实现一组可扩展送达协议以将消息送达 消息消费者的游标组件,所述游标组件被配置成实现耐久的基于事务的送达协议以将消息 送达消息消费者;以及其中所述消息日志和所述分开的游标各自还包括用于彼此互操...

【专利技术属性】
技术研发人员:G奇克多洛夫RD希尔CA克里奇利K斯里尼瓦桑T塔纳弗斯基MG莫里斯P古鲁纳特
申请(专利权)人:微软公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1