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

COM+

鎖定
COM+並不是COM的新版本,我們可以把它理解為COM的新發展,或者為COM更高層次上的應用。COM+的底層結構仍然以COM為基礎,它幾乎包容了COM的所有內容。有一種説法這樣認為,COM+是COM、DCOM和MTS(Microsoft Transaction Server)的集成,這種説法有一定的道理,因為COM+確實綜合了這些技術要素。但更重要的一點是,COM+倡導了一種新的概念,它把COM組件軟件提升到應用層而不再是底層的軟件結構,它通過操作系統的各種支持,使組件對象模型建立在應用層上,把所有組件的底層細節留給操作系統。
外文名
COM+
類    型
計算軟件

目錄

COM+簡介

COM是個開放的組件標準,它有很強的擴充和擴展能力,從COM到DCOM,再到MTS的發展過程也充分説明了這一點。對COM有使用經驗的讀者一定可以感覺到,雖然COM已經改變了Windows程序員的應用開發模式,把組件的概念融入到Windows應用中,但是由於種種原因,DCOM和MTS的許多優越性還沒有為廣大的Windows程序員所認識。MTS針對企業應用和Web應用的特點,在COM/DCOM的基礎上又添加了許多功能和特性,包括事務特性、安全模型、管理和配置等,MTS使COM成為一個完整的組件體系結構。由於歷史的原因,COM、DCOM和MTS相互之間並不很融洽,難以形成統一的整體,不過,這種狀況很快就要結束,因為COM+將把這三者有效地統一起來,形成一個全新的、功能強大的組件體系結構,並且把DCOM和MTS的各種優勢以更為簡捷的方式帶給Windows2000程序員和用户。
COM+不再侷限於COM的組件技術,它更加註重於分佈式網絡應用的設計和實現,已經成為Microsoft系統平台策略和軟件發展策略的一部分。COM+繼承了COM幾乎全部的優勢,同時又避免了COM實現方面的一些不足。COM+緊緊地與操作系統結合起來,通過系統服務為應用程序提供全面的服務,這一部分介紹COM+的基本結構。 [1] 

COM+特性

與COM一樣,COM+基於二進制組件和基於接口的編程。通過使用透明RPC層,可以跨越進程和計算機邊界進行遠程方法調用。正如COM組件那樣,COM+組件可以在成品中升級和擴展,而不會對使用它們的客户端應用程序造成負面影響。
COM+組成結構圖 COM+組成結構圖
與MTS一樣,COM+支持分佈式事務和基於角色的安全性。它提供內置線程池方案,該方案與MTS的線程池方案一樣透明。COM+編程模型同樣利用偵聽通過聲明性屬性向開發人員公開平台服務。但是,COM+比MTS更進一步地利用了基於屬性的編程。除了事務性服務和集成安全性外,COM+還公開自定義對象構造、同步、對象池等服務。COM+的其他新功能(如排隊組件和COM+事件)也通過可配置的屬性公開。

COM+類型

進程內組件:組件是在主調應用程序的進程範圍內運行,是以DLL方式實現的。組件的實現是快速的,但由於和應用程序公用一個進程,導致了不安全的因素。
進程外組件:它又可分為兩類。本地服務器進程組件,它是組件與調用組件者在同一機器上;遠程服務器進程組件,它是組件使用遠程過程調用RPCs和客户應用程序進行通信。

COM+應用

