當 1993 年初第一次引入自動化時,它只能在運行于同一臺計算機上的應用程序之間使用。但是,由于自動化與其他 OLE 共享相同的基礎,即 COM(組件對象模型),因此當 COM 本身被更新為包括遠程處理能力時,也總是希望自動化能成為“具有遠程能力的”。并且按原來的計劃,從純粹的本地操作轉換為分布式操作只需對現有模式做些微更改或不做更改。
那么“遠程處理”的意思是什么?本地 COM 規定接口的使用者需駐留在該接口的提供程序所在的同一臺計算機上并在其上執行。例如,Microsoft Visual Basic 可以控制您的臺式機上 Microsoft Excel 的副本,但無法管理其他計算機上 Excel 的執行。隨著分布式 COM 的發展,接口的使用者不再需要駐留在執行接口提供程序所在的同一臺計算機上。
采用 COM 跨網絡工作后,不受本地執行模型約束的任何接口(一些接口對本地計算機設備生來就有依賴性,如那些方法包含參數形式的設備上下文句柄的繪圖接口)都將具有分布的能力。接口使用者請求給定的接口;該接口可以由正在不同的計算機上運行(或將要運行)的對象實例提供。COM 內部的分布機制將使用者連接到提供程序,使使用者所做的方法調用出現在提供程序的結尾處(方法將在這里執行)。任何返回值然后都被發送回使用者。就任何意圖和目的而言,分布的行為對使用者和提供程序都是透明的。
原文轉自:http://www.anti-gravitydesign.com