SOA扩展Web服务的前景
2008-03-11 13:57:05 来源:tech.51cto.com 作者:Mark Colan 点击:
在面向服务的体系结构(SOA)中扩大软件资产价值的同时控制分布式应用程序中的复杂性所带来的好处。它也定义了服务的性质并分析了它们的特征、以及一些最佳实践。
现在的Web服务实现往往是简单的,通常类似于客户端-服务器模型。然而,平台中立的交换是受支持的,这就使一系列不同的客户端实现可以与作为服务器函数的新代码或遗留代码进行交互。许多文章都介绍了使这样的应用程序直接实现的技术。现在是看一看我们能够如何使用它们的更大的图景的时候了。作者解决了如何由简单的模型转移到代表现实的任意复杂度的业务模型的问题。
公元前 221 年,秦始皇将以前交战的几个国家统一为一个新的国家,我们现在称之为中国。中国作为一个国家存在下来的一个可能的原因就是秦朝引入了标准,标准巩固了文化,促进了贸易:标准的轮距使得马车可以有效地行使在任何的道路,共同的书面语言使得每个人都可以交换信息(即使他们说的并不是相同的语言),而坚固的工事(比如中国的长城)使得人们可以防御外敌入侵。您可以说,他为标准化传输、消息交换和防火墙开发了一些模型。
同样地,现代的业务集成同样也受益于标准,它使异构的计算机系统能够有效地互操作。这些技术合在一起称作 Web 服务。Web 服务的出现是以 SOAP 1.1 的引入为标志的,SOAP 1.1 定义了将 XML 内容用于分布式系统,而同时隐藏实现的细节。四年后的今天,许多公司正在使用 Web 服务,并且可以毫无疑问地地说,业界正处在 Web 服务主流时代的开端。
BM 将面向服务的体系结构(Service-Oriented Architecture,SOA)视为它的按需(On demand)业务前景的互操作性和灵活性的关键。面向服务的体系结构(SOA)支持跨企业和业务合作伙伴之间间的端到端集成。这就提供了一种灵活的业务流程模型,使得客户可以迅速地响应新的顾客需求、新的业务机会以及竞争的威胁。
什么是面向服务的体系结构(SOA)?
面向服务的体系结构(SOA)表示您可以如何使用 Web 服务的大图景。Web 服务规范定义了实现服务以及与它们的交互所需要的细节。然而,面向服务的体系结构(SOA)是一种用于构建分布式系统的方法,采用 SOA 这种方法构建的分布式应用程序可以将功能作为服务交付给终端用户,也可以构建其他的服务。面向服务的体系结构(SOA)可以基于 Web 服务,但是它可能改为使用其他的技术来代替。在使用面向服务的体系结构(SOA)设计分布式应用程序时,您可以将 Web 服务的使用从简单的客户端-服务器模型扩展成任意复杂的系统。
因而,单个的软件资产成为开发其他应用程序的基本构件。您可以通过与新的代码和遗留代码一起使用的共同交互方式来减少系统的复杂性(CBDi 的 Lawrence Wilkes 开玩笑说,面向服务的体系结构(SOA)可以代表"节省我们的资产(Save Our Assets)”)。有一种标准的方法可以用于表示这些软件资产和与它们交互;现在人们关注的重点已经转移到基于这些构件的应用程序装配上来了。
虽然在这里讨论的是用于业务应用程序的面向服务的体系结构(SOA),但是面向服务的体系结构(SOA)同样也可以用于其他的分布式系统,比如网格计算和高级 Web 服务规范(例如,Web 服务分布式管理(WS-DistributedManagement)、Web 服务信任(WS-Trust)以及 UDDI)。
什么是服务?
在面向服务的体系结构(SOA)中,服务(service)是封装成用于业务流程的可重用组件的应用程序函数。它提供信息或简化业务数据从一个有效的、一致的状态向另一个状态的转变。用于实现特定服务的流程并不重要,只要它响应您的命令并为您的请求提供高质量的服务就可以了。
通过定义的通信协议,可以调用服务来强调互操作性和位置透明性。一个服务表现为一个软件组件,因为从服务请求者的角度来看,它看起来就像是一个自包含的函数。然而,实际上,服务的实现可能包括在一个企业内部的不同计算机上或者许多业务合作伙伴拥有的计算机上执