RMI 和 DCOM 的區別
RMI 和 DCOM 都是用於實現分散式物件計算的技術。RMI 是一種基於 Java 的技術,而 DCOM 則是由微軟開發的。儘管它們都是由兩家技術巨頭為了相同目的而構建的,但在設計、實現和使用方面存在一些顯著差異。本文將比較並列出 RMI 和 DCOM 之間的一些區別。
RMI 與 DCOM
分散式物件
要理解 RMI 和 DCOM 之間的區別,有必要了解分散式物件計算,因為這兩個術語都屬於同一範疇。當我們使用配備了分散式系統軟體的計算機網路連線一組自治計算機時,就被稱為分散式系統。該系統中的計算機可能位於不同的位置,但使用者會體驗到一個單一的、整合的計算設施。
分散式物件計算是指分散式系統中的一種技術,其中物件分佈在異構網路中。它擴充套件了面向物件程式設計系統。
RMI
它是遠端方法呼叫的縮寫。它是一種基於 Java 的技術,用於透過允許一個 Java 虛擬機器中執行的物件呼叫另一個 JVM 中執行的物件上的方法來構建分散式應用程式。我們可以跨不同的機器進行通訊和共享資料。
RMI 使用客戶端-伺服器架構,其中客戶端是呼叫遠端方法的應用程式,伺服器是提供這些方法實現的應用程式。客戶端和伺服器可以位於同一臺機器上,也可以位於透過網路連線的不同機器上。
它由三層組成
存根/骨架層:存根是客戶端上的代理物件,代表伺服器端上的遠端物件。骨架是伺服器端上的輔助物件,接收來自存根的請求並呼叫遠端物件上的方法。
遠端引用層:它處理對遠端物件的引用的建立、刪除和管理。
傳輸層:它提供客戶端和伺服器之間的底層通訊機制。
DCOM
它是分散式元件物件模型的縮寫,支援語言無關的通訊。其底層協議是物件遠端過程呼叫 (ORPC)。一個應用程式可以透過在另一個系統上使用 ORPC 遠端啟動和呼叫 DCOM 伺服器物件的方法。由於 COM 服務,它在 Windows 平臺上被大量使用。
DCOM 實際上是“網路上的 COM”技術的分散式版本。此 COM 規範在二進位制級別工作,以允許 DCOM 伺服器元件用多種程式語言(如 C++、Java、Object Pascal、Visual Basic 和 COBOL)編寫。這些元件可以在任何支援 COM 服務的平臺上實現。
DCOM 伺服器物件提供對多個介面的支援,並且每個物件都實現了一個名為 IUnknown 的介面,該介面提供基本功能,例如引用計數和查詢其他介面。
RMI 和 DCOM 之間的區別
從以上討論中,我們可以得出以下 RMI 和 DCOM 之間的區別
| RMI | DCOM |
|---|---|
| 它不能與除 Java 之外的任何其他程式語言一起使用。 | 它可以與 C++、Java、Object Pascal、Visual Basic 和 COBOL 一起使用。 |
| RMI 使用 Java 遠端方法協議 (JRMP)。 | DCOM 使用物件遠端過程呼叫 (ORPC)。 |
| 由於 Java 虛擬機器,它可以支援多個平臺。 | 由於 COM 規範,它僅支援 Windows 平臺。 |
| 物件名稱與其實現的對映由 RMI 登錄檔處理。 | 物件名稱與其實現的對映由 Windows 登錄檔處理。 |
| 物件引用用於在執行時識別物件。 | 在這種情況下,使用介面指標。 |
| 客戶端稱為存根,伺服器端稱為骨架。 | 客戶端存根稱為代理,伺服器端稱為存根。 |
結論
分散式物件技術正日益流行,因為它們促進了電信、網路應用程式、即時過程控制(如飛機控制系統)等諸多領域的發展。本文對兩種最流行的分散式物件技術 DCOM 和 RMI 進行了比較分析。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP