代码之家  ›  专栏  ›  技术社区  ›  Matt B

在Java世界中创建新的RPC/Web服务的最佳方法?

  •  4
  • Matt B  · 技术社区  · 7 年前

    我认为这个问题可能有点主观,所以我把它标为CW。

    我的团队有兴趣为我们的项目开发一套新的“Web服务”。我把“网络服务”放在空中报价中,因为这个词有很多不同的含义。我们真正需要它的唯一含义是,我们可以向跨平台客户机公开一些API集,以使用我们的数据并对其采取行动。

    我正试图做一些研究,以了解当前的“最新技术”是什么,当它涉及到创建用于将数据公开给许多其他(内部)应用程序甚至其他服务的服务时。我一直在研究诸如节俭、协议缓冲区、JAX-WS、RMI等内容,直到弄清楚在设计新的服务集时我们应该采用什么样的方法,我还是有点迷茫。我希望我们能够基本上为服务创建一个“基础设施”,这就是为什么我要对所有当前的方法进行一点调查。

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

    我们唯一真正的要求是:

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

    我们目前使用一些SOAP和axis/jaxrpc服务的组合,老实说,这是一个巨大的难题——来回发送的消息是巨大的,而且过于冗长。

    2 回复  |  直到 16 年前
        1
  •  5
  •   LaptopHeaven    16 年前

    你考虑过 REST 服务?以下是一个有用的介绍 InfoQ .

    它在HTTP上工作,您可以使用get/put/post/delete的标准HTTP命令来操作数据(您可以使用浏览器进行查询,客户机是简单的HTTP客户机)。实际的数据内容不是强制的或指定的——通常是XML,但这不是要求。

    您可以在Java环境下轻松地构建REST服务 Jersey . 因为客户机只需要谈论HTTP,所以它们可以独立于语言。可以使用Java客户端编写 HTTPClient .

        2
  •  2
  •   Sasha O    16 年前

    可能太晚了,不过我还是会试试的。SOAP早就失去了它的第一个字母(简单)。它也从来没有反抗过它的第二个目标。

    这就是为什么我倾向于使用基于JSON的服务,无论是REST还是JSON-RPC服务。你已经为前者做了不少推荐了。对于后者,你可能想调查一下 Jabsorb.org . 作为一个例子,OpenSocial标准使用这两种方法,并优先使用JSON-RPC。