COM、COM+和DCOM的定义和区别
From:http://zouyou1986.blog.163.com/blog/static/1772625920105461931335/
?
解釋COM、COM+和DCOM的定義和區別?
COM是組件對象模型,是實現3/N層應用的基礎,它的目的就是組件化,應用程序分層.DCOM是分布式的COM,也就說可以遠程的創建,最初它利用遠程自動化來實現,用注冊VBR的方法來配置客戶端,來適應DCOM服務器. COM+現在的概念不很清楚,因為它是一個擴展集,MS現在的MTS取代了遠程自動化這種原始的功能很弱的方法后,他們似乎已經都是一個集合體.
何謂Mts?
MTS(Microsoft????? Transaction????? Server)是微軟為其Windows????? NT操作系統推出的一個中間件產品,由于它具有強大的分布事務支持、安全管理、資源管理和多線程并發控制等特性,使其成為在Windows平臺上開發大型數據庫應用系統的首選產品。由于MTS屏蔽了底層實現的復雜性,極大地簡化了這類應用的開發,程序員可以將精力集中在業務邏輯上,因而有效地提高了軟件的開發效率.
組件對象模型(COM?? Componet Object Model),是微軟公司為了計算機工業的軟件生產更加符合人類的行為方式開發的一種新的軟件開發技術。在COM構架下,人們可以開發出各種各樣的功能專一的組件,然后將它們按照需要組合起來,構成復雜的應用系統。由此帶來的好處是多方面的:可以將系統中的組件用新的替換掉,以便隨時進行系統的升級和定制;可以在多個應用系統中重復利用同一個組件;可以方便的將應用系統擴展到網絡環境下;COM與語言,平臺無關的特性使所有的程序員均可充分發揮自己的才智與專長編寫組件模塊。
COM是開發軟件組件的一種方法。組件實際上是一些小的二進制可執行程序,它們可以給應用程序,操作系統以及其他組件提供服務。開發自定義的COM組件就如同開發動態的,面向對象的API(應用程序調用系統功能的接口)。多個COM對象可以連接起來形成應用程序或組件系統。并且組件可以在運行時刻,在不被重新鏈接或編譯應用程序的情況下被卸下或替換掉。Microsoft的許多技術,如ActiveX(根據微軟權威的軟件開發指南MSDN(Microsoft Developer Network)的定義,ActiveX插件以前也叫做OLE控件或OCX控件,它是一些軟件組件或對象,可以將其插入到WEB網頁或其它應用程序中), DirectX(DirectX并不是一個單純的圖形API,它是由微軟公司開發的用途廣泛的API,它包含有Direct Graphics(Direct 3D+Direct Draw)、Direct Input、Direct Play、Direct Sound、Direct Show、Direct Setup、Direct Media Objects等多個組件,它提供了一整套的多媒體接口方案。只是其在3D圖形方面的優秀表現,讓它的其它方面顯得暗淡無光。DirectX開發之初是為了彌補Windows 3.1系統對圖形、聲音處理能力的不足,而今已發展成為對整個多媒體系統的各個方面都有決定性影響的接口)以及OLE(OLE是指與對象鏈接和嵌入有關的技術,包括容器、服務器、就地編輯、拖放和彩單合并等。在應用程序之間共享的一大塊數據稱為一個OLE對象,能夠包含OLE對象的應用程序稱為OLE容器,而允許自己的數據被包含到其他應用程序中的程序稱為OLE服務器)等都是基于COM而建立起來的。并且Microsoft的開發人員也大量使用COM組件來定制他們的應用程序及操作系統。
COM所含的概念并不止是在Microsoft Windows操作系統下才有效。COM并不是一個大的API(用標準的定義來講,API就是Windows的32位應用程序編程接口,是一系列很復雜的函數,消息和結構,它使編程人員可以用不同類型的編程語言編制出的運行在Windows95 和Windows NT操作系統上的應用程序。),它實際上象結構化編程及面向對象編程方法那樣,也是一種編程方法。在任何一種操作系統中,開發人員均可以遵循“COM方法”。
一個應用程序通常是由單個的二進制文件組成的。當編譯器生成應用程序之后,在對下一個版本重新編譯并發行新生成的版本之前,應用程序一般不會發生任何變化。操作系統,硬件及客戶需求的改變都必須等到整個應用程序被重新生成。
目前這種狀況已經發生變化。開發人員開始將單個的應用程序分隔成單獨多個獨立的部分,也既組件。這種做法的好處是可以隨著技術的不斷發展而用新的組件取代以有的組件。此時的應用程序可以隨新組件不斷取代舊的組件而漸趨完善。而且利用已有的組件,用戶還可以快速的建立全新的應用。
傳統的做法是將應用程序分割成文件,模塊或類,然后將它們編譯并鏈接成一個單模應用程序。(靜態的鏈接,文件擴展名為.obj,在進程內實現的)它與組件建立應用程序的過程(稱為組件構架)有很大的不同。一個組件同一個微型應用程序類似,即都是已經編譯鏈接好并可以使用的二進制代碼,應用程序就是由多個這樣的組件打包而得到的。單模應用程序只有一個二進制代碼模塊。自定義組件可以在運行時刻同其他的組件連接起來以構成某個應用程序。在需要對應用程序進行修改或改進時,只需要將構成此應用程序的組件中的某個用新的版本替換掉即可(動態的鏈接,文件擴展名為.dll,是在進程外實現的)。
COM即組件對象模型,是關于如何建立組件以及如何通過組件建立應用程序的一個規范,說明了如何可動態交替更新組件。
COM是一種說明如何建立可動態互變組件的規范,此規范提供了為保證能夠互操作,客戶和組件應遵循的一些二進制和網絡標準。通過這種標準將可以在任意兩個組件之間進行通信而不用考慮其所處的操作環境是否相同、使用的開發語言是否一致以及是否運行于同一臺計算機。
COM的優點?
首先:用戶一般希望能夠定制所用的應用程序,而組件技術從本質上講就是可被定制的,因而用戶可以用更能滿足他們需要的某個組件來替換原來的那個。其次,由于組件是相對應用程序獨立的部件,我們可以在不同的程序中使用同一個組件而不會產生任何問題,軟件的可重用性將大大的得到增強。第三,隨著網絡帶寬及其重要性的提高,分布式網絡應用程序毫無疑問的成為軟件市場上越來越重要的買點。組件價構可以使得開發這類應用程序的過程得以簡化。
DCOM是微軟與其他業界廠商合作提出的一種分布組件對象模型,它是COM在分布計算方面的自然延續,為分布在網絡不同節點的兩個COM組件提供了互操作的基礎結構。DCOM增強COM的分布處理性能,支持多種通信協議,加強組件通信的安全保障,把基于認證Internet安全機制同基于Windows NT的C2級安全機制集成在一起。但從系統內部的實現機制而言,DCOM所采用的技術仍符合圖1所示的COM模式。
DCOM自動建立連接、傳輸信息并返回來自遠程組件的答復。DCOM在組件中的作用有如PC機間通信的PCI和ISA總線,負責各種組件之間的信息傳遞,如果沒有DCOM,則達不到分布計算環境的要求。微軟通過納入事務處理服務、更容易的編程以及對Unix和其它平臺的支持擴充了DCOM。
建立DCOM時和使用COM建立對象的方式是相同的,只需再加入一個機器名稱的參數。如果COM通過Windows API的CoGetClassObject建立對象,只需再輸入機器名稱的參數即可在遠程指定的計算機中建立對象,并且取得指定接口的信息。它構造于RPC的技術之上,并且使用TCP/IP作為網絡通信協議。
什么是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應用提供了一套完整的解決方案。
總結
以上是生活随笔為你收集整理的COM、COM+和DCOM的定义和区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DOS MASM 安装
- 下一篇: 电脑打印机print spooler服务