中间件的作用
为了实现性能、健壮性和完整性这些目标,人们采用了一种经证实并被广泛接受的模式。该模式在每个通信端点上引入将被我们称为端点管理器的消息传递中间件组件。这些端点管理器可以接受来自一个或多个应用程序的消息传递请求,为消息到达目的地提供可靠的传递,并将接收到的消息传递到合适的应用程序。
端点管理器能够简化管理消息和 Sequence 状态的持久性的复杂程度。它可以与其他的资源管理器一起参与资源管理活动以实现更好的健壮性和完整性特征,同时降低应用程序代码的复杂性。端点管理器可以作为应用程序软件本身的一个组件(例如,作为专门的 JAX-RPC 处理程序)来实现。或者,也可以作为通过远程 API(如 Java 消息服务(Java Message Service,JMS)API)来访问的一个分布式组件(例如,作为 IBM WebSphere MQ 队列管理器)来实现。
编程模型
应用程序在与它们的本地端点管理器交互时,可以从多种编程模型中选择一种使用:
同步请求/响应— 在这种情况下,应用程序把它的消息传递到它的端点管理器,然后等待一段指定的时间,直到该端点管理器返回一个来自最终接收方应用程序的响应,或者返回一个失败结果表明该消息无法被传递、无法被处理或者无法接收响应。该应用程序在等待端点管理器响应时不能做任何事。
异步单向— 在这种情况下,发送方应用程序把它的消息传递到它的端点管理器,但不等待或不期望得到响应。要么消息将被传递,要么该端点管理器向该应用程序表明消息无法传递或者无法处理。对接收应用程序来说,它的端点管理器将通知它有消息要处理。这种通知的方式是让该端点管理器触发事件或通过应用程序查询它的端点管理器。
异步请求/响应— 在这种情况下,应用程序把它的消息传递到它的端点管理器,该端点管理器迅速应答,表明将尝试传递消息。该应用程序随后继续它的活动直到准备检查(或被告知)来自它的端点管理器的响应。该端点管理器则表明已接收来自目的地的响应并准备对它进行处理,或者表明传递错误出现。
最能说明上面列出的第一个模型的是用于 Web 服务的 JAX-RPC API。虽然 JAX-RPC 在某种程度上支持第二个和第三个编程模型,但 JMS API 最能说明它们。
编程模型的选择对端点管理器之间消息的实际处理和可靠传递即使有影响,也只是一点点。然而,它可以极大地影响应用程序和与其关联的端点管理器之间的通信和状态管理的健壮性。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
中间件可帮助企业实现应用现代化
本文,Tom Nolle讲述了大家都需要了解的现代化的流行做法,“中间件”方式——解释了如何确保采用的是正确方法,如何简化流程,并且为将来做好准备。
-
云连锁反应:中间件栈添层 应用更轻量
中间件栈增加了层以及对轻量应用的开发需求将导致更好的云访问,而云的无所不在增加了中间件栈的层次。
-
如何应对中间件工具引发的安全风险
中间件工具会引起巨大的漏洞,足以抵消所带来的好处。然而,通过一些简单的步骤你就可以保护自己和数据。
-
越来越强大的IT标准、SOA及其他颠覆性技术
在本期问答环节中,我们将荣幸的邀请到来自Open Group的Chris Harding先生与我们一起讨论他对IT标准、SOA以及移动和云计算等科技未来的发展情况。