构件库系统

关键词: 复用 复杂度 软件 开发

构件库系统(精选四篇)

构件库系统 篇1

目前采用Web形式开发的软件产品需求与日剧增,其规模和复杂度不断增加,开发和维护成本也不断提高,传统的Web开发模式面临着巨大的挑战。人们在探索新软件开发方法的过程中发现,软件复用(Software Reuse)将是解决这个问题现实可行的途径[1],而软件复用的核心是建立可复用构件库系统,实现软件开发人员的合理分工,提高软件产品开发效率,缩短开发周期。软件复用是在软件开发中避免重复劳动的解决方案,其出发点是应用系统的开发不再采用一切“从零开始”的模式,而是以已有的工作为基础,充分利用过去应用系统开发中积累的知识和经验[2]。它的基本思想是借鉴现代工业生产中的标准构件复用思想,通过公共的可复用构件来集成新的软件产品,其本质上是运用现存软件系统的产品构造新的软件系统,在软件开发中避免重复劳动。国内外软件界对可复用软件构件库系统及其相关技术进行了深入的研究,并取得不少成果,比较有影响,例如北大青鸟构件库管理系统(JBCLMS)、REBOOT系统,RIG及NATO标准,ALOAF模型等。

在分析各类构件库系统的基础上,针对Web应用开发领域,建立了原型构件库系统,系统完成了用户认证授权、构件添加、构件修改、构件删除、构件入库以及下载、构件检索和维护等功能,以实现在Web应用开发过程中对软件复用的支持,使基于软件复用技术的Web应用开发人员可以快速有效地开发各种Web应用软件,提高Web应用软件的开发效率。

1 构件库系统的定义和职能

构件库系统是整个软件复用的中介和核心,是可重用构件的集合,并作为开发可重用构件和基于可重用构件开发这两个生存周期的联系体系[3]。具体地说,构件库是软件构件的基础物质仓库,是分类和管理可复用构件资产的基础设施,它在构件开发人员和构件使用人员之间起到了桥梁作用,如图1所示。

构件库系统存储并管理着大量的构件,系统必须对这些构件进行有效的组织和管理,同时还需要为构件库系统使用者提供方便有效地构件检索工具,支持开发人员在软件开发过程中方便检索、理解和获取构件。构件库系统主要职能包括:构件的选取、构件的验证、构件的描述和分类、构件的入库存储、构件的检索、构件库系统的管理和维护、构件库系统的安全访问管理等。

2 构件的定义以及存储模型

2.1 构件的定义

构件来源于英文的“Component”,对构件的定义一般来说,有广义与狭义之分。广义构件是指可以被明确标识的软件制品,它可以是需求分析、设计、代码、测试用例、文档或软件开发过程中的其他产品。狭义软件构件是指具体的、可复用的、提供明确接口完成特定功能的程序代码块[4]。

鉴于Web开发过程的特殊性,在此认为在Web开发各个阶段的各种成果对于今后的复用工作都是非常有价值的,都应当作为可复用构件存储,因此构件定义为在Web应用开发过程中的一切有复用价值的产品。例如在系统设计前的需求文档、系统的设计文档、各种模块实体代码、测试阶段的各种测试用例、各种图片或者多媒体资料等,可见这里涉及的构件的表现形式多样,粒度大小差异明显。

2.2 构件的存储模型

对于构件的存储方式,首先想到使用关系数据库(RDBMS),其具有储存和管理大量数据的高效性、理论的严密性和技术的成熟性。但是在实际应用中,由于本文定义的构件的结构相对复杂,存在形式多种多样,粒度大小多样且尺度相差有时很悬殊,这与关系数据库对所保存的数据项一般都有尺寸限制,不宜过大的要求不相符合。文件系统(Files)的存储特点是存储容量大,对存储的数据体积无限制,存储数据的形式也没有要求,但文件系统的查询效率低,不利于大量数据的存储以及管理。因此,单一使用关系数据库或者文件系统都不完全符合对构件存储的需要。

在该构件库系统中利用关系数据库来存储构件的信息部分,利用文件系统来存储构件的实体,并通过信息文件中的地址信息与构件实体建立链接。其中,构件信息中包含构件的分类信息,即按照某种分类方式确定的分类信息;基本信息是指对构件基本属性的描述、构件的说明等,可增加对构件理解的说明文件,例如构件的作者、入库日期、下载次数、构件说明文件等;地址信息则是指对构件实体实际存放位置的描述,如图2所示。

3 构件库系统的体系结构

本文构件库系统基于浏览器/服务器(B/S)模式,采用Web多层结构,如图3所示构件库系统分为三层结构:视图层、业务层、数据层。

视图层主要完成系统与客户的交互工作,当客户通过浏览器向指定的Web服务器发出申请时,Web服务器将客户端的申请处理后,把处理的相应的内容再传送给客户端浏览器。

业务层将视图层提出的请求转换为对数据层的请求,并将数据层返回的数据处理,最后提交视图层。业务层负责完成各种应用逻辑,在构件库系统中,业务逻辑层体现为构件库系统的主要功能和实现,是构件库系统的核心。

