内容


体系结构实践,第 2 部分

SOA 解决方案场景介绍

Comments

系列内容:

此内容是该系列 # 部分中的第 # 部分: 体系结构实践,第 2 部分

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

此内容是该系列的一部分:体系结构实践,第 2 部分

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

引言

在本系列的第一篇文章中,您已经了解了 IBM SOA Foundation 生命周期(SOA 生命周期),以及如何使用 IBM 工具和技术部署一个基于 SOA 的解决方案并管理服务的生命周期。您了解了组成 IBM SOA 生命周期的四个阶段:

  1. 建模
  2. 组装
  3. 部署
  4. 管理

所有这些阶段用一个首字母缩略词 MADM 表示。

SOA 生命周期帮助您围绕着四个阶段以及组成它们的活动和任务来组织项目计划。不过,为基于 SOA 的解决方案应用程序找到通用的和重复出现的主题和模式,确定使用 SOA 的通用情况,也是很好的办法。IBM 已经找到八种 SOA 通用使用模式。这些模式被统称为 SOA 场景。

IBM 围绕着五个独立而又互相关联的入口点组织这些场景,这些入口点可以帮助企业开始使用 SOA 并取得成功。入口点由业务和 IT 需求驱动,可以根据下列几点对它们进行分类:

  • 人员——使人员与流程交互
  • 流程——通过业务模型创新,启用和实现更高的效率和效能
  • 信息——交付可信信息,以实现业务流程
  • 连接性——通过连接软件系统和服务,实现“随需应变”的灵活性
  • 重用——通过预测高价值企业资产的重用情况,尽量降低采用和实现 SOA 的复杂性

每个入口点都包含一个或多个场景,这些场景各自为实现入口点提供了路线图。每个场景被进一步拆分为多个“实现”,所谓“实现”,是指专门用来解决某个特殊问题的特定开发任务。SOA 场景代表了 IBM 服务团队在实现实际客户解决方案时遇到的常见情况。

每个场景都显示出特定的业务价值,并描述了体系结构和一组基于 IBM 开放标准的推荐软件(用来实现某个 SOA 解决方案的特定部分)。这些解决方案的设计目的是,帮助您实现一个基于 SOA 的增量解决方案,以满足实际需要,而不是一次解决所有问题。每个场景定义的各种解决方案均具有模块化的性质,可以构建在另一个解决方案之上;多个场景的元素可以在一起使用以创建一个合成场景。场景还提供了说明性的指导,介绍如何使用 IBM 工具、技术和产品以便把它们映射到每个模式,并实现这些模式,这些模式可以组成某一特定 SOA 场景的变化形式。

场景可分为两大类:功能性场景或支持性场景。功能性场景将直接映射到一个或多个 SOA 入口点;支持性场景则会跨越所有入口点。

以下为功能性场景:

  • 服务创建
  • 服务连接性
  • 互操作和协作服务
  • 业务流程管理
  • 信息作为服务

以下为支持性和跨越性场景:

  • SOA 设计
  • SOA 治理
  • SOA 安全性和管理

这是九篇介绍 SOA 场景的文章中的第一篇。这篇文章将为您依次介绍八种场景、它们背后的原理,以及在何种背景下可以使用它们。它还将展示一套将特殊的 SOA 场景应用到典型 IT 项目的方法。每一期都会重点介绍一种 SOA 场景:定义场景、标识场景中可能发生的各种模式,然后细化通过 IBM 技术和产品在场景内实现每一种模式的方法。(有关 SOA 入门的更多信息,请访问 developerworks 的 SOA 新手入门 页面。)

概述:SOA 场景

每个 SOA 场景都是一个文档齐全的 SOA 使用模式,它是根据跨行业部门(横向和纵向的)的各种项目经验总结而来的。场景能帮助您确定在某种特殊情况下可以利用哪些使用模式快速启动一个 SOA 活动。场景有业务和技术文档作为它的坚强后盾,它提供说明性的指导,介绍如何使用 IBM 产品、工具和技术实现特定的解决方案。您可以将这些场景想像成烹饪书里的菜谱,烹饪书会清晰地定义每个步骤,帮助您选择正确的原料,然后提供一个说明性的指导,告诉您如何照菜谱做出食品来。

