日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

COM、COM+和DCOM的定义和区别

發(fā)布時(shí)間:2023/12/9 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 COM、COM+和DCOM的定义和区别 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

From:http://zouyou1986.blog.163.com/blog/static/1772625920105461931335/

?

解釋COM、COM+和DCOM的定義和區(qū)別?

COM是組件對(duì)象模型,是實(shí)現(xiàn)3/N層應(yīng)用的基礎(chǔ),它的目的就是組件化,應(yīng)用程序分層.DCOM是分布式的COM,也就說可以遠(yuǎn)程的創(chuàng)建,最初它利用遠(yuǎn)程自動(dòng)化來實(shí)現(xiàn),用注冊(cè)VBR的方法來配置客戶端,來適應(yīng)DCOM服務(wù)器. COM+現(xiàn)在的概念不很清楚,因?yàn)樗且粋€(gè)擴(kuò)展集,MS現(xiàn)在的MTS取代了遠(yuǎn)程自動(dòng)化這種原始的功能很弱的方法后,他們似乎已經(jīng)都是一個(gè)集合體.

何謂Mts?

MTS(Microsoft????? Transaction????? Server)是微軟為其Windows????? NT操作系統(tǒng)推出的一個(gè)中間件產(chǎn)品,由于它具有強(qiáng)大的分布事務(wù)支持、安全管理、資源管理和多線程并發(fā)控制等特性,使其成為在Windows平臺(tái)上開發(fā)大型數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的首選產(chǎn)品。由于MTS屏蔽了底層實(shí)現(xiàn)的復(fù)雜性,極大地簡(jiǎn)化了這類應(yīng)用的開發(fā),程序員可以將精力集中在業(yè)務(wù)邏輯上,因而有效地提高了軟件的開發(fā)效率.

組件對(duì)象模型(COM?? Componet Object Model),是微軟公司為了計(jì)算機(jī)工業(yè)的軟件生產(chǎn)更加符合人類的行為方式開發(fā)的一種新的軟件開發(fā)技術(shù)。在COM構(gòu)架下,人們可以開發(fā)出各種各樣的功能專一的組件,然后將它們按照需要組合起來,構(gòu)成復(fù)雜的應(yīng)用系統(tǒng)。由此帶來的好處是多方面的:可以將系統(tǒng)中的組件用新的替換掉,以便隨時(shí)進(jìn)行系統(tǒng)的升級(jí)和定制;可以在多個(gè)應(yīng)用系統(tǒng)中重復(fù)利用同一個(gè)組件;可以方便的將應(yīng)用系統(tǒng)擴(kuò)展到網(wǎng)絡(luò)環(huán)境下;COM與語(yǔ)言,平臺(tái)無關(guān)的特性使所有的程序員均可充分發(fā)揮自己的才智與專長(zhǎng)編寫組件模塊。

COM是開發(fā)軟件組件的一種方法。組件實(shí)際上是一些小的二進(jìn)制可執(zhí)行程序,它們可以給應(yīng)用程序,操作系統(tǒng)以及其他組件提供服務(wù)。開發(fā)自定義的COM組件就如同開發(fā)動(dòng)態(tài)的,面向?qū)ο蟮腁PI(應(yīng)用程序調(diào)用系統(tǒng)功能的接口)。多個(gè)COM對(duì)象可以連接起來形成應(yīng)用程序或組件系統(tǒng)。并且組件可以在運(yùn)行時(shí)刻,在不被重新鏈接或編譯應(yīng)用程序的情況下被卸下或替換掉。Microsoft的許多技術(shù),如ActiveX(根據(jù)微軟權(quán)威的軟件開發(fā)指南MSDN(Microsoft Developer Network)的定義,ActiveX插件以前也叫做OLE控件或OCX控件,它是一些軟件組件或?qū)ο?#xff0c;可以將其插入到WEB網(wǎng)頁(yè)或其它應(yīng)用程序中), DirectX(DirectX并不是一個(gè)單純的圖形API,它是由微軟公司開發(fā)的用途廣泛的API,它包含有Direct Graphics(Direct 3D+Direct Draw)、Direct Input、Direct Play、Direct Sound、Direct Show、Direct Setup、Direct Media Objects等多個(gè)組件,它提供了一整套的多媒體接口方案。只是其在3D圖形方面的優(yōu)秀表現(xiàn),讓它的其它方面顯得暗淡無光。DirectX開發(fā)之初是為了彌補(bǔ)Windows 3.1系統(tǒng)對(duì)圖形、聲音處理能力的不足,而今已發(fā)展成為對(duì)整個(gè)多媒體系統(tǒng)的各個(gè)方面都有決定性影響的接口)以及OLE(OLE是指與對(duì)象鏈接和嵌入有關(guān)的技術(shù),包括容器、服務(wù)器、就地編輯、拖放和彩單合并等。在應(yīng)用程序之間共享的一大塊數(shù)據(jù)稱為一個(gè)OLE對(duì)象,能夠包含OLE對(duì)象的應(yīng)用程序稱為OLE容器,而允許自己的數(shù)據(jù)被包含到其他應(yīng)用程序中的程序稱為OLE服務(wù)器)等都是基于COM而建立起來的。并且Microsoft的開發(fā)人員也大量使用COM組件來定制他們的應(yīng)用程序及操作系統(tǒng)。

