複製鏈接
請複製以下鏈接發送給好友

DCOM服務

鎖定
DCOM 實際上是一項協議,它能讓軟件組件以一種可靠、安全和高效的方式通過網絡進行直接通訊。DCOM 以前稱為“網絡 OLE”,其設計使它能用在多種網絡傳輸(包括 HTTP 等 Internet 協議)上。DCOM 以開放軟件基金會的 DCE-RPC 規範為基礎,並可以通過組件對象模型 (COM) 而用於 Java 語言小程序和 ActiveX® 組件。
外文名
DCOM
所屬學科
計算機
軟件語言
c

DCOM服務dcom服務的概述

DCOM服務DCOM 功能

Terminal Server 4.0 中的 DCOM 功能是常規 Windows NT Server 4.0 DCOM 功能的一個子集。基於這一點,針對常規 Windows NT Server 4.0 環境編寫並能在其上正常運行的一些應用程序,在終端服務器上可能無法正常運行。本文的目的就是説明那些使用 DCOM 功能的應用程序會出現什麼樣的行為。
以下 DCOM 功能可以在終端服務器上獲得全面支持:

DCOM服務客户端

客户端行為(作為終端服務器的任一用户運行並通過 DCOM 調用其它機器的進程)沒有變化。
如果沒有直接或間接涉及 COM 激活過程(CoGetClassObject、CoCreateInstanceEx、由於遠程調用而啓動的進程等),則服務器端的行為也沒有變化。例如,如果指向終端服務器機器上 COM 對象的接口指針被調整並傳遞給另一機器上的客户代碼,則服務器端行為就不涉及激活過程。這種行為的發生通常是作為 DCOM 方法調用的輸出參數,但也可能存在其它方式。那種情況下,對終端服務器(現在已作為 DCOM 服務器)的回調將照常進行(包括通常的安全限制)。一個間接激活的例子是,對一個解析到終端服務器機器並導致嘗試在該機器上發生直接激活的文件標記的綁定。

DCOM服務DCOM 激活模式和終端服務器

在作為遠程客户的服務器運行時,終端服務器系統在所支持的 DCOM 激活/進程啓動模式方面會有所限制。對於任一給定的 ClassID 或 AppID,Windows NT 的 DCOM 通常支持四種激活/啓動模式。
作為激活方運行(默認):在終端服務器中,本地進程由客户會話啓動。
作為指定/命名用户運行:在終端服務器中,本地進程始終由會話 0(控制枱)啓動。
作為 Win32 和 Windows NT 服務運行:在終端服務器中,服務由會話 0(控制枱)啓動。
作為交互用户運行:不能用在終端服務器中。
對於終端服務器,只有模式 1(“作為激活方運行“)才受完全支持。模式 2 和 3(“作為指定/命名用户運行”和“作為 Win32 和 Windows NT 服務運行”)在終端服務器系統上運行時會出現不同的行為,因此 Microsoft 不推薦或支持這樣做。第四種模式(“作為交互用户運行”),在終端服務器上根本不能運行。
DCOM 與 Windows 2000 終端服務
Microsoft 的目標是確保上述問題在 Windows 2000 中能夠解決。以下內容是對 Microsoft Windows® 2000 終端服務下激活模式及其工作機制的簡要描述:
作為激活方運行:
本地激活
服務器在激活方所屬的同一會話中被激活。這種行為在無論終端服務是否啓用的情況下都完全相同。
遠程激活:
啓用終端服務後的激活規則與不啓用時一樣。然而,進程將在會話 ID 為 0 的窗口站中啓動,而不是在用户對應的會話中啓動。 這是為了保護遠程調用的激活行為。為了説明這一行為方式的原因,不妨假設由對應於 Windows 2000 Server(已啓用終端服務)上用户的會話啓動激活過程的情況。如果用户註銷,所有的窗口站及其進程就被殺死。如果用户是從服務器上的多個客户登錄的,而又決定從一台客户機上退出,則用户其它會話的客户進程將無法看到它們的激活過程。因此,其它會話將失敗。基於這一原因,所有進程都將在會話 0 的窗口站中啓動。因為會話 0 永遠不會被刪除,遠程激活過程就能夠繼續正常進行。
作為命名/指定用户運行:
應用程序通過註冊表中的 AppID 被配置為作為指定用户運行。本地和遠程激活的行為相同。
當啓用了終端服務時,進程將在會話 0 的一個新窗口站中啓動。在有多個用户使用服務器的情況下,後續請求將獲得已有的同一個類對象。 呼叫方的 SID 或 LUID 對此沒有影響。在單個用户使用服務器的情況下,新的激活請求始終獲得一個新的窗口站。即使同一用户登錄到交互式桌面,激活過程也不會共享交互窗口站。
作為 Win32 和 Windows NT 服務運行:
應用程序通過 AppID 集被配置為作為服務運行進程。
當啓用了終端服務後,服務從本質上講仍是全局的,不會在某一特定會話中啓動。根據服務配置不同,它們要麼在會話 0 的服務桌面上啓動,要麼在會話 0 的交互桌面上啓動。
作為交互用户運行:
應用程序被配置為在交互用户的安全環境下運行。
如前所述,Windows NT Server 4.0,Terminal Server Edition 不支持這類服務器的遠程激活,它只支持會話到會話的本地激活。在啓用終端服務的狀態下作為交互用户啓動進程有兩種方式,正處於研究之中。一種在當前會話之外的另一會話中激活進程的方式是使用會話“標誌”。另一種可能的方式是使用呼叫方的安全憑據啓動進程。Windows 2000 正式推出時會提供更詳細的信息