现在我们先来看每种场景的一般定义。

服务创建——创建灵活的、基于服务的业务应用程序。面向服务的新应用程序将业务行为作为一项服务予以公开,它还会重用业务逻辑,业务逻辑也是作为服务公开的。该场景还提供指导原则,告诉您在完成服务创建后如何提供这些服务。如果要实现一组优化业务流程的构想,标识和实现服务是首要的步骤。基本上,可以标识来自三个主要来源的服务(注意,重点在于重用现有的服务):

  • 现有资产——由高价值业务功能标识的服务,这些服务已被部署在现有的系统中(例如,遗留的或打包的应用程序)
  • 外部服务提供者——由外部供应商提供的服务,该供应商很可能只提供某一特定领域的服务(这些服务通常被封装在通用和典型的任务中,并不一定提供策略差异化功能。)
  • 使用“自顶向下”的方法标识的新服务——通过自顶向下的分解技术标识的服务;即流程分解(这些服务填补了前两种来源未覆盖的空白;它们是需要从头实现的新服务。)

服务连接性——在“服务创建”场景的基础上构建;根据“服务创建”场景,确认、设计和构建服务,并把重点放在基础连接性上,基础连接性被用来支持一个以业务为中心的 SOA。这个场景使用户具有灵活性,可以独立更改服务使用者,或使服务使用者处于一种不造成混乱的状态。场景能帮助您确定企业服务总线 (ESB) 的特性(如路由、转换和中介),这些特性可以用来在服务提供者和使用者之间提供分离连接性。该场景还提供指导,介绍如何创建一个逻辑以及服务网关模式的物理实现,服务网关模式提供的中介功能可以在协议级和接口级使不匹配和正在发展的系统之间实现透明的互操作。服务网关模式还能提供指导,告诉您如何使服务调用强制执行安全性。

互操作和协作服务——通过一个浏览器、PC、移动设备、语音响应系统等等,将一项或一组服务呈现给某个人工用户。它的重点在于可用性问题,如向多个系统提供单点登录和提供基于角色的门户,以便在企业内或两个企业之间整合信息和应用程序的访问途径。提高使用系统的人员的工作效率,改善应用程序和系统中的内容的易用性,是这一场景的关键驱动因素。可以根据用户的角色,将内容以个性化的方式显示在聚合的门户页面中。

业务流程管理——为业务流程的优化和自动化提供协助,使组织的核心资产(人员、流程、信息和技术)保持一致,目的是创建单个集成化的视图、实时智能,以及适当的业务和 IT 指标, 以提高操作效率。该场景的重点在于业务建模和模拟、业务集成、流程监视(又被称为业务活动监视或 BAM)、面向流程的内容聚合、业务规则管理,以及人员、流程和技术间的有效协作。以流程为中心的企业在 SOA 转换过程中,将因使用这一场景而获益。

信息作为服务——扩展数据的业务价值,使信息可以用于某个 SOA 中。这一场景特别适合处于下列情况中的企业:

  • 有过多的信息,但无法确定它们的业务关系
  • 存储多个版本的信息,很难确定该使用哪个信息源
  • 没有对它存储的信息执行严格的数据质量措施
  • 维护着若干个互不相连的信息仓库,彼此包含重复的信息,或包含无法协调的不同数据集

这一场景的关键在于对信息进行虚拟化和集中化,以创建一组一致的、可靠的数据。虚拟的单一版本数据可以作为服务提供给整个 SOA 系统,后者以标准化的方式使用该数据,以支持业务流程。

SOA 设计——一个跨越性的场景,重点关注基于 SOA 的软件开发的建模方法、设计方法及体系结构。该场景通过一组角色、方法和构件,使业务设计与 IT 解决方案设计的建模工作趋于一致。一旦完成了这一点,就可以对业务流程进行优化,并作为服务实现,使服务能与业务一致,带来真正的业务价值。

