内容


设计和开发更高效的 SOA,第 1 部分

设计和开发一个更优 SOA 的 IBM 集成功能简介

Comments

系列内容:

此内容是该系列 # 部分中的第 # 部分: 设计和开发更高效的 SOA,第 1 部分

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

此内容是该系列的一部分:设计和开发更高效的 SOA,第 1 部分

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

简介

本文是关于 IBM 面向服务系统设计与开发的商业解决方案这个 5 部分系列文章的第一篇。本文将介绍 SOA 领域的一些背景知识和解决方案,包括 Rational SOMA 2.9 的特定服务领域的最佳实践指南,以及 IBM Rational Software Architect 7.5.4 以上版本(后面统称为 “Rational 软件架构”)的特定服务领域建模与开发工具。指导内容和工具都是 Object Management Group (OMG) 的 SoaML 服务建模标准的强有力方法和支持。

面向服务的定义

面向服务架构(SOA)是一种组织和理解企业、社区和系统以实现最大敏捷性、扩展性和互操作性的方法。SOA 方法很简单 —— 人、组织和系统彼此相互提供服务。

服务是通过定义良好的接口向对方提供价值。它是向服务使用者社区开放的(这可能是向公众开放的)。服务就是一方向另一方提供工作的成果。那么,SOA 是一种定义人、组织和系统如何提供和使用服务来实现价值的架构范例。

SOA 与许多方法和技术相关。这里所要表达的观点是 SOA 首先是一种系统架构的方法,而架构是理解和规定各个方面应该如何协调以满足特定目标集的一种方法。SOA 描述的架构可以是业务架构、任务架构、社区架构或者信息技术系统架构 —— 所有这些都可能是面向服务的。SOA 架构方法有利于分离所需要解决的问题与解决问题的方法、位置、人或者事。

SOA 的承诺和缺陷

承诺

有许多 Internet 的讨论和白皮书都是关于在 IT 和业务/IT 协调上采用 SOA 方法所能获得的商业利益。这些利益通常可以分成 4 个与业务相关的领域:

  • (降低)拥有成本
  • 提高收益
  • (减小)进入市场时间
  • (提高)客户满意度

此外,IBM 发现采用一种 SOA 方法的主要好处是改进业务涉众与 IT 人员之间的交流。SOA 提供了一种相对简单的业务概念与 IT 概念转换。结果,IT 交付实际的业务需求的可能性将提高。

缺陷

然而,采用 SOA 方法也存在一些问题和 “缺陷”。这其中包括:

  • 缺少有效的 SOA 管理。Woolf 介绍了这个问题,并讨论了为什么有效的管理是如此重要。SOA 管理并非本系列文章的核心内容 —— 但是我们必须强调一下它的重要性!
  • 了解开始的位置和时间。 对于新采用 SOA 的组织而言,了解从什么位置开始可能有一些困难。它们可能会遇到一些难以解决的问题,包括 “我们应该如何识别良好的服务候选者?”,以及 “我们该如何选择关注哪些候选者?”。 如果无法解决这些问题 —— 及一些相类似的问题 —— 那么 SOA 的进程可能就会停止在开始阶段。
  • 全面启用服务。 有一些团队可能会试图通过全面 “启用服务” 来避免遇到前面这些问题。但是他们最终得到的是无用的服务,或者是一些不正确的服务。而所有这些服务还都是必须维护的。
  • 迷失在一个服务解决方案细节中。 团队可能会迷失在一些定义和实现服务解决方案的细节中。随着服务、服务数据元素、服务提供商和使用者的增多,人们会无法跟踪它们。
  • 缺少架构考虑。 服务规范支持宽松的功能耦合,提高了重新配置系统的能力,但是它并不能保证这些方面。如果没有考虑如何架构、设计和开发松耦合的服务,那么敏捷性和有效重用的承诺将无法得到满足。
  • 对非功能需求关注不够。 服务必须具有可扩展性、安全性、可靠性,并且符合必要的性能需求。仅仅关注于功能是不够的。

如何解决这些问题?

