已阅读5页,还剩49页未读, 继续免费阅读
(计算机应用技术专业论文)软构件系统的演化模型研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 软件复用是当前软件工程研究的重要问题之一,被认为是解决软件危机的有 效途径。近年来,面向对象的构件化软件技术蓬勃发展,国际上出现了像c o r b a c o m ,e j b 等构建构件系统的标准和技术,基于构件的软件开发( c b s d ) 也日益受 到重视。 本文对现有构件系统进行分析研究,在现有构件技术的基础上提出了基于分 层有向图的构件模型( l d g ) ,给出了该模型的设计方案。在此基础上,研究了 构件的演化过程,包括构件的建立,组装,升级和卸载。给出了该方案的服务模 型的设计,以及服务模型支持构件演化的方法。 最后对模型进行了验证。通过验证,我们可以看出,构件模型能很好的支持 构件的演化,能够解决软件开发过程中重用性,增量开发和需求变化等问题。 关键词:构件演化模型c b s ds o a a b s t r a c t s o f tr e u s a b i l i t yi so n eo ft h em o s ti m p o r ti s s u e s ,c o n c e r n i n gt op r e s e n ts o f t e n g i n e e r i n gr e s e a r c h ,w h i c hi sc o n s i d e r e dt ob ea l la p p r o a c ht os o l v et h es o f tc r i s i s r e c e n t l y , o b j e c t e do r i e n t e dc o m p o n e n ts o f t w a r et e c h n o l o g yb e c o m em o r ea n dm o r e p o p u l a ra n db o o m ,l o t so fc o m p o n e n ta r c h i t e c t u r ea n dt e c h n o l o g yh a v eb e e n p r o m o t e da n dd e v e l o p e d ,c o m p o n e n tb a s e ds o f t w a r ed e v e l o p m e n tb e c o m em o r ea n d m o r ea t t a c h e di m p o r t a n c et o a r t i c l ep l u n g ead e e pi n s i d ei n t ot h ec u r r e n tc o m p o n e n t s y s t e ma n dt e c h n o l o g y , g i v e nal a y e rd i r e c t e dg r a p h i cm o d e lo fc o m p o n e n ts y s t e m ( l d gm o d e l ) ,p r e s e n t t h ed e f i n i t i o n g i v e nac o m p l e t er e v i e wo ft h ee v o l v e m e n to ft h ec o m p o n e n ts y s t e m b a s e do nt h el d g m o d e l ,c o m p o n e n td e v e l o p i n g ,i n s t a l l i n g ,u p d a t i n ga n du n i n s t a l l i n g a r ei n c l u d e d t h es e r v i c em o d e lo f t h ec o m p o n e n ts y s t e mi sa l s ob e i n gr e s e a r c h e d ,a s w e l la st h ew a yh o ws e r v i c em o d e lc o n t r i b u t et ot h es y s t e me v o l v e m e n t v a l i d a t i n gw a sb e i n gg i v e nl a s t l y f r o mt h er e s u l to ft h ee x a m p l e ,w ec a l l c o n c l u d et h a tt h el d gm o d e lc a l l n i c e l y n o u r i s ht h e s y s t e me v o l v e m e n t , c o n s e q u e n t l ye n h a n c e t h es o f t r e u s a b i l i t y , s u p p o r t t h ei n c r e m e n t a ls o f t w a r e d e v e l o p m e n ta n dm a k es o t t w a r em o r ef l e x i b i l i t y k e y w o r d s :c o m p o n e n t e v o l v e m e n tm o d e lc b s ds o a i i 图表目录 表3 - 1 参考模型的数据项1 7 表3 - 2 版本范围举例2 4 表3 3i o c 模式的三种形式 3 3 图2 1e c l i p s e 平台体系结构9 图2 - 2e o s 平台体系结构l o 图2 - 3 层次模型1 2 图2 - 4f l p 模型1 3 图2 - 5 基于分层有向图的模型1 4 图3 - 1 构件打包格式1 5 图3 - 2 构件的部署过程1 8 图3 3 构件装载类的过程2 0 图3 - 4 构件的匹配过程一2 2 图3 - 5 构件状态变迁示意图2 5 图3 - 6 构件启动过程一2 6 图3 7 构件停止过程2 7 图3 - 8 构件更新过程2 8 图3 - 9 构件卸载过程2 9 图3 1 0e c l i p s e 的扩展模型示例3l 图3 - 11 服务注册模型示例 图4 - 1 基于构件的开发过程示意图 图4 - 2 配置文件d e m o p r o p e r t i e s 图4 3 启动界面 图4 - 4 增加h t t f 服务 图4 5 启动h t t p 服务 图4 - 6 启动h t t p 服务 图4 7 启动h t t f 客户构件 图4 8h t t ps h e l l 的响应, 图4 9 构件列表演示 图4 1 0 修改h 1 t ps h e l l 构件 图4 1 1 修改配置文件 图4 1 2h t t ps h e l l 构件的升级 图4 1 3 上传s h e l ls e r v i c e 构件包一 图4 1 4 构件的在线升级一 图4 一1 5 构件的在线升级完成 图4 1 6 升级前的列表信息, 固4 1 7 升级后的列表信息 图4 1 8 停止s h e l l t u i 构件一 图4 - 19 卸载s h e l lt 1 j i 构件 图4 2 0s h e l l t u i 构件卸载后的构件列表 图4 - 2 1 进入构件部署 图4 - 2 2 构件在线部署界面 图4 - 2 3 构件在线部署完成, v ”卯”如站勰拈弦加钉们北观鸵们姐舛盯 第1 章引言 1 1 选题目的和意义 第1 章引言 以计算机、软件和通信技术为主导的信息技术革命,深刻地改变着我们生活, 在这场革命中,信息技术已成为经济发展的关键因素。软件是信息的收集、处理 和服务是信息产业的核心内容,软件产业的发展是推动信息技术革命前进的主要 动力。 传统软件采用手工作坊式的软件开发方式,远远不能满足软件产业发展的需 要,由此引发了软件危机,具体的说,表现在: 1 软件开发成本高,软件生产者对软件开发成本不能预先准确地做出判 断,开发成本往往超出预算。 2 开发出来的软件不能很好地满足需求,需求变化常常引起软件产品的大 量修改,费时费力。 3 ,在软件开发周期的压力下,软件产品的质量不能得到保证。 4 每个软件产品开发出来以后,其可维护程度非常之低,常常是由于维护 成本过高,企业不得不选择丢弃原来的系统,重新开发,造成大量浪费。 随着软件产业的发展和计算机网络的普及,软件在规模、复杂度、功能上的 都有了极大增长,迫使软件要向异构协同工作、各层次上集成和易于重用的工业 化道路上前进。只有拥有先进的工程化、工业化生产技术和手段,才能提高软件 生产率和软件产品质量。 构件化集成希望生产的软件类似于硬件一样,可用不同的标准构件拼装而 成。具体地表现在:提供一种手段,使应用软件可用预先编好的、功能明确的产 品部件定制而成,并可用不同版本的部件实现应用的扩展和更新;利用模块化方 法,将复杂的难以维护的系统分解为互相独立、协同工作的部件,并努力使这些 部件可重用;突破时间、空间及不同硬件设备的限制,利用客户和软件之间统一 的接口实现跨平台的互操作。 软构件技术要解决的核心问题是从广泛的意义上,实现软件的各个部分之间 的透明协作,同时很好的支持软件的各个部分独立发展和演变。一套好的软构件 模型能很好的支撑软件的演化,以最小的代价实现软件的随需而变和最大限度的 成果共享。 成都理工大学硕士学位论文 1 2 国内外现状 1 9 6 8 年,北大西洋公约组织( n a t o ) 在西德召开了第一次软件工程会议, 分析了软件危机的局面,研究了问题的根源,第一次提出了用软件工程的方法来 设计软件,主要应用工程的方法和技术研究软件开发与维护的方法、工具和管理。 m c l l r o y 在会议上提出了“软件组装生产线”的思想。 随后国外出现了很多这方面的研究,如c a r n e g i em e l l o n 大学的软件研究院 ( s z i ) 对现货组件进行了教全面阐述 t r i c i a0 b e r n d o r f ,2 0 0 5 c a p tg a r yh a i n e s , 2 0 0 5 1 ;a l l e n p a n f i s h 等人提出了一种构件概念模型,对构件的有效性和安全性进 行了阐述,给出了构件发布策略 a l l e np a r r i s h ,2 0 0 1 】;z a r e m s i k i 等人给出了构 件严格匹配的形式定义 z a r e m s i k i ,1 9 9 7 ;s a j j a dm a h m o o d a 等人对构件系统的各 个方面进行了阐述 s a j j a dm a h m o o d a ,2 0 0 5 ,对构件模型所面临的挑战,特别是构 建组装和构建安全性作了较为细致的阐述。 近年来,随着需求的增长,国内也出现了大量构件研究成果,如北京大学杨 芙清等人对软构件复用,特别对青鸟系统进行了详细具体的分析,阐述构件库管 理的各个方面晒芙清,梅宏,李克勤1 9 9 9 ;黄罡对构件系统的概念和构件模型进行 了全面探讨,给出t t t t 多有价值论述黄罡,2 0 0 4 ;在构件系统演化性方面,梅宏 等人阐述了构件实现体的动态加载及卸载、构件实例的状态迁移和请求缓冲控制 机制,对构件处于在无实例态、缓冲态、活动态、会话态、执行态分别分析构 件实例的状态迁移问题【王晓鹏,王千祥,梅宏,2 0 0 5 】;王映辉等人定义了构件和连 接件,使用数学的方法( 邻接矩阵与变换) 描述了体系结构演化的过程,对静态 和动态演化的波及效应进行了研究【王映辉,王立福,2 0 0 5 ;叶新林等人提出了采用 x a d l2 0 支持演化与重配置的实现机制,并结合基于c o m d c o m 的构件组装 工具给出了支持演化与重配置构架描述的实例叶新林,赵文耘,蒋韬,2 0 0 4 。 目前国内许多大工程、大项目都纷纷采用这项技术,如8 6 3 计划近一半的项 目、通信方面许多大项目的投标、金融行业的业务处理系统等,都在朝这个方向 走。上海构件库和北京公共软件构件库,是出现较早,发展较为成熟的两大构件 库,是推进中国软件构件化的先行军,它们的互联成功为国家构件库的建设迈出 了第一步。中科院软件所软件工程技术研究中心,在首席研究员冯玉琳博士带领 下,对构件技术深入研究,硕果累累。其中作为知识创新工程的成果的信息化基 础软件核心平台是其代表。普元把崭新的互联网相关技术与先进的构件复用技术 以及可视化开发技术完美地结合起来,创造了一套具有国际领先水平的面向构件 的互联网的应用基础平台e o s 。 国外早就将构件技术应用到实践中去。美国国防部高级研究项目署建立了 “用于易修改的可靠系统的软件技术”项目,研究领域特定的、基于复用的软件 第l 章引言 工程技术,并建立了三个示范工程项目。美国空军电子系统中心与美国航空航天 局合作建立了“可复用防务软件的中央档案库”项目,以促进国防项目中的软件 复用。c o r b a 技术提供的解决方案是将遗留系统包装为构件,以o r b 为“软 总线”集成新老系统。由摩托罗拉发起的著名的“铱星工程”中,最终采用了 o r b 产品作为软件构件之间的互连框架。产品线技术和现货组件技术是构件系 统广泛采用的两种技术。 1 3 本文研究目标 从抽象程度来看,面向对象技术已达到了类级重用( 代码重用) ,它以类为封 装的单位,这样的重用粒度还太小,不足以解决异构互操作,达到效率更高的重 用。 软构件将抽象的程度提到一个更高的层次,它是对一组类的组合进行封装, 并代表完成一个或多个功能的特定服务,也为用户提供了多个接口。整个构件隐 藏了具体的实现,只用接口提供服务。这样,在不同层次上, 构件均可以将底 层的多个逻辑组合成高层次上的粒度更大的新构件,甚至直接封装到一个系统, 使模块的重用从代码级、对象级、模块级到系统级都可能实现,从而使软件像硬 件一样,能任人装配定制而成的梦想得以实现。 目前,各种软件公司正在开发各种中间件产品或领域构件,如f o r m 操作构 件、查询统计构件以及报表生成构件等等,这些领域构件针对特定的领域开发, 往往采用特定的模型实现,使用者往往需要花费大量的学习成本才能掌握和使用 它们。 作者通过对现有构件系统进行学习,分析和研究,在现有构件技术的基础上 提出了基于分层有向图的构件模型( l d g ) ,给出了该模型的设计方案。在此基 础上,阐述了构件的演化过程,包括构件如何建立,多种多样的构件如何组装到 系统中,构件在网络环境下的升级,以及构件卸载后系统的自动重构等等,并且 给出了该方案的服务模型的设计,以及服务模型支持构件演化的方法。 作者希望通过对构件系统的分析和研究,建立一种轻量级的,易于学习和实 现的,支持多种演化方式的,通用的软构件模型。由于水平有限,而构件模型又 是相对复杂的一种软件模型,该模型必然存在很多有待改进的地方,作者希望通 过本文为面向通用共享型软件产品的开发提供有益启发。 成都理工大学硕士学位论文 1 4 本文的结构 第一章,先对软构件系统产生的原因,构件技术发展的现状作了简要阐述, 提出了本文的研究目标。 第二章,对构件技术的相关概念进行了阐述,分析了构件技术的发展过程, 对当前主要的构件技术,如c o m 、c o r b a 和j 2 e e 进行了简要分析。然后针对 现有的两个比较典型的构件系统,阐述了他们的体系结构,参考他们的提出本文 研究的参考体系结构和系统模型。 第三章,在此基础上,提出了一种新的构件系统的详细定义,详细分析了它 的演化过程,包括静态模型、动态加载、动态组装和在线升级。阐述了构件之间 的交互方法服务模型。 第四章,通过一个参考系统,说明了软构件的开发方法,同时对模型进行了 验证。 结论部分对论文进行了总结,并提出了模型的若干改进方向。 4 第2 章构件技术介绍 2 1 构件的概念 第2 章构件技术介绍 构件技术在最初时更多是作为一种思想存在,进而才在一些关键的环节上发 展出解决阀题的技术分支。构件的存在某种程度上极大地依赖了构架技术,或者 说是环境、基础设旌、计算平台,只有在适当的构架中,软件才有可能被抽象和 隔离,最终成为构件。 根据构件系统的用途不同,可以将构件分为领域型构件,主要解决某一领域 问题;现货型构件,国外大量应用,国内渐成规模;共享型构件,有成型产品, 不够成熟,标准化不够。对他们的研究可以从不同层面进行,可分为:基于构件 的开发( c o m p o n e n t - b a s e dd e v e l o p m e n t ,简称c b d ) 和基于构件的软件工程 ( c o m p o n e m - b a s e ds o f t w a r ee n g i n e e r i n g ,简称c b s e ) 。 a l a n 等人在大规模基于构件的软件开发中描述了构件具有5 个要素 a l a n , 2 0 0 3 。 1 规格说明。它建立在接口概念之上,构件要求有关于它所提供的服务的 抽象描述,以作为服务的客户方和提供方之间的契约。构件规格说明通 常不仅仅是简单地定义一系列可用的操作,它还描述了在特殊情况下对 构件所期望的行为,约束构件允许的状态,并且指导客户方与构件进行 相应的交互。在某些情况下这些描述可能使用了某种形式化符号,但大 多数情况下它们都是非形式化定义的。 2 一个或多个实现。构件必须被一个或多个实现所支持;这些实现必须符 合规格说职。然丽,规格说睨允许构件在内部操作上有很大的自由度。 在这些情况下实现者可以选择任何一种被认为是合适的实现方法。惟 一的限制是要满足在规格说明中定义的行为。在很多情况下,这个灵活 性还包括对于编程语言的选择。实际上,这个行为可能仅仅是某个现存 的系统或成品应用程序,它们被包装起来以使它们的行为符合在构件 标准中定义的规格说明。 3 受约束的构件标准。软件构件存在于一个定义好的环境中,或称为构件 模型,构件模型是一套支持软件的服务,加上为了使构件莉用这些服务 而必须遵守的一套规则,现有的构件模型包括m i c r o s o f t 的c o m + 、s u n 的j 2 e e 以及o m g 的c o r b a 构件标准,这些构件模型中的每一种都 成都理_ 大学硕七学位论文 解决了诸如一个构件怎样使其他构件可以获得它的服务、构件怎样被命 名以及怎样在运行时发现新构件和它们的服务这样的问题。此外企业级 构件系统的构件模型还提供额外的功能,这些功能包括做事务管理、持 久化和安全性等的标准方法。 4 包装方法,构件可以按不同的方式分组来提供一套可以替换的服务。这 个分组就称为包。一般地,从第三方获取构件的就是这些包,它们代表 了必须安装在系统中的功能单元,为了使这个包可以使用,在构件模型 中要有某种对包的注册机制。例如在m i c r o s o f t 外境中,这是通过一种 特殊的已安装构件的目录来实现的,这个目录称为注册表。 5 部署方法,一旦成品构件安装在运行环境中,它们就将被部署。这是通 过创建构件的可执行实例并且允许与它发生交互实现的。请注意,一个 构件可以部署很多实例,也可以只部署一个实例。每一个实例都是独立 的。例如在一台计算机上可能会有一个构件的两个独立的实例在运行, 它们处理不同种类的用户请求。 论文 王晓鹏,2 0 0 5 从构件特征的角度对构件的概念进行了描述,认为构件具 有即插即用、接口与实现分离、标准化以及市场化的特征。一般认为构件是独立 可部署的单元,可独立配置、严格封装、接口规范、具有自包容和被包容的特性, 可作为第三方的组装单元。这些特性意味着: 1 构件必须能够隔离应用构件与复杂得系统资源。构件在构件系统中运 行,此时系统称为构件容器,构件应该尽量依靠构件容器取得系统资源 和实际操作系统资源,以很好的实现共享和同步访问。 2 构件不但具有足够好的内聚性,封装自己的实现,还必须清晰说髓自己 的依赖条件和所提供的服务。一方面,构件要清楚地标明构件本身实现 过程中用到的外部资源;另方面,构件可以提供一定的服务,为其他 构件所利用。 3 而且,个构件必须不能有任何的( 外部的) 可见的状态,这要求构件不 能与自己的拷贝相区别,具有唯一性;构件之间的通信通过服务的发布 和使用进行,最大限度地降低构件之间的耦合。 构件作为软件系统的组成实体,在不同的系统中有不同的实现,其相应的定 义形式也不一样。从概念上讲,构件是一个可以独立封装、独立部署,并且在特 定的构件容器中独立运行的软件单位。 6 第2 章构件技术介绍 2 2 构件的技术规范 当前软构件系统主要有三种规范技术实现,包括o m g 的c o r b a 、m i c r o s o f t 的c o m 和s u n 的j 2 e e ,它们都实现了相应的产品,技术相对成熟,但也各有 利弊。 2 2 1o m g 的c o r b a c o r b a 分布计算技术是o m g 组织基于众多开放系统平台厂商提交的分布 对象互操作内容的基础上制定的公共对象请求代理体系规范。 c o r b a 标准主要分为3 个层次;对象请求代理、公共对象服务和公共设施。 最底层是对象请求代理o r b ,规定了分布对象的定义( 接口) 和语言映射,实现对 象间的通讯和互操作,是分布对象系统中的“软总线”;在o r b 之上定义了很多 公共服务,可以提供诸如并发服务、名字服务、事务( 交易) 服务、安全服务等各 种各样的服务;最上层的公共设施则定义了组件框架,提供可直接为业务对象使 用的服务,规定业务对象有效协作所需的协定规则。 c o r b a c c m ( c o r b ac o m p o n e n tm o d e l ) 技术是在c o r b a 规范2 3 版本基 础上结合e j b 规范发展起来的。c o r b a 的特点是大而全,互操作性和开放性非 常好。c o r b a 的缺点是庞大而复杂,并且技术和标准的更新相对较慢,c o r b a 规范从1 0 升级到2 0 所花的时间非常短,而再往上的版本的发布就相对十分缓 慢了。在具体的应用中使用不是很多。 2 2 2m ic r o s o f t 的c o m 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 的功能有机地统一在一起,形成了一个概念清晰、功能强 大的构件应用体系结构。但是它的不足是依赖于m i c r o s o f t 的操作系统平台,因 而在其它开发系统平台( 如u n i x l i n u x ) 上不能发挥作用。 7 成都理工大学硕十学位论文 2 2 3s u n 的j 2 e e 为了推动基于j a v a 的服务器端应用开发,s u n 于是在1 9 9 9 年底推出了j a v a 2 技术及相关的j 2 e e 规范,j 2 e e 的目标是:提供平台无关的、可移植的、支持并 发访问和安全的,完全基于j a v a 的开发服务器端构件的标准。 在j 2 e e 中,s u n 给出了完整的基于j a v a 语言开发面向企业分布应用规范。 其中,在分布式互操作协议上,j 2 e e 同时支持r m i ,而且j a v a 应用程序具有“一 次编写,到处运行”的特性,使得j 2 e e 技术在分布式计算领域得到了快速发展。 j 2 e e 简化了构件可伸缩的、基于构件的应用的复杂度。j 2 e e 从推出之后,得到 了广泛的发展,已经成为应用服务器端的标准技术。s u ne j b 技术是在j a v ab e a n 本地构件基础上,发展的面向服务器端分布应用构件技术。它基于j a v a 语言, 提供了基于j a v a 字节代码的重用方式。e j b 给出了系统的服务器端分布构件规 范,这包括了构件、构件容器的接口规范以及构件打包、构件配置等标准规范内 容。e j b 技术的推出,使得用j a v a 基于构件方法开发服务器端分布式应用成为 可能。 2 2 4 比较分析 目前,针对上述的各种分布计算平台技术,都出现了相似且具有可比性的构 件产品。对于他们的比较,业界出现了很多论述,主要集中在集成性、可扩展性 和产品成熟度上。 作为产业界事实上的构件标准,j 2 e e 技术拥有广泛的支持厂商,众多成熟 的中间件产品,其成熟度毋庸置疑;j 2 e e 建立在j a v a 虚拟机之上,加上多年发 展,其跨平台特性是所有软件语言中最好的,它能够分布在不同机器平台和操作 系统上,构成一个统一的企业计算框架。用j 2 e e 开发企业应用程序时,由于 其一贯的开放特性,它的很多标准都向人们提供了众多选择,使得使用者可以根 据不同的需要选择适合自己实现方式。 因此,作者将以j 2 e e 为基础,但没有采用j 2 e e 中重量级的一些标准,如 e j b ,j n d i 等,来构建自己的构件模型。 第2 章构件技术介绍 2 3 软构件的体系结构 软件开发是典型的知识密集型活动,随着软件应用范围的快速扩大,以及软 件运行平台从单机向网络的转变,软件的规模越来越大,软件开发的成本高、周 期长、部署和升级困难日益突出,构件系统在一定程度上缓解了这些问题。 单独的构件与传统软件相比没有优势,软件构件技术集中体现了软件的构造 性。为了使软构件系统的结构更加规范,一般构件系统会定义构件的体系结构。 2 3 1e o ii p s e 平台体系结构 目前很多大型系统都采用了构件化的架构,特别是一些软件开发平台,采用 了构件化的架构已支持软件开发手段的不断更新。其中,最成功的应该是开源平 台e c l i p s e 。e c l i p s e 利用一个基本的核心启动,称为p l a t f o r mr u n f i m e ,在此基础 上加载平台的各个功能部分,包括操作界面,称为w o r k b e n c h ,用户工作区管理, 称为w o r k s p a c e ,加上其它软件开发平台必需的模块如帮助系统,团队开发支持 系统等等,整个系统采用扩展和扩展点组织起来,对外提供插件借1 2 1 ,通过动态 加载插件,实现系统功能的扩展。 因为其基础机制设计灵活,加上采用了很多先进的技术手段,如异步操作和 对象缓冲的大量采用,使整个系统的扩展性和性能都得到了极大的增强f e c l i p s e 管理委员会,2 0 0 6 。 e c l i p s e 的平台体系结构如下: 图2 1e c ii p s e 平台体系结构 成都理工大学硕士学位论文 2 3 2 e o s 平台体系结构 p r i m e t o ne o s 是上海普元信息技术有限责任公司自主研发的面向构件的中 间件,是基于j 2 e e 之上的面向构件的完整的互联网应用体系。p r i m e t o ne o s 产 品提供了对构件在定义、组装、发布、运行、管理、访问等多方面的全方位支持 和完善的服务,形成了一套完整的构件体系。包括e o s 运行管理环境( e o s s e r v e r & m a n a g e r ) ,提供对应用服务器的封装和管理;e o s 开发环境( e o s s t u d i o ) ,提供了一种集成开发环境;e o s 构件库( e o sc o m p o n e n t sl i b r a r y ) ; e o s 工作流( e o s w o r k f i o w ) ;e o s 可视化页面开发( e o s r i c h w e b ) g o g o ,2 0 0 6 。 p r i m e t o ne o s 以w e b 应用服务器为基础,在此之上,构建支持w e b 应用开 发的工具套件,包括通用组件、应用逻辑和业务建模等等,辅以安全控制机制、 单点登陆机制和动态部署机制。所有这些功能,普元提供了一个统一的开发平台, 使得如此复杂的构件可以在一个相对简单的,可视化的环境下进行,提高了开发 效率,降低了学习成本。 图2 - 2e o s 平台体系结构 以上两种体系结构都强调应用,是以应用为核心的平台体系统结构。这种结 构在解决某一领域或者某一方面的问题具有很好的效果。如e c l i p s e 作为集成开 发环境,特别是在j a v a 应用开发上取得了很大的成功,e o s 则作为通用型b s 应用的解决方案,效果明显。 1 0 第2 章构件技术介绍 2 3 3 简化了的体系结构 以上介绍了两种优秀的软构件系统采用的体系结构。但是,如果作为通用性 共享型软构件系统的体系结构,他们都相对复杂。作者分别在它们的基础上做过 开发工作,在利用e c l i p s e 开发构件时,我们需要学习它本身复杂的体系结构, 熟悉他的a p i ;在利用e o s 做w e b 应用开发,相对简单,但是要进行二次开发, 增加自己的构件时,我们还是要做大量工作。另外,由于他们采用的构件结构都 比较复杂,我们一般只能利用他们的开发平台本身才能较快地完成构件的开发; 并且它们设计复杂,在构建小型应用时,比如移动设备上的应用时,系统本身过 于庞大。 基于以上考虑,我们提出一种简化了的平台体系结构,作为本文的参考体系 结构。 图2 - 3 软构件系统体系结构 构件系统建立在虚拟系统之上,虚拟系统为构件运行提供基础服务支撑,包 括文件服务,通信服务,处理器资源和内存资源等等。 基础通信系统是构件系统的主要部分,提供构件的存储、服务的监听和处理、 构件之间的通信等功能。运行平台管理构件的整个生命周期,包括构件的启动、 初始化、运行、停止和卸载。 开发平台同运行平台配合工作,在系统运行时,为构件提供重新组装和升级 的能力。 交互设施是指运行于构件系统上具有对外通信能力的一些部件。 成都理工大学硕士学位论文 2 4 软构件模型 软构件系统由大量构件组合而成,软构件模型反映了构件和构件容器之间, 构件和构件之间以及构件和其他系统之间的进行交互,协同工作的方式。对于建 立一个通用的软构件系统来说,定义一个结构清楚、关系简单、功能完善的软构 件模型非常重要。 2 4 1 层次模型 袁占亭等人提出了用于构件库管理的层次模型,对构件库的结构进行了简单 定义,是一种较为初级的静态模型【袁占亭,张秋余,张冬冬,翟志万,李伟平,2 0 0 5 。 应用领一域库 2 4 2 网状模型 e c l i p s e 虽然没有明确提出它的构件模型,它建立在插件结构的基础上,每 个插件可以作为扩展,也可以作为扩展点,所以它实际上是一种基于构件节点的 网状模型。 网状模型的特点是功能强大,现有构件库为新加入的构件提供了很多扩展 点,新的构件可以方便地参与的系统中去;但是,网状模型完全是开放性的,每 个构件独立地处理属于他的扩展点,增加了开发的复杂度。 第2 章构件技术介绍 2 4 3 立体模型 黄罡在软件构件模型及其标准中提及了f l p 模型 黄罡,2 0 0 4 1 ,对构件模 型作了比较全面的定义。其中,层次( l e v e l ) 代表了构件生命周期中的不同阶 段;表示( p r e s e n t a t i o n ) 代表了构件的表现媒介;形态( f o r m ) 限定了构件的 存在形式。f l p 模型示意图如下: c k l 脚a * m t 醅鼬掣d 啦c o a 叫h 池4 一 图2 - 4f l p 模型 f l p 模型由两个二维的关系表组成,定义了构件在生命周期中的不同阶段应 该具有的构成要素和具体的表现形式,是一种立体模型。 2 4 4 分层有向图模型 各种软构件模型都有自己的特点,层次模型简单实用、网络模型功能强大, 立体模型则表现丰富。根据建立轻量级通用构件系统的需要,我们的模型应该包 括以下设计原则: i 扁平化,构建之间的关系不能过于复杂,学习曲线相对较短; 2 轻量级,系统应该适用于多种平台,不同硬件设备; 3 易扩展,能够利用计算机和网络的能力构件较大型的应用: 4 适应变化,尽量把需求更改控制在一个很小的范围里面 通过综合前面提到的模型,本文提出一种基于分层有向图的软构件模型,称 为l ( l a y e r ) d ( d i r e c t e d ) g ( g r a p h i c ) 模型。 成都理工大学硕士学位论文 图2 - 5 基于分层有向图的模型 整个模型分为三层,系统容器、服务层和构件网络层。 该模型具有以下特点: 1 分层,层次之间使用接口进行调用,分离了功能表示同功能实现的分离, 在接口不改变的情况下可以方便地替换和升级; 2 构件之间的联系是单一的依赖关系,这种依赖建立在动态重构的基础 上,可以支持运行期间的变化; 3 构件之间通过服务层进行交互,通过动态注册服务,获取服务,取得其 他构件的计算能力; 4 构件之间由依赖关系连接成一棵树,构成构件完整的应用空间,空间以 外部分的变化不影响构件应用。 下一章对模型的构件网络和服务层进行具体阐述,对构件系统的演化过程进 行详细分析。 1 4 第3 章软构件模型及其演化 第3 章软构件模型及其演化 这一章将阐述模型的实现具体设计,在此基础上,详细分析系统的演化过程, 以及系统内部构件之间如何通过注册和使用服务进行通信,即分析它的服务模 型。 在l d g 模型中,构件以一定的规格进行封装,构件容器负责加载构件、组 装构件,启动和维护构件的运行。构件容器启动后,自动加载配置文件中指定的 构件,运行它们,监听它们的请求,完成的加载新的构件、启动、停止、卸载等 任务。 3 1 构件封装 为了便于讨论,我们首先给出模型中构件的形式化定义。 定义1 构件由程序、配置文件和附加资源组成的三元组合,记为c o m = p ( a c k a g e ) ,m ( a n i f e s tf i l e ) ,r ( e s o r c e ) ) 。 p 是构件的程序实体,包括程序中引用到的必要资源,如图片,语言等等, 以j a r 包的形式存在,是构件运行期间加载程序资源的地方。 m 是构件存在的形式化描述,是构件系统匹配、装载、组装、使用构件的 依据。构件的各种特性通过配置文件体现出来。 r 是构件的可选的附加资源,包括源代码,帮助文档等等。 为了便于部署,构件采用标准的j a v aj a r 包格式进行打包 s u nm i c r o s y s t e m s , 2 0 0 5 。其中,程序放在构件j a r 包的根文件夹( 称为构件的根路径) 下,即不同 的类文件放在与包相对应的路径文件夹中;配置文件放在根路径下的m e t a i n f 文件夹中,文件名称为m a n i f e s t m f ;附加资源放在a c c e s s o r i e s 文件夹中, 不对构件运行产生任何影响。 下面是一个简单的构件打包前的文件夹结构: 8 汝g i n p l e b u n d l e 幻a c c e s s o r i e s 瀚i e t a - i n f 涵o r g 涵g u o h u a 国s l m d l e h u n d l c 囝u t i l 图3 - i 构件打包格式 1 5 成都理工大学硕士学位论文 3 2 规格说明 在一个特定的构件环境中,构件必须要满足一定规范的规格说明,才能被构 件系统使用,为客户提供服务。 在l d g 模型中,我们定义的构件规格比较简单: 1 首先,构件要满足上面定义的构件封装格式; 2 其次要在构件的配置文件中对构件进行说明,包括构件自身的信息和此 构件与其它构件之间的联系,其中必须包含的有构件名称和构件启动类 的信息。 3 配置文件包含多项数据,每项数据由标题和内容组成,我们把每一项内 容称为一个数据项。一个数据项的标题必须唯一;数据项的内容可以有 多个部分组成,由逗号( ,) 分隔每一个部分;每个部分的内容可以附 加一些参数,由分号( ;) 分隔 s u n d e v e l o p e r n e t w o r k ,2 0 0 5 1 。一个数 据项可以简单定义成( 其中,括号表示可选,星号表示可重复) : 标题:= 内容( ,内容) 内容:= 主体( ;参数) + 目前,根据构件模型的需要,我们在配置文件定义了以下数据项,包括描述 配置文件的配置文件版本;描述构件本身信息的构件名称、构件启动类、构件版 本、构件描述、构件升级路径;描述构件之间的依赖关系的引入的包,引出的包, 引入的构件等等。 随着模型的进一步完善,我们将有可能定义更多的数据项。 为了在设计上支持这种配置文件的数据项的变化,我们规定,新版本的配置 文件可以添加新的数据项,构建容器将忽略未知的数据项以及数据上的未知参 数。 构件的最重要的数据项是构件的启动类,它实现了下面这样一个接口: 伽】= i | l i c 娥嗡l 戮鬻蛹i :l l 尊彝譬_ i _ i 孵b 醺;l 脯髀瀚舞貉函数 j 参灞凝嘲尊脚鲫麓蠢黼戮;灏嗡两簿躺辆二翻5 i :j 蘸精i 越 蠹棚萄释的静缱戮数 p u b l 玲溪秘i :j _ + i 确国蕊澳函瓣赫i 灏晦辆! 囊赫疆蘸麟毒赣辩黼; ) 启动函数是构件开始运行的入口函数,构件被装载后,构件容器会实例化构 件的启动类;如果容器收到启动这个构件的请求,就调用启动类的启动函数。 启动函数完成构件的初始化工作,比如读取必要的参数,启动一些服务,监 听一些服务等等。启动函数所做的工作必须是简洁,轻量级,非耗资源的工作, 以便构件容器能及时退出,以响应其它的请求。 b u n d l e c o n t e x t 是构件容器提供的一种数据结构。启动函数接收一个类型为 b u n d l e c o n t e x t 的参数,通过它调用构件容器的函数,完成必要的工作,它是构 件同容器进行交互的唯一通道。 停止函数定义构件停止工作前要做得的工作,在构件容器收到停止构件的请 求后被调用。停止函数一般完成与启动工作对应的清除资源占用的工作。 参考模型目前定义的主要数据项见下表。 表3 1 参考模型的数据项 标题说明 语法 m a n i f e s t v e r s i o n 配置文件版本,当前构件使用的配置文件 m a n i f c s t - v e r s i o n := v e r s i o n 的版本信息。 b u n d l e v e r s i o n 构件版本,当前构件的版本信息。 b u n d l e v e r s i o n := v e r s i o n b u n d l e n a n l e 构件名称,是构件唯一标识。 b u n d l e n a m e := n a m e b u n d l e - d e s c r i p t i o n构件描述,用简单可读性强的语句描述构b u n d l e d e s c r i p t i o n := 件实现的功能,为使用者选择和使用构件 d e s c r i p t i o n 提供参考 u p d a t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026人工智能行业投资风口与未来展望报告
- 2026中国制药工业行业市场发展现状与行业竞争格局研究报告分析
- 2026中国童装行业市场竞争格局分析及产业发展策略研究报告
- 2025福建福州地铁置业有限公司市场化选聘招商运营部经理1人笔试历年参考题库附带答案详解
- 2025福建省水利投资集团(长汀)水务有限公司招聘3人笔试历年参考题库附带答案详解
- 2025福建漳州港务集团有限公司应届毕业生春季招聘14人笔试历年参考题库附带答案详解
- 2025福建泉州水务直饮水科技有限公司公开招聘辅助性岗位工作人员笔试历年参考题库附带答案详解
- 2025福建晋江市晋北建设开发有限公司招聘2人笔试历年参考题库附带答案详解
- 2025福建厦门同安国有资本控股有限公司及子公司招聘1人笔试历年参考题库附带答案详解
- 2025福州市仓山区劳务派遣服务有限公司招聘1人笔试历年参考题库附带答案详解
- 罗荣恒课件教学课件
- 服务礼仪培训方案
- 公司自动化项目管理制度
- T/ZBH 004-2018中空玻璃密封胶
- 半导体车间安全培训课件
- T-CASEI 014-2022在役立式圆筒形钢制焊接储罐检验技术规范
- 篮球培训地推话术
- 农产品分装物流服务协议(2024年版)
- 成品交付保障方案
- 医疗美容外科诊所制度完整版及目录
- 城市更新项目资金申请报告-超长期特别国债投资专项
评论
0/150
提交评论