购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.3 中间件技术

随着企业的IT环境日益复杂,企业中可能会拥有多种操作系统、不同的数据库、异构的网络环境,以及若干应用等,那么如何把它们结合成一个有机的协同工作整体,真正实现企业跨平台分布式应用呢?中间件便是解决之道,它用自己的复杂换取了企业应用的简单。那么,复杂的中间件到底包含哪些种类?分别完成什么功能呢?

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

这类多层结构的分布系统,各服务器和终端机之间都是通过网络连接起来的,并有大量信息和数据进行传递。对每个应用系统而言,在设计和实现时需要开发的,仅是在应用服务器上的业务逻辑部分的软件。除此之外,还必须要设计处理分布系统所特有的功能的软件,而目前的系统软件(操作系统和支撑软件)都不支持。为此出现了中间件,它是处于系统软件和应用软件之间的一批软件。

使设计者集中设计与应用有关的部分,大大简化了设计和维护工作。目前,中间件已有一批成熟的产品,并成为设计分布系统时不可缺少的软件。仅仅几年时间,中间件迅猛发展,并逐步走向成熟。

构件是一种前沿的软件设计思想,对整个软件行业的发展起着至关重要的推动作用。而中间件作为应用软件系统集成的关键技术,保证了构件化思想的实施,并为构件提供了真正的运行空间。中间件领域工业化标准的制订、统一及实现,使基于构件的应用开发成为可能。反过来,构件对新一代中间件产品也起到促进作用。

3.3.1 中间件的定义

目前还没有对中间件形成一个统一的定义,我们使用现在比较认可的两种定义:

