供异步消息接发系统使用的方法和设备技术方案

技术编号:2868200 阅读:256 留言:0更新日期:2012-04-11 18:40
一种供异步消息接发系统之用的基于计算机的方法,包括下述步骤:(i)为要在系统中发送的至少一个消息确定至少一种消息传送结果条件,并使所述至少一种消息传送结果条件和要在系统中发送的消息相关联;(ii)在系统中发送具有相关消息传送结果条件的消息;和(iii)监视发送消息的传送,根据相关联消息传送结果条件,评估消息的传送结果,从而可把相对于最终接受者的消息传送结果通知消息的发送者。(*该技术在2021年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及使用异步消息接发的分布式并行软件系统。
技术介绍
分布式并行软件系统采用不同形式的电子通信。消息接发是一种这样的通信模型。借助消息接发,系统组件通过发送消息相互通信。消息传送一些专用数据。消息接发天生是异步的,因为系统组件在某一时刻发送消息,并且独立于消息传送和消息的任意接受者,继续进行计算。消息发送者可在稍后时刻接收对该消息的应答。消息的发送者和接受者在时间上是独立的,即它们不必同时存在于网络上。许多分布式并行软件系统依赖于异步消息接发,并且为此使用消息中间件。消息中间件指的是在软件系统的组件之间实现消息接发操作的一种或多种软件程序。借助消息中间件,消息一般被发送给某一形式的目的地,例如消息队列,消息中间件的其它客户程序,例如最终消息接受者随后可从所述目的地读取消息。从而,消息的发送者和接受者不必知道彼此的存在。对于消息的发送者来说,各个消息传送的失败和成功很重要,甚至可能是关键性的。一般而言,依据其确定消息传送失败的专用标准可因发送者以及因消息而异。但是,规定这些标准,根据标准评估消息发送,以及对评估结果起反应都难以进行,并且不易于得到现有的消息中间件的支持。现有的消息中间件,例如MQSeries(IBM公司的商标),或者Java Message Service JMS(Sun Microsystems公司的商标)的实现只支持非常有限的消息传送失败的概念,并且不能区分不同的失败概念,基于每个消息,消息的发送者可以其它方式确定所述不同的失败概念。消息的发送者只规定消息的目的地,并且可声明消息传送是可靠的。随后,消息中间件确保即使在存在诸如系统崩溃之类故障的情况下,相对于目的地的消息传送。现有的消息中间件并不支持专用标准的确定,依据所述专用标准,可确定消息传送的失败和成功。
技术实现思路
本专利技术提供最好基于每条消息,确定并处理消息传送结果的方法和设备。所述结果最好为“成功”或“失败”。本专利技术的一方面是一种供异步消息接发系统之用的基于计算机的方法,所述方法包括下述步骤为要在系统中发送的至少一个消息确定至少一种消息传送结果条件,并使所述至少一种消息传送结果条件和要在系统中发送的消息相关联;在系统中发送具有相关联的至少一种消息传送结果条件的消息;并监视发送消息的传送,根据相关联的至少一种消息传送结果条件,评估消息的传送结果,从而可把消息的传送结果通知消息的发送者。在本专利技术的另一方面,提供一种由消息的发送者用于执行下述步骤的应用编程接口(i)基于每条消息,规定消息传送结果条件;(ii)使消息和消息结果条件(的目标表达)相关联;(iii)发出具有这些结果条件的消息;(iv)相对于消息传送的结果条件,询问消息传送的状态;(v)允许修改或替换为某一消息规定的结果条件;和(vi)指定接收评估结果通知的对象。在本专利技术的另一方面,提供一种用于执行一个或多个下述操作的基于计算机的设备(i)把消息结果条件表达为永久对象;(ii)观察消息传送;(iii)评估消息结果条件;(iv)回答相对于消息传送结果条件,对消息传送状态的询问;和(v)把关于发送的每个消息的评估结果通知消息发送者,或者发送者指定的对象。可利用适合于实现这里提供的本专利技术教导的现有消息中间件实现所述设备。附图说明下面结合附图,详细说明本专利技术的例证实施例,其中图1是使用根据本专利技术的消息接发的系统的方框图;图2是根据本专利技术一个实施例的和图4、图5、图6和图7的流程图相关的消息接发进程的流程图;图3是根据本专利技术一个实施例的消息失败确定进程的流程图;图4是根据本专利技术一个实施例的消息发送进程的流程图;图5是根据本专利技术一个实施例的消息传送观察进程的流程图;图6是根据本专利技术一个实施例的消息失败评估进程的流程图;图7是根据本专利技术一个实施例的消息失败条件修改进程的流程图;图8是图解说明适合于实现根据本专利技术的消息接发系统的计算机系统的通用硬件结构的方框图。具体实施例方式下面将在使用异步消息接发的例证软件系统的环境下说明本专利技术。系统最好是分布式并行系统。众所周知,分布式软件系统是其中系统的组件可驻留在通过通信网络耦接的两个或更多计算机系统上的系统,同时并行软件系统是其中可并行,即同时处理几个计算任务的系统。但是,要明白本专利技术并不局限于任意特殊的软件系统体系结构。相反,本专利技术通常更适合于其中希望确定并处理消息传送结果的任意软件系统结构。下面描述的例证实施例将把“成功”和“失败”看作结果条件,不过本专利技术并不局限于此。如前所述,异步消息接发指的是与时间无关的软件进程之间的消息交换。一般来说,消息的发送者使用消息中间件把消息发送给由中间件管理的某一形式的目的地,例如远程消息队列。消息的最终接受者是从目的地读取消息的消息中间件的任意其它客户程序。另外,如前所述,对于消息的发送者来说,每个消息传送的失败和成功很重要,甚至可能是关键性的。一般而言,依据其确定消息传送失败的专用标准可因发送者以及因消息而异。例如,当且仅当消息m1分别在时间窗口t1和t2中到达特定的最终接受者r1和r2时,才认为消息m1被“成功传送”。否则,如果存在少于五个的,在时间窗口t3中接收消息m2的不同匿名最终接受者,则认为另一消息m2“失败”。但是,如前所述,规定这样的标准,根据标准评估消息发送,以及对评估结果作出反应都难以进行,并且不易得到现有消息中间件的支持。现有的消息中间件只支持非常有限的消息传送制作的概念,但是不区分不同的失败概念,基于每个消息,消息的发送者可以确定所述不同的失败概念。消息的发送者只规定消息的目的地,例如消息队列。一般不指定消息的最终接受者。虽然消息中间件可确保可靠地把消息传送给中间目的地,但是最终接受者对消息接受的确认必须被应用编码(application-coded),并且得不到中间件的直接支持。本专利技术引入更复杂的消息传送失败定义和管理。如同这里所述,可容易地对消息传送失败的不同概念编制程序,并且管理消息传送失败的负担从发送者转移到中间件。一种特殊应用是发送者可通过单个操作的结果,确定一组操作,即消息发送的全部结果,这里,操作可具有不同的失败条件。这样的一种特殊情况是其成功依赖于其消息的成功传送的交易。如同下面详细所述,在本专利技术的优选方面,提供应用编程接口,以便被消息的发送者用于(i)基于每条消息,规定消息传送失败条件;(ii)使消息和消息失败条件(的对象表达)关联起来;(iii)发送具有这些失败条件的消息;(iv)相对于消息传送失败条件,询问消息传送的状态;(v)允许修改或替换为消息指定的失败条件;和(vi)指定接收失败评估结果通知的对象。此外,如同下面详细所述,在本专利技术的另一优选方面,提供一种基于计算机的设备,用于(i)把消息失败条件表达为永久对象;(ii)观察消息传送;(iii)评估消息失败;(iv)回答相对于消息传送失败条件,对消息传送状态的询问;和(v)把关于发送的每个消息的评估结果通知消息发送者。可利用适合于实现这里提供的本专利技术教导的现有消息中间件实现所述设备。要设置的关于代表消息传送失败条件的数值包括,例如委任或可选接受者的名单,目的地(例如消息队列)和最终接受者(例如从目的地读取消息的其它应用程序对象),关于特定或者匿名最终接受者读取的消息的超时和所需时间窗口本文档来自技高网
...

【技术保护点】
一种供异步消息接发系统使用的基于计算机的方法,所述方法包括下述步骤:    为要在系统中发送的至少一个消息确定至少一种消息传送结果条件,并使所述至少一种消息传送结果条件和要在系统中发送的消息相关联;    在系统中发送具有相关联的至少一种消息传送结果条件的消息;和    监视发送消息的传送,并根据相关联的至少一种消息传送结果条件,评估消息的传送结果,从而可把消息的传送结果通知消息的发送者。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:托马斯米卡尔森伊萨贝勒鲁费路斯坦利苏顿史蒂芬泰
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

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

1