轉RMI、RPC、SOAP通訊技術介紹及比對
http://www.open-open.com/home/space.php?uid=37924&do=blog&id=8974
1、RMI
使用java的程式設計師,對於RMI(RemoteMethod Invoke,遠端方法呼叫)一定不陌生,在java中,為了在分散式應用開發時,能夠方便呼叫遠端物件,java提供了RMI的API。在 RMI 中,遠端物件按照好象它是本地行事,客戶機應用程式會直接呼叫遠端物件存根上的方法,因此,呼叫起來就如本地物件一樣方便。RMI中封裝了物件和請求的網 絡傳送,使得異地的物件服務直接可用。
但RMI的使用必須是在能夠識別java程式碼的環境下使用,即必須有JVM的支援。因此,他只適合在java程式間的物件通訊。如果不在 Java 環境下工作,或者需要與非 Java 環境通訊,那麼SOAP、RPC、CORAR等都是可以的。.
2、RPC & XML-RPC
RPC(Remote Method Invocation,遠端過程呼叫) 與RMI的區別很明顯,相比於RMI直接獲取遠端方法的簽名,進行呼叫的方式,RPC使用的是C/S方式,傳送請求到伺服器,等待伺服器返回結果。
為了包裝RPC的請求資訊,推出了XML-RPC,客戶端傳送一條特定訊息,該訊息中必須包括名稱、執行服務的程式以及輸入引數。
XML-RPC只能使用有限的資料型別種類和一些簡單的資料結構。SOAP最主要的工作是使用標準的XML描述了RPC的請求資訊(URI/類/方法/引數/返回值)。SOAP的方式,SOAP 是對如CORBA 和 RMI-IIOP 這樣的重型 範例吸引人的替代。
3、SOAP
SOAP的訊息被稱為一個SOAP Envelope,包括SOAP Header和SOAP Body。其中,SOAP Header可以方便的插入各種其它訊息來擴充Web Service的功能,比如Security(採用證照訪問Web Service),SOAP Body則是具體的訊息正文,也就是Marshall後的資訊。
某些程式設計師每天掙扎於 Perl 和 C 元件、C 和 Java 元件之間的通訊。這些開發人員可以從轉向基於 SOAP 或基於 XML-RPC 的通訊模型中獲益匪淺。另一方面,從不轉向 Java 以外語言的 Java 開發人員可以轉向 RMI 而不是使用 SOAP,他們會看到極大的效能改善。
4、WSDL
WSDL(Web Services Description Language)是描述web服務的,是描述怎樣訪問web服務的。WSDL是用來描述SOAP的,換句話說,WSDL 檔案告訴你呼叫 SOAP 所需要知道的一切。WSDL也是一段xml。現在各個語言對wsdl的支援都很成熟,可以根據同一份wsdl檔案生成自己語言的客戶端。
5、其他
其他還有REST、Axis等
下面是RMI、RPC和SOAP的比較
|
RMI |
RPC |
SOAP |
通訊方式 |
遠端物件按照好象它是本地行事.客戶機應用程式直接呼叫遠 程物件存根上的方法 |
客戶機不直接呼叫方法,而是向伺服器傳送請求訊息。 |
在XML-RPC上,使用規定的XML格式的資料格式來通訊。比XML-RPC更具適用性,能夠支援更多的型別及資料結構。 |
優點 |
遠端物件按照好象它是本地行事,編譯期可以檢查錯誤 |
它允許客戶機與伺服器之間有更大的獨立性。 伺服器無需讓客戶機知道,就可以完全關機和被替換 |
非常適合非同步通訊和針對鬆耦合的客戶機和伺服器 |
缺點 |
只能基於java語言。異常資訊容易丟失。客戶機與伺服器緊耦合。 |
喪失了許多可以確保方法和引數是正確的編譯時便利。 |
必須做大量的執行時檢查,而且開發人員喪失了許多可以確保方法和引數是正確的編譯時便利。 |
相關文章
- RMI簡單介紹
- Bagging和Boosting的介紹及對比
- 關於無線通訊的核心技術詳細介紹
- nGrinder詳細介紹及效能工具對比
- RPC介紹RPC
- 基於隱私保護技術的DNS通訊協議介紹DNS協議
- LoRa與NB-IoT兩大低功耗通訊技術對比
- Android常用圖片載入庫介紹及對比Android
- 分散式通訊框架 – rmi分散式框架
- 分散式通訊框架 - rmi分散式框架
- 簡單介紹SpringSecurity框架簡介及與shiro特點對比SpringGse框架
- 通訊系統之TDM技術和FDM技術簡介
- RPC簡單介紹RPC
- epic和steam的區別介紹及優劣對比
- 比較服務間通訊的技術 - ardalis
- 視訊通訊關鍵技術探索及實踐
- ETL常用的三種工具介紹及對比Datastage、Informatica、KettleASTORM
- 分散式下的遠端通訊技術(RPC)的一些理解分散式RPC
- AIGC底層技術介紹AIGC
- 容器技術和Docker介紹Docker
- 五種IO模型介紹和對比模型
- Thrift RPC 通訊搭建RPC
- RocketMQ(二):RPC通訊MQRPC
- 對比Restful Api和RpcRESTAPIRPC
- 掃碼登入認證技術原理介紹及實踐
- 關於程式碼簽名證書種類的介紹及對比
- 液晶顯示技術TCON介紹
- Docker容器技術與Docker介紹Docker
- Aidl程式間通訊詳細介紹AI
- 負載均衡技術(一)———負載均衡技術介紹負載
- Java RMI技術詳解與案例分析Java
- WebSocket原理及技術簡介Web
- 模組化通訊方式對比
- Lora通訊解決方案對比
- 文通產品及解決方案介紹
- MySQL入門--複製技術介紹MySql
- 人工智慧文生圖技術介紹人工智慧
- 技術分享 | MySQL InnoDB Cluster Set 介紹MySql
- 訊號處理技術:現代通訊技術的基石