中间件定义及分类
中间件(Middleware)是处于操作系统和应用程序之间的软件,也有人认为它应该属于操作系统中的一部分。人们在使用中间件时,往往是一组中间件集成在一起,构成一个平台(包括开发平台和运行平台),但在这组中间件中必需要有一个通信中间件,即中间件=平台+通信,这个定义也限定了只有用于分布式系统中才能称为中间件,同时还可以把它与支撑软件和实用软件区分开来。
按照IDC的分类方法,中间件可分为六类。
1.终端仿真/屏幕转换:用以实现客户机图形用户接口与已有的字符接口方式的服务器应用程序之间的互操作;
2.数据访问中间件:是为了建立数据应用资源互操作的模式,对异构环境下的数据库实现联接或文件系统实现联接的中间件;在分布式系统中,重要的数据都集中存放在数据服务器中,它们可以是关系型的、复合文档型、具有各种存放格式的多媒体型,或者是经过加密或压缩存放的,这类中间件将为在网络上虚拟缓冲存取、格式转换、解压等带来方便。
3.远程过程调用中间件:通过这种远程过程调用机制,程序员编写客户方的应用,需要时可以调用位于远端服务器上的过程;
4.消息中间件:用来屏蔽掉各种平台及协议之间的特性,实现在不同平台之间通信,实现分布式系统中可靠的、高效的、实时的跨平台数据传输,实现应用程序之间的协同。这是中间件中唯一不可缺少的,是销售额最大的中间件产品,主要产品有国内东方通科技公司的TongLINK、BEA公司的BEA eLink 、IBM公司的MQSeries等,目前在Windows 2000操作系统中已包含了其部分功能。
5.交易中间件:是在分布、异构环境下提供保证交易完整性和数据完整性的一种环境平台。在分布式事务处理系统中要处理大量事务,常常在系统中要同时做上万笔事务。在联机事务处理系统(OLTP)中,每笔事务常常要多台服务器上的程序顺序地协调完成,一旦中间发生某种故障时,不但要完成恢复工作,而且要自动切换系统,达到系统永不停机,实现高可靠性运行;同时要使大量事务在多台应用服务器能实时并发运行,并进行负载平衡地调度,实现昂贵的可靠性机和大型计算机系统同等的功能,为了实现这个目标,要求系统具有监视和调度整个系统的功能。根据X/OPEN的DTP(Distributed Transaction Processing )模型规定,一个分布式交易处理系统应由事务处理、通信处理以及资源管理三部分组成。BEA公司的TUXEDO便是最著名的一个交易中间件产品,东方通科技公司的TongLINK 和TongEASY实现了DTP参考模型规定,另外还有IBM公司的TXSeriers是应用广泛的一个交易中间件产品。
6.对象中间件:在分布、异构的网络计算环境中,可以将各种分布对象有机地结合在一起,完成系统的快速集成,实现对象重用,在这个方面遵循的标准是CORBA。对象中间件将是未来的主流,目前产品如东方通的TONG BROKER,INPRICE公司的Borland Application Server。
当然,IDC的分类并不能包含目前所有的中间产品,比较流行的还有:
Web服务器中间件
浏览器图形用户界面已成为公认规范,然而它的会话能力差、不能作数据写入、受HTTP协议的限制等,就必需进行修改和扩充,形成了 Web服务器中间件,如 SilverStream公司的产品,BEA公司的BEA WEBLOGIC,东方通公司的TONG WEB。
安全中间件
一些军事、政府和商务部门上网的最大障碍是安全保密问题,而且不能使用国外提供的安全措施(如防火墙、加密、认证等),必需用国产的产品。产生不安全因素是由操作系统引起的,但必需要用中间件去解决,以适应灵活多变的要求。如东方通公司的TONG SEC。
为什么要中间件
中间件是构件化软件的一种表现形式。中间件抽象了典型的应用模式,应用软件制造者可以基于标准的中间件进行再开发,这种操作方式其实就是软件构件化的具体实现。
对于用户来说,选择中间件产品,主要是基于以下几个方面的好处:
首先,中间件产品对各种硬件平台、操作系统、网络数据库产品以及Client端实现了兼容和开放。例如,曾有一位BEA的客户从IBM平台迁移到Sun的平台,原来开发的200万行C语言代码仅仅花了3个小时就重新编译完成,没有遇到任何问题。如果没有中间件,这样的平台迁移势必将大费周折。
其次,中间件保持了平台的透明性,使开发者不必考虑操作系统的问题。
其三,中间件实现了对交易的一致性和完整性的保护,提高了系统的可靠性。
其四,中间件产品可以降低开发成本,提高工作效率。The Standish Group分析了100个关键应用系统中的业务逻辑程序、应用逻辑程序及基础程序所占的比例,结果发现,业务逻辑程序、应用逻辑程序仅占总程序量的30%,而基础程序却占了70%。如果以新一代的中间件系列产品进行组合应用,同时配合可复用的商务对象构件,则应用开发费用可望节省80%。
其五,基础软件的开发还是一件耗时费力的工作,如果使用标准商业中间件,大部分的编程工作将得以节省,用户可以将注意力集中于个性化的增值应用方面,并缩短开发周期50%~75%,从而更快地将产品投放市场。
中间件市场概况
中间件是软件技术发展的一种潮流,被誉为发展最快的软件品种,近年来势头强劲,当然,这也是源于市场在全球范围内对中间件的支持。毫无疑问,中间件正在成为软件行业新的技术与经济增长点。
1999年,Nasdaq股市上投资回报率最高的并非某些名声显赫的网站,而是全球最大的独立中间件厂商BEA公司,其股票升幅高达884.6%。时至今日,BEA的营业收入已连续18个季度保持高速增长。
国际数据集团(IDC)在日前发表的一份报告中预计今后五年中间件市场将快速成长。IDC预计全球中间件和商业软件收入将从1999年的27亿美元增长到2004年的近97亿美元,增长255%。据GlobalSight公司预计,全球电子商务市场到2001年将达到1.2万亿美元。ForresterResearch则估计,仅仅是BtoB电子商务,到2003年的年收入就将达到1.3万亿美元。而业内人士认为,未来基于Internet的电子商务业务将有79%建筑在中间件的基础之上。无疑,这将带来一个潜力巨大的市场。
在中国,有关数字同样让人兴奋,1998年中间件市场总值达12.34亿美元;1999年为17亿美元;预测到2004年将达到90.3亿美元,年增长率为39.7%,远远高于软件业的平均增长水平。
几种流行中间件产品介绍
IBM MQSeries
IBM MQSeries是IBM的消息处理中间件。MQSeries提供一个具有工业标准、安全、可靠的消息传输系统。
它的功能是控制和管理一个集成的系统,使得组成这个系统的多个分支应用(模块)之间通过传递消息完成整个工作流程。MQSeries基本由一个信息传输系统和一个应用程序接口组成,其资源是消息和队列。
MQSeries的关键功能之一是确保信息可靠传输,即使在网络通信不可靠或出现异常时也能保证信息的传输。MQSeries的异步消息处理技术能够保证当网络或者通信应用程序本身处于“忙"状态或发生故障时,系统之间的信息不会丢失,也不会阻塞。
东方通科技 TongLINK/Q
TongLINK/Q是面向消息的中间件。TongLINK/Q的主要功能是在不同的网络协议、不同的操作系统和不同的应用程序之间提供可靠的消息传送。
* 高效、可靠、灵活的传输功能
通过预建连接、多路复用、流量控制、压缩传输、断点重传、传输优先级管理、服务(类)驱动等机制来保证实现。
* 事件代理机制
事件代理机制提供了一种异步应用开发模型,用户只需要定义一个事件及怎么处理,TongLINK/Q自动完成操作。利用事件代理机制,可以实现事件订阅与发布,实现策略管理。
* 会话管理
TongLINK/Q通过一个简单的会话标识来描述一种复杂的通信关系,实现了更高层次、更抽象的通信服务。
* 良好的易用性和可管理性
TongLINK/Q实现了实时监控和管理,提供了日志机制、动态配置、远程管理功能。并提供多层次安全管理,支持多种开发工具。
BEA Tuxedo 交易中间件
BEA TUXEDO是目前最成功的中间件产品,它有以下特点:
* 高速数据甬道机制,减少客户机与主机和数据库的联接,降低整个系统的负担
* 提供名字服务和数据依赖路由机制,提高系统设计的灵活性
* 提供7种客户机/服务器通讯方式,使应用开发灵活方便
* 提供多个层面的系统负载均衡机制,能最有效地运用系统资源
* 提供服务优先级机制,区分服务的不同级别,使重要服务得到最快的响应
* 提供网络通讯压缩和加密机制,使通讯性能和安全性大大提高
* 提供动态伸缩机制,方便应用系统的扩充和维护
* 提供故障恢复等机制,保证应用的高可用性
* 提供多个层面的安全机制,保证应用的安全性
* 支持XA协议,保证涉及多场地、异构数据源交易和数据的一致性
* 提供多个层面的应用管理机制,使应用管理方便容易
* 提供网络调度功能,实现网络资源的充分利用并支持通讯失败的自动恢复
* 与其他多种系统互联,保护用户投资
* 支持异构系统数据格式的透明转换,方便系统扩展
* 支持包括声音、图象在内的多种数据类型,不同编程语言数据格式的区别由TUXEDO自动转换(如C和COBOL),其中FML类型更支持网上只传输有效数据和可改变的多种数据类型组合等功能
* 提供域的划分与管理功能,使超大规模应用成为可能
* 提供DES(Data Entry System)功能,支持字符界面的开发
* 支持国际化,可用中文显示诊断和系统消息
BEA Tuxedo一个特色功能是能够保证对电子商务应用系统的不间断访问。它可以对系统组件进行持续的监视,查看是否有应用系统、交易、网络及硬件的故障。一旦出现故障,BEA Tuxedo会从逻辑上把故障组件排除,然后进行必要的恢复性步骤。
BEA Tuxedo的另一个特色是提供多个层面的负载均衡。BEA Tuxedo根据系统的负载指示,自动开启和关闭应用服务,可以均衡所有可用系统的负载,以满足对应用系统的高强度使用需求。借助DDR(数据依赖路由),BEA Tuxedo可按照消息的上下文来选择消息路由。其交易队列功能,可使分布式应用系统以异步“少连接”方式协同工作。
东方通科技TongEASY
TongEASY是面向交易处理的中间件。负责正确传递交易,对交易完整性进行管理,调度应用程序的运行,保证整个系统运行的高效性。TongEASY把自己的交易管理功能和数据库的交易管理功能有机的结合在一起,实现对分布式交易的全局管理。
交易管理机制是TongEASY最具有独创性的方面。TongEASY有两种方式管理交易完整性:一种方式是应用程序处理提交/撤销命令,另一种方式是建立在XA协议基础上的。基于XA的交易管理方式又可以细分为标准的XA方式和快速XA两种。