数据层包括数据库和及其服务与管理系统,负责对从业务层传来的数据进行处理。并且对业务层屏蔽处理细节,屏蔽的掉了底层数据库系统的特殊性,使逻辑可以按照统一的接口访问库中的数据,提高整个系统的灵活性和可移植性。

用户对数据的访问请求,通过视图层的客户端浏览器提供的用户界面输入,并经业务层中业务逻辑转换为对数据层的数据请求,数据层的服务器处理完请求后,将结果通过业务逻辑层,返回给视图层由视图层输出显示用户所需的结果。构件库系统采用浏览器/服务器(B/S)模式及多层体系结构,有助于功能的独立与系统的扩展,同时降低了系统的复杂性和耦合度,并且使得系统更稳定、方便扩展、维护简单。

如图3所示,本文构件库系统设置了两类用户,构件库使用人员和构件库管理人员,他们都通过友好的界面接口使用构件库系统的服务。其中构件库使用人员主要使用构件检索工具获取自己感兴趣或者需要的构件,构件检索工具支持两种检索模式:关键字查询以及刻面分类查询。同时因为对构件理解最深刻的是构件开发人员本身,因此构件管理工具可以让构件开发人员添加和管理自己开发的构件。信息反馈工具可以让构件的使用者与该构件的开发者进行交流,以便构件的更新与改进,同时构件库使用人员也可以使用信息反馈工具与系统管理人员交流,讨论构件分类方式以及构件库系统管理等问题。

构件库的管理人员有权限访问并管理所有构件,并可以使用用户管理工具对构件库系统所有用户的信息以及权限进行维护管理。由于Web开发的技术日新月异,新技术、新术语不断更新,构件库管理人员可以使用刻面术语管理工具动态维护系统刻面及术语空间。信息发布工具主要用于发布系统通知信息及系统消息,构件库管理人员使用系统的文本编辑器编辑发布信息。

4 构件库分类方式以及构件的描述

4.1 构件库分类方式的确定

构件的表示、分类和检索方法,决定了构件库系统的组织、管理,以及构件库系统的查询和用户对构件的理解,是构件库系统研究的基础性问题,也是构件库系统的关键性问题。对单个构件的复用可以划分为构件的识别和检索、构件的理解和适应性修改三部分,复用成本公式[5]为:

复用的成本=检索成本+理解成本+修改成本

有效的检索机制能大大降低构件的检索成本和理解成本,对构件的分类就是为了高效方便的检索,而构件的分类最终体现在构件的分类描述上。

Frakes W和Mili H分别对现有的构件表示和检索方法进行分类。Mili按复杂度和检索效果的递增将其分为基于文本、基于词法描述子的和基于规则的编码和检索三类。Frkaes W将现有的构件表示方法分为人工智能方法、超文本方法、和基于库科学/信息科学的方法[6]。

人工智能方法采用人工智能的学习和推理机制,来维护一个表示构件的知识库[7]。该方法采用构件知识表示语言,来描述构件的属性及其特征和用于检索构件的知识。这种方法目前处于实验阶段,还没有得到广泛应用。

超文本方法使用超文本技术,主要应用于非线性关系的检索领域,通过基于属性的元模型链接为开发人员提供一个有用的功能集合,从而找到可重用的构件[8]。

基于各种形式化规格说明的方法[9,10],需要使用专门的形式化规范语言对组件进行全面细致的描述。当查找构件时,系统会对两个构件进行完整的匹配,这样的查询方式具有较高的查准率,能够满足大型构件库系统的检索要求。但是形式化规范语言的复杂性,使这种方法的广泛应用受到了很大的限制

在实际的构件库系统中,往往采用基于库科学/信息科学的表示方法[11]。信息科学方法又分为基于受控词汇表(如枚举、刻面)分类和基于不受控词汇表分类两种形式,其中以关键词分类(Keyword)和刻面分类(Faceted)两种应用最多。现在的大型通用构件库系统应用较为普遍的也是刻面分类方式,例如REBOOT模型从抽象、操作、操作对象、依赖四个刻面对构件进行描述,青鸟构件库也是采用以刻面分类为主、多种分类模式相结合的方法对构件进行分类描述[12]。

通过对上文中介绍的几种查询方法进行比较分析,结合Web应用系统组件库查询的特殊性,确定使用刻面分类法对组件进行描述和分类,如表1所示,本文确定四个主要刻面:

(1) 功能描述(Function Description):描述构件的具体实现功能;

(2) 层次形态(Level & State):描述构件在软件开发过程中所处的层次阶段及构件的具体形态;

(3) 开发环境(Develop Environment):描述构件的开发工具以及开发语言;

(4) 应用环境(Application Environment):描述构件在使用的时候所需要的环境,包括操作系统、数据库系统、Web服务器。

4.2 构件分类描述的实例