我们的经验是有一种创建面向服务系统的有效解决方案 —— 我们有时称之为服务解决方案 —— 需要包括以下组成部分:

  • 一种可靠的服务解决方案设计方法。 这种方法必须具有以下特性和品质:
    • 容易使用和理解
    • 清晰建议如何开始一个服务解决方案设计
    • 帮助用户确定正确的面向业务的服务
    • 支持灵活服务架构的创建,可适应业务变化。
    • 帮助用户指定组件实现,实现他们的服务。
  • 有效的工具
    • 自动化该方法
    • 帮助用户保证服务解决方案设计内容的组织
  • 建议如何使用这些工具 来执行设计方法!

IBM 开发面向服务系统的解决方案

私有解决方案

咨询组织,如 IBM Global Business Services (GBS),开发了一些私有解决方案,他们的咨询师会使用这些解决方法来实现面向服务系统的有效开发。例如,GBS 咨询人员通常采用 SOMA (面向服务建模和架构)方法,他们会使用按照 Rational Software Architect 分层的自定义工具来实现方法的自动化。工具 SOMA-ME (SOMA 建模环境)出现时间早于 Rational Software Architect 7.5.4 版本的增强服务工具。

商业解决方案

在 2008 年末至 2009 年初这段时间中,显然是 IBM 发布商业解决方案的最佳时期 —— 包括方法、工具和如何使用这些工具执行这些方法的建议 —— 这个商业解决方案使我们的客户能够成功设计和开发面向服务的系统。下面是其中包括的一些因素:

  • IBM 对服务解决方案设计的改进在 2006 年 IBM 的第一个商业最佳实践产品 —— IBM RUP for SOMA 2.4 —— 发布时就已经完成。现在是时候更新这些方法的内容。
  • OMG 已经完成了服务建模的 SoaML 标准元数据模型和符号的制定。因此,是时候在我们的方法和工具中支持这个标准了。
  • 从 2006 年初始产品发布以来,Rational Software Architect 的创建与领域相关的建模功能语言(DSL)、DSL 工具和相关模型驱动开发(MDD)转换的功能已经逐渐成熟。现在,IBM 的 Rational Software Architect 开发团队能够高效地实现可以稳定支持特定领域的产品功能,如服务解决方案的设计和开发。

相应地,IBM SOA 主题专家、IBM 咨询师和 IBM Rational 开发组织共同开发了本系列文章所介绍的解决方案。这其中包括:

  • Rational SOMA 2.9 中建立的服务解决方案设计内容(以下称 “Rational SOMA”);
  • Rational Software Architect Version 7.5.4 以上支持的与域相关的面向服务设计与开发工具;
  • 执行这个方法的工具使用模型。这个使用模型以工具导师的形式出现在 Rational SOMA 中。

IBM 执行人员和 IBM Rational 开发组织的紧密协调使这些工具和工具使用模型非常适合这个解决方案设计方法。

这个解决方案最初是在 2009 年下半年发布的。

下面的章节将概括介绍这些解决方案组件的特点。本系列的后续方法将对此进行更详细的介绍。

过程与方法支持 – Rational SOMA 2.9

可用性

Rational SOMA 2.9 是一个网站,它是使用 IBM Rational Method Composer 7.5.0.1 或以上版本发布的。它可供用户下载(见本文的参考资料)。它也可以作为一个 Process Advisor 方法配置授权给 Rational Software Architect 8.0 或以上版本。

目的与组织结构

Rational SOMA 2.9 是用来支持组织独立确定和规定他们的服务解决方案的,并根据要实现的服务来制定决策。它还提供了一些重要的指南,可用于定义一些面向业务工件,作为服务识别的输入。

Rational SOMA 是作为 IBM Practice Library 的 4 个 “实践方法” 交付的,这些实践是:

  • 用例驱动的业务建模(Use Case Driven Business Modeling)
  • 服务识别(Service Identification)
  • 服务规范(Service Specification)
  • 服务实现(Service Realization)

每一种实践方法都包括实现实践方法目标所涉及的任务、工作产品和角色的描述与详细说明。每一种实践方法也提供了工作流程。Rational SOMA 还提供了一种在设计服务解决方案时使用这 4 种实践方法的集成交付过程。

Rational SOMA 的方法内容是与工具无关的。使用 Rational Software Architect 的具体方法执行指南由工具顾问(Tool mentors)提供,本文后面将对此进行介绍。

