RPC、CORBA、WebService之區別
RPC是由Sun發明的遠端過程呼叫協議,是第一種真正的分散式應用模型。Windows上使用的R PC是DCERPC的擴充套件。嚴格地說,RPC是一種邏輯上的協議,它可以使用Socket、Named Pipe等更低階的協議完成通訊任務。現在Windows系統本身的大多數涉及通訊和分散式應用 的服務程式都在使用RPC協議。這也就是為什麼前一段時間RPC漏洞會給Windows帶來那麼大麻煩的原因所在了。
CORBA從概念上擴充套件了RPC。用RPC開發的分散式應用是面向過程的,而CORBA是完全面向物件的。CORBA協議在許多大型企業級應用中使用得很多。因此,CORBA對RPC的擴充套件就像C++語言 對C語言的擴充套件一樣。 DCOM是微軟自己開發的,面向物件的分散式應用模型。它的設計目標和CORBA一樣,但它遠 沒有CORBA那麼健壯和豐富,因此,真正在企業級應用系統中使用DCOM協議的並不太多。
在企業級軟體開發中,還經常使用一種類似於e-mail的非同步通訊方式——訊息佇列。微軟、 IBM等公司都由相應的訊息佇列產品,IBM的MQ Series是目前業界比較成熟的一種,應用很廣。
Web Service是在開放的HTTP協議和XML語言的基礎上構建的,類似於CORBA或RPC的一種新的分散式應用模型。與傳統的RPC和CORBA相比,Web Service因為使用XML來描述所有資料,具有 通用、可互動的優勢,因為使用HTTP協議來傳輸資料,具有跨平臺、跨網路的特點。微軟 的.NET平臺和Sun的J2EE平臺都支援Web Service。 因此,總地說來,可以使用的分散式技術很多,我們可以根據需要選用。比如說,最簡單的 通訊,可以直接用Socket程式設計來實現;對分散式要求較高的應用,可以考慮使用RPC;在面 向物件的環境下,可以選用CORBA或DCOM;當我們要在不同的網路和平臺之間搭建開放的分 布式應用系統時,Web Service就是最好的選擇了。 我覺得,學習這些技術要遵循一定的順序,循序漸進地學習。必須先掌握網路通訊和TCP/IP 協議的基礎知識,這是前提條件。然後可以學習Socket這樣最基本的通訊程式設計技術,接著可 以選擇學習RPC、CORBA、DCOM中的一種,然後,在充分了解XML語言和HTTP協議的基礎上, 掌握Web Service就非常容易了。你可以按照這樣的思路去找每個領域裡的書來看——我一時也想不出什麼具體的書名。