根据上文确定的刻面分类模式,举一个构件描述的具体实例:假设构件(ID=0001)是用于用户登录的模块,其功能描述为用户管理(User Manage),层次已处于测试阶段(Testing),形态为代码(Code)、是使用开发工具(Eclipse)开发的开发语言为(Java),其部署环境为操作系统(Linux)、Web服务器(Tomcat)、数据库(MySql),构件相应的XML描述如下:

<Component>

<Function-Description>User Manage</Function-Description>

<Level-State>

<Level-Description>Testing

</Level-Description>

<State-Description>Code

</State-Description>

</Level-State>

<Develop-Environment>

<Develop-Language>Java

</Develop-Language>

<Develop-Tools>Eclipse

</Develop-Tools>

</Develop-Environment>

<Application-Environment>

<OS>Linux</OS>

<Web-Server>Tomcat</Web-Server>

<Data-Base>MySql</Data-Base>

</Application-Environment>

</Component>

5 构件库系统检索的设计

构件库系统建立的根本目的就是为了最大限度地支持构件复用。构件库系统的使用者最终的目的是快速有效地获取对自己有用的构件。在基于合理的分类以及有效地构件描述基础上,构件检索的效率与构件检索策略多样性、检索机制的灵活性、检索用户界面良好性相关。检索机制是构件库系统的重要机制,构件库系统应为使用者提供多样化的查询手段,灵活方便的查询界面以及丰富的浏览信息,确实有效地减轻了构件库系统使用者的负担,减少检索时间,提高检索效率。由于构件库系统使用者的经验和需求各不相同,一般构件库系统会设置多种检索方式,本文Web构件库的检索方式采用刻面分类检索为主要检索方式,同时支持关键字检索方式,检索机制结构图如图4所示。

构件库系统的两种检索方式各有利弊,关键字检索方式更直接、更简单,检索速度和查全率都比较好,但是检索结果并不是非常精确,适合快速粗略的初次检索。刻面分类检索方式相对比较复杂,需要使用者具有一定的行业经验,比较熟悉行业的专用术语,但是它的检索结果更精确,也更符合使用者的要求。构件库系统的用户可以根据自己的实际情况和需求,自己选择某一种检索方式或者两种检索方式结合使用。

同时构件库系统提供多种辅助工具支持,从图4中可以看出主要包括反馈工具、体系管理工具、构件管理工具。体系定制工具完成构件分类体系的定制和维护,对构件的分类方式进行管理,包括刻面的选择以及术语空间的动态维护。构件管理工具通过构件的分类体系对构件进行合法性验证,剔除不符合需求的构件,同时可以对构件进行随时更新修改。反馈工具可以给用户提供和构件制作者交流的途径,同时可以查询过去的反馈信息,也可以和构件库系统管理者讨论构件分类体系的问题,对检索的效率起很大的作用。

6 结 语

基于构件库的软件重用是一种高效的软件重用技术,在此给出了面向Web应用的构件库系统的整体设计方案,包括构件库系统的职能要求、体系结构设计、存储方式设计、分类方案以及检索方法设计、构件的完整描述模型建立等,并完成了面向Web应用的构件库管理原型系统的搭建。已在开发新的Web应用中开始试用,取得了预期的效果,为项目的开发提供了有效地复用构件支持。同时原型构件库系统仍存在一些问题,下一步工作主要是进一步优化系统性能,努力提高系统的查全率、差准率以及系统响应时间,同时考虑改进匹配算法以及匹配模型,进一步提高系统检索的模糊匹配能力。

摘要:软件复用技术被认为是解决软件危机的有效方法,可以大幅度提高软件开发效率和质量,其核心是建立可复用构件库系统。构件库系统最主要的问题是如何对构件进行准确描述和分类,以便更快、更准地查找到用户需要的构件。在此采用刻面分类方法在Web应用开发领域中建立软件构件库,完成了构件的定义和准确描述及分类,确定了构件的存储模型,采用关键字检索和刻面分类检索两种检索方式,有效提高了检索效率和准确性,实现了在Web应用开发中对软件复用的支持。

关键词:Web应用开发,构件库,软件复用,刻面分类

参考文献

[1]Alan Brown W,Kurt Wallnau C.The Current State of CBSE[J].IEEE Software,1998,15(5):37-46.

[2]杨芙清,梅宏,李克勤.软件复用与软件构件[J].电子学报,1999,27(2):69-75.

[3][美]Carma McClure.软件复用技术——在系统开发过程中考虑复用[M].廖泰安,宋志远,译.北京:机械工业出版社,2003.

[4]孙静.地理信息系统组件库管理系统开发研究[D].重庆:重庆大学,2003.

[5]常继传,李克勤,杨芙清.青鸟系统中可复用软件构件的表示与查询[J].电子学报,2000,28(8):20-23.

[6]Frakes W,Gandel P.Representing Reusable Software[J].Infor-mation and Software Technology,1990,32(10):645-660.

[7]Prieto-Diaz R.Implementing Faceted Classification forSoftware Reuse[J].Communications of the ACM,1991,34(5):88-97.

