DCOM服務

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

基本介紹

  • 軟體名稱:DCOM
  • 軟體語言:c
dcom服務的概述,DCOM 功能,客戶端,DCOM 激活模式和終端伺服器,

dcom服務的概述

DCOM 功能

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

客戶端

客戶端行為(作為終端伺服器的任一用戶運行並通過 DCOM 調用其它機器的進程)沒有變化。
如果沒有直接或間接涉及 COM 激活過程(CoGetClassObject、CoCreateInstanceEx、由於遠程調用而啟動的進程等),則伺服器端的行為也沒有變化。例如,如果指向終端伺服器機器上 COM 對象的接口指針被調整並傳遞給另一機器上的客戶代碼,則伺服器端行為就不涉及激活過程。這種行為的發生通常是作為 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 正式推出時會提供更詳細的信息

相關詞條

熱門詞條

聯絡我們