有效的SOA应用需改变传统的架构和流程
 

2009-01-09来源:网络

 

随着SOA领域的发展,它带来了一些应该解决的有趣的难题以便推动应用和实现它许诺的好处。许多人花很长时间才理解到SOA并不是一个纯粹的技术问题。

SOA是一种IT策略。它要求我们改变有关IT如何适应业务以及一个机构如何能够支持和推动在企业中的SOA等问题的思考方法。流行的IS战略三角框架强调了业务、IT和机构战略部门合作的需求。业务战略应该推动SOA战略。这是一个IS/IT战略和SOA战略必须支持这个业务战略。

要提高SOA战略的效率,机构的能力和流程应该与业务和SOA战略结合在一起。许多调查表明,与SOA机构和治理有关的问题是阻碍SOA应用的主要因素。

有效地应用SOA需要改变一个机构的传统的架构和流程。SOA战略的实施可能会带来西机构、治理部门、任务、职责和其它治理问题。它也许会改变建立业务能力的方式以及把这些能力应用到业务中的方式。本文的目的是为识别围绕SOA资产的拥有问题开发一个框架。每一个机构的文化和能力都是不同的。本文讨论的框架是通用的,足以客户化地适应任何一个机构。

治理流程的有效性主要依赖于任务的定义、明确资产和流程的所有权和治理机构授权的水平。SOA产生了与SOA资产所有权有关的一些难题。主要原因是:

1.要建立一些服务解决企业关心的问题。单个部门不再拥有一项服务的所有部分,因为那样做就完全破坏了SOA的目标和好处。围绕SOA做出的决策应该以整个企业的最大利益为基础,而不是以这个企业中的单个部门的利益为基础。

2.服务由一些性质分散的部分所组成。这种分散是多维的。例如,一项服务也许涉及到物理(在若干硬件层应用)和机构的边界(这个服务的开发和部署也许包含许多机构)。当确定SOA服务的所有权的时候,重要的是澄清识别所有权的目的,理解暴露的基础资产和围绕这些服务的边界。

识别所有权的目的

识别所有权的目的有很多。对于为什么应该识别这个所有权,每一个机构都有不同的理由或者目标。这些目标推动所有权确定的方式和在整个机构所有部门中间共享。

总的来说,下面的列表显示了识别所有权的常见理由。

单一责任人(SPOA)

所有权识别一个单一责任人。资产权一直被当作是经济发展的关键。资产权将导致繁荣。机构内部的资产权在引导机构走向繁荣的过程中扮演了重要的角色。

生产方式的拥有权不是一种特权,而是一种社会责任。这个观点也适用于SOA。服务资产的拥有者必须要证这些资产为消费者和这个企业的最大利益服务。随着一个机构的SOA达到更高水平的成熟,他们很可能拥有一种“像商业式的”的模式。在这个模式中,一项服务的提供者为消费者服务并且通过这些服务衡量他们创造的价值。拥有者必须理解他们对企业承担的责任,必须努力服务和满足消费者。如果不能做到,他们就降低了向企业提供的价值,他们的存在就成为疑问。

学科知识专长

资产拥有者提供学科知识专长来定义、设计、开发和维护这些服务。拥有者一般是这些资产的某些方面的专家或者所有方面的专家。

资产保护和发展

服务需要为了企业的利益进行保护和推广。拥有者在这方面将发挥关键作用。拥有者一般要保护这些服务以保证这些服务适合消费者,并且发展这些服务以支持不断变化的业务需求。

资金

资产拥有者在大多数情况下要明确说明资金来源或者使用情况。拥有者投资或者收回构建一项服务的成本,尽管其他消费者偶尔也可以参与。鉴于这个服务增加的企业价值,应该制定一个资金模式以管理建造成本和运行这个服务的方式支持拥有者。

改变控制

拥有者负责控制这项服务的任何变化,一般拥有验证对服务做出改变的权利和知识。他们要保证这些变化能够在不影响这个服务的意义的情况改善状况。

GO(管理者-拥有者)服务拥有者框架

服务是涉及到整个机构和技术边界的复杂的实体。应该找出这个服务的独特的技术和流程组件,并且按照上面所说的理由恰当地分配所有权。对于SOA服务来说,单一的拥有者模式是不行的。由于服务组件的分布式的性质和生命周期流程等原因,一个实体或者集团也许不能拥有和治理这个服务。因此,有必要区分拥有者的任务和治理者的任务。

服务在其生命周期的不同的点上应该有不同的拥有者。同一个服务的不同版本的共存增加了复杂性。需要进行大量的协调以保证这些机构实体之间的顺利交接。此外,在这个流程中还需要在恰当的时候参与的其他利益相关者。这将保证治理机构能够独立策划这些努力。我们把这个治理机构称作这个框架中的“治理者”。

为了所有权,应该考虑到这个服务的各种组件。对于这些组件,你需要问一些问题。这些组件应该由同一个实体拥有吗,或者不同的部门拥有这个服务的不同部分有意义吗?对于围绕这些问题的设计决策,谁有最终的发言权?