[8]Tomas Isakowitz,Robert J Kauffman.Supporting Search ofReusable Software Objects[J].IEEE Trans.on Software En-gineering,1996,22(6):407-423.

[9]Gibb K,McCartan C,O′Donnell R,et al.The Integration ofInformation Retrieval Techniques within a Software ReuseEnvironment[J].Journal of Information Science,2000,26(4):520-539.

[10]Mili H,Mili A.Reuse-based Software Engineering[M].New York:John Wiley&Sons Inc,2002.

[11]王渊峰,张涌,任洪敏.基于刻面描述的构件检索[J].软件学报,2002,13(8):1 546-1 551.

水文过程线构件库及其应用 篇2

目前软件构件技术得到了深入的研究和广泛应用,出现了多种构件实现模型、构件库及构件组装工具和平台,如CORBA[1,2]、COM/DCOM[3]、EJB/Java bean[4]等实现模型,青鸟工程构件组装工具[5],C2/ArchStudio[6]、UniCon[7]、Koala[8]、Visual Basic等构件组装平台,模型驱动的软件开发[9]等等。

过程线用图形描述若干个对象随时间的变化,在许多领域中都广泛应用。但在生成和应用过程线的软件(简称“过程线软件”)开发中,不同的公司或企业往往各自为政,开发几乎都是从零开始,很少复用已有成果。原因主要在于复用的环境和条件较差。即便复用,也是对源代码的简单重用,没有便于复用的成果及环境和工具的支持。提高这类产品的质量、开发效率和扩展性,降低开发成本,困难较大。

1 过程线构件库

1.1 模块的标识与构件化

过程线软件的开发涉及多类型的可以复用的模块,图形化展示与应用是其核心内容之一。按功能和所述层次及位置,可以把过程线的视图部分划分为信息栏、实现体和控制栏。信息栏用来完成重要信息的发布,如报警信息;实现体主要完成固有和获取数据的处理结果的图形图像化展示;控制栏用来完成对显示的信息和展示的图形图像的控制。

所有的过程线都是由一系列成员及成员间的关系组合而成,进而形成的一个有机整体。在完成过程线有关的数据处理与图形图像化展示中,可以发现一些可以完成独立功能的模块,如坐标系、序列线、图表、数据挖掘处理、截图等。

把信息栏、表现体、控制栏、坐标系集合、序列线集合、点集合、表、表头、表体、表尾、坐标系、序列线、点、坐标系的名称、直线作为实体对象对待,而位置、线宽、颜色等要素看作实体的属性,从而得到各表现对象的组织结构,如图1所示。

图形化展示的内容,如时间坐标系,可以运用到所有时间类型的过程线中,决定其显示效果的因素主要有开始和终止时间、时间刻度、坐标系的颜色、线的粗细、显示的开始和结束位置等,与其它成员如标题、序列线没有直接和必然的联系,这样可以把它截取出来,包装为构件,决定它显示效果的各项因素就作为构件的输入接口。从而实现统一的管理,方便其他开发人员的使用。

对于能完成独立功能,在各种类型过程线中常出现的模块,需按照一定的规则对它们进行描述,进而实现对这些“成员”复用。对这些成员进行标识和描述,进行规范化管理,实现模块的构件化。

按照粒度的大小,可分为原子构件(如点的显示)、复合构件(如坐标系、断面示意等)。把所有类型的“模块”构件化后,过程线构件就可以由一系列的计算构件、业务构件、应用构件、页面标签、基础构件等完成各种独立功能的构件实体构成了。

1.2 过程线构件库管理系统

构件库是用来有效组织和管理大量的可复用构件及相关信息,并提供相应的辅助工具,支持在软件开发工程中方便查询、理解和选取构件的管理系统。过程线构件库用来组织管理与过程线开发相关的一系列原子构件、连接器、复合构件及相关信息和文档。与一般意义上构件库的不同在于它具有领域特性,加入特有成员,能完成比较专业的功能。过程线构件库的开发和实现,可以为相关公司或企业提供相应的产品或半成品,从而实现过程线构件开发的快速、高效性和所得软件产品高质量、低成本、易维护的目的。

构件库管理系统体系结构如图2所示。

安全管理主要涉及构件的安全性和完整性控制。完整性控制主要完成对入库构件的合法性和一致性检验,保证入库构件语义的正确和有效。并发控制主要是防止多个应用程序同时对同一个构件进行操作。查询语言处理器提供允许用户对构件库的中构件查询及查询方式的接口。构件管理器实现对构件库的命名、版本、接口、事务等管理和远程调用,并与安全管理和并发控制协同工作。构件对象管理器完成对构件库中大量构件对象的存储、存取及对象间相互操作的管理。物理构件库用于存放实际的各种类型构件和连接器。CDL编译器将构件库的外模式翻译成内部表示,再转换为内部模式,然后与查询语言处理器、构件管理器相连以实现构件库管理系统的内部运行管理机制。

1.3 过程线构件检索与匹配模型

