轉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語言。異常資訊容易丟失。客戶機與伺服器緊耦合。 |
喪失了許多可以確保方法和引數是正確的編譯時便利。 |
必須做大量的執行時檢查,而且開發人員喪失了許多可以確保方法和引數是正確的編譯時便利。 |
相關文章
- RPC通訊框架——RCF介紹RPC框架
- 高階掃描技術及原理介紹(轉)
- 關於無線通訊的核心技術詳細介紹
- nGrinder詳細介紹及效能工具對比
- JDBC介面技術介紹1 (轉)JDBC
- JDBC介面技術介紹2 (轉)JDBC
- LoRa與NB-IoT兩大低功耗通訊技術對比
- 基於隱私保護技術的DNS通訊協議介紹DNS協議
- 各大防毒軟體比較與相關防毒技術介紹(轉)防毒
- 分散式通訊框架 - rmi分散式框架
- 分散式通訊框架 – rmi分散式框架
- RPC介紹RPC
- SOAP和RESTful框架的簡介、對比和區別REST框架
- IP欺騙技術介紹(1) (轉)
- IP欺騙技術介紹(2) (轉)
- 視訊通訊關鍵技術探索及實踐
- 比較服務間通訊的技術 - ardalis
- Java 遠端通訊技術及原理分析Java
- AJAX技術介紹
- ip cef 命令介紹及CEF技術淺析
- 遠端呼叫服務(RPC)和基於訊息的通訊(Message Queue)對比RPC
- Android常用圖片載入庫介紹及對比Android
- epic和steam的區別介紹及優劣對比
- Minor GC、Major GC以及Full GC的介紹及對比GC
- 容災技術介紹
- JSF技術介紹JS
- 模組化通訊方式對比
- J2EE技術簡單介紹 (轉)
- 談談自己對REST、SOA、SOAP、RPC、ICE、ESB、BPM知識彙總及理解RESTRPC
- 分散式下的遠端通訊技術(RPC)的一些理解分散式RPC
- RPC簡單介紹RPC
- C/S通訊模型與B/S通訊模型介紹模型
- ETL常用的三種工具介紹及對比Datastage、Informatica、KettleASTORM
- 文字水印技術與網路安全通訊 (轉)
- 簡單介紹SpringSecurity框架簡介及與shiro特點對比SpringGse框架
- 怎樣使用 RPCPing 測試 RPC 通訊及疑難解答 (轉)RPC
- XML SOAP應用簡介 (轉)XML
- Java 處理 XML 的三種主流技術及介紹JavaXML