消息中间件原理与实现

        消息中间件原理与实现
                                    10748206桂勇哲
                                    10748210 胡栋梁
                                    10712059 穆斌
摘要:
    现今,越来越多的企业面临着各种各样的数据集成和系统整合,CORBA、DCOM、RMI等RPC中间件技术也应运而生,但由于采用RPC同 步处理技术,在性能、健壮性、可扩展性上都存在着诸多缺点。而基于消息的异步处理模型采用非阻塞的调用特性,发送者将消息发送给消息服务器,消息服务器在合适的时候再将消息转发给接收者;发送和接收是异步的,发送者无需等待,二者的生命周期也可以不必相同,而且发送者可以将消息间接传给多个接收者,大大提 高了程序的性能、可扩展性及健壮性,这使得异步处理模型在分布式应用上比起同步处理模型更具有吸引力。
    本文首先介绍了消息中间件的原理,然后实现消息中间件的一些最重要的功能, 并说明了实现方法,以及相应功能的应用,最后介绍消息中间件还可以添加哪些重要性质,以更好的进行消息服务,保证消息的一致异步有效的技术。
关键字:消息中间件,实现,点对点,发布/订阅,持久消息
一、中间件简介
1.1 中间件的定义
    中间件(middleware)是基础软件的一大类,属于可复用的软件范畴。中间件在操作系统软件,网络和数据库之上,应用软件之下,总的作用是为处于自己上层的应用软件提供运行于开发的环境,帮助用户灵活、高效的开发和集成复杂的应用软件。
孩子我为什么打你阅读答案    中间件是位于平台(硬件和操作系统)和应用之间的通用服务,这些服务具有标准的程序接口和协议。针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实现。
也许很难给中间件一个严格的定义,但中间件应具有如下的一些特点:
    满足大量应用的需要
    运行于多种硬件和OS平台
    支持分布计算,提供跨网络、硬件和OS平台的透明性的应用或服务的交互
    支持标准的协议
    支持标准的接口
IDC对中间件的定义为:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件定位于客户机服务器的操作系统之上,管理计算机资源和网络通信。
因而中间件是指一类软件,是基于分布式处理的软件,最突出的特点是其网络通信功能。也可认为中间件是位于平台和应用之间的通用服务,这些服务具有标准的程序接口和协议。针对不同的操作系统和硬件平台,可以有符合接口和协议的多种实现。
1.2 中间件的分类
    按照IDC的分类方法,中间件可分为六类:
1)        终端仿真/屏幕转换
2)        数据访问中间件(UDA)
3)        远程过程调用中间件(RPC)
4)        消息中间件(MOM)
5)      交易中间件(TPM)
6)        对象中间件
在实际应用中,一般将中间件分为两大类:一类是底层 中间件,用于支撑单个应用系统或解决一类问题,包括交易中间件、应用服务器、消息中间件、数据访问中间件等;另一类是高层中间件,更多的用于系统整合,包 括企业应用集成中间件、工作流中间件、门户中间件等,他们通常会与多个应用系统打交道,在系统中层次较高,并大多基于前一类的底层中间件运行。
二、面向消息的中间件
2.1 消息中间件的功能
面向消息的中间件:
    MOM指的是利用高效可靠的消息传递机制进行平台无关的数据交 流,并基于数据通信
来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可在分布环境下扩展进程间的通信,并支持多通讯协议、语言、应用程序、硬 件和软件平台。目前流行的MOM中间件产品有IBMMQSeriesBEAMessageQ等。
主要特点:
    通讯程序可在不同的时间运行 程序不在网络上直接相互通话,而是间接地将消息放入消息队列,因为程序间没有直接的联系。所以它们不必同时运行。消息放入适当的队列时,目标程序甚至根本不需要正在运行;即使目标程序在运行,也不意味着要立即处理该消息。 对应用程序的结构没有约束 在复杂的应用场合中,通讯程序之间不仅可以是一对一的关系,还可以进行一对多和多对一方式,甚至是上述多种方式的组合。多种通讯方式的构造并没有增加应用程序的复杂性。 程序将消息放入消息队列或从消息队列中取出消息来进行通讯,与此关联的全部活动,比如维护消息队列、维护程序和队列之间的关系、处理网络的重新启动和在网络中移动消息等是MOM的任务,程序不直接与其它程序通话,并且它们不涉及网络通讯的复杂性
2.3 消息中间件的传递模型
消息中间件一般有两种传递模型:点对点模型(PTP)和发布-订阅模型(Pub/Sub)。
1.    点对点模型(PTP)漯河市商业银行
点对点模型用于消息生产者和消息消费者之间点到点的通信。消息生产者将消息发动到由某个名字标识的特定消费者。这个名字实际上对应于消息服务中的一个队列(Queue),在消息传动给消费者之前它被存储在这个队列中。队列可以是持久的,以保证在消息服务出现故障时仍然能够传递消息。
2    发布-订阅模型(Pub/Sub)
发布-订阅模型用称为主题(topic)的内容分层结构代替了PTP模型中的惟一目的地,发送应用程序发布自己的消息,指出消息描述的是有关分层结构中的一个主题的信息。希望接收这些消息的应用程序订阅了这个主题。订阅包含子主题的分层结构中的主题的订阅者可以接收该主题和其子主题发表的所有消息。
下图展示了发布和订阅模型:
多个应用程序可以就一个主题发布和订阅消息,而应用程序对其他人仍然是匿名的。MOM 起着代理(broker)的作用,将一个主题已发表的消息路由给该主题的所有订阅者。
2.3 消息中间件产品
    从上个世纪90年代初,随着不同厂商消息中间件大量上市,消息中间件技术得到了长足
黑龙江省畜牧兽医局
的发展。目前,IBM和BEA的中间件产品在银行、证券、电信等高端行业,以及IT等行业中得到广泛应用。IBM凭借其在1999年推出的应用服务器WebSphere,扎根金融、证券等行业,在超大型以及系统整合型应用方面优势突出;BEA则是专门从事中间件开发的公司,它的应用服务器WebLogic在美国市场占有率超过60%,在国内电信及证券行业占据主要地位;Sun、Oracle、Sybase和Borland等厂商也都有自己的应用服务器;近年来,以金蝶、东方通等公司为代表的国产中间件产品也发展迅速。
由于没有统一的规范和标准,基于消息中间件的应用不可移植,不同的消息中间件也不能互操作,这大大阻碍了消息中间件的发展。Java Message Service(JMS, Java消息服务)是SUN及其伙伴公司提出的旨在统一各种消息中间件系统接口的规范。它定义了一套通用的接口和相关语义,提供了诸如持久、验证和事务的消息服务,它最主要的目的是允许Java应用程序访问现有的消息中间件。JMS规范没有指定在消息节点间所使用的通讯底层协议,来保证应用开发人员不用与其细节打交道,一个特定的JMS实现可能提供基于TCP/IP、HTTP、UDP或者其它的协议。
目前许多厂商采用并实现了JMS API,现在,JMS产品能够为企业提供一套完整的消息传递功能,下面是一些比较流行的JMS商业软件和开源产品。
1.IBM MQSeries
IBM MQ系列产品提供的服务使得应用程序可以使用消息队列进行相互交流,通过一系列基于Java的API,提供了MQSeries在Java中应用开发的方法。它支持点到点和发布/订阅两种消息模式,在基本消息服务的基础上增加了结构化消息类,通过工作单元提供数据整合等内容。
2.WebLogic
WebLogic是BEA公司实现的基于工业标准的J2EE应用服务器,支持大多数企业级JavaAPI,它完全兼容JMS规范,支持点到点和发布/订阅消息模式,它具有以下一些特点:
1)    通过使用管理控制台设置JMS配置信息;
2)    支持消息的多点广播;
3)    支持持久消息存储的文件和数据库;
4)    支持XML消息,动态创建持久队列和主题。
3.SonicMQ
SonicMQ是Progress公司实现的JMS产品。除了提供基本的消息驱动服务之外,SonicMQ也提供了很多额外的企业级应用开发工具包,它具有以下一些基本特征:
1)    提供JMS规范的完全实现,支持点到点消息模式和发布/订阅消息模式;
2)    支持层次安全管理;
3)    确保消息在Internet上的持久发送;
4)    动态路由构架(DRA)使企业能够通过单个消息服务器动态的交换消息;
5)    支持消息服务器的集。
4.Active MQ
2019最新国产理论Active MQ是一个基于Apcache 2.0 licenced发布,开放源码的JMS产品。其特点为:
1)    提供点到点消息模式和发布/订阅消息模式;
2)    支持JBoss、Geronimo等开源应用服务器,支持Spring框架的消息驱动;
3)    新增了一个P2P传输层,可以用于创建可靠的P2P JMS网络连接;
4)    拥有消息持久化、事务、集支持等JMS基础设施服务。
5.OpenJMS
非常e购OpenJMS是一个开源的JMS规范的实现,它包含以下几个特征:
1)    它支持点到点模型和发布/订阅模型;
2)    支持同步与异步消息发送;
3)    可视化管理界面,支持Applet;
4)    能够与Jakarta Tomcat这样的Servlet容器结合;
5)    支持RMI、TCP、HTTP与SSL协议。
三、面向消息的中间件的实现
3.1    基本体系结构
   
主要组件有: MS servers(用于消息通信),客户端(用于发送消息和接收消息), 后备存储(用于持久消息存储,基于文件或者数据库).
陈峰伟

本文发布于:2024-09-22 12:36:20,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/126695.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:消息   中间件   应用   服务   支持   模型
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议