SOA 治理——一个跨越性的场景,重点关注决策和执行流程,以监视 SOA 规划和执行工作。它建立在决策权和管理框架的基础上,此框架为 SOA 生命周期的四个阶段建立了权限、角色、控制等链条。除了建立决策权和管理 SOA 生命周期之外,该场景还把重点放在定义高价值的业务服务和在运行时度量它们的有效性上。

SOA 安全性和管理——一个跨越性的场景,重点关注服务在运行时的管理和确保外部使用者对高价值业务服务的安全访问。服务管理的重点在于 IT 流程的简化和自动化、服务和应用程序的服务级别管理,以及预测和管理跨服务(这些服务是相互依存的,并且是组合服务)的更改。服务安全性的重点是管理联合标识和跨服务的访问控制、确保能安全访问服务和应用程序,以及使服务的安全策略得到一致执行。

SOA 场景关系

SOA 场景可以一起使用,也可以采取增量方式逐步采用。图 1 展示了场景间的一般关系。

图 1. SOA 场景和它们的关系
SOA 场景间的关系
SOA 场景间的关系

“服务创建”场景会创建服务。在“业务流程管理”场景内建立的模型中,可以对服务进行标识。来自“信息作为服务”场景和“互操作和协作服务”场景的信息对服务进行标识之后,会将该服务用于“服务创建”场景中。“互操作和协作服务”场景主要建立在基于门户的企业服务访问权的基础上,它可以从“业务流程管理”场景中调用业务流程;它还可以调用“信息作为服务”场景中定义的服务。“互操作和协作服务”和“信息作为服务”场景中定义的服务使用“服务连接性”场景在服务之间提供通信方式。在“服务创建”场景中创建的服务还使用“服务连接性”场景在已创建的服务之间提供连接,以使它们共同构建组合服务。

“SOA 设计”、“SOA 治理”和“SOA 安全性和管理”场景均为跨越性的场景,它们在使用时会跨越五个功能性场景,并隐含着这些场景的实现过程。

已描述的关系并未涵盖场景的所有关联方式。随着在 SOA 方面的经验增加,会有其他得到充分证明的关系被添加到已经定义的关系中去。

使用 SOA 场景的流程

IBM 建议按下列流程将 SOA 场景应用到特定的问题。这一部分将介绍该流程。图 2 显示了五个相关的步骤。

图 2. IBM 在使用 SOA 场景方面的推荐流程
SOA 场景流程
SOA 场景流程

