




已阅读5页,还剩71页未读, 继续免费阅读
(计算机软件与理论专业论文)基于j2ee的分布式技术的研究与设计.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 自2 0 世纪中叶计算机诞生以来,计算机技术就以迅猛的速度发展和普及, 渗透到人类生活的各个角落。网络技术使处于不同地域的计算机被连接起来, 从而使得信息可以共享和交换。特别是9 0 年代以来,i n t e m e t 技术的快速发展, 各行各业都在不同程度上受其影响,随着世界范围内i n t e r n e t 环境的形成,人类 步入了一个以网络为中心的信息时代。但是随着信息量的几何级增长和跨平台 跨地域的共享要求,大量的应用系统都面临着向i n t e r n e t 迁移这样一个共同的课 题。与此同时,计算机科学和i n t e m e t 技术的飞速发展,以及企业自身的需求,如: 数据的分布性、系统的可扩展性和平台的异构性等诸多问题,越来越多的企业 开始采用i n t e r n e t 协议标准和分布式对象技术来筑建电子商务或企业内部网,以 实现信息发布与数据共享。 传统的结构化方法和面向对象方法不再适应这种分布式应用的开发。与此 对应出现了很多以分布对象为基础的技术,这些技术为分布式计算环境下的软 件开发提供了强有力的解决方案。目前分布对象技术已经成为服务应用框架的 核心技术。在开发大型分布式应用系统中比较具有代表性的有四种主流技术: o m g 组织的c o r b a 技术,s u n 公司的j a v a 技术,m i c r o s o f t 的c o m + 技术和 最近出现的w e bs e r v i c e 技术。 文章对几种主流的分布式技术:c o m + 、c o r b a 以及w e bs e r v i c e 进行了 较为深入的研究,特别是对基于j 2 e e 的分布式对象技术做了深入的剖析。 然后对j 2 e e 和j 2 e e 的核心组件技术e j b 进行了深入的研究和讨论。 最后以作者参与的一个基于j 2 e e 架构的企业应用一英语口语等级考试系统 为基础,为建立基于j 2 e e 的企业级应用系统给出了一个完整的说明。 文中给出的英语1 2 1 语考试系统的分析与设计,采用m v c 模式,运用较为先进 的软件平台,结合j s p , s e r v l e t 和e j b 技术,给出了英语口语考试系统中报名系统模 块,采用j 2 e e 模式,给出了它的分布式处理的设计。该系统的开发采用先进的软 件平台:j b u i l d e r9 作为集成开发环境,w e b l o g i es e r v e r 为应用服务器来开发考试 系统。 关键词:j 2 e e ,分布式对象技术,组件技术,e j b a b s t r a c t s i n c et h em i d d l eo ft h e19 t hc e n t u r yt h e s p r i n g i n go u t o ft h ec o m p u t e rh a s i m p o s eag r e a ti m p a c tt ot h es o c i e t y t h et e c h n o l o g ya n d t h eu s eo ft h ec o m p u t e rh a s b e e np r o m p t l yd e v e l o p e da n da l s oh a sg o n ee v e r yc o m e ro fh u m a nl i f e t h en e t w o r k t e c h n o l o g ym a k e si te a s yf o rt h ec o m p u t e r sa l l a r o u n dt h ew o r l dt ob ec o n n e c t e d t o g e t h e r , a n d t h ei n f o r m a t i o nc a nb es h a r e da n ds w i t c h e d e s p e c i a l l ys i n c e9 0 s ,w i t h t h eg r e a td e v e l o p m e n to ft h et e c h n o l o g yt h ei n t e m e t ,i n d u s t r i e sf r o me v e r ya r e aa l l h a v eb e e ni n f l u e n c e di nac e r t a i nd e g r e e t h ei n t e m e te n v i r o n m e n tc o m i n gi n t ob e i n g w i t h i nt h es c o p eo ft h eg l o b a la r e a ,h u m a nb e i n g sh a ss t e p p e di n t oa nn e w e p o c ho f i n f o r m a t i o nw h i c hi so nt h eo ft h ei n t e r n e t t h es e r i o u sp r o b l e mt h a tt h eq u a n t i t yo f t h ei n f o r m a t i o ni n c r e a s e si n g e o m e t r i cs e r i e s a n dt h es h a r e r e q u e s to ft h e c r o s s p l a t f o r mm a k e sm a n ya p p l i c a t i o ns y s t e m s n o wf a c eo n es a l n ep r o b l e mt h a tt h e ym u s t i m m i g r a t et h e m s e l v e st o t h ei n t e m e t ,a tt h es a r n et i m e ,w i t ht h ed e v e l o p m e n to f c o m p u t e r s c i e n c ea n di n t e r a c t t e c h n o l o g y , a n de n t e r p r i s e s d e m a n ds u c ha s d i s t r i b u t i n g o ft h ed a t a ,t h ee x p a n s i b i l i t yo ft h es y s t e ma n dt h ed i f f e r e n c eo ft h e p l a t f o r m ,m o r ea n dm o r ee n t e r p r i s eu s ei n t e m e tp r o t o c o ls t a n d a r da n dd i s t r i b u t e d o b j e c tt e c h n o l o g yt oc o n s t r u c t t h e i re - c o m i l e r c eo ri n t r a n e tt os h a r et h e i rd a t aa n d i s s u ei n f o r m a t i o n w i t haf e wy e a r sd e v e l o p m e n t ,c o n s t r u c td i s t r i b u t e de n t e r p r i s e a p p l i c a t i o ns y s t e m o nt h ei n t e m e th a sb e c o m et h em a i n s t r e a mo ft h et e c h n o l o g y t o d a y , i ti sn o ts u i t a b l ef o rt h ed e v e l o p m e n to f d i s t r i b u t e da p p l i c a t i o na d o p t i n g t h et r a d i t i o n a ls t r u c t u r e da n do b j e c to r i e n t e dm e t h o d a tt h em e a nt i m e ,s o m en e w t e c h n o l o g i e sh a v ea p p e a r e dw h i c ha r eb a s e do nt h ed i s t r i b u t e do b j e c t t h e s en e w t e c h n o l o g i e sp r o v i d et h em o r ep o w e r f u ls o l u t i o n st os u p p o r tt h es o f t w a r ed e s i g n i n g u n d e rt h ed i s t r i b u t e dc o m p u t i n ge n v i r o n m e n t t h et e c h n o l o g i e so fd i s t r i b u t e do b j e c t h a v ei i o wb e c o m et h ec o r et e c h n o l o g i e sf o rt h em a i nf r a m eo fs e r v i c e t h e r ea r ef o u r m a i n s t r e a mt e c h n o l o g i e sw h i c hh a v et h et y p i c a lc h a r a c t e r i s t i c so ft h ed i s t r i b u t e d o b j e c tw h e nd e v e l o p i n gt h el a r g ed i s t r i b u t e da p p l i c a t i o ns y s t e m t h e y a r e :c o r b r a t e c h n o l o g yb yo m go r g a n i z i n g ,t h ej a v at e c h n o l o g y o fs u nc o r p ,t h ec o m + t e c h n o l o g y o f m i c r o s o f ta n d t h e l a t e t e c h n o l o g y o f w e b s e r v i c e i i i nt h i st h e s i sw em a k ead e e pr e s e a r c hi n t ot h e s em m n s t r e a md i s t r i b u t e d t e c h n o l o g i e se s p e c i a l l yf o rt h ed i s t r i b u t e do b j e c tt e c h n o l o g yb a s e do n t h ej 2 e e a n dt h e ni n d e p t hw ea n a l y z ea n dd e b a t et h ej 2 e ea n de j bw h i c hi s t h ek e y c o m p o n e n tt e c h n o l o g y o fj 2 e e a n da tl a s tw et a k eas p e c i f i ca p p l i c a t i o ns y s t e mw h i c ht h ea u t h o rh a st o o kp a r ti n f o re x a m p l et og i v ea c o m p l e t ei l l u s t r a t i o nf o rt h ee s t a b l i s h m e n t o ft h es y s t e m t a k i n g t h ej 2 e et e c h n o l o g ya tt h ea p p l i c a t i o ns t a n d a r do fe n t e r p r i s e s w h e n d e s i g n i n gt h eo r a le n g l i s ht e s ta p p l i c a t i o ns y s t e mw eg i v ei nt h et h e s i s w e a d o p tt h ea d v a n c e ds o f t w a r ed e s i g n i n gp l a t f o r m :j b u i l d e r9a st h ei d e a n di n t e g r a t e t h et e c h n o l o g i e so fj s p , s e r v l e ta n de j b a n dw ea d o p t i n gt h ew e b l o g i cs e r v e ra s t h ea p p l i c a t i o nw e bs e r v e r a n da l s ow eg i v et h em e t h o dt od e s i g nt h er e g i s t r a t i o n m o d u l eo f t h ew h o l es y s t e mu s i n gt h ej 2 e em o d e k e yw o r d s :j 2 e e ,d i s t r i b u t e do b j e c tt e c h n o l o g y , c o m p o n e n tt e c h n o l o g y ,e j b i l i 武汉理工大学硕士学位论文 第1 章绪论 自2 0 世纪中叶计算机诞生以来,计算机技术就以迅猛的速度发展和普及, 渗透到人类生活的各个角落。网络技术使处于不同地域的计算机被连接起来, 从而使得信息可以共享和交换。特别是9 0 年代以来,i n t e m e t 技术的快速发展, 各行各业都在不同程度上受其影响,随着世界范围内i n t e r n e t 环境的形成,人类 步入了一个以网络为中心的信息时代。但是随着信息量的几何级增长和跨平台 跨地域的共享要求。大量的应用系统都面i 临着向i n t e m e t 迁移这样一个共同的课 题。 传统的结构化方法和面向对象方法不再适应这种分布式应用的开发。与此 对应出现了很多以分布对象为基础的技术,这些技术为分布式计算环境下的软 件开发提供了强有力韵解决方案。目前分布对象技术已经成为服务应用框架的 核心技术。在开发大型分布式应用系统中比较具有代表性的有四种主流技术: o m g 组织的c o r b a 技术,s u n 公司的j a v a 技术,m i c r o s o f t 的c o m + 技术和 最近出现的w e bs e r v i c e 技术。 1 。1 课题背景与研究内容 本课题是以英语口语等级考试考试中心网站为背景完成的。英语口语等级 考试是考试中较难实施的一类考试。目前英语口语等级考试是多个考生面对 老师,老师提问,考生回答这样的方式进行。对于全省的范围,采用多个考生 面对老师这样的方式进行英语口语等级考试显然是不适合的。 随着市场经济的发展,报名参加英语口语等级考试的考生人数在逐年递增。 面对如此大量的考生,英语口语等级考试方式的改革已经是急需解决的问题。 开发基于计算机网络的英语口语等级考试系统已是势在必行。该系统采用计算 机网络技术和信息技术相结合,建立专业的网络考试管理方案,它对于 用于英语口语等级考试是非常必要的。它采用开放、 动态的系统架构,将传统的考试培训模式与先进的网络应用技术相结 合,可使用户完全根据自身应用特点,快速构建英语口语等级考试和英语 口语等级考试培训平台系统,实现对网络英语口语等级考试的高效管理。 武汉理工大学硕士学位论文 使用英语口语等级考试系统使得英语口语等级考试考务管理能够科学化, 规范化。减少测试中的人为因素,使考生的成绩更加客观。同时也能够减轻考 务管理人员的劳动强度。 论文对当前主流的分布对象技术做了深入的研究,特别是对j 2 e e 做了重点 的剖析。最后结合英语口语等级考试网站系统的设计, n - ;r t :发,对j 2 e e 的开发和 部署进行分析,并在此基础上构造了一个e j b 组件模型。 1 2 论文的内容组织 论文的内容组织结构如下: 第一章绪论。对论文的研究内容做了简要的介绍 第二章分布式对象技术。对分布式对象技术做了比较深入的分析和介绍。 然后介绍了当前的四种主流分布式对象技术 第三章面向企业信息系统的j 2 e e 。介绍了j 2 e e 的概况。对j 2 e e 技术的 体系结构、服务、核心a p i 组件以及x m l 与j 2 e e 的关系等做t n 入的研究 第四章j 2 e e 核心组件技术- - e j b 。对e j b 做了深入的研究和讨论。讨论 了e j b 的体系结构、分类、e j b 的设计过程以及e j b 的容器和事务 等内容。 第五章英语口语等级考试考试中心网站系统。以一个具体的j 2 e e 项目为 例子,在对系统做了分析后,详细的说明了一个j 2 e e 系统的开发 过程。 第六章总结与展望。对论文所做的研究内容做了一个总结,根据技术的发 展趋势,对下一步的工作做了一些设想。 一 墓堡堡壬查堂堡主兰垡堕窭 第2 章分布式对象技术 2 1 分布式对象的概念及特点 分布式对象技术以面向对象技术为其主要特征,同时包含了组件技术和网 络技术,它研究分布于网络不同节点上的对象如何进行协作,共同完成特定的 任务,其核心内容在于对象之间的互操作,尤其是异构环境中的互操作问题。 分布对象技术具有四个主要特点。 2 ,1 1 采用面向对象的计算模型,具有面向对象的特点 面向对象技术从现实世界中客观存在的事物( 即对象) 出发来构造软件系 统,并在系统构造中尽可能利用人类的自然思维模式,使用人类在逻辑思维中 经常采用的方法和原则,如抽象、分类、继承、聚合、封装等。采用面向对象 方法构造系统具有对系统理解与客观世界一致、结构清晰、易于管理、细节变 化不影响大局、易于扩充、可重用性强、维护方便、易移植等优点,因而,面 向对象方法在计算机领域中得到了极为广泛的应用。 面向对象技术将客观世界中的各种事务及其之间的关系都作为对象进行处 理,相互关联和相互作用的对象构成了我们周围的客观世界。每个对象都有自 己的内部结构和活动规律:多个具有相同性质的对象可以被抽象成一个对象类; 复杂的对象可以由简单的对象通过某种方式组合而成;不同对象之间通过消息 传递和相应服务进行关联和相互作用。 对象是个封闭的由数据和方法组成的集合体,对象的行为封装在该对象内, 只暴露其接口供其它的对象调用,其它对象无法修改其私有数据。通过封装和 继承,在很好的反映了客观世界的同时,很好的重用了原来的代码。 在面向对象的基础上,又引发了一系列的相应技术,例如面向对象编程 ( o o p ) ,面向对象分析( o o a ) ,面向对象设计( o o d ) 。 目前,分布式对象已经成为众多的研究者非常重视的领域,在这一领域中 取得的成果表明,很多传统的o o 思想已经不再适应于正在发展的分布式计算。 例如,常规的面向对象分析( o o a ) 和面向对象设计( o o d ) 方法可以直接应 用于分布式应用系统的程序设计时遇到了问题。传统的对象与访问该对象的程 武汉理工大学硕士学位论文 序只能存在于同一进程中,并且只有相关程序设计语言的编译器才能创建这些 对象并感知这些对象的存在,而外部进程无法了解和访问这些对象。这意味着 在常规的分布式客户服务器应用中,客户进程不可能直接访问异地服务进程中 的常规对象。分布式对象对传统的对象模型产生了很多方面的影响: 封装是把对象的数据和实现服务的细节隐藏起来,客户只能通过对象的接 口来访问对象的状态。封装是面向对象语言的一个重要的特征,也是所有的面 向对象系统所追求的一个主要目标。它所带来的优点也是分布式应用之所以采 用面向对象思想的一个主要的原因。分布式计算加强了面向对象的思想。在分 布式对象系统中,对象不仅要屏蔽普通对象的内容,还要屏蔽“系统是分布的” 这一特性。具体表现在,分布式系统平台应该向上层的应用和用户屏蔽服务的实 现细节,提供以下的透明性:位置透明性( 对象在不同位置的机器上) 、访问透 明性( 对象在不同类型的机器上) 、持久透明性( 对象所处的状态可以是活动的, 也可以是静止的) 、重定位透明性( 对象的位置已经变化) 、迁移透明性( 对象 已经迁移到其它的机器) 、失败透明性( 要访问的对象已经失败) 、事务处理透 明性( 与事务处理相关的调度、监控和恢复) 和复制透明性( 多个对象副本之 间一致性的维护) 。分布式透明性是面向对象系统的封装特性在分布式环境中的 延伸和发展,是分布式对象系统中的封装特性必须包含的内容。只有提供了分 布式透明性,分布式系统中的对象机制才能达到传统的对象系统所追求的主要 目标一屏蔽实现服务的细节。 对象的继承性可以提高软件的可维护性和可重用性,是公认的面向对象的 一个主要特征。但是,在分布式系统中实现对象继承的难度却非常大。实践证 明,即使能够实现,所需付出的代价也太高。在面向对象的系统中,可以把对象 分为两个组成部分:接口和对象实现;接口用于描述使用该对象所提供的服务,它 定义了与对象有关的数据的格式和用于管理这些数据的服务。多个对象可以共 享一个对象实现,其中每个对象都有自己的数据副本,而执行代码只有一份, 被所有对象共享。在面向对象的语言中,接口和对象实现往往由一个实体( 类) 来表示。在开放的分布式计算环境中,接口和对象往往被严格的分开,其中接 口由定义语言i d l 来描述,对象实现的方式则根据其体的编程语言而定。 在集中式的面向对象的语言中,由于所有的对象都存在于同一个地址空间 中r 即,所有的空间被一个操作系统管理) ,对象引用往往指向该对象所在的内存 地址指针来表示。在分布式系统中,用简单的内存地址指针来表示对象引用。 武汉理工大学硕士学位论文 分布式系统中的对象引用需要由一个较复杂的数据结构来表示,在设计这个数 据结构时,要充分考虑到出系统的分布所带来l 约- - l q n ,如网络协议、网络 地址和对象的迁移等。 2 1 2 对象分布于网络上,具有网络技术( n e t w o r k ) 的特点 分布式对象可以存在于网络的任何地方,可被远程客户应用以方法调用的 形式访问。至于分布式对象是使用何种程序设计语言和编译器所创建,对客户 对象来说是透明的。客户应用无须知道它所访问的分布对象在网络中的具体位 置以及运行在什么操作系统上,该分布对象与客户应用可能在同一台计算机上, 也可能分布在i n t e m e t 上的不同计算机上。分布对象具有动态性,它们可以在网 络e 到处移动。所以从这个意义上来说,把分布对象分布到网络上进行互相调 用是分布式计算期待的解决方案。 2 1 3 组件技术( c o m p o n e n t ) 近年来,组件和基于组件的软件工程( c o m p o n e n t b a s e do ns o f t w a r e e n g i n e e r i n g ) 是软件工程领域的热点。组件的概念实际上是从许多软件领域中产 生的,如面向对象编程,软件体系结构,分布式计算等。组件技术把架构从系 统逻辑中分离出来,可以用来分析复杂的系统,组织大规模的开发,而且使得 系统的造价更低。组件技术受到了人们的极大关注。下面给出了组件的几个典 型的定义: 定义1 :一个组件是一个系统中主要的,基本上独立的,可替换的部分。在 已定义的软件体系中执行清楚的功能。适合提供一序列接口的物理实现。 定义2 :一个可运行的软件组件是一个或多个程序的动态捆绑包。它作为一 个单元进行管理,通过文档化的接口进行访问。这个接口会在程序运行时出现。 定义3 :个软件组件是明确规定的接口和环境附属物所构成的组合体的单 元。它可以独立的被调用,并可以被第三方组合。 定义4 :个商业组件表示一个“自主的”商业概念或商业过程的软件实现。 它包含一个商业系统的可复用元素的概念,以及用来表示,调度,实现这个元 素所需的软件工艺。这些定义既有联系又有区别,它们的不同部分可以作为彼 武汉理工大学硕士学位论文 _ _ _ - _ - - - _ 一一- 一 此的补充。 分布式对象技术就是建立在组件概念之上的,组件可以跨平台,网络,应 用程序而运行,并能满足大量的企业要求:同时组件还应该支持分布式对象计 算,屏蔽网络的系统分布的复杂性并支持标准的a p i 。随着组件技术的发展,软 件开发的模式将得到极大的改变,专业的组件厂商将提供不同的组件供客户选 择,客户只需要一些相应的组件来构造自己的专业应用系统。这将为分布式系 统的构造提供强大的支持,因为分布式对象技术的目标就是实现系统的无缝连 接和软件组件的即插即用,分布对象的技术核心是解决对象跨平台的连接和交 换问题。 2 1 4 对象请求代理( o b j e c tr e q u e s tb r o k e r ) 支持客户访问异地分布式对象的核心机制称为对象请求代理。o r b 处于分 布对象技术的核心位置。o r b 是对象管理组织( o m g :o b j e c tm a n a g e m e n t g r o u p ) 在其c o r b a 规范中引入的概念。o r b 的作用是把客户发出的请求传给 目标对象,并把目标对象的执行结果返回给发出请求的客户。因此,可以说, o r b 提供了客户和明白对象之间的交换透明性,其中包含位置透明性的访问透 明性。 2 2 主流分布对象技术介绍 分布式应用设计中一个重要部分就是选择分布式组件模型。目前广泛采用 的分布式组件对象模型有o m g 的公共对象请求代理模型c o r b a 、w e b 服务 ( w e bs e r v i c e ) 技术、m i c r o s o f t 的分布式组件对象模型c o m + 和s u n 公司的 e j b ( e n t e r p r i s ej a v ab e a n ) 模型、 o m g 于1 9 9 0 年提出对象管理架构o m a ( o b j e c tm a n a g e m e n t a r c h i t e c t u r e ) 并在此基础上提出c o r b a ,c o r b a 目前最新的规范是3 0 。在j a v a 出现之前 c o r b a 一直是高端的分布式组件对象模型,并获得了众多平台的支持。如: n o v e l l 、u n 等。 c o m + 是m i c r o s o f t 公司的分布式组件对象模型,是c o m 在分布式环境下 的扩展,c o m 则是从o l e 发展而来的,组件间的互操作基于指针进行,十分依 6 茎堡堡兰盔堂堡主堂焦笙奎 赖操作系统的a p i 。目前c o m + 与w i n d o w s 紧密集成在起,仅限于m i c r o s o f l 提供的系统平台。 2 。2 1 c o m + 技术规范 c o m + 的本质是c o m ,但c o m + 不仅仅包括c o m 的组件技术,更注重于 分布式网络应用的设计与实现,已经成为m i c r o s o f t 系统平台策略和软件发展策 略中的一部分。c o m + 继承了c o m 几乎全部的优势。同时避免tc o m 实现方 面的一些不足。c o m + 紧紧地与操作系统结合起来,通过系统服务为应用程序 提供全面的服务。w i n d o w2 0 0 0 中第一次推出了c o m + ,每个新的子系统都是 作为一个c o m + 对象来实现。下面结合c o m + 技术的发展历史和c o m + 的原 理方面来了解这一技术。 22 1 1c o m + 规范的发展过程 c o m + 技术是从c o m 的基础上发展起来的,首先看看c o m 的发展历程。 c 0 m 是多种技术进步的结果,从最初的剪切板和动态数据交换( d d e ) ,到对 象的链接与嵌入( o l e l ) ,再到以c o m 为基础架构的o l e 2 技术( 可视化编程, o l e 拖放等) ,最后才是走出o l e 到舞台中央c o m ,图2 1 可以清楚看到这个 过程。 7 武汉理工大学硕士学位论文 图2 1c o m + 的发展 c o m 最初是作为桌面操作系统平台上的组件技术,主要为o l e 服务,但是 随着w i n d o w s n t 与d c o m 的发布,c o m 通过底层的远程支持使组件技术延伸 到了分布式应用领域,充分体现了c o m 的扩展能力以及结构模型的优势。 m t s ( m i c r o s o f t t r a n s a c t i o ns e r v e r ) 为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 统一起来,形成了真正适合于企业 应用的组件技术。图2 2 说明了从c o m 到c o m + 组件服务的发展。c o m + 不 仅继承了c o m 、d c o m 和m t s 的许多特性,同时也新增了一些服务,比如负 载平衡、资源管理、对象池、队列组件等。c o m + 新增的服务为c o m + 应用提 供了很强的功能,建立在c o m + 基础上的应用程序可以直接利用这些服务而获 得良好的企业应用特性。 武汉理= :大学硕士学位论文 2 2 1 2c o m + 对象的建立过程 尽管c o m + 对象事实上是c o m d c o m 对象,但在建立方式和生命周期方 面有很大的区别。当客户端建立远程c o m + 对象时,通过调用 c o c r e a t e l n s t a n c e e x 方法,此时客户端的s c m 便会搜寻要建立的c o m + 对象, 由于这个c o m + 对象存在于远程机器中,因此s c m 便会建立p r o x y ,让应用程 序通过p r o x y 调用远程的c o m + 对象。当调用到达远程机器后,远程机器的s c m 便同样开始搜寻这个c o m + 文档。在c o m + 中这个文档成为套件组件 ( p a c k a g e ) 。在找到实现c o m + 对象的组件之后,s c m 会激活c o m + 执行环 境的m t s e x e ,再由m t s e x e 加载实现m t s 对象的d l l 文档。当远程s c m 激活了m t s e x e 并且加载实现c o m + 对象之后,s c m 便会建立此m t s 对象 的s t u b 对象,以便接受远程的p r o x y 调用。当s t u b 接受了p r o x y 的远程调用之 后,m t x 会建立一个此m t s 对象的c o n t e x t w r a p p e r 对象,接受s t u b 的调用。 在真正地建立m t s 对象的实体样例,并由c o n t e x tw r a p p e r 调用m t s 对象的实 现方法以完成客户端的调用。最后再把结果通过s t u b 回传给客户端应用程序。 c o n t e x tw r a p p e r 对象基本上和p r o x y 对象一样,具有和真正的m t s 对象相同的 接口和方法,c o n t e x tw r a p p e r 就是m t s 对象的m i r r o r 。整个调用过程如图2 3 所示。 ( 1 )建立m t s 对象 9 武汉理工大学硕士学位论文 借助p r o x y 调用远程m t s 对象 使用r p c 远程s c m 检索实现c 0 m + 对象的p a c k a g e 立档 s c m 启动m t se x e 并且载八p a c k a g e 建立c o m + r 象的s t u b 并且接受远程p r o x y 的呼叫 建立c o m + 对象的c o n t e x tw r a p p e r 对象 建立真正的c o m + 对象 如果必要再建立m t s 对象相关 图2 ,3 客户端调用远程c o m + 对象的过程 从客户端调用远程c o m + 对象的过程可以看出,个c o m + 对象的生命 周期包含了建立( c r e a t i o n ) 、激活( a c t i v a t i o n ) 、执行结束( d e a c t i v a t i o n ) 和消 亡( d e s t r o y ) 四个阶段。只有当客户端真正调用c o m + 对象才会建立,此时便 会进入了c o m + 的建立时期。当c o m + 对象被建立之后,在调用它的方法之 前,c o m + 对象便进入激活时期,这时c o m + 的执行环境便会调用c o m + 对 象实现的a c t i v a t e 方法。a c t i v a t e 方法是c o m + 对象必须实现的i o b j e c t c o n t r o l 接口的方法,此时可以进行一些初始化工作,如建立数据库连接。当c o m + 对 象执行完毕以后,c o m + 执行环境会调用c o m + 对象实现d e a c t i v e 方法,此时 c o m + 对象便会进入结束阶段。最后,如果m t s 对象在执行方法完毕之后接着 调用o b j e c tc o n t e x t 的s e t c o m p l e t e 或s e t a b o r t 方法,那么m t s 对象便会从内存 中释放,这时c o m + 便进入消灭阶段。 2 2 1 3c o m + 对象提供的服务 1 ) 事务管理:事务管理应该是c o m + 提供的最重要的功能之一,事务管 理能够保证分布式应用系统中资料的一致性和完整性。如果没有事务管理的功 能,那么c o m + 分布式应用系统将无法负担执行企业需求的系统。c o m + 提供 的事务管理功能不但能够保护关系数据库中的资料,也能够保护其他来源的资 料,例如m e s s a g eq u e u e 、s h a r e dp r o p e r t y 、a d o 和o d b c 驱动程序等。 事务管理就是系统执行企业逻辑程序代码,而这些企业逻辑代码会把资料 1 0 2 3 4 5 6 7 8 9 武汉理工大学硕士学位论文 来源中的资料从一个永续存储状态改变成另外一个永续存储状态。实际就是把 一串程序代码当成一个单一的运算,这个单一的运算会改变数据的状态,而且 这个单一的运算必须符合所谓的a c d 标准( a t o m i c i t y 、c o n s i s t e n c y 、i s 0 1 a t i o n 和d u r a b i l i t y ) 。这也就是说,事务管理的运算对于所有数据的改变必须是完全成 功,并且把数据的状态成功的改变为另外一个状态。否则所有事务管理执行的 运算就必须把数据恢复成这个事务管理还没有执行之前的状态。在分布式计算 环境中,在c o m + 规范中,事务管理主要是使程序员对同质与异质数据库的数 据进行的控制遵循两阶段提交协议( t w op h a s ec o m m i t p r o t o c 0 1 ) 。 事务管理最重要的概念便是事务对象。按照事务的属性分类事务对象分为 需要事务( r e q u i r e sa t r a n s a c t i o n ) 、需要新的事务( r e q u i r e s a n e w t r a n s a c t i o n ) 、 支持事务( s u p p o r tt r a n s a c t i o n ) 和不支持事务( d o e s n o ts u p p o r tt r a n s a c t i o n ) 。c o m + 对象的属性决定了c o m + 对象会不会进入事务模式以及建立事务c o n t e x t 。当 事务模式激活之后,数据库服务器便会开始配置和锁定一些资源,所以如果没 有必要,应用系统不应该随便建立事务对象,这样可以减少系统的负载和系统 可以使用的资源,因此应该小心规划c o m + 对象的事务属性。 2 ) 安全性控制:在m t s 中提供两种安全性,自定义安全性和程序安全性。 在自定义安全性中,角色使核心可以利用角色指定声明授权和安全逻辑,不需 要对组件编程。程序安全性是指组件程序提供编程方式实现安全控制。环境对 象除了可以在i o b j e c t p r o p e r t y 接口中提供了两个成员函数实现简单的程序安全 性而且还实现了i s e c u r i t y p r o p e r t y 接口,通过此接固,对象可以获得创建对象 的s i d 以及当前调用此对象的安全标识符。c o m + 对m t s 安全模型进行了全面 的扩展,c o m + 允许开发人员和管理人员指定到方法一级的安全控制,不仅可 以对c o m + 包一级指定安全角色,还可以为接口、接口的每一个方法指定安全 角色。在自定义安全方面,c o m + 同m t s 差不多。 另外,c o m + 还提供同步服务、o b j e c t 、p o o l i n g 、队列组件、负载平衡和 内存数据库等其他服务。 2 2 2c o r b a 技术规范 2 22 1c o r b a 分布式技术规范 c o r b a ( c o m m o n o b j e c tr e q u e s t b r o k e ra r c h i t e c t u r e ,通用对象请求代理结 l l 武汉理工大学硕士学位论文 构) 是开放的、独立于供应商的规范,由对象管理组织( o m g ) 开发出来用于 支持应用程序通过网络工作( 既可以在同组织内部又可以是不同组织之间) 。 因为这种模型允许运行在各种体系结构和平台的分布式对象拥有互操作性,所 以客户端能够很方便的通过网络访问和执行各种对象。 22 ,2 。2o o r b a 的体系结构 c o r b a 规范的基本组成如图2 4 所示主要包括 c o r b a 结构 图2 4 c o r b a 结构 1 ) 对象请求代理o r b ( o b j e c tr e q u e s tb r o k e r ) ,是c o r b a 的核心。作为 一个软件组件,对象可以通过o r b 发出请求并接收响应。在c o r b a 中,所有 的通信都通过o r b 进行,因而无论一个对象是本地的还是远程的,对于与之进 行通信的其他对象来说都是等价的。c o r b a 并没有规定如何具体实现一个 o r b ,几乎每一个不同的产品都有其具体的o r b 实现。 2 ) 接口定义语言i d l ( i n t e r f a c ed e f i n i t i o nl a n g u a g e ) ,是用于描述对象 接口的一种高级符号语言。i d l 不涉及任何接口的细节实现,所有c o r b a 系统 都根据i d l 用某种特定的语言来实现。 c o r b a 为c 、c + + 、s m a l l t a l k 和j a v a 制定了规范,a d a 9 5 和c o b o l 的映射 规范也在制定中。i d l 描述通常以接口库( i n t e r f a c er e p o s i t o r y ) 的方式进行存 储。 3 ) 接口库( i n t e r f a c e r e p o s i t o r y ) ,其中包括了所有描述服务对象属性、操 武汉理工大学硕士学位论文 作、自定义数据类型及异常处理的i d l 定义。 4 ) 基本对象适配器b o a ( b a s i co b j e c t a d a p t o r ) ,描述了o r b 和服务器 端应用程序之间的接口。b o a 负责调度服务器端应用程序维护的对象,并与服 务对象交换消息。 5 ) 静态请求接口s i i ( s t a t i ci n v o c a t i o ni n t e r f a c e ) 。s i i 假设在编译时刻客户 对象能够明确了解服务对象的接口,即客户与服务器之间的关系应当是可知的、 固定的,服务接口的任何改变都会导致软件系统的重新编译。s i i 是由i d l 描述 的。 6 ) 动态请求接口d i i ( d y n a m i ci n v o c a t i o ni n t e r f a c e ) 是一组与服务器无关 的通用接l _ _ l 。与新服务对象及其行为相关的信息可以通过接口获得,客户程序 根据这些信息可以在运行时刻动态构造请求。d i i 使得开发智能化即插即用的软 件系统成为可能,但需要设计大量c o r b a a p i 调用,增加了软件的复杂度。 2 2 2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 干部培训开班仪式
- 公司治理学(第五版)课件 第七章 公司控制权市场:代理权争夺和收购与反收购
- 神秘礼物大班课件
- 创设情景的课件
- 汽车模具技术试题及答案
- 国考技术岗面试题及答案
- 辅警法制知识培训课件
- 辅警安全知识培训课件
- 建设银行2025成都市秋招笔试综合模拟题库及答案
- 2025年3D打印的建筑应用案例
- 2021-2025年高考化学真题知识点分类汇编之氮及其化合物
- 2025-2026学年人教版小学劳动技术二年级上册教学计划及进度表
- 2025西藏日喀则市高级技工学校招聘专业实训指导教师和后勤保障人员20人备考练习题库及答案解析
- 危重患者安全转运指南
- 2025中级经济师《建筑与房地产经济》章节千题
- 医院医患纠纷处理课件
- 2025-2026学年人教鄂教版(2024)小学科学三年级上册教学计划及进度表
- 手机行业知识培训课件
- 湖北省腾云联盟2026届高三8月联考物理(含答案)
- 教学资料管理制度
- 2025年清远市公安局清城分局招聘警务辅助人员考试试题(含答案)
评论
0/150
提交评论