(船舶与海洋结构物设计制造专业论文)多层分布式信息系统的研究与开发.pdf_第1页
(船舶与海洋结构物设计制造专业论文)多层分布式信息系统的研究与开发.pdf_第2页
(船舶与海洋结构物设计制造专业论文)多层分布式信息系统的研究与开发.pdf_第3页
(船舶与海洋结构物设计制造专业论文)多层分布式信息系统的研究与开发.pdf_第4页
(船舶与海洋结构物设计制造专业论文)多层分布式信息系统的研究与开发.pdf_第5页
已阅读5页,还剩50页未读 继续免费阅读

(船舶与海洋结构物设计制造专业论文)多层分布式信息系统的研究与开发.pdf.pdf 免费下载

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

文档简介

华中科技大学硕士学位论文 摘要 随着企业应用对信息系统越来越高的要求和信息技术的飞速发展,建设分布式结 构的信息系统已经成为大势所趋。对分布式平台以及基于各种平台的丌发技术的研究 与运用,则是信息系统建设中重要的工作之。本文以一个实际的分布式系统丌发实 践为背景,论述了分布式体系结构、分层的思想与实现方法,以及多种丌发技术在分 布式系统建设中的运用。 本文首先着重研究分布式结构的相关概念和技术。介绍了分布式结构在企业信息 系统中的产生背景,研究了分御式结构的优点和适用范围,着重讨论了目前三种主流 分布计算技术平台及其相关技术。接着,从研究分布式对象的作用与实现入手,探讨 了面向对象思想与方法在分布式技术以及分布式系统设计方面的作用。 在此基础上,深入研究c o m + m t s 分布式计算平台和基于此平台的两种分布式丌 发技术,结合企业实际应用,总结出这两种分布式开发技术的特点与适用场合,并且 对传统的系统架构进行了新的尝试,按照分层的思想,实现四层结构和对企业业务逻 辑的封装。接着,针对金龙泉物资管理信息系统的需求,为其选择了合适的分布式平 台和系统开发方案,结合上述系统设计思想和两种分布式开发技术,进行了系统的开 发,实现了对企业对象的封装和信息系统的分层,建立了结构良好的多层分前i 式系统。 关键词:分布式信息系统业务逻辑分层结构应用服务器 华中科技大学硕士学位论文 a b s t r a c t w i t ht h er a p i dd e v e l o p m e n ti ni ta sw e l la st h ei n c r e a s i n gr e q u i r e m e n t so fe n t e r p r i s e s o ni n f o r m a t i o ns y s t e m so s ) ,t h ec o n s t r u c t i o no fd i s t r i b u t e di sb e c o m e sam a j o rt r e n d r e s e a r c ha n d d e p l o y m e n t o ud i s t r i b u t e dc o m p u t i n g p l a t f o r ma n dr e l e v a n tt e c h n o l o g i e si sa n i m p o r t a n ti s s u e u s i n g t h e d e v e l o p m e n t o fa p r a c t i c a l d i s t r i b u t e d a p p l i c a t i o n a st h e b a c k g r o u n d ,t h i st h e s i sd i s c u s s e st h ed i s t r i b u t e ds y s t e ma r c h i t e c t u r e ,t h em u l t i t i r ea p p r o a c h a n di t s i m p l e m e n t a t i o n ,a n dp r o p o s e d s e v e r a l t e c h n o l o g i e s i nt h e d e v e l o p m e n to f a d i s t r i b u t e ds y s t e m f i r s to f a l l ,t h ec o n c e p ta n dr e l e v a n tt e c h n o l o g i e so fd i s t r i b u t e da r c h i t e c t u r ea r cs t u d i e d , w i t ha ni n t r o d u c t i o nb e i n gg i v e no nt h ea p p e a r i n ga n dd e v e l o p m e n to fd i s t r i b u t e di si n e n t e r p r i s ei s t h ea d v a n t a g ea n da p p r o p r i a t ea p p l i c a t i o ns c o p eo fd i s t r i b u t e da r c h i t e c t u r ei s d i s c u s s e d ,a n d t h e3 p r e s e n t l yp o p u l a rt y p e s o fd i s t r i b u t e d c o m p u t i n gp l a t f o r m a r e i n v e s t i g a t e d f o l l o w i n gt h i s , f r o m t h es t u d yo nd i s t r i b u t e d o b j e c t ,t h em e t h o do fo o ( o b j e c t o r i e n t a t i o n ) i ss t u d i e df o r t h ea p p l i c a t i o ni nd i s t r i b u t e ds y s t e m d e s i g n b a s e do nt h i s ,c o m + m t sa n ds o m er e l e v a n tk e yt e c h n o l o g i e sa r es t u d i e d ,a n dt h e i r a d v a n t a g e sa r ec o n c l u d e d a i m i n g a tap r a c t i c a la p p l i c a t i o no fa ne n t e r p r i s e ,s o m ec h a n g e s a r em a d eo nt r a d i t i o n a ls t r u c t u r ea n db u s i n e s sl o g i ci s e n c a p s u l a t e di n a4 - t i e rs t r u c t u r e t h e np r o p e rp l a t f o r ma n dp r e c e p ti sm a d ef o rj i n l o n g q u a nl n c , sm a t e r i a lm a n a g e m e n t i n f o r m a t i o n s y s t e m t w os o l u t i o n s a n dn e wi d e a sm e n t i o n e da b o v ea r eu s e di nt h e d e v e l o p m e n to ft h i si s f i n a l l yam u l t i t i e rs y s t e mw i t he n c a p s u l a t e de n t e r p r i s eo b j e c ta n d l a y e r e ds t r u c t u r ei si m p l e m e n t e d k e y w o r d s :d i s t r i b u t e di n f o r m a t i o ns y s t e m b u s i n e s s l o g i c m u l t i t i e rs t r u c t u r e a p p l i c a t i o n s e r v e r n 独御性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究 工作及取得的研究成果。尽我所知,除文中已经标明引用的内容外, 本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对 本文的研究做出贡献的个人和集体,均已在文中以明确方式标明。本 人完全意识到本声明的法律结果由本人承担。 学位论文作者签名:割蠢复杰 日期:为。戽年占月吁日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定, 即:学校有权保留并向国家有关部门或机构送交论文的复印件和电子 版,允许论文被查阅和借阅。本人授权华中科技大学可以将本学位论 文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印 或扫描等复制手段保存和汇编本学位论文。 保密口,在年解密后适用本授权书。 本论文属于 不保密团。 ( 请在以上方框内打“”) 学位论文作者签名:刻蠢奠右 日期:和4 4 年箩月? 日 指导教师签名:一r 旋 日期:御o z 年;男日 华中科技大学硕士学位论文 1 1 论文的背景 1 绪论 随着最近几十年间信息系统的不断发展与完善,分布式计算已经成为计算机领域 的前沿与热点问题。全球各大公司以及组织纷纷提出了自己的分布式计算架构,平台 及服务提供商也针对各种架构提供了全面、强大的丌发工具,同时软件工程方面相应 的理论与工具也日益完善,这一切使得分布式系统设计与开发变得更加现实。本项目 以一个实际的系统为背景,研究了分布式系统的结构与工作原理,介绍了目前流行的 分布式架构,开发分布式系统的工具以及方法,着重从实现的角度研究了分布式系统 的相关理论与方法。 1 2 论文的结构 本文以系统的最终实现为线索,全文紧紧的围绕分布式系统设计与开发中的重点 问题展开。组织结构如下: 第一章介绍了分布式结构和分布式信息系统的基本概念和相关技术; 第二章从面向对象角度,着重讨论了构成分布式系统基础的分布式对象技术,深 入探讨了分布式系统的核心技术和重点内容,为后面的设计与丌发做准备; 第三章介绍m i d a s 与c o m “d c o m 组件模型,介绍了利用m i d a s 和 m t s c o m + 实现分布式系统的方法和特点: 第四章通过对余龙泉集团物资管理信息系统的设计与丌发的介绍,说明了如何灵 活运用分布式技术开发实际的企业信息系统; 第五章总结和展望。 华中科技大学硕士学位论文 1 3 分布式系统的相关概念 1 3 1 分布式结构产生的背景 最初的计算机系统大多是单机系统,多个用户是通过联机终端来访问的,没有网 络的概念。网络出现后,产生了c l i e n t s e r v e r 的计算模式,多个客户端可以共享数据 库服务器和打印服务器等等。经典的客户服务器体系结构是为局域广域、企业级 网络而设计的,它能为某些模式相对固定的应用和相对稳定的数据需求提供服务。随 着网络技术和面向对象技术的发展,全球的服务器和数千万的用户谁在互相连接起来, 这就要求当前的计算机体系发生变革以适应这一变化,从而满足个几乎完全无序的 超大规模的网络环境。随着网络的更进一步发展,许多软件需要在不同厂家的网络产 品、硬件平台、网络协议异构环境下运行,应用的规模也从局域网发展到广域网。在 这种情况下,c l i e n t s e r v e r 模式的局限性也就暴露出来了,于是中问件应运而生。中 间件是位于操作系统和应用软件之间的通用服务,它的主要作用是用来屏蔽网络硬件 平台的差异性和操作系统与网络协议的异构性,使应用软件能够比较平滑地运行于不 同平台上。同时中间件在负载平衡、连接管理和调度方面起了很大的作用,使企业级 应用的性能得到大幅提升,满足了关键业务的需求。但是在这个阶段,客户端是请求 服务的,服务器端是提供服务的,它们的关系是不对称的。分布式对象技术就是在这 样的环境中产生的。因而可以说,分布式对象技术是随着网络和面向对象技术的发展 而不断发展完善起来的【。 1 ) 客户机月甚务器模式本身的局限性 在数年前客户机月务器结构兴起后,许多系统便使用这种结构设计。随着客户机 ,服务器结构技术的成熟,使甩这种结构的应用系统瞧执行的非常的平顺。在客户机 服务器结构中通常是由客户机执行应用程序,然后连接到后端的数掘库服务器中存取 系统需要的软件。 出于客户枫,服务器结构很适合一般的m i s 系统,只要应用系统的客户端数目在 华中科技大学硕士学位论文 2 0 0 个用户之内并且是在同一个区域中,那么客户机服务器结构在执行m i s 系统时便 已经足够了。客户机朋及务器结构虽然能够平顺的执行一般的m i s 应用系统,但这种结 构本身包含了一些问题如下1 2 l : 首先,系统缺乏灵活性。客户机f j 务器需要对每一应用独立地丌发应用程序,消 耗了大量的资源,但“胖”客户机【3 1 的计算模式却仍然满足不了同益增长的应用的需 要。 其次,维护费用较高。尽管这种应用模式在某种程度上提高了生产效率,由于客 户端需要安装庞大而复杂的应用程序,当网络用户的规模达到一定的数量之后,系统 的维护量急剧增加,因而维护应用系统变得十分困难。 第三,系统资源的浪费。随着客户端的规模越来越大,对客户机资源的要求也越 来越高。尽管硬件不断更新,但新的操作系统和新的应用软件的不断出现,使得用户 对硬件的更新仍然跟不上软件更新的速度。客户不得不在本地硬盘上装入大量的软件, 但是使用的大都只是其中很少一部分( 一般低于1 0 ) 。在一个拥有众多的“胖客户 机”的环境中,这无疑是种巨大的浪费。 最后,系统的可靠性有所降低。一个客户机,月艮务器系统是由各自独立开发、制造 和管理的各种硬件和软件的混合体,其内在的可靠性不如单一的、中央管理的大型机 或小型机,出现问题时,很难立即获得技术支持和帮助。 2 lw e b 的影响 在客户,服务器结构兴起并成熟后,由于i n t e r n e t i n t r a n e t 的兴起,企业的运作方式 发生了巨大的改变,企业的业务逻辑变更更加频繁,这种结构在维护难度和运做成本 上出现了窘境,随着分布式计算技术的成熟和各种丌发工具、丌发平台的进步,分和 式结构就应运而生了。 在客户,服务器结构中,由于i n t e r n e t i n t r a n e t 的需求,因此企业可能必须开放产品 查询的信息给所有网络上潜在的客户。因此,可能要求m i s 中的产品系统必须能够设 客户使用浏览器来查询所有的产品。 然而,在客户端使用测览器代替传统c s 模式客户端不是一件容易的事情。 , 华中科技大学硕士学位论文 为了解决这个问题,可以采用w e b 服务器和c g i ,i s a p i n s a p i 或者a s p 等技术。 这需要把应用逻辑重写一遍,并且分发到w e b 服务器上,以便让所有潜在的客户使用 浏览器实现查询、更新操作。 事实上,当应用系统采用这种结构之后,系统已经进入了分布式的结构。因为目 前系统中除了数据库服务器外,还有一台w e b 服务器。 采用这种结构也有很多的问题,这个问题其实也是c s 模式局限性造成的。因为 当原来的系统向w e b 上过渡的时候,旧的系统必须重写一次。这种重复丌发成本非常 昂贵。 解决的办法就是在系统的结构上做进一步的改进,因此,引入了应用程序服务器, 即通常所谓的应用服务器。应用服务器简单地说就是一个包含企业逻辑的应用程序, 软件开发人员以一定的组件形态,如c o m + d c o m i 引,c o r b a l 5 】对象,或者e n t e r p r i s e j a v ab e a n n 等,封装企业的逻辑程序代码。这种经过封装,能够执行特定企业功能的 对象便称为“企业对象”1 7 1 ,然后把这些企业对象分发到此应用程序服务器。当应用 程序服务器包含了许多的企业对象后,那么软件开发人员就可以在开发企业应用程序 时候使用这些在应用程序服务器中的企业对象提供的服务。 采用这种包含应用服务器的结构后,c s 模式的局限性可以一一得到解决【8 j : 首先,封装了企业对象,企业对象可以方便在拆除,移动,大大增加了整个企业 信息系统的重用性能。 由于,企业逻辑封装在中间层,业务的变更只需要修改中间层,给系统的维护带 来了极大的便利,整个系统的开发和维护成本可以立刻降低下柬。 其次,客户端实现了瘦客户,降低了对客户机的性能要求。 1 3 2 分布式系统的结构 上面提到,分布式系统在结构上与客户,月鹾务器系统的区别在于引入了应用服务 器。 应用程序服务器是为了解决两层结构中丌发应用系统的成本以及增加应用系统的 重复使用性,发挥面向对象分析设计的功能而引入的。 4 华中科技大学硕士学位论文 图1 1 最基本的三层结构 上图所示的只是一种最简单和最基本的分布式结构,加入了w e b 服务器后,才成 为一个事实意义上的多层分布式系统。下图所示为加入了w e b 服务器的分布式结构。 图1 - 2 流行的分布式结构 目前流行的三层网络计算模式,用公式表示为: 三层网络计算模式= 多浏览器- f 单w e b 服务器+ 多数据库服务器+ 动态计 5 华中科技大学硕士学位论文 算。 w e b 服务器既作为一个浏览服务器,又作为一个应用服务器,在这个中间服务器 中,可以将整个应用逻辑驻留其上,而只有表示层存在于客户机上。这种结构被称之 为“瘦客户机”。这种结构中,无论是应用的h t m l 页还是j a v a a p p l e t 都是运行时刻 动态下载的,只需随机地增加中间层的服务( 应用服务器) 1 9 ,即可满足扩充系统的 需要。由此可以用较少的资源建立超具有很强伸缩性的系统,这正是网络计算模式带 来的重大改进。 1 3 3 分布式系统的核心技术 从上面的描述,已经可以看出,分布式系统的核心是应用服务器。因此,如何实 现应用服务器和保证应用服务器与客户机的可靠通信就是面临的首要问题。 目前,有三种支持中间层应用服务器开发的平台,它们分别是微软的m i c r o s o f t d n a2 0 0 0 ( d i s t r i b u t e di n t e r n e t a p p l i c a t i o n s a r c h i t e c t u r e ) t ,其中核心技术是 c o m d c o m c o m + ;对象管理组织o m g 的c o r b a “ ( c o m m o no b j e c tr e q u e s tb r o k e r a r c h i t e c t u r e :通用对象请求代理) ;s u n 的 2 e e 埘,核心是e j b 。 针对三种分布计算平台,都出现了相似并且具有可比性的分布式组件,即 d n a 2 0 0 0 中的c o m d c o m c o m + ,c o r b a 规范中的c o r b a ,s u n 的e j b 技术。 其中,c o m 技术和e j b 技术已经得到了较为广泛的应用。 上述分布计算平台技术由于产生的历史原因和技术不同,在应用上也具有差别。 其中,j 2 e e 技术下的e j b 局限于j a v a 编程语言,并且由于j a v a 应用必须在1 a v a 虚拟 机中运行,因此这方面限制了j a v a 对已有遗留系统的兼容性,也使得其性能有所降 低。d n a 技术则局限于微软的操作平台,因此对于开发系统平台厂商,如u n i x 和l i n u x , 则不能提供支持。 下面将详细介绍这三种组件模型。 c o m + ,d c o m c o m + i d c o m 是由m i c r o s o f t 提出的一种分布对象组件模型,是在w i n d o w s 3 1 中 6 华中科技大学硕士学位论文 最初为支持复合文档而使用o l e 技术上发展而来,经历了o l e 2 c o m 、a c t i v e x 、 d c o m 和c o m + 等几个阶段【1 3 1 。 c o m 的核心是应用程序调用接口a p i ( a p p l i c a t i o n p r o g r a m m i n g i n t e r f a c e ) ,该接 口提供了创建组件,组装组件的接口,使c o m 对象可以与其他对象互相操作。a c t i v e x 是微软提出的一组使用c o m 使得软件部件在网络环境中进行交互的技术集。d c o m 是c o m 在分布计算方面的自然延续,它为分布在不同结点的c o m 组件提供了互操作 的基础结构。在公共服务方面,微软提出了自己的事物服务器m t s 和消息队列服务器。 c o m + 将c o m 、d c o m 和m t s 三者有效的统一起来,形成个全新的、功能强大的 组件体系结构。c o m + 不仅继承了c o m 、d c o m 和m t s 的许多特征,同时也增加了 一些服务,比如负载平衡、内存数据库、事件模型、队列服务等,通过这些服务可以 很容易的开发出多层结构的应用系统i “i 。 通过这些服务可以很容易的开发出多层结构的应用系统。 c o m 规范具有以下特点f 1 5 1 : 组件间的互操作基于指针进行,依赖于操作系统的a p i 。 对w i n d o w s 的依赖性强,对其他操作系统的支持不足。 微软c o m 平台是分布式对象计算的一个比较完整的平台,开发效率比较高,同 时他有一系列的开发工具支持,如v b 、v c 、d e l p h i 等,并且丌发相对简单,因而 应用较为广泛本系统将采用c o m 技术开发。 c o r b a c o r b a 是由o m g 组织发布的,c o r b a 标准主要分为三个层次:对象请求代理、 公共对象服务和公共设施。最底层是对象请求代理o r b ,规定了分布对象的定义( 接 口) 和语言映射,实现对象间的通讯和互操作,是分稚对象系统中的“软总线”;在 o r b 之上定义了很多公共服务,可以提供诸如并发服务、名字服务、事务( 交易) 服 务、安全服务等各种各样的服务;最上层的公共设施则定义了组件框架,提供可直接 为业务对象使用的服务,规定业务对象有效协作所需的协定规则【1 6 l 。 c o r b a 组件规范具有以下特点f 1 7 1 : 组件间的重用以对象请求代理( o b j e c tr e q u i r e m e n tb r o k e r ,o r b ) 为互操作代理, 7 华中科技大学硕士学位论文 对处理机、操作系统和语言的异构性支持较强。 c o r b a 组件规范大而全,互操作性和开放性非常好。 规范庞大而复杂,并且技术和标准的更新相对较慢,对支持c o r b a 组件规范开 发的工具较少,通常需要传统开发工具的支持【1 8 1 。 j a v ab e a n e j b e j b l l 8 堤j a v a 技术中服务器端软件构件的技术规范和平台支持。与j a v a b e a n s 不同,他提供了事务处理的能力。从分布式计算的角度,e j b 像c o r b a 一样,提供 了分布式技术的基础提供了对象之间的通讯手段从i n t e m e t 技术应用的角度,e j b 和 s e r v l e t , j s p 一起成为新一代应用服务器的技术标准e j b 中的b e a u 可以分为会 话b e a n 和实体b e a n ,前者维护会话,后者处理事务,s e r v l e t 负责与客户端通信, 访问e j b 并把结果通过j s p 产生页面传回客户端。 e j b 组件规范具有以下特点【1 9 1 : e j b 应用服务器可以应用与各种各样的平台,包括s o l a r i s ,l i n u x ,m v s 和 w i n d o w s n t 。这种可用性对于部署于e j b 的应用提供了极大的灵活性。 e j b 采用j a v a 编程语言,并且要求编程人员具有面向对象技术,基于w e b 开发 以及基于组件开发方面的丰富经验,开发难度较大。 8 华中科技大学硕士学位论文 2 面向对象方法在分布式系统中的作用 面向对象最先被使用在面向对象编程语言中,随着面向对象语言的逐步完善,面 向对象技术很快被应用于系统分析和系统设计方法中。8 0 年代中期,面向对象分析技 术的研究开始发展,进而延伸到面向对象设计。面向对象的观念和方法对分稚式系统 有重大的影响,可以说,二者是密不可分的i2 0 1 。 本章将首先阐述面向对象的基本思想,面向对象的方法,以及面向对象思想和技 术在分布式系统设计与开发中的重要作用。 2 1 面向对敦的基本概念 从广义上讲,面向对象的原则就是【2 t - 2 4 1 : 一切事物皆为对象: 任何系统( 也是对象) 由对象通过它们之问的关系连接组成; 系统的发展和进化均由系统内外部对象的相互作用完成: 这些原则导出了面向对象的核心概念:对象、关系、消息。 1 1 对象和消息: 对象具有两方面的含义,即现卖世界中的含义和计算机世界中的含义。 在现实世界中。对象可以定义为:具有名字标识,自身状态和自身功能的现实吡 界实体。面向对象追求的目标是以简单、统一的形式看待这个世界。对计算机世:界i f f 言,面向对象是对现实世界的简单类比或映射。计算机世界罩的对象是一个逻辑实体, 它包括数据和完成处理的操作,其中数据不能为其它对象使用,只有对象自身的操作 才能使用这些数据;对象的操作有些不能为其它对象使用,能为其它对象使用的操作 构成了对象可受理的操作。对象的这个性质引出了面向对象中的另一个重要的基本概 念:封装,封装是将一个实体的结构属性和行为特征集成为一个整体,封装提供了列 象中信息的隐藏机制,对象的数据成员对外是不可见的只能通过对象的方法实施对象 数据的操作,增强了数掘操作的安全性。 9 华中科技大学硕士学位论文 任何事物都有其产生、成长、再到消亡的过程,再到消亡的过程,作为客观事物 的模拟,对象也有活动和生命周期,即从出生( 创建) 到生长( 工作) ,再到死亡( 删 除) 。 孤立的对象是没有用的,它只有通过与其它对象交互才能起作用。对象之间的交 互是通过消息来完成的。向一个对象发送消息,就是要求他执行某一个操作。操作的 具体执行由消息接收者决定。消息只说明操作的功能,而不说明操作的实现。消息的 这个性质产生了面向对象中的另一个重要的基本概念:多态。多态是指一个同名称的 消息可对多种对象实施操作的能力,即一种消息名称可赋予多种操作语义。 综上所述,对象具有明显的特征,它们是自主性、封闭性、交互性、被动性和动 态性: 自主性:是指对象具有处理能力。给定一个输入,经过消息接收、操作处理、变 换对象状态,最后产生输出,从而完成消息所指定的处理任务。 封闭性:封闭性是指对象具有信息隐蔽的能力。外界不能直接修改对象的状态, 只能通过向该对象发送消息对它施加影响。 交互性:交互性是指对象之问的通信能力。对象既可以接收外部的消息并 加以处理。也可以向其它对象发送消息请其处理相应的工作。对象问的交互推动 了对象的状态转换,最终使对象构成的系统不断演化和前进。 被动性:被动性是指对象的处理工作都是由外部对象发送消息来启动的。 动态性:对象的动态性有两个含义,一是对象可以动态的创建和取消,二是对象 的状态是不断变化的, 以上五大特征中,前三项描述了对象的能力,刻画了对象的活动特性,动态性指 出了对象的生存特性。 类是对一组客观对象的抽象,它将该组对象所具有的共同特征( 包括属性和能力) 集中起来,以说明该组对象的能力和性质。在计算机世界中,类形成了个具有特定 功能的模块和一种代码重用的手段。类是创建实例对象的模板。 2 ) 关系 所有的对象都处于一个关系网络中。并通过这个关系网进行相互响应和控制,关 华中科技大学硕士学位论文 系将对象连接成一个整体,对象问的关系是系统复杂性的主要来源。在面向对象中, 关系和对象具有同等重要的地位。 对象间关系是复杂的。但这些关系有时又具有共性。对复杂的关系进行分类,并 分析不同关系类型含有的特定语义,不但有利于代码的重用,而且对于规范对象间的 复杂关系以及对关系的定义和描述都有重要的指导作用,并且有利于对面向对象系统 的理解。 3 1 封装 封装是把对象的数据和实现服务的细节隐藏起来,客户只能通过对象的接口来访 问对象的状态。封装是面向对象语言的一个重要特性,是所有面向对象的系统所追求 的一个主要目标。在分布式系统中,客户和服务器可能存在于不同的机器中,所以客 户很难了解服务器的实现细节。从这个意义上可以说,分布式计算加强了面向对象的 思想,通过将客户和向客户提供服务的对象在物理上分开来阻止客户对对象的数据直 接访问。 与传统的面向对象系统比较,在分布式对象系统中,实现服务的细节更复杂,所 以封装的内涵也更丰富。在分布式对象系统中,对象不仅要屏蔽以上提到的内容,更 重要的是,它还需要屏蔽“系统是分布的”这一特性。 分布式系统平台应该向上层的应用和用户屏蔽服务的实现细节,提供以下分布透 明性:位置透明性( 对象在不同位置的机器上) 、访问透明性( 对象在不同类型的机器 上) 、持久透明性( 对象所处的状态既可以是活动的,也可以是静止的) 、重定位透明 性( 对象的位置已经变化) 、事物透明性( 与事物处理相关的调度、监控和恢复) 和复 制透明性( 多个对象副本之问一致住的维护) 。 分布式透明性是面向对象系统的封装性在分布式环境中的延伸和发展,是分布式 对象中的封装特性必须包含的内容。只有提供了分布式透明性,分布式系统中的对象 机制才能达到传统的对象系统所追求的目标:屏蔽实现服务的细节。 4 1 继承 对象的继承性可以提高软件的可维护性和可重用性,是面向对象系统的一个主要 特征。但是,在分布式系统中实现面向对象继承的难度却很大。 华中科技大学硕士学位论文 产生问题的根源不在于继承性本身,而在于对象完成服务时所需的连接。 当客户请求一个对象通过继承机制才能提供的服务时,由于提供这一服务的操作 代码只有一个副本,并且很有可能存在于另外一个= 肖点上,于是,提供这一服务所付 出的代价将变得非常大。如果在分布式系统中能消除由连接所带来的高代价,则分布 式对象也可以提供继承性。这样便可以大大提高面向对象的分布式软件的可维护性和 可重用性。 在面向对象系统中,把对象分为接口和对象实现两个组成部分。接口用于描述使 用该对象的方法,由该对象提供的操作说明组成;对象实现构成该对象所提供的服务。 多个对象可以共享一个对象实现,其中每个对象都有自己的数据副本,而执行代码只 有一份,被所有对象共享。 基于以上分析,要实现分布式对象,应该从接e l 继承出发。思想如下:系统首先 根据接口的继承关系生成接口的继承关系图,当客户请求某一接口所描述的某个服务 时,如果系统检测到与该服务所对应的对象实现不存在时,可以根据接e l 的继承关系 图,向客户返回一个能够提供该服务,并且相应的对象实现又存在的对象的访问信息。 客p - - - f 以根据这些信息直接与目标对象建立连接。客户只要求目标对象能够提供自己 所需的服务,而不关心是哪个对象提供了这些服务。 5 ) 对象引用 对象引用不仅用来在系统中标识一个对象,客户还可以根据它所知道的对象引用 来与相应的对象建立连接,从而访问该对象。在集中式的面向对象语言中,由于所有 对象都存在于同一个地址空间中( 即,所有的空问被同一个操作系统骛理) ,对象引用 往往由指向该对象所在的内存地址指针来表示。在分布式系统中,出于对象可能分布 在不同的节点上,所以就简单的内存地址指针来表示对象应用。分布式系统中的对象 应用需要由一个比较复杂的数掘结构来表示,在设计这个数据结构时,要充分考虑由 系统的分布所带来的一些问题,如网络协议、网络地址和对象的迁移等。 2 2 面向对象方法在分布式系统设计中的应用 面向对象的思想与手段在分布式系统设计中的应用主要体现两个方面:其一是分 华中科技大学硕士学位论文 布式对象技术【矧,其二是就是分层【2 6 l 的实现,卜面将简要的介绍这两项技术的应用。 2 2 1 分布式对象技术 分布式对象技术 2 7 1 是近几年发展起来的以面向对象为基础的支持分布式应用的 软件技术,它实现了异构环境下对象的可互操作性,有效地实现了系统集成。分布式 对象技术采用面向对象概念组织、管理网络计算,支持面向对象的多层c s 模型, 可以在不同机器的对象间相互传递消息,共同协作实现系统功能目前,有多种分砷i 式对象模型,o m g 的c o r b a 微软的c o m + d c o m 、s u n 的j a v a r m i 是其中的 主流。 作为伴随网络而发展起来的一种面向对象的技术,分布式对象技术实质性的进步 在于使面向对象技术能够在异构的网络环境中得以全面的、彻底的和方便的实施,从 而能够有效的控制系统的开发、管理和维护的复杂性。9 0 年代初期,c o r b a l 0 标准 的颁饰揭开了分布式对象技术的序幕,分布式对象技术中的对象不仅能被访问,而且 自身也可以作为其他对象的客户,客户和服务器的角色划分是相对的、对称的和多层 次的,分布式对象往往又被成为组件,是一些独立的代码的封装体,可以是一个简单 的对象,但大多数情况下是一组相关对象的复合体。他们可以位置透明、语言独立和 平台独立的发送消息和实现请求服务1 2 8 i 。 分布式对象技术在几年内,经历了产生、发展、成熟三个阶段。显示出强大的生 命力,并得到愈来愈广泛的应用。它的应用范围包括在线事务处理系统、网管系统、 全球个人通讯系统、电子医疗图像系统、高性能w e b 服务器和多处理器通信子系统 等等。 在企业信息系统中,分前i 式对象便表现为企h k 对象l 捌,下面将讨论企业对象的概 念。 企业对象( 分布式对象) 代表在特定企业领域中活动的事物企业对象至少包括 它代表的事物的企业名称和企业定义,属性,行为,关系,法则,政策和限制。例如 企业对象可能代表一个人,地方,事件,企业流程或是观念。实际企业范例有:员工, 产品,发票和付款等。它包括功能对象,数掘对象,实体对象,控制对象,协调对象, 华中科技大学硕士学位论文 交易对象等。各种企业对象的关系见图2 - 1 ( 各种企业对象之间的关系) 飘企业对象 控制对象协调对象交易对象 体对象 图2 1 各种企业对象之间的关系 下面分别对各种对象的概念和作用做下解释: 功能对象 功能对象【3 0 l ( f u n c t i o no b j e c t ) 简单的说是执行系统中一些通用的功能。例如可以 提供复杂的计算服务,应用系统经常需要使用的服务等。可以把以往公用程序和函数 归化为数个功能对象,让其它的程序代码或是企业对象调用而不需要通过拷贝粘贴的 方式让程序代码重复出现在程序中。使用功能对象可以在这些功能改变时,只需要修 改功能对象即可,还也可以减少其它应用程序或是企业对象的代码大小。 数据对象 数据对象1 3 0 l ( d a t ao b j e c t ) 数据对象在分布式应用系统中担任存取数据的 1 作, 通常数据对象是最靠近数据库的企业对象。在分布式系统中其它的企业对象,特别是 实体对象都是靠数据对象取得他们的属性。因此,在应用程序服务器中实体对象和数 据对象是最常在一起工作的企业对象。数据对象和交易对象一起合作以便在分布式应 1 4 华中科技大学硕士学位论文 用系统中安全的处理数据。 交易对象 交易对象【划( t r a n s a c t i o n a lo b j e c t ) :交易对象的功能便是控制分稚式应用系统的数 据库交易行为的工作,通常交易对象是和数据对象一起合作完成数据库交易的工作。 分布式系统中交易对象不但关系数据的安全和正确性更关系到应用程序服务器的执 行效率。在传统的二层客户机朋务器结构中当应用程序需要更新数据时。通常出客户 端应用程序自行控制交易行为的产生。但是在分布式应用系统中客户端应用程序不应 该在自行调用这些控制数据库交易模式的方法,而应该由应用程序服务器来控制。而 应用程序服务器就是依靠交易对象来控制什么时候应该进入数据库的交易行为模式之 中。以应付外在环境的快速变化,同时降低了维护系统的成本。 控制对象 控制对象在企业分布式应用系统中类似一个阱调者的角色,通常控制对象实现 了企业法则或是企业流程的逻辑。例如企业的订货流程,转帐流程,出货流程等的企 业运作法则都属于控制对象或是协调对象应该实现的。通常控制对象是负责执行企业 法则,并且使用其他企业对象,例如实体对象,功能对象来完成它的工作。而控制对 象是站在主导的角色命令其它的企业对象共同完成工作。 由于使用控制对象实现企业流程逻辑,并且由实体对象,功能对象负责提供每一 个角色的功能,所以这个模式和实际赶界中入与人之间的通讯是非常类似的。如果企 业运作的流程改变,例如一个企业如果决定改变它的订货流程,那么整个订货应用系 统只需要修改它的控制对象执行流程即可,所有其他的企业对象以及客户端应用程序 都可能不需要改变。这可以大幅度增加信息系统应付外在环境的快速变化,同时也降 低了维护系统的成本。 华中科技大学硕士学位论文 2 2 2 分层结构 2 2 2 1 分屡的基本概念 作为一个分布式系统来说,天然的包含了三个层次,这三个层次是数据层,中问 层( 功能层) ,界面层【3 1 】。 数据层 数据层1 3 2 1 ,即系统的后台数据库服务器,包含了表、存储过程、视图、触发器等 等内容。负责管理对数据库数据的读写。d b m s 必须能迅速执行大量数据的更新和检 索。现在的主流是关系数据库管理系统( r d b m s ) 。因此一般从功能层传送到数据层 的要求大都使用s q l 语言。 功能层 功能层1 3 2 j 相当于应用的本体,它是将具体的业务处理逻辑地编入程序中。从表示 层看,它是服务器,从数据层看,它又是客户端,因此它是两套客户服务器结构的交 汇点。从功能上看,它控制数据的访问、传递表示层和数据层进行信息交互所需要的 指令数据。从物理上看,它把用户和数据隔离开来,其内部封装的业务逻辑对象来完 成表示层和数据层之间的数据交易,从而实现应用系统更好的安全性和灵活性。功能 层用来强制实施业务逻辑和数据规则。表示层使用了功能层提供的服务,然而,功能 层并不固定地连接到任何特定的客户。功能层提供的服务适用于所有的应用程序。! 也 务逻辑规则通常用单独的程序代码模块来实现,这样就可以根据需求和规则的变化而 方便地修改它们了。程序代码模块通常存储在一个集中的位置,以方便多个应用程序 使用它们。 如果将功能层和数据层分别放在不同的服务器中,则服务器和服务器之削也要进 行数据传送。但是,由于在这种形态中三层是分别放在各自不同的硬件系统上的,所 以灵活性很高,能够适应客户机数目的增加和处理负荷的变动。例如,在追加新业务 处理时,可以相应增加装载功能层的服务器。因此,系统规模越大这种形态的优点就 越显著。 1 6 华中科技大学硕士学位论文 在这种模式下,数据库连接之类的资源可以共事。每一个消耗资源的客户端应用 程序井不直接的访问数据库服务器,而由客户端应用程序与业务逻辑层提供的服务进 行通讯,一个连接服务可以向多个客户端应用程序提供服务,这样就降低了资源消耗, 从而提高了程序的可伸缩性。 表示层 表示层【3 2 】是应用的用户接口部分,它担负着用户与应用间的对话功能。它用于榆 查用户从键盘等输入的数据,显示应用输出的数据。为使用户能直观地进行操作,一 般要使用图形用户接1 1 :1 ( g u i ) ,操作简单、易学易用。在变更用户接1 5 时,只需改写 显示控制和数据检查程序,而不影响其他两层f 3 3 。检查的内容也只限于数据的形式和 值的范围,不包括有关业务本身的处理逻辑。目前经常采用的两种表示形式有w e b 浏 览器和w i n d o w s 窗体。 单层结构将界面层、逻辑层、数据层合并在一起。双层结构有两种,一种将界 面层和逻辑层合为一层,数据层是另一层,通常称为胖客户服务器结构;另一种将 逻辑层和数据层合为层,界面层是另一层,通常称为瘦客户服务器结构。三层结 构则将这几层分离处理。它是晟简单的多层应用,它把应用程序分为:瘦客户端应用 程序、应用程序服务器和远端数据库服务器。其中,客户端主要负责用户界面的处理; 服务器端主要负责商业逻辑的处理,为客户端提供公共的数据服务,处理客户端与数 据库间的数据流;远端数据库服务器提供关系数据库的存取与维护。其优点在于1 3 5 1 : 具有灵活的硬件系统构成及更好的支持分布式计算环境,提高程序的可维护性, 瘦客户的模式,进行严密的安全管理,此外,系统管理简单,可支持异种数据库, 有很高的可用性。 中间层还可以细分为业务逻辑层和数据逻辑层,业务逻辑负责与表达业务逻辑, 数据层负责与数据库的交互。这样就出现了四层结构【弘1 :形式逻辑、业务逻辑、数掘 逻辑和数据存储。 两层c s 结构相比,多层结构具有更灵活的硬件系统构成,对于各个层可以选择 与其处理负荷和处理特性相适应的硬件。合理地分割三层结构并便其独立,可以使系 1 7 华中科技大学硕士学位论文 统的结构变得简单清晰,这样就提高了程序的可维护性。多层结构中,应用的备层i 叮 以并行丌发,各层也可以选择各自最适合的丌发语言,有利于变更和维护应用技术规 范。按层分割功能使各个程序的处理逻辑变得十分简单。一 这种分层体系,给分布式系统带来了极大的先进性。使得开发和维护的工作量大 为减少,并且提高了系统的响应度和灵活性。 对于一个目标明确的分布式系统,设计工作的第一步就是进行功能的分割,大体 上,功能分割可以遵照如下的指导思想1 3 7 】。 1 ) 客户端应用程序实现的功能: 处理图形用户界面: 用户的输入处理; 进行简单的计算和检查工作; 调用应用程序服务器提供的服务。 2 ) 应用程序服务器上要实现的功能: 执行数据的更新: 执毒亍企业运算规则: 进行业务逻辑的判断: 协调不同的对象完成共同的工作: 进行计算或提供公共服务。 2 2 2 2 界面和业务的分离 界面和业务的分离【3 8 1 是开发可维护、易扩展、长寿命的应用系统的关键,也是实 现多层分布式系统的必经之路。面向对象的编程技术为开发界面和业务分离的系统提 供了行之有效的途径。 在逻辑上,代码的封装是通过类来实现的,类通过属性封装了对象的数据,类通 过方法封装了对象的行为。在物理上,代码的封装是通过不同结构和形式

温馨提示

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

评论

0/150

提交评论