SOA解决方案场景介绍

日期: 2008-01-27 作者:Tilak Mitra 来源:TechTarget中国 英文

  IBM在本文中提供的八种场景,能帮助您着手使用面向服务的体系结构(SOA)。在这篇分为若干部分的介绍性文章中,您将探索每种SOA解决方案,找到可以加快您的SOA实现速度的要点。


  引言


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


  ·建模
  ·组装
  ·部署
  ·管理


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


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


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


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


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


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


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


  以下为功能性场景:


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


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


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


  这篇文章将为您依次介绍八种场景、它们背后的原理,以及在何种背景下可以使用它们。它还将展示一套将特殊的SOA场景应用到典型IT项目的方法。每一期都会重点介绍一种SOA场景:定义场景、标识场景中可能发生的各种模式,然后细化通过IBM技术和产品在场景内实现每一种模式的方法。


  概述: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场景的流程


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



  图2. IBM在使用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场景步骤指向前一步骤,即“使用通用用例进行可行性分析”。


  标识、重用和应用模式以加速实现解决方案体系结构——如果客户希望将现有的可重用资产用于解决方案的体系结构和设计阶段,将执行这一步骤。在一个含有两个步骤的流程中,会决定重用哪些资产:


  请你熟读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场景中的模式的参考资料
 
  注意,若非特殊说明,这些资料均为IBM红皮书系列中的书籍。SOA场景架构将变得越来越成熟,未来将出版更多的有关模式的参考资料。


  第二步是使模式资产与开发方法保持一致。虽然IBM推荐的两种主要软件开发方法是RationalUnified Process(RUP)和IBMGlobal Service(GS)Method,但这一步骤并不仅限于这两种方法。无论选择哪种实现方法,主要映射操作的重点都是如何将可重用的模式资产映射到方法中的每条原则,以及它们在每条原则中是如何与输出工作产品关联的。这一方法通过使用可重用的模式资产,使工作产品的创建变得更方便。表3为RUP提供了一个可重用资产映射的示例。



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


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


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


  总结


  SOA场景代表一组通用的业务场景,在这些场景中,SOA被用于典型的客户事务。IBM在SOA实现方面具有丰富的、基于客户事务的经验,这些经验已经被融合到SOA场景框架之中。某些IBM产品和解决方案被用在SOA事务中以解决实际问题,而SOA场景则代表使用它们时的通用场景。
 
  这是本系列关于SOA场景的文章的第一篇,您已经大致了解了八种场景、它们的关系和相互依存性。您还了解了在一个实际的SOA事务中是如何应用SOA场景的。本系列接下来的文章将引用和实际执行这一流程。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐

  • 事件驱动框架和SOA在空军的应用

    空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。

  • 揭秘New Relic APM技术细节

    New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响

  • 仅凭SOA和云无法解决业务数据管理风险问题

    SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。

  • 总线技术究竟该不该用?

    曾几何时企业服务总线(ESB)被视为企业IT的核心。今天,不仅ESB受到了比被废弃还要糟糕的攻击,若干开发趋势似乎对更简单的消息总线也发起了质疑。