我们来看看 IBM 服务架构师在创建实际的行业解决方案时是如何应用这五个步骤的。

  • 捕获客户需求——在此步骤中,IBM 咨询师和架构师会以用例的形式收集需求,获取初始业务和 IT 背景,并将客户对企业未来状况的看法记录在文档中。
  • 使用通用用例进行可行性分析——SOA 场景框架列出了根据经验总结出的通用用例,这些用例可用来分析跨行业部门的客户需求。第一步中标识的每个用例都会根据通用用例列表进行分析,以评估哪个通用用例在映射后与客户用例最为接近。通用用例列表(被表示为 U1、U2、U3,等等)显示在表 1 中,表中还列出了在实现某个通用用例时可以使用的场景。
    表 1. SOA 场景选择条件
    用于场景映射的用例
    用于场景映射的用例

    上表中列出的每个通用用例的详细定义可以在 IBM Redbook Patterns: SOA Foundation Service Creation Scenario 的 5.2 节中找到。值得注意的是,这三种场景(SOA 设计,SOA 治理,SOA 安全性和管理)对映射到特定用例实现过程的基本场景起到了补充作用。所以,如表 1 的最后三列所示,这三种场景具有跨越性和补充性。
  • 选择 SOA 场景——每个被定义为 SOA 场景框架一部分的通用用例,会映射到一个或多个可以用来实现用例的 SOA 场景,如表 1 所示。此表被用来选择用以实现某个用例的 SOA 场景。这一步和先前的那一步,是所有用例都要执行的。如果基于 SOA 场景的活动将被用在新的项目活动中,那么它可能已经开始被用来解决另一个问题了。在这种情况下会执行一个反向的映射,即从 SOA 场景映射到客户定义的用例。您可以在图 2 中看到,这个反向映射是用一个箭头表示的,这个箭头从选择的 SOA 场景步骤指向前一步骤,即“使用通用用例进行可行性分析”。
  • 标识、重用和应用模式以加速实现解决方案体系结构——如果客户希望将现有的可重用资产用于解决方案的体系结构和设计阶段,将执行这一步骤。在一个含有两个步骤的流程中,会决定重用哪些资产:
    1. 请你熟读 IBM Patterns for e-business 的内容,然后确定哪些模式可以用来加快解决方案体系结构的实现速度。每个 SOA 场景都有一个或多个主要参考资料对其进行详细描述,如“Patterns for e-business SOA architecture and design patterns”。表 2 出于演示目的显示了列表的一部分,该列表列出了关于模式的参考资料和它们是如何映射到每个 SOA 场景的。(如要获取详细列表,请参见参考资料中的 IBM 红皮书“SOA Foundation: Service Creation Scenario”。)
      表 2. 有关每种 SOA 场景中的模式的参考资料
      SOA 场景流程
      SOA 场景流程

      注意,若非特殊说明,这些资料均为 IBM 红皮书®系列中的书籍。SOA 场景架构将变得越来越成熟,未来将出版更多的有关模式的参考资料。
    2. 第二步是使模式资产与开发方法保持一致。虽然 IBM 推荐的两种主要软件开发方法是 Rational® Unified Process (RUP) 和 IBM Global Service (GS) Method,但这一步骤并不仅限于这两种方法。无论选择哪种实现方法,主要映射操作的重点都是如何将可重用的模式资产映射到方法中的每条原则,以及它们在每条原则中是如何与输出工作产品关联的。这一方法通过使用可重用的模式资产,使工作产品的创建变得更方便。表 3 为 RUP 提供了一个可重用资产映射的示例。
      表 3. 可重用资产到 RUP 工作产品的映射
      资产到 RUP
      资产到 RUP

利用实现指南——这是 IBM 推荐的流程中的最后一步。可以用两种途径中的任意一种开始这一步骤:在标识了可重用模式资产之后开始;或在选择了某个 SOA 场景后直接开始。

这部分的参考资料包括一些工作示例,这些工作示例演示了如何针对 SOA MADM 生命周期中的各个阶段以及 SOA 场景中选择的通用用例集实现某个解决方案。

已经开发的实现能帮助您理解如何使用场景和选择产品;每项实现都是一个描述真实行业情况及其解决方案的示范业务案例。对于某种给定的场景,可能会有多项实现。每种场景都包含一些说明性的问题,帮助您在各项实现和需在实现过程中做出的决定间进行选择。实现指南(编程指南、安装和配置指南、解决方案模式,等等)可以用来加快某个特定 SOA 场景实现流程的速度。

总结

SOA 场景代表一组通用的业务场景,在这些场景中,SOA 被用于典型的客户事务。IBM 在 SOA 实现方面具有丰富的、基于客户事务的经验,这些经验已经被融合到 SOA 场景框架之中。某些 IBM 产品和解决方案被用在 SOA 事务中以解决实际问题,而 SOA 场景则代表使用它们时的通用场景。

这是本系列关于 SOA 场景的文章的第一篇,您已经大致了解了八种场景、它们的关系和相互依存性。您还了解了在一个实际的 SOA 事务中是如何应用 SOA 场景的。本系列接下来的文章将引用和实际执行这一流程。


相关主题


评论

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=SOA and web services
ArticleID=237281
ArticleTitle=体系结构实践,第 2 部分: SOA 解决方案场景介绍
publish-date=06292007