软件构件化生产集成支撑平台研发

2011-09-07 10:17常炳国王祥宗
计算机工程与设计 2011年8期
关键词:原子构件框架

常炳国, 王祥宗

(湖南大学软件学院,湖南长沙410082)

0 引 言

随着用户对软件的个性化、动态适应性要求越来越高,软件需求复杂性在空间和时间维度大幅提升。软件产业增长和复杂度提高与相对落后的软件生产之间存在矛盾,解决落后软件生产力的关键是推动软件的自动化合工业化技术。传统工业化生产模式是符合标准的零部件(构件)生产,以及基于标准构件的产品生产(组装)。其中构件是核心和基础,组装复用是必要的手段。实践表明,构件化软件生产是软件生产工业化的必要选择[1]。因此,软件产业规模经济的形成和发展,软件构件化、标准化组装生产成为关键。

基于构件的软件工程研究的核心热点有构件化建模规约及相应支撑工具的形成,构件化可视组装规约及其相应支撑工具的形成,构件管理、检索技术及其相应支撑工具形成,构件测试评估模型及其相应支撑工具的形成,以及真正意义上的业务层次构件化组装开发技术,统一的软件构件化标准规范制定等。对支持业务层次组装的业务构件化建模理论方法进行研究,包括业务实体的描述、分解、抽取、聚合和映射等,探索从业务到系统构件、业务构件、技术元构件的构件化分层建模分析方法。

构件与模块的最大区别是构件可以用来复用和组装,而模块只能用来复用。目前,所能见到的业务层次构件,其本身可以由一组分布式技术构件(如页面构件、业务逻辑构件、运算构件、数据构件等)组成。但业务构件间的组装技术还较少被提及,这就使得构件化组装开发主要局限于分布技术层,在业务或服务层次,严格意义上讲只存在集成。提出了在分布层构件模型基础上,增加业务构件层,使得构件模型体系既满足可通过技术构件层的可视组装实现技术构件、业务构件的组装开发,还可通过业务构件之间的可视组装实现业务构件、系统级构件、以及应用系统的组装开发,从而实现大型企业级应用软件的全程构件化组装开发。

研究了现有软件构件模型体系,从映射和建模思路上进行创造性阐述。通常,基于构件的软件组装开发过程是将软件系统切分为业务功能模块,基于分布式技术构架,通过选择或开发若干技术构件组装形成各业务模块,完成应用系统的开发工作。软件组装是局部的,在数据层、数据交换层、数据流控制层实现,而在业务层,实际上没有真正意义上的组装。那么,业务层次实现组装开发,即直接将业务分解、抽取、映射为相互间具有组装关系的一组业务构件,分别在技术层、业务层实现多级组装,形成的构件粒度更大,组装复用效率更高,为大型软件构件化组装开发提供可能。

提出了构件化建模规约,支持由业务范畴的事实模型直接自动或半自动映射形成软件范畴的构件空间[1]。这样,不仅可降低系统建模的复杂度,还可以使熟悉业务、使用系统的非软件专业人员完成应用建模的核心任务。现有的构件化建模技术中,大多直接基于系统用例在解空间(或系统空间)中展开,而由业务到软件的跨空间映射,即由问题空间(或业务描述空间)到系统空间的映射,都需由不太熟悉业务的软件专业人员通过手工的问题描述和用例分析来实现,其要求高(需要同时熟悉业务和软件技术的高级人才去完成)、跨度大(跨领域空间、跨专业)、高复杂度的特性往往使得开发难度大、开发出的软件产品和业务需求脱节。