为了得到满足开发人员所需要的构件,构件的检索与匹配是一个非常重要的环节。检索与匹配主要是在已建立的构件库管理系统帮助下,完成构件的识别与匹配。用户按照一定的规则,在可视化工具的帮助下,对所需构件进行描述,检索工具按照描述的信息,结合构件、连接器相关信息,完成构件的检索。可视化工具在获取所需构件的描述信息后,把信息转换为确定模式的XML文档,解析器对文件进行解析,基于语义的构件检索系统会根据用户的信息描述得到最大相似度的构件。构件库检索匹配系统的框架如图3所示。

1.4 过程线构件库的实现及管理

过程线构件主要由基础构件、连接器、应用构件、计算构件和页面构件,以及能完成独立、确定功能的过程线复合构件组成。过程线构件存放在过程构件库中,存储结构如图4所示。

1.5 构件库的管理

参照构件库的管理流程,过程线构件库的管理流程如图5所示。

过程线构件库中,除了一般的选取、转换、验证、分类、入库、检索外,也可以发布,用户利用发布的过程线构件库,通过配置完成产品的升级和维护

2 过程线复合构件的组装

2.1 组装流程

复合构件的组装,主要考虑复合构件的框架的建立、检测、更新,以及构件的匹配、组装机制等。构件组装流程如图6所示。

2.2 组装方式

过程线连接器起到描述过程线构件之间依赖关系的作用,针对过程线中出现的连接控制方式,把过程线组装分为连接、选择、循环、并行、顺序和中断等6种形式。

这里以Ii代表输入,以Oi代表输入,Ci代表构件,以代表执行方向,代表连接器,代表接口。图中只给出1个输入和输出接口,实际可能有多个。连接器的输出,对应着构件或连接器的输入;构件的输出,对应着连接器的输入,构件与构件间的连接,均由连接器完成。连接器与连接器可以组成复合连接器。

(1)选择组装方式

选择组装方式如图7所示,连接器Connector1起选择控制作用,即根据选择条件,对输入I1的流向进行选择,Connector1的输入I1,输出O1,即C1或者C2的输入I1′,本质没有区别。构件执行的结果O2,即输出I2,通过Connector2,可能存在协议转换(即Connector2完成协议转换功能等操作后),输出O2′。

(2)循环(重复)组装方式

循环组装方式如图8所示,输入为I1,经过构件C处理,输入为O1,C的输出On作为输入传给connector,在循环结束前,连接器把输出作为输入传递给C。根据循环条件,循环结束前循环n次,最后得到输出On+1。

(3)顺序组装方式

顺序组装方式如图9所示,连接器Connector1的输入为I1,根据控制条件,控制C1和C2的顺序操作,其中,C1和C2的输入都为I1,输出分别为O2和O2′。输出同时作为Connector 2的输入,经过Connector 2得到输出O3+O3′。和并行组装不同的是,C1和C2完成的操作有先后顺序之分。

(4)连接组装方式

连接组装方式如图10所示,构件C1的输入为I1,输出为O1,连接器的输入为O1,即C1的输出,连接器的输出即构件C2的输入。连接器起管道的作用,把构件C1的输出,传输到C2,处理的结果最终从C2输出,即O2。

(5)并行组装方式

并行组装方式如图11所示,Connector 1的输入为I1,根据控制条件,控制C1和C2的并行操作,C1和C2的输入都为I1′,输出分别为O2和O2′。输出同时作为Connector 2的输入,经过Connector2得到输出O3+O3′。C1和C2同时完成各自操作。

(6)中断组装方式

中断组装方式如图12所示,Connector 1的输入为I1,根据控制条件,当C1或C2在执行操作的过程中,在连接器的干预下完成中断操作,开始执行C2或C1的操作。其中,C1和C2的输入都为I1,最终输出分别为O2和O2′。输出同时作为Connector 2的输入,经过Connector 2得到输出O3+O3′。

选择组装是在多个构件中选择若干来完成操作任务;并行组装是保证各构件并行执行,完成并行操作;顺序组装是多个构件顺序完成操作任务,其顺序一般不能交换;中断组装是多个构件完成任务时,构件操作因其它构件运行中出现的事件而中断操作任务,当条件满足后再继续执行或终止任务执行。

2.3 复合构件运行

结合已有模块完成构件的匹配后,即可得到构件与构件、构件与连接器,以及连接器与连接器的关系模型,这些关系可以通过1个XML配置文件进行描述。复合构件的运行可以有两种方式:(1)在组装平台上完成实际代码件的组装;(2)在运行时以解释型的方式运行。在本文中,运用了第1种方式,即把所需的构件从构件库管理系统中检索出来,在组装平台上直接完成代码件的组装。

3 测试与应用

3.1 复合构件成员关系图的建立

下面以“河道断面复合构件”作为一个简单的示例来说明复合构件成员关系图的建立方式。

