中间件——构筑复杂分布式应用的关键技术

中间件
——构筑复杂分布式应用的关键技术
中科院软件所 仲萃豪
九十年代初客户机/服务器计算模式开始成为主流技术,将数据统一存储在数据服务器上,而有关的业务逻辑都在客户端实现,即所谓胖终端的解决方案,这种两层结构的模式大大阻碍着系统的发展,单一的服务器结构紧密地依赖供应商;数据存取受到限制;难以扩展到大企业广域网或国际互联网;也难以管理客户端的机群。随着用户业务需求的增长及Internet/Intranet的普及,将以三层或四层体系结构取而代之。三层结构就是把用户端的业务逻辑独立出来,并与数据库服务器中存储过程合并在一起,构成应用层,以提高计算能力,实现灵活性。在这种结构中用户端仅仅是处理图形用户界面(GUI),而目前趋势是采用具有交互功能的浏览器,即形成瘦终端的工作方式,为此,中间又增加了一层,称为Web服务器层,形成了四层体系结构。

这类多层结构的分布系统,各服务器和终端机之间都是通过网络连接起来的,并有大量信息和数据进行传递。对每个应用系统而言,在设计和实现时需要开发的,仅是在应用服务器上的业务逻辑部分的软件,除此之外,还必须要设计处理分布系统所特有的功能的软件,而目前的系统软件(操作系统和支撑软件)都不支持。为此出现了中间件,它是处于系统软件和应用软件之间的一批软件。使设计者集中设计与应用有关的部分,大大简化了设计和维护工作。通过五、六年的大量应用和实践,中间件已有一批成熟的产品,并成为设计分布系统时不可缺少的软件。仅仅几年时间,中间件以迅雷不及掩耳的速度迅猛发展,每年的市场销售额均是成倍的增长。

什么是中间件
中间件是处于操作系统和应用程序之间的软件,也有人认为它应该属于操作系统中的一部分。人们在使用中间件时,往往是一组中间件集成在一起,构成一个平台(包括开发平台和运行平台),但在这组中间件中必需要有一个通信中间件,因此,我同意这种定义:

中间件=平台+通信

这个定义也限定了只有用于分布式系统中才能称为中间件,同时还可以把它与支撑软件和实用软件区分开来。

中间件的作用和分类
要说清这个问题我们用一个生活中的实例来比喻。把分布式系统看作北京市区的交通系统,网络看作市区马路,通过交通工具(汽车)实现通信,每分钟将有几万辆车在马路上行驶,如果没有相应的交通设施和管理规划,北京市将会乱成一团,发生各种交通事故。

1.通信处理(消息)中间件
首先要修好马路,安装红绿灯,设立交通管理机构,制定出交通规则,也就是我们要建网和制定出通信协议,能在不同平台之间通信,实现分布式系统中可靠的、高效的、实时的跨平台数据传输(如TongLINK、BEA eLink 、IBM的MQSeries等),称为消息中间件。这是中间件中唯一不可缺少的,是销售额最大的中间件产品,目前在Windows 2000操作系统中已包含了其部分功能。

2.事务处理(交易)中间件
在分布式事务处理系统中要处理大量事务,常常在系统中要同时做上万笔事务。例如在北京市就要设置各种运载汽车,完成日常的运载,同时要随时监视汽车运行,出现故障时,要有排除措施,发生堵塞时要进行调度。在联机事务处理系统(OLTP)中,每笔事务常常要多台服务器上的程序顺序地协调完成,一旦中间发生某种故障时,不但要完成恢复工作,而且要自动切换系统,达到系统永不停机,实现高可靠性运行;同时要使大量事务在多台应用服务器能实时并发运行,并进行负载平衡地调度,实现昂贵的可靠性机和大型计算机系统同等的功能,为了实现这个目标,要求系统具有监视和调度整个系统的功能。BEA的 Tuxedo由此而著名,它成为增长率最高的厂商。一个事务处理平台,根据X/OPEN的参数模型规定,应由事务处理中间件、通信处理中间件以及数据存取管理中间件三部分组成。东方通科技公司的TongLINK 和TongEASY实现了这个参考模型规定。

3.数据存取管理中间件
在分布式系统中,重要的数据都集中存放在数据服务器中,它们可以是关系型的、复合文档型、具有各种存放格式的多媒体型,或者是经过加密或压缩存放的,该中间件将为在网络上虚拟缓冲存取、格式转换、解压等带来方便。

4.Web服务器中间件
浏览器图形用户界面已成为公认规范,然而它的会话能力差、不能作数据写入、受HTTP协议的限制等,就必需进行修改和扩充,形成了 Web服务器中间件,如 SilverStream公司的产品。

5.安全中间件
一些军事、政府和商务部门上网的最大障碍是安全保密问题,而且不能使用国外提供的安全措施(如防火墙、加密、认证等),必需用国产的产品。产生不安全因素是由操作系统引起的,但必需要用中间件去解决,以适应灵活多变的要求。

6.跨平台和构架的中间件
当前开发大型应用软件通常采用基于构架和构件技术,在分布系统中,还需要集成各节点上的不同系统平台上的构件或新老版本的构件,由此产生了构架中间件,功能最强的是CORBA,可以跨任意平台,但是太庞大;JavaBeans较灵活简单,很适合于做浏览器,但运行效率差;DCOM模型主要适合 Windows平台,已广泛使用。实际上国内新建系统主要是UNIX(包括LINUX)和 Windows,因此针对这两个平台建立相应的中间件要实用得多。

7.专用平台中间件
为特定应用领域设计领域参考模式,建立相应构架,配置相应的构件库和中间件,为应用服务器开发和运行特定领域的关键任务(如电子商务、网站等)。

8.网络中间件
它包括网管、接入、网络测试、虚拟社区、虚拟缓冲等,也是当前最热门的研发项目。

中间件模型和形态
中间件从诞生起,仅仅是五年时间,但发展极其迅速,是有史以来发展最快的软件产品,但在技术上还处于成长阶段,还没有统一的标准和模型,通常都是用C++语言以面向对象的技术来实现的,但是它的特性已超出面向对象的表达能力,由于它属于可重用构件,目前趋向于用构件技术来实现。然而中间件要涉及软件的所有标准、规范和技术,它含有更多的内涵,因为它包括平台功能,自身具有自治性、自主性、隔离性、社会化、激发性、主动性、并发性、认识能力等特性,是近似于Agent(代理)的结构,采用Agent的概念和技术更合适一些,建立模型和规范是促进技术发展的核心措施。

消息中间件产品
IBM MQSeries

IBM MQSeries是IBM的消息处理中间件。MQSeries提供一个具有工业标准、安全、可靠的消息传输系统。

它的功能是控制和管理一个集成的系统,使得组成这个系统的多个分支应用(模块)之间通过传递消息完成整个工作流程。MQSeries基本由一个信息传输系统和一个应用程序接口组成,其资源是消息和队列。

MQSeries的关键功能之一是确保信息可靠传输,即使在网络通信不可靠或出现异常时也能保证信息的传输。MQSeries的异步消息处理技术能够保证当网络或者通信应用程序本身处于“忙"状态或发生故障时,系统之间的信息不会丢失,也不会阻塞。这样的可靠性是非常关键的,否则大量的金钱和客户信誉就会面临极大的损害。

同时,MQSeries是灵活的应用程序通信方案。MQSeries支持所有的主要计算平台和通信模式,也能够支持先进的技术(如Internet和Java),拥有连接至主要产品(如Lotus Notes和SAP/R3等)的接口。

东方通科技 TongLINK/Q

TongLINK/Q是面向消息的中间件。TongLINK/Q的主要功能是在不同的网络协议、不同的操作系统和不同的应用程序之间提供可靠的消息传送。

高效、可靠、灵活的传输功能
通过预建连接、多路复用、流量控制、压缩传输、断点重传、传输优先级管理、服务(类)驱动等机制来保证实现。


事件代理机制
事件代理机制提供了一种异步应用开发模型,用户只需要定义一个事件及怎么处理,TongLINK/Q自动完成操作。利用事件代理机制,可以实现事件订阅与发布,实现策略管理。


会话管理
TongLINK/Q通过一个简单的会话标识来描述一种复杂的通信关系,实现了更高层次、更抽象的通信服务。


良好的易用性和可管理性
TongLINK/Q实现了实时监控和管理,提供了日志机制、动态配置、远程管理功能。并提供多层次安全管理,支持多种开发工具。

交易中间件
BEA Tuxedo

BEA Tuxedo作为电子商务交易平台,它允许客户机和服务器参与一个涉及多个数据库协调更新的交易,并能够确保数据的完整性。BEA Tuxedo一个特色功能是能够保证对电子商务应用系统的不间断访问。它可以对系统组件进行持续的监视,查看是否有应用系统、交易、网络及硬件的故障。一旦出现故障,BEA Tuxedo会从逻辑上把故障组件排除,然后进行必要的恢复性步骤。

BEA Tuxedo根据系统的负载指示,自动开启和关闭应用服务,可以均衡所有可用系统的负载,以满足对应用系统的高强度使用需求。借助DDR(数据依赖路由),BEA Tuxedo可按照消息的上下文来选择消息路由。其交易队列功能,可使分布式应用系统以异步“少连接”方式协同工作。BEA Tuxedo LLE安全机制可确保用户数据的保密性,应用/交易管理接口(ATMI)为50多种硬件平台和操作系统提供了一致的应用编程接口。BEA Tuxedo基于网络的图形界面管理可以简化对电子商务的管理,为建立和部署电子商务应用系统提供了端到端的电子商务交易平台。

东方通科技TongEASY

TongEASY是面向交易处理的中间件。负责正确传递交易,对交易完整性进行管理,调度应用程序的运行,保证整个系统运行的高效性。TongEASY把自己的交易管理功能和数据库的交易管理功能有机的结合在一起,实现对分布式交易的全局管理。

交易管理机制是TongEASY最具有独创性的方面。TongEASY有两种方式管理交易完整性:一种方式是应用程序处理提交/撤销命令,另一种方式是建立在XA协议基础上的。基于XA的交易管理方式又可以细分为标准的XA方式和快速XA两种。

TongEASY在交易管理上的多样性是为了解决中国应用环境的特殊性。国内多数应用是建立在一个速率传输偏低、可靠性差强人意的广域网上。XA方式是建立在两阶段提交协议上的,在一个低速的广域网上使用两阶段提交协议时会带来一些问题,一是握手次数多、数据库加锁时间长,因而效率较低,二是不能很好地解决由于网络故障所造成的交易完整性问题。因此,TongEASY在交易管理方面提供了多种选择,以求得效率、交易完整性、开发工作量等关键指标的上佳表现。

 仲萃豪:中国科学院软件研究所研究员,博士生导师,研究方向是计算机软件与计算方法,仲老是我国第一代软件专家,曾率先研究软件中各领域课题:编译程序、语言、操作系统、应用软件等。近10年来主要从事应用软件开发及其软件工程研究。曾先后任10多所院校的兼职教授、北京市软件专业顾问、软件工程国家工程师研究中心研究员,并获得国家科技进步二等奖、省部级一等奖等8项。

你可能感兴趣的:(中间件)