内容


构建您的 SOA

成熟度与方法,第 1 部分

基础知识简介

Comments

系列内容:

此内容是该系列 # 部分中的第 # 部分: 构建您的 SOA

敬请期待该系列的后续内容。

此内容是该系列的一部分:构建您的 SOA

敬请期待该系列的后续内容。

引言

SOA 项目往往规模较大,具有很大的风险,而获得回报也可能很大。SOA 项目的投资回报 (ROI) 有时很难量化(因而对其进行销售也较为困难),从而需要稳定的流程和方法来确保 SOA 项目的成功。

SOA 包含一系列工具、技术、框架和最佳实践,用以确保快速方便地实现服务。此外,SOA 的开发流程会通过一些方法识别出应用程序和组织中的可重用服务。SOA 不是产品或标准。

该体系结构的重点在于允许企业将其业务流程作为服务(而不是大型的独立应用程序)进行标识、构建、交换和维护——现在经常将大型的独立应用程序称为 Instant Legacy。SOA 在 Web 服务出现之前就存在了。(您回想一下,会发现 CORBA 和 IDL 就是 SOA 的变体。)不过,如 Gartner 于 2003 年提出的,“到 2008 年,新的 SOA 或 Web 服务项目中的 75% 都将一起实现 SOA 和 Web 服务(概率为 0.7)。”

支持 SOA 的技术均以减少软件开发过程中的复杂性为目的。这些技术对与分布式软件、多平台和应用程序集成相关的问题进行处理。SOA 提供了一个应用程序体系结构,您可以在其中将流程作为具有定义良好的接口的服务进行定义。可以通过网络动态地调用这些服务。对于首席信息官 (CIO),通过 SOA 可以更快地交付业务流程,而且可以通过减少开发和维护成本来降低成本。

本系列文章包含三个部分,将在行业采用的流程和方法与 SOA 之间建立紧密的联系,并演示如何将其一起使用。本文向您介绍以流程(即能力成熟度模型 (CMM))和技术(即 Rational Unified Process)为基础的 SOA,并为了解您的组织的 SOA 项目可以如何从其受益打下基础。

软件流程

软件工程协会 (Software Engineering Institute) 于 1991 年引入了 CMM 的 1.0 版。CMM 是一个用于描述软件流程成熟度的原则和实践的模型,作为评估软件流程成熟度的基准得到了广泛的认可。该模型的目标是使得软件流程具有更高的可预测性和可重复性,从而提高信息技术 (IT) 组织提供软件产品或项目的效率。

流程可重复性非常重要,因为组织必须一致而系统地应用软件流程,以按时在预算内交付高质量产品或服务。所定义的最佳实践需要在软件团队之间共享,且需要能适应各个组的需求。

CMM 定义了一个模型,各种组织可以使用此模型来评估其软件流程成熟度,它还定义了一个可以用于从一个级别上升到另一个级别的模型。CMM 描述的五个成熟度级别可以由每个级别所做的主要流程更改加以描述:

  1. 初始化:在此级别,软件流程的特点是专用性较强,比较混乱。成功具有很强的个体依赖性,因为定义的流程(如果有)很少。
  2. 可重复:个体项目团队在类似的应用程序上定义了基本流程,并一致地进行重复。
  3. 已定义:对流程进行了良好的定义、记录和标准化。组织内的所有项目都使用相同的软件流程(此软件流程是根据其特定需要而定制的)。
  4. 已管理:软件流程按照其适用性和质量进行管理。流程采用量化的方式进行检查,并加以控制。
  5. 优化中:通过量化管理支持持续的流程改进。不断采用新技术和流程来对不断变化的技术和业务市场进行响应。

为什么应将 CMM 应用到 SOA 项目?

软件开发的流程成熟度模型(如 CMM)可以帮助确定组织内的 SOA 需求。这样还能够帮助确定 SOA 的成本和好处,从而为项目带来稳定的 ROI。

在本系列的第二篇文章中,我将实际介绍我称为 SOA 成熟度模型 的新版本 CMM。SOA 成熟度模型允许将 CMM 应用到组织的 IT 体系结构。类似地,通过使用此模型,您将可以迅速地为 SOA 项目构建远景、范围和规划,还能确定成功的关键性能指标。

产品公司和咨询公司还可以利用 SOA 成熟度模型来整合其产品和服务,以便从较低的体系结构成熟度上升到较高的级别。

拥有了流程,并确定了 SOA 需求之后,下一步就是确定将用于构建 SOA 的方法。您还需要一个方法,用于在将 SOA 项目向您的组织推出之后进行其维护工作。

软件方法

软件方法 是关于如何开发软件的系统性方法和控制。基本上,软件方法主要解决“如何”开发软件的问题,而 CMM 流程则针对该软件方法的质量和使用该软件方法开发的软件。