COM所含的概念并不止是在Microsoft Windows操作系統(tǒng)下才有效。COM并不是一個(gè)大的API(用標(biāo)準(zhǔn)的定義來講,API就是Windows的32位應(yīng)用程序編程接口,是一系列很復(fù)雜的函數(shù),消息和結(jié)構(gòu),它使編程人員可以用不同類型的編程語(yǔ)言編制出的運(yùn)行在Windows95 和Windows NT操作系統(tǒng)上的應(yīng)用程序。),它實(shí)際上象結(jié)構(gòu)化編程及面向?qū)ο缶幊谭椒菢?#xff0c;也是一種編程方法。在任何一種操作系統(tǒng)中,開發(fā)人員均可以遵循“COM方法”。

一個(gè)應(yīng)用程序通常是由單個(gè)的二進(jìn)制文件組成的。當(dāng)編譯器生成應(yīng)用程序之后,在對(duì)下一個(gè)版本重新編譯并發(fā)行新生成的版本之前,應(yīng)用程序一般不會(huì)發(fā)生任何變化。操作系統(tǒng),硬件及客戶需求的改變都必須等到整個(gè)應(yīng)用程序被重新生成。

目前這種狀況已經(jīng)發(fā)生變化。開發(fā)人員開始將單個(gè)的應(yīng)用程序分隔成單獨(dú)多個(gè)獨(dú)立的部分,也既組件。這種做法的好處是可以隨著技術(shù)的不斷發(fā)展而用新的組件取代以有的組件。此時(shí)的應(yīng)用程序可以隨新組件不斷取代舊的組件而漸趨完善。而且利用已有的組件,用戶還可以快速的建立全新的應(yīng)用。

傳統(tǒng)的做法是將應(yīng)用程序分割成文件,模塊或類,然后將它們編譯并鏈接成一個(gè)單模應(yīng)用程序。(靜態(tài)的鏈接,文件擴(kuò)展名為.obj,在進(jìn)程內(nèi)實(shí)現(xiàn)的)它與組件建立應(yīng)用程序的過程(稱為組件構(gòu)架)有很大的不同。一個(gè)組件同一個(gè)微型應(yīng)用程序類似,即都是已經(jīng)編譯鏈接好并可以使用的二進(jìn)制代碼,應(yīng)用程序就是由多個(gè)這樣的組件打包而得到的。單模應(yīng)用程序只有一個(gè)二進(jìn)制代碼模塊。自定義組件可以在運(yùn)行時(shí)刻同其他的組件連接起來以構(gòu)成某個(gè)應(yīng)用程序。在需要對(duì)應(yīng)用程序進(jìn)行修改或改進(jìn)時(shí),只需要將構(gòu)成此應(yīng)用程序的組件中的某個(gè)用新的版本替換掉即可(動(dòng)態(tài)的鏈接,文件擴(kuò)展名為.dll,是在進(jìn)程外實(shí)現(xiàn)的)。

COM即組件對(duì)象模型,是關(guān)于如何建立組件以及如何通過組件建立應(yīng)用程序的一個(gè)規(guī)范,說明了如何可動(dòng)態(tài)交替更新組件。