本系列文章的第 2 篇将更详细地介绍这些实践方法与 Rational SOMA。

灵感来源

图 1 说明了灵感和 Rational SOMA 内容的三个主要来源:

  • RUP for SOMA 2.4 是 IBM 早期的一个关于服务解决方案设计的商业最佳实践方法产品。它很大程度是基于 IBM 私有的 SOMA 方法的核心服务解决方案设计内容,它们本身是源于 6,500 个 IBM 与 SOA 相关的服务项目的成果。
  • IBM 红皮书 “Building SOA Solutions Using the Rational SDP” 提供了一个扩展的详细实例,介绍如何使用之前版本的 Rational Software Architect 来设计和开发服务解决方案。它的许多关于过程细节、创建服务模型的方法和服务设计最佳实践方法的建议仍然有效。
  • OMG SoaML 规范定义了一个使用面向服务方法进行系统建模的行业标准级的元数据模型和符号。规范文档也包含一些 SoaML 建模实例。

虽然图 1 并没有说明这一点,但是指南的第四个主要来源是 Jim Amsden 撰写的 5 篇关于使用 SoaML 进行建模的 developerWorks 系列文章。

图 1. 三个主要的 Rational SOMA 来源
Building SOA Solutions Using the Rational SDP”,OMG 的 SoaML 是 Rational SOMA 的主要影响
Building SOA Solutions Using the Rational SDP”,OMG 的 SoaML 是 Rational SOMA 的主要影响

在 Rational SOMA 的编写过程中主要使用以下资源:

  • 我们重构了 RUP for SOMA 2.4,并使用它来提供约 40% 至 50% 的 Rational SOMA 内容。此外,Rational SOMA 的高级结构 —— 对它的三个面向服务的实践方法而言 —— 源于 RUP for SOMA。
  • 我们汲取了 IBM 红皮书的许多服务规范流程细节。我们也优化和重用了它所描述的 12 个架构级最佳实践方法(“SOA Architectural Patterns”),而我们在创建为 Rational SOMA 提供的示例服务模型中广泛使用了它推荐的这个服务模型结构。
  • 我们在整个 Rational SOMA 中都使用了 SoaML 概念与术语。所有服务设计示例都使用了 SoaML 符号。服务设计过程通过显式地扩展红皮书的过程来创建具体的架构级 SoaML 结构。
  • 我们使用了 Amsden 的文章作为我们进行 SoaML 建模实践的主要参考。此外,我们在 Rational SOMA 中提供的(以及在 Rational Software Architect 中包含的)示例服务模型源于 Amsden 的文章实例的扩展。

工具支持 – Rational Software Architect

Rational Software Architect 7.5.4 版本及以上提供了服务域工具,它是解决方案的软件产品组成部分。这个工具包括:

  • 支持基于当前版本的 BPMN2(Business Process Modeling Notation 2)规范的业务建模;
  • 一个 SoaML UML 配置文件,通过 SoaML 固定模式启用基于 UML 的服务建模;
  • 一个基于 SoaML 的服务模型模板,用于规范化服务模型结构;
  • 主要的 SoaML 模型元素的绘图板支持;
  • 右键菜单 - Rational Software Architect Project Explorer 和图中元素都支持 —— 自动创建与上下文相关的 SoaML 模型元素;
  • 支持从过程模型元素创建 SoaML 元素的右键菜单和绘图工具;
  • 支持从其他工件以上到下和从下到上的方式转变到 SoaML 元素。例如,SoaML 元素可以从 BPMN 过程元素和相关的代码工件以批处理方式创建,如 Java 接口、Session beans 和(Rational Software Architect Version 8.0 及以上版本)WSDL;
  • 从 SoaML 服务模型生成 SOA 工件的转换。常见的工件包括 XSD、WSDL、BPEL(Business Process Execution Language)文件、SCA (Service Component Architecture) 项目,以及 Rational Software Architect 和 Rational Application Developer 中 SCA 工具可以使用内容。

SoaML 创建工具适用于任何应用了 SoaML 配置文件的 Rational Software Architect UML 模型。这个配置文件是预先应用到使用 SoaML 服务模型作为基础而创建的模型中。

