技术开发 频道

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

【IT168 专稿】

    即使机构内的业务单位和部门急于从面向服务的架构(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的成功,比如新产品的上市时间、成本节省和流水线化的过程数量。指标还可以用来度量治理的有效性。定义指标并收集某些因素的数据,比如成功的协商、可重用性和互操作性的合规率。这有助于了解当前治理过程策略的漏洞和刚性,以便进一步完善。

0
相关文章