我认为这个问题最终可能会有点主观,所以我将其标记为 CW。
我的团队有兴趣为我们的项目开发一套新的“Web 服务”。我将“Web 服务”放在引号中,因为该术语可能意味着很多不同的东西。我们真正需要它的唯一含义是我们可以向跨平台客户端公开一组 API 以使用我们的数据并对其采取行动。
我正在尝试进行一些研究,以了解在创建服务以将您的数据公开给许多其他(内部)应用程序甚至其他服务时,当前的“最先进技术”是什么。我一直在研究 Thrift、Protocol Buffers、JAX-WS、RMI 等,但对于在设计一组新服务时应该采用哪种方法,我有点迷茫。我希望我们能够从本质上为服务创建一个“基础设施”,这就是为什么我要对所有当前方法进行一些调查。
对于从头开始构建全新的 Web 服务,当前的最佳实践/最先进的技术在哪里?
我们唯一真正的要求是:
- 数据格式/编码应该与平台无关(这排除了 RMI)。
- 服务应该在 HTTP 上运行良好
- 用 Java 编写实际的服务器端服务应该不成问题。
- 能够生成客户端代理将是一个不错的加分项。
- 我希望每个服务都是轻量级的,我们可以想象将不同功能的服务部署为完全独立的部署。
我们目前使用 SOAP 和 Axis/JAXRPC 服务的某种组合,老实说,使用这些服务非常痛苦 - 来回发送的消息非常庞大且过于冗长。