已阅读5页,还剩54页未读, 继续免费阅读
(计算机软件与理论专业论文)面向体系结构的构件接口模型研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 基于构件的软件工程( c o m p o n e n tb a s e ds o t t w a r ce n g i n e e r i n g , c b s e ) 提高软件 生产效率和质量,日益成为软件开发的主流范型,是软件开发实现工程化,自动化 从而解决软件危机的现实可行途径。构件接口是构件开发人员和组装人员共同遵守 的契约。但现今构件的工业标准,如c o r b a 、j a v a b c a n s 、c o m 等, 它们的构 件模型和接口定义语言仅仅规约构件接1 3 的型构,不能提供正确运用构件的足够信 息,阻碍了c b s e 的发展和构件市场的形成。因此,定义颓的构件接口模型、扩充 和增强构件接口规约成为c b s e 研究的重要课题。 本文分析软件体系结构( s o l , r a r ea r c h i t e c t u r e ,s a ) 领域和c b s e 构件模型的特 点,提出了一种面向体系结构的构件接口模型,并基于此模型设计了构件制作、构 件的匹配和构件组装技术。具体内容如下: ( 1 ) 初步提出了基于体系结构的构件接v i 模型。 结合软件体系结构s a 和基于构件的软件工程c b s e 的思想,融合改进了的常用 接口连接方式,提出了一种面向体系结构的构件接口模型。它既能表达体系结构设 计的高层抽象构件,又能表达底层代码级别的实现构件,是s a 和c b s e 技术融合 的一种探索和尝试。 ( 2 ) 根据提出的接口模型给出了构件匹配和构件组装的具体方法。 根据设计的接口模型,在本文中,主要针对接口连接式构件组装机带0 迸行了改迸, 采用了形式化语义的方法描述和推导了与构件匹配相关的问题,并在此基础上给出 了构件组装的映射算法。 ( 3 ) 结合特定的构件库,给出了构件的匹配、制作过程。 结合特定的构件库,以具体的例子阐述了构件的匹配。对于原予构件制作给出 了实移j ,对于复杂的复合构件以宜昌市办公自动化系统为锣j 绘出了复合构件在具体 系统中的实现。 关键词:软件体系结构;构件接口模型;构件匹配;构件制作;构件组装 硕士擘位论文 m a s t e r s t h e s i s a b s t r a c t a b s t r a c t :c b s e ( c o m p o n e n tb a s e ds o f t w a r ee n g i n e e r i n g ) i m p r o v e dt h ee f f l c i e n c ya n d q l l a i i t yo fs o f t w a r e ,b e c a m et h em a i nm o d e lo fs o f t w a r ed e v e l o p m e n t , a n dp r o v i d e da r e a l i s t i cm e t h o dt os o l v es o f t w a r ec r i s i s s o f t w a r ed e v e l o p e r sm u s to b e yc o m p o n e n t i n t e r f a c er u l e s b u te u n e l l ti n d u s t r i a ls t a n d a r d ,f o re x a m p l e :c o r b a 、j a v a b e a n s 、c o m , t h e i rc o m p o n e n tm o d e la n di n t e r f a c ed e f i n i t i o n l a n g u a g ec a l lo n l yd e f i n ei n t e r f a c e a r c h i t e c t u r e , c a nn o tp r o v i d es u f f i c i e n ti n f o r m a t i o nt h a tc o m p o n e mr e q u i r e s ot h e r e s e a r c ho nd e f i n i n gn e wi n t e r f a c em o d e l ,e x t e n d i n gn e wi n l e r f a c er u l e sa r eb e c o m i n g m o r ei m p o r t a n t i nt h i sp a p e ra l la r c h i t e c t u r eo r i e n t e dc o m p o n e n ti n t e r f a c em o d e li sp r o p o s e db a s e d o i ls o f t w a r ea r c h i t e c t u r ea n dc o m p o n e n tb a s e ds o f t w a r ee n g i n e e r i n g m e a n w h i l e , b a s e d o l lt h ec o m p o n e n ti n t e r f a c em o d e l ,t w o - l e v e lf o r m a ls p e c i f i c a t i o no f c o m p o n e n tb e h a v i o r p r o t o c o l si sp r o p o s e dt od e s c r i b et h eb e h a v i o rp r o t o c o l so fl a r g e s c a l ec o m p o n e n t s a t l a s t , c o m p o n e n t sb u i l d i n ga n d 鹅s 蜘曲l i n gt e c h n o l o g ya n dp r o c e s sa r es p e c i f i e d t h e f o l l o w i n ga l et h ec o n t e n t s : ( 1 ) a na r c h i t c c t m eo r i e n t e dc o m p o n e n tm t c r f a m o d e li sp r o p o s e db a s e do n s o f t w a r ea r c h i t e c n t r ea n dc o m p o n e n tb a s e ds o f t w a r ee n g i n e e r i n g i tc a ne x p r e s s n o to n l yh i g h - l e v e la b s t r a c t mp l 筋皓a ta r c h i t e c t u r a ld e s i g n , b u ta l s oi m p l e m e n t a t i o n c o m p o n e n t sa tl o w l e v e ld e s i g n ( 2 ) t h i sp a p e ro p t i m i z e st h ec o m p o n e n ti n t e r f a c e c o n n e c t i o nt e c h n i q u e ,a n da d o p t s f o r m a lm e t h o d st od e s c r i b ea n dd e d u c et h ep r o b l e m sa b o u tc o m p o n e n tsa n dt h e i r c o m p o s i t i o n b a s e do i lt h i sw o r ka n dt h ei l e wi n t e r f a c em o d e l ,c o m p o n e n tm a t c h i n gr u l e s a n da s m n b l i n ga l g o r i t h ma r eb r o u g h to u tt oi m p l e m e n tt h ea m o m a t i cc o n v e r s i o n 舶m c o m p o s i t i o ns p e c i f i c a t i o nt og l u ec o d e ( 3 ) t h ep f o c e s so f c o m p o n e n tm a t c h i n ga n da s s e m b l i n ga r eg i v e nu n d e rt h ec o n d i t i o n o f u s i n g as p e c i a lc o m p o n e n tl i b r a r y k e y w o r d s :s o f t w a r ea r c h i t e c t u r e ;c o m p o n e n ti n t e r f a c em o d e l ;c o m p o n c tm a t c h i n g ; c o m p o n e n tb u i l d i n g ;c o m p o i l e n ta s s e m b l i n g 硕士擘位论文 m a s t e r st h e s i $ 华中师范大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,独立进行研究工作 所取得的研究成果除文中已经标明引用的内容外,本论文不包含任何其他个人或 集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在 文中以明确方式标明。本声明的法律结果由本人承担。 作者签名:镌、盒马 日期:1 年i 月 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权 保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借 阅。本人授权华中师范大学可以将本学位论文的全部或部分内容编入有关数据库进 行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。同时授权 中国科学技术信息研究所将本学位论文收录到中国学位论文全文数据库,并通 过网络向社会公众提供信息服务。 作者签名:继壁再 日瓤吲年6 月1 日 名:删羔 日襄d 1 年占月7 日 本人已经认真阅读“c a l l s 高校学位论文全文数据库发布章程”,同意将本人的 学位论文提交。c a l i s 高校学位论文全文数据库”中全文发布,并可按“章程”中的 规定享受相关权益- 圄塞逾塞埕窑蜃澄蜃! 旦坐生;旦= 生i 旦三生蕉查! 作者签名:攘垒丹 日期:溯一年月1 日 i j 第一章绪论 本章第一章介绍课题背景。分析构件复用中遇到的润题,指出构件接口模型的 重要性和必要性;第二节分析基于构件开发以及构件接口模型的国内外研究概况; 第三节提出本文所要研究的内容;第四节指出论文的结构概要。 1 1 课题背景 i 1 。l 成品构件的复用问题 在过去的三十年中,软件生产率一直稳步增长,但仍不能满足社会对软件产业 的需求,为了解决这一问题,科技人员在软件工程和人工智能领域进行了深入的研 究。近几年来,人们开始意识到,要真正实现软件的工业化生产方式,保证软件生 产的高效率和高质量,软件复用是一条现实可行的途径。 北大青鸟简单整理了推行复用的组织和复用者遇到的难题; ( 1 ) 系统开发者缺乏软件复用的观念。 ( 2 ) 制作和整理可复用构件需要增加额外的投资。 ( 3 ) 构件不易理解和学习。 ( 4 ) 缺乏有效的构件库。 ( 5 ) 缺乏足够选用的构件或者构件的质量不佳。 ( 6 ) 构件不完全符合需求对,不容易修改, ( 7 ) 构件紧密依赖其原有的开发平台,难以在其他平台上使用, ( 8 ) 构件依赖某一程序语言,无法与其他语言的构件集成。 ( 9 ) 复用别人制作的构件有心理上的障碍( n o ti n v e n t e dh e r e 和n o t i n v e n t e dt h e r e 综合症) 。 ( 1 0 ) 与软件复用有关的舨本问题,合同问题和成本分配问题 ( 1 1 ) 缺乏理解、修改和组装构件的支持工具。 ( 1 2 ) 复用的收益难于估计和度量。 其中的2 、5 、6 、7 、8 几点表明对高质量的可复用构件存在着很大的需求。构 件复用的独到之处就时把构件原封不动的插入到应用系统,然而实践证明,“原样” ( a sis ) 嘲复用在大多数情况下是不现实的,在对构件进行组装生成应用系统的过程 中,可能出现构件之间的重复连接、异常连接、闭环连接等潜在错误”1 应用系统的 构件者需要修改构件来满足系统的需求,这就要求构件开发者对构件的设计简单又 灵活,同时还能保持稳定性的构件接口模型。 1 1 2 课题的目的和意义 本文以2 0 0 6 年武汉市中小企业技术刨新基金项目面向公、检、法、司信息领 域的构件库管理系统为基础,根据我国软件产业发展的需要,着重研究构件库( 构 件分类和检索) 、构件库的体系结构、构件模型、构件接口模型以及构件组装等方 面的问题,为软件行业向工业化生产方式发展做了一定的研究。 在构件集成组装的过程中发现,构件必须了解各自的实现细节,其集成关系固 定在构件的实现中,缺乏灵活性,而在计算机硬件领域,任何计算机厂商生产的配 件,在进行集成组装时,只要遵循标准的接口规范,都可以方便的集成到系统中, 而无须了解配件内部的结构和实现细节。在软件体系结构设计层次上,构件通过 接口定义了同外界的信息传递以及所承担的系统责任,构件接口包括了构件同周围 环境的全部交互内容,也是构件同外界唯一的交互途径。除此之外,环境不应对构 件作任何其他与接口无关的假设,例如实现细节等。因此,构件之间的集成可以在 接口处定义,从而支持理想的构件集成方式。因此,本课题从构件接口模型出发, 提出一种简单,灵活且稳定的构件模型,指导构件开发者设计出稳定、标准的接口, 为构件的集成组装提供了依据,从而简化应用系统的开发工作,以实现构件真正的 “即插即用”嘞。 1 2 国内外研究概况 1 2 1 基于构件的开发概况 c b d ( c o m p o n e tb a s e dd e v e l o p m e n t ) 提供了一种自底向上的,基于预先定制包 装好的类属元素( 构件) 来构造应用系统的途径嘲。当前,软件构件技术已成为研究 的热点,其研究内容包括构件标准和模型、构件的生产和获取、构件的规约和描述、 构件的分类和组织、构件的检索和组装、基于构件的价格分析以及软件体系结构, 软件复用支持工具和管理手段、基于复用的软件开发过程等方面。研究工作有很大 进展和众多成果,而且还出现了一些产业构件标准,如m i c r o s o f t 的o l e - c o m 、 o m g 的c o r b p j c c m 等”1 。这标志着软件复用已进入了蓬勃发展的时期。由于构 件的种类繁多,形态各异,因此很难建立个能够描述所有构件类型而又支持制作 和组装的构件接口模型。一般来说特定的构件接口模型只能描述特定类型的构件。 在构件开发领域,许多研究认为,构件应该设计得易于扩展,易于组装。目前 的研究包括扩展设计( d e s i g nf o re x t e n s i o n ) 鲫,适应性编程( a d a p t i v ep r o g r a m m i n g ) 叫 2 项士擘位论文 m a s t e r st h e s i s 等。l i e b e r h e r r 在他的d e m e t e r 工程中提出了适应性编程的概念,创建对象间复杂 的交互概念,以提高程序的可扩展性油】。他的目标不是专门针对构件接口地,但是 非常清楚,使用d e m e t e r 开发的构件之问更容易组装。这更加证明了构件接口是构 件在复用中的重中之中,接口必须简单,灵活且具有稳定性。 有多种可变性机制能够实现构件的可变性。典型的可变性机制有:继承 ( i 血e r i t a n c e 卜在变化点上创建指定抽象类型或抽象类的子类型或子类;扩展和扩 展点( e x t e n s i o n sa n de x t e n s i o n sp o i n 协) 可以在用例和对象构件中地变点上附加 变体;以及参数化和使用等等“其中,继承机制的变化点是虚拟操作变体类型 是子类,可以在保留其它操作的同事指定并增加可选择的操作。设计类的继承更有 用,可以在抽象类的接口中定义抽象操作及其规约,在继承它的子类中重新定义抽 象操作,给出其实现方法,用此方法可以实现类的可变性。但是要注意的是,继承 降低了类的封装性,它向其子类打开了类的内部。如果子类的设计者滥用父类的属 性和操作,会降低父类的封装性能。 1 2 2 构件接口的研究摄况 基于构件的软件工程( c o m p o n e n tb 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 ) 提高软件生 产效率和质量,日益成为软件开发的主流范型,是软件开发实现工程化、自动化从 而解决软件危机的现实可行途径“日。构件具有黑盒性质,构件接口是构件开发人员 和组装人员共同遵守的契约。但现今构件的工业标准如c o r b a 、j a v a b e a n s 、c o m 等,它们韵构侔模型和接日定义语言( 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 b s e 的发展和构件 市场的形成“”。因此,定义新的构件接口模型、扩充和增强构件接口规约成为c b s e 研究的重要课题。其中,构件接口行为协议的形式化规约和分析成为构件接口扩充 规约的研究热点。 上面提到的几种构件集成方式中,构件之蔺的集成关系,例如,过程调用、消 息连接等,都是分散在构件的实现中。这种集成方式明显存在的问题是”: ( 1 ) 构件在集成时,必须了解各自的实现细节; ( 2 ) 构件的集成关系固定在构件的实现中,缺乏灵活性。 相对而言,在计算机硬件领域,任何计算机厂商生产的配件,在进行集成组装 时,只要遵循标准的接口规范,都可以方便地集成到系统中,而无须7 解配件内部 的结构和实现细节。这就提醒我们,理想的构件集成方式是,构件接口提供了足够 多的用于集成的信息,集成在接口处即可完成。丽传统的软件构件接口部分通常只 硕士学位论文 m a $ t e r s t h e s i s 定义了其对外提供的功能,构件对外要求的功能隐藏在构件实现的细节中,因此 难以根据接口处的信息定义构件的集成。 从构件标准化角度,希望能找到一种更高抽象和更利于开发的构件接口模型, 这样就有可能将不同标准的构件方便的组装起来“”。目前绝大多数的构件技术尽管 都是基于面向对象技术的,但是尚未找到一种更高层次的开发构件接口模型,所以 在研究构件标准化的同时,要极力探索构件接口模型的标准化;同时,允许各种技 术模型继续百花齐放。 1 3 本文的主要研究内容和研究目标 从体系结构角度,纵观现有的构件组装技术以及辅助工具产品,可以发现:它们 大都采用了接口连接式构件组装技术,即通过构件接口来完成系统中构件之间的连 接组装。本文针对软件复用中构件不符合程序需求的问题,改进了构件组装中的常 用接口连接式技术,提出了一种新的接口模型,帮助构件开发者设计出更容易组装 的构件。具体内容如下: ( 1 ) 初步提出了基于体系结构的构件接口模型。 结合软件体系结构( s o t a r c h i t e c t u r e ,s a ) 和基于构件的软件工程( c o m p o n e n t b a s e ds o f t w a r e e n g i n e e d n g ,c b s e ) 的思想,融合改进了常用接口连接方式,提出一种 面向体系结构的构件接口模型。它既能表达体系结构设计的高层抽象构件,又能表 达底层代码级别的实现构件,是s a 和c b s e 技术融合的一种探索和尝试。 ( 2 ) 根据提出的接口模型给出构件匹配和构件组装的具体方法, 根据设计的接口模型,在本文中,主要针对接口连接式构件组装机制进行了改进,采 用形式化语义的方法描述和推导了与构件匹配相关的问题,并在此基础上给出构件 组装的映射算法。 ( 3 ) 结合特定的构件库,给出了构件的匹配、制作过程。 结合特定的构件库,以具体的例子阐述了构件的匹配。对于原子构件制作绘出 了实例,对于复杂的复合构件以宜昌市办公自动化系统为例给出了复合构件在具体 系统中的实现。 1 4 论文结构概要 第一章介绍研究课题的背景和意义,论文的主要研究内容和目标。 第二章、第三章是本文的理论基础章节:一方面,介绍了几种不同类型的体系 结构之间的比较。讨论了构件接口模型在软件体系结构中的重要地位,从而进一步 揭示了本文研究构件接口模型的目的和意义;另一方面,从技术角度,介绍了目前 硕士学位论文 m a s t e r st h e s i s 常用的构件接口技术c o r b a 、c o m d c o m 和j a v ab e a n s 。 第四章、第五章是本文的核心章节,是本课题的主要工作。依据软件体系结构, 从接口模型的设计原则,接口模型的层次结构等方面描述一种基于体系结构构件接 口模型,并给出根据模型给出构件匹配和构架的开发过程。 第六章对全文进行了总结,并对进一步的工作进行了展望。 硕士学位论文 m a s t e r st h g s l s 第二章构件与构件复用问题 2 1 构件概述 构件标准化是解决构件复用问题的有效途径。本节介绍了构件的定义和分类。 构件标准化对于解决构件复用问题的重要性。 2 1 1 构件的定义 一般认为,构件是指语义完整、语法正确和有可重用价值的单位软件,是软件 重用过程中可以明确辨识的系统;在结构上,它是语义描述、通信接口和实现代码 的复合体。简单地说,构件是具有一定功能,能够独立工作或者能同其它构件装配 起来协调工作的程序体。 构件是一组封装的、规范的、可重用的软件模块,是组织系统的基本单位n 町。 其中构件的封装性有两层含义: ( 1 ) 指数据和操作的封装。 ( 2 ) 指没有操作下的数据属性的封装。( 这种封装可以认为是数据和操作封 装的一种特例,即操作为空的特殊封装) 。 ( 3 ) 像a d a 的p a c k a g e 、s m a l l t a l k 的o b j e c t 、c + + 的c l a s s 和数据类型都属于 构件范畴,但是,操作集合、过程、函数即使可以重用也不能成为一个构件。 如果把软件系统看作是构件的集合,那么从构件的外部形态看,构建一个系统 的构件可以分为5 类“”: ( 1 ) 独立而成熟的构件。独立而成熟的构件得到了实际运行环境的多次检验, 该类构件隐藏了所有接口,用户只需用规定好的命令进行使用。例如,数据库管理 系统和操作系统等。 ( 2 ) 有限制的构件。有限制的构件提供了接口,指出了使用的条件和前提,这 种构件在装配时,会产生资源冲突、覆盖等影响,在使用时需要加以测试。例如, 各种面向对象程序设计语言中的基础类库等。 ( 3 ) 适应性构件。适应性构件进行了包装或使用了接口技术,把不兼容型、资 源冲突等进行了处理,可以直接使用,这种构件可以不加修改地使用在各种环境中, 例如a c t i v e x 等。 ( 4 ) 装配的构件。装配的构件在安装时,已经装配在操作系统、数据库管理系 统或信息系统不同层次上,使用胶水代码( b l u ec o d e ) 就可以进行连接使用。目前 6 顾士擘住论文 m a s t e r st h e s l 8 一些软件商提供的大多数软件产品都属于这一类。 ( 5 ) 可修改的构件。可修改的构件可以进行版本替换。如果对原构件修改错误、 增加新功能,可以利用重新“包装”或写接口来实现构件的替换。这种构件在应用 系统开发中使用得比较多。 2 1 2 构件的属性 构件有几个基本属性: ( 1 ) 构件是可独立配置的单元,因此构件必须自包容。 ( 2 ) 构件强调与环境和其他构件的分离,因此构件的实现是严格封装的,外 界没机会或没必要知道构件内部的实现细节。 ( 3 ) 构件可以在适当的环境中披复合使用,因此构件需要提供清楚的接口规 范,可以与环境交互。 ( 4 ) 构件不应当是持续的,即构件没有个体特有的属性,理解为构件不应当 与自身副本区别,在任何环境中最多仅有特定构件的一份副本。 可以看出,构件沿袭了对象的封装特性,但同时并不局限在一个对象上,其内 部可以封装一个或多个类,原型对象甚至过程,结构是灵活的。构件突出了自包容 和被包容的特性,这就是软件生产线上作为零件的必要特征。 那么可复用构件应具备的属性是: ( 1 ) 有用性,构件必须提供有用的功能。 ( 2 ) 可用性,构件必须易于理解和使用。 ( 3 ) 质量,构件及其变种必须能正确工作。 ( 4 ) 适应性,构件应该易于在不同语境中装配。 ( 5 ) 移植性,构件应能在不同的运行平台上工作。 2 1 3 构件分类 构件的分类方法有很多,如青鸟工程开发的m i s 构件库中将构件分为三级: 零级、一级、二级类库。其中,零级类库是由基本数据结构和其相关的算法封装在 一起而形成的基本的数据结构类;一级类库包括应用软件常用的、具有通用功能的 一些构件类,二级类库是针对不同应用行业的专用构件类库。这种分类方法基本上 是按照自底向上的方法分类的。 下面将详细的按照自顶向下、自底向上组装的思想对构件进行分类。它将构件 分为四类:系统构件、组织构件、分子构件和原子构件。 ( 1 ) 系统构件和组织构件。 7 系统构件是指系统总体框架构件,类似于微机中的主板。系统构件的开发必须 在一定规范下进行,这种规范类似于硬件中总线的概念,因此可称其为软件总线。 软件总线规范不仅是系统构件的开发规范。而且包括嵌入到系统构件中的予构件的 开发规范。对每一应用领域一般需要开发一个系统构件,并将系统构件存放到系统 构件库中,系统构件应主要由软件制造商在一定的软件总线规范下开发。系统构件 属于软件体系结构层次上的抽象,属于最高层次上的软件复用抽象,因此其复用性 最好。 组织构件是嵌入到系统构件中的子构件,类似于微机主板上的插板。一个和几 个组织构件可完成一个特定的任务。系统构件负责协调各个组织构件的工作,从而 构成整个应用系统。组织构件一般是一个已调试成功的软件子系统,它是按一定的 软件总线规范开发的,不同构件制造商开发的组织构件可兼容在一种系统构件下工 作。随着加入软件总线规范的构件制造商的增加,开发人员可选择的组织构件资源 也会大大增加。每个系统构件对应一个组织构件库,而所有系统构件所公用的组织 构件构成公共组织构件库,如图形界面组织构件库就是一种公用组织库。系统构件 和组织构件一般都具有可继承性。通过系统构件和组织构件这两类构件的合理组 装,就可形成新的应用系统。 ( 2 ) 分子构件和原子构件。 分子构件和原子构件是构成系统构件、组织构件的子构件,它们可类比于微机 硬件结构中的集成电路芯片( i c ) 。其中,分子构件又可复用原子构件,通过原予 构件组装而成。原子构件是最小粒度的构件,它不能通过复用方式构造,一般包括 一些最基本的数据结构以及与相关算法封装在一起的基本类。 系统构件和组织构件可复用分子构件、构件只能参与系统构件、组织构件的组 装,原子构件构造自己,而分子构件和原子构件只能参与系统构件、组织构件的组装。 但不参与最后新的应用系统的组装。 从不同的角度出发,还可以将构件分为如下凡类: ( 1 ) 根据构件重用方式,分为黑盒构件和白盒构件。前者可以即插即用,后 者经修改方可使用。还有介于黑盒和白盒构件之间的灰盒构件。 ( 2 ) 根据使用范围,分为通用构件和专用构件。 ( 3 ) 根据构件粒度大小,分为小、中、大型构件。小型构件包括窗口、按钮 控件等基本构件;中型构件包括录入、查询、插入、删除等功能构件;大型构件包 括子系统级构件,如档案管理、财务管理等子系统级构件。 ( 4 ) 根据构件复用时状态,分为动态构件和静态构件。如o l e 和d l l 属于 8 硕士擘住论文 m a s t e r st h e $ 1 s 动态构件,源代码属于静态构件。 ( 5 ) 根据构件功能用途,分为系统构件、支撑构件和领域构件。系统构件运 行于整个构件集成环境和运行环境,支撑构件在构件集成环境和构件库管理中使 用,领域构件则是为专用领域而开发的构件。 ( 6 ) 根据构件的来源,可将构件分为自开发构件和第三方构件。 2 2 构件模型 2 2 1 构件模型的概念 构件模型是为开发者定义软件构件而建立的体系结构和a p i ( a p p l i c a t i o n e r o g r a n m 1 i n gi n t e r f a c e ) 集,使开发者可通过软件构件的动态组合来建立应用系统嘲。 构件模型由构件与容器两种主要成份构成。构件是具有可重用特性的基本软件部 件。容器用于存放和安排构件,实现构件间的交互。容器也可以作为另一个容器的 构件使用。 构件模型建立在构件及其运行环境的基础上,它们之间必须满足特定的一组要 求,以便约束构件接口的性质,使得构件的接口能够被公共使用,从而保证在构件 之间,为使用这些构件的应用软件和构件所运作予其上的应用环境提供一定级别的 互操作性。 构件模型接口也可以不同方式定义。一些构件模型接口以语言无关方式定义, 然而其他模型却是语言相关的。语言相关、平台相关以及通信协议相关只是一些构 件模型接口规范风格的几个示例。 2 2 2 构件模型与规格说明 如何精确描述构件的接口和功能,这是基于构件开发的前提。当前的一些方法 主要表现在语法级,如c o r b a 的界面定义语言( i d l ) ,为精确描述,还需要语义级 的补充,如界面元素的功能,相互关系、使用场合和质量属性等。 构件复用中常不易找到可以匹配的构件,这多半归于缺乏完整和清楚的界面说 明,因此许多研究集中在如何合理对构件做出规范说明,当前的方法主要是语法级 的,一个有用的说明,还应包括界面元素的语义信息以及它们的相互关系。使用场 合和质量属性,因此,j u nh a r t 提出,一个完整的构件界面描述应包含下面四个方 面。 ( 1 ) h t e r f a c as i g n a t u r e 这是界面说明的基础,表示构件的功能,它由性质、 操作和事件组成,性质是构件外部用户或其它构件可观察的属性,通过它们可以了 9 解和影响一个构件的行为,一个常见的例子,是借此实现构件的客户化和调整使用 配置,操作表征与外界的交互作用,通过事件,还可实现反应控制,这一部分基本 上还是语法级的,可采用类似i d l 的形式。 ( 2 ) i n t e r f a c ec o n s t r a i n t s 这反映了界面的语义,如属性的值范围限制,操作的 前置和后置条件,它也可用来规定界面元素间的相互关系,如一个操作只有在某一 性质落在指定范围内才可调用,一个操作必需在另一个操作调用后马上调用等。明 显的语义规定,对说明构件非常重要,它们精确反映了一个构件的能力,用户必需 把握这些约束,才能使构件的行为符合预期。 ( 3 ) i n t e r f a c ep a c k a g i n ga n dc o n f i g u a t i o n s 这表示构件在不同情景场合使用时, 可具有不同的作用和角色,一个构件在不同情景下可具备不同的界面配置。通常, 构件设计者在构造时可能己经考虑多种使用情景。 ( 4 ) q u a l i t ya t t r i b u t e s 这是构件的非功能性质,质量属性规定,如安全性、性 能和可靠性对构件的使用十分重要,但这方面过去研究不多,这里有两个问题要研 究,一是如何量化质量属性,另一是如何分析质量属性在特定场合下对周围系统的 影响。 2 2 3 现有构件模型的分类 ( 1 ) 构件描述分类的模型。 此类模型试图以一种综合的方式来描述构件,使得构件易于为用户所理解,易 于在库中被有效,高效地分类,存储和检索。代表性的工作有r e b o o t 、j b c l 、 a l o a f 。 此类模型需要描述所有关于构件的必要信息,包括:所有对用户查找、理解、 选择、适应性修改及使用构件有帮助的信息;所有对构件库管理者分类和管理构件 及构件间关系有帮助的信息;构件的其它属性,包括:生产者、版本、使用情况、 反馈意见、知识产权控制等。 ( 2 ) 构件规约组装的模型。 此类模型试图描述构件的功能规约;构件对外提供什么功能,构件需要外界为 它提供什么功能,构件被用于什么语境等等。此类模型描述构件的功能和行为规约, 并通过配置这些规约来刻化系统。 在用法上,我们使用此类模型来靓约构件,并在设计级上组装构件,这正是当 前i d l ,c d l 和a d l 研究的目的。代表性的工作有指导性模型3 c ,为此类模型提 供了框架。 1 0 ( 3 ) 构件实现的模型。 此类模型试图帮助人们决定如何用某种程序设计语言或以某种可执行单元的 形式来实现构建,也称基础设施模型。无论如何,构件必须被实现为某种直接可用 的形式,因此,此类模型具有非常重要的地位,主要的代表工作有,微软的 c o m d c o m 、0 m g 的c o r b a 、s u n 公司的j a v a b e a n s 和e n t e r p r i s ej a v a b e a n s 。 2 3 构件接口技术 构件接口技术定义了开发、使用、部署、运行和维护软件构件所必须遵循的协 议和标准。构件结构抽象地描述每个构件的外部行为,并以此为其它构件的使用 依据。包括语法级、语义级两层。前者刻画怎样调用一个构件的操作;后者刻画对 构件操作的期望结果。 为了实现可复用软件构件的“即插即用”,构件通过接口与外界运行环境联系。 具体接口作用有以下几点渊: ( 1 ) 从构件的开发和使用角度看,构件的开发者和使用者们必须就构件功能的 调用语法和语义达成一致,构件接口就是定义了构件与它的使用者之间的协议。对 构件的使用者来说,构件的外部接口屏蔽了内部实现,不同内部实现的构件只要它 们的外部接口相同就可以相互替换。有了接口技术增强了构件的可移植性。 ( 2 ) 从构件的运行角度看,为了降低构件的复杂程度,构件设计必须考虑构件 运行的环境,所谓构件的容器就是为使构件提供一些服务而建立的构件运行环境, 同时也为构件提供一组常用的服务。为了让容器和构件可以协同工作,在它们之间 必须有一套完整的协议,即构件的接口。这样的协议保证了构件的易移植性。同事, 构件运行环境的标准化也将更好地支持构件之间的互操作。 ( 3 ) 从构件的部署和维护角度看,当构件的使用者从构件开发者那里购买了所 需的构件,还必须有一套工具来帮助部署和维护这些构件以适合特定的环境,这些 工具必须符合一定的标准,这就须有一个接口。 构件接口标准使构件协同工作的基础,也是组件软件开发的基础,目前产业界 广泛使用的具有代表性的工业标准主要有三中,即o m g ( o b j e c tm a n a g e m e n tg r o u p , 对象管理组织) 的c o r a 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 ) 、微软公司的 c o m + 和s u n 公司的e j b j 2 e e 。 2 3 1c o r b a 技术 随着i n t e m e t 的发展,不同平台上开发的软件能互相操作以提高软件的功能和 应用水平,提高软件的效率,促进软件技术的发展,是软件工程界的一致要求。 硕士学位论文 m a s t e r s1 1 i e s i s 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 c ra r c h i t e c t u r e ,公共对象请求代理体协结构) 就是满足这一要求的面向对象的分布式中间件技术。 从体协结构上看,c o r b a 由四部分组成。 ( 1 ) 对象请求代理o r b :它是c o r b a 的核心,它保证在分布式异构环境中, 透明地向对象发送和接收请求,帮助实现应用组件之间地互操作。o r b 是支持c o r b a 构件互作用地“软总线”( s o l , w a r eb u s ) ,服务性构件可以向它登记注册,当客户性 对象需要某种服务时,可以向它发出请求,o r b 负责搜索已在其“注册登记”了的 服务性对象,找到后启动该服务,传送请求给该服务性对象,并将结构传送回客户 性对象。 ( 2 ) 公共对象服务( c o m m o n0 b i e c ts e r v i c e s ) :这是一些最有可能被用来支持分 布式对象环境下构造应用的标准化组件,目前已通过的公共对象服务包括对象命名 服务、事件服务、对象生存期服务、永久对象服务、对象关系服务等。 ( 3 ) 公共设施( c o m m o nf a c i l i t i e s ) :它是公共对象服务力度更大的可重用的构件 快,它主要用来帮助构造跨多个应用域的应用程序,典型的公共设施包括用户接口、 信息管理、系统管理和任务管理等。 ( 4 ) 应用对象( a p p l i c a t i o n o b j e c t s ) :它是指供应或用户借助于o r b 、公共对象服 务及公共设施而开发的特定产品,它不在c o r b a 体系结构中实行标准化。 c o r b a 的主要内容包括以下几个部分: ( 1 ) c o r b a 消息服务。主要内容包括异步消息服务、与时间无关的调用和消 息服务的服务质量。 ( 2 ) 通过值传递对象。当客户请求对象的服务时,把目标对象传到客户方,由 于对象已经被迁移到客户的本地,访问变得更简单、快速,并且不会导致网络负载 的增加。 ( 3 ) c o r b a 构件技术。c o r b a 的构件体系结构包括4 个彼此一致的对象模型, 它们相互协作,构成了完整的企业服务器计算体协结构。使用构件的步骤是,先通 过抽象构件模型创建和实现构件,然后通过打包模型把它们存到c o r b a 构件描述符 c c d ( c o r b ac o m p o n e n td e s c r i p t o r ) 文件中。可以把一个c c d 文件组合成一个完整 的应用,也可以把它装配到构件集合描述符c a d ( c o m p o n e n ta s s e m b l yd e s c r i p t o r ) 文件中。在c a d 文件中,每个构件通过打包模型和配置模型与一个目标名建立联 系嘲。配置工具理解c a d 文件的含义,它通过配置模型把构件配置到己命名的配 置目标上。每个接点上有一个安装对象( i j l s t a l lo b j e c t ) ,它负责安装和激活构件。构 件根据容器模型在容器中运行。 硕士擘住论文 m a s t e r st h e s i s c o r b a 构件的主要特点是提供一个或多个c o r b a 界面。一个构件的实现就 是它所支持的所有界面的实现的集合。打包模型决定c c d 文件和c a d 文件的内容 和结构,连接用来说明哪个实体提供构件和哪个实体使用构件,哪个实体发送事件 和哪个实体接收时间。配置模型包括在c a d 文件中描述的分布式模型和实际的配置 方法,为了能使构件在容器中运行,配置模型定义了如何配置和启动构件,容器模 型表示一个特殊的p o a ( p o r t a b l eo b j e c ta d a p t e r , 可移植对象) 模型,它提供服务方的 构件运行环境伽。容器模型定义构件和容器之间的界面,另外它还定义了一个框架, 用于支持所需的事务处理、安全和持久化服务。 ( 4 ) 实时c o r b a 。c o r b a 平台供应商和c o r b a 用户可以通过对c o r b a 实 时技术的使用及扩充,获得很好的实时性能。 ( 5 ) 嵌入式c o r b a 。解决c o r b a 平台在嵌入式环境中的应用要求。 ( 6 ) j a v a f l d l 映射。用于从j a v a 自动产生o m g i d l ,它使分布式应用的开发者 可以只使用j a v a 语言,所需的界面( 用o m g i d l 描述) 由相应的工具可以自动产生。 ( 7 ) 防火墙。使用基于c o r b a 的应用可以在保证安全的情况下通过i n t c m e t 。 ( 8 ) d c e c o r b a 之间的协作。用于把传统的d c e ( d i s t r i b u t i o nc o m p u t i n g e n v i r o n m e n t , 分布式计算环境) 应用到c o r b a 环境中,它提供了一个d c e 平台和 c o r b a 平台在应用层协同工作的方案。这为d c e 平台上的应用平稳地过渡到 c o r b a 平台提供了基础。 c o r b a 模型的主要特点包括:基于分布对象计算、操作的透明性、位置透明 性、状态相关性、可以集成遗留应用系统等。它使一种语言中型的软件构件模型, 可以跨越不同的网络、不同的机器和不同的操作系统,实现分布对象之间的互操作, 极大的方便了大型软件的开发和集成。 2 3 - 2c o m ,d c c o m c o m 意指构件对象模型,d c o m 是分布式构件对象模型,它是c 咖的扩展,允 许c o m 构件在分布式环境里相互通信的服务。通常意义上的c o m d c 0 i i 是基于 w i n d o w s 系列平台的一个具体实现。c o m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建设工程合同主体变更协议
- 小时达即时配送运输合同
- 2026年物品回收合同协议
- 房地产广告投放合同标准版
- 2025年农产品直播带货实施方案
- 公路养护技术标准与维修方案
- 现代企业绩效管理系统设计方案
- 线上教学衔接准备工作方案
- 2026年酒店业前厅经理面试题与参考答案
- 2026年战略规划面试题及答案
- 2025年榆林市住房公积金管理中心招聘(19人)备考笔试试题及答案解析
- 2025年金属非金属矿山(地下矿山)安全管理人员证考试题库含答案
- 2025秋苏教版(新教材)小学科学三年级上册知识点及期末测试卷及答案
- 2025年及未来5年中国非晶合金变压器市场深度分析及投资战略咨询报告
- 中文核心期刊论文模板(含基本格式和内容要求)
- 2024-2025学年云南省普通高中高二下学期期末学业水平合格性考试数学试卷
- 用友U8企业全面信息化解决方案
- 安徽恒光聚氨酯材料有限公司年产2000吨双吗啉基乙基醚技改项目环评报告
- 围产期母婴感染B族链球菌的防治及专家共识防治指南PPT课件院内培训
- 双梁桥式起重机设计毕业设计说明书
- 1例内镜下经鼻腔-蝶窦垂体瘤切除术的护理
评论
0/150
提交评论