PRC、RMI、SOAP、REST等的區別與聯絡
不同系統之間,總是避免不了要互相通訊,通訊方式無外乎兩種:方法呼叫、請求和等待。前者是直接呼叫對方的API,而後者是通過http請求,告訴對方要執行的方法和引數,並返回結果。
通訊方式
--RPC :它是一種規範,採用請求和響應的方式,優勢是語言無關性,劣勢是沒有型別校驗這種編譯期的檢查能力,必須做大量的執行時檢查
--XML-RPC :通過xml格式來實現RPC的規範,API是XmlRpcClient
--JSON-RPC :通過JSON格式來實現RPC的規範
--SOAP :可以認為是XML-PRC的加強版本,基本格式仍然是xml,但封裝的更加完美,支援的資料型別更多,可以支援物件和容器。具備初級的型別校驗。實現方案有AXIS,XFIRE等
--RMI :遠端方法呼叫,這是程式碼上提供的支援,依賴java語言,優勢是具備型別校驗的能力
--jdk
REST :REST風格的請求是另一種請求和響應的方式實現的通訊,可以認為跟RPC類似,但它堅持以資源為中心(比如issue就是資源),而動詞是固定的(GET/POST等,有利有弊),比較成熟的實現方案是restlet。
關於webservice,通常講的webservice其實是指基於SOAP的,比如AXIS,XFIRE等,而廣義的,其實基於RPC提供的web服務,都可以認為是webservice。
參考文章: