中间件越来越像“万能药”

互联网 | 编辑: 2006-03-02 16:10:00转载

在分布异构环境中,通常存在多种硬件系统平台,而在这些硬件平台上往往存在各种各样的系统软件以及多种风格各异的用户界面,这些硬件系统平台有可能采用不同的网络协议和网络体系结构连接。怎样才能够把这些系统集成起来并开发新的应用?这是中间件要解决的问题。

在分布异构环境中,通常存在多种硬件系统平台,而在这些硬件平台上往往存在各种各样的系统软件以及多种风格各异的用户界面,这些硬件系统平台有可能采用不同的网络协议和网络体系结构连接。怎样才能够把这些系统集成起来并开发新的应用?这是中间件要解决的问题。

上个世纪的“新”品

如果要追根溯源的话,最早具有中间件技术思想及功能的软件应该是IBM的CICS,但由于CICS不是分布式环境的产物,因此人们一般把Tuxedo作为第一个严格意义上的中间件产品。

Tuxedo是1984年在当时属于AT&&T的贝尔实验室开发完成的,但由于分布式处理当时并没有在商业应用上获得像今天一样的成功,Tuxedo在很长一段时期里只是实验室产品,后来被Novell收购,在经过Novell并不成功的商业推广之后,1995年被现在的BEA公司收购。尽管中间件的概念很早就已经产生,但中间件技术的广泛运用却是在最近10年之中。近10年中,不少软件厂商纷纷涉足中间件领域,Oracle、IBM、BEA可以说是这一行业的巨头。

而如果从真正的概念上来讲,中间件(middleware)应该是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。

在众多关于中间件的定义中,比较普遍被接受的是IDC表述的: 中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。

IDC对中间件的定义表明,中间件是一类软件,而非一种软件;中间件不仅仅实现互连,还要实现应用之间的互操作;中间件是基于分布式处理的软件,最突出的特点是其网络通信功能。

要的就是灵活

根据定义,中间件是位于平台(硬件和操作系统)和应用之间的通用服务,这些服务具有标准的程序接口和协议。针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实现。

其特点是满足大量应用的需要,运行于多种硬件和OS平台,支持分布计算,提供跨网络、硬件和OS平台的透明性的应用或服务的交互,支持标准的协议,支持标准的接口。由于标准接口对于可移植性和标准协议的重要性,中间件已成为许多标准化工作的主要部分。对于应用软件开发,中间件远比操作系统和网络服务更为重要,中间件提供的程序接口定义了一个相对稳定的高层应用环境,不管底层的计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并保持中间件对外的接口定义不变,应用软件几乎不需任何修改,从而保护了企业在应用软件开发和维护中的重大投资。

打破“单一”壁垒

根据中间件的用途,中间件能够屏蔽操作系统和网络协议的差异,为应用程序提供多种通讯机制;并提供相应的平台以满足不同领域的需要。因此,中间件为应用程序创造了一个相对稳定的高层应用环境。

然而,中间件服务也并非“万能药”。中间件所应遵循的一些原则离实际还有很大距离。多数流行的中间件服务使用专有的API和专有的协议,使得应用建立于单一厂家的产品,来自不同厂家的实现很难互操作。有些中间件服务只提供一些平台的实现,从而限制了应用在异构系统之间的移植。应用开发者在这些中间件服务之上建立自己的应用还要承担相当大的风险,随着技术的发展他们往往还需重写他们的系统。尽管中间件服务提高了分布计算的抽象化程度,但应用开发者还需面临许多艰难的设计选择,例如,开发者还需决定分布应用在客户端和服务器端的功能分配。通常将表示服务放在客户端以方便使用显示设备,将数据服务放在服务端器以靠近数据库。

随着中间件产品技术的不断发展,如今已有部分厂商在积极地打破“垄断”的壁垒,前不久,Oracle的“插座式”中间件产品就已经开始尝试在一个平台上应用不同厂商的产品与技术,以形成一个“整合”的环境,避免用户出现部分资源无法利用的局面。相信,中间件技术的快速发展一定会让用户用得随心所欲,想干什么就干什么!

相关阅读

每日精选

点击查看更多

首页 手机 数码相机 笔记本 游戏 DIY硬件 硬件外设 办公中心 数字家电 平板电脑