MOM(Message Oriented Middleware)是面向讯息的中间件,使用讯息传送提供者来协调讯息传送操作。MOM 需要提供 API 和管理工具。客户端使用api调用,把讯息传送到由提供者管理的目的地。在传送讯息之后,客户端会继续执行其他工作,并且在接收方收到这个讯息确认之前,提供者一直保留该讯息。
基本介绍
- 中文名:MOM
- 外文名:Message Oriented Middleware
- 解释:面向讯息的中间件
- 特点1:间接地将讯息放入讯息伫列
- 特点2:没有增加应用程式的複杂性
- 特点3:不涉及网路通讯的複杂性
简介
MOM通过提供讯息传递和讯息排队模型,它可在分布环境下扩展进程间的通信,并支持多
通讯协定、语言、应用程式、硬体和软体平台。时下流行的MOM中间件产品有IBM的MQSeries、 BEA的MessageQ等。
基于 MOM 的系统

特点
讯息传递和排队技术有以下三个主要特点:
通讯程式可在不同的时间运行:程式不在网路上直接相互通话,而是间接地将讯息放入讯息伫列,因为程式间没有直接的联繫。所以它们不必同时运行。讯息放入适当的伫列时,目标程式甚至根本不需要正在运行;即使目标程式在运行,也不意味着要立即处理该讯息。
对应用程式的结构没有约束:在複杂的套用场合中,通讯程式之间不仅可以是一对一的关係,还可以进行一对多和多对一方式,甚至是上述多种方式的组合。多种通讯方式的构造并没有增加应用程式的複杂性。
程式与网路複杂性相隔离: 程式将讯息放入讯息伫列或从讯息伫列中取出讯息来进行通讯,与此关联的全部活动,比如维护讯息伫列、维护程式和伫列之间的关係、处理网路的重新启动和在网路中移动讯息等是MOM的任务,程式不直接与其它程式通话,并且它们不涉及网路通讯的複杂性。
相关信息
MOM面向讯息的中间件
面向讯息的中间件使用讯息传送提供者来协调讯息传送操作。MOM(Message-oriented Middleware)系统的基本元素是客户端、讯息和MOM提供者,后者包括API和管理工具。MOM提供者使用不同的体系结构路由和传送讯息:它可以使用集中式讯息伺服器,也可以将路由和传送功能分布在每个客户端上。某些MOM产品结合了这两个方法。
使用MOM系统,客户端可以进行API调用,以便将讯息传送到由提供者管理的目的地。该调用会调用提供者服务以路由和传送讯息。在传送讯息之后,客户端会继续执行其他工作,并确信在接收方客户端检索该讯息之前,提供者一直保留该讯息。基于讯息的模型与提供者的协调耦合在一起,使得创建鬆散耦合的组件系统成为可能。这样的系统可以继续可靠地工作,即使在有个别组件或连线失败时也不会停机。
由讯息传送提供者协调客户端之间的讯息传送的另一个优点是:通过添加管理界面,可以监视和调整性能。这样,客户端应用程式便不必关心传送、接收和处理讯息之外的任何问题。对于互操作性、可靠性、安全性、可伸缩性和性能之类的问题,应当由管理员通过编码实现MOM系统来解决。
至此,我们已经介绍了使用面向讯息的中间件连线分散式组件的很多优点。下面将介绍其缺点。缺点之一源自鬆散耦合本身。在RPC系统中,只有在被调用函式完成任务之后,才能返回调用函式。在异步系统中,调用方客户端会继续为接收方装入工作,直到处理装入工作所需的资源耗尽且被调用组件发生故障。当然,可以通过监视性能和调整讯息流来儘量减少或避免这些情况,但对于RPC系统却不必这样做。有一点很重要,那就是了解每种系统的优缺点。每种系统所适合执行的任务都不同。有时,您需要结合两种系统才能完全获得所需的行为。
补充信息
图中显示MOM系统如何使两个基于RPC的系统进行通信。该图的左侧显示在不同的网路节点上分布客户端、伺服器和数据存储库组件以提高性能的应用程式。这是一个折扣机票预定系统:最终用户为使用此服务支付一定的费用,使用该服务可以找到特定目的地和时间的最低费用。数据存储库保存有关注册用户和参与此折扣计画的航空公司的信息。伺服器上的逻辑功能根据用户的请求在所参与的航空公司中查询价格、对信息进行排序并向用户提供三个最低报价。对于每个这样的航空公司,数据存储库都将保存有关可用航班的信息(座位、飞行时间和价格)。伺服器组件将更新这些信息以回响最终用户输入的数据。航空公司的伺服器还订阅MOM服务,接收折扣预定系统的信息请求,并返回座位和价格信息。如果用户决定购买PanWorld航空公司的折扣机票,则该系统的伺服器组件将更新数据存储库中的信息,然后为请求者生成机票或者向折扣服务传送一条讯息以生成机票。