消息代理中间件的作用
消息代理(Message Broker)是一种在数据源与目的地之间移动数据使信息处理流畅的软件技术,数据源与目的地包括已有的应用、文件、数据库、对象(如CORBA、COM)、硬拷贝输出及Web客户端等。消息代理技术实现之后的产品形式就是一种中间件。
作为面向消息的中间件(MOM)的一部分,消息代理中间件在企业应用集成(Enterprise Application Integration ,EAI)中的作用日趋明显。分布式环境下,业务单位四处散布,包罗万象的应用运行在不同的软、硬件平台上,消息代理中间件主要提供应用集成所必须的数据的递送、收集、翻译、过滤、映射和路由等功能,屏蔽不同的硬件平台、数据库、消息格式、通信协议之间的鸿沟与差异,提供应用到应用之间的高效、便捷的通信能力。
消息代理最典型的应用环境包括:
- 有许多程序,特别是混合多种语言;
- 多个数据源以及/或异构的数据库;
- 应用的生命周期期望在3年以上
- 处理的高吞吐量,复杂的系统设计
- 在客户/服务器天地中存在"老的"或者已有的应用
- 行将进行系统的增强、增加和修改
- 复杂的应用间的通信既有企业内部的通信,又有企业间的通信
Gartner Group根据调查统计,企业在开发应用的过程中,30%-40%的费用都浪费在开发和维护与企业业务逻辑无关的各种接口上。随着企业或企业间应用数量上的增加,应用间的通信接口日益增多,不同的平台、不同的语言与技术所带来的难度成倍的增长。1996年,Gartner Group就预测:消息代理中间件由于降低了企业/机构内部应用的复杂交互,将变得和数据库管理系统、数据仓库一样重要。
归纳起来,基于消息代理中间件实现应用集成的主要理由有以下几个方面:
- 通过点对点的应用接口完成应用的集成复杂度高,花费大,严重地限制企业的灵活性。消息代理中间件如同一个软件的HUB,连接需要交互的各个应用系统,减少了应用系统接口的数量、相互的技术依赖性。
- 应用与应用间传递的数据需要转换,传递需要按照优先级、实时地或批处理的方式进行。消息代理中间件提供与各种资源的接口、数据转换能力和消息处理能力,高效地实现应用之间的消息传递。
- 复杂的业务处理逻辑带来应用间、应用与人之间交互的复杂性,要求提供一种支持流管理、处理智能化开发的简便性。新一代的消息代理中间件以"商件(businessware)"形式,提供商务逻辑层开发能力。
- 集成应用的体系结构必须能适应业务逻辑、组织机构的变化,最大程度地减少对已有应用的修改。消息代理中间件构造了一个基于消息的代理骨干,其基于API的适配器以及包装程序完全适应这一要求。
消息代理中间件的基本特征
构件化的结构
一个典型的消息代理中间件的基本结构见下图:
消息代理中间件一般不是单一引擎,通常由一组构件组成,基于构件的结构是消息代理中间件的关键特征。构件化的结构能充分利用SMP和MPP技术,以增加吞吐量,同时也使环境是可伸缩的,可以根据需要配置不同构件。多个消息代理引擎分布在多处但可以通过一点统一管理。
可恢复性、易于管理、灵活性等对关键软件结构的要求同样适合于消息代理中间件。