深蓝海域KMPRO

构建基于标准的SOA治理(AMT研究院 周瑛 编译)

2005-10-25 15:19

为了迅速灵活地构建新的全局应用,企业正全面实施面向服务的架构(Service-Oriented Architecture,SOA),将软件资产同项目、部门、合作伙伴连接起来。采用这种架构后,服务多样性大为丰富,使得SOA架构内的服务交互治理变得日益紧迫。通常企业会制定和实施统一的治理政策(见图1)。

图1  治理政策

这些治理政策也日益受到新出现标准的规范。这些标准首先出现在供应商的产品中。逐渐地,企业开始采用SOA基础设施解决方案,通过政策框架来治理SOA,保证全局SOA治理的一致性。这些框架在SOA环境中提供消息媒介功能,保证交互遵循关键的政策,促进企业范围内的服务共享和重用。

1. SOA的政策治理

随着SOA在范围和功能上的扩展,其治理需求也日益增加。治理可以通过SOA基础设施解决方案实现,它能够保证运行时政策对SOA以及所有与SOA相关的交互进行治理。这些治理政策具备实现无缝SOA功能所需的元数据。

一般来说,现在SOA都是通过集成一系列的非标准解决方案进行治理的。例如,图1所示的路由/消息能力(错误修复/负载平衡,有保证传递,优先级传递,同步和异步消息传递等)一般通过一个面向消息的中间件(Message-Oriented Middleware,MOM)工具来加入到SOA中。虽然这种方式比较通用,但它违背了SOA的首要原则——即严格遵守标准。这种方法无法实现跨平台互操作和普遍适用。

点对点的解决方案在Web Services项目的起始阶段还是可行的,因为这时候还只需要执行少数的核心标准(通常是指WSDL、SOAP、XML)就能够取得成功。但随着全局SOA的深入,需要遵循更多的标准以保证互操作性,同时保证有充分的治理(见图2)。

图2  治理政策的标准化

许多标准可以包含入各个WSDL或SOAP消息中,提高所有实体的自描述水平,促进动态的SOA治理。虽然这种完美的目标能够形成完全遵循标准的SOA环境,但它并不能保证充分的SOA治理,因为它忽略了以下事实:

  • 平台多样性决定了不同的终点拥有不同的标准水平和自描述水平。
  • 大范围的开发技巧集可以保证一些终点具备充分的自描述水平和标准水平,但仍会有一些终点缺乏必要的元数据进行松散耦合。
  • 随着标准的成熟和发展,当前开发的服务在未来可能就不兼容了。

因此,企业正在寻求整套的SOA基础设施解决方案,以实现对所有服务及服务交互的治理,不管自描述水平和标准水平如何。

2. 基于标准的治理框架

为了保证SOA治理在全局范围内的一致性,企业正倾向于采用SOA基础设施解决方案,方案提供了治理的政策框架。这些框架在SOA环境中提供消息媒介,它们扮演政策执行点的角色,保证关键政策的实施,促进企业范围内服务的共享和重用。

分布式网络方法是SOA基础设施最适合的架构范例,政策执行点像网络路由器(而不是象代理那样)一样成倍增长,构建完全可扩展的SOA。这有点类似于互联网。在互联网上,人们可以访问任何一个站点,使用标准化的接口(HTML)来屏蔽后台的异构性。用户无需知道服务器放在哪里,网站运行在什么平台上,使用什么编程语言。用户只需要知道URL。同样,一个完全可扩展的SOA为所有服务消费者提供到任何Web服务的访问,使用标准化的接口(WSDL)来屏蔽后台的异构性。

为了像互联网那样可靠和迅速,SOA的架构也必须同互联网类似。应该使用分布式网络原则,包括使用分布式路由器网络(由SOAP优化路由器构成),保证企业范围内的互连,支持较高的消息量。

以网络为中心的方法是最好的,因为它更具有扩展性,更加稳定和统一。政策可以缓存在网络中的路由器上,运行时可以运用这些政策进行治理。当一个路由器传递消息时,即是提供了一个优化点,可在此时统一治理服务之间和服务内部的所有交互。所有的政策都可以在网络中执行,而不仅仅是在各个单独的终点,这样就能创建“智能”服务网络来实现多样性终点之间的通信。

另外,成熟的SOA基础设施解决方案(见图3)通常采用服务合约的概念,这是一种针对特定消费者或提供者对而设定的政策。

图3  SOA基础设施解决方案

举个例子来说,假如消费者A希望在SOA基础设施环境中访问Web Service B,那么他不需要直接发送消息到Web Service B,他只需要将消息发送到网络上的任一路由器。这些路由器在本地缓存了必要的服务合约(合约C),可进行运行时的无缝执行。路由器接收到消息之后,合约内的政策就会在消息送往最终目标之前得到执行。在这种情景下,合约C能够规定这些政策的执行:

  • 保证每个消息只向Web Service B传递一次,避免过多的消息造成不良影响
  • 将消息分配到“最高优先级”的队列,以便迅速传递
  • 访问Kerberos服务器对消费者A进行认证,因为消费者A的部门使用Kerberos
  • 依据定义好的“白金”服务水平协议,跟踪Web Service B的性能
  • 可靠地记录交易相关的所有日志信息

3.基于网络治理的其它好处

将治理任务放到网络上加以执行是SOA构建和管理方面的一大进步。通过集中的政策定义与执行,构建一个包容终点多样性的智能网络, 这样就不需要将政策硬塞进各个终点,也不需要安装、配置和维护政策代理。这种做法能够带来以下好处:

  • 一致性:重要的全局政策可以集中进行维护,并在网络上加以执行,它们适用于所有服务交互。这种方式保证了执行的一致性,不管开发人员的技巧或项目情况如何。
  • 简化变化管理:当政策升级或修改后,能够实施单一的全局变化,保证网络上该政策的统一变化,不需要对每一个终点进行修改。
  • 大幅缩减管理费用:在各个终点进行基础设施政策的升级、执行和管理,这个工作量是巨大的。采用集中式的服务网络后,这些管理任务将大幅降低。
  • 保证执行:在所有政策执行完毕之前,消息是无法路由到终点的,这保证了所有的政策都能够得到执行。
  • 可扩展性:在一个服务网络中,可以在任何时刻创建和执行额外的政策,并在所有服务中进行共享。任何功能——BPM流程、高级应用功能,EAI交易等——都可以作为一项Web Service,在网络上加以执行。

4. 结论

网络标准协议(例如HTTP、FTP、SMTP)具有广泛适用性,但它们在本质上缺乏对可靠消息传输模式的支持,而这正是一些高级应用所需要的。基于MOM的企业服务总线(Enterprise Services Buses,ESBs)提供可靠的消息传输,但又缺乏普遍适用性,并且过于复杂,无法实现大规模增长。而基于标准的SOA基础设施则同时兼具上述两个特点。

 

相关推荐