4

我认为这个问题最终可能会有点主观,所以我将其标记为 CW。

我的团队有兴趣为我们的项目开发一套新的“Web 服务”。我将“Web 服务”放在引号中,因为该术语可能意味着很多不同的东西。我们真正需要它的唯一含义是我们可以向跨平台客户端公开一组 API 以使用我们的数据并对其采取行动。

我正在尝试进行一些研究,以了解在创建服务以将您的数据公开给许多其他(内部)应用程序甚至其他服务时,当前的“最先进技术”是什么。我一直在研究 Thrift、Protocol Buffers、JAX-WS、RMI 等,但对于在设计一组新服务时应该采用哪种方法,我有点迷茫。我希望我们能够从本质上为服务创建一个“基础设施”,这就是为什么我要对所有当前方法进行一些调查。

对于从头开始构建全新的 Web 服务,当前的最佳实践/最先进的技术在哪里?

我们唯一真正的要求是:

  • 数据格式/编码应该与平台无关(这排除了 RMI)。
  • 服务应该在 HTTP 上运行良好
  • 用 Java 编写实际的服务器端服务应该不成问题。
  • 能够生成客户端代理将是一个不错的加分项。
  • 我希望每个服务都是轻量级的,我们可以想象将不同功能的服务部署为完全独立的部署。

我们目前使用 SOAP 和 Axis/JAXRPC 服务的某种组合,老实说,使用这些服务非常痛苦 - 来回发送的消息非常庞大且过于冗长。

4

2 回答 2

5

您是否考虑过REST服务?这是来自InfoQ的有用介绍。

它通过 HTTP 工作,您可以使用标准的 HTTP 命令 GET/PUT/POST/DELETE 来操作数据(您可以使用浏览器进行查询,客户端是简单的 HTTP 客户端)。实际的数据内容不是强制性的或指定的——通常是 XML,但这不是必需的。

您可以使用Jersey在 Java 下轻松构建 REST 服务。因为客户端只需要与 HTTP 通信,它们就可以独立于语言。Java 客户端可以使用HTTPClient编写。

于 2009-10-29T18:10:47.417 回答
2

可能为时已晚,但无论如何我都会尝试。SOAP 早已失去了它的第一个字母(Simple)。它也从来没有抵抗过它的第二个(对象)。

这就是为什么我倾向于基于 JSON 的服务,无论是 REST 还是 JSON-RPC 服务。你已经得到了很多关于前者的建议。对于后者,您可能需要查看Jabsorb.org。例如,OpenSocial 标准将两者都使用,并优先使用 JSON-RPC。

于 2009-12-11T20:21:01.680 回答