为多平台(主要是java和.net)客户端提供异步服务接口的最佳方法是什么?后端服务在java中实现。
我们正在研究异步Web服务和消息队列,但是在java(据我所知)和消息队列中,目前还不支持跨平台异步Web服务*,我不确定哪个编解码器/协议是最好。
*:跨平台异步Web服务可以在WSDL 2.0中描述,但在WSDL 1.1中没有描述(据我所知)。现在,JAX-WS 2.x支持异步Web服务,但不支持WSDL 2.x.所以我假设JAX-WS异步Web服务的客户端必须是JAX-WS客户端,而我们不能使用它。
提前致谢!
编辑:这里的困难是服务是异步的,我们更喜欢基于回调的接口以提高效率(所以我们不希望在同步WS接口上使用2个调用等)。答案 0 :(得分:3)
如果是消息传递,则使用Messagequeue系统。像ZeroMQ。他们都是跨平台的。
否则我们使用.net WCF,并使用java中的JaxWS来测试,该接口是兼容的。
答案 1 :(得分:1)
不知道什么是 best ,但SOAP是Java后端的不错选择。这些消息是基于xml的(例如,不限于Java平台),它被广泛使用,因此您可以在网上获得大量支持,工具和库。
另一种可能符合您需求的想法:XMPP。
它绝对是异步的,客户端发送服务请求(包含在xmpp消息中) 回调并且不等待立即回答。我已经在一个场景中使用,我将xpp客户端的“服务请求”发送到服务器并立即或稍后收到答案,具体取决于计算的复杂程度。这是人机交互,但机器应该更容易。