时间:2024-05-20
文 本刊记者 郭嘉凯
虽然诞生已有20年时间,但消息中间件仍在各行各业的信息化建设中扮演着重要角色,而且,通过与新技术、新领域的结合,消息中间件的价值正得到更大的体现。
说起消息中间件,业内很多人对其并不陌生。消息中间件诞生于上个世纪90年代,至今已经有20年的历史。当时,伴随着互联网应用的普及,企业需要在网络环境中解决异构分布网络环境下软件系统的通信、互操作、协同、事务、安全等共性问题,从而提高异构分布网络环境下软件系统的互操作性、可移植性、适应性、可靠性等。在这种情况下,1994年IBM发布了消息队列服务MQ系列产品,解决分布式系统异步、可靠传输的通讯服务问题,消息中间件从此诞生。
北京汇金科技股份有限公司产品研发中心产品总监江学海:“消息中间件特别适用于需要可靠数据传送的分布式的应用和环境。”
那么,什么是消息中间件?或者说,消息中间件的作用是什么呢?
目前,业界对于消息中间件并没有标准的统一定义。一般情况下,普遍认为消息中间件的作用主要是利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。
可以看到,消息中间件的主要功能是进行底层数据的交换和传递,因此十分稳定,也比较安全可靠。“消息中间件特别适用于需要可靠数据传送的分布式的应用和环境。”北京汇金科技股份有限公司产品研发中心产品总监江学海分析道。
采用消息中间件机制的系统中,不同的对象之间通过传递消息来激活对方的事件,完成相应的操作。发送者将消息发送给消息服务器,消息服务器将消息存放在若干队列中,在合适的时候再将消息转发给接收者。消息中间件能在不同平台之间通信,它常被用来屏蔽掉各种平台及协议之间的特性,实现应用程序之间的协同,其优点在于能够在客户和服务器之间提供同步和异步的连接,并且在任何时刻都可以将消息进行传送或者存储转发,这也是它比远程过程调用更进一步的原因。
正是因为其具备这样的功能,所以一直以来,消息中间件都是企业信息化应用领域的应用重点之一。事实上,在目前国内各行各业所建的各类系统中,随处可见消息中间件的影子。如在政务行业,省、市、县多级数据传递交换汇总;金融行业,中国人民银行的全国票交影像交换系统和小额支付系统;在交通行业,海事局的船舶与船员管理系统;在能源行业,国家电网公司信息化“SG186”工程一体化企业级信息集成平台项目等,在这些应用中,消息中间件都发挥着至关重要的作用。究其根源:只要有网络,就会有数据(数据包,文件)传递,这就会牵扯到数据传输的安全可靠性,网络越是发达对这类要求就越高,消息中间件就会得到长久生存发展。
事实上,最近几年,随着企业用户对于信息化的重视程度越来越高,IT系统的规模也日益扩大,很多全国性的集团企业也都面临着数据集成和共享的问题。因此,消息中间件的应用空间进一步扩大。
作为国内最早从事消息中间件开发的IT服务商之一,北京汇金科技股份有限公司在几年前就看到了这一趋势,并且在传统的消息中间件基础上进行了扩展,开发了数据同步与交换中间件,来实现异构系统之间的数据共享和迁移。“目前无论是政府行业用户,还是企业用户,在这方面的需求都比较迫切。我们的这一产品,已经在很多客户处得到了成功应用。”江学海说。
“全国公共安全应急平台就是其中一例。该应急平台是由国务院发起建设的,要涉及很多部委、省市应急平台的连接。而国办、部委、省市应急平台的应急数据是相对孤立的,局部的,分散的,是一种对外封闭的管理模式,没有形成统一的应急数据共享与交换体制。有关部委,省市应急系统大多是属于局部的,分散的,功能单一的系统,而且不同系统之间没有一个统一的标准,又采用了不同的建设平台,出现了信息孤岛的现象,无法发挥整体优势。”江学海举例说道。
如果对每个平台都进行接口的开发,这一工作量显然是十分巨大的。而在应用了数据同步与交换中间件之后,这一问题得到了很好的解决。
“各个部委、省市只需按照标准对需要共享的数据的格式进行定义,就可以很方便地完成数据的交换和传输。”江如海说道。
事实上,消息中间件不仅在传统信息化建设领域得到更广泛的应用,近两年,随着云计算、物联网、移动互联网的发展,消息中间件与这些新技术、新领域也正在进行着融合。
例如,在物联网方面,物联网消息中间件就已经在很多领域得到应用。最近几年,基于RFID的物联网应用越来越普及,已经深入到各个行业中。大量的物联网应用也给用户带来一个新的问题:“我要如何将我现有的系统与这些新的RFID Reader连接?”而这一问题的本质是企业应用系统与硬件接口的问题。因此,通透性是整个应用的关键,正确抓取数据、确保数据读取的可靠性、以及有效地将数据传送到后端系统都是必须考虑的问题。
物联网消息中间件的出现则可以帮助用户解决这一问题。物联网消息中间件可以很好地扮演RFID标签和应用程序之间的中介角色,从应用程序端使用中间件所提供的一组通用的应用程序接口(API),即能连到RFID读写器,读取RFID标签数据。这样一来,即使存储RFID标签情报的数据库软件或后端应用程序增加或改由其他软件取代,或者读写RFID读写器种类增加等情况发生时,应用端不需修改也能处理,省去多对多连接的维护复杂性问题。
而在移动互联网方面,随着企业移动信息化应用的普及,移动消息中间件的发展速度也十分快速,而且,其市场应用空间可能更为广阔。
例如,一家全国性企业在应用移动营销系统后,分布在全国各地的销售人员每天都需要通过手机向总部传输数据和信息,而应用移动消息中间件,可以很安全地实现移动终端和服务器之间的数据断点续传。
由于消息中间件的应用空间日益广阔,所以目前市场上的消息中间件产品也在日益增加。不过,这也给消息中间件的发展带来了一些问题。其中,最大的问题之一就是如何将不同厂商的消息中间件连接起来,实现不同消息中间件之间的数据传输和信息交换。
事实上,由于缺乏统一的标准,各个厂商的设计和开发都是按照自己的需求进行,各个消息中间件都有不同的消息调用接口和不同的语义定义,这就造成了不同厂商的消息中间件之间不能互操作,这大大阻碍了消息中间件的发展。
目前,不同厂商消息中间件之间的连接,主要是通过JMS实现。JMS即Java消息服务(Java Message Service),应用程序接口是一个Java平台中关于面向消息中间件的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,目前绝大多数消息中间件提供商都对JMS提供支持。
不过,虽然JMS可以解决不同消息中间件的连接问题,但由于其标准相对比较简单,因此在应用过程中,会丧失消息中间件的一些特性。
此外,也有一些企业选择通过专门开发的桥接器联实现不同消息中间件之间的数据交换和传输,但也会带来一些问题:例如传输速度、数据安全性等。
因此,对于消息中间件市场而言,建立一个统一、完善的标准规范体系,仍是其发展过程中所要面临的重要挑战之一。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!