什么是COM?
所謂COM(Componet Object Model,組件對(duì)象模型),是一種說(shuō)明如何建立可動(dòng)態(tài)互變組件的規(guī)范,此規(guī)范提供了為保證能夠互操作,客戶和組件應(yīng)遵循的一些二進(jìn)制和網(wǎng)絡(luò)標(biāo)準(zhǔn)。通過(guò)這種標(biāo)準(zhǔn)將可以在任意兩個(gè)組件之間進(jìn)行通信而不用考慮其所處的操作環(huán)境是否相同、使用的開發(fā)語(yǔ)言是否一致以及是否運(yùn)行于同一臺(tái)計(jì)算機(jī)。
COM的優(yōu)點(diǎn)?
首先:用戶一般希望能夠定制所用的應(yīng)用程序,而組件技術(shù)從本質(zhì)上講就是可被定制的,因而用戶可以用更能滿足他們需要的某個(gè)組件來(lái)替換原來(lái)的那個(gè)。其次,由于組件是相對(duì)應(yīng)用程序獨(dú)立的部件,我們可以在不同的程序中使用同一個(gè)組件而不會(huì)產(chǎn)生任何問(wèn)題,軟件的可重用性將大大的得到增強(qiáng)。第三,隨著網(wǎng)絡(luò)帶寬及其重要性的提高,分布式網(wǎng)絡(luò)應(yīng)用程序毫無(wú)疑問(wèn)的成為軟件市場(chǎng)上越來(lái)越重要的買點(diǎn)。組件價(jià)構(gòu)可以使得開發(fā)這類應(yīng)用程序的過(guò)程得以簡(jiǎn)化。
什么是COM+?
COM+并不是COM的簡(jiǎn)單升級(jí),COM+的底層結(jié)構(gòu)仍然以COM為基礎(chǔ),它幾乎包容了COM的所有內(nèi)容,COM+綜合了COM、DCOM和MTS這些技術(shù)要素,它把COM組件軟件提升到應(yīng)用層而不再是底層的軟件結(jié)構(gòu),它通過(guò)操作系統(tǒng)的各種支持,使組件對(duì)象模型建立在應(yīng)用層上,把所有組件的底層細(xì)節(jié)留給操作系統(tǒng),因此,COM+與操作系統(tǒng)的結(jié)合更加緊密。
COM+不再局限于COM的組件技術(shù),它更加注重于分布式網(wǎng)絡(luò)應(yīng)用的設(shè)計(jì)和實(shí)現(xiàn)。COM+繼承了COM幾乎全部的優(yōu)勢(shì),同時(shí)又避免了COM實(shí)現(xiàn)方面的一些不足,把COM、DCOM和MTS的編程模型結(jié)合起來(lái),繼承了它們的絕大多數(shù)特性,在原有的特性上增加了新的功能。
COM+的新的優(yōu)點(diǎn)?
以下列出COM+的幾個(gè)主要特性:
COM+不僅繼承了COM所有的優(yōu)點(diǎn),而且還增加了一些服務(wù),比如隊(duì)列服務(wù)、負(fù)載平衡、內(nèi)存數(shù)據(jù)庫(kù)、事件服務(wù)等。
隊(duì)列服務(wù)對(duì)于分布式應(yīng)用非常有意義,特別是在現(xiàn)在網(wǎng)絡(luò)速度很慢的情況下,這種機(jī)制可以保證應(yīng)用系統(tǒng)能夠可靠地運(yùn)行。在應(yīng)用系統(tǒng)包含大量節(jié)點(diǎn)但服務(wù)器又繁忙的情況下,客戶應(yīng)用程序可以把它們的請(qǐng)求放到隊(duì)列中,當(dāng)服務(wù)器負(fù)載比較輕的時(shí)候再處理這些請(qǐng)求;
又如COM+提供了負(fù)載平衡服務(wù),它可以實(shí)現(xiàn)動(dòng)態(tài)負(fù)載平衡,而且COM+應(yīng)用程序的負(fù)載平衡特性并不需要編寫代碼來(lái)支持,客戶程序和組件程序都可以按通常的方式實(shí)現(xiàn)。獲得負(fù)載平衡特性并不是用程序設(shè)計(jì)的方式來(lái)實(shí)現(xiàn)的,而是通過(guò)配置實(shí)現(xiàn)分布式應(yīng)用程序的負(fù)載平衡,如上所講的隊(duì)列服務(wù),其實(shí)也反映了一種負(fù)載平衡。
(1) 真正的異步通訊。COM+底層提供了隊(duì)列組件服務(wù),這使客戶和組件有可能在不同的時(shí)間點(diǎn)上協(xié)同工作,COM+應(yīng)用無(wú)須增加代碼就可以獲得這樣的特性。
(2) 事件服務(wù)。新的事件機(jī)制使事件源和事件接收方實(shí)現(xiàn)事件功能更加靈活,利用系統(tǒng)服務(wù)簡(jiǎn)化了事件模型,避免了COM可連接對(duì)象機(jī)制的瑣碎細(xì)節(jié)。
(3) 可伸縮性。COM+的可伸縮性來(lái)源于多個(gè)方面,動(dòng)態(tài)負(fù)載平衡以及內(nèi)存數(shù)據(jù)庫(kù)、對(duì)象池等系統(tǒng)服務(wù)都為COM+的可伸縮性提供了技術(shù)基礎(chǔ),COM+的可伸縮性原理上與多層結(jié)構(gòu)的可伸縮特性一致。
(4) 可管理和可配置性。管理和配置是應(yīng)用系統(tǒng)開發(fā)完成后的行為,在軟件維護(hù)成本不斷增加的今天,COM+應(yīng)用將有助于軟件廠商和用戶減少這方面的投入。
(5) 易于開發(fā)。COM+應(yīng)用開發(fā)的復(fù)雜性和難易程度將決定COM+的成功與否,雖然COM+開發(fā)模型比以前的COM組件開發(fā)更為簡(jiǎn)化,但真正提高開發(fā)效率仍需要借助于一些優(yōu)秀的開發(fā)工具。
COM+標(biāo)志著Microsoft的組件技術(shù)達(dá)到了一個(gè)新的高度,它不再局限于一臺(tái)機(jī)器上的桌面系統(tǒng),它把目標(biāo)指向了更為廣闊的企業(yè)內(nèi)部網(wǎng),甚至Internet國(guó)際互連網(wǎng)絡(luò)。COM+與多層結(jié)構(gòu)模型以及Windows操作系統(tǒng)為企業(yè)應(yīng)用或Web應(yīng)用提供了一套完整的解決方案。