治理让SOA保持方向感(一)

日期: 2007-12-16 作者:边歆 来源:TechTarget中国

  城市规划师的工作不同于建筑设计师,也不同于道路桥梁设计师。相比于其他设计师,城市规划师站在更高处,从更高的角度根据城市的特点进行通盘规划。规划完成之后,还要进行治理(也有人称之为监管,Governance),就是采取一些策略和手段,通过建立一个权责框架来保证规划能够得到切实的执行。

  SOA治理其实和城市规划治理很相似。不仅如此,甚至两者在理念上就是一回事。BEA公司企业解决方案经理刘松对记者说:“BEA公司 SOA的规划、治理方法论在宏观层面完全借鉴了城市规划的理念,因为两者面对的问题基本上是一样的,都是处理局部和整体、新系统和旧系统的关系。”

  SOA治理保证“重用”

  SOA架构用于开发与业务模型保持最佳一致性的软件应用程序。不过,SOA会提高业务和信息技术,以及IT部门和各个团队间所需的合作和协调级别。这个合作和协调是通过SOA治理提供的,涵盖了用于指定和管理如何支持服务和SOA应用程序的各个任务和流程。

  SOA治理的目的是让软件治理与业务治理相互配合,包括协调各领域之间的软件开发、软件获取及软件重用,以取得最大程度的机动性和规模经济性与范围经济性。

  IBM软件集团SOA战略全球副总裁Sandy Carter说:“SOA治理包括了在IT层面的治理观念,还有针对SOA的治理框架。”从IT的角度来看,需要有一个能管理和跟踪整个SOA应用生命周期的机制,也就是一个能管理从发现业务需求到转变业务需求为 IT实现,并在运作中跟踪业务需求最终价值实现情况的机制。然后是运用什么样的管理政策和系统来监控管理这些决定企业业务能否成功的因素,来确保企业在进行着这些环节所应该做的事情。建立连锁责任关系状态,包括授权、决策等。

  如果用一句话来总结,SOA治理其实就是如何来监控SOA的整个生命周期。也就是用怎样的方法论来发现业务需求,打包服务,使之组件化,组成一个完整的SOA应用;在这一过程中,用什么样的方法论来管理,随着市场上的变化来更改业务需求,使整个SOA应用能跟进和适应新的业务需求,如此循环迭代地发展和演进。

  SOA治理不仅仅涉及到开发团队,同时也牵涉到所有的业务利益关系人。这是SOA非常重要的一个部分。因为针对相应的业务过程所实现的、并集成在一起的服务,经常是在业务中需要综合和跨越多个业务流程的。一旦针对SOA实现方案定义了相应的治理方式,那就得在整个组织中部署这个治理模式。

  从本质上说,SOA与其说是一种技术,不如说是一种思维方式,它表达了一种对业务和IT更密切结合的演化的认知。简而言之,SOA代表了一种更大范围重用的文化,而不是技术本身。就像过去,我们构建应用往往是为了满足某些特定的业务需求。事实上,这些应用也包含大量的构件或服务,可以在应用内部多处使用,但这些构件或服务很少会为外部应用重用去设计,与此同时,其他业务也很少会想到去重用这些已经存在的服务,而宁愿重新发明。

  事实证明,仅仅技术上的努力并不能换来大规模的重用,从而实现IT灵活和业务敏捷的目标。因此,企业必须清醒地认识到,SOA决不是简单的技术采用,或是在市场上买到的什么产品,真正重要的是如何在整个企业内正确地实施这种文化。而推动这种文化变革需要一套有效的治理机制。

  刘松说:“SOA的核心就是重用,重用带来了SOA的所有价值。为了重用,就需要治理,确保能够实现重用。没有治理,SOA就失去了意义,企业的应用开发就回到了从前的老路上。”

  SOA治理框架

  SOA治理不仅仅是帮助企业实施SOA,更重要的是指导企业如何正确地实施SOA。据BEA公司解决方案架构师彭辉介绍,一个灵活而有效的SOA治理框架应至少解决三个方面的问题。 

  首先,也是最重要的,组织者需要明确自己的目标,也就是什么是自己所期望得到的结果。以某个政府机构为例,他们实施SOA的首要目标就是让各部门能够更有效率地协作,使广大市民和企事业单位能够更容易、更透明地获得政府的信息和服务。同时,能够通过实施SOA改变长久以来因多头管理、地域差异等造成的刚性IT投资模式,使IT部门能够更快、更灵活地响应变化。

  其次,要建立一套有效的治理机制,包括策略、流程以及与之相适应的组织结构,关键是要清晰地回答:“为了有效的管理,需要做出哪些决定,谁有权做出这些决定,怎样做出这些决定,如何推行这些决定,谁对决定的推行负责”。其中,策略是治理机制的基础。简而言之,策略就是帮助组织确定什么是对的,什么是企业所鼓励的行为。举例来说,一个最容易理解的策略是:如果服务已经在那里,就不要重新发明。

  即使这样一个简单的策略被推行,企业也将会减少很多重复劳动,并可能因此改变工作的方式,改变对架构的理解,改变项目投资的优先级。同时,治理机制必须是灵活的。一方面要与整个企业SOA成熟度相适应,另一方面要能够根据实际运行过程中的度量反馈持续改进。

  最后,要定义一系列绩效度量指标,帮助了解现有治理模型的情况,确保一直在遵从期望的目标运行。最直接的例子是,度量可以帮助我们了解“到底我们创建了多少共享的服务,每个服务被重用多少次,因为重用带来的成本降低有多少”等等。同时,度量也可以帮助我们发现当前遇到的问题和可能发生的趋势。

  比如某个策略可能需要调整,组织中某个角色需要重新授权等等。没有度量,我们很难说治理机制是否能被正确地执行。因为,如果连现在到了哪儿都不知道,那么我们永远无法达到目的地。

  可以这样说,个别的项目和应用的成功交付可以帮助企业走上SOA变革之路并收获经验和信心。但是,当我们推动SOA从试点到普及,我们更需要文化的变革,需要一个灵活而有效的SOA治理框架。没有SOA治理,我们可能只是仅仅堆砌了一组Web服务和技术工具,无法实现SOA的全部价值。

  SOA治理实践

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

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

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

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

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

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

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

 

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

作者

边歆
边歆

相关推荐