服务合同

这个合同包括业务需求或者服务的定义和功能的需求。

服务接口

接口是进入服务的进入点。运营基础设施暴露这些接口便于消费者接入。

服务实施

服务的实施也许包括如下内容:

·基础资产

·业务(或者效用)逻辑实施

·政策

·注册和企业服务总线等SOA基础设施组件

·硬件服务器和网络组件等物理基础设施等

我们需要确认这些组件每一个都找到了正确的拥有者。GO框架把服务的所有权细分为如下类型的所有权,以便解决这些组件的所有权的需求:

·语义所有权(构想者)

·开发所有权(构建者)

·运营所有权(维护者)

下面详细讨论这些;类型的所有权。

语义所有权(构想者)

服务的生命线是其业务(或者技术)语义。这个语义包括基本资产、信息、商业规则或者算法的含义。服务的语义拥有者依赖于资本资产的拥有者。业务(或者业务代表)一般拥有业务服务的这种所有权。业务最适合判断任何语义变化或者增强的影响。由于这个拥有者构想这个服务,我们把他称作构想者。

开发所有权(构建者)

开发所有权是指负责设计、开发和配置这些服务。开发所有权拥有者负责这个服务的技术方面,如:

·服务接口定义

·方案定义

·技术实施

·政策

·服务架构

·非功能的实施

·特点

开发拥有者可以在不改变这个基本资产的语义的情况下修改这些非功能的特点。服务提供商通常担任这个角色。

运营所有权(维护者)

运营所有权拥有者负责在这个服务的运营生命周期内维护这个服务。运营拥有者这项服务的“运行期实例”。改变运行期实例和配置由这个拥有者负责。开发拥有者一般在这个服务从开发生命周期进入运营生命周期的时候把这项服务移交给运营所有者。要搜集这些服务的运行指标并且把这些数据提供给企业以便不断改善业务能力。由于运营所有权拥有者负责维护这些服务,我们把他称作维护者。

管理者

不谈论管理者的任务就不能讨论服务的所有权。管理者一般是一个机构的任务。一个集中的机构的组织应该担负这些保护企业利益的职责。管理者有如下职责:

治理:管理者应该处理治理问题和协调各个股东和拥有者的利益。正如早些时候讨论的那样,一项服务在生命周期内会出现许多改变。开发和发布服务应该与消费者的开发和发布计划同步。此外,应该保证这个服务执行企业标准和最佳做法。管理部门负责这些活动,它将利用这个机构中的其它部门实施治理。

推广再利用:有时候,拥有者也许对于推广服务再利用不感兴趣,因为服务的再利用也许不按照交付的情况衡量,而是根据企业价值或者节省的成本进行衡量。管理者的责任就是推广服务再利用和协调各个方面以加快服务的应用。

经纪和中介:拥有者拥有这项服务并且对于他们拥有的部分拥有最终的发言权。管理者协调消费者和其他各方访问、修改和增强的请求。在一个复杂的企业生态系统中,冲突是不可避免的。股东的优先次序是有很大差别的。管理者负责协调各个方面的沟通。

资金管理:管理者一般负责管理构建和运行这些服务的资金。资金模式应该支持服务资金的分配和退款以便收回成本。管理部门还管理一个成本中心或者投资中心。采用成本中心的模式,它只负责成本和通过向消费者退款收回成本。采用投资中心模式,它通过资本预算获得收入,并且根据自己的决定收回或者重新投资建立额外的企业服务。

成本分配:管理者要保证服务的开发和维护成本恰当地分配给这个服务的消费者。要衡量和提高这个公司的效绩,应该衡量这个成本和平均地分配这个成本。做不到这一点将导致滥用有价值的资源。

发布管理:管理者还要在产品组合设计师的帮助下管理这项服务的各个版本的开发和发布周期。不同版本的服务在任何一点上也许都有不同的拥有者。图3解释了这个概念。在这里,1.0版本正用于生产,有经营部门监视和管理。而1.1版由开发的拥有者(服务提供商)实施。同时,语义的拥有者也许正在研究创建2.0版本的服务的需求。管理者在拥有者和消费者之间协调各个版本的淘汰和发布。

服务持续不断的技术支持:管理者衡量和理解这些服务的价值,并且保证这些服务在退出使用之前得到适当的拥有者的技术支持。

现在,这个框架已经解释完了。一个有用的实践就是找出你的服务的各个拥有者。一个好的起点就是找出服务的每一个类别的拥有者。表1列出了标准的服务类。记下你的机构中这些服务类型的拥有者。此外,现在是开始思考哪一个部门或者哪一组部门将负责你的机构的管理职责的好时机。如果你不能确定哪一个部门将负责管理任务,那么,这可能就是当前的问题。

小结

有效的SOA治理取决于找出和分配这个服务的各个组成部分所有权。在一项服务的生命周期中,它要求语义、开发和运营的拥有者从概念走向生产。各个拥有者和其他股东之间的协调需要管理者的参与。GO框架捕捉服务拥有权的这些要素。


火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。
资源网站: UML软件工程组织