WIKI使用導(dǎo)航
站長百科導(dǎo)航
站長專題
- 網(wǎng)站推廣
- 網(wǎng)站程序
- 網(wǎng)站賺錢
- 虛擬主機(jī)
- cPanel
- 網(wǎng)址導(dǎo)航專題
- 云計(jì)算
- 微博營銷
- 虛擬主機(jī)管理系統(tǒng)
- 開放平臺(tái)
- WIKI程序與應(yīng)用
- 美國十大主機(jī)
組件對象模型
組件對象模型,也稱組件對象模型,英文為Component Object Model,縮寫COM,是微軟對于網(wǎng)頁服務(wù)器與客戶端、增益集與Office系列軟件 之間交互的一項(xiàng)軟件組件技術(shù)。
自動(dòng)化是指應(yīng)用程序的COM化來讓外部可以調(diào)用它們的功能,以及外部調(diào)用這些功能的方法。自動(dòng)化的典型應(yīng)用是微軟的很多軟件中都支持的宏。由于自動(dòng)化普遍使用OLE的標(biāo)準(zhǔn)接口來實(shí)現(xiàn),所以這個(gè)技術(shù)有時(shí)也稱OLE自動(dòng)化。
歷史[ ]
Windows操作系統(tǒng)提供了三種應(yīng)用程序間的通信機(jī)制:剪貼板(clipboard)、DDE與OLE。OLE原名是對象連接與嵌入(Object Linking and Embedding),OLE可說是DDE的改良版,OLE 1.0版提供復(fù)合文檔(compound document)處理。但過于復(fù)雜,Brockschmidt, Kraig“Inside OLE”一書中提到,必須經(jīng)過六個(gè)月的心靈混沌期,才能了解OLE是什么。因此OLE 2.0后,微軟提出COM架構(gòu)。所有OLE組件皆是繼承COM而來,這些技術(shù)包含OLE Document和OLE Controls、Drag and Drop等。
概要[ ]
COM是微軟自1993年便提出的組件式軟件平臺(tái),用來做進(jìn)程間通信(Inter-process communication, IPC)以及當(dāng)作組件式軟件開發(fā)的平臺(tái)。COM提供跟編程語言無關(guān)的方法實(shí)現(xiàn)一個(gè)軟件對象,因此可以在其他環(huán)境中運(yùn)行。COM要求軟件組件必須遵照一個(gè)共同的接口,該接口與實(shí)現(xiàn)無關(guān),因此可以隱藏實(shí)現(xiàn)屬性,并且被其他對象在不知道其內(nèi)部實(shí)現(xiàn)的情形下正確的使用。
COM并被實(shí)現(xiàn)于多個(gè)平臺(tái)之上,并不限于Windows操作系統(tǒng)之上。但還是只有Windows最常使用COM,且某些功能已被目前的.NET平臺(tái)取代。
COM組件類型[ ]
COM 是基于組件對象方式概念來設(shè)計(jì)的,在基礎(chǔ)中,至少要讓每個(gè)組件都可以支持二個(gè)功能:
- 查詢組件中有哪些接口
- 讓組件做自我生命管理,此概念的實(shí)踐即為參考計(jì)數(shù) (Reference Counting)
這二個(gè)功能即為 COM 的根:IUnknown 接口所提供的IUnknown::QueryInterface(),IUnknown::AddRef() 及 IUnknown::Release() 三個(gè)方法的由來。所有的 COM 組件都要實(shí)現(xiàn)IUnknown,表示每個(gè)COM組件都有相同的能力。
只由COM派生實(shí)現(xiàn)出來的組件,稱為純 COM 組件。
但在 Windows 持續(xù)發(fā)展時(shí),Visual Basic 4.0 開始支持 OCX,也就是 OLE Custom Control,這讓微軟開始思考要如何讓 COM 組件可以跨語言支持,在這樣的要求下,必須要提供一個(gè)一致的接口,以及提供一組可以調(diào)用接口內(nèi)方法的能力,由于純 COM 組件只能夠支持 C/C++ 的直接訪問,為了要達(dá)到跨語言的能力,在 COM 中必須要支持在外部調(diào)用內(nèi)部方法的機(jī)能,這個(gè)機(jī)能造就了 Invoke() 方法,另外為了跨語言的支持,COM 應(yīng)該要提供簡單的組件訪問識別方式,這也就是會(huì)有 GetIDsOfNames() 的原因,將這些方法組合起來,定義出的必要接口,稱為 IDispatch 接口,所有實(shí)現(xiàn)此接口的,都可以支持跨語言的支持。
微軟將實(shí)現(xiàn)此接口的組件都稱為自動(dòng)化 (Automation) 組件。
相關(guān)技術(shù)[ ]
COM曾是Windows平臺(tái)下主要的軟件開發(fā)平臺(tái),并且影響至其他許多相關(guān)軟件技術(shù)。
COM+[ ]
主條目:微軟組件服務(wù)
COM+ 是微軟 Windows 2000 中,Microsoft Transaction Server 的強(qiáng)化實(shí)現(xiàn)版本,除了提供基本的組件交易支持外,還提供了松散藕合式事件 (loosely-coupled events) 與對象共用池 (object pooling) 等應(yīng)用程序服務(wù)器的能力,成為 Windows 2000 開始在微軟平臺(tái)上主要的應(yīng)用程序服務(wù)器平臺(tái),目前 .NET Framework 也提供了 System.EnterpriseServices 命名空間以支持 COM+。
設(shè)備上下文OM[ ]
主條目:Distributed COM
設(shè)備上下文OM 是可以在網(wǎng)絡(luò)上通信的COM組件,依據(jù)RPC(Remote Procedure Call)的規(guī)范來發(fā)展的,它將COM組件的能力擴(kuò)及到網(wǎng)絡(luò)上,但是因?yàn)榫W(wǎng)絡(luò)安全以及防火墻的問題,讓設(shè)備上下文OM無法廣泛的流行。
.NET[ ]
主條目:.NET Framework
.NET Framework 是新一代的Microsoft Windows應(yīng)用程序開發(fā)平臺(tái)。
禁用com組件可能導(dǎo)致的問題[ ]
- 在線播放功能的組件被禁用,會(huì)導(dǎo)致在線電影等在線視頻無法正常觀看;
- 在線殺毒功能的組件被禁用,會(huì)導(dǎo)致在線殺毒不能使用;
- 在線游戲功能的組件被禁用,會(huì)導(dǎo)致在線游戲無法玩,
- com組件禁用后的具體情況,需要根據(jù)具體的com組件功能作判斷。