势在必行 建立有效的SOA治理模式

日期: 2008-02-19 作者:Pravin Gokhe 来源:TechTarget中国

  即使机构内的业务单位和部门急于从面向服务的架构(SOA)获益,如果没有对建立SOA进行合理的控制或治理,最终会使SOA环境无法管理,导致混乱以至失败的局面。SOA的成功很大程度上依赖于健全的治理体系。作为第一步,企业必须围绕如何解决SOA各方面的难题定义治理模式。在这篇文章里,我们将讨论SOA治理的主要目标,以及建立健全的SOA治理模式所需考虑的各种因素。良好的治理模式将是保证SOA成功的坚实基础。

  SOA治理的目标

  大多数企业都使用编排引擎(BPEL)、企业服务总线和Web服务等技术实现SOA应用。虽然这些技术和标准有助于认准目标,但并不是SOA成功的保障。SOA的成功与投资回报率并不是由技术平台或供应商决定,而是由诸多复杂的问题共同决定的。这牵涉到程序规范、协作、企业文化和决策制定。

  下面是一些主要问题:

  准确地鉴定商业服务的粒度与可重用性;
  通过标准化服务接口的标准数据模型(canonical data models)实现语义上的互操作性;
  通过执行最好的实践、标准与准则保证实现SOA过程中各项目小组之间的一致性;
  消除服务提供者与使用者之间的猜疑与犹豫;
  建立常用词库,方便不同单位或部门之间分享服务信息;
  打破传统企业文化和行为的障碍,保障服务提供者与使用者的正常参与;

  为决策系统引入需要遵循的准则。

  要成功实现SOA,必须首先解决这些问题。这些问题也表明了对SOA治理的需求。SOA治理的一些主要目标包括(见图1):

  在进行各种业务周期(业务识别-业务运营)有关的程序时通过适当的策略引入准则;
  通过奖金、奖励、表扬等方式鼓励参与,建立公开协作的企业文化;
  逐渐确立信任与信心,保证有效率地协作;
  建立适当的责任与义务体制,并以此控制决策制定。

  图1 SOA治理的目标

  SOA治理

  到目前为止,仍有许多人认为治理是一种资源浪费。他们低估SOA治理,认为这不过是依靠配置工具来发布和发现业务服务的机制。随着SOA从试行阶段进入回报阶段,重新考虑SOA治理的重要性已是势在必行。采用SOA的第一天就应该建立SOA治理,否则在后期建立SOA治理的成本要高很多。
  任何治理的核心都是确保在一定规则下获得理想的结果,这原则同样适用于SOA。业务服务是SOA中的首要因素,因此需要通过治理来确保所开发的资产(企业服务)是高质量的、企业范围内可重用或可共享的,并能满足业务能力的需求。
  有效的SOA治理将分辨出谁是公司里的领导人和闲人。治理对全面的SOA策略来说是必须的,并且是有序地建立SOA架构的基础。建立有效治理的第一步是确定治理模式。这需要验证并确定各种与目标、方针、策略、过程、模型、指标和角色责任有关的因素。第二步才是为实现这个治理模式挑选合适的技术与工具。

  图2描述了治理模式的主要内容。

  图2 SOA治理模式概要

  目标与原则

  建立目标是第一步。更短的上市时间、成本节省和过程的灵活性都是SOA的主要目标。为适应业务需求,必须用精准、清楚、确定的术语来描述目标。然后确定一个策略,将重点放在特定的、有高度可重用性和投资回报率的领域或功能上。比如客户服务领域,可以巩固与客户相关的跨越各种业务线(LOB)的业务服务为目标。良好的目标与相关策略有助于清晰地表达SOA规划。
  在开发企业SOA解决方案时,为达到意见一致的目的(像如何应用SOA等),需要确定一些基本的SOA原则。

  下面就是一些基本的原则:

  任何业务服务都应该有一个粗粒度接口;
  可以用技术不可知的接口或协议发现业务服务;
  业务服务应该符合企业技术和语义互操作性标准;
  业务服务应该有自治功能,对实现技术、运行环境或地址所做的任何改动都不应该影响服务使用者;
  服务使用者与服务提供者之间的交互必须遵循面向文档的通信形式;
  业务服务必须可被其它业务单位或业务线的服务使用者发现;
  SOA基础设施必须提供对服务使用者和服务提供者之间敏感信息交换保护的支持。

  策略

  从确定过程中需要进行管理的核心设置开始,策略就是治理的中心。虽然策略可应用于各个层次,比如业务、架构、服务和技术等,但我们只讨论业务服务方面的策略。

  我们面临的与SOA相关的挑战有:

  重用-如何保证开发的业务服务有最理想的可重用性和互操作性?
  验收-如何保证业务服务有良好的可见度,并且在业务线之间实现流畅高效的协作?
  维持-如何维持SOA长期运行?

  考虑到这些挑战,就必须在业务周期、协作和维持这些方面确定核心过程。而对这些过程进行治理时可能需要确定其中的控制点,并应用合适的策略来控制结果。这里的主要困难是要谨慎地定义策略,既不能太严格也不能过于宽松。应该有足够的合理性以保证其可被平稳地接受。

  图3显在应用策略的过程中,过程与控制点的一些方面。

  图3 策略应用过程与控制点

  服务的生命周期

  服务的生命周期由业务运营过程中的业务识别活动组成。各种设计时和运行时的策略都要围绕这些生命周期过程来定义。
  设计时策略的主要目标是确保所开发业务服务的可重用性和互操作性:
  可重用性-为服务的实现确定正确的业务功能是一项很困难的工作。如果没有正确的方法进行业务识别,项目小组最终将开发出没有足够可重用性的服务。与业务识别过程相关的策略应该加强以流程为中心的应用,而top-down(分析-计划-执行)或bottom-up(执行-分析-解决)的分析方法应该用来确定真正可重用的功能。
  互操作性-互操作性策略应该将重点放在建立技术上和语义上有互操作性的业务服务。比如,作为“服务界面说明与设计”过程的一部分,关于语义互操作性的高层次策略可以定义为加强业务服务接口与企业规范的符合度。然后可以定义关于各领域或功能区域的详细策略。同样,在技术互操作性前台上,策略可以定义为加强与WS-I基本文件的合规性,以实现跨越各种平台、操作系统和系统语言的Web服务的互操作性。
  运行时策略应该定义为加强对可操作的服务行为的治理。比如,关于SLA监控和非合规性报告的运行时策略,应该定义为加强将可视性问题作为合规性问题考虑并采取补救措施,不管是自动的还是手动的(自动将附加服务实例化以防性能降级,就是一个自动补救措施的例子)。

  运行时治理包括:

  安全性方面的管理,比如通过加密提高访问控制和数据层的安全性;
  通过合规性监控与报告进行服务层协议(比如响应时间、是否可用等)的管理;

  对审计、记录和异常的管理。

  服务行为相关的运行时问题的治理很重要,因为这有助于维持服务提供者与服务使用者之间的信任,创建一个可长期运行的SOA环境。

  协作

  关于协作的策略应该以加速业务服务的验收为目标。这包括定义主要区域的策略,比如发现、信任、合约等。关于服务元数据的策略,因为对服务有所描述,可以增强清晰的业务技术可操作性分类的应用。对元数据和分类的应用将提高服务使用者的服务可视性。同样,定义关于信任与合约的策略也能解决服务使用者之间存在的怀疑与犹豫的障碍。将服务层次和服务的完整性与正式合约保持一致,可以提高服务使用者的信心。提供关于像SLA等方面的历史合规数据可以进一步提高信任度。

  维持

  SOA还在不断发展中。对于维持需要治理的主要方面有:

  服务使用者的扩展需要可扩展性:业务服务应该可以在发展的基础上根据新的服务使用者变化并支持不断增加的客户量。
  技术革新:由于许多原因,比如减少授权费用和维护成本,不可避免地有时要将应用业务的功能移植到新技术平台。因为这一般发生在服务器端,应该保护服务使用者的性能、支持的容量和可用性等方面不受服务等级协议改变的影响。

  资金:要有足够的资金来支持并维护业务服务和SOA架构

  只有先解决这些维持相关的问题,才能减少对SOA能否长久维持的怀疑。

  模式与指标

  必须建立一个坚实的执行和合规模式。下面是需要考虑的主要方面:

  决定如何执行各种策略,作为过程的一部分还是利用各种工具技术。比如,大多数开发策略都可通过工具自动执行;
  定义验证与检查过程以保证合规性;
  为生命周期中各步骤中的业务服务制定合规化证书,以保证健全的过程;

  异常处理和效果分析。

  SOA的成功还需要行为与文化的改变。守旧、内向的企业文化将导致SOA的失败。我们应该远离“我自己来开发”这种传统思想。作为企业级的战略,SOA的成功主要取决于生产效率和服务提供者与服务使用者的有效参与。简单来说,SOA的成功需要开放的企业文化与健康的关系。建立这样一个企业文化需要企业增加积极的行为,比如提供奖励、赞赏、优先资金等机制。同时要减少复制再创造之类的消极想法。
  指标是SOA成功的度量基础。可以通过一些指标来衡量SOA的成功,比如新产品的上市时间、成本节省和流水线化的过程数量。指标还可以用来度量治理的有效性。定义指标并收集某些因素的数据,比如成功的协商、可重用性和互操作性的合规率。这有助于了解当前治理过程策略的漏洞和刚性,以便进一步完善。

  角色与责任

  为决策制定过程引入规则时必须定义企业的结构。这些企业结构包括业务、领域和技术小组/部门/委员会。确定这些结构中角色的责任并分派其可以胜任的责任和义务是核心SOA治理委员会的责任。

  这些结构与角色包括:

  业务

  业务过程流水线化委员会-负责与各业务单位紧密协作,了解特定领域的过程流水线化或自动化的时机。比如,客户服务领域(这种业务单位的实例有个人小额银行业务和投资银行业务)。委员会将负责编制过程计划,概述要流水线化或自动化的过程。
  成本效益分析委员会-负责从业务收益、成本和投资回报率方面评估业务功能的服务实现/共享。这份报告将同时递交给过程权限委员会。
  过程权限委员会-这个特定领域的委员会包含各业务部门的人。负责批准或否决业务功能的服务实现及共享。

  领域

  客户服务领域架构小组-过程计划将交给领域架构小组。这个小组负责实现详细的过程蓝本,确定过程中的可重用资产。这个过程蓝本将同时递交成本效益分析委员会和过程权限委员会。
  客户服务领域分析小组-负责确定或定义符合企业规范的语义标准供业务服务使用。
  客户服务接口委员会-负责审查语义标准和业务服务的使用权限。

  技术

  SOA优化中心-负责以下内容:

  支持项目/产品小组进行业务服务、组合应用等的设计与开发
  指导项目/产品小组关于SOA实现的技术和标准(BPEL、ESB、Web服务)
  开发最好的实践与方针
  执行PoC验证
  为执行SOA项目和程序建立资源库
  提供精神领袖和技术指导
  SOA平台检验部门-负责验证销售商的技术平台的标准合规性及与其它SOA生态系统中的组件的互操作性。
  架构设计标准部门-负责验证与SOA Web服务相关的新兴趋势和标准。
  SOA标准检查部门-负责通过或否定架构设计标准。

  一旦治理模式完成,企业就必须将重点放在其实现上。没有任何单独的销售商或工具可以提供全部的治理解决方案;公司必须发展现有框架,集成各种治理工具,以实现治理模式。

  结论

  各企业现在正处于SOA治理的初级阶段。如果没有有效的治理,SOA的可扩展性能将受到限制。因此,必须建立健全的治理模式来解决围绕SOA规则产生的各种难题。通过建立过程规则、控制决策制定、保证平稳的协作和解决企业文化/行为方面的问题,可以帮助企业成功地实现SOA。SOA治理是复杂的。随着SOA的发展,企业也需要发展治理模式,以解决新出现的问题。良好的治理模式将会为SOA的成功打下坚实的基础。

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐

  • SAP收购CallidusCloud 与Salesforce竞争

    一直被称为后台办公巨头的SAP现在似乎也想在前台办公大展拳脚。 最新的迹象是SAP收购CallidusClou […]

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

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

  • SOA治理模型核心:人

    治理在IT领域非常关键,但是很多时候企业的做法往往太过单向,企业SOA治理模型往往忽视了所有部分当中最关键的组件:人。

  • 揭秘New Relic APM技术细节

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