本系列文章的第 3 至 5 篇将对这些工具进行详细的介绍。我们将对下面章节所选用的工具进行概念介绍。

BPMN2 支持

业务过程模型是服务确定过程的重要输入源。相应地,Rational Software Architect 支持使用行业级 BPMN2 符号来创建业务过程模型。

图 2 演示了 Rational Software Architect 的一个简单的业务过程图。这个工具实现了常见的 Eclipse 绘图方法 —— 绘图调色板所支持的绘图编辑器,也增加了可用来创建上下文模型元素的右键菜单项。过程模型元素显示在 Project Explorer 视图中。

图 2. Rational Software Architect 的 BPMN2 过程图
在 Rational Software Architect 中创建的一个简单的 BPMN2 过程图
在 Rational Software Architect 中创建的一个简单的 BPMN2 过程图

我们并不是说一个组织应该使用 Rational Software Architect 作为业务过程建模、管理和优化的企业解决方案。这种方案一般会包括使用自动化过程模拟功能来优化业务过程模型的功能。Rational Software Architect 的功能支持 IT 解决方案架构师绘制业务过程草图和使用这些过程模型作为 IT 解决方案起点,如服务解决方案。

创建 SoaML 元素

SoaML 元素可以使用以下一些工具创建:

  • 绘图板工具
  • 图形工具栏
  • 模型元素的快捷菜单
  • Properties 视图的 “Service” 选项卡。

图 3 显示了可用于绘制 SoaML 元素三个主要工具类型的其中两个。

  • 元素可以使用绘图板的拖放功能创建。
  • 元素还可以使用右键快捷菜单创建。任何一个图的 SoaML 元素都支持 “Add Service Modeling” 菜单项。这个菜单项也可以通过右键单击图的空白区域打开。在这两种情况中,菜单项中的 SoaML 元素创建都是与所选择的元素(或图)的上下文相关的。
图 3. 绘图工具 —— 绘图板与快捷菜单
Rational Software Architect 支持从绘图板拖放项目来创建 SoaML 元素。这些元素也可以使用快捷菜单创建
Rational Software Architect 支持从绘图板拖放项目来创建 SoaML 元素。这些元素也可以使用快捷菜单创建

图 3 并没有显示第三种可用于创建 SoaML 的绘图工具 —— 图形工具栏。将鼠标移到图的空白区域或一个建模元素上面,这个工具栏就会出现,其中有表示与上下文相关的可创建元素图标。选择一个图标就可以创建该图标所表示的新元素类型。

Project Explorer 视图也支持基于快捷菜单的元素创建方法。我们还可以使用 Property 视图的 “Service” 选项卡来创建与上下文相关的元素。服务模型的许多模型元素都支持这个选项卡。

产生服务工件

Rational Software Architect 的 7.5.4 以前的版本就支持从 UML 模型自动创建 XSD、WSDL、BPEL 和 IBM 私有服务组件; 例如,可以参考 2007 至 2008 年发表的 向 SOA 转型 developerWorks 系列文章。新工具升级旧版本转换过程来支持 SoaML 模型。我们还增加了新的转换方法,支持从 SoaML 模型生成 Open SCA Service Component Architecture 工件,包括 Java 实现代码和 SCA 合成物、组件、WSDL 和 XSD。这些工件及所在 SCA 项目可以在 Rational Software Architect 和 Rational Application Developer 提供的 SCA 工具中使用。

Rational Software Architect 使用模型

我们通过在 Rational SOMA 中加入一个全面的 Rational Software Architect 使用模型而完成了我们的服务解决方案服务产品。这个使用模型有 15 个工具顾问,他们会对使用 Rational Software Architect 来识别、指定和实现采用 Rational SOMA 的服务解决方案进行明确指导。另外 4 个工具顾问将介绍如何使用 Rational Software Architect 转换产品从服务模型创建这些服务工件。

结束语