河道断面示意图是对水位示意图的1个扩充,属于时间~数值&数值~数值类型。它不仅反映水位和岸(堤)顶高程的关系,还可以反映水位与河道横断面、水位与流量等的关系,能更直观地观察河道水流的实际情况,通过动画的渐变演示还可以直观地查看水位的演变过程。示意图可以显示时间及相应水位,时间与水位的位置,可以通过鼠标拖动实现互换。有“动画”、“停止”、“暂停”按钮分别实现动画、停止和暂停功能。同时要有截图功能、提供帮助信息、根据设定的算法实现获取数据的处理等。河道断面复合构件(以下用DM_CC表示)包括了多个成员构件和连接器。通过检索工具,从构件库中检索得到所需构件,在构件间建立联系并对构件适应性修改,得到可视化的DM_CC成员关系图,关系图如图13所示。

根据DM_CC生成的描述配置文件框架(XML文件的框架部分)如下:

配置后系统运行所得的结果如图14所示。改变配置信息,可改变图14中的各个要素及图示。

4 结语

根据领域内构件复用规模和范围有限的特点,参照轻量级体系结构,按小容量、多层次和应用灵活方便的原则,讨论了既存贮原子构件,又支持构件复合与应用的过程线构件库,展示了基于过程线构件库的过程线软件的组装生成过程,表明建立过程线构件库的方法在提高领域软件复用程度方面是可行的,对水利信息系统软件的开发与维护具有一定的参考意义。

摘要:用过程线的形式来表示时序数据,是许多信息系统均采用的通用方式。以水利领域为背景,选取水文过程线功能构件为研究对象,根据领域内构件复用规模和范围有限的特点,参照轻量级体系结构,按小容量、多层次和应用灵活方便的原则,建立了既可存贮原子构件,又支持构件复合与应用的水文过程线构件库。通过配置,对构件库进行了多种层次、多种类型构件的复合与组装测试,证实了建立过程线构件库的方法在提高领域软件复用程度方面的可行性。

关键词:构件库,复合构件,水文过程线,组装,水利领域

参考文献

[1]OMG CORBA Specification,http://www.omg.org/corba/whatiscorba.html[EB/OL]

[2]Ben-Natan R.,CORBA--A Guide to the Common Object Reques Broker Architecture[M].McGraw-Hill,New York,1995.

[3]DCOM Technical Overviewhttp://WWW.Microsoft.com/Ntserver/library.dcomtec,2002[EB/OL].

[4]SUN,http://develoner.iava.sun.com/developer,2000.[EB/OL].

[5]杨芙清,梅宏,李克勤.支持构件复用的青鸟Ⅲ型系统概述[J].计算机科学,1999,27(2):68-75.

[6]Medvidovic,Nenad and Richard N.Taylor.A Classification and Comparison Framework for Software Architecture DescriptionLanguages[J].IEEE Transactions on Software Engineering 26,1(2000),70-93.

[7]Shaw,Mary,Robert DeLine,Daniel V.Klein,Theodore L.Ross,David M.Young and Gregory Zelesnik.Abstractions for SoftwareArchitecture and Tools to Support Them[J].IEEE Transactions on Software Engineering 21,4(1995),314-335.

[8]van Ommering,Rob.Building Product Populations with SoftwareComponents[A].In 24th International Conference on SoftwareEngineering[C].ACM,NewYork,2002,255-265.

构件库系统 篇3

软件复用可以提高软件开发的效率和质量,基于构件的软件开发是一种支持软件复用的有效途径[1]。随着基于构件的软件复用的日渐深入,构件库作为分类和管理构件的基础设施的作用变得十分重要,公共构件库和企业构件库已经积累了大量的构件,为构件的使用者和开发者提供了极大的便利。为实现各构件库间的软件资源共享,公共构件库与企业构件库之间将实现基于构件资源的互联互通,形成分布式构件库。

2 相关工作和技术

2.1 构件库及互操作

构件库能够有效地组织和管理大量的可复用构件,能够支持对构件的描述、存储、管理,提供良好的检索手段,提供对构件的度量及对构件质量的评估,并提供相应的工具支持开发者在开发过程中方便地查询、理解和选取构件[2]。

目前构件库互操作策略是建立一个公共的数据模型,定义库之间交换软件构件所需要的信息。从最早的BIDM和UDM,到北京大学的BCDM[3]和ECLDM[4],以及可复用资产规范RAS。其中RAS正成为软件资产描述的工业标准,是关于可复用软件资产的结构、内容和描述的指导原则。

2.2 Web服务

Web服务是由URI标识的软件应用程序,其接口和绑定可以通过XML构件进行定义、描述和发现,Web服务支持通过基于因特网的协议使用基于XML的消息与其他软件应用程序直接交互。基于Web服务的软件构件解决了不同运行平台之间的互操作问题,成为软件构件技术发展的新方向。

3 分布式构件库互联模型设计

公共构件库和企业构件库是通过Web服务来完成各类型信息交互的。构件管理系统用于管理企业构件库的构件并实现与公共构件库的交互,公共构件库网站用于提供公共构件库对外的各项服务以及与其他应用系统的交互功能。

3.1 交互过程

为了更好的为企业构件库用户提供个性化服务,实现公共构件库与企业构件库间各种信息的自由交互,进行如下分布式构件库的交互设计:

