(计算机应用技术专业论文)面向程序挖掘的构件组装设计与关键技术的研究.pdf_第1页
(计算机应用技术专业论文)面向程序挖掘的构件组装设计与关键技术的研究.pdf_第2页
(计算机应用技术专业论文)面向程序挖掘的构件组装设计与关键技术的研究.pdf_第3页
(计算机应用技术专业论文)面向程序挖掘的构件组装设计与关键技术的研究.pdf_第4页
(计算机应用技术专业论文)面向程序挖掘的构件组装设计与关键技术的研究.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

(计算机应用技术专业论文)面向程序挖掘的构件组装设计与关键技术的研究.pdf.pdf 免费下载

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

文档简介

摘要 程序挖掘理论以构件技术为基础,是软件工程领域内的研究热点 之一。它的基本思想是:分析用户的计算需求,从因特网上大量的 构件资源或已经分类检索好的构件库中查找所需的构件,并把这些 构件组装成满足用户需求的程序。程序挖掘理论对快速高效地构建 应用系统,具有重大意义。 程序挖掘一般可分构件挖掘与构件库组织、需求分析、程序组装 结构建立、构件搜索匹配与选择、构件连接与组装、程序校验与执 行等几个步骤,构件组装是其中的一个关键环节。构件组装指利用 组装工具,按照组装机制,将松散耦合的构件按照预先定义好的组 装结构描述,组装成一个有机的整体;然后添加适当的粘合代码, 实现组装结构描述中定义的组装逻辑关系;最后编译部署,交付用 户使用。 构件组装涉及到软件体系结构描述、组装机制、构件查找匹配、 程序验证和组装编译等多方面的内容。本文对组装中的关键技术: 组装机制、组装结构描述、组装机制到运行平台的映射、组装过程 中数据转换等方面的内容进行了研究和探索;提出了一个比较完整 的组装平台框架设计并实现了一个基于消息的构件运行平台,对组 装机制的合理性和可行性进行了验证。 通过借鉴结构化的思想,本文将组装机制分为顺序、选择、循 环、并行四种方式。并对组装机制的形式化描述,以及组装机制的 x m l 描述进行了深入研究。 接下来本文提出了一个组装支撑平台框架,并实现了一个基于 j m s 的构件支撑运行环境。在支撑运行环境中,程序的组装结构被 映射到框架中的构件、构件适配器、连接子和组装逻辑描述。在总 控单元的协调下,各个部分以异步消息发送方式实现构件之间的组 装。在这一部分,还阐述了组装机制的映射算法、消息格式以及消 息处理过程中的数据转换等内容。 关键词构件,程序挖掘,组装机制 a b s t r a c t t h ct h e o r yo fp r o 掣a mm i n i n 参b a s e do nt h e d e v e l o p m e n t0 f c o m p o n e n t st e c h n o l o g y ,h a sb e c o m eo n eo fm eh o ts p o t si nt h ea r e ao f s o f t w a r ce n g i n e e 血g r 1 1 1 eb a s i cc o n c c p t sa r e :柚a l y z i n gr e q u i r e m e n t s f 如mu s e f s ;c h c ns e a r c h i i l gf b rc o m p o n e n t si nt h e1 1 1 把m e o fc o m p o n e n t 1 i b m r i e s ;f i i l a l l y c o m p o s i n gt h e mi n t om ep r o 掣a mt h a tm c c t sd e m a n d s t h e r e f o r e ,t h et e c h n o l o g yo fp r o g r a mm i n i i l gi so fg f e a ts i g n i f i c a t i o nt 0 i m p r o v et h eq u a l i 哆a n dp r o d u c t i v i t yo ft h es o f t w a r ed e v e l o p m e n t 1 h e r ca r es e v e r a l s t e p s i l l p r o g r a mm i n i n g ,s u c h a sm i n i n gf o r c o m p o n e n t s ,觚a l y z i n gf e q u i r e m e n t s ,b u i l d i n gt h ec o m p o s i t i o ns t m c t i l r e , c o m p o s i i l gc o m p 彻e n t s ,v a l i d a t i n gp 砌f a ma n ds oo n c 0 m p o n e n s c o m p o s i t i o ni s t h ek e yt ot h i s t h e o r y a c c o r d i i l gt om ec o m p o s i t i o n s t m c t i l r e ,m el o o s i i l gc o m p o n e n t sa r ec o m p o s e di i l t o 锄。培锄i cs y s t c m , t h b ya d d i n g9 1 u ec o d e sr e a l i z e st h ec o m p o s i t i o nl o 百cc o n s t l l l c h a t d e f i n e di nt h es y s t e ms t m c t i l r e t h el a s t s t e p i s c o m p i l i l l g a n d i m p l e i n e n t i n gt h es y s t e mi n t ou s e r sm i l i l i n gp l a t f o m t h ec o n c e p to fc o m p o n e n fc d m p o s i l i o ni n v o l v c st h ed e s 翻p t i o no f s o f c w a r ea r c h i t e c t i i r e ,c o m p o s i t i o nm e c h a n i s m s ,c o m p o n e m sr e t r i e v i i l g , c o m p o s i t i o ns t m c t i l r ec h e c k i l l ga n dc o m p i l i n g t h i sp a p e rd i s c u s s e sc o r e t e c h n o l o g i e so ft h ec o m p o s “i o n :c o m p o s i t i o nm e c h a n i s m s ,c o m p o s i t i o n s t m c t i l r e s d e s c r i p t i o n ,c o m p o s i t i o n m e c h a n i s m s m a p p i n ga n d t h e c o n v e f s i o no fd a t i l mt of i tf o rt h ec o m p o s i t i 衄i nt h ce n d ,t h ep a p e r p r e s e n t s a d e s i g l lo fc o m p o s i t i o nt 0 0 1 f r a m e w o r ka l 】d 洒印鲫e n t sa 姗n i i l gp l a t f o 咖t 0v a l i d a t em em t i o n a l i t ya n df e a s i b i l i t yo ft h i st h o u 曲t b a s e do nt h ec h a r a c t e r i s t i c so fs o f t w a r ec o m p o n e n t s 姐ds t m c t i i r e d m e t h o d o l o g y ,f o u rm e t h o d so fc o m p o s i t i o nm e c h a n i s m sa r ep r o p o s e dt o i n t e g r a t ec o m p o n e n t s ,w h i c _ ha r es e q u e n c e ,a l t e m a t e ,l o o p 柚dp a r a u e l a n dt 1 1 e nt h ep a p e rf b c i l s e so nt h ef o 彻a l i z e dc o m p o s i t i o nd e s c f i p t i o n a 1 1 do nb o wt od e s c 曲et h ec o m p o s j t i 伽s 咖c t u r e b yx m l s u c c e s s i v e l y b a s e d o nj a v am e s s a g es e i c c ( j m s ) p r o t o ) ,p e f r a m e w o 呶ad e s i 踟o fc o m p o n e n t sc o m p o s i t i o np l a t f o 皿h a sb e e n b r o u g h tf o r t h t h ea r c h i t e c t i l r co fs o f t 、v a r ew i nb e 脚p p e d t 0c o m p o n e n t s , a d 印t e r s ,c o i l l l e c t o r sa n dc o m p o s i t i o nd e s 蹦p t i o n s a o ft h e ma r e c o n t r o l l e db yt h ec o n t r o 儿e ru n i ta n dc 0 舢u n i c a t e t h m u 曲a s y n c h r o n o u s m e s s a g es e r v i c ep r o v i d e db yj m s t h i sp a r ta l s oe x p l a i l l st h em a p p i n g a l g o r i s i n ,t h em e s s a g ef b 加a t ,t h ed a t ac o n v e r s a t i o na i l ds oo n k e yw o r d s c o m p o n e n t ,p m g r a mm i n i n g ,c o m p o s i t i o nm e c h a n i s m m 原创性声明 本人声明,所呈交的学位论文是本人在导师指导下进行的研究 工作及取得的研究成果。尽我所知,除了论文中特别加以标注和致 谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果, 也不包含为获得中南大学或其他单位的学位或证书而使用过的材 料。与我共同工作的同志对本研究所作的贡献均己在论文中作了明 确的说明。 储鹳:碑嗽赶年月且日 关于学位论文使用授权说明 本人了解中南大学有关保留、使用学位论文的规定,即:学校 有权保留学位论文,允许学位论文被查阅和借阅;学校可以公布学 位论文的全部或部分内容,可以采用复印、缩印或其它手段保存学 位论文;学校可根据国家或湖南省有关部门规定送交学位论文。 储戤辨剔磁 呼年月4 日 硕七学位论文第一章绪论 第一章绪论 构件技术已经融入软件工程研究的主流,放视为使软件开发真正走向工程 化和产业化的希望。 什么是构件? 从构件粒度角度来看,构件可分为系统掏架、框架、代码片 断等;根据构件形态分类,构件可分为二进制代码实体、模版、设计模式等。 尽管构件定义直到今天还没有取得完全的共识,但这并不妨碍构件技术发展和 走向成熟。本文采用被广泛接受的构件定义:构件是软件系统的基本组成成 分,通过契约式接口指明对语境的依赖,可以独立部署瞄j 。 近年来,随着面向对象技术、b t e m e t 和w 曲技术的普及,以及日b 、 c o r b a 、c o m ,d c o m 等工业标准的出现,软件产品发布和获取方式发生了巨 大变化,大大刺激了构件技术的发展。与此同时,软件产业界的竞争日益剧 烈,缩短软件交付时间和提高软件质量已经成为决定企业生存的关键嗍。大规 模地使用已有的软件构件,有利于在剧烈的竞争中取得时间优势和质量优势; 另一方面,随着构件使用时间的深入,软件开发企业内部将会积累大量自主开 发的构件、购买的商业c a r s ( c o 蚴e r d a l l y0 行1 色es h e l f ) 构件和其它组织开 发的n d l ( n d c v e l o p m e n t a ln e m ) 构件,这些可复用构件构成了庞大的软件 资源,为基于构件的软件开发提供了喹实的物质基础。 如何在网络环境下,充分利用已有构件资源构造应用程序来满足特定需 求,引起了对大规模分布式网络中按需计算1 1 l 的问题的重视。针对该阃题,提 出了网络环境下程序挖掘的概念。程序挖掘就是利用多个职能代理,分析用户 计算请求,从大量构件资源中识别、发现、获取所需的构件,并进行组装,形 成满足用户所需计算功能程序的过程【1 l r ”。构件技术与程序挖掘的结合,为基于 构件的软件复用扩展了广阔空间,也使软件产品在实现按需计算f 1 j 的目标上向 前跨进了一大步。 1 1 研究背景 1 1 1 基于构件的软件复用 构件思想源于软件复用的概念。1 9 6 8 年在n j t 0 软件工程会议上,贝尔实 验室的d o n g m c i l r o y 提出了基于编码重用的软件开发,软件复用思想首次被明 确提出。1 9 8 3 年f 钯e m 距又迸一步拓广了软件复用概念,指出可复用构件不仅 可以是源代码,还可以是模块、设计结构、规格说明和文档等,而且构件不仅 可按组装方式复用,还可按模式复用【3 l 。一般而占,构件复用可分为产品复用 硕士学静论文第一章绪论 和过程复用两大类嗍,产品和过程都被称为可复用软件构件,本文只讨论产品 复用。 就软件开发而占,复用包括:早期的函数复用、面向对象占语中类复用、 以及互联网时代完整软件体系的构件复用。 6 0 年代末到8 0 年代初,结构化软件开发思想占据主导地位,当时主要是复 用函数( f i l n c t i o n ) 和模块( p a c k a g e ) 。函数通过改变参数值来复用,模块则是 通过接口规范说明实现复用。但是,在结构化软件中,函数和模块层面复用能 力有限,导致系统结构混乱、开发效率低。实践结果证明,函数复用和模块复 用没有真正解决软件工程危机。 8 0 年代起,面向对象的软件开发思想迅速发展起来,通过类封装、继承, 面向对象的软件开发成功地实现了代码级的复用i 钒。面向对象方法通过借鉴入 类思维方式,引入了类和封装概念,实现了数据抽象和信息隐蔽,而类之间的 继承,更是大大提高了代码复用性。直到今天,面向对象技术仍然被公认为主 流的软件开发技术。然而,面向对象的复用脱离不了代码级复用本质,由于复 用粒度较低,软件对象的复用潜力远远没有发挥出来。 构件技术是在面向对象技术基础上发展起来的1 2 9 1 。在面向对象技术中,虽 然类也可被复用,但对象类复用属于源代码级,受到编程语吉的限制,并且由 于对象没有标准对外接口,很难使用组装技术快速生成应用程序。与对象不 同,构件抽象层次更高,独立于语言,面向应用程序,只规定对象外在表现形 式,而不关心其内部实现方法。只要遵循构件技术规范,各个软件开发商就可 以用不同的语言去实现构件。近年来,在面向对象和分布式技术的支持下,构 件技术逐渐显示了强大的生命力和光明的前景,逐渐成为软件复用研究热点之 一【3 】。 目前对构件还没有一个公认的、统一的定义。广义上,构件指可以被明确 标识的软件产品,它可以是需求分析、设计、代码、测试用例、文档或软件开 发过程中的其它产品。狭义上,软件构件是指可以复用的、提供明确接口完成 特定功能的程序代码模块,如源代码、二进制代码、可执行文件等等。本文所 述的构件是指通过契约式接口指明对语境的依赖,可以独立部署的软件基本组 成单元i 矧。 构件技术改变了软件生产方式,将软件生产划分为构件生产和构件组装两 个部分。开发者专心于构件生产,组装者充分利用构件,专心于应用程序组 装。这样的生产模式具有如下优点f 4 l : 1 有利于更合理地配置人力和物力资源。 2 能够更好地实现资源和信息共享。 2 硕十学伊论史 第一章绪论 3 提高了软件复用程度,从而提高了软件生产率和软件质最。 复用思想在计算机软件领域得到了最广泛的公认,这一事实揭示了未来应 用软件发展趋势【切。国际上兴起的可复用软件构件研究高潮,向软件工程研究 人员昭示了软件复用技术的广阔前景。 1 1 2 基于构件的软件开发 基于构件的开发( c o m p o n e m b a s e ds o f t w a r cd e v e l o p m e n t ,简称 c b s d 【3 5 1 ) 是一种新的软件开发范型,它是在一定构件模型的支持下,复用构 件库中的一个或多个软件构件,通过组合手段,高效率、高质量地构造应用软 件系统的过科3 】【1 l l 。随着分布式构件标准的普及和基于构件的软件开发理论的 成熟,c b s d 作为一种能够有效地提高软件开发效率和质量的手段,逐渐得到 了广大软件开发工作者的认可。 c b s d 的指导思想是“购买而不创建( b u y ,d o n tb u i l d ) ”1 3 5 1 ,也就是说, 开发人员的关注焦点从最底层的构件实现,转移到利用已有的标准化构件组装 系统。 作为一种软件开发过程,c b s d 和传统软件开发过程一样,都要经历系统 分析、系统实现,系统部署和维护等主要阶段。在系统分析阶段确立功能和性 能要求,然后根据分析阶段的工作成果,指导后续工作。系统分析完成后,开 发人员需要把业务模型映射到软件体系结构上,实现体系结构中各个组成单 元。最后,系统被部署到各个网络节点,交付用户使用。 然而,c b s d 和传统的软件开发又有明显区别,不同之处如下: 1 以构件库为中心 c b s d 采用以第三方提供的构件为中心的开发模式,而新构件开发则是在 构件库中没有满足要求的构件情况下才进行。 2 构件检索匹配成为关键任务 构件组装结构映射到构件,是根据构件功能和非功能特性描述,从构件库 中检索匹配构件的过程,是软件从设计到实现不可或缺的步骤。 3 构件标准具有重要意义 统一的构件模型和技术标准在c b s d 中有重要意义。遵循相同接口的构件 能由多个软件供应商生产,是c b s d 的主要优点之一,所以构件接口、构件基 础设施必须标准化。否则,构件组装者必须花大量的人力物力对构件进行包 装,才能实现复用。 1 1 3 程序挖掘理论 飞速发展的网络技术,极大地丰富了网络资源,从网上订制构件,通过组 合实现满足用户需要的程序,并让应用程序以按需加载【1 6 l 的方式安装到本地系 3 预十学静论文第一亭绪论 统中运行,成为软件工程新的研究领域。如何在网络环境下,对存在于网络七 的构件资源进行搜索、获取、分类,然后按照用户需求,组装获得的构件,实 现软件技术按需计算,成为软件技术发展的巨大挑战。 程序挖掘基本思想是:分析用户计算需求,从h i t e m e t 上大量的构件资源中 检索获取所需构件,并把这些构件组装成满足用户需求的程序i l 】。程序挖掘足 利用多个职能代理,分析用户计算请求,从大量构件资源中识别、发现、获取 所需的构件,并进行组装,形成用户所需计算功能程序的过程,是大量软构件 中智能再发现过程i z i 。 构件技术1 3 7 l i ,8 l 、代理技术1 3 2 1 为构件实现、搜索、获取奠定了实现基础,数 据挖掘【3 6 l 【加l 和系统快速丌发所积累的算法和技术可以用来分析软构件之b j 的关 系和特征,为从大量构件中挖掘、发现町用程序提供了帮助。程序挖掘过程如 图1 1 所示: 图1 一l 程序挖掘过程 1 构件挖掘与构件库组织 程序挖掘的第一步是从互联网上挖掘构件,并将其下载到本地计算机。为便 于组装,必须对获取的构件进行组织和分类存储l 明。构件库和构件目录库按照 一定规则,保存构件和构件属性信息。构件库保存构件,构件可以是编译后二 进制实体,也可以是未经编译的源代码;目录信息库并不保存构件,而是保存 构件描述信息,如构件来源、形态、功能、接口等。 2 需求分析 而求分析将用户提出的业务需求条款化,形成供组装使用的详细雾事说明 在这个阶段,通过提供特定领域的图文导航或其它辅助手段,引导用户使用规 4 硕七学位论文 第一章绪论 范的格式,尽可能详细地描述需求,特别是跟功能和业务流程相关的需求。 3 程序及组装结构生成 组装结构是构件组装的蓝图,产生于对业务需求的再分解和组合。需求分析 阶段产生的条款化需求说明,是从用户角度对程序的描述,比较笼统,不能直 接作为构件组装依据。通过进一步分析需求说明,将业务功能模块化,并详细 分解每一个业务流程,确定各部分功能及其与其它模块的交互关系、依赖关 系,形成程序组装结构,即从构件组装者的角度出发,对组装后系统的整体结 构描述。 4 构件搜索匹配与选择 根据组装结构描述,形成构件检索匹配条件,从构件库中搜索匹配构件, 然后选取其中最合适的构件。检索匹配条件由构件应用领域、功能描述、类 别、接口特性等方面的属性组合而成。通过检索用户已经建立的构件库( 必要 时也可以直接从网上搜索) ,得到相关或相近构件位置信息。由于构件功能可 能被多个构件实现,因此在组装之前需要对搜索得到的构件集合进行选择。 5 构件连接与组装 构件组装就是按照构件组装描述定义的构件依赖和调用关系,对选定的构 件进行连接。组装的主要目的是按照业务需求,根据构件属性和方法的描述, 在离散构件之间建立联系,将其连接成一个有机整体,协调一致共同完成系统 功能。 6 程序校验与执行 组装完成后,必须进行组装校验,确保系统能够满足用户的功能要求,并 且在运行过程中不会带来其它不良影响。构件组装过程中,由于添加了适当的 粘合代码,因此需要对组装系统编译。最后,将编译后的系统,按照用户要 求,部署到网络节点上,再将完整的程序交付用户使用。 构件组装的六个阶段互相联系,相互影响,各个阶段之间不是严格的顺序 关系有时也可根据实际需要进行调整,例如,在组装阶段发现某一部分组装 结构描述难以获得满意的搜索匹配结果,就可以将该部分提交给上一阶段,重 新进行需求分析。 1 2 发展与现状 1 2 1 构件技术标准 随着构件技术的发展,各大软件公司( s 衄,m i c m s o f t ) 及软件组织机构 ( 0 m g 【1 3 1 ) 纷纷推出了支持中间件技术的构件标准,已经取得广泛认可的主流 构件技术标准有o m g 推出的c 0 r b “1 m 、s l l 推出的口b 【1 4 】和m i c r o f t 推出 5 硕士学位论文第一章绪论 的c o m d c o mf ”l 。 1 c o r b a c o r b a 是o m g 组织在众多开放系统平台厂商提交的分布对象互操作内容 的基础上制定的公共对象请求代理体系规范。 c o b r a 标准分为三个层次:对象请求代理、公共对象服务和公共设施。最 底层对象请求代理o r b 规定了分布对象的定义( 接口) 和语占映射,实现对象 问的通讯和互操作;0 r b 之上定义了很多公共服务,可以提供诸如并发,名 字、事务、安全等各种各样的服务;最上层的公共设施则定义了构件框架,提 供可直接为业务对象使用的服务目前c o r b a 兼容的分布计算产品有 b e a m 3 ,m mc o m p o n e mb m k e r 等。 c 0 r b a 得到了绝大多数分布计算平台厂商的支持和遵循,具有模型完整、 独立于系统平台和开发语言、受支持程度高等特点。缺点是体系结构庞大复 杂,并且技术和标准的更新相对较馒。 2 e j b 酎b 是s u n 推出的基于j a v a 的服务器端构件规范j 2 e e 的一部分,和 c o r b a 一样,日b 提供了分布式环境下对象之间的通讯手段。e j b 是在j a v a b e a n 本地构件基础上发展的面向服务器端分布式应用构件技术,提供了基于 j “a 的二进制字节代码重用方式。e j b 给出了系统的分布式构件规范,包括构 件、构件容器的接口规范以及构件打包、构件配置等方面的内容。 e j b 的优势在于可以充分利用服务器市场主流大型机和u n 平台。这意 味着凡是符合e j b 规范的构件,都能够做到”w r i t eo n m na n y w b c r e ”,可以部 署到包括w i n d o w s 平台在内的绝大多数服务器端环境中去。 3 c o m d c o m c 0 m d c o m 是m i c r 0 s o f t 在推出w i i l d o w s 2 0 0 0 系列操作系统平台基础上, 经过扩展分布计算模型,以及改造b a c k0 f c i c e 系列服务器端分布计算产品后发 布的新的分布式构件技术标准。 d c o m ,c o m 构件仍然采用普通的c 0 m ( c 0 m p o n e m0 b j e c tm o d e l ) 模型, c o m 最初作为m i c r o s o f c 桌面系统的构件技术,主要为本地的o l e 应用服务, 但是随着m i c r o s o f t 服务器操作系统n t 和d c o m 的发布,c 0 m 通过底层的远 程支持使得构件技术延伸到了分布式应用领域,d c 0 m c o m 更将其扩充为面 向服务器端的业务逻辑中间件。通过相关服务设施,如负载均衡、内存数据 库、对象池、构件管理与配置等,d c o m c o m 将c o m 、d c o m 、m t s 的功 能有机地统一在一起,形成了一个功能强大的构件应用体系结构。 c o m ,d c o m 是学一厂家提供的分布对象构件樟删开发者停用同一厂家提 6 硕十学静论文第一章绪论 供的系列开发工具,可以得到比较完善的售后服务支持。不足之处在于依赖 m i 口o f t 的操作系统平台,因而在其它平台( 如u n 政、i j n u x ) 上不能发挥作用, 应用范围受到比较大的限制。 1 2 2 构件组装方式 构件组装是在构件之间建立联系,将相对独立的构件集合组织成一个有机 的整体,共同完成用户定制功能的过程,常见的构件组装方式有以下几种: 1 白盒黑盒组装 按组装时是否对构件内部结构有所了解,可以将组装复用方式分为黑盒组 装方式和白盒组装1 3 9 1 。黑盒组装是指组装者不必了解构件的内部原理和实现方 法,即该构件的具体实现过程对组装者而言不透明。黑盒组装的优点在于组装 者只需将注意力集中于生成程序构架及选择构件,无须考虑构件内部实现,从 而大大提高了生产效率。缺点是当某个构件不完全符合组装要求,又无相应的 可替换构件时,无法直接修改构件,组装灵活性不够。 与黑盒组装不同,自盒组装要求组装者必须了解构件内部机制,较熟练地掌 握编制该构件的程序语言。组装者用“粘合代码”将各个构件连接成应用程 序,必要时还可以修改构件以使它们符合装配需要。这种组装类似用胶水将各 个构件用编程语占粘在一起,因此也可称为“粘合”白盒组装方式比较灵 活,但对组装者素质要求较高,并且经过修改的构件如果缺乏严格测试,稳定 性和可靠性可能会下降。此外,这种组装方式需要大量编码,生产效率远远低 于黑盒组装。 一般而言,采用面向对象的语言较之非面向对象的语言更容易使用黑盒组 装。实际运用中究竟使用哪种组装方式,需要考虑的因素还很多,如功能、性 能、编程语言和经济性等等。在具体应用中,往往是将这两种方式结合起来, 取长补短。 2 分布式环境下的构件组装 在分布式网络环境下,根据o s i 参考模型的层次划分,构件组装可以抽象 为三级:低级、高级和中间件1 1 9 1 。 构件间的低级组装般通过诸如s o c k e t 之类的底层通信机制实现,是一种 白盒组装。程序员利用一套a p i 函数,编写程序模块,通过s o c k c t 连接接收和 发送消息。低级组装完全依赖编写程序代码的方式实现,对用户要求高,非专 业人员难以胜任。而且连接建立过程非常复杂和繁琐,组装者往往要将大量时 间放在代码编写和程序测试上,系统质量难以保证,只能实现函数一级的软件 重用。 目前,许多公司在推出符合c o r b a 、c o m d c o m 和e j b 标准的中间件 7 硕士学侥论文 第一章绪论 产品的同时,一般都附带推出了相应的构件组装集成环境。以e j b 中的通信机 制r m i 为倒,用户在编写代码的时候,通过实现r m i 规定的一组接口来完成 构件之间同步调用,底层的s o c k e t 通信由编译器在两端自动生成s t u b 和 s k e l e t o n 对象实现。这种组装方式屏蔽了通信协议实现细节,提高了组装安全 性和效率。但是,由于对构件描述抽象层次比较低,造成组装后构件之间紧密 耦合,不利于大粒度构件复用。 高层次组装以软件体系结构研究成果为基础。鉴于传统软件开发方法在日趋 大型化和复杂化的软件系统前表现出的不适应性,近年来,国外学者提出了 s “2 3 j 【2 4 j ( 软件体系结构) 的概念。s a 是软件设计的一个层次,关注在算法和 数据结构之上的体系统结构设计和描述方面的问题,提供了自上而下的软件复 用途径。软件体系结构由一组构件( c o m p o n e t ) 、连接子( c o 曲e c t o r ) 以及 描述构件和连接子如何结合在一起的约束限制( s p e c i f i c a t i ) 组成。尽管s a 在理论上取得了丰硕成果,但迄今为止,仍然缺少支持将s a 高层次模型逐步 求精和细化,直至映射到二进制构件模型上的工具,这大大限制了s a 从实验 室走向应用的进程。正如1 1 0 l 所表明的那样:如果s a 技术不能最终向实现层次 转换,仍停留在高层规约的话,它对软件开发的实际意义将大打折扣。 1 2 3 组装支撑平台 1 通用组装工具 通用软件开发平台一般都配备了构件组装工具,并为用户提供了一些通用 构件。以d e i j p m 为例,d e l p h i 不仅为程序员提供了大量的标准构件,而且 为程序员提供了一个使用方便的构件开发集成环境( m e ) ,使用户能够轻松 地开发构件。d e l p h i 的构件库相当庞大,各种构件应有尽有,使用它开发软 件比同类软件开发周期短,产品运行稳定,并且构件使用方式非常灵活。它的 不足之处是,构件组装完全依赖于粘合代码的生成,工作效率不商。 2 a b c t o o l s 基于软件体系结构的构件组装方法a b c 【2 5 l ( 觚h i t e d u r b 勰e dc o m p o n e n t c o m p o s i t i o n ) 基本思想是在构件组装基础上,使用软件体系结构理论与概念指 导软件开发,提高系统生成的效率和可靠性。a b c 方法m 是以软件体系结构为 指导,面向构件组装的软件开发方法,为基于构件的软件复用提供了一种有效 解的决方案。 在a b c 开发方法的指导下,a b c i b o l 旧以a b l 为基础,结合当前主 流的0 0 技术,以中间件作为运行支撑平台,支持把e 】b 构件组装部署到符合 j 2 e e 【l 规范和c o r b a 规范的底层运行平台上,从而实现从s a 模型到可运行 系统的跌射。a b c ! s 功能比婶完善,具有自带的j 2 e e 运行平台,是s a 从 8 硕士学位论文第一章绪论 实验室走向实用的一个比较成功的范例,但构件来源比较单一,实用性还需进 一步提高。 3 青鸟m 型 青鸟型系统p l 是支持基于构件一构架复用的软件工业化生产技术,包 括:青鸟构件模型和构件描述语言;专业化的构件生产和构架开发;构件库、 构架库管理;软件过程设计和控制;构件、构架的系统集成( 组装) 等。 青鸟构件组装工具支持用户以图形方式描述构件及其连接关系,然后将图 形表示转化为青鸟构件描述语言,实现构件组装组装工具的主要功能包括: 编辑构件的l 描述;根据构件的印l 描述来生成c + + 代码骨架;构件组 装;利用分布式对象技术实现构件在网络上的分布等。 青鸟构件组装工具描述面向对象的构件组装,提供了一整套集成开发编译 工具,组装方式非常灵活。但它的组装层次比较低,构件复用效率不高,这一 点在新的构件技术标准和运行环境出现的今天,已经成为一个不可忽视的问 题。 4 上海酱元( e o s ) 上海普元( e o s ) 集成开发环境( e 0 ss t u d i o ) 【1 8 l ,是可视化的构件开发组 装工具通过规划好数据模型,拟定出w 曲表现形式,用户可以利用e o s 内 置的各类基础构件,采用拖拽画图的方式,快速定义展现逻辑和业务逻辑, e o s 还支持断点调试和分布式部署。 e o s 应用运行环境( e o ss e r 代r ) ,负责自动解释执行e o ss t u d i o 环境中 生产出的图形化“源程序”,提供各层次业务过程在w 曲服务器、j 2 e e 服务 器、数据库服务器上的运行。e o s 应用管理工具,包括e o sd 印1 0 y 、e o s m o n i t o r 、e 0 sm 蛐a g e r 等工具,提供应用软件( 基于构件开发模式) 动态发 布、运行监控、升级等功能;e o sd d r i b o l 则提供了数据字典管理,基本业务 属性变化可以通过参数配置来完成,使得应用层业务配置具有强大的灵活性; e o sr o l em a i l a g c r 提供灵活的基于系统角色的用户菜单与功能设定等功能。 e 0 s 内置的构件库,是支撑快速开发、部署应用系统,具有高度复用能力 的一组预制构件的集合。e o s 的优点在于构件组装层次高,充分利用了构件技 术的新成果。但是,它对特定领域构件库依赖性较强,虽然组装效率高,但应 用范围受到限制,普及程度不高。 1 3 现有研究工作中存在的问题 现有研究工作集中在低层次二进制构件实体的接口组装和高层次体系结构 的组装上,组装层次过低和过高都存在不少缺点: 9 硕士学位论文 第一章绪论 1 组装描述能力不足 组装描述是构件组装行为规约,是软件系统中构件之间关系的描述,也是 系统分析、复合构件行为推导、系统验证和仿真的基础。常见的软件体系结构 描述语言主要有a e s 0 p 、c 2 、d a 州i n 、u i l i n 、w r i 曲t 、a c m e 、x y z 【5 】【3 1 】i 删 等。这些语言主要用于描述软件系统整体结构,缺乏对构件组装行为的研究, 难以精确刻画构件组装行为方式。 2 构件复用程度低 在目前的组装环境下,组装关系一般通过编写“粘合代码”的方式实现。 很多情况下,尤其当组装层次比较低时,构件功能实现代码和构件组装代码常 常交织在一起,一方面造成构件之间紧密耦合,难以将构件单独分离出来,降 低了复用率;另一方面,导致了组装后系统结构混乱,不便于阅读,间接降低 了可维护性吼 3 难以实现组装关系复用 在现有的构件组装技术中,组装主要是在代码级上通过利用o o p l ( 面向 对象程序设计语言) 中所提供的机制完成。虽然0 0 p l 组装抽象层次比较高, 但接口之间复杂的调用关系同样导致了构件之间紧密耦合,难以将组装关系从 系统中单独抽象出来,基本上不能实现组装关系的复用。 4 组装系统灵活性差 当前的构件组装技术以及组装工具,往往在组装过程中过早确定了组装结 构。随着软件系统的演化,可能会出现功能更强的构件,软件需求也常常发生 变化,这就需要调整组装结构。而过早确定的组装结构导致系统灵活性较差, 很小的调整都需要改写大量源码,并且改动涉及面较广,以致于工作量大,而 且程序质量得不到保证。 1 4 研究内容与组织结构 针对现有构件研究中组装中存在问题,本文面向程序挖掘,对构件组装中 的关键技术进行了深入探讨,给出了一个组装支撑平台的设计方案,并且实现 了一个支撑运行平台。文中提到的组装关键技术涉及到形式化的组装描述、组 装机制、组装机制在组装支撑运行环境下的实现技术等几个方面的内容。 形式化的组装结构描述方法是本文研究的蘑点之一。构件之间的组装关系 细化后,组装描述不但要能精确地刻画构件之间静态组装关系,而且还要能够 准确反映运行时刻构件之间的交互关系。形式化的组装描述,通过一套简洁的 符号体系,准确地表达构件之间的组装机制。此外,由于形式化的组装描述无 法被计算机直接识别,所以对还需要将钼转结构椭沭用计算机能够识别的语占 硕士学位论文 第一章绪论 表达出来。 只有将构件组装关系映射到支撑运行平台上,才能够实现软件“按需定 制”的要求,因此,组装关系的实现是本文关注的焦点之一组装关系的实 现,涉及到两个议题:一是构件支撑运行环境的建立;二是如何将构件之间的 组装机制映射到实际的运行支撑平台上。 本文组织结构如下:第一章介绍了课题背景和研究内容:第二章阐述了面 向程序挖掘的构件组装过程以及构件组装支撑平台的整体结构;第三章讨论了 构件组装机制和组装描述及其x m l 表示方法;本文的第四章,设计并实现了 一个基于消息总线的分布式构件支撑运行环境,并提出了将组装机制映射到可 部署构件实体的算法,在这一章中,还简要介绍了组装工具框架结构。最后一 章对全文进行了总结,展望了本领域今后的研究方向。 1 5 本章小结 本章阐述了程序挖掘的概念,以及构件组装在程序挖掘中的重要地位。随 后介绍了课题研究背景和研究内容,国内外专家学者在构件组装领域内所取得 的成果以及存在的问题。最后说明了论文研究内容与组织结构。 1 1 硕士学付论文第二章组装支撑平台系统结构 第二章组装支撑平台系统结构 构件连接与组装是程序挖掘过程中的关键环节之一由于本文研究的主要 内容是构件组装,所以本章将着重介绍程序挖掘系统中与构件组装支撑平台相 关的内容:构件组装工具、支撑运行平台。而其它部分,如构件搜索工具、构 件库、需求分析工具等不是本文研究重点,故不作深入阐述。 2 1 组装工作流程 构件组装流程如图2 1 所示: 图2 1 构件组裳流程示意图 1 用户代表按照输入格式要求,利用需求分析工具,在系统引导下,输入 用户需求。业务建模人员在用户参与下,根据输入内容,将需求条款化,明确 业务需求,建立业务逻辑流程模型。如果业务需求不明确,则返回上一步,并 在用户参与下重新进行需求分析。需求分析的主要工作是:确定业务流程节点 功能、输入输出、节点之间的逻辑关系( 逻辑关系的种类由组装机制定义) ; 按照功能内聚性,将系统划分为若干个子系统和模块,形成初步的构件组装结 构描述。用户在规格化需求的同时,也将软件系统根据应用领域和业务规则进 行了分解,将待解决的问题初步子系统化和模块化,并形成了它们之间的依赖 关系。随后对子系统进一步模块化,确定子系统内功能模块及其内部结构。通 过这样层层细化的分解,降低了系统复杂度,形成了完整的程序组装结构描 述,为构件搜索和选择奠定了良好的基础。 2 在组装工具的帮助下,根据组装结构描述,从构件库中搜索构件并将其 组装成一个可以编译的有机整体。首先,根据构件组装结构描述,按照业务流 硕士学付论文 第= 章组装支撑平台系统结构 程模型对构件功能的描述,从构件库中检索匹配出最符合需要的构件;然后根 据检索匹配出的构件集合,对构件进行连接;同时按照构件之间的组装关系, 确定输入输出数据转换要求;荐根据构件组装描述,动态生成枯合代码。生成 的代码主要包括构件功能调用请求发出和功能调用响应方法之间的适配代码: 构件之间建立连接对输入输出数据必须进行的转换处理代码等。由于输入输出 转换代码依赖于用户对构件的选择,因此。除非构件部遵循相同的接口规范, 否则必须进行入工干预。组装工具提供了一个简易代码编辑器,和一组预先定 义好的模版( 代码框架) ,方便用户生成粘合代码,减轻了用户工作量,提高 了组装效率。 3 编译部署工具和程序校验工具共同完成最后一步工作。编译工具对系统 进行编译,生成系统部署需要的构件实体:然后将编译后的软件系统部署到实 际运行环境中去;接着程序检查工具根据需求分析,对软件系统进行校验,确 保系统完全满足用户要求,如果出现错误,则视错误影响范围,重新检索匹配 构件甚至重新进行需求分析;程序校验完毕后,就可以交付用户进行测试验收 了;最后,将组装过程中生成的相关构件。放入构件库中备用。 2 2 系统结构 程序挖掘系统由构件库和构件目录库、构件支撑运行平台、构件搜索获取 平台组成。其中构件库和构件目录库是关系数据库,如果条件有限,可以将这 两个数据库合并;构件搜索代理服务器能够自动从互联网上搜索下载构件;构 件组装支撑平台负责接受用户的需求和构件组装,并为组装后的系统提供支撑 运行环境。 图2 2 系统网络图 本文所述的组装支撑平台由构件文撑运行服务器、构件组装终端、系统监控 硕士学位论文 第二章组装支撑平台系统结构 终端组成,各部分通过高速局域网连接在一起。图2 - 2 是一个程序挖掘系统系 统示意图,图的上半部分即为组装运行平台,它由构件支撑运行服务器,构件 组装终端和系统维护终端组成。构件容器布置在支撑运行服务器上,它也是组 装后系统的运行测试服务器,为提高系统性能,支撑运行服务器采用高档p c 服务器集群,并采用支持集群的网络操作系统w i n d f s2 0 0 0a d v a n c es e r v c r 。 构件组装工具被安装到组装终端上,组装终端将构件描述信息呈现给用户,并 提供一组人机交互界面,供用户输入需求分析,设计构件组装结构,并对构件 进行组装连接,编译和部署系统到运行服务器中。组装终端对计算机性能要求 不高,是一台配置中档的p c 。系统维护终端也是一台p c ,通过它,用户可以 方便地修改系统配置,并实时监控组装后的系统运行状况。 2 3 系统功能结构 组装支撑平台提供了一套工具,支持用户对构件进行组装,并为组装后的 应用软件系统提

温馨提示

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

评论

0/150

提交评论