基于代码粘合的构件化组装是较早的一类组装方法,几乎不需要支撑平台,运用目前流行的普通集成开发环境都可实现[1],如微软的VisualStudio系列、Borland的 C++Builder、Delphi、J Builder系列、Sun 的 NetBeans、IBM 的 Eclipse等。在集成过程中开发者严格遵守标准或自行定义的构件模型、构件化建模规约、构件组装规约等,在代码层次实现构件化组装。基于技术层次构件组装开发环境还不多见,目前比较成熟的典型产品有上海普元的EOS(enterprise oriented system,EOS)系列,实现了基于XML数据总线的可视化组装。基于功能服务层次构件组装平台也比较少,比较成熟的有 IBM的 Web-Sphere,其它服务层次组装的类似产品只有思路或雏形[2],大部分都正处于开发或完善之中。本文以大型管理软件为应用背景,构建一个从功能元构件组装、包装到原子业务构件、组合业务构件、子系统构件组装的全程构件化组装开发的集成支撑环境,提出了一种构件化组装集成开发平台构造方法,并就其原理进行详细阐述。

1 平台总体框架

构件化组装业务开发包括4个层次,即应用系统组装、子系统构件组装、组合业务构件组装、原子业务构件开发、组装与包装。软件构件化组装平台总体框架如图1所示。

图1 软件构件化组装平台总体框架

构件化组装把构件包中的部分对外元构件接口引申,包装成原子业务构件插头(提供接口或引用接口),把元构件中的一些事件定义引申包装成组合业务构件框架的构件插槽,同时形成原子业务构件或组合业务构件框架的整体描述 XML文件。基于 EOS平台在技术层次上实现了构件的可视化组装,基于分布式技术构架将构件进行分为页面构件类、展现构件类、处理逻辑构件类、运算构件类、数据构件等,基于构件之间的数据交互层进行组装,形成业务构件包或应用系统。

组合业务构件是业务层次最大可执行构件,由一族原子业务构件与组合业务构件框架基于构件接口组装而成,组合业务构件组装工具是组装平台的核心[3]。将一个或一族构件的引用接口抽取,绑定形成构件框架的插槽,并定义出插槽的规约。构件之间的关联都通过构件框架来实现。即构件将提供接口插入构件框架的插槽中,通过构件框架提供的插槽服务(响应执行事件,解析执行相应的构件行为)以及事件服务(事件源由构件提供,事件响应以及触发由构件框架的事件服务引擎实现)来实现构件之间的交互。组合业务构件的组装是原子业务构件及组合业务构件框架基于构件接口的组装,而各构件接口通过xml文档的形式进行描述,因此组合业务构件的组装本质是基于xml描述信息的组装,组装最终形成的组合业务构件也是以xml的形式进行描述,如图2所示。

在组装过程中,依据原子业务构件组装文件、构件框架组装文件,配置生成组合业务构件组装源文件以及组合业务构件运行文件。图3给出了组装开发总体业务流程,通过集成的EOS开发平台[4],完成元构件、原子业务构件包、组合业务构件框架包的组装开发,再通过业务构件组装平台实现构件化包装、组合业务构件的组装、子系统级构件的组装、以及应用系统的组装,分别生成原子业务构件、组合业务构件框架、组合业务构件、子系统级构件、应用系统。

2 平台功能描述

图3 构件化组装业务原理

构件化业务集成平台具有实现各类元构件识别、映射功能,提供业务构件包装器,完成原子业务构件、组合业务构件框架、组合业务构件包装,形成支持组装的业务构件。具有组合业务构件组装功能,实现原子业务构件和业务构件框架的组装;提供组合业务构件和子系统构件框架的组装工具,形成子系统级构件;提供子系统级构件与应用系统框架的组装工具,形成应用系统;提供各类构件的存储、检索等的管理工具;提供业务规则的配置、编辑等的管理工具。应用系统以应用框架模版的方式组装,各子系统级构件的接口信息直接存放在应用数据库中。子系统级构件以菜单的方式组装,各组合业务构件的接口信息直接存放在应用数据库中。集成平台提供了可视化的图形拖载,并提供可视化的信息配置界面,支持在线更新原子业务构件和业务构件框架。提供组装验证、调试等功能。平台核心组成包括构件化包装工具、组合业务构件组装平台、系统级构件组装平台、构件库管理平台、业务规则管理平台、管理软件领域构件库、业务构件服务等7个部分[5]。其功能组成构架如图4所示。