(1)在一个分布式系统环境中处于操作系统和应用程序之间的软件。(该定义源于http://middleware.objectweb.org。)

(2)中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。(该定义源于IDG。)

我们可以通过图3-9来理解中间件在系统中的地位与应用价值。

图3-9 分布式系统中间件示意图

从这些定义中可以看出:

(1)中间件是一类软件,而非一种软件;

(2)中间件不仅仅实现互连,还要实现应用之间的互操作;

(3)中间件是基于分布式处理的软件,最突出的特点是其网络通信功能。

中间件是处于操作系统和应用程序之间的软件,也有人认为它应该是属于操作系统中的一部分。这个定义也限定了只有用于分布式系统中才能称为中间件,同时还可以把它与支撑软件和实用软件区分开来。人们在使用中间件时,往往是一组中间件集成在一起,构成一个平台。随着中间件应用的不断增长,中间件的范围已经覆盖了分布式对象和组件、消息通信,以及移动应用等软件系统。

3.3.2 中间件的功能

中间件的基本功能应该包括以下几个:

中间件作为一大类系统软件,与操作系统、数据库管理系统并称“三套车”,其重要性是不言而喻的,中间件的优点应该说都是有目共睹的。它的优越性体现在以下几个方面:

具体地说,中间件屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上,不必再为程序在不同系统软件上的移植而重复工作,从而大大减少了技术上的负担。

中间件带给应用系统的,不只是开发的简便和开发周期的缩短,也减少了系统的维护、运行和管理的工作量,还减少了计算机总体费用的投入。Standish的调查报告显示,由于采用了中间件技术,应用系统的总建设费用可以减少50%左右。在网络经济和电子商务大发展的今天,从中间件获得利益的不只是IT厂商,IT用户同样是赢家,并且是更有把握的赢家。

其次,中间件作为新层次的基础软件,其重要作用是将不同时期,在不同操作系统上开发的应用软件集成起来,彼此像一个天衣无缝的整体协调工作,这是操作系统和数据库管理系统本身做不了的。中间件的这一作用,使得在技术不断发展之后,我们以往在应用软件上的劳动成果仍然物有所用,节约了大量的人力、财力投入。

3.3.3 中间件的分类

中间件的任务是使应用程序开发变得更容易,通过提供统一的程序抽象,隐藏异构系统和分布式系统下低级别编程的复杂度。中间件分类有很多方式和很多种类型。在这里我们由底向上从中间件的层次上来划分,如图3-10所示,可分为底层型中间件、通用型中间件和集成型中间件三个大的层次。

图3-10 中间件层次图

(1)底层型中间件的主流技术有JVM、CLR、ACE、JDBC和ODBC等,代表产品主要有SUN JVM和Microsoft CLR等。

(2)通用型中间件的主流技术有CORBA、J2EE、MOM和COM等,代表产品主要有IONA Orbix、BEA WebLogic和IBM MQSeries等。

(3)集成型中间件的主流技术有WorkFlow和EAI等,代表产品主要有BEAWebLogic和IBM WebSphere等。

当然,在这个大的层次划分下,中间件还可以细化为以下一些种类:

(1)通信处理(消息)中间件。 在不同平台之间通信,实现分布式系统中可靠的、高效的、实时的跨平台数据传输,称为消息中间件。这是中间件中唯一不可缺少的,是需求量最大的中间件产品,目前在大部分操作系统中已包含了其部分功能。

(2)事务处理(交易)中间件。 在分布式事务处理系统中要处理大量事务,常常在系统中要同时进行上万个事务。在联机事务处理系统(OLTP)中,每笔事务常常要多台服务器上的程序顺序地协调完成,一旦中间发生某种故障时,不但要完成恢复工作,而且要自动切换系统,达到系统永不停机,实现高可靠性运行。同时要使大量事务在多台应用服务器能实时并发运行,并进行负载平衡地调度,实现昂贵的可靠性机和大型计算机系统同等的功能,为了实现这个目标,要求系统具有监视和调度整个系统的功能。一个事务处理平台,根据X/OPEN的参数模型规定,应由事务处理中间件、通信处理中间件,以及数据存取管理中间件三部分组成。

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

(4)Web服务中间件。 浏览器图形用户界面已成为公认规范,然而由于它存在会话能力差、不能做数据写入、受HTTP协议的限制等缺陷,因此就必须进行修改和扩充,形成Web服务器中间件。

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

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

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

(8)其他中间件。 另外现在出现了一些中间件,比如数据流中间件、门户中间件,以及为某些专业领域如银行、电信等开发的专用中间件。另外还有是一些更高层中间件,更多用于系统整合,包括企业应用集成中间件(EAI Suites)、工作流中间件(Workflow)、门户中间件(Portal)等是多种中间件的组合。

3.3.4 中间件技术在集成中的应用

中间件技术在集成中扮演着重要的角色,我们可以从不同层次采用不同种类,不同技术的中间件产品进行应用集成。正如图3-11所示,我们可以从传输、消息、组件、业务流程等各个层面分别加以集成。

图3-11 不同层次的集成示意图

从图3-11中我们还可以看出,为了完成不同层次的集成,可以采用不同的技术、产品:

(1)为了完成系统底层传输层的集成,可以采用CORBA技术。

(2)为了完成不同系统的信息传递,可以采用消息中间件产品。

(3)为了完成不同硬件和操作系统的集成,可以采用J2EE中间件产品。

同样,目前中间件的竞争焦点也主要集中在集成应用平台上,大多中间件公司都已经或准备将下一步的工作重点放在集成市场上。

3.3.5 中间件的发展趋势

中间件作为构筑企业信息系统和电子商务系统的基石和核心技术,向着标准化和构件化方向发展。具体来看,有以下三种发展趋势。

1.规范化

在中间件的发展过程中,做得最好的一件事情就是规范的制订。对于不同类型的中间件,目前都有一些规范可以遵循,如消息类的JMS,对象类的CORBA和COM/DCOM,交易类的XA、OTS、JTA/JTS,应用服务器类的J2EE,数据访问类的ODBC和JDBC,Web服务有SOAP、WSDL、UDDI等。这些规范的建立极大地促进了中间件技术的发展,同时保证了系统的扩展性、开放性和互操作。

2.构件化和松耦合

除了已经得到较为普遍应用的CORBA、DCOM等适应Intranet的构件技术外,随着企业业务流程整合和电子商务应用的发展,中间件技术朝着面向Web、松散耦合的方式发展。基于XML和Web服务的中间件技术,使不同系统之间、不同应用之间的交互建立在非常灵活的基础上。XML是一种可扩展的源标志语言,它提供了一种定义新的标志语言标准。由于XML技术非常适合于异构系统间的数据交换,因此在国际上已经被普遍采纳为电子商务的数据标准。而Web服务作为基于Web技术的构件,在流程中间件的控制和集成下可以灵活、动态地被组织成为跨企业的商务应用。

3.平台化

目前,一些大的中间件厂商在已有的中间件产品基础上,都提出了完整的面向互联网的软件平台战略计划和应用解决方案。Sun公司是最早提出“网络就是计算机”的公司,它一直致力于向企业提供受到广泛欢迎的网络软件,对因特网的应用和发展发挥了重要作用。IBM公司提出了面向网络应用的“旧金山计划”,即以WebSphere、DB2、Tivoli、Domino四大品牌组成基础架构平台,提供从中间件、服务器到解决方案的一揽子组合服务。Oracle公司则推出了以Oracle 9i为中心的网络软件平台。微软公司从2000年6月开始大力宣传“.NET计划”,并作为未来的基本战略,目标是在因特网的基础上,实现所有的计算机群、相关设备和服务协同工作,提供广泛而丰富的解决方案。 bge3t+aIhDnPPWMvumB8K7wGql89AQK0ajyTmzznpv+LP+fNF3BMMq1B7es/u/Bd

点击中间区域
呼出菜单
上一章
目录
下一章
×