簡體   English   中英

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

[英]Best approach for creating new RPC/web services in the Java world?

我認為這個問題可能最終有點主觀,所以我把它標記為CW。

我的團隊有興趣為我們的項目開發一套新的“Web服務”。 我把“網絡服務”放在空氣報價中,因為這個術語可能意味着很多不同的東西。 我們真正需要它的唯一意思是我們可以向跨平台客戶端公開一些API來使用我們的數據並對其采取行動。

我正在嘗試進行一些研究,以了解當前的“最新技術”是什么,在創建服務以將數據暴露給許多其他(內部)應用程序甚至其他服務時。 我一直在研究諸如Thrift,Protocol Buffers,JAX-WS,RMI等等的東西,而且我想知道在設計一組新服務時我們應采取什么樣的方法。 我希望我們能夠基本上為服務創建一個“基礎設施”,這就是我對所有當前方法進行一些調查的原因。

為了構建全新的從頭開始的Web服務,當前最佳實踐/最新技術在哪里?

我們唯一真正的要求是:

  • 數據格式/編碼應該是平台無關的(這排除了RMI)。
  • 服務應該在HTTP上運行良好
  • 用Java編寫實際的服務器端服務應該不是問題。
  • 能夠生成客戶端代理將是一個很好的加分。
  • 我希望每項服務都是輕量級的,我們可以設想將不同功能的服務部署為完全獨立的部署。

我們目前使用SOAP和Axis / JAXRPC服務的一些組合,老實說這些是一個巨大的痛苦 - 來回發送的消息是巨大的,過於冗長。

您考慮過REST服務嗎? 這是InfoQ的一個有用的介紹。

它適用於HTTP,您使用GET / PUT / POST / DELETE的標准HTTP命令來操作數據(您可以使用瀏覽器進行查詢,客戶端是簡單的HTTP客戶端)。 實際的數據內容不是強制或指定的 - 通常是XML,但這不是必需的。

您可以使用Jersey在Java下輕松構建REST服務。 因為客戶端只需要談論HTTP,所以它們可以與語言無關。 可以使用HTTPClient編寫Java客戶端。

可能為時已晚,但無論如何我都會嘗試。 SOAP早已失去了它的第一個字母(Simple)。 它也從未經受過它的第二個(對象)。

這就是為什么我傾向於基於JSON的服務,無論是REST還是JSON-RPC服務。 你已經為前者做了不少推薦。 對於后者,您可能需要查看Jabsorb.org 例如,OpenSocial標准使用兩者優先於JSON-RPC。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM