(计算机软件与理论专业论文)构件间依赖关系的描述方法的研究和应用.pdf_第1页
(计算机软件与理论专业论文)构件间依赖关系的描述方法的研究和应用.pdf_第2页
(计算机软件与理论专业论文)构件间依赖关系的描述方法的研究和应用.pdf_第3页
(计算机软件与理论专业论文)构件间依赖关系的描述方法的研究和应用.pdf_第4页
(计算机软件与理论专业论文)构件间依赖关系的描述方法的研究和应用.pdf_第5页
已阅读5页,还剩75页未读 继续免费阅读

(计算机软件与理论专业论文)构件间依赖关系的描述方法的研究和应用.pdf.pdf 免费下载

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

文档简介

上海大学硕士学位论文 摘要 随着构件技术的发展,越来越多的企业以可重用的构件来搭建自己的核心信 息系统,这些构件由不同的开发者提供,能独立完成不同的功能。当业务需求增 加或发生变化时,把这些构件提供的服务进行不同的编排就可以快速地实现新的 流程,从而提供新的功能,以及时支撑业务的快速发展。 但是,一方面,这些构件通常是由不同的开发者在不同的环境下,以不同的 方法学开发完成的,如果软件的组成者不了解这些构件的动态依赖关系,很难构 建出健壮高效的软件系统;另一方面,这些构件往往部署在需要长期运行的环境 中,为核心系统提供着关键服务,在动态配置达到真正实用以前,一个软件系统 的改变,必定要中断运行,修改代码,重新编译,重新安装部署,这无论是从商 业利益还是从安全性角度来说都是不能接受的。 本文在面向图的编程模型的基础上,提出g o p 应用程序框架。这个框架 将整个分布式应用程序的体系结构以形式化的图形定义语言来描述。其中,构件 和图中的结点作映射,构件之间的交互通过图上预定义的图形操作原语实现。 o r b o o p 为用户提供了一系列的a p i 来实现图操作到构件操作的映射这样,通过 圈这样一个抽象层,使得应用对底层网络及分布式应用的中间件是透明的。 这个框架实现了体系结构和动态配置的统一。我们利用图的形象、直观和形 式化描述的准确、清晰的特点,把o r b g o p 的应用体系结构通过图定义语言来描 述,并可以通过图形操作原语动态的改变图的结构,即改变了应用的体系结构。 实现了用统一的方式描述体系结构和进行动态配置。 这个框架实现了设计描述和编程实现的统一。它通过定义图来实现对体系结 构的描述,把节点映射到构件,把边映射成构件之间的关系,把图形操作原语映 射成构件之间的操作。对于开发_ 个新的应用,可以用o r b g o p 对其进行基于 o r b c _ _ o p 图的较高级的设计,设计完成即可以利用o r b g o p 对图进行部署和运行, 用统一的方式进行设计描述和编程实现。 这个框架实现了静态依赖关系和动态依赖关系的统一。我们设计了一套描述 构件间依赖关系的x m l s c h e m a 定义,用来描述o r b g o p 阆各个构件之间的依 赖关系。我们还定义了一套针对图、结点和边的变化的事件,由o r b g o p 在依赖 关系发生动态变化时触发事件,并进行捕捉和处理。统一通过图这一抽象层进行 应用的依赖关系描述和动态更新。 本文对于以上的思想进行了详细的阐述,在基于c o r b a ( c o m m o n0 b j e c t r e q u e s tb r o k e r a r c h i t e c t u r e ) 的环境下实现了一个原型,并在原型的基础上进行 了一些测试。 v 上海大学硕士学位论文 关键字:构件,依赖关系,动态配置,c o r b a ,分布式应用,体系结构,图, 面向图的编程 v i 上海大学硕士学位论文 a b s t r a c t w i t ht h ed e v e l o p i n go fc o m p o n e n tt e c h n o l o g y , m o i ea n dm o r ee n t e r p r i s e sb u i l d t h e i ri ts y s t e mw i t hr e u s a b l ec o m p o n e n t s t h e s ec o m p o n e n t sw d r ed e v e l o p e db y d i f f e r e n tp r o g r a m m e r sa n dp r o d d i n gd i f f e r e n t 瓣w i c e $ s e p a r a t e l y o r c h e s t r a t i n gt h e s e r v i c e sp r o v i d e db yt h ec o m p o n e n t sc a ni m p l e m e n tn e wb u s i n e s sp r o c e s sa n ds a t i s f y n e w r e q u i r e m e n t t h e s ec o m p o n e n t sw e r ed e v e l o p e db yd i f f e r e n tp r o g r a m m e r , i nd i f f e r e n tc o n t e x t , w i t hd i f f e r e n tm e t h o d i ti sh a r d l yt ob u i l dr o b u s ta n de f f i c i e n ts y s t e mu n l e s st h e c o m p o n e n td e p e n d e n c yi sc l e a r l yd e s c r i b e d f u r t h e r m o r e ,t h e s ec o m p o n e n t sp r o v i d e k e ys e r v i c ef o rc o r es y s t e ma n dr u nl o n gt e r mn e c e s s a r i l y s o f t w a r er e c o n f i g u r a t i o n w i l lp r o d u c er u n n i n gi n t e r r u p t e d , c o d em o d i f i e d , c o m p i l i n ga n dr e - d e p l o y i n gb e f o r e t h ed y n a m i cr e c o n f i g u r a t i o nb & c o m e sp r a c t i c a l i ti sn o ta c c e p t a b l ef r o mt h ev i e wo f b u s i n e s sa n ds e c u r i t y t h i s p a p e rp u t s f o r w a r daf r a m e w o r kn a m e do r b g o pb a s e do nt h e g r a p h - o r i e n t e dp r o g r a m m i n gm o d e l 1 1 ”f r a n l e w o r kd e s c r i b e st h ea r c h i t e c t u r eo f d i s t r i b u t i n ga p p l i c a t i o nw i t hf o r m a lg r a p hd e f i n i t i o np r i m i t i v el a n g u a g e o r b g o p m a p sc o m p o n e n t t on o d eo f g r a p h 咖m p o n e n ti n v o c a t i o ni si m p l e m e n t e db yt h e p r e - d e f i n i t i o ng r a p ho p e r a t i n gp r i m i t i v el a n g u a g e o r b c k ) pp r o v i d e sa s e to fa p it o m a pt h eg r a p ho p e r a t i o na n dt h e c o m p o n e n ti n v o c a t i o n i t i st r a n s p a r e n tf r o mt h e a p p l i c a t i o nt ot h em i d d l e - w a r ea n d t h ep h y s i c a ln e t w o r kw i t ht h ea b s t r a c tg r a p hl a y e r t h ef r a m e w o r ku n i f o r m st h ea r c h i t e c t u r ea n dt h ed y n a m i cr e c o n f i g u r a t i o n w e u t i l i z e st h ef u t u r eo fg r a p h , s u c ha sv i s u a l ,i n t u i t i o n a la n df o r m a l ,t od e s c r i b et h e a r c h i t e c t u r ew i t hg r a p hd e f i n i t i o np r i m i t i v el a n g u a g e g r a p ho p e r a t i o np r i m i t i v e l a n g u a g e 啪c h a n g es 扛u c m r eo f g r a p hd y n a m i c a u y , s ot h ea r c h i t e c t u r ec h a n g e s t h ef r a m e w o r ku n i f o r m st h ed e s i g na n dt h ep r o g r a m m i n g o r b g o pd e s c r i b e st h e a r c h i t e c t u r ew i t ht h eg r a p h i c a ld e f i n i t i o n o r b g o pm a p st h en o d et ot h ec o m p o n e n t , m a p st h ee d g e t ot h e c o m p o n e n t r e l a t i o na n dm a p st h eg r a p h o p e r a t i o n t o i n t e r - c o m p o n e n ti n v o c a t i o n i no r d e rt od e v e l o pan e wa p p l i c a t i o n , o r b g o pd e s i g n s t h ea p p l i c a t i o nu s i n gg r a p h w h e nt h ed e s i g n i n gi s 缸i s h e 正o r b g o pw i l ld e p l o yt h e g r a p ha n d r u nt h eg r a p hd i r e c t l y t h ef r a m e w o r ku n i f o r m st h es t a t i cd e p e n d e n c ya n dd y n a m i cd e p e n d e n c y w e d e f i n e sas e to fx m ls c h e m as p e c i f i c a t i o nt od e s c r i b et h es t a t i cc o m p o n e n t d e p e n d e n c y w e a l s od e f i n e sas e to fe v e n tf o rt h ec h a n g eo fg r a p h , n o d ea n de d g e v 上海大学硕士学位论文 w h e nt h ed y n a m i cd e p e n d e n c yi sc h a n g e d , t h ee v e n ti st r i g g e r e d o r b g o pc a nc a t c h t h ee v e n ta n dh a n d l et h ec h a n g eo f d e p e n d e n c y t h ep a p e re x p l a i n st h i si d e ai nd e t a i l s ap r o t o t y p ew a si m p l e m e n t e db a s e do nt h e 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 ra r c h i t e c t u r e ) ,a n ds o m et e s t i n gw a sa l s o & x e c u t e dt ov e r i f yt h i si d e a k e y w o r d s :c o m p o n e n t , c o m p o n e n td e p e n d e n c y , d y n a m i cr e e o n f i g u r a t i o n , c o r b a ,d i s t r i b u t e dc o m p u t i n g ,s o f t w a r ea r c h i t e c t u r e , g r a p h , g r a p h - o r i e n t e d p r o g r a m m i n g 上海大学硕士学位论文 原创性声明 本人声明:所呈交的论文是本人在导师指导下进行的研究工作。 除了文中特别加以标注和致谢的地方外,论文中不包含其他人已发表 或撰写过的研究成果。参与同一工作的其他同志对本研究所做的任何 贡献均已在论文中作了明确的说明并表示了谢意。 签名: 本论文使用授权说明 本人完全了解上海大学有关保留、使用学位论文的规定,即:学 校有权保留论文及送交论文复印件,允许论文被查阅和借阅;学校可 以公布论文的全部或部分内容。 ( 保密的论文在解密后应遵守此规定) 签名:导师签名:日期: 上海大学硕士学位论文 1 1 研究背景 第一章绪论 随着软件规模和复杂度的增加,人们越来越多地利用构件来建造软件系统。 近年来构件技术有了较大的发展,比如a c t i v ex 控件,f _ 3 b ( e n t e r p r i s ej a v a b e a n ) ,c o r b a 构件模型( c c m ,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 c o m p o n e n tm o d e l ) 等,利用这些技术可以开发出单独部署运行、完成相对独立功 能的构件。一些以计算机系统为核心业务支撑系统的行业,比如金融、电信等, 其核心系统中越来越多地部署着备式各样的构件,这些构件由不同的开发者提 供,能独立完成不同的功能。在业务需求新增或发生变化时,可以通过把这些构 件提供的服务进行不同的编排来快速地实现新的流程,从而提供新的功能,以及 时支撑新的业务发展。 然而,这些构件通常是由不同的开发者在不同的环境下,以不同的方法学开 发完成的,如果软件的组成者不了解这些构件的动态依赖关系,就很难构建出健 壮高效的软件系统。一个由构件组成的软件系统中如果缺少构件间依赖关系的描 述,那么,有些依赖关系,尤其是隐式的依赖关系,就很难被发现,因而,这些 关系也不可能很好地被处理。我们经常发现一个系统中的某个构件由于缺少它依 赖的另一个构件,而系统又没有很好地解决这种依赖关系带来的问题,从而导致 整个系统无法正常运行。 在从系统设计向系统实现的演进过程中,现有开发工具和开发方法都关注在 构件本身的设计上。在系统的实现级别,软件系统最终都是一种或几种语言的代 码和可执行模块的集合,虽然它们有各种各样的名字,比如:过程、方法、函数、 对象、服务等,但本质上都是抽象的构件。大多数的语言都直接支持这些构件在 原语级别的交互操作,比如方法调用、消息传递等。但是,这些机制无法描述和 管理当今系统中的越来越多的复杂依赖关系。系统中的依赖关系描述散落在系统 的各个地方。由于工具和方法学的问题,开发者在设计的时候疏于把依赖关系描 述清楚,而是在开发完成后再来整理依赖关系,这就导致依赖关系难以被全面和 清楚地描述。 另一方面,这些基于构件的应用都是一些大规模的、复杂的多层分布式应用, 这些应用系统往往部署在需要长期运行的环境中,执行着关键任务。在动态配置 的研究出现以前,一个软件系统的改变,必定要中断运行,修改代码,重新编译, 重新安装部署,这无论是从商业利益还是从安全性角度来说都是不能接受的,所 上海大学硕士学位论文 以分布式系统的动态配置也越来越成为软件工程领域的研究热点。 基于以上原因,我们提出了o r b c j o p ( c o r b a g r a p h - o r i e n t e d p r o g r a m m i n g , 基于图的c o r b a 编程) 模型e l 】,该模型采用面向图的编程模型,用描述图的方 式将基于构件的系统的体系结构抽象出来,以图形操作原语实现底层构件间的调 用。在此模型基础上,我们提供了对构件依赖关系的描述,并可以实现对动态依 赖关系的变化的更新;有了对依赖关系的描述,o r b g o p 可以在图的方式的基础 上,更好地描述应用的软件体系结构;有了对动态依赖关系的更新,o r b g o p 可 以为动态配置提供良好的支持。 1 2 研究内容 o r b g o p 模型以形式化的图形定义描述应用程序的体系结构,支持较高级的 抽象编程,把程序员从底层的内部细节解放出来。该模型把分布应用程序的配置 描述成一张独立的逻辑图,并用一系列的图形操作原语来实现各个构件间的交互 和动态配置。本文以c o r b a 作为o r b g o p 的实现环境,以j a v a 语言作为开发 平台,设计和实现了原型,该原型系统统一了体系结构描述方法和动态配置描述 方法,实现了从设计描述到编程的无缝连接,用统一的方式来描述和处理构件间 的静态依赖关系和动态依赖关系。 本文进一步地重点研究了构件依赖关系。研究构件依赖关系的主要目标是建 立起一种描述构件依赖关系的模型,使它能清晰准确地描述构件的静态依赖关 系。同时,这个模型还应该能实现对动态依赖关系的更新,也就是向系统中增加 构件、从系统中迁移出构件和升级系统中的构件的时候,如何处理目标构件与相 关构件之间的依赖关系。我们提出了基于) 也的描述方法,结合事件机制,给 出了构件依赖关系描述的模型,并进行了原型实现。在实现的原型系统上,用几 个实际例子作测试,分析了系统性能。 由于构件松散的耦合方式和良好的可扩展性,该方法很容易扩展到基于其它 中间件技术的分布式软件,比如e j b ,n e t 等。 1 3 本文组织结构 第一章, 第二章, 第三章, 第四章, 绪论。本章介绍研究前景和研究内容。 软件体系结构和依赖关系的相关研究。本章介绍了软件体系结构领域、 动态配置领域和构件依赖关系领域的研究现状。 o r b g o p 设计与实现。本章介绍了o r b g o p 原型的实现方法,给出了 图形原语操作的定义,并提供图操作到构件操作映射的实现方法。 o r b g o p 模型中构件依赖关系的描述。本章尝试对构件依赖关系进行 2 上海大学硕士学位论文 了分类,在此基础上给出构件依赖关系描述的三个定义。基于这三个 定义,提出了用x m l 语言描述构件依赖关系的方法。 第五章,动态依赖关系的实现。本章在前一章静态依赖关系描述的基础上,进 一步讨论了动态依赖关系的更新,对实现机制进行了分析并给出了实 现方法。 第六章,应用实例。本章以a t m 机中两个帐户之间转帐的场景为实例,按第 四章和第五章讨论的方法,对其中涉及到的构件及其依赖关系的描述 和动态更新进行了相应的分析。 第七章,性能测试。本章对o r b c k ) p 模型的性能情况进行了测试,主要对图更 新和依赖关系更新所引起的依赖关系的变化处理进行了测试,并对测 试结果进行了分析和讨论。 第八章,总结与展望。本章对o r b c 幻p 的实现和依赖关系的分析研究进行了总 结,并提出了o r b g o p 的不足,展望了o r b g o p 未来的研究方向。 3 上海大学硕士学位论文 第二章软件体系结构和依赖关系的相关研究 o r b c 的p 主要是对基于构件的分布式应用进行抽象,提供图形化的体系结构 描述,把构件间的服务调用等抽象成图的操作原语。并且,可以利用图的动态特 性,对图结构和构件依赖关系进行动态的更新,也就是动态配置。因此,对 o r b c _ 的p 的研究涉及到构件、软件体系结构和构件依赖关系等研究领域,以下简 述这些领域目前的研究现状。 2 1 构件技术简介 2 1 1 构件和基于构件的软件工程 随着对软件工程研究的不断深入,软件开发技术的不断提高,应用程序开发 的模式也随之发生了变化。现在,新的程序设计和编写的方式使得开发人员可以 通过少量的代码编写,把已有的功能模块进行重用和组合来实现应用的需要,也 就是说只需要“组装”已有的功能模块就可以完成应用程序的开发工作了,这“已 有的功能模块”就是我们通常所说的“构件” 2 1 。软件开发变得类似于搭积木, 只需要把现有的,前人设计好的构件按我们的需求进行拼装即可完成。 软件构件是软件系统内可标识的、符合某种标准要求的组成成分,类似于传 统工业中的零部件。广义上讲,构件可以是需求分析、设计、代码、测试用例、 文档或软件开发过程中的其它产品。狭义来说,构件一般指对外提供一组规约化 接口的、符合一定标准的、可替换的软件系统的程序模块 2 1 。通常情况下是指后 者。 软件构件可分为可复用构件和不可复用构件。一个应用软件系统通常有三类 组成成分1 2 j : 1 ) 通用的基本构件,比如数据结构,用户界面元素等等。 2 ) 领域共性构件,指仅在该应用软件所属领域内经常出现的构件。 3 ) 应用专有构件,指仅在该应用软件中出现的特定构件。 可复用构件指前两者,通常情况下软件构件指可复用构件。 软件构件有两个特征: 1 ) 有用性。指构件完成的功能是有用的,也就是其功能可以出现在很多应 用软件中。 2 ) 易用性。指构件要有很好的封装,能很方便地使用它。一般来讲,构件 的封装要符合一定的标准。 4 上海大学硕士学位论文 软件构件是软件复用的基本单元,软件构件技术使得软件人员在应用开发时 可以使用其他人的劳动成果,为软件产业进行大规模专业化分工与合作奠定了基 础。为了更好地使用构件技术、更大程度地达到软件复用,c b s e ( c o m p o n e n t - b a s e ds o i t w a 北e n g i n e e r ,基于构件的软件工程) 得到了关注和发 展。c b s e 集软件复用、分布式对象计算、企业级应用开发等技术为一体,以软 件体系结构为组装蓝图,以可复用软件构件为组装模块,支持组装式软件的复用, 大大提高了软件生产效率和软件质量。为此国内外对于这一技术的研究正在不断 深入【2 】,同时大型的软件公司( 例如s u n 、m i c r o s o f t ) 及软件组织机构( 例如o m o ( o b j e c tm a n a g e m e n tg r o u p ,对象管理组织) ) 都推出了支持构件技术的软件平 台。 2 1 2 当前主要的构件标准规范 当前的构件标准规范主要有0 m 0 的c 0 r b a 、s u n 公司的j 2 e e ( j 虹硝2 e n t e r p r i s ee d i t i o n ) 和m i c r o s o f t 的n e tf r a m v o r k 。 c o r b a 规范由o m g 组织在基于众多开放系统平台厂商提交的分布对象互 操作内容的基础上,于1 9 9 1 年1 0 月推出,它定义了分布式应用程序开发的可复 用的框架标准,目的是为了能开发出具有标准面向对象接口的、可互操作的、可 重用的、可移植的软件构件。c o r b a 从最初的1 0 版本已经发展到了现在的3 0 版本。 c o r b a 规范是绝大多数分布计算平台厂商所支持和遵循的系统规范技术, 具有模型完整、先进,独立于系统平台和开发语言,被广泛支持的特点,已逐渐 成为分布计算技术的标准。c o b r a 标准主要分为3 个层次【3 】:o r b ( o b j e c t r e q u e s tb r o k e r ,对象请求代理) 、公共对象服务和公共设施。最底层是对象请求 代理0 r b ,规定了分布对象的定义( 接口) 和语言映射,实现对象间的通讯和 互操作,是分布对象系统中的“软总线”;在o r b 之上定义了很多公共服务,可 以提供诸如并发服务、名字服务、事务( 交易) 服务、安全服务等各种各样的服 务;最上层的公共设旌则定义了构件框架,提供可直接为业务对象使用的服务, 规定业务对象有效协作所需的协定规则。目前,c o r b a 兼容的分布计算产品层 出不穷,如m mc o m p o n e n tb r o k e r ,b o r l a n dv i s i b r o k e r ,i o n ao b i x 和o b a c u s 等。 为保持c o r b a 的商业中立性和语言独立性,在c o r b a 中使用了i d l ( i n t e r f a c ed e s c r i p t i o nl a n g u a g e ,接口描述语言) 编写对象接口,使得所有 c o r b a 对象以同一种方式被描述,然后由编译器把d l 编译成由本地语言 ( c c + + 、c o r b a 或j a 、,a 等等) 写的s t u b ( 桩) 和s k e l e t o n ( 框架) 。i d l 不 同于其他的面向对象程序设计语言,它只能定义类或方法,不能用它具体实现所 5 上海大学硕士学位论文 定义的类或方法。c o r b a 以m l 的形式实现了对象内部细节的完整封装,从而 降低了软件系统的复杂程度,增加了软件功能的可重用性。并且,c o r b a 独立 于语言,这就使得软件开发人员可以在较大范围内共享已有成果。 o r b 是一个c o r b a 产品必须提供的、遵从c o 砌 a 规范的应用程序,没 有o r b 程序,c o r b a 应用程序是无法工作的。o r b 最显著的功能就是对应用 程序或其他o r b 的请求予以响应,实现底层细节对软件开发者的透明性。在 c o r b a 应用程序运行期间,o r b 可能被请求做许多不同的事情,包括查找并调 用远程计算机上的对象、负责不同编程语言之间的参数转换( 如c + + 到j a v a ) 、 用动态方法调用激活远程对象等等。 盈2 1 0 r b 结构 图2 1 所示为一个独立的o r b 的结构,箭头说明o r b 的调用关系。为了提 出一个请求,客户端可以使用d i i ( d y n a m i c i n v o c a t i o n i n t e r f a c e ,动态调用接口) 或者客户端的s t u b 程序,甚至直接和o r b 交互。对象实现( o b j e c t i m p l e m e n t a t i o n ) 通过i d l 静态骨架( s t a t i cs k e l e t o n ) 或d s i ( d y n a m i cs k e l e t o n i n t e r f a c e ,动态骨架接口) 的调用来接受请求。 图2 - 2 说明了一个r m i ( r e m o mm e t h o di n v o c a t i o n ,远程方法调用) 的过程。 为了调用远程的对象实例,客户端首先获取它的对象参数。客户端在进行远程请 求时使用与本地请求相同的代码,只不过用对象参数代替了远程实例。当o r b 检测对象参数并发现目标是远程对象的时候,它会调度这些参数,把请求转移到 网络上,通过i i o p 协议( i n t e m e t i n t e r - o r bp r o t o c o l ,互联网内部对象请求代理 协议) 连接到远程对象的o r b 上。o r b 可以从对象参数中判断出目标对象是远 程的,客户端却做不到这一点。当客户端发出请求时,对象参数不用去分辨目标 对象的位置,这保证了对象位置的透明性。c o r b a 的这些基本原理简化了分布 式应用程序的设计。 c o r b a 的种种特点推动了分布式多层软件体系结构的发展。目前,c o r b a 技术在银行、电信、保险、电力和电子商务领域都有广泛的应用【4 j 。 6 上海大学硕士学位论文 j 2 e e 规范是s u n 公司为了推动基于j a v a 的服务器端应用开发,在1 9 9 9 年 推出的基于j a v a 2 技术的分布式应用开发框架,它的目标是提供平台无关的、 可移植的、支持并发访问和安全的、完全基于j a v a 的开发服务器端构件的标准。 在j 2 e e 中,s u n 给出了完整的基于j a v a 语言开发面向企业分布式应用的 规范。其中,在分布式互操作协议上,j 2 e e 同时支持r v l l 和o p 。而在服务器 端分布式应用的构造形式,则包括了j a v a s e r v l c t 、j s p ( j a v a s e r v e r p a g e ) 、e j b 等多种形式,以支持不同的业务需求。而且j a v a 应用程序具有跨平台的特性, 使得j 2 e e 技术在分布式应用领域得到了快速发展。 j 2 e e 不仅仅简化了可伸缩的、基于构件的服务器端应用的复杂度,更重要 的是依据j 2 e e 规范,不同的厂家可以实现自己的符合j 2 e e 规范的产品。j 2 e e 规范,是众多厂家参与制定的,它不为s u n 所独有,并且支持跨平台的开发。目 前许多大的分布计算平台厂商都公开支持与j 2 e e 兼容的技术。 e j b 是s u n 推出的基于j a v a 的服务器端构件规范j 2 e e 的一部分。e j b 推 出之后得到了广泛的发展,已经成为应用服务器端的标准技术。尤其是s u n 推出 的e j b 3 0 技术规范,是在j a v ab e a n 本地构件基础上,吸取了e j b 2 0 发展过程 中的一些经验教训,并采纳了h i b e r n a t e 等开源o r mc o b j e c t r e l m i o n m a p p i n g , 对象关系的映射) 工具的优秀设计,发展而成的的面向服务器端的分布应用构件 技术。它基于j a v a 语言,提供了基于j a v a 二进制字节代码的重用方式。e j b 给出的系统的服务器端分布构件规范包括了构件、构件容器的接口规范、构件打 包和构件配置等一系列标准。e j b 技术的推出,使得j a v a 用基于构件方法开发 服务器端分布式应用成为可能。 可以从企业应用和分布式计算两个角度来理解e j 8 。从企业应用多层结构的 角度看,e j b 是业务逻辑层的中间件技术,与本地的j a v a b g a l l s 不同,它提供 了事务处理的能力,自从三层结构提出以后,中间层,也就是业务逻辑层,是处 理事务的核心。中间层从数据存储层分离,取代了原来存储层的大部分功能。 从分布式计算的角度看,e j b 像c o r b a 一样,提供了快速开发分布式应用 的技术基础,提供了对象之间的通讯手段。从目前的i n t e m e t 应用开发来看,e j b 和s c r v l e t 、j s p 一起已经成为新一代应用服务器的技术标准。三者的关系可以描 7 上海大学硕士学位论文 述为:e j b 中的s e s s i o nb e a n 维护会话,e n t i t yb e a n 处理事务,m e s s a g eb e a n 处 理消息:s e r v t e t 负责与客户端通信,访问f j b ,并把结果通过i s p 产生页面传回 客户端。 总的来说,j 2 e e 的特点在于跨平台性和丰富的应用服务器厂商的支持。目 前,大型应用的核心应用服务器基本上还是小型机,由于不象p cs e r v e r 一样有 较统一的架构和标准,不同的厂商的小型机从c p u 、整机架构到操作系统都不 尽相同。而以j a v a 开发构件,能够方便地做到跨平台运行,应用系统可以配置 到包括w i n d o w s 平台在内的任何服务器环境中去。 n e tf r a m e w o r k 是m i c r o s o f t 推出的一种新的分布式计算框架,它在 m i c r o s o f t 原来的分布式计算框架d n a 2 0 0 0 之上作了重大改进,完全是一个全新 的平台,目前最新的版本是3 o ,是m i c r o s o f t 新一代操作系统的w i n d o w sv i s t a 的开发基础,它简化了在高度分布式i n t e m e t 环境中的应用程序的开发。 在n e tf r a m e w o r k 中包含:- 个称之为公共语言运行库( c l r ,c o m m o n l a n g u a g er u n t i m e ) 的部分,它是n e tf r a m e w o r k 的基础。运行库是一个在程 序执行时管理代码的代理,它提供核心服务,如管理内存、线程执行、代码执行、 代码安全验证、编译以及其他系统服务等,而且还强制实旖严格的类型安全、以 及其它的措施,以确保代码的安全性、可靠性和准确性。c l r 相当于j a v a 的虚 拟机的概念,在c l r 中运行的是由源代码编译而成的m s i l ( m i c r o s o f t i n t e r m e d a t el a n g u a g e ,微软中间语言) 代码,相当子j a v a 的字节码的概念。n e t 把在c l r 中运行的代码称为托管代码,在c l r 之外运行的代码称为非托管代码。 n e tf r a m e w o r k 类库是一个与c l r 紧密集成的可重用的类型集合。该类库 是面向对象的,所有的a p i 都是有层次结构的命名空间的。托管代码可以使用 类库中提供的各种强大功能,这不但使n e tf r a m e w o r k 类型易于使用,而且还 减少了学习n e tf r a m e w o r k 的新功能所需要的时间。此外,第三方构件可 与n e t f r a m e w o r k 中的类无缝集成,数据库、x i v i l 、w e b 服务、w i n d o w s f o r m 和w e bf o r m 都是n e tf r a m e w o r k 类库提供的功能。 n e t f r a m e w o r k 还拥有语言独立的特性。n e t 定义了c l s ( c o m m o n l a n g a u g e s p e c i f i c a t i o n ,公共语言规范) ,c l s 提供可以满足大多数应用程序所需的一套基 本的语言功能。任何语言只要符合c l s ,就可以调用n e tf r a m e w o r k ,就可以写 出和其他对象完全交互的对象,而不管这些对象是以何种语言实现的。目前已经 有第三方提供的p y t h o n 的n e t 实现,换言之,我们可以以p y t h o n 来编写n e t 应 用系统。 最重要的是,n e t 还是一个w e b 服务的平台。复杂的多层结构系统具有能 够大幅度提高生产力、相对紧密耦合的特点,而w e b 概念具有面向消息、松散 耦合的特点。这= 者有机地结合在一起,极大地拓展了应用程序的功能,并实现 8 上海大学硕士学位论文 了软件的动态提供。n e t 正是根据这种w e b 服务原则而创建的,微软目前正着 手进一步加强这个基本结构,以便通过n e t 平台来实现这种新型的w e b 服务。 2 1 30 r b g o p 实现平台的比较和选择 在我们的研究中,需要选择一种分布式平台,并在此之上实现o r b g o p 模型。 虽然这三种平台之间有很大的相似性和互补性,但是因为其形成的历史背景和商 业背景有所不同,各自有自己的侧重和特点。 c o r b a 是分布式异构环境下面向对象软件的可重用、可移植、可互操作的 体系结构。其目的是在分布及异构计算机环境下为应用软件的开发提供一个公共 的框架,使开发的软件既面向对象又具有可重用、可移植及可互操作等特点。 c o 舳i a 为可移植的、面向对象的分布式计算应用程序提供了不依赖于平台的编 程接口和模型,它不依赖于编程语言、计算平台、网络协议的这一特点,使德它 非常适合于分布式系统的应用程序开发。j 2 e e 和n e t 在很大程度上都借鉴了 c o r b a 的设计方式,也可以说是从不同的角度和不同的程度上对c o r b a 的简 化和扩展,其中n e tf r a m e w o r k 目前还没有真正脱平台的实现。所以,我们决 定选用c o i u j a 作为。悯p 的实现平台。当然,我们的最终目标是把o r b g o p 模型扩展到基于其它标准的分布式应用中 2 2 软件体系结构的研究进展 目前,国内外对于软件体系结构描述的研究大致可分为基于u m l ( u n i f i e d m o d e l i n gl a n g u a g e ,统一建模语言) 的软件体系结构描述方法,基于特定项目软 件体系结构描述语言和基于专有语言的描述方法。 基于u m l 的研究主要包括基于u m l 的体系结构研究及在u m l 提供的软 件体系结构模型基础上的扩展。【5 】对u m l 的产生和主要功能进行了描述,在此 基础上,提出了一种名为c o n c e m b a s e 的工具,它是一种基于u m l 规范的体 系结构描述方法。运用其中随附的工具,可以使其对体系结构的描述转变为一种 a d l ( a r c h i t e c t u r ed e s c r i p t i o nl a n g u a g e ,体系结构描述语言) 的形式,称之为 结构化体系结构描述语言( s a d l ,s t r u c t u r a la r c h i t e c t u r ed e s c r i p t i o nl a n g u a g e ) 。 基于图形化的软件体系结构描述方法则更多的是利用了图形化的直观,易 懂,描述简单方便的诸多特征,这些特征都适用于分布式软件体系结构的描述。 【6 】用图形动画的方法建立起对现有模型的一种表述方法,它采用一种名为t t m e d a u t o m a t a 的形式语言作为动画的语义框架,并采用l t s ( 1 a b e l e dt r a n s i t i o ns y s t e m , 标记转换系统一) 作为动画产生的规则。通过这种描述方法,可以对模型进行形 象地表示,直观地描绘构件之间的作用机制。 9 上海大学硕士学位论文 有研究者在某一特定的软件系统开发项目的基础上,提出了专用性质的软件 体系结构的描述方法,这方面的研究虽然无法直接应用于其它项目,但其思想却 值得借鉴。 7 】提出了一种基于智能体的体系结构描述语言a - a d l 通过实例阐 述了a a d l 的动态体系结构建模机制。将a - a d l 与其他a d l 语言进行了比较, 证实了它在描述动态体系结构方面的优势。 相对于特定的软件体系描述语言,通用的体系结构描述语言一直备受关注。 有研究者认为m i l ( m o d u l ei n t e r c o n n e c t i o nl a n g u a g e s ,模块互联语言) 虽然和 a d l 有很大区别,但它和a d l 有交叉之处,也可用于描述软件的体系结构。 m i l 最早于1 9 7 5 年提出,文献 8 】分析了m i l 在描述软件体系结构方面的应用。 作者首先讨论了在开发小型程序和大型组合程序的过程中,对软件体系描述有不 同的需求,对于小型的程序来说,普通的语言就足够对其进行描述,而对于大型 的程序来说,必须采用类似于m i l 这样的规范描述语言,才有利于把程序的不 同模块加以拼接。m i l 的核心思想是将软件中的所有结构单位根据其功能的不 同,划分为不同的模块( m o d u l e ) ,模块是构成软件体系结构的基本单位,它既 向其他模块提供某种( 信息) 资源,又向它们提出某种( 信息) 资源的需求。模 块之间围绕资源的相互交互形成了整个系统结构。“m i l 提供了规范的软件体系 描述的语法,可以定义程序中不同的模块,以及它们之间的交互方法,从而提高 了软件的易读性,并且有利于软件的维护” 9 1 。 还有一些其他方面的研究也可用于软件的体系结构描述。例如,c l ( c o n f i g u r a t i o nl a n g u a g e ,配置语言) 是一种描述动态配置系统的语言。所谓的 动态配置系统,是指在系统运行的过程中,无需对程序的运行加以中断,而是在 程序正常执行的情况改变它的体系结构【l 田。为了适应这种比较特殊的需要,在 c l 中定义了一系列的概念,如模块,端口,实例,连接,系统配置等等。软件 构件被划分为单独的和组合的两种类型。每个构件通过端口来实现其同外部环境 的交互。所有通过端口实现互联的构件群体构成整个软件系统的配置。c l 模型 可以对有动态配置需求的软件体系结构提供有效的支持。 a d l 是软件体系结构描述语言,可以用来描述软件的体系结构,目前学术界 已提出的其他a d l 还有很多种,如

温馨提示

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

最新文档

评论

0/150

提交评论