您的位置:首页技术开发.Net 专栏 → .NET与Java间进行Web Service交互的选择

.NET与Java间进行Web Service交互的选择

时间:2009/7/10 8:24:00来源:本站整理作者:我要评论(0)

 谈到。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编写而成)和“插件式协议”特性(由。NET编写而成),因此,它并不是以真正的。NET定制通道方式包装的,这就需要更多的定制编程。
 
  这两种解决方案都没有彻底的产品化,但它们却提供了一个很好实验基础,以选择合适的Web Services交互式传送器。

相关视频

    没有数据

相关阅读 jdk不是有效的win32程序怎么办 jdk不是有效的win32程序解决方法java设置cookie教程 java怎么设置cookiejava怎么设置随机数 java设置随机数详细教程java怎么设置光标位置 java设置光标位置教程如何在Mac上清除Java高速缓存?如何在Mac上卸载Java?Mac上怎么卸载Java?OSX 10.11 java 6不兼容问题解决办法如何为Mac更新Java?java mac版更新教程

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 什么是.NET中的TDD?ASP.NET AJAX入门简介 WebMatrix入门教程VC++2008中如何调用GetOpenFileName打开文件PlaySound函数在VC++6.0中如何播放音乐及声请问VC++回调函数怎么用

人气排行 嵌入式实时操作系统VxWorks入门教程ArrayList 与 string、string[] 的转换C#遍历整个文件夹及子目录的文件代码WebMatrix入门教程asp.net判断文件或文件夹是否存在c#判断数据NULL值的方法vc++6.0怎么写Windows简单窗口代码.net解决数据导出excel时的格式问题