background image

Java 编程:Java .NET 间进行 Web Service 交互

的选择

谈到.NET 和 Java 之间的 Web 服务交互性时,通常的选择只有 SOAP over HTTP,而根
据.NET 3.0 的相关规范,这仅有的一个选择也将会受到更多限制, .NET 中提供的
BasicHTTP 将是唯一能直接与 Java Web Servcies 进行交互的方式。

——

  最近,有两个新的选择出现了

WebSphere MQ(WMQ)和 ActiveMQ 传送器,

它们可以用于创建 Java 和.NET 之间的交互式 Web Services。而且.NET 的可靠消息系统
已经得到了扩展,因此对于 MSMQ 来说,WMQ 和 Active MQ 都可以作为.NET Web 
Services 的可靠传递者。
    WMQ 解 决 方 案 基 于 IBM   AlphaWorks 中 IBM   WMQ   for   Windows 
Communication Foundation 的定制通道(Custom Channel),它的最新版本已于 3 月
14 日 发 布 。 这 一 产 品 允 许 将 WMQ 作 为 定 制 通 道 用 于 Windows Communication 
Foundation(WCF)框架(已随.NET Framework 3 提供)中,它与微软的内建通道工作方
式相同。
  消息都是经过格式化的,以满足 WMQ v6.0 的 SOAP over JMS 实现,让应用程序
即可以和运行于 WCF 之上的服务进行通信,也能和运行在 WebSphere SOAP over 
JMS 服务基础之上的服务进行通信,包括 WebSphere 应用服务器和 CICS。
  目前的实现是以概念验证为主,是为了帮助更好地理解对这一领域产品的需求(也就
是说它并不适合在产品环境中使用),如何产品化这一实现的计划还没有最终确定。
  定制通道的构建是通过 Windows Communication Foundation 的可扩展框架提供
的,这一可扩展框架允许集成和使用那些与微软提供的内建传送器类似的传送器。服务型
应用只要通过配置就可以使用新的定制通道,只要客户端应用程序是通过像微软的
Service Metadata utility Tool(Svcutil.exe)这样的标准工具生成的,它们就可以正常
运行。服务的元数据描述可以被正在运行的服务直接发布(可以通过一个附加的 HTTP 端
点来暴露)或者使用 WSDL(Web Service Description Language)。
  目前的实现版本支持核心的消息功能,它有如下限制:
  对于一个服务实例,只有一个客户端可以使用双向通道的模式;
  双向通道是对 WebSphere MQ v6 所提供的 SOAP/JMS 实现的一种扩展,它只能用
于 WCF 服务与其客户端之间的通信;
  仅支持核心的消息功能(如不支持像事务化和安全等高级特性)
  运行在现存 WMQ v6 的 SOAP/JMS 环境中的 SOAP/JMS 服务仅能进行单向操作;
  运行在 CICS 或 WebSphere 应用服务器的 SOAP/JMS 环境内的 SOAP/JMS 服务,
不允许在一个单一合约中混合使用单向操作和请求/回复操作,而必须为每个通道形态分
别创建独立的合约。
  Active MQ 解决方案基于 Axis 提供的 JMS(由 Java 编写而成) “

和 插件式协议 特性