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能够规定这些政策的执行:
3.基于网络治理的其它好处
将治理任务放到网络上加以执行是SOA构建和管理方面的一大进步。通过集中的政策定义与执行,构建一个包容终点多样性的智能网络, 这样就不需要将政策硬塞进各个终点,也不需要安装、配置和维护政策代理。这种做法能够带来以下好处:
4. 结论
网络标准协议(例如HTTP、FTP、SMTP)具有广泛适用性,但它们在本质上缺乏对可靠消息传输模式的支持,而这正是一些高级应用所需要的。基于MOM的企业服务总线(Enterprise Services Buses,ESBs)提供可靠的消息传输,但又缺乏普遍适用性,并且过于复杂,无法实现大规模增长。而基于标准的SOA基础设施则同时兼具上述两个特点。