1)资源信息共享。企业构件库能够检索、查看和下载公共构件库的资源;公共构件库能够检索、查看和下载企业构件库允许对外共享的资源。企业用户登录构件管理系统,输入查询请求,进行本地查询,同时调用公共构件库的Web服务进行异地查询,并将查询结果进行转换,与本地查询结果进行整合,最终一起展示给用户浏览。

2)构件信息发布。公共构件库增设企业用户通过构件管理系统发布构件的功能,借助公共构件库的Web服务直接提交构件,经过入库审核后直接发布到公共构件库网站。

3)提交资源需求。企业用户如有对构件的需求,可以调用公共构件库的Web服务,公共构件库记录提交需求并定期到与之互联的其他构件库进行查询,并将查询结果返回给企业用户。

4)信息订阅与推送。企业用户注册其关注的资源信息,调用公共构件库的Web服务提交入库。公共构件库更新内容时,向企业用户推送更新的资源信息。

3.2 数据交换模型

由于各个构件库的分类描述机制是异构的,因此构件库间进行交互时需要进行构件信息的转化。根据各构件库构件描述模型的异同,结合RAS中对软件资产的描述,抽象出用于进行构件描述信息转化的数据交换模型,如图1所示。

该模型总结了用于描述可复用资产的必要元素,其中资产、剖面、分类、使用方法、解决方案、相关资产为核心RAS的基本元素。资产元素记录了可复用资产的最基本信息,包括名称和标识符;剖面描述了该资产的类型,引用其他模型元素来对自身进行描述;资产的分类可以从一个或多个视角,本模型从主要适用语言、操作系统、功能类型、国际化支持等侧面进行描述;使用方法记录资产在具体环境下是如何使用的,执行哪些必要的活动等;一个资产提供一个解决方案,解决方案通过一个由若干制品组成集合来提供,制品是软件资产可复用的核心,制品都有名称、URI地址,类型及描述信息;相关资产记录了与该资产满足某种关系类型的任意数目的资产;所有权信息用于标注该可复用资产的有关知识产权和所有者的信息;资产质量记录使用者对该可复用资产的评分情况;用户使用情况从浏览次数、下载次数和复用次数三方面体现用户对于该资产的关注。上图为基于RAS的核心资产描述模型,它作为公共的数据交换模型具有较高的抽象性,在实际使用和转换中动态的扩展。

4 结束语

本文进行了公共与企业构件库间的交互过程和数据交换模型的设计,为企业用户提供了功能强大的个性化服务,并为实现分布式构件库的信息共享和服务协作打下了坚实的基础。在不久的将来,可逐步实现以各地公共构件库为骨干节点,众多领域的企业构件库为子节点的互联体系,从而实现更大范围内的软件资源共享和协作。

参考文献

[1]杨芙清,梅宏,李克勤.软件复用和软件构件技术[J].电子学报,1999,27(2):68-75.

[2]薛云皎.基于智能主体的分布式构件库相关技术研究[D].上海:复旦大学软件工程实验室,2006.

[3]潘颖,刘洋,谢冰,杨芙清.支持管理在线构件的基本构件描述模型[J].电子学报,2003(12A).

构件库系统 篇4

软件产业发展并形成规模经济的关键因素是标准构件的生产和构件的复用。其中, 能否对构件和构件库实施有效管理成为CBSD成败的关键。构件库管理存在以下困难:

(1) 检索的准确率比较低

在很多文献中提及的构件检索匹配技术有关键字匹配、刻面分类匹配、基调匹配、构件规约匹配等。关键字匹配是一种通过一组关键字进行简单匹配的方法, 它已被证明缺乏准确性, 容易产生大量的冗余构件。刻面分类检索方法是一种基于预定义分类特征的方法, 它比单纯的关键字检索匹配能对构件提供一个更好的描述, 但是用户必须熟悉分类模式以便有效地检索构件。

(2) 存在异构性

现存的多种标准各有所长, 没有谁取代谁的趋势, 只能在一定时期共存, 当各种遵从不同标准的系统需要互操作时, 它们之间难以兼容, 而采用桥接的方法又会大大增加系统的复杂性;主流的服务器端构件支持平台尚不能很好地支持Internet应用, 而且客户与服务器的连接仍是紧耦合的方式, 不能完全满足灵活性的需要;各个专用的软件构件库, 对构件的表示以及组织形式上各不相同, 不具备被系统以外其他构件或人们使用的灵活性。尽管Internet上构件资源十分丰富。却仍然造成了构件复用者由于不知道构件的存在而需要重新开发, 对软件复用的实际应用形成了一个巨大的障碍, 尤其随着在线构件库的不断扩展, 在Internet上对异构软件构件库的检索和管理方面出现了问题。

1 基于SOA的分布式构件库管理模型