图4 集成开发平台核心功能构架

在图4中,业务构件服务解析业务构件内部、业务构件之间的工作流程、业务规则、数据传递、通讯等,并对其进行编译、执行的服务,包括各类引擎。管理软件领域构件库管理业务进行领域业务建模、领域系统分析设计、开发所形成的构件。构件库管理提供了构件模型定义、构件分类等基础管理。组合业务构件组装实现了基于业务规程规则的可视化组装,形成组合业务构件。组合业务构件组装平台主要操作功能包括组装、组装验证、发布、预览等,组装是指把多个原子业务构件及组合业务构件框架接插组装成组合业务构件、同时形成组合业务构件的插头、组装文件及运行文件;组装验证是指根据验证规则确保组装形成的组合业务构件正确有效;发布是指把组装形成的组合业务构件发布到应用服务器,同时保存到构件库中,进行统一管理与维护、标识该组合业务构件为可用;预览是指在组装客户端浏览组装效果。组装时,平台首先解析原子业务构件及构件框架的包装文件,详细列举出框架的插头插槽及原子业务构件插头信息,开发人员手工映射框架插槽及原子业务插头的对应关系,并选择合适的业务规则进行插槽及插头参数的映射约束,最后再选择包装框架的插头形成组合业务构件的插头。系统级构件组装基于子系统构件框架、组合业务构件集,实现可视化的应用系统组装。子系统构件框架通常是菜单树,组合业务构件对应于菜单树的叶子项,是应用系统的基本部署单元。业务规则管理为最终用户提供一个可视化的业务规则配置、维护管理工具,以便在业务发生变化的时候,可通过配置业务规则而实现灵活调整系统相应部分的目的,增强应用系统动态适应性。主要功能包括规则对象及运算符号定义、规则分类、导出规则配置、计算规则配置、投影规则配置等。构件化包装工具以非构件化软件为包装对象,按照构件模型规范或构件框架模型规范对其进行构件化包装,形成可组装的构件。

3 平台组装实现

业务构件组装实现过程是基于XML描述文件的组装,涉及各类组装元素的项目文件(源代码文件)、组装文件、运行文件,应用系统的形成经历了包装、组装、验证、发布、部署等过程,图5给出了平台组装实现的内部工作机制[6]。图5中,A1表示将原子业务构件包入库构件分类表;A2表示将构件包中的元构件入库构件表、构件版本表、构件接口表、构件接口参数表;B1表示构件化包装前先从构件分类表中读取待包装的原子业务构件分类信息(具体实现方法是,先从分类表中导出到本地XML文件里,然后系统从本地XML中读取并展现),然后根据分类信息在构件表、构件版本表、构件接口表中读取所有该原子业务构件的元构件接口,由用户具体选择哪些作为原子业务构件接口;B2表示构件化包装前先从构件分类表中读取待包装的构件框架分类信息。然后根据分类信息在构件表、构件版本表、构件接口表中读取所有该组合业务构件框架的元构件接口,由用户具体选择哪些作为组合业务构件框架接口;B3表示经构件化包装形成原子业务构件;B4表示经构件化包装形成组合业务构件框架;B5对原子业务构件包装后,原子业务构件运行文件直接由EOS平台组装原子业务构件包时生成的运行文件(XML文件格式)映射而来;B6对原子业务构件包包装形成原子业务构件组装文件(XML文件格式),直接由包装工具生成;B7对组合业务构件框架包包装后,组合业务构件框架运行文件直接由EOS平台组装组合业务构件框架包时生成的运行文件(XML文件格式)映射而来;B8对组合业务构件框架包包装形成组合业务构件框架组装文件(XML文件格式),直接由包装工具生成;B9表示把包装好的原子业务构件入库。

