COM技術(shù)在畢業(yè)設(shè)計中的應(yīng)用.pdf_第1頁
COM技術(shù)在畢業(yè)設(shè)計中的應(yīng)用.pdf_第2頁
COM技術(shù)在畢業(yè)設(shè)計中的應(yīng)用.pdf_第3頁
COM技術(shù)在畢業(yè)設(shè)計中的應(yīng)用.pdf_第4頁
全文預(yù)覽已結(jié)束

COM技術(shù)在畢業(yè)設(shè)計中的應(yīng)用.pdf.pdf 免費下載

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第18卷第11期 武漢科技學(xué)院學(xué)報 2005年1 1月 JOURNAL OF WUHAN UNIVERSITY OF SCIENCE AND ENGINEERING Vo1I8 NOIl NOV2005 l引言 COM技術(shù)在畢業(yè)設(shè)計中的應(yīng)用 劉曉剛 (十堰廣播電視大學(xué)網(wǎng)絡(luò)中心,湖北十堰442000) 摘要:COM是Microsoft提出的組件標(biāo)準(zhǔn),并在Windows中越來越廣泛地使用它,具有與語言無關(guān)、進(jìn)程透 明、可重用等優(yōu)點。COM是非常有前景的技術(shù)值得甓們?nèi)フ屏?xí)研究。在畢業(yè)設(shè)計中應(yīng)用COM技術(shù)有多 種方式意義主要是豐富畢業(yè)設(shè)計課題 激發(fā)掌生的掌習(xí)興趣、滿足人才市場的多元需要。 關(guān)鍵詞:COM:MIS:DLL:ActiveX:畢業(yè)設(shè)計 中圖分類號:TP312 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-5 J60(2005)-01l704 現(xiàn)在互聯(lián)網(wǎng)上有人質(zhì)疑說大學(xué)生的畢業(yè)設(shè)計沒有什么用,不如取消了將時間留給學(xué)生找工作。本人對這個看法不以 為然,認(rèn)為畢業(yè)設(shè)計作用巨大、意義重大,只能加強(qiáng)不能削弱,現(xiàn)在的情況恰恰說明我們教師的工作沒做好,應(yīng)該加強(qiáng)這方 面的工作,把學(xué)生的注意力吸引回設(shè)計中 認(rèn)真完成最后階段的學(xué)習(xí)。細(xì)細(xì)推敲,學(xué)生不重視畢業(yè)設(shè)計的原因還有很多,其 中一條就是畢業(yè)設(shè)計的選題太單調(diào),多年來大同小異,沒有創(chuàng)新,沿襲著一條老路,沒有吸引力。本人是計算機(jī)專業(yè)老師, 發(fā)現(xiàn)多年來計算機(jī)專業(yè)畢業(yè)設(shè)計集中在MIS(ManagementInformation System,管理信息系統(tǒng))的設(shè)計開發(fā)上,雖然使用了不同 語言和不同工具,但開發(fā)過程和技術(shù)涉及面基本一樣。誠然,這種設(shè)計開發(fā)可以使學(xué)生熟悉軟件工程的開發(fā)過程,培養(yǎng)開發(fā) 工具的使用經(jīng)驗,但從專業(yè)技術(shù)的角度來講,其深度不大而且過于雷同,感覺上是每個人都在走同樣的路,缺乏創(chuàng)新,對拔 尖學(xué)生的煅煉也不夠。在大力推行素質(zhì)化教育的今天,我們應(yīng)該根據(jù)學(xué)生的個體差異設(shè)計多種層次的設(shè)計課題,促進(jìn)畢業(yè)設(shè) 計的多元化。本文就探討如何把COM技術(shù)應(yīng)用于畢業(yè)設(shè)計,開拓畢業(yè)設(shè)計的新思路。 2 COM簡介 2I C0M概念 隨著計算機(jī)科學(xué)的不斷進(jìn)步,軟件系統(tǒng)越來越復(fù)雜,尤其是Intranetlnternet的飛速發(fā)展,軟件應(yīng)用置身于更加廣闊的環(huán) 境中,對軟件設(shè)計提出了更高的要求,在這樣情況下,面向?qū)ο蟮乃枷胍呀?jīng)難以適應(yīng)這種分布式軟件模型,于是組件化程序 設(shè)計思想得到迅速的發(fā)展。為此,OMG(ObjectManagementGroup,對象管理組織)和Microsoft分別提出T CORBA(Common Object Request Breaker Architecture,公共對象請求中介體系結(jié)構(gòu))和COM標(biāo)準(zhǔn),目前CORBA模型主要應(yīng)用于UNIX操作系 統(tǒng)平臺,而COM則主要應(yīng)用于Microsoft Windows操作系統(tǒng)平臺。 COM全名是Component Object Model,中文可譯作“組件對象模型”,微軟提出這個標(biāo)準(zhǔn)后,在Windows中越來越廣泛 地使用它。組件實際上是一些小的二進(jìn)制可執(zhí)行程序,它可給應(yīng)用程序、操作系統(tǒng)和其它組件提供服務(wù),開發(fā)COM組件就 象開發(fā)動態(tài)的、面向?qū)ο蟮腁PI。多個COM對象連接起來可以形成應(yīng)用程序或組件系統(tǒng),并且組件可以在運行時、在不重 新鏈接和編譯應(yīng)用程序的情況下被卸下或替換掉。 COM非常短小精悍、優(yōu)美,可以透明地分布到網(wǎng)絡(luò)上,并且是與語言無關(guān)的,目前已經(jīng)開發(fā)出來的COM組件比其他 任何類型的組件都要多得多。微軟的許多技術(shù),如AdtiveX、DirectX以及OLE都是基于COM建立起來的,而且微軟的開發(fā) 人員也大量使用COM組件來定制他們的應(yīng)用程序及操作系統(tǒng)。我們有理由相信在不久的將來,COM將成為構(gòu)建應(yīng)用程序 收稿日期:20058-25 作者簡介:劉曉剛(1970)。男。高級工程師,研究方向:計算機(jī)應(yīng)用 維普資訊 ll8 武漢科技學(xué)院學(xué)報 2005年 最普遍的方法。 22 COM特性 221 COM組件是完全與語言無關(guān)的 COM規(guī)范的定義不依賴特定的語言,因此,編寫組件對象所使用的語言與編寫客戶程序使用的語言可以不同,只要它 們都能夠生成符合COM規(guī)范的可執(zhí)行代碼即可。COM標(biāo)準(zhǔn)采用的是二進(jìn)制代碼級的標(biāo)準(zhǔn),面向?qū)ο蟮木幊陶Z言采用的是 源代碼級的標(biāo)準(zhǔn)。在面向列象編程語言中定義的對象,只能在同樣的語言中被重復(fù)使用,大大限制了重用。COM對象把OOP 語言中的對象封裝起來,并提供一致的接口,使得它可以被各種不同的語言所使用,COM的語言無關(guān)性實際上為我們跨語 言合作開發(fā)提供了統(tǒng)一標(biāo)準(zhǔn),差不多每種語言在實現(xiàn)時都提供了對COM的支持,如VisualcC+、VisualBasic、Visual J+、 Delphi、C+Builder等都支持COM組件的開發(fā)和使用。 222進(jìn)程透明特性 COM所提供的組件對象在實現(xiàn)時有兩種進(jìn)程模型:進(jìn)程Ix,象和進(jìn)程外對象。進(jìn)程內(nèi)對象在客戶進(jìn)程空問中運行,進(jìn) 程外對象運行在同一機(jī)器上另一個進(jìn)程空間或者在遠(yuǎn)程機(jī)器的進(jìn)程空間中。雖然COM對象有不同的進(jìn)程模型,但這種區(qū)別 對于客戶程序來說是透明的,因此客戶程序在使用組件對象時可以不管這種區(qū)別的存在,遵照COM規(guī)范即可。 223可重用性 可重用性是任何對象模型的實現(xiàn)目標(biāo),尤其對于大型的軟件系統(tǒng),可重用性非常重要。由于COM標(biāo)準(zhǔn)是建立在二進(jìn)制 代碼級的,因此它的可重用性與一般的面向?qū)ο笳Z言如c+中對象的重用過程不同,它使用包容和聚合方式這兩種機(jī)制來實 現(xiàn)對象的重用。 23 COM的前景 在32位Windows版本中,很多系統(tǒng)部件以COM的形式實現(xiàn),除了考慮與以前版本的SDK兼容之外,一些新增的組件 均提供了COM接I;3,這樣做的好處是不僅使各種開發(fā)語言可直接調(diào)用系統(tǒng)提供的功能,也有利于在特殊情況下對組件的單 獨升級,而這種升級對于MSDOS系統(tǒng)和l6位Windows系統(tǒng)是很困難的事。 有一些用COM形式提供的組件模塊極大地豐富了Windows功能,也使Windows功能擴(kuò)展更加靈活,如DirectX多媒體 軟件包、RDO(I emotedataobject,遠(yuǎn)程數(shù)據(jù)對象)和DAO(data accessobject,數(shù)據(jù)訪問對象)數(shù)據(jù)庫訪問對象庫、Inte!netClient SDK等等,COM已成為Windows平臺的組件模型標(biāo)準(zhǔn)。 數(shù)據(jù)庫方面OLE DBADO以COM方式為數(shù)據(jù)訪問提供了一致的接口,已經(jīng)被應(yīng)用于Miciosoft的各種產(chǎn)品中,并且 Microsoft推出的Visual Studio開發(fā)工具套件也提供了OLE DB組件的開發(fā)支持。 Intranet應(yīng)用上現(xiàn)在已經(jīng)不再局限于由一個廠家提供所有的產(chǎn)品,通常是由一些專業(yè)廠商提供其專業(yè)產(chǎn)品,再進(jìn)行系統(tǒng) 集成。從軟件行業(yè)的發(fā)展來看,系統(tǒng)集成所占的比重越來越大,而系統(tǒng)集成的關(guān)鍵問題是軟件之問的接口,如果所有的軟件 都遵從了同樣的接口標(biāo)準(zhǔn),則不同軟件產(chǎn)品之間的交互就有了基礎(chǔ)。顯然COM可以擔(dān)當(dāng)起這樣的標(biāo)準(zhǔn),而且事實上已經(jīng)發(fā) 揮了這樣的作用。另外在目前流行的多層軟件結(jié)構(gòu)模型中,位于中間層的業(yè)務(wù)層主要通過COM組件來實現(xiàn)。 COM在Intei net相關(guān)軟件中的發(fā)展最能體現(xiàn)COM的優(yōu)勢,因為Internet軟件要求有很好的開放性,開放性就意味著要 遵從標(biāo)準(zhǔn),在Windows平臺上,COM就是這樣的標(biāo)準(zhǔn)。由于COM已經(jīng)滲透到Internet各種軟件中,包括一些基本的協(xié)議軟 件,所以隨著Intel net的發(fā)展,COM必將獲得更為廣泛的應(yīng)用。 從上面五個方面來看,COM是很有前途的,當(dāng)然這種前途主要依賴于微軟視窗系統(tǒng)的持續(xù)發(fā)展,列-_于這樣重要的技術(shù), 我們的學(xué)生就應(yīng)該盡早接近甚至掌握它,通過畢業(yè)設(shè)計來接觸和了解COM是一個好辦法。 3 COM在畢業(yè)設(shè)計中的應(yīng)用 31 COM的實現(xiàn) COM是以win32動態(tài)鏈接庫(DLL)或者可執(zhí)行文件(EXE)的形式發(fā)布。這里要澄清些錯誤觀點:首先,COM不是 一種計算機(jī)語言,把COM同某種計算機(jī)語言(如c+、VB)相比較是沒有意義的;其次,不要把DLL和COM做比較,因 為COM技術(shù)正是利用了DLL的動態(tài)鏈接能力才得以實現(xiàn)的,而現(xiàn)在一般認(rèn)為,利用DLL動態(tài)鏈按能力最佳的方法是COM。 可以用來編寫COM的開發(fā)工具很多,有Visual J+、Delphi、c+Builder、VB、VC、MFC、ATL、WTL等等,難度有 大有小,使用VB、Delphi開發(fā)COM難度較小,而采用C、VC、MFC、ATL、WTL開發(fā)較難,對于學(xué)生來說這樣更有挑戰(zhàn) 性,能夠適應(yīng)不同水平層次的要求,豐富畢業(yè)設(shè)計的課題范圍。運行的平臺應(yīng)該是微軟的Windows操作系統(tǒng)系列。 32適合對象 維普資訊 第11期 劉曉剮:COM技術(shù)在畢業(yè)設(shè)計中的應(yīng)用 lJ9 應(yīng)該說COM具有一定難度,并不適合所有的學(xué)生。我們的建議是:計算機(jī)本、??茖W(xué)生,至少掌握了一種常用的開發(fā) 工具,具有一定的開發(fā)和學(xué)習(xí)研究能力,并有充足的設(shè)計時間(一般是兩個月以上),勤奮好學(xué),小組合作開發(fā)更好。推薦 水平較高并熟悉CC+語言的學(xué)生,補(bǔ)一補(bǔ)Windows程序設(shè)計的知識,使用C、VC、MFC,ATL、wTL這些工具來設(shè)計開 發(fā)。有一定困難的可使用VB、Delphi,采用ActiveX控件的方式進(jìn)行(ActiveX的技術(shù)基礎(chǔ)也是COM)。開發(fā)出來的COM 組件最后可集成于管理信息系統(tǒng)或其它應(yīng)用系統(tǒng)之中,這種開發(fā)經(jīng)驗相對于單純的管理信息系統(tǒng)有更好的煅煉作用。 33設(shè)計方式 利用COM技術(shù)進(jìn)行畢業(yè)設(shè)計不能拘泥于固定形式,難度可大可小,既可一人完成也能多人合作,實現(xiàn)方式可以多種多 樣,這里列舉三例: 直接實現(xiàn)一個單獨的完成特定功能的COM組件。這樣的組件應(yīng)當(dāng)具有一定的難度和工程量,如采用CC+來設(shè)計一個 特定功能的組件,主要內(nèi)容是組件,附帶一個簡單的組件客戶程序。畢業(yè)設(shè)計論文圍繞這個組件,講清它的機(jī)理與實現(xiàn)方法。 先完成一個組件,再集成于應(yīng)用軟件中。主要內(nèi)容是應(yīng)用軟件,利用COM技術(shù)來實現(xiàn)一個小功能的組件并集成于應(yīng)用 軟件中,最后制作一個完整的安裝發(fā)布程序,這樣既熟悉了應(yīng)用軟件的開發(fā)方法又學(xué)習(xí)了組件的設(shè)計、調(diào)用與發(fā)布方法。 開發(fā)出一個ActiveX控件再集成于你的系統(tǒng)中。這種方式難度不大,利用VC、VB、Delphi這些可視化工具設(shè)計一個完 成特定功能的ActiveX控件,可以不涉及于COM機(jī)理,又能接觸COM。 33需要注意的問題 331糾纏原理 COM組件的開發(fā)不一定需要對其原理有很深的了解。COM原理是很復(fù)雜的,但COM的開發(fā)并不難。畢業(yè)設(shè)計的時間 有限,不能在這有限的時間內(nèi)過于鉆研原理。應(yīng)直接學(xué)習(xí)COM的運用,還可以采用MFC、ATL、WTL這些模板類庫來簡 化開發(fā)。糾纏于原理陷入其中可能會延誤設(shè)計時間,而且完成設(shè)計后有了應(yīng)用經(jīng)驗再來鉆研原理可能還容易一些。 332 COM與DLL的聯(lián)系區(qū)別 很容易將DLL COM混為一淡,l大I為這兩種技術(shù)者lj能很好地史持 進(jìn)制代碼級別 的重用, f_DLL足COM實峴 的重蟄彤 。Windows DLL的使用很普遮,利用DLL技術(shù)也能進(jìn)行 種砹計,但DLL 0 COM -艮奉 川, 遵循COM 范的DLL何如下缺點: 函數(shù)蕈名問題。DLL 足一個一個的函數(shù),我們通過函數(shù)名木訓(xùn)用函數(shù),如果 個DLL 何霞名的函數(shù)就會發(fā)生問題。 這足一個 好 決的難題,傘 界有很多人 開發(fā)DLL,名 足隨意起的,罩:名小町避免。 編譯器對C+函數(shù)的名稱修飾 兼容問題。對十C+函數(shù),編譯器蟄根據(jù)函數(shù)的參數(shù)信息為它生成修飾名,DLL 庫半1竽的就足這個修飾名,但足小 的編譯器產(chǎn)生修飾的方法f 一樣, 所以你 VC 編 j的DLL : 它的c+編譯 就口J 能用 J,。雖然也町以用extern”C”水強(qiáng)調(diào)使用標(biāo)準(zhǔn)的函數(shù)特性,關(guān)閉修飾功能,但這樣也 失J,c+的單:城和多 態(tài) 功能。 路 問題。把做好的DLL放 白己的目錄下面,別人的程序就找 到,放 系統(tǒng)目錄下,就 J能何取名的問題。真 F的ll件 該口J以放 任何地方甚 口以 奉機(jī) 。 DLL j EXE的依賴問題。EXE對十DLL義件的鏈接一股都足用隱 連接的方 ,就足編程的寸攸指IIJJ用什么DLL, 這種方 很 甲,它 編譯時就把EXE 0 DLL綁 一起J,函數(shù) DLL 載時被按地址 定,所以 重矬DLL時,小能簡 單地用DLL新版奉替換版奉 f 重新編譯, 為DLL中各函數(shù)的地址日J(rèn)能已經(jīng)發(fā)生J 改變。 COM沒有蕈名問題,l太l為根奉小足通過函數(shù)名水調(diào)用函數(shù),I 足通過虛函數(shù)表,白然也 會何函數(shù)名修飾的問題。COM 中需芟防止的足接u標(biāo)識的蕈名,十足它采用j-128位艮的傘局唯一標(biāo)識符(GUID,Globally Unique Identifier), 時間和 砹橋參數(shù)的 礎(chǔ)lN機(jī)生成,可以保 到公兒3400年仍足唯一的。路 問題也卜復(fù)仔4i!, 為COM足通過 灃冊表木找組 件的,放 什么地方都口J 以,B使 別的機(jī)器 行。也小用考慮和EXE的依賴關(guān)系j-,它們一 之間足松敞的結(jié)合 _一 起,口J以輕松的換 組件的一個新版奉,I 用程序混然 覺。口J 見DLL的缺點就足COM的優(yōu)點,COM克服r DLL 仃 的缺陷,從 實蟣J, I 一級的重用。 333 COM與OLE、ActiveX OLE代表的是對象鏈接與嵌入,許多程序員將術(shù)語COM與OLE相互替代使用,其實它們不是同義詞。COM是對象模 型,形成了所有OLE和ActiveX技術(shù)的基礎(chǔ),OLE則是一種技術(shù),如允許您將Excel電子表格放置在Word文檔中。 ActiveX指代一食 十COM的技術(shù),用水使lnternet(特別足worIdWideWeb) 具何交且 。確甲地講,ActiveX摔 件足一個COM對象。 維普資訊 l2O 武漢科技學(xué)院學(xué)報 2005年 4用COM進(jìn)行畢業(yè)設(shè)計的意義 豐富畢業(yè)設(shè)計的課題,讓學(xué)生從單純的MIS中解脫出來,選擇自己愛好的方向。 促使學(xué)生盡早接觸計算機(jī)的前沿知識,激發(fā)學(xué)生的學(xué)習(xí)興趣。COM是軟件開發(fā)未來的主方向,讓學(xué)生接觸COM有利 于激發(fā)他們對COM的興趣,從而去鉆研操作系統(tǒng)原理和系統(tǒng)底層機(jī)制乃至整個系統(tǒng)架構(gòu)的知識,為以后的專業(yè)發(fā)展提供良 好的幫助。 滿足人才市場的多元化需求。做完畢業(yè)設(shè)計后的學(xué)生就進(jìn)入了人才市場,面臨著找工作的壓力。人才市場的需求是多元 化的,除了需要大量軟件工程的程序員之外,還需要一些掌握較深專業(yè)原理和全面知識的工作或研究人員,學(xué)生接觸了COM, 掌握了相關(guān)技術(shù)和經(jīng)驗,對他們找工作求發(fā)展無疑是有好處的。 為學(xué)生以后鉆研COM原理打下堅實基礎(chǔ)。COM是一種重要的、主流的技術(shù),它的原理和機(jī)制是很難懂的,我們不需 要所有的程序員都懂COM,但一部分人是需要深入掌握COM的。學(xué)生僅通過畢業(yè)設(shè)計來學(xué)習(xí)它遠(yuǎn)遠(yuǎn)不夠,經(jīng)歷了這個畢業(yè) 設(shè)計,接觸了相關(guān)知識,有了一定經(jīng)驗,就會去除膽怯,有了勇氣和興趣深入學(xué)習(xí)COM。 有利于發(fā)掘尖子學(xué)生的潛力,為其提供施展的空間。很多尖子學(xué)生不滿足于MIS開發(fā),他們可能早就有了就種開發(fā)經(jīng) 驗,現(xiàn)在需要一種新的動力。我們引入了COM,增加了設(shè)計的難度,也為他們提供了施展個人才華的空間。 參考文獻(xiàn): 1 1 Dale RogersonInside COMM】Microsoft Press,1 J7 【2】 潘愛民COM原理與應(yīng)用M】北京:清華大學(xué)出版l_,l999 3】 Brend Rector,Chris SellsATL InternalsM】Addison Wesley Longman,Inc1999 【4】 Jeff ProsiseProgramming Windows with MFC,Second Editionl M1Microsoft Press,l 999 5】David JKruglinskiInside Visual C+,4th EditionM】Microsol、I Press,l 997 61 侯俊杰深入淺出MFC:第2版MI武漢:華中科技大學(xué)出版1:,2001 【7】 曾偉民,鄧勇剛Visual Basic 60高

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論