利用SOA的地址透明所带来的好处

ZDNet软件频道 时间:2009-02-04 作者:builder |  我要评论()
本文关键词:soa
面向服务架构(SOA)带来的主要好处之一就是它把客户对服务的请求和服务本身退耦。让我们看看地址透明性的优点和缺点。
本文译自Builder.com,未经许可请勿转载面向服务架构(soa)带来的主要好处之一就是它把客户对服务的请求和服务本身退耦。尽管还需要登记服务和服务查找机制,soa还是提供了地址透明性,这就使得客户无需知道(或者关心)组件或者服务实际位置在哪里。让我们看看地址透明性的优点和缺点。

地址透明性意味着虚拟平台

一个服务通常注册到一个公共或者私有的登记中,如数据库、目录服务、UDDI登记或者一个XML文件。一旦服务注册完毕,需要调用服务的组件可以用登记来定位和调用该服务。soa可以管理服务的注册和调用工作,而且不需要知道服务是在哪里和如何配置的。

登记和服务查找机制允许一个组件或者服务的地址对开发者是透明的(开发者不需要知道它们的地址)。这种方式就创建了一个虚拟的平台,在这个平台上所有的组件和服务都可以认为驻留在同一个机器或者程序设计平台上,如A所示。

图A

地址透明性创建了一个虚拟计算平台


该虚拟平台允许你用同样的调用来访问本地和远端的服务,即透明访问。为了实现这一点,对服务的引用应该抽象实现,如利用soaP/HTTP。例如,下面的soaP封套(envelope)按照引用信息的方式传递,它为一个股票报价服务提供了服务名、操作名和参数。
 
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap=http://www.w3.org/2001/12/soap-envelope
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
  <soap:Body xmlns:m="http://www.stocksrus.com/stockquote">
    <m:GetStockQuote>
      <m:Symbol>MSFT</m:Symbol>
    </m:GetStockQuote >
  </soap:Body>
</soap:Envelope>

由于地址透明性使得对信息对象的访问无需知道其地址,服务的真实地址应该在配置中介中给出,如UDDI注册。另外,对服务的调用应该在常用地址终端——如URL和URI——中指定。例如,下面的URL终端指定了对我们的股票报价服务的调用:
 
http://www.stocksrus:9000/services/soap/stockquote


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134