技术开发 频道

SOA治理简介

什么是 SOA 治理?

    我们已经了解了治理无效时可能出现的情况。那么,如果治理更好,IT 是不是会工作得更好?首先,我们需要了解什么是治理,以及它如何影响 IT 和服务。

    通常来说,治理意味着建立和执行工作组为了一起工作而一致同意的工作指南。具体来说,治理包括两个方面:

  • 建立责任、授权和通信链,以对人员进行权利分配,确定谁有权进行哪些决策
  • 建立度量、策略和治理机制,以支持各个人员执行各自的角色任务和旅行相关职责

    治理与管理有以下几个方面的区别:

  • 治理确定谁具有权利和责任进行决策
  • 管理是进行决策和实施决策的过程

    因此,治理说明应该完成哪些工作,而管理用于确保完成此工作。

    治理更为具体的一个形式是 IT 治理,用于完成以下任务:

  • 建立与 IT 关联的决策权利
  • 建立用于度量和治理 IT 决策及执行的机制和策略

    即,IT 治理讨论的是关于谁负责 IT 部分中的什么,以及部门如何知道相应的人员履行了这些职责。

    SOA 向治理添加了以下几个独特的方面:

  • 充当 IT 治理的扩展,重点关注服务的生命周期,以确保 SOA 的业务价值
  • 确定谁应该监视、定义和授权对企业内现有服务的更改

    治理在 SOA 中比在普通 IT 中更为重要。在 SOA 中,服务使用者和服务提供者运行于不同的进程中,由不同的部门开发和管理,为了成功地一起工作,需要进行大量的协调工作。为了 SOA 能成功,多个应用程序需要能共享相同的服务,这意味着它们需要进行协调,以便共享和重用这些服务。这些就是治理问题,比采用独立应用程序时(甚至包括使用可重用代码和组件时)要复杂得多。

    随着各个公司开始使用 SOA 来更好地保持 IT 与业务间的一致,可以使用 SOA 治理来非常理想地改进总体 IT 治理。如果公司要实现 SOA 的各种好处,采用 SOA 治理是非常关键的。对于 SOA 的成功,SOA 业务和技术治理不是可选的,而是必须使用的手段。

SOA 治理实践

    在实践中,SOA 治理指导可重用资产的开发,确立如何设计和开发服务,以及这些服务如何随时间增长进行更改。它将在服务提供者和服务使用者之间建立一个协议,告知使用者可以希望得到什么功能,告知提供者应该提供什么功能。

    SOA 治理并不设计服务,而是指导将如何设计服务。这可帮助回答很多有关 SOA 的问题:提供了哪些服务?谁可以使用这些服务?它们的可靠性如何?将在多长时间内支持这些服务?是否可以确定这些服务不会更改?如果为了各种目的(如修复错误或添加新功能)而希望进行更改时该怎么办?如果两个使用者希望相同的服务以不同的方式工作时该怎么办?是否因为您决定公开服务就意味着有责任永远为其提供支持?如果您决定使用服务,是否能保证明天不会关闭这个服务?

    SOA 治理以现有 IT 治理技术和实践为基础。使用 Java 2 Platform, Enterprise Edition (J2EE) 等面向对象的技术时,IT 治理的一个关键方面就是代码重用。代码重用也体现了 IT 治理的难点所在。每个人都认为可重用资产很好,但实际工作时却非常困难:谁为开发可重用资产付款?开发团队是否会实际尽力进行重用?是否每个人都认同可重用资产的单一行为集,或者每个人都采用自己的自定义版本,实际上完全不能进行重用?SOA 和服务使这些治理问题变得更加重要了,它们的结果也因此变得更为重要。

    治理更多的是政策问题,而不是技术或业务问题。技术的重点是匹配接口和调用协议。业务的重点是为客户服务的功能。技术和业务都关注的是需求。虽然治理也涉及这些方面,但它更多的是要确保所有部分一起工作,独立的工作彼此并不会冲突。治理并不会确定决策的结果是什么,而是考虑必须进行哪些决策以及谁进行这些决策。

    使用者和提供者双方彼此就如何一起工作达成一致。这些认识上的一致大部分都能通过服务水平协议(Service-Level Agreement,SLA)进行捕获,形成服务提供者愿意提供且服务使用者愿意接受的可度量目标。这个协议就像各方之间的契约,而且可以成为事实上的具有法律效力的合同。SLA 至少要清楚说明提供者必须进行怎样的工作,以及使用者可以期望得到什么服务。

    SOA 治理是由精英团队(Center of Excellence,COE)(一组知识丰富的 SOA 技术人员)制订的,他们负责建立策略并监督其执行,从而帮助确保企业的 SOA 成功。COE 将建立各种策略,以用于标识和开发服务、建立 SLA、管理注册中心以及进行其他提供有效治理的工作。COE 成员随后将这些策略付诸实施,指导和帮助团队开发服务和组合应用程序。

    治理 COE 制订了策略后,就可以使用相关技术来管理这些策略。技术并不会定义 SLA,但可以用于执行和度量遵从情况。例如,技术可以限制哪些使用者可以调用某个服务以及何时可以调用服务。可以向使用者发出警告,告知服务已经弃用。可以对服务的可用性和响应时间进行度量。

    技术执行治理策略的一个不错的途径是通过企业服务总线(Enterprise Service Bus,ESB)和服务注册中心的组合。可以采用特定的方式公开服务,以便只有特定的 ESB 才能调用该服务。然后 ESB/注册中心就可以治理使用者的访问,监视和测定使用情况,确定 SLA 遵从情况等。通过这种方式,服务可以将重点放在提供业务功能上,而 ESB/注册中心则主要负责治理方面的工作。

    治理可能成为 SOA 中任何错误的替罪羊。和性能一样,治理可能成为极大的顾虑,成为所有问题的托词和每个有问题的解决方案的正当借口。只需要在任何 SOA 讨论中扔出一句火药味十足的话(好比扔出了一颗“手榴弹”),然后就可以看着原本有用的讨论瞬时间陷入一片静寂。SOA 的一个挑战就是明智地使用治理来使 SOA 更好地工作,而不会让治理方面的顾虑淹没了所有其他事项。

0
相关文章