分布式计算将网络上分布的软件资源看作是各种服务, 下一代Web服务的基础架构的SOA (Service-oriented architecture, SOA) 是一种有效的解决方案。主要特点有:在思想方法层面提供了应用开发和集成的架构、策略, 不再只是着眼于技术层面;提供了可供使用的功能单元, 即组件模型;提供了一种功能单元的交互和集成的方法;独立于平台、语言的松耦合机制;独立的功能实体;大数据的频率访问;基于文本的消息传递;根据这些特点, 现在几乎所有的SOA应用场合都是和Web Service绑定的, Web Service技术在几方面体现了SOA的需要:首先, 基于标准访问的独立功能实体满足了松耦合要求:在Web Service中所有的访问都通过SOAP访问进行, 用WSDL定义的接口封装, 通过UDDI进行目录查找, 可以动态改变一个服务的提供方而无需影响客户端的配置, 外界客户端是根本不关心访问服务器端的实现。其次, 适合大数据量低频率访问符合服务大颗粒度功能:基于性能和效率平衡的要求, SOA的服务提供的是大颗粒度的应用功能, 而且跨系统边界的访问频率也不会像程序间函数调用那么频繁。通过使用WSDL和基于文本 (Literal) 的SOAP请求, 可以实现能一次性接收处理大量数据。最后, 基于标准的文本消息传递为异构系统提供通讯机制:Web Service所有的通讯是通过SOAP进行的, 而SOAP是基于XML的, XML是结构化的文本消息。从最早的EDI开始, 文本消息也许是异构系统间通讯最好的消息格式, 适用于SOA强调的服务对异构后天宿主系统的透明性。综合上述观点, Web Service是当前SOA的最好选择。

所以, 我们提出如图1所示基于SOA的分布式构件库管理模型解决构件管理的异构性问题。

首先, 将构件库或分散的独立构件包装成Web Services, 如图2所示。

构件生产方提供分散的独立构件或者构件库, 构件提供方将构件用soap包装为Web Services, Web Services通过WSDL协议与外界进行交互, 彻底屏蔽了构件的异构性, 而且提供不同平台应用程序之间的交互协作, 利用公共标准和协议, 基于文本的数据格式, 利用http协议, 可不用更改防火墙设置, 使不同公司和不同位置的应用程序和服务可以集成, 使infrastructure内的服务和组件可以重用, 松耦合, 从而支持分布式的应用集成。在基于SOA的分布式构件库管理模型中, 每一个服务都是由构件或构件库封装成的Web Services, 彻底屏蔽了构件的异构性。为能够准确快捷的发现自己想要的构件所包装成的Web Services, 定义一个统一的xml模式, 提出最大匹配算法的实现。

2 基于SOA的分布式构件库管理模型中的构件检索

在基于SOA的分布式构件库管理模型中对构件的检索转化为对服务的检索, 转化为对uddi的检索。UDDI提供标准化的、透明的、专门描述Web服务的机制, 具有发布各种Web服务描述信息的能力。为减少查询结果冗余, 提高查全率和查准率, 统一Web Services返回的xml格式, 如图1所示, 以Weblogic Service平台为例, 使用XQuery映射, 使调用由构件包装成Web Services返回的xml格式保一致。基于XCM模型设计返回xml的统一结构。XCM模型是利用构件本体论提出。主要思想是把一个构件分为三个主要的部分:基本信息、特征集和设计模式。基本信息指的是构件的版本信息、包、实现语言、操作系统、发布者等, 特征集是指属性、方法和事件的集合, 而设计模式则描述了一个构件如何用一些预先存在的子构件来构造。最终形成的构件本体框架。

创建一个文本输入构件包装成的Web Services的返回xml文件:

利用这个xml文件, 用XMLSPY或其他工具中转化为模式文件 (Schema文件) Components.xsd, 作为在XQuery映射的模式文件, 用作Web Services返回xml的模式, 仅规范了不同构件模型描述上的差异, 提高了异构构件库的互访性, 同时减少了描述成本, 还在基于查全率的基础上有效提高了构件的查准率。

3 结束语

我们针对分布式构件库管理不足, 充分利用面向服务架构的特征, 提出基于SOA的分布式构件库管理模型, 将构件包装成Web Services, 屏蔽了分散独立的构件或构件库的异构性。提出了统一xml构件信息描述模型, 利用XQuery映射统一Web Services返回的xml格式。在UDDI中注册后, 将对构件的查询转化为对uudi的查询。提高了检索的构件服务的查全性和查准性。

参考文献

[1]曾一, 郭永林, 曾勇.基于J2EE平台的Java构件库的研究和实现计算机科学.2006.

[2]OMG CORBA specification[EB/OL].http://www.omg.org/corba/whatiscorba.html.2007.

本文来自 古文书网(www.gwbook.cn),转载请保留网址和出处

相关文章:

古建筑构件01-24

建筑构件遮阳设计01-24

基于构件的框架01-24

承载构件01-24

构件强度01-24

构件理论概述01-24

污泥减量化01-24

标准木材构件01-24

钢结构构件01-24

转换结构构件01-24

注:本文为网友上传,旨在传播知识,不代表本站观点,与本站立场无关。若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:66553826@qq.com

上一篇:古建筑构件 下一篇:构件理论概述