1. 程式人生 > >PRC、RMI、SOAP、REST等的區別與聯絡

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。

參考文章:

相關推薦

QtCreator中構建qmake執行清理區別聯絡

qmake:根據實際環境建立專案檔案.pro   並且執行qmake生成適當的Makefile,並且執行qmake[qmake xx.pro]生成除錯[build-ttt-4_8_6-Debug]或者釋出[build-ttt-4_8_6-Release]目錄,裡面含有qmake後

Linux環境變數使用者變數和shell變數的區別聯絡

1.shell簡介 shell是指為使用者提供操作介面的軟體,不同作業系統有著不同的shell,同一個作業系統也有著不同的shell。shell分為兩大類:圖形介面shell和命令列式shell。 圖形介面shell:windows作業系統下常用的windows Expl

linux下系統呼叫API系統命令,核心函式的區別聯絡

1.系統呼叫: 應用程式和核心間的橋樑,是應用程式訪問核心的入口點;但通常情況下,應用程式通過作業系統提供的API進行程式設計而不是使用系統呼叫直接程式設計; linux的全部系統呼叫加起來大約只有250個左右。 2.API:   API常以c庫(libc)的形式提供,

PRCRMISOAPREST區別聯絡

不同系統之間,總是避免不了要互相通訊,通訊方式無外乎兩種:方法呼叫、請求和等待。前者是直接呼叫對方的API,而後者是通過http請求,告訴對方要執行的方法和引數,並返回結果。 通訊方式    --RPC         :它是一種規範,採用請求和響應的方式,優勢是語言無關性

SOASOAPRPCRESTDUBBO的區別聯絡

1、SOA SOA(面向服務的軟體架構、Service Oriented Architecture),是一種軟體設計模式,主要應用於不同應用元件之間通過某種協議來互操作。例如典型的  通訊網路協議。因此SOA是獨立於任何廠商、產品、技術的。 SOA有兩個層面的定義:

MVC框架(二)----前端後端MVCMVVM設計模式區別聯絡

        上篇文章中提到了前端的框架分類,其中前端JS框架中有些是MVC設計模式,但是java和dotNET平臺也有自己的MVC也有自己的設計模式,這兩類有什麼區別呢,好多猿們甚是不解,旁徵博引

IP地址閘道器和域區別

IP地址:為了使連入Internet的眾多電腦主機在通訊時能夠相互識別,Internet中的每一臺主機都分配有一個唯一的32位地址,該地址稱為IP地址,也稱作網際地址。IP地址由4個數組成,每個數可取值0~255, 各數之間用一個點號“.”分開,例如:202.103.8.46。實際上,每個IP地址是由網路號和

SOA,Webservice,SOAPREST,RPC,RMI區別聯絡

SOA,Webservice,SOAP,REST,RPC,RMI的區別與聯絡   SOA面向服務的軟體架構(Service Oriented Architecture) 是一種計算機軟體的設計模式,主要應用於不通應用元件中通過某種協議來互操作 它的基本設計原理是:服務提供了一個簡單的介面,抽

JDKJREJVM的區別聯絡

本文章僅供本人學習參考,如有錯誤和不妥,望指正~~ 轉載連結:https://jingyan.baidu.com/article/425e69e6077283be15fc16ed.html   前幾天面試的時候被問到JDK、JRE、JVM三者的區別,雖然答了出來,但是有些細節還

全/半虛擬化硬體/軟體輔助的全虛擬化之間的區別聯絡

全虛擬化 不需要對GuestOS作業系統軟體的原始碼做任何的修改,就可以執行在這樣的VMM中 在全虛擬化的虛擬平臺中,GuestOS並不知道自己是一臺虛擬機器,它會認為自己就是執行在計算機物理硬體裝置上的HostOS。因為全虛擬化的VMM會將一個OS所能夠操作的CPU、記憶體、外設等物理

資料段資料報資料包幀的區別聯絡

幀與資料包 首先不容易理解的是資料包和幀。 資料包,就是從最上層,一層一層封裝,直到網路層的,最後藉由資料鏈路層傳送出去的資料單元。 幀,是資料鏈路層的傳輸單元。 這麼一看,資料包和幀好像沒什麼不一樣,好像資料傳遞的都是一樣的。可是為什麼會把它們區分開呢?學習 TCP/IP 協議的同

Python的例項方法類方法和靜態方法之間的區別聯絡

Python的例項方法、類方法和靜態方法 class Test: def test1(self): print('test......') @classmethod def test2(cls): print('test2......c

雜談(第1篇) | 程序執行緒協程的區別聯絡

作為程式設計師,在面試的時候經常被問到:說說程序、執行緒、協程的區別。下面我們就總結一下。 1.面試答案     1.1  程序與執行緒的區別 總述:執行緒是程序的一個實體,一個程序至少有一個執行緒。 1.根本區別;程序是作業系統資源分配的基本

Haddoop中的hdfshbase hive區別聯絡

Hive: Hive不支援更改資料的操作,Hive基於資料倉庫,提供靜態資料的動態查詢。其使用類SQL語言,底層經過編譯轉為MapReduce程式,在Hadoop上執行,資料儲存在HDFS上。 HDFS: HDFS是GFS的一種實現

web伺服器應用伺服器web容器反向代理伺服器區別聯絡

Web伺服器工作原理 HTTP協議基於TCP協議上,是一個應用層協議,用於使用者代理和Web伺服器進行通訊。Web伺服器通常採用一問一答的方式進行工作: 在使用者代理上使用者發起資源請求,請求內容包括但不限於:指定資源的唯一標識URI,指明動作型別(GET/POS

記憶體溢位記憶體洩露的區別聯絡,如何檢測解決

記憶體溢位 out of memory,是指程式在申請記憶體時,沒有足夠的記憶體空間供其使用,出現out of memory;比如申請了一個integer,但給它存了long才能存下的數,那就是記憶體溢位 記憶體洩露 memory leak,是指程式在申請記

0JDKJREJVM區別聯絡

1.基本概念 JVM : 全稱 Java Virtual Machine,即java虛擬機器,是一個用於執行位元組碼的”虛擬計算機”。由於不同的作業系統有不同的虛擬機器,Java虛擬機器在執行位元組碼時,把位元組碼解釋成具體平臺上的機器指令執行。實現了“一次編譯,隨處執行”。 這也是J

Python,Pycharm,Anaconda三者的區別聯絡安裝過程及其注意事項

1、致歡迎詞 我將詳細講述在學Python初期的各種手忙腳亂的問題的解決,通過這些步驟的操作,讓你的注意力集中在Python的語法上以及後面利用Python所解決的專案問題上。而我自己作為小白,很不幸的沒有錯過任何的坑,都跳了進去,所以在這裡寫下經驗貼,一方面希望能給後來的學者能夠高效的避開這些

CygwinMinGMSys區別聯絡(轉)

轉自:https://www.biaodianfu.com/cygwin-ming-msys.html 什麼是Cygwin? Cygwin,原Cygnus出品(已被紅帽收購),目前是RedHat名下的專案。專案的目的是提供運行於 Windows 平臺的類 Unix 環境(以 GNU 工具為代表)。為了達到這

資料倉庫和資料集市的概念區別聯絡

1.為什麼會出現資料倉庫和資料集市?     “資料倉庫”的概念可以追溯到80 年代中期。從本質上講,最初資料倉庫是想為操作型系統到決策支援環境的資料流提供一種體系結構模型,並嘗試解決和這些資料流相關的各種問題。     在缺乏“資料倉庫”體系結構的情