【问题标题】:How to provide a cross platform, asynchronous service interface如何提供跨平台、异步的服务接口
【发布时间】:2011-03-19 10:39:03
【问题描述】:

为多平台(主要是 java 和 .net)客户端提供异步服务接口的最佳方式是什么?后端服务是用java实现的。

我们正在研究异步 Web 服务和消息队列,但显然跨平台异步 Web 服务* 在 java 中尚不支持(据我所知),对于消息队列,我不确定哪个编解码器/协议是最好的。

*:跨平台异步Web服务可以在WSDL 2.0中描述,但在WSDL 1.1中没有(据我了解)。现在,JAX-WS 2.x 确实支持异步 Web 服务,但不支持 WSDL 2.x。所以我假设 JAX-WS 异步 Web 服务的客户端必须是 JAX-WS 客户端,我们不能使用。

提前致谢!

编辑:这里的困难在于服务是异步的,为了效率我们更喜欢基于回调的接口(所以我们不想在同步的 WS 接口上使用 2 次调用等)

【问题讨论】:

标签: java .net interface web-services message-queue


【解决方案1】:

如果是消息传递,则使用消息队列系统。像 ZeroMQ。它们都是跨平台的。

否则我们使用 .net WCF 进行,并使用 java 中的 JaxWS 进行测试,接口是否兼容。

【讨论】:

  • 后端必须用java实现,所以我们不能使用.net WCF..但是感谢ZeroMQ的建议。
【解决方案2】:

不知道,什么是最好的,但是对于 Java 后端来说,SOAP 是一个不错的选择。这些消息是基于 xml 的(例如,不限于 Java 平台)并且它被广泛使用,因此您可以在网上获得大量支持、工具和库。


另一个可能满足您需求的想法:XMPP。

它绝对是异步的,客户端发送服务请求(包装在 xmpp 消息中)回调并且不等待立即响应。我曾在这样一种情况下使用过,即我从 xmpp 客户端向服务器发送“服务请求”并立即或稍后收到答案,具体取决于计算的复杂性。这是一个人机交互,但机器机器应该更容易。

【讨论】:

猜你喜欢
  • 2015-06-20
  • 1970-01-01
  • 2012-08-15
  • 2023-03-14
  • 2012-07-07
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多