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