面向构件的软件过程:提交、发布与部署


 2006-10-31 00:00:00       753

只有当采用系统化的方法时,软件复用才能发挥效能,从而实现业务目标。
--Ivar Jocobson,《软件复用》

概述

    软件基本开发完毕了,既然也经过了层层测试来验证软件构件和软件系统的质量,这些软件构件就应当及时提交到构件库。
    软件虽然开发完了,但离交付到用户手中还有不少工作要做,发布工作就负责将软件本身、括配置文件、用户手册、帮助文档、安装手册等进行收集、整理、打包、发布。
    用户最终希望的是一套正常运转的软件系统,这可以需要部署、配置等,当有遗留数据是还要进行数据移行,这些工作在部署活动中完成。
    部署阶段的进入条件、主要角色和步骤、核心工件、退出条件等如图1所示。

图1  提交、发布与部署阶段总览
图1  提交、发布与部署阶段总览

提交

    该活动的目的是:将通过测试的业务构件和服务构件进行评审,并将评审通过的构件提交到构件库。该活动由构件库管理员负责组织各方资源完成。
    构件库的建立是相对有必要的。如果生产出来的构件只是分散、孤立地存在于某个地方,构件信息无法被人获知、评测,这样构件是毫无复用价值的。构件需要一个可以被潜在的用户检索、评估、提取的支撑环境,该环境支持构件完整的生命周期,提供对构件开发、包装、调试、部署、监控及管理维护服务,这就是构件库。
    值得说明的是,作为一个整体,构件的相关文档也应一起提交到构件库。
    构件库管理员负责协调组织级行为和项目级行为,一方面在架构师识别的业务构件基础上,构件库管理员通过检索,协助项目组找出存在哪些可供复用的构件;一方面构件库管理员会完成项目新增构件是否符合规范的检验和构件入库工作,如图2所示为构件复用的管理流程。

图2  构件复用管理流程
图2  构件复用管理流程

构件库管理应覆盖的功能
    构件库应提供构件的管理服务,构件的描述、管理、存储和检索功能。构件库为日益增长的构件的数量、种类提供了有效的管理手段(如图3所示)。

图3  构件库管理应覆盖的功能
图3  构件库管理应覆盖的功能

构件入库
    进行构件的入库信息登记,包括构件的属性信息、构件源码、构件使用手册、构件本身等。

版本管理
    构件本身是不断演变升级的,版本管理提供构件历史信息维的功能,包括版本号管理、构件状态管理。

安全审计
    构件库管理系统有不同的用户角色,系统管理员、构件管理员、普通使用者,用户只可以使用被授权访问的功能,系统将记录用户的行为。

构件的检索
    用户可以输入业务构件的需求,在构件库中匹配合适构件,检索范围可以是应用领域、构件类型、开发工具、开发方式、运行环境、主要功能和可复用的程度,以及构件查询的关键字。

构件的提取
    构件的需求申请、审批、提取的管理。

构件注销
    处理过期、报废的构件。

日志管理
    用户使用构件库的业务操作日志。

分析统计
    构件被检索、提取、使用的相关的分析统计报表。

发布
    该活动的目的是:决定发布内容(特定子版本应用系统、配置文件、帮助文档、安装手册、用户手册等),编写Release note,落实包装等发布相关事宜,并实施发布。该活动由发布经理负责组织各方资源完成。

部署
    该活动的目的是:将面向构件应用部署到用户的实际生产环境中。最终的应用系统,在何种基础设施的环境之下进行部署会有很大不同,工程实施人员负责该项工作。

以面向构件为核心的一体化平台对本阶段的支持
    如果说是面向构件方法,为软件行业带来了曙光,那么面向构件为核心的平台,则使得“组装软件”的梦想得以实现。以面向构件的方法开发应用,要求必须对原有的开发工具、开发环境、生产方式等进行改变,以适应新的软件开发过程的需要。而面向构件为核心的一体化平台则正是应这种要求而产生的。
    我们这里之所以称之为“面向构件为核心”,是因为我们这里所论述的平台是建立在面向构件的概念、面向构件的方法、面向构件的架构基础之上的。这个平台不同于J2EE平台和.NET平台,它不依赖于特定的技术、特定的编程语言。
    面向构件为核心的平台具有一体化平台的所有特征,它是由构件集成开发环境、构件运行环境、构件运行管理工具、构件库组成(参见图4)。它提供了对构件的可视化定义、组装、发布、构件虚拟机、构件库的管理、构件库资源访问及构件运行期管理等构件的整个构建、生产、运行、管理环境的支持。

图4  面向构件为核心的平台组成

图4  面向构件为核心的平台组成

    面向构件为核心的平台,通过建设和改造软件基础架构,帮助企业降低IT系统的成本和复杂度。贯穿企业IT系统的整个生命周期,从软件的采购、部署、运行到维护和升级都无一例外,特别是要建立一套集成化的软件系统,以便企业用户可以在此基础上建立高效的业务应用系统。
面向构件为核心的平台让我们有能力接受新的挑战:
 快速构建稳定高效的应用系统。平台提供了面向构件的架构,并且通过平台的集成开发环境,利用已有的、成熟的构件库资源,组装或扩展新的业务构件,从而可以快速地搭建应用系统。
 降低IT总体成本。面向构件的平台的有效的构件资源管理,为整个开发团队提供了一个交流和知识共享的平台。开发人员可以充分利用现有的构件资源,从而提高了构件的复用度。平台在运行环境内部提供了对应用的通讯、安全、以及运行管理的支持,开发者不用关心底层的技术细节,平台为构件提供了一个安全、高效、稳定的运行环境。高的复用性一方面缩短开发周期,降低人力成本。另一方面也提高软件质量,降低风险成本。
 动态适应业务变化。平台的构件运行和管理环境,提供了对构件运行期的管理功能。用户可以根据业务需要对应用进行动态调整与部署。用户也可以根据实时监控的结果,对应用采取主动调优。
 企业级的能力。面向构件为核心的平台为客户提供一个统一、简单、基于标准、易于扩充的基础平台,客户无论是构建应用、整合应用、或者是扩展应用,都可以在这个平台上实行。一方面能够保证系统能安全稳定的7X24 小时运行,另一方面也提供了良好集成框架,可以方便快速的完成应用的整合。
构件化、可视化的软件全生命周期的开发和管理平台,从根本上解决软件开发与管理方面的困境。软件开发工作不再需要从头做起,而是在一个更高的平台上,拥有大量可复用的构件资源。基于平台可以快速、低成本地生产出高质量、高扩展性的应用软件。相对于传统软件工程来说,面向构件的平台是一套革命性的企业软件基础架构,可以有效地降低企业用户在购买、部署、运行和维护软件系统整个过程中的成本和复杂度。

相关阅读: