在.NET与Java间进行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编写而成)和“插件式协议”特性(由.NET编写而成),因此,它并不是以真正的.NET定制通道方式包装的,这就需要更多的定制编程。

这两种解决方案都没有彻底的产品化,但它们却提供了一个很好实验基础,以选择合适的Web Services交互式传送器。

时间: 2025-01-26 18:23:54

在.NET与Java间进行Web Service交互的新选择的相关文章

使用Java创建RESTful Web Service(转)

REST是REpresentational State Transfer的缩写(一般中文翻译为表述性状态转移).2000年Roy Fielding博士在他的博士论文"Architectural Styles and the Design of Network-based Software Architectures"<体系结构与基于网络的软件架构设计>中提出了REST. REST是一种体系结构.而HTTP是一种包含了REST架构属性的协议. REST基础概念 在REST中所

.net 调用java 写的web service 无返回数据!!

问题描述 求救.如题.我用soapUI2.0.2测试过那个service有返回数值的.是复杂数据类型.但是当我用一个C#写的类去调用的时候连接是成功但无数据返回..查过很多网站也在过这里的网站.参照着做都不行.望大虾相救好象有人说.NET调用JAVA的WEBSERVICE如果返回是一般的类型如:string,int等就没问题.但一涉及到复杂数据类型就返回NULL是不是这样的啊?需要看WSDL文件吗?挺长的!<?xmlversion="1.0"encoding="utf-

为什么java开发的web service,在.net里生成的代理类里没有指定的类型?

问题描述 java开发的webservice里的submit原型:publicvoidsubmit(MTRequestrequest,MTResponseHolderholder){....}而在客户端.net平台,生成代理类里没有MTResponseHolder这个类型?另外,在.net平台生成的代理类的submit方法却要求这样调用:submit(MTRequestrequest,outMTResponseMTResponse),怎么是out方式呢?另外,为什么MTResponseHolde

java做RESTful Web Service(API)如何解决验证的问题

问题描述 由于restfulwebservice是stateless无状态的,这样如何才能进行使用者的身份验证呢?哪位前辈可以提供一点思路吗?或者说,有现成的框架可以利用的?找到一篇文章:不知道文中的方法,是不是现在业界最常用的办法呢?或者说,是不是业界证明最好最有效的办法? 解决方案 解决方案二:REST服务的安全,一般依赖于HTTP认证,HTTP认证有几种:basic,digest,token,这些都有标准的实现的开源包需要主要的是这个认证的帐号跟你业务的帐户实际是不一样的,REST属于we

java学习:调用 java web service

先写一个java的class:AwbModel(相当于要在web service中传输的实体对象) package webservicesample; public class AwbModel { private String _a1 = "_a1"; public String getA1() { return _a1; } public void setA1(String value) { this._a1 = value; } private String _A2 = &quo

在Pocket PC中使用Web Service连接数据库

web|连接数据库 在Pocket PC中使用Web Service连接数据库前言微软的移动开发者大会在六月的北京举行了,国内的移动应用软件虽然是刚刚起步,但是这个前景宽广的领域已经受到越来越多软件厂商的关注了.移动设备上的商业应用尽管刚刚起步,但已经显示出巨大的发展潜力. 在微软移动开发挑战赛中,我的作品<饕餮元年无线餐饮管理系统>获得了商业应用的三等奖.为了实现Pocket PC与后台数据库服务器的连接,我的作品中使用了.Net CompactFramework和Web Service技术

使用RESTlet框架开发符合JSR311规范标准的REST Web Service

JSR311 作为 Java 实现 REST Web Service 的规范标准,尽管从出生起就备受争议,但从事实上,已 经普遍被大多数 REST 实现框架的接受.这中间,既有 Sun 公司原产的 Jersey, 也有其他的开源项目, 如 Jboss 的 RESTEasy, Apache 的 CXF 等.当然,还有发展时间最长,相当成熟的 RESTlet 框架. RESTlet 的主体核心是按照 Roy Thomas Fielding 的著作"Architectural Styles and t

实战JDK 6.0自带web service

JAVA 6.0 之后,其中JDK自带有个轻量级的web service 服务器.如果你比较细心一 定发现在你安装java的路径下,有java webservice 的示例代码. 我以前也用java开发过web service ,但是当初用了一个apache 下axis 开源项目. 如果axis夜进化了,反正我不认识了.不过java自带有何必舍近求远呢.今天我就把自己 创建的最简单java webservice 范例过程记录下来,与大家分享. 我用的是netbeans 6,首先建立一个java

用JDK开发web service

服务器端     编码:         a. 创建一个基于jdk6以上版本的java工程         b. 定义SEI web service Endpoint interface(web service终端接口)             @WebService             public interface HelloWS {                 @WebMethod                 public String sayHello(String nam