COM是一種說明如何建立可動(dòng)態(tài)互變組件的規(guī)范,此規(guī)范提供了為保證能夠互操作,客戶和組件應(yīng)遵循的一些二進(jìn)制和網(wǎng)絡(luò)標(biāo)準(zhǔn)。通過這種標(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è)組件來替換原來的那個(gè)。其次,由于組件是相對(duì)應(yīng)用程序獨(dú)立的部件,我們可以在不同的程序中使用同一個(gè)組件而不會(huì)產(chǎn)生任何問題,軟件的可重用性將大大的得到增強(qiáng)。第三,隨著網(wǎng)絡(luò)帶寬及其重要性的提高,分布式網(wǎng)絡(luò)應(yīng)用程序毫無疑問的成為軟件市場(chǎng)上越來越重要的買點(diǎn)。組件價(jià)構(gòu)可以使得開發(fā)這類應(yīng)用程序的過程得以簡(jiǎn)化。

DCOM是微軟與其他業(yè)界廠商合作提出的一種分布組件對(duì)象模型,它是COM在分布計(jì)算方面的自然延續(xù),為分布在網(wǎng)絡(luò)不同節(jié)點(diǎn)的兩個(gè)COM組件提供了互操作的基礎(chǔ)結(jié)構(gòu)。DCOM增強(qiáng)COM的分布處理性能,支持多種通信協(xié)議,加強(qiáng)組件通信的安全保障,把基于認(rèn)證Internet安全機(jī)制同基于Windows NT的C2級(jí)安全機(jī)制集成在一起。但從系統(tǒng)內(nèi)部的實(shí)現(xiàn)機(jī)制而言,DCOM所采用的技術(shù)仍符合圖1所示的COM模式。
  DCOM自動(dòng)建立連接、傳輸信息并返回來自遠(yuǎn)程組件的答復(fù)。DCOM組件中的作用有如PC機(jī)間通信的PCI和ISA總線,負(fù)責(zé)各種組件之間的信息傳遞,如果沒有DCOM,則達(dá)不到分布計(jì)算環(huán)境的要求。微軟通過納入事務(wù)處理服務(wù)、更容易的編程以及對(duì)Unix和其它平臺(tái)的支持?jǐn)U充了DCOM
  建立DCOM時(shí)和使用COM建立對(duì)象的方式是相同的,只需再加入一個(gè)機(jī)器名稱的參數(shù)。如果COM通過Windows API的CoGetClassObject建立對(duì)象,只需再輸入機(jī)器名稱的參數(shù)即可在遠(yuǎn)程指定的計(jì)算機(jī)中建立對(duì)象,并且取得指定接口的信息。它構(gòu)造于RPC的技術(shù)之上,并且使用TCP/IP作為網(wǎng)絡(luò)通信協(xié)議。

什么是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),它通過操作系統(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é)合起來,繼承了它們的絕大多數(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ù)載平衡特性并不需要編寫代碼來支持,客戶程序和組件程序都可以按通常的方式實(shí)現(xiàn)。獲得負(fù)載平衡特性并不是用程序設(shè)計(jì)的方式來實(shí)現(xiàn)的,而是通過配置實(shí)現(xiàn)分布式應(yīng)用程序的負(fù)載平衡,如上所講的隊(duì)列服務(wù),其實(shí)也反映了一種負(fù)載平衡。

(1) 真正的異步通訊。COM+底層提供了隊(duì)列組件服務(wù),這使客戶和組件有可能在不同的時(shí)間點(diǎn)上協(xié)同工作,COM+應(yīng)用無須增加代碼就可以獲得這樣的特性。

??? (2) 事件服務(wù)。新的事件機(jī)制使事件源和事件接收方實(shí)現(xiàn)事件功能更加靈活,利用系統(tǒng)服務(wù)簡(jiǎn)化了事件模型,避免了COM可連接對(duì)象機(jī)制的瑣碎細(xì)節(jié)。

???? (3) 可伸縮性。COM+的可伸縮性來源于多個(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)用提供了一套完整的解決方案。

總結(jié)

以上是生活随笔為你收集整理的COM、COM+和DCOM的定义和区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。