简介:
虽然业界涌现出各种软件方法,可复用资产一直是系统架构师和项目管理者非常重视的因素之一,因而建立一个高质量的可复用资产库被视为提高软件开发效率的有效手段。IBM Rational Asset Manager(RAM)提供了强大的资产管理能力,可以实现资产的创建、提交、审核、检索等管理操作,便于资产的分发和复用。RAM 符合 OMG RAS 规范,最新的7.2.0.2版本提供了生命周期管理功能,进入 RAM 的资产需要经过相关人员的审核,并根据状态实施相应的动作;结合策略机制,以相比 Asset Type 更加灵活的约束方式,来保证资产的完整性。
本文介绍 IBM Rational Asset Manager(RAM)中的生命周期和策略管理,通过实例展示如何结合策略定制生命周期实例,从而有效保证可复用资产的完整性,文章还探讨了通过 Rational Team Concert(RTC)扩展生命周期和策略的高级话题。
在业务日益复杂的今天,如何快速开发满足业务需求的高质量应用系统,成为软件开发厂商成败的关键,而建立可复用资产库被视为提高软件开发效率的有效手段。在此之上基于资产进行开发,以最大化利用投资,加速软件开发,降低成本。资产是相关制品的集合,为特定问题提供解决方案,它可以通过变化点进行定制,以达到复用的目的。为了更好的开发和复用资产,OMG 定义了可复用资产规范 Reusable Asset Specification,对软件资产的结构、内容和描述进行了规约。资产中的制品可以是各种类型,比如模型、设计文档、构件、框架、web 服务、测试计划、测试脚本等,它们都是与解决某问题相关的。
资产需要进行管理,这包括采用适当形式描述资产,利用存储库来保存资产,资产的提交、审批、发布等生命周期管理,提供搜索和消费资产功能等。IBM Rational Asset Manager 正是这样一款产品,它帮助企业创建、修改、监管、搜索、复用各种软件资产,目前最新版本是 7.2.0.2。RAM 支持 OMG RAS 规范,可以对资产的各种标准信息进行管理。
Reusable Asset Specification 是 OMG 关于可复用资产的标准,当前版本是 2.2。RAS 对资产的规约可分为 Core RAS 和 Profile 两部分。Core RAS 规约资产的基础元素,Profile 针对特定领域描述扩展部分,只有基于 Core RAS 的 Profile 才能创建实例加以使用,RAM 的元模型相当于扩展 Profile。
下图描述了 Core RAS 的基本元素(摘自 RAS 标准)。Classification 给出用于资产分类和上下文相关的描述,如 RAM 中资产的 ID、名称、版本、日期、状态等。Solution 列出资产包含的制品,在 RAM 中可以包含文件、文件夹和 URL。Usage 描述安装、定制、使用资产时的规则。相关资产描述资产之间的关系,RAM 中可以使用内置关系,也可以自定义关系。
RAS 是对可复用资产的规约,它并不涉及资产的开发和发布过程。RAM 作为资产管理工具,除了记录和管理资产的标准信息之外,还管理资产的评审过程,通过生命周期管理,更新资产的状态,最终发布为可以被复用的资产。
RAS 还描述了 RAS 存储库服务,它提供 HTTP 接口,支持资产的搜索、浏览和获取操作。外部应用可以向该服务提交请求,获得满足条件的 ras 描述,进而分析资产的信息及所包含制品,如下图所示(摘自 RAS 标准)。RAM 将这种服务进行封装,发布为 Web Service 服务,提供了资产的增删改查以及资产库配置等功能。
RAM 对资产的管理包括其生命周期管理(Lifecycle),在早期版本中称为评审过程(Review Process)。通过定义生命周期,管理资产的各种状态以及状态之间的迁移动作,这些动作一般是由参与者对资产进行审核之后做出的。在这里,生命周期看上去就像一个状态机,但它比状态机更复杂,除了状态和变迁之外,还可以定义策略(Policy)、条件以及参与者。RAM 内置了 Simple、Standard、Business Solution 等多个生命周期模板,在社区中可以使用这些模板创建特定的生命周期实例,当提交资产时,就会按照符合条件的生命周期实例进行管理了。
这里列出 RAM 中的两个生命周期模板以供参考。
图 3 是 RAM 的简单模板,包含两个状态“已提交”和“已批准”,它们之间可以通过“发布”、“恢复”完成状态变迁。
图 4 是 RAM 的标准模板,包含“草稿”、“评审”、“目前状态”、“已批准”四个状态,它们之间可以通过“审核”、“提交”、“批准”、“恢复”等完成状态变迁。
从以上示例可以发现,生命周期模板只是提供了简单的状态机模型,更多的细节还需要在生命周期实例中定制。下图描述了一个基于 Simple 模板的生命周期实例。在该实例中,通过条件指明生命周期作用于类型为 Bundle 的资产之上,通过在状态上定义策略来规范资产的完整性,通过变迁条件确保资产满足策略。
这里的策略跟 SOA 治理中的策略类似,即当满足约束条件时将执行特定动作。动作一般是对资产的操作,并非必填项,当没有定义动作时整个策略简化为条件验证。策略和生命周期结合在一起,可以大大提高后者的表达能力。如果把策略简单看作条件验证,那么它跟资产类型规约有很多相似之处,比如都可以规范资产包含什么样的制品,资产需要有什么属性,资产之间具有什么关系。但两者之间也有明显不同,主要体现在下表中。
策略 | 资产类型约束 | |
---|---|---|
前提条件 | 无需定义资产类型 | 需要定义资产类型 |
作用结果:提交资产 | 当不满足时也可以提交资产 | 当不满足时无法提交资产 |
作用结果:提示 | 当不满足时给出警告 | 当不满足时提示错误 |
作用域 | 资产类型或者基于术语的分类 | 资产类型 |
作用时机 | 灵活应用于生命周期的各种状态 | 从提交资产开始 |
RAM 中内置了多种策略,包括制品验证、属性验证、关系验证、追加制品、修改所有者等。我们这里以关系验证为例简单介绍。该策略要求被测资产存在与某一资产类型的某种关系,例如 Bundle 资产包含模型资产。在该策略作用下,当提交 Bundle 资产时如果没有包含模型资产,则给出警告信息。但是单凭策略无法限制对资产的操作,于是结合生命周期给出完整的约束。
回到上文中的生命周期实例,在初始状态上添加关系验证策略,检测并提示满足关系约束;然后定义变迁条件,限制只有满足策略才能进入下一状态。这样 Bundle 资产既可以提交,又能保证经过审批后符合约束条件。
RAM 提供多种接口,为了自定义生命周期模板,可以使用 Rational Team Concert Eclipse 客户端,也可以通过 RAM API。下图展示了 RAM 的内部结构及其与外部应用的交互方式。其中最常用的方式是用户通过浏览器访问 Web 管理控制台,或者二次开发应用调用 Web 服务接口,这可以完成大部分的管理操作。对于复杂的功能扩展(如评审过程和策略),RAM 预留了扩展点,开发人员可以开发 java 扩展应用,通过 Web 界面集成进来。此外,RAM 针对可定制的生命周期资源,还提供了 Jazz 存储库及其应用,允许外部将 RAM 看作一个开发交付环境,扩展的生命周期可以直接被 RAM 使用。
IBM Rational Team Concert (RTC) 是构建在 IBM Rational 面向软件交付技术的下一代协作平台 Jazz 平台上的第一个商用产品、一个协作式的软件开发环境。RAM 提供了一个 jazz 存储库,允许开发人员连接到 RAM Lifecycle 项目区,从而进行生命周期扩展。RAM 的存储库路径为 http://:/jazz/,这可以在 RAM 控制台的管理 / 配置中找到。连接后就可以在 Process Configuration 中添加新的 Workflow 过程了。下图展示了在 RTC 中 Simple Asset Workflow 的设置,通过状态、操作、过渡等定义了一个完整的生命周期过程。
RAM 还可以通过插件扩展的方式,开发自定义评审过程。不过它是 RAM 早先版本的扩展方法,在最新版本中推荐使用 RTC 方式扩展生命周期模板。
而策略的扩展还需要通过插件扩展来完成。RAM 提供了基类 PolicyGovernor 和 AssetPolicy,PolicyGovenor 对若干策略(Policy)进行管理,AssetPolicy 定义如何执行策略,针对 Asset 内容验证其结果。策略开发代码可以参考 RAM Web 应用路径下的 SampleGovernor.jar 文件。同时 RAM 控制台提供了集成该扩展应用的途径,可以在“管理 / 自定义扩展”中将其注册,随后应用在某生命周期实例中。
RAM 中的生命周期,既可以保证经过评审的资产具有正确的状态,又可以根据业务需要进行定制,同时借助 RTC 客户端的管理方式增加了扩展的便利性。在此基础上,通过策略的引入,以更加灵活的方式验证业务规则,有效保证资产的完整性,使得经过评审的资产更好的得到复用。
RAM 提供了比较丰富的生命周期模板和策略,因此在具体业务应用中,建议首先考虑使用现有生命周期及策略,如有必要再进行扩展。而后通过 RAM 控制台为资产设计生命周期实例,它直接作用于进入 RAM 中的资产,应结合业务需求和技术概念综合考虑。完成 RAM 社区的配置后,就可以发布和管理资产了,一般可以通过控制台或者 API 调用来进行。
原文链接:http://www.ibm.com/developerworks/cn/rational/r-cn-ramreuseassetlifecycle/index.html
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14780914/viewspace-670098/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/14780914/viewspace-670098/