跨環境調用示意圖 跨環境調用示意圖
對Windows進行的任何技術討論,必然要包括對組件對象模型COM的討論。COM是一種對象技術,已成為Windows的全部(技術)的基礎,並且還是Microsoft向Internet進軍的一部分。COM不僅與用户相互作用,而且還是創建類似於應用程序中使用的按鈕之類的組件的技術基礎。換言之,不以某種方式討論一下COM,就不能開始對Internet的Windows或Microsoft版本進行討論。
就在一年前,ActiveX還是表達Microsoft進軍Internet的新版COM的中心詞彙。但是,現在已經證明,ActiveX太龐大(儘管ActiveX控件遠遠小於被它取代的OCX),太依賴於瀏覽器,而且對大多數人來説又有太多的安全風險。另外,Microsoft市場部正在用ActiveX來描述Microsoft正在發佈的幾乎每一項新技術,這樣只能使客户更加迷惑。
當COM+及分佈式網際網應用程序(DistributedinterNetApplication,DNA)出現在Internet時,就又有了兩個新鮮而又激動人心的術語讓你學習了。ActiveX不再是描述Microsoft的COM技術諸個方面的術語,它僅關係到在應用程序或內部網站點中創建並使用的組件。如果你正在談論使能技術或DNA技術,如果你正在談論COM+技術的進展情況,那麼在Internet上幹任何事現在都稱為COM+。
WEB鏈接可以在上得到Microsoft種種最新的COM技術。這個站點可使你一直跟得上Microsoft正在引入的各種與COM相關的技術發展,以及預期它們是如何發展的。
事實上,作為C++程序員,需要了解相當多的基於COM的技術。下列章節將快速地瀏覽一下這些技術,並討論如何將它們放入一般方案中。顯然,在Microsoft升級其COM技術時,這種討論也會有所變化。
分佈式COM(DCOM)──網絡接口COM的這一版允許組件和應用程序在網絡上進行通信。DCOM設計得可以在相當多的網絡協議──包括Internet使用的TCP/IP──上進行通信。DCOM為開發人員所能做到的,是允許客户的應用程序只要使用標準的COM接口,就可和運行於服務器上的服務直接通信。實際上,這就意味着你可以設計一個控件或一小段程序,使得客户機的應用程序從服務器接收數據,然後在本地對這些數據進行計算。另外,DCOM使得我們可以在客户機和服務器間進行安全通信,而不需關心所用的協議。
COM+──功能標準COM接口擴充。它是現有的COM標準的擴充,使開發人員能利用特殊的COM+調用來設計高級的控件。COM+提供的最重要的COM擴充是數據捆綁,允許組件提供數據庫訪問。添加數據庫訪問,意味着可以使用COM+為能訪問遠程數據的Internet建立組件。COM+還是分佈式網際網(DNA)體系結構的基礎,而DNA是Microsoft的最新的Internet版本。
隊列組件模型結構圖 隊列組件模型結構圖
理論上,DNA允許COM組件可以在任意平台上執行,並且允許開發人員可以使用任意語言寫出該組件。可以使用任意語言和任意平台進行工作的這部分能力,來源於一個稱之為偵聽器的COM+新特色。使用偵聽器允許COM+組件可以在運行期間調用多種服務,而不是依賴於某一具體服務。你將使用偵聽器接收和處理與實例創建、調用與返回、出錯以及實例刪除有關的事件。偵聽器還提供了處理事務及系統監督的機制。
Microsoft事務服務器(MTS)──功能COM服務器。信不信由你,MTS是COM的一部分,它允許開發人員創建“輕型(lite)”控件,這種控件集中於處理組件背後的事務邏輯,而不是處理組件所需要的全部接口。建立輕型控件意味着能夠更快地創建它們,使用時下載時間更少。MTS將成為IIS4.x的一部分。
ActiveX──功能組件建立。ActiveX最初是作為Internet的一項新技術而引入的,它是一種組件建立技術,它是Microsoft組件技術的第三個版本。將ActiveX從以前的OLE控件擴充(OCX)中分離出來的原因之一是,可以在類似於Internet的高級潛在網絡中使用它們。它們還設計得可以與瀏覽器一起工作,儘管在寫出本書時真正使用它們的唯一瀏覽器只有InternelExplorer。ActiveX控件的特色還包括增量繪製和代碼簽名,使得用户可以在控件執行前識別出它們的作者。

COM+優點

COM+事件模型結構圖 COM+事件模型結構圖
COM+不僅繼承了COM所有的優點,而且還增加了一些服務,比如隊列服務、負載平衡內存數據庫、事件服務等。隊列服務對於分佈式應用非常有意義,特別是在現在網絡速度很慢的情況下,這種機制可以保證應用系統能夠可靠地運行。在應用系統包含大量節點但服務器又繁忙的情況下,客户應用程序可以把它們的請求放到隊列中,當服務器負載比較輕的時候再處理這些請求; [1] 
又如COM+提供了負載平衡服務,它可以實現動態負載平衡,而且COM+應用程序的負載平衡特性並不需要編寫代碼來支持,客户程序和組件程序都可以按通常的方式實現。獲得負載平衡特性並不是用程序設計的方式來實現的,而是通過配置實現分佈式應用程序的負載平衡,如上所講的隊列服務,其實也反映了一種負載平衡。
(1)真正的異步通訊。COM+底層提供了隊列組件服務,這使客户和組件有可能在不同的時間點上協同工作,COM+應用無須增加代碼就可以獲得這樣的特性。
(2)事件服務。新的事件機制使事件源和事件接收方實現事件功能更加靈活,利用系統服務簡化了事件模型,避免了COM可連接對象機制的瑣碎細節。
(3)可伸縮性。COM+的可伸縮性來源於多個方面,動態負載平衡以及內存數據庫對象池等系統服務都為COM+的可伸縮性提供了技術基礎,COM+的可伸縮性原理上與多層結構的可伸縮特性一致。
(4)可管理和可配置性。管理和配置是應用系統開發完成後的行為,在軟件維護成本不斷增加的今天,COM+應用將有助於軟件廠商和用户減少這方面的投入。
COM+組件編譯過程示意圖 COM+組件編譯過程示意圖
(5)易於開發。COM+應用開發的複雜性和難易程度將決定COM+的成功與否,雖然COM+開發模型比以前的COM組件開發更為簡化,但真正提高開發效率仍需要藉助於一些優秀的開發工具。
COM+標誌着Microsoft的組件技術達到了一個新的高度,它不再侷限於一台機器上的桌面系統,它把目標指向了更為廣闊的企業內部網,甚至Internet國際互連網絡。COM+與多層結構模型以及Windows操作系統為企業應用或Web應用提供了一套完整的解決方案。 [1] 
參考資料