正 文

使外部 Web 服务互操作性最优


www.7dspace.com  更新日期:2005-9-20 2:15:37  七度空间


  每个链接机制都是以发送请求或消息,接收响应,或执行 SQL 或 HTTP 操作的形式出现的。还可以封装没有 MRP 组件的应用程序,这样就可以向 MRP Web 服务发送请求。

  软件架构

  需要牢记,在从一个协议转换到另一个,或者从一个软件架构转换到另一个时,可能会引起平台间的互操作性问题。一些实例包括 SOAP、REST、.Net 架构、企业 Java Bean (Enterprise Java Beans,EJB) 以及 Java 消息服务 (Java Messaging Service,JMS)。

  运行在 HTTP 上的 .Net Web 服务可以以三种不同的方式调用:HTTP GET 操作、HTTP POST 操作和 SOAP。如果需要快速的调用 Web 服务且没有 SOAP 客户端的话,GET 和 POST 操作都是非常有用的。可以通过 Perl 脚本在 HTTP 上使用 REST 来执行 GET、POST、PUT 和 DELETE 操作。在这个脚本中,您可以指定 SQL 查询和简单的消息队列。

  如果 SOAP 客户端可用,下面是如何在 REST 和 SOAP 之间进行简单的选择。如果应用程序是 基于资源的,选择 REST。如果应用程序是 基于行为的,选择 SOAP。在 REST 中,客户端可以通过 HTTP 请求执行在一系列资源上的多个操作。对于基于 SOAP 的请求,可能需要执行请求的每个面向活动的客户端可能仅需要一个调用操作。

  调用框架

  要构建 SOAP 请求,需要使用 Web 服务描述语言 (Web Services Description Language,WSDL),这是一种描述如何访问 Web 服务以及将执行什么操作的语言。您可以指定服务的类型,而不用自定义 Web 服务的代码,也不用重新编译以前的应用程序。

  为确保 WSDL 文件能在各种软件架构中工作,您可以利用 IBM Web Services Invocation Framework (WSIF),它让您可以将 WSDL 作为不同软件标准来描述。这表明您可以通过描述语言周围的 API 以独立于协议和位置的方式访问 WSDL。还意味着您可以通过 WSDL 将 Web 服务结合复合成应用程序,在 WSDL 中您可以在各种条件和异常情况下切换协议和位置。

  为构建 WSIF,无论您打算使用什么提供商,您都需要满足最低需求,该选项包括如下:

  JAXP XML 解析器
  Java API 的 WSDL
  Apache SOAP
  Apache Axis。

  REST 和 SOAP 共存

  虽然 REST 请求不像 SOAP 请求那样依赖 WSDL,您仍需要 XML Schema 来验证 REST 操作。既然 WSDL 支持 schema 规范,REST 和 SOAP 可以作为从一个合成的 Web 服务应用程序到外部应用程序的请求而共存。

  例如,SOA #1(参阅图 3)中的应用程序首先发送 SOAP 请求调用 SOA #2 的 MRP Web 服务中调用基于活动的服务,接下来发送一个 REST 请求来操作相同 MRP Web 服务中的面向行为的服务。所有基于 SOAP 的请求都是基于 IBM WSIF 的。

  图 3. REST 和 SOAP 共存

3页,当前在第2页  1  2  3  

上一篇:使用Web服务上传文件
下一篇:MySQL到Oracle程序迁移的注意事项
作者:Judith M. Myerson  来源:developerWorks中国 ( 责任编辑:7dspace )
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