可以对 SOA 采用两种完全不同的方法:Rational Unified Process 和极限编程 (XP)。Rational Unified Process 是一种更为传统和重量级的技术,最适合大型项目和复杂项目。相反,XP 则是较为轻量级且灵活的方法,特别适合基于 Internet 的开发。

我之所以选择这两个方法,是因为我认为 SOA 项目具有两个高级阶段。第一个阶段是初始 SOA 推出,在此阶段将实际构建 SOA。此阶段要求使用类似于 Rational Unified Process 的方法。第二个阶段是 SOA 维护,此阶段中,将以初始 SOA 为基础构建新项目。此阶段则可采用较为轻量级的方法,如 XP。(下文将进行更为详细的说明。)

什么是 Rational Unified Process?

Rational Unified Process 是一个 IBM 产品,可提供即时可用的软件实现方法。RUP 的第一个迭代更多地关注于需求收集,而对软件开发的关注要略微少一些。现在,Rational Unified Process 要求使用统一建模语言(Unified Modeling Language,UML)进行系统设计,还鼓励在项目的初始阶段创建完全原型,在其中包含最终目标系统的所有功能层和技术层。在原型阶段,随着开发人员不断尝试解决所有的非功能需求,构建此类原型可能会变得复杂起来。

尽管 Rational Unified Process 可以适应任何组织的方法,但它很大程度上是一个说明性的重量级方法,是以软件实现流程为中心而设计的。它将软件开发分成了四个彼此独立的阶段:

  • 初始
  • 精化
  • 构建
  • 产品化

通常在初始 阶段定义项目的远景和范围并指定初始 RIO。在精化 阶段将完成需求收集和设计流程。最耗时的阶段是构建 阶段,此阶段与项目的传统开发阶段相对应。在产品化 阶段,会将系统部署到生产环境,并管理首轮支持服务。务必认识到,几乎每个使用 Rational Unified Process 的组织都对其进行了一定程度的定制。例如,可以在初始阶段进行所有的需求收集工作,而在精化阶段进行设计工作。无论您的组织可能如何定制 Rational Unified Process,基本概念始终是一样的。

IBM Rational Software Development Platform 工具集为 Rational Unified Process 提供了良好的支持。IBM Rational Software Development Platform 和 IBM Rational Suite 都内置了支持 Web 服务和 SOA 开发的功能。IBM Rational Software Architect 和 Rational Software Modeler 允许对 SOA 进行快速建模,而通过 Rational Suite 中的开发工具可以构建和部署 SOA。

什么是极限编程?

XP 是一种相对较新的软件开发方法(推出约数年时间),此方法在 Internet 的飞速发展中得到了极大的关注。XP 体现了短迭代、成对编程和编码前测试等概念。各家大型公司都在使用 XP,如 Credit Swiss Life、DaimlerChrysler 和 Ford Motor Company 等。XP 之所以成功,是因为它强调客户满意度。该方法旨在客户需要软件时向其提供此软件。

XP 使您能够充满信心地应对不断变化的客户需求,即使在项目生命周期后期也是如此。它引入了使用类-职责-协作者(Class-Responsibility-Collaborator,CRC)卡技术或其他定义方法来定义小型用户场景的概念。(在XP 中用户场景是用例的替代品。)XP 是一种快速高效的方法,用于捕获需求,并将其组织为逻辑迭代版本,分配优先顺序和开发用户案例。不过,XP 并不涉及对需求的验证。XP 的确提供了优化的方法,用以确定需求,但并不处理需求的质量,所得的结果可能并不令人满意。正是由于这个原因,在本系列的第三篇文章中,我将对何时使用 XP 和何时使用 Rational Unified Process 作为 SOA 推出活动的一部分进行区分。

结束语

本文介绍了 SOA 的基本知识,并简要概述了能力成熟度模型 (CMM)、Rational Unified Process 和极限编程 (XP)。在本系列的后面两篇文章中,作者将对这些进行组合,以提供一个用于构建企业 SOA 远景的框架和方法。

在本系列的第二篇文章中,作者将使用 CMM 来定义一个 SOA 成熟度模型(利用该模型,可以确定组织所处的体系结构成熟度级别),并定义了一系列步骤,以获得更高的成熟度级别(真正的 SOA 具有最高的成熟度级别)。

在本系列的第三篇文章中,作者将介绍一种新的软件开发方法,以将 Rational Unified Process 和 XP 混合使用:Service-Oriented Unified Process (SOUP)。SOUP 将软件开发流程划分为两个阶段:它首先使用 Rational Unified Process 来构建 SOA,然后转到 XP 进行维护。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=SOA and web services
ArticleID=125270
ArticleTitle=构建您的 SOA: 成熟度与方法,第 1 部分
publish-date=01232006