权利和责任是一起来的。SOA的承诺为服务重复使用和实现一个完全集成的企业提供了巨大的机会。但是,人们没有 想到的是SOA实现的灵活性将导致企业IT部门出现混乱。要恰当地控制SOA的权利同时为企业提供价值,某些控制是非常重要的。在一个普遍存在的和透明的 框架中采用服务发现、服务安全、服务管理和政策治理等方法对于任何企业成功地实施SOA都是非常重要的。
权利和责任是一起来的。SOA计算模式为集成企业和实现重复使用提供了巨大的承诺。但是,随着这个权利出现了适当地使用的责任。如果一个机构不能充分地控制SOA原则产生的灵活性,就会出现混乱。
有有效地实现面向服务的好处,必须要为了机构的利益控制SOA固有的灵活性。有效的SOA以合适的比例应用服务发现、服务治理、服务安全和服务 管理。这些部分的每一个重要的部分都必须要单独地理解,因为它们都是相互关联的。当它们结合为一个无缝的架构的时候,这个整体就超过了其组件的总和。
发布-发现-绑定概念
在SOA的核心是发布-发现-绑定(publish-find-bind)概念。图1解释了这种松耦合计算的范例。
在这种计算范例之下,一个服务提供商发布其服务(作为服务端点)并且等待启动这些服务。(第一步--发布)要发现从使用其服务中受益最多的那些消费者。提供商通过发布其注册处中的产品“宣传”其服务。这个注册处(通常是符合UDDI或者ebXML标准的)维护一个在企业中发布的全部服务的数据库以及这些服务的细节以便帮助消费者的发现过程。在实践中,这个信息通常包括一个WSDL文件(包含其调用签名)以及服务所在的端点的URL地址。这个注册处还包含一个全面的库以保存每一个服务的功能和特点等情况的额外细节。
一旦一个服务在企业的注册处发布,一个有兴趣的消费者也许就会查询这个注册处寻找能够满足他的需求的服务。(第二步--发现)接下来,开发人员 使用他们在注册处发现的服务建造自己的系统。松耦合协作中的最后一个步骤(第三步--绑定)在运行时间发生。在执行时间,消费者使用在“发现”操作期间由 注册处提供的端点URL与提供商绑定在一起。
根据发布-发现-绑定松耦合的范例,提供商和消费者需要在使用这个服务之前相互熟悉。这个概念的力量引起了重要的混乱的机会。例如,如何保证只 有获得授权的消费者才能访问一个指定的服务?如何保证所有的服务提供商都能适当地保证自己的服务安全防止非授权的消费者使用?如何保证在整个企业的SOA 实施过程中遵守机构的标准?要管理在松耦合模式中的权利,必须采用额外的一些控制层面以保证在保持秩序的同时实现SOA的好处。
发布时间治理
没有对企业SOA的控制,没有限制数量的内部服务提供商将暴露和发布允许任何用户使用的所有形式的服务。必须要在发布时间在这个过程中引进一个治理层以保证仅仅发布高质量的服务,并且保证这些服务符合企业的标准。这种做法称作变换时间治理。
采用变换时间治理,注册处根据企业建立的一套规则验证发布的服务,并且拒绝任何企图发布不符合所有已经制定的政策的服务的那些服务提供商。企业 级消费者不能使用任何遭到拒绝的服务。这些政策在把一项服务注册成为一项企业服务之前将根据发布的服务进行任何数量和任何形式的检查。
图2显示了变换时间治理功能在松耦合生命周期(步骤1a--验证)中发生的地方。这个治理工具(有时候是注册产品的一部分)管理所有的企业SOA政策。
运行时间媒介
在一个企业SOA中注入控制,必须要在所有的消费者与提供商的互动之间注入一个媒介。然后,这种媒介(通常是指一个政策强制执行点)能够执行许多必要的功能,实时地给一个SOA带来秩序:
1.强制执行运行时间治理
2.与安全有关的功能
3.管理活动
这些功能的执行对于消费者和提供商都是透明的。图3显示了向发布-发现-绑定范例中引进这种媒介的过程。
在变换时间发布和治理验证(步骤1和1a),这个注册处通知强制执行政策点它将作为指定的服务(步骤1b)的媒介。然后,这个强制执行政策点使 用新的端点回应这个注册处。企业能够在这个新的端点访问原来的服务。随后,所有向这个注册处查询这个服务的全部询问都将返回在强制执行政策点上建立的新端 点(步骤2)。这个过程称作端点重写。所有企业级的与这项服务的互动都将通过这个媒介。
所有试图与指定的服务绑定在一起的消费者(步骤3)事实上都将与作为提供商的强制执行政策点绑定在一起。这个媒介正是能够在这个点上执行其重要 的功能。一旦这个强制执行政策点完成了它的工作(假如一切顺利的话),消费者就与提供商绑定在一起了(步骤4)。从那时开始,这个强制执行政策点的工作就 完成了,它就把自己从这个互动中删除了(也就是说它有效地实现了消费者与提供商之间的硬线连接)。