总的来说,IBM 的服务解决方案设计的商业解决方案包括三个主要组成部分:

  • 一个服务解决方案设计方法 Rational SOMA。它一半是基于 IBM 咨询师在 SOA 项目中使用的私有的 SOMA 方法。其他影响因素包括:
    • 一本 IBM 红皮书,它描述了详细的服务设计方法,12 个有用的架构级 SOA 最佳实践方法,以及服务模型结构的有效指南;
    • 包含服务设计符号和元数据模型的新 OMG SoaML 规范;
    • Jim Amsden 的 5 篇关于使用 SoaML 进行服务建模的 developerWorks 系列文章;
  • Rational Software Architect 7.5.4 及以上版本提供的业务建模和服务设计与开发有效工具。这个工具支持创建和管理基于 SoaML 的服务模型;
  • 用于执行采用新的 Rational Software Architect 工具的 Rational SOMA 方法的 Rational Software Architect 使用模型。这个使用模型是在 Rational SOMA 中由 19 个相关工具顾问构成的小组交付的。

我们创建这个解决方案的目的是为了支持客户服务解决方案的独立设计和创建。我们相信,如果使用恰当,这些解决方案组件将能够帮助许多客户达到目标。

后续文章

本系列的剩余文章将详细介绍服务设计解决方案的各个组成部分:

  • 第 2 篇文章将深入介绍 Rational SOMA 2.9 的内容和特性;
  • 第 3 篇文章将介绍使用 Business Process Modeling Notation (BPMN2) 来创建业务和业务过程模型的新工具 Rational Software Architect;
  • 第 4 篇文章将介绍 RSA 中新的服务设计工具,以及这个工具可以如何用来创建与业务协调的服务模型;
  • 第 5 篇文章将介绍使用 Rational Software Architect 8.0 创建的服务模型可以如何用来加速有价值的服务解决方案工件的创建。这篇文章主要关注于如何使用服务模型来创建与 SCA 相关的内容。

相关主题

  • SoaML(面向服务架构建模语言)是 Object Management Group 制定的一个规范。SoaML 定义了一组用于描述和细化面向服务系统的符号和元数据模型。
  • 要了解更多关于 SOA 和服务管理的概念,请阅读 Bobby Woolf 的 developerWorks 文章 SOA 治理简介
  • 要了解更多关于 IBM Global Business Service 的专有服务设计与开发方法,请阅读 SOMA: A method for developing service-oriented solutions
  • IBM 现在已经以高度可分拆和可分离采用的形式发布了它的商业最佳实践方法内容。请访问 developerWorks 的 IBM 最佳实践方法页面 以了解更多关于我们的实践方法的信息。
  • IBM Redbook “使用Building SOA Solutions Using the Rational SDP” 是 Rational SOMA 中具体服务设计方法的主要灵感来源之一。该 Redbook 的最后一次更新时间是 2008 年,因此其中演示的工具有些过时。尽管如此,这仍然是您的 “书架” 中必备的一份出色的服务设计资料。
  • Rational SOMA 2.9 中使用 SoaML 的大量服务建模方法均借鉴自 Jim Amsden 包含 5 部分的 IBM developerWorks 系列文章 “使用面向服务架构建模语言 SoaML 进行建模”。
  • BPMN (Business Process Modeling Notation) 是描述业务过程的标准符号。您可以从 OMG 下载这个规范
  • 访问 OASIS Service Component Architecture (SCA) 网站,了解更多关于使用广泛实现和运行时技术来创建服务组件的一些开放行业规范。
  • 下载 Rational SOMA 2.9。 这是 IBM 服务解决方案设计的商业可用最佳实践内容。该 URL 指向 Rational SOMA 2.9 的预发布评估版本和一份可以使用 Rational Method Composer 发布的完整版本。Rational SOMA 也作为一种 Process Advisor 配置产品,随包含服务建模工具的 Rational Software Architect 8.0 及更高版本的各种变体提供。
  • 下载 Rational Software Architect for WebSphere Software 的试用版。如果可以,我们建议您选择 8.0 或以上版本。为了使用 Rational Software Architect 增强的服务解决方案功能,您需要使用 7.5.4 或以上版本。如果您下载了版本 7.5,则请使用随 Rational Software Architect 一起安装的 IBM Installation Manager,以便升级到产品的最新版本,也就是 7.5.x 系列版本。

评论

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=SOA and web services
ArticleID=681776
ArticleTitle=设计和开发更高效的 SOA,第 1 部分: 设计和开发一个更优 SOA 的 IBM 集成功能简介
publish-date=06232011