图5 组装实现技术原理

B10表示把包装好的构件框架入库;B11表示在对原子业务构件包包装时,形成业务规则构件与原子业务构件映射文件;C1表示在组装前先从构件分类表中读取构件分类信息。(具体实现方法是,先从构件分类表中导出原子业务构件级别以上的分类信息到本地XML文件里,然后系统从本地XML中读取并展现);C2表示在组装前先从构件分类表中读取构件框架分类信息。(具体实现方法是,先从构件分类表中导出相应的业务构件框架分类信息到本地XML文件里,然后系统从本地XML中读取并展现);C3表示从构件表中读取构件框架。(具体实现方法是,先从构件表中导出该项目所有构件框架到本地XML文件里,然后系统依据选中的构件框架分类信息从本地XML中读取相应的构件框架并展现);C4表示从构件表中读取原子业务构件。(具体实现方法是,先从构件表中导出所有原子业务构件到本地XML文件里,然后依据选中的构件分类信息从本地 XML中读取相应的原子业务构件并展现);C5表示从服务器上下载原子业务构件组装文件;C6表示从服务器上下载构件框架组装文件;C7表示通过组装平台形成组合业务构件的组装文件(XML文件格式);C8表示通过组装平台形成组合业务构件的运行文件(XML文件格式);C9表示通过组装平台形成组合业务构件项目文件(XML文件格式);C10表示通过组装平台形成组合业务构件;C11表示将组装形成的组合业务构件入库;D1表示从构件表中读取组合业务构件。(具体实现方法是,先从构件表中导出该项目所有组合业务构件到本地XML文件里,然后系统从本地XML中读取组合业务构件并展现);D2表示通过系统级构件组装平台形成应用系统的客户端;D3表示通过系统级构件组装平台形成系统运行文件。

4 结束语

本文讨论了业务构件组装平台的功能定位、边界范围、业务及其流程模型,描述了集成平台实现过程和面向业务组装的构件化开发集成环境。论文给出了构件组装集成开发平台工具功能和实现过程,解决了包括组装资源管理的XML描述规范、可视化、服务引擎、工作流、组装匹配等技术手段。在EOS平台基础上,研制了面向业务组装的构件化集成开发平台工具,实现了构件化包装和可视化组装,以及构件管理、规则管理等,弥补了目前已有构件组装平台在业务组装层次的空白。

[1]王祥宗,刘志,刘增良,等.基于规则的业务构件组装规约[J].计算机集成制造系统,2008,14(9):1774-1780.

[2]邵维忠,杨芙清.面向对象的系统分析[M].北京:清华大学出版社,2008.

[3]赵俊峰,谢冰,张路.一种支持领域特性的Web服务组装方法[J].计算机学报,2005,28(4):731-738.

[4]王志坚,费玉奎,娄渊清.软件构件技术及其应用[M].北京:科学出版社,2005:125-135.

[5]WANG Xiangzong,CHEN Ying,LIU Zenliang.Component-based software developing method for group companies management information system[J].Wuhan University Journal of Natural Sciences,2008,13(1):37-44.

[6]王祥宗,陈英,谭学元.集团型企业全面预算管理业务分析与建模研究[J].计算机工程与设计,2007,28(22):5493-5497.

[7]杨芙清,梅宏.面向复用的需求建模[M].北京:清华大学出版社,2008.

[8]王忠杰,战德臣,徐晓飞.业务构件识别方法研究综述[J].计算机集成制造系统,2007,13(4):54-59.

猜你喜欢
原子构件框架
钢筋混凝土构件裂缝控制
有机框架材料的后合成交换
框架
原子究竟有多小?
原子可以结合吗?
带你认识原子
K-框架和紧K-框架的算子扰动的稳定性
专利名称:二硅化钼基陶瓷加热元件保持结构
西夏建筑构件——鸱吻
关于原点对称的不规则Gabor框架的构造