(计算机应用技术专业论文)数据访问中间件的设计与实现.pdf_第1页
(计算机应用技术专业论文)数据访问中间件的设计与实现.pdf_第2页
(计算机应用技术专业论文)数据访问中间件的设计与实现.pdf_第3页
(计算机应用技术专业论文)数据访问中间件的设计与实现.pdf_第4页
(计算机应用技术专业论文)数据访问中间件的设计与实现.pdf_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

四川大学硕士学位论文 数据访问中问件的设计与实现 专业计算机应用 研究生颜开指导教师游志胜 摘要:随着计算机应用的日益广泛和深入,硬件平台、网络、数据库的差 异性以及多种应用模式的并存,带来系统效率低下、传输不可靠、数据加密、 开发周期长等问题。传统的系统软件和工具软件已不能很好地解决此类问题, 中间件技术的出现为这些问题提供了较好的解决方案。 本论文在探讨中间件技术的基础上,设计并实现了数据访问中间件。论文 的主要工作如下: 首先基于对中间件基本概念的描述,讨论并比较了对数据访问中间件、 交易中间件等几类常用的中间件,着重论述了数据访问中间件的实现 机制和关键技术。 在上述讨论的基础上,设计和实现了一个数据访问中间件: 给出了数据访问中间件的设计目标后,对数据访问中间件的主要 功能进行了明确的论述,并给出了该中间件的物理模型及系统结 构。 一讲述数据访问中间件网络通信接口及传输安全的设计。其中重点 讲述了开发中涉及的关键技术包括网络通信原理,如何利用 w i n s o c k 接口在w i n d o w s 环境下实现客户端、中间件两者的通信 问题以及线程池技术,最后讨论了网络通信接口的设计实现过程 和网络安全传输地实现。 一针对业务逻辑请求的处理进行了阐述。讨论了业务逻辑处理流程, 重点讲述了对任务队列的管理、调度。通过采用改进的加权公甲 排队技术,增加了数据排序并转发的能力。 璺型查堂堡主堂垡堡兰一 _ 在该数据访问中间件上增加访问异构数据库功能,使得可透明访 问多种数据库。讲述了数据库访问接口的设计和实现。 本论文通过对中间件技术的探讨,设计和实现了一个数据访问中间件,并 通过试验证明在并发客户端越多的情况下,对系统的性能有很大的改善和提高。 关键宇:分布式技术; 中间件;数据访问中间件; 任务队列; 四川大学硕士学位论文 t h ed a t aa c c e s sm i d d l e w a r ed e s i g na n d r e a l i z a t i o n m a j o r * c o m p u t e ra p p l i c a t i o nt e c h n o l o g y g r a d u a t e :y a nk a ia d v i s o r :y o uz h is h e n g a b s t r a c t :w i t ht h es w i f td e v e l o p m e n to fc o m p u t e rt e c h n o l o g y , t h ei n t e r a c t i o n a m o n gt h ed i f f e r e n th a r d w a r e ,t h ed i f f e r e n tn e t w o r ka n dt h ed i f f e r e n td a t a b a s e s ,t h e e x i s t e n c eo fm u l t im o d e se x i s t i n g ,r e s u l ti nl o we f f i c i e n c y , u n c r e d i b l et r a n s m i s s i o n a n dd a t a e n c r y p t i o na n dl o n gd e v e l o p m e n tc y c l e t h et r a d i t i o n a ls y s t e ma n dt o o l s s o f t w a r ec a nn o ts o l v es u c hp r o b l e m s b u ta p p e a r a n c eo ft h em i d d e w a r ep r o v i d e sa b e t t e rs o l u t i o nt ot h e s e p r o b l e m s b a s e do nt h ed i s c u s s i o no fm i d d l e w a r e ,t h et h e s i sc o n s i s t so ft w op a r t s : t h ed i s c u s s i o no nm i d d l e w a r e :t h i st h e s i sd e m o n s t r a t e st h eh i s t o r y , t h ec o n c e p t t h ec l a s s i f i c a t i o na n dt h ec h a r a c t e r i s t i c so fm i d d l e w a r e a n di td i s c u s s e st h e g e n e r a l u s e dm i d d l e w a r e ,s u c ha s d a t aa c c e s sm i d d l e w a r ea n dt r a n s a c t i o n p r o c e s s i n gm i d d l e w a m ,a n de s p e c i a l l y d e m o n s t r a t et h e i m p l e m e n t a t i o n m e c h a n i s ma n dk e yt e c h n o l o g yo fd a t aa c c e s sm i d d l e w a r ea n d a p p l i c a t i o nc a s e :a c c o r d i n gt ot h ea b o v em e c h a n i s ma n dk e yt e c h n o l o g y , w e d e s i g na n di m p l e m e n t ad a t aa c c e s sm i d d l e w a r e - a f t e rw ep r e s e n tt h ed e s i g nt a r g e to ft h ed a t aa c c e s sm i d d l e w a r e t h i s t h e s i sd e m o n s t r a t e st h em a i nf u n c t i o no ft h ed a t aa c c e s sm i d d l e w a r e ,a n d g i v e st h ep h y s i c a lm o d e l ,s y s t e ma r c h i t e c t u r e t h i st h e s i sd e m o n s t r a t e st h ed e s i g no ft h en e t w o r ki n t e r f a c ea n ds e c u r i t y p r o b l e m so ft h en e t w o r kt r a n s m i s s i o n i te m p h a s i z e st h ek e yt e c h n o l o g yi n d e v e l o p m e n ti n c l u d i n g t h en e t w o r kt r a n s m i s s i o n t h e o r y , t h r e a dp o o l t e c h n o l o g y , a n dh o ww er e a l i z et h ec o m m u n i c a t i o nb e t w e e nc l i e n ta n d m i d d l e w a r eb yw i n s o c ki nw i n d o w s a n dw ed i s c u s st h er e a l i z a t i o n o ft h en e t w o r kt r a n s m i s s i o ni n t e r f a c ea n dc r e d i b l et r a n s m i s s i o n 四川大学硕士学位论文 一f o rt h ep r o c e s so ft h eb u s i n e s sl o g i c t h i st h e s i sd i s c o u r s e su p o nt h ef l o wo f t h ep r o c e s so ft h eb u s i n e s sl o g i c , t h es c h e d u l i n go ft h em i d d l e w a r ep r i o r l e v e lq u e u e a c c o r d i n gt oi m p r o v i n gw e i g h t e df a i rq u e u i n g ,w ei m p r o v e t h ep e r f o r m a n c eo ft h es y s t e m a c c o r d i n g t oa d d i n gt h ef u n c t i o no ft h ea c c e s s i n gh e t e r o d a t a b a s eo nt h i s m i d d l e w a r es y s t e m ,w ec a na c c e s sd i v e r s ed a t a b a s et r a n s p a r e n t l y t h i s t h e s i sd i s c o u r s e su p o nt h ed e s i g na n dr e a l i z a t i o no ft h ed a t aa c c e s s i nt h i st h e s i s ,a c c o r d i n gt od i s c u s s i o no fm i d d l e w a r et e c h n o l o g yw ed e s i g na n d i m p l e m e n tad a t aa c c e s sm i d d l e w a r e t h r o u 【g ht h et e s tw ep r o v et h a tm i d d l e w a r e i m p r o v e st h es y s t e mp e r f o r m a n c e w h e nc l i e n t sr e a c hc e r t a i nn u m b e r k e y w o r d s :d i s t r i b u t e d t e c h n o l o g y ;m i d d l e w a r e ;d a t a a c c e s s m i d d l e w a r e ;t a s kq u e u e 四川i 大学硕士学位论文 第一章前言 1 1 论文选题背景 客户服务器的概念和应用己经流行了许多年。尽管有关专家预测传统的客 户服务器结构有可能过时,代之以w e b 技术、对象技术、数据仓库技术等新 的概念和结构,但实际上,客户服务器的概念还在发展( 如3 层或多层客户服 务器结构1 ,客户服务器方式的应用还在迅猛扩张。随着对各种老应用的不断 扩充和新应用的不断增加,各企业r r 部门面临的问题也越来越多,诸如跨不同 硬件平台、不同的网络环境、不同的应用、数据库之间互操作、新旧系统并存、 系统效率过低、传输不可靠、数据需要加密、各种应用模式、开发周期过长等 等问题。这些问题只靠传统的系统软件或工具软件提供的功能已经不能满足要 求。这类的问题自然将人们的注意力引到了中间件,尤其是当前分布式应用的 迅猛发展,中间件这一新兴的软件领域已傲然崛起f l i 。 目前,国际上较为成功的中间件技术有t h eo p e ng r o u p 的d e c r p c , m i c r o s o f t 的s r p c 和c o m d c o m ,以及o m g 的c o r b a 。尤其是 c o m d c o m 和c o r b a ,其技术不断趋于成熟,正越来越广泛的应用于软件开 发的实践中,并出现了许多比较成熟的产品。但同样也存在一些问题。以目前 广为熟知的c o r b a 为例,正因为它是一个通用的异构的分布式开发平台,所 以它的效率不高,在诸如一些对实时性要求较高的应用就不能满足需求。而且, 大多数中间件是类似的,不同的是它们的接口和优化性,没有一个中间件满足 所有应用的需要。为此,我们可以针对不同的应用领域,设计开发出不同的中 间件,以便更为灵活的满足用户的需要。 中间件的开发方法也多种多样,采用m i c r o s o f t 的c o m d c o m ,或 o m g 的c o r b a 都是开发者不错的选择。目前市场上有大量的基于 c o m d c o m 和c o r b a 的标准中间件开发工具,其面向对象的编程方法,可 视化的开发技术使中问件的开发十分方便。但熟悉或测试这些工具需要花费较 大的精力,购买软件需要一定的经费开销,更重要的是不利于编程人员针对具 体的应用开发出针对性强、专、i k 性强的应用产品。因此,我们提出了基于自定 四川大学硕士学位论文 义协议的中问件开发方法。基于自定义协议的中间件开发的一般思路与总体框 架如同目前流行的c o m d c o m 或c o r b a ,中间件应具有客户端和服务器端 两部分。其中,客户端负责处理各种客户请求,服务器端负责管理诸多的服务 项目。 本课题设计的数据访问中间件就是自己开发专用中间件的实例。在本课题 中,使用自定义数据访问中间件来处理客户端和数据库的通讯,并对客户端向 数据库的请求进行调度、监控和管理。该数据访问中间件能应用于证券、银行 以及一般的企业级的m i s 系统的快速开发,极大方便了广大的客户端编程人员 和用户、提高了系统的健壮性、安全性、兼容性。 1 2 本文的主要工作和创新点 1 系统研究了中间件产生的背景、发展历史、特点、分类、技术标准,阐 述了c s 三层结构开发模式和分布式互操作协议模型的发展历程。指出 了当前的分布式体系结构的局限性。 2 提出了中间件的概念并阐述了它的理论意义和工程意义。 3 提出了一种数据访问中间件的体系机构。 4 设计并实现了一个数据访问中间件。 1 3 论文的内容安排 本文的组织如下:第一章为研究背景介绍。第二章对中间件的产生背景、 发展历史、特点、分类以及当前主要的技术标准做出了介绍。第三章给出了数 据访问中间件的设计目标后,对数据访问中间件的主要功能进行了明确的论述, 并给出了该中间件的物理模型及系统结构,讨论了该中间件采用的软硬件平台。 第四章讲述数据访问中间件网络通信接口及传输安全的设计。其中重点讲述了 开发中涉及的关键技术包括网络通信原理,如何利用w i n , s o c k 接口在w i n d o w s 环境下实现客户端、中间件两者的通信问题以及线程池技术,最后讨论了网络 通信接口的设计实现过程和网络安全传输地实现。第五章针对业务逻辑请求的 处理进行了阐述。讨论了业务逻辑处理流程,重点讲述了对任务队列的管理、 调度。最后讨论了业务逻辑脚本解释接口的设计。第六章讲述了数据库访问接 口的设计和实现。 四j i i 大学硕士学位论文 第二章中间件技术的研究 2 1 中间件技术介绍 2 1 1 中间件技术背景研究 2 1 1 1 分布式技术发展 随着现代技术的飞速发展,计算机无处不在,社会正在向“信息化社会” 发展。随着网络技术的进一步发展,许多软件需要在不同厂家的网络产品、硬 件平台、网络协议的异构环境下运行,应用的规模也从局域网发展到广域网。 因此,今天的应用系统的显著特征是使用分布式计算。分布式计算系统的另一 个优势是信息访问的持久性和位置的透明性,用户可以在全球范围内操作或者 共享数据。 从结构观点来看,有几种方式组织分布式计算系统。一种最常用的方式是 客户朋臣务器结构,某台计算机作为服务器,向客户提供预先定义好的服务。最 近的实现放弃了客户朋匣务器结构,因为服务器很可能成为瓶颈,降低了整个系 统的可用性。现在的一种趋势是层一层的计算系统,如g n u t e l l a 2 1 。更进一步, 分布式计算的新的领域涉及到移动设备的可用性,通过无线通信动态地连接到 网络。 虽然分布式系统技术进步很快,体系结构也相对比较独立,然而,开发利 用构件技术的分布式信息系统并非易事。其一,分布在不同主机上的构件需要 有一致的通信接口,而计算机网络的一个显著特征是异构性。分布式系统中通 常使用了不同的操作系统平台,各种通信协议和网络标准。许多标准的网络程 序设计接口和可复用库,一般只能对单一的操作系统和协议提供支持,缺乏对 分布式异构环境下构件通信所需的支持。其二,构件的接口需和实现分离,因 异构性使得构件可在不同的地址空间和语言环境中实现,故要求有中性的构件 接口标准以支持可移植性和互操作性。 4 四川大学硕士学位论文 随着分布式应用的不断发展,需要寻找一个建立分布式应用的有效机制。 对于上述问题的一个有效解是使用分布式对象计算技术。其核心之一是采用中 问件( r n i d d l e w a r e ) 技术。中间件是位于操作系统和应用软件之间的通用服务,是 建立在分布式异构环境之上的软件,定义了构件间的一个标准通信机制,隐藏 底层操作系统和网络的区别以简化分布式构件的集成。它屏蔽了网络硬件平台 的差异性和操作系统与网络协议的异构性,使应用软件能够比较平滑地运行于 不同平台上。同时中间件在负载平衡、连接管理和调度方面起了很大的作用, 使企业级应用的性能得到大幅提升,满足了关键业务的需求。其核心之二是采 用面向对象的软件构件技术构造分布式构件( 对象) ,以提供各种服务。面向对 象通过抽象( 封装、继承及消息等机制) 有效减少了构件的构造复杂度,并使得 对象的接口和实现分离。一旦定义了一致的接口,应用便可访问其它本地或远 程对象提供的服务,而毋须了解这些对象的实现和运行环境【3 】f 4 l 。 分布式计算技术的发展经历了两条不同的技术路线。在上世纪8 0 年代, 人们一直在致力于分布式操作系统的研究,希望在网络上部署全新的分布式操 作系统。尽管产生了许多技术成果和实验系统,但却没有被市场接受。到了9 0 年代,面对i n t e m e t ,开发人员开始寻找新的解决方案,研究在网络计算平台 上部署分布计算环境,提供开发工具和公共服务,支持分布式应用。在中间件 产生以前,开发者不得不直接解决许多如异构平台、多种网络协议、多种数据 库、安全等棘手的问题,应用开发过程中大约7 0 的时间和精力用于解决这些 与业务逻辑没有直接关系的难题。因此有必要将分布式应用软件所要面临的共 性问题进行提炼、抽象,形成一个可复用的软件部件,供应用软件重复使用。 产业界遵循这一技术路线,产生了一系列行之有效的技术和广为用户接受的中 问件产品1 5 j ,如今,中间件技术己成为构筑分布式应用的关键技术。 2 1 1 2 客户服务器应用模式“1 客户服务器模式是一种试图改善可用性( u s a b i l i t y ) 、交互性 ( i n t e r o p e r a b i l i t y ) 、伸缩性( f i e x i b i l i t y ) 和可扩展性( s c a l a b i l i t y ) 的基于消息的多用 途的模块化结构。 客户机月务器模式( c l i e n t s e r v e r ) 是现在广泛采用的网络应用模式。这种模 四川大学硕士学位论文 式中,应用程序可以相互通信,协同工作。不过参加通信的两个应用程序的作 用各不相同。其中一个应用程序主动发起通信,称为客户机;另一个应用程序 被动地等待,称为服务器。在客户服务器模式中,客户或客户程序代表了需要 获得服务的一方:服务器或服务程序是指提供服务的一方。客户程序和服务程 序在逻辑上是相互独立的对象,他们通过网络连接在一起来完成任务。客户方 向服务方提出申请,并接受服务方返回的应答;服务方接收客户方的请求,然 后处理请求,最后将请求结果返回给客户方。客户程序在用户的个人计算机上 本地运行,主动向服务器发出服务请求,直接被用户调用,只在需要时运行; 服务器程序在一台共享的计算机上远程运行,被动地等待来自客户的请求,通 常在系统启动时自动调用,持续运行。 客户服务器模式的发展经历了单层、双层、三层、多层结构。单层结构是 8 0 年代以来小型应用的结构,典型的是基于d b a s e ,f o x b a s e 等小型数据库的 应用。双层结构的同义词可以理解为传统的客户,服务器结构,是目前占统治地 位的结构,典型是基于o r a c l e ,i n f o r m i x 等大型数据库的应用。三层结构即分 布式应用是传统的客户服务器结构的发展,代表了企业级应用的未来,典型的 有w e b 下的应用。多层结构和三层结构的含义是一样的,只是细节有所不同。 之所以会有双层、三层这些提法,是因为应用程序要解决三个层面的问题。 一界面层 界面层提供给用户一个视觉上的界面,通过界面层,用户输入 数据、获取数据。界面层同时也提供一定的安全性,确保用户不会 看到机密的信息。 二业务逻辑层 业务逻辑层是界面层和数据层的桥梁,它响应界面层的用户请 求,执行任务并从数据层抓取数据,并将必要的数据传送给界面层。 三数据层 数据层定义、维护数据的完整性、安全性,它响应逻辑层的请 求,访问数据。这一层通常由大型的数据库服务器实现,如o r a c l e 、 s y b a s e ,m ss q l s e r v e r 等。 这些功能单元既可以放在客户端,也可以放在服务端。至于你选择哪一种 四j i l 大学硕士学位论文 方案,取决于你怎样划分你的应用和你采用的是什么中间件来联结这一些单元。 在两层的客户服务器应用中,业务逻辑层可以和用户界面一起放在客户端( 胖 客户型) ,也可以以存储过程的形式存放在数据库中( 瘦客户型) 。另外,业务逻 辑也可以分成两部分分别放在客户端和服务端。例如文件服务器,数据库服务 器都是两层结构的例子。在三层的客户服务器应用中,业务逻辑作为中间层, 独立于用户界面层和数据层。在这种方式中,业务逻辑的处理可以与数据和用 户界面独立开来。同时使得数据统一完整。 三层架构属于瘦客户的模式,用户端只需一个较小的硬盘、较小的内存、 较慢的c p u 就可以获得不错的性能。相比之下,单层或胖客户对机器的要求太 高。尽管现在电脑价格下降很多,对个人用户已可以承受,但对于企业而言, 频繁的淘汰旧机器,换新机器,这是一笔多么大的费用。 l画画鱼 i工碓站t 耀站工砰站 一 i 。 圃圃圃 、中间件a 中间件b 中间件c , 嘲 l :! 塑堂亨呈竺爹器j 数据库服务器 r 一 两层结构客户服务器 图2 1 两层与三层客户n f l 务器模式的对比 三层架构的另个优点在于可以更好的支持分布式计算环境。逻辑层的应 禽_ 瞄 需 四川大学硕士学位论文 用程序可以有多个机器上运行,充分利用网络的计算功能。分布式计算的潜力 巨大,远比升级c p u 有效。美国人曾利用分式计算解密,几个月就破解了据称 永远都破不了的密码。 在多层体系中,各层次按照以下方式进行划分,实现明确分工: 瘦客户:提供简洁的人机交互界面,完成数据的输入,输出; 业务服务:完成业务逻辑,实现客户与数据库对话的桥梁。同时,在 这一层中,还应实现分布式管理、负载均衡、f a i l r e c o v e r 、安全隔离 等: 数据服务:提供数据的存储服务。一般就是数据库系统。 多层分布式体系主要特点有: 安全性 中间层隔离客户直接对数据服务器的访问,保护了数据库的安全; 稳定性 对于要求2 4 7 工作的业务系统,多层分布式体系提供了更可靠的稳定 性: _中间层缓冲c l i e n t 与数据库的实际连接,使数据库的实际连接数 量远小于c l i e n t 应用数量。当然,连接数越少,我们的数据库系 统就越稳定。 一f a i l r e c o v e r 机制能够在一台服务器当机的情况下,透明地把客户 端工作转移到其他具有同样业务功能的服务上。 易维护 由于业务逻辑在中间服务器,当业务规则变化后,客户端程序基本不 做改动; 快速响应 通过负载均衡以及中间层缓存数据能力,可以提高对客户端的响应速 度; 系统扩展灵活 基于多层分布体系,当业务增大时,可以在中间层部署更多的应用服 务器,提高对客户端的响应,而所有变化对客户端透明。 四川大学硕士学位论文 从开发角度和应用角度来看,三层架构比双层或单层结构都有更大的优 势。三层结构适合群体开发,每人可以有不同的分工,协同工作使效率倍增。 开发双层或单层应用时,每个开发人员都应对系统有较深的理解,能力要求很 高。开发三层应用时,则可以结合多方面的人才,只需少数人对系统全面了解, 从一定程度上降低了开发的难度。分布式多层体系的开发主要考虑三方面的技 术,首先是开发环境,开发人员需要一种创建新组件、并将已有组件加以集成 的开发环境。其次是应用程序的集成,开发人员需要集成各种应用程序,以创 建出更强大的应用。第三是应用程序的配置,分布式多层体系的丌发需要配置 平台的支持,以便在用户剧增时能有效地扩展,并保持系统的稳定。 目前多层分布应用的开发,比较重要的有两种规范,既c o m 和c o r b a 。 其中c o m 主要用于w i n d o w s 平台,c o r b a 则提供跨平台的能力。同时,随 着分布式应用的发展,旧的硬件软件平台的不断更新,跨硬件平台、网络环境、 操作系统以及跨不同数据库的应用系统不断出现,使我们传统的开发工具越来 越陷入尴尬境地,因此中间件应运而生。 2 1 2 中间件概念 随着计算机技术的飞速发展,各种各样的应用软件需要在各种平台之间进 行移植,或者一个平台需要支持多种应用软件和管理多种应用系统。软、硬件 平台和应用系统之间需要可靠和高效的数据传递或转换,使系统的协同性得以 保证。 为解决分布异构问题,人们提出了中间件( m i d d l e w a r e ) 的概念。虽然中间件 技术在二十世纪七十年代就提出了,可是关于中间件的定义却有很大的分歧。 有人说中间件是一种技术,它主要是为程序的开发提供跨平台功能。有人从面 向对象角度出发,认为中间件是组织各种分布式对象的软件实体。从网络的应 用角度出发,又有人说中间件是应用层和传输层之间的软件体,它为网络开发 提供了简单可靠的方法。从操作系统的角度出发,有人将中问件定义为位于平 台( 硬件和操作系统) 和应用之间的通用服务。为了准确给中间件下一个定义, 必须从逻辑、功能、复杂性方面分析中间件的特点和功能8 。 四川大学硕士学位论文 从逻辑位置的角度来看,中间件总是位于两个软件服务之间,比如t c p 1 p 协议的传输层和应用层之间、应用程序和操作系统之间、应用程序和物理硬件 之间、数据库应用和数据库管理系统之间。而且上层的服务必须依赖于下层提 供的服务,比如网络应用必须依赖t c p 或u d p 提供的功能、应用程序必须依 赖操作系统和物理硬件提供的功能、数据库必须依赖数据库管理系统提供的功 能等。因此,从逻辑角度看,中间件是位于两个有依赖关系的服务之间的软件 体。 从功能角度来看,中间件的主要目的是简化应用程序的使用和开发,并提 供可靠的增值服务。比如位于网络应用和t c p 或u d p 之间的中间件,必须提 供t c p 或u d p 提供的所有服务,同时,必须简化网络应用程序的管理和开发, 提供比t c p 或u d p 可靠性更高、服务质量更好的增值服务。因此,从功能的 角度出发,可以认为中间件是屏蔽下层服务的复杂性,简化上层应用服务的开 发和管理的软件体。 从复杂性方面来看,中间件提供的服务不能和应用的功能相混淆。中间件 提供的增值服务只能是有限的,不能包括应用程序需要提供的功能,也就是说, 中间件不能是万能的,不能无所不能、无所不包。因此,从复杂性角度来看, 中间件是上层服务和下层服务之间通用的软件体。 这些,都需要一种构筑于软、硬件平台之上,同时对更上层的应用软件提 供支持的软件系统,而中间件正是在这个环境下应运而生。 许多组织和专家都对中间件下过定义,但确实都不太精确,所以经常会有 “什么是中间件”这样的问题,这也正说明中间件正处于迅速发展之中。以下 是对中间件定义的一个归纳1 1 。 中间件是在分布式计算环境中,实现应用互连、互操作、协同工作、资源 共享的一类独立的系统软件或服务程序。它可以屏蔽异构和分布所导致集成和 共享的各种复杂技术细节,它是建立在操作系统:网络操作系统和数据库系统 以及应用软件之间的可复用的结构或构建群。随着技术与需求的不断发展,中 间件还将整合企业集团乃至社会计算机应用软件的资源。从这个意义上可以用 一个等式来表示中间件:中间件= 平台+ 通信,这也就限定了只有用于分布式 系统中才能口q 中间件,同时也把它与支撑软件和实用软件区分开来。 1 0 四川大学硕士学位论文 2 1 3 中间件特点及其优缺点 通常意义下,中间件应具有以下的一些特点: 1 满足大量应用的需要; 2 运行于多种硬件和o s 平台; 3 支持分布式计算,提供跨网络、硬件和o s 平台的透明性的应用或服务 的交互功能; 4 支持标准的协议、标准的接口。 程序员通过调用中间件提供的大量a p i ,实现异构环境的通讯,从而屏蔽 异构系统中复杂的操作系统和网络协议。 中间件提供客户机与服务器之间的连接服务,这些服务具有标准的程序接 口和协议。针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范 的多种实现。 由于标准接口对于可移植性和标准协议对于互操作性的重要性,中间件已 成为许多标准化工作的主要部分。对于应用软件开发,中间件远比操作系统和 网络服务更为重要。中间件提供的程序接口定义了一个相对稳定的高层应用环 境,不管底层的计算机硬件和系统软件怎样更新换代,只要将中间件升级更新, 并保持中间件对外的接口定义不变,应用软件几乎不需任何修改,从而保护了 企业在应用软件开发和维护中的重大投资。 中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件 在不同的技术之间共享资源。中间件软件管理着客户端程序和数据库或者早期 应用软件之间的通讯。 中间件在分布式的客户和服务之间扮演着承卜启下的角色,如事务管理、 负载均衡以及基于w e b 的计算等。 利用这些技术有助于减轻应用软件开发者的负担,使他们利用现有的硬件 设备、操作系统、网络、数据库管理系统以及对象模型创建分布式应用软件时 更加得心应手。由于中间件能够保护企业的投资、保证应用软件的相对稳定、 实现应用软件的功能扩展、同时中间件产品在很大程度上简化了一个由不同硬 四川大学硕士学位论文 件构成的分布式处理环境的复杂性,所以它的出现正日益引起用户的关注。 世界著名的咨询机构t h es t a n d i s hg r o u p 在一份研究报告l l l j 中归纳了中间 件的十大优越性: 1 应用开发:t h es t a n d i s hg r o u p 分析了1 0 0 个关键应用系统中的业务逻 辑程序、应用逻辑程序及基础程序所占的比例。业务逻辑程序和应用逻 辑程序仅占总程序量的3 0 ,而基础程序占了7 0 ,使用传统意义上的 中间件一项就可以节省2 5 6 0 的应用开发费用。如是以新一代的中 间件系列产品来组合应用,同时配合以可复用的商务对象构件,则应用 开发费用可节省至8 0 。 2 系统运行:没有使用中间件的应用系统,其初期的资金及运行费用的投 入要比同规模的使用中间件的应用系统多一倍。 3 开发周期:基础软件的开发是一件耗时的工作,若使用标准商业中间件 则可缩短开发周期5 0 7 5 。 4 减少项目开发风险:研究表明,没有使用标准商业中间件的关键应用系 统开发项目的失败率高于9 0 。企业自己开发内置的基础( 中间件) 软 件是得不偿失的,项目总的丌支至少要翻一倍,甚至会十几倍。 5 合理运用资金:借助标准的商业中间件,企业可以很容易地在现有或遗 留系统之上或之外增加新的功能模块,并将它们与原有系统无缝集合。 依靠标准的中间件,可以将老的系统改头换面成新潮的i n t e r n e t i n t r a n e t 应用系统。 6 应用集合:依靠标准的中间件可以将现有的应用、新的应用和购买的商 务构件融合在一起进行应用集合。 7 系统维护:需要一提的是,基础( 中间件) 软件的自我开发是要付出很 高代价的,此外,每年维护自我开发的基础( 中间件) 软件的开支则需 要当初开发费用韵1 5 2 5 ,每年应用程序的维护开支也还需要当初 项目总费用的1 0 一2 0 左右。而在一般情况下,购买标准商业中间件 每年只需付出产品价格的1 5 一2 0 的维护费,当然,中间件产品的具 体价格要依据产品购买数量及哪一家厂商而定。 8 质量:基于企业自我建造的基础( 中间件) 软件平台上的应用系统,每 四川大学硕士学位论文 增加一个新的模块,就要相应地在基础( 中间件) 软件之上进行改动。 而标准的中间件在接口方面都是清晰和规范的。标准中间件的规范化模 块可以有效地保证应用系统质量及减少新旧系统维护开支。 9 技术革新:企业对自我建造的基础( 中间件) 软件平台的频繁革新是极 不容易实现的( 不实际的) 。而购买标准的商业中间件,则对技术的发 展与变化可以放心,中间件厂商会责无旁贷地把握技术方向和进行技术 革新。 1 0 增加产品吸引力:不同的商业中间件提供不同的功能模型,合理使用, 可以让你的应用更容易增添新的表现形式与新的服务项目。从另一个角 度看可靠的商业中间件也使得企业的应用系统更完善,更出众。 具体地说,中间件屏蔽了低层操作系统的复杂性,使程序开发人员面对一 个简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业 务上,不必再为程序在不同系统软件上的移植而重复工作,从而大大减少了技 术上的负担。 中间件带给应用系统的不只是开发的简单、开发周期的缩短,也减少了系 统的维护、运行和管理的工作量,还减少了计算机总体费用的投入。t h e s t a n d i s h g r o u p 的调查报告显示,由于采用了中间件技术,应用系统的总建设费用可以 减少5 0 左右。在网络经济大发展、电子商务大发展的今天,从中间件获得利 益的不只是r r 厂商,i t 用户同样是赢家,并且是更有把握的赢家。 中间件作为新层次的基础软件其重要作用是将不同时期、在不同操作系 统上开发应用软件集成起来,彼此像一个天衣无缝的整体协调工作,这是操作 系统、数据库管理系统本身做不了的。中间件的这一作用,在技术不断发展之 后,使以往在应用软件上的劳动成果仍然物有所用,节约了大量的人力、财力 投入。 当然,中间件并非万能的,也有缺点。首先中间件所带来的方便简单是由 中间件自身的复杂换来的。中间件要处理各种网络之间的互连,要能访问多种 数据库,要能运行于各种操作系统,注定中间件本身很复杂。其次有些中间件 并不能访问所有数据库,不能互连所有的通信网络,针对性较强。但是与中间 件带来的好处相比,还是可以接受的。而且,随着中间件技术的发展不足会逐 四川大学硕士学位论文 渐减少或消除。 2 2 中间件技术分类研究 2 2 1 中间件的分类及其应用领域 中间件要解决的问题首先是应用的互连和互操作问题,这里是指应用之间 的互连和互操作而不是说系统之间互连,这是因为中间件是一个应用级别上的 软件,是一种应用集成的关键组件,不管这些应用是否分布在不同的硬件平台 上、使用了不同的数据库、通过了多么复杂的网络,或是同一计算机中的不同 应用程序,一个好的中间件产品要能解决将这些应用互连所带来的各种问题, 如:在通讯上:要支持各种通讯协议、各种通讯服务模式、传输各种数据内容、 数据格式翻译、流量控制、数据加密、数据压缩等等。在中间件核心:要解决 名字服务、安全控制、并发控制、可靠性保证、效率保证等。在开发上:要能 提供基于不同平台的丰富的开发接口、支持流行的开发工具、支持流行的异构 互连接口标准f 如x a ,d l ) 等;在管理上:解决对中间件本身配置、监控、 协调,为系统的易用易管理提供保证。 其次,针对不同的应用领域,对中间件又有各种不同的要求。由于实际的 应用环境干差万别,不能指望有一种包罗万象的中问件解决所有的问题,如对 于邮件系统需要提供存储转发功能;对工作流应用需根据条件以及条件满足状 态将信息及响应状态从一个应用传递到另一个应用;对联机事物处理系统,需 要保证分布式的数据一致性、不停机作业、大量并发的高效率;对于一个数据 采集系统需要保证可靠传输等等。 为了更好地说明中间件能解决的问题,需要对中间件作一个分类说明。中 间件的分类比较混杂,目前比较典型的将中间件分为: 数据访问类中间件 数据访问类中间件是在两层结构模式下,提供客户端访问数据库 ( 服务) 的一类中间件。 交易中间件 交易中间件的历史比较的长,最初的交易中间件是为大型机环境 1 4 四川大学硕士学位论文 设计的,它作用于客户端和服务器之间,负责管理二者的数据交换。 交易中间件是专门针对联机交易处理系统而设计的。联机交易处理系 统就是处理大量并发的交易任务,将涉及到操作系统、文件系统、编 程语言、数据通讯、数据库系统、系统管理、以及应用软件开发。通 过两阶段提交协议等方式保证分布式交易的完整性、控制并发、实现 交易路由和均衡负载f 1 2 】【1 3 1 。 消息中间件 消息中间件一种最基本的中间件,为应用之间的通讯架构了桥 梁。在分布的计算进程之间,消息是通过消息传递和消息排队两种机 制,以同步或异步方式进行交互的。 对象中间件 面向对象的中间件提供一个标准的构件框架,能使不同的厂家的 软件通过不同的地址空间、网络和操作系统互相交互访问。该构件的 具体实现、位置及所依附的操作系统对客户来说都是透明的。 远程过程调用中间件 远程过程调用是另外一种形式的中间件,它在客户h e 务器计算方 面,比数据库中间件又迈进了一步。通过这种远程过程调用机制,程 序员编写客户方的应用,需要时可以调用位于远端服务器上的过程。 远程过程调用的灵活性还体现在它的跨平台性方面,它不仅可以调用 远端的子程序,而且这种调用是可以跨不同操作系统平台的,而程序 员在编程时并不需要考虑这些细节。 2 2 2 数据访问中间件 数据访问类中间件是在两层结构模式下,提供客户端访问数据库( 服务) 的 一类中间件。这类中间件大部分都是基于s q l 和r p c 标准基础上而开发和制 定的,主要解决以下几方面的问题: 解决管理数据库连接,抽象网络协议。一般由数据库厂商或支持多数据库 的中间件提供。 支持对数据库存取的编程,可以使用存储过程。对象数据库常为面向对象 四川大学硕上学位论文 编程语言如j a v a c + + 提供适应o d m g 的接口。 用于数据复制、转换、信息增值。常作为数据仓库解决方案的一部分。 注重对数据的结构进行操作而不是数据本身,读写数据库的分类信息。 数据访问类中间件主要适用于应用程序与数据源之间的互操作模型,客 户端使用面向数据库的a p i 以提请直接访问和更新基于服务器的数据源,数据 源可以是关系型、非关系型和对象型。这类中间件大都基于s q l 语句,并采用 同步通讯方式。此类中间件使应用开发简单,但如果是透过广域网使用,会带 来严重的效率问题,因为在低速网上来回交互s o l 语句会使通讯流量过大,同 时对数据压缩加密带来不便。 2 3 中间件技术标准 2 3 1d c o m c o m c o m + 技术标准 以m i c r o s o f t 为首的d c o m c o m c o m + 阵营,从d d e ,o l e 到a c t i v e x 等,提供了中间件开发的基础,如v c ,v b ,d e l p h i 等都支持d c o m ,包括 o l ed b 在内新的数据库存取技术,随着w i n d o w s 2 0 0 0 的发布,m i c r o s o f t 的 d c o m c o m c o m + 技术,在d n a 2 0 0 0 分布计算结构基础上,展现了一个全新 的分布构件应用模型。首先,d c o m c o m c o m + 的构件仍然采用普通的 c o m ( c o m p o n e n to b j e c tm o d e l ) 模型。c o m 最初作为m i c r o s o f t 桌面系统的构件 技术,主要为本地的o l e 应用服务,但是随着m i c r o s o f t 服务器操作系统n t 和d c o m 的发布,c o m 通过底层的远程支持使得构件技术延伸到了分布应用 领域。d c o m c o m c o m + 更将其扩充为面向服务器端分布应用的业务逻辑中 间件。通过c o m + 的相关服务设施,如负载均衡、内存数据库、对象池、构件 管理与配置等等,d c o m c o m c o m + 将c o m ,、d c o m 、m t s 的功能有机地 统一在一起,形成了一个功能强的构件应用体系结构。而且,d n a 2 0 0 0 是单一 厂家提供的分布对象构件模型,开发者使用的是同一厂家提供的系列开发工具, 这比组合多家开发工具更有吸引力。 m i c r o s o f t 的d n a ( d i s t r i b u t e di n t e r n e ta p p l i c a t i o n s l2 0 0 0 融合了当今最先进 的分布计算理论和思想,如事务处理、可伸缩性、异步消息队列、集群等内容。 四j i i 大学硕士学位论文 d n a 使得开发基于m i c r o s o f t 平台的服务器构件应用变得非常

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论