COM/DCOM技術(shù)及應用 COM/DCOM技術(shù)及應用

COM/DCOM技術(shù)及應用

  • 期刊名字:玉溪師范學(xué)院學(xué)報
  • 文件大?。?50kb
  • 論文作者:蘭景英,劉玓
  • 作者單位:電子科技大學(xué)
  • 更新時(shí)間:2020-06-12
  • 下載次數:次
論文簡(jiǎn)介

玉溪師范學(xué)院學(xué)報第20卷2004年第8期Jourmal of Yuxi Teachers College Vol 20 No 8 Aug 2004COM/DCOM技術(shù)及應用蘭景英劉玓(電子科技大學(xué)計算機科學(xué)與工程學(xué)院,四川成都610054)[關(guān)鍵詞]COM;DCOM;接口;組件;對象;分布式[摘要]介紹了 COM/DCOM的技術(shù)原理,分析其標準、結構、特點(diǎn)及其應用,提出了基于COM的聊天室設計模型[中圖分類(lèi)號]TP393[文獻標識碼]A[文章編號]1009-9506(2004)08-0051-03COM/DCOM technology and applicationLAN Jin-gying LIU DiCollege of Computer Science and Engineering, UEST of China Chengdu 610054)ey Words: COM; DCOM; Interface; Module; Object; DistributedAbstract: In order to meet that need of the large - scale and complicated development of distributedapplication as the distributed technology standard of component model COM/DCOM technologies are usedwidely, In this paper, we introduce the theory of COM/DCOM, and analyze the criterion, structure.haracteristic and give a chat model based on COMcoM( Component Object Model)是 Microsoft提出的一種基于二進(jìn)制標準,與編程語(yǔ)言無(wú)關(guān)的軟件構架,它使各軟件組件可以用一種統一的方式進(jìn)行交互.COM技術(shù)擴展了對象的功能,描述了程序員如何生成可重用對象,允許不同程序設計語(yǔ)言實(shí)現程序之間交互操作.COM組件程序分為兩種:一種是進(jìn)程內組件,它一般是一個(gè)動(dòng)態(tài)連接庫DLL;另一種是進(jìn)程外組件,它一般是一個(gè)可執行EXE在分布式環(huán)境下實(shí)現COM組件的分布式調用也是COM技術(shù)的關(guān)鍵, Microsoft提出了DCOM技術(shù)實(shí)現COM組件的遠程調用1COM組件技術(shù)1.1概述COM組件是可獨立發(fā)布的二進(jìn)制組件,在 Windows平臺上為DLL或者 EXE. COM對象是客戶(hù)程序進(jìn)行交互的實(shí)體,通過(guò)COM接口提供服務(wù),符合面向對象的基本概念COM接口是一組邏輯相關(guān)的函數的集合其函數也被稱(chēng)為接口成員函數COM接口是客戶(hù)與對象之間的協(xié)議,對象實(shí)現COM接口,客戶(hù)使用COM接口.在COM中,接口就是一切個(gè)COM組件或是DLL文件,或是一個(gè)EXE文件,一個(gè)組件程序可以包含多個(gè)COM對象,每個(gè)COM對象可以實(shí)現多個(gè)接口.當另外的組件或組件的客戶(hù)程序調用組件的功能時(shí),它首先創(chuàng )建一個(gè)COM對象或者通過(guò)其他途徑獲得COM對象,然后通過(guò)該對象所實(shí)現的COM接口調用它所提供的服務(wù).1.2COM接口COM對象通過(guò)接口來(lái)顯示功能,接口是COM對象與外部世界的一個(gè)綁定約定對于COM而言,接口是一個(gè)包含一個(gè)函數指針數組的內存結構,每個(gè)數組元素包含的是一個(gè)由COM組件所實(shí)現的函數的地址COM對象的接口均由一個(gè)共同的祖先 IUnknown,即所有的接口均從 IUnknown派生. IUnknown包含三個(gè)函數,分別是 QueryInterface、 AddRef、 Release. Query Interfa這是一個(gè)非常重要的特性,因為我們能通過(guò)COM對象的任中國煤化工派生的其他接口ce查詢(xún)到它的其他任何接口.接口的身份用接口I來(lái)標識,這是一個(gè)全世界惟CNMHG對象ID,即GUD氍收稿日期]2004-06-19[作者簡(jiǎn)介]蘭景英(1975-),女,四川隆昌人,碩士研究生,主要研究方向:COM技術(shù)52玉溪師范學(xué)院學(xué)報Add Ref用于增加引用計數, Release用于減少引用計數,接口指針的生命期管理總是通過(guò)建立在每個(gè)COM接口上的 AddRef和 Release方法來(lái)實(shí)現由于接口的方法是一組函數,因此為了確保調用者通過(guò)接口能正確調用它所需要的方法,必須確保接口的不變.COM對象允許實(shí)現多個(gè)接口,增加的功能由新的接口實(shí)現只要我們遵守接口不變原則(即方法名稱(chēng)參數不變),就可以自由修改方法內部的實(shí)現COM對象的接口是對象與其客戶(hù)聯(lián)系的紐帶由于COM是與語(yǔ)言無(wú)關(guān)的,表示一個(gè)接口的內存塊必須具有一定的標準結構COM定義了接口的二進(jìn)制格式,有了這種標準格式的定義,客戶(hù)可以不管COM對象的編程語(yǔ)言就能正確地調用它的方法客戶(hù)的接口指針指向對象中的內部指針,該內部指針指向包含接口中各方法指針的 Vtable表通常我們把接口函數表稱(chēng)為虛函數表( Virtual function table- vtable),指向 Vtable的指針為 pOtable,則COM接口的結構如圖1所示:vtablepotable接口指針指針指針函數1指針函數2對象o。oe1COM接口的結構1.3COM對象和COM組件COM對象是COM組件提供給客戶(hù)以對象形式封裝起來(lái)的實(shí)體,是客戶(hù)程序與組件程序通信的主體,要求對其進(jìn)行標識在COM規范中,每個(gè)對象有128位的全局惟一標識符GUID來(lái)惟一標識稱(chēng)為 CLSID客戶(hù)程序通過(guò) CLSID進(jìn)行對象的創(chuàng )建和初始化工作COM組件實(shí)際上是一個(gè)C++類(lèi),而接口都是純虛類(lèi)COM組件有三個(gè)最基本的接口類(lèi),分別是IUnknown、 IClassFactory、 IDispatch. COM規范規定任何組件、任何接口都必須從 IUnknown繼承. ClassFactory的作用是創(chuàng )建COM組件 IDispatch是調度接口,為客戶(hù)和組件提供了另外一種通信方式,使COM組件可以通過(guò)一個(gè)標準的接口提供它所支持的服務(wù)CoM應用基于客戶(hù)/服務(wù)器模型,COM組件向客戶(hù)提供服務(wù).COM組件按照代碼模塊的結構和代碼模塊與客戶(hù)進(jìn)程間的關(guān)系,可分為三種類(lèi)型:進(jìn)程內組件:進(jìn)程類(lèi)組件是以DLL形式被裝入到客戶(hù)的進(jìn)程空間中的其優(yōu)點(diǎn)在于應用者訪(fǎng)問(wèn)它時(shí),沒(méi)有必要進(jìn)行環(huán)境切換,以獲得最快的速度,但它不能作為一個(gè)獨立存在的應用程序運行.(2)本地組件:本地組件是一個(gè)可執行的EXE應用程序,在客戶(hù)機上作為一個(gè)獨立的進(jìn)程來(lái)運行(3遠程組件遠程組件是運行在一個(gè)通過(guò)網(wǎng)絡(luò )連接到客戶(hù)端的獨立的機器上,通過(guò)DCOM運行在另一個(gè)進(jìn)程中1.4COM的特性面向對象系統的三個(gè)最基本的特性分別是:封裝性、多態(tài)性和可重用性COM對象的封裝特性是很徹底的,所有的對象狀態(tài)信息必須通過(guò)接口才能訪(fǎng)問(wèn);COM的多態(tài)性完全通過(guò)接口體現出來(lái),而且分別在三個(gè)層次上體現了多態(tài)性:接口成員函數、單個(gè)接口、一組接口;COM的重用性是建立于二進(jìn)制代碼一級的.COM除了具有基本的面向對象特性,如封裝性、多態(tài)性等之外,還具有如下關(guān)鍵特性:(1)語(yǔ)言無(wú)關(guān)性:COM標準不是面向源代碼級的標準,而是采用一種基于二進(jìn)制代碼級的標準.COM規范的定義不依賴(lài)于特定的語(yǔ)言,編寫(xiě)組件所使用的語(yǔ)言與編寫(xiě)客戶(hù)使用的語(yǔ)言可以不同(2)進(jìn)程透明性:無(wú)論進(jìn)程內組件還是進(jìn)程外組件,其創(chuàng )建過(guò)程和接口調用對用戶(hù)是透明的(3)可重用性:COM的重用包括包容和聚合兩種方式(4)安全特性:COM包括兩種類(lèi)型的安全性,一種是激活專(zhuān)性·早一種懸調用安全性(5)多線(xiàn)程性:按照COM對象的執行環(huán)境,分為套間線(xiàn)中國煤化工1.5分布式COM(DCOM)CNMHGDCOM是COM的擴展,它可以支持在不同計算機上組件對象與客戶(hù)程序之間或者組件對象之間的相互通信,這些計算機可以在局域網(wǎng)內,也可以在廣域網(wǎng)上,甚至通過(guò) Internet進(jìn)行連接DCOM為在網(wǎng)絡(luò )不同節點(diǎn)的組件提供了互操作基礎,它可以作為分布式應用系統的基本框架,客戶(hù)程序與DCOM組件之間形成了蘭景英劉玓: COM/DCOM技術(shù)及應用客戶(hù)/服務(wù)器關(guān)系,再進(jìn)一步還可以構成多層軟件模型.典型的分布式應用系統是,在各個(gè)服務(wù)器上運行一些DCOM組件對象,客戶(hù)程序調用這些組件對象,由它們完成實(shí)際的功能操作.這種結構不僅可減輕客戶(hù)程序的負擔,還可以提高系統的整體性能DcOM組件同時(shí)也是一個(gè)COM組件,具有COM組件的基本特性.從分布式應用系統的角度看,DCOM還具有如下特性:(1)位置透明性:無(wú)論組件和客戶(hù)進(jìn)程是否在同一臺主機,客戶(hù)連接對象和調用對象的形式都完全一樣.(2)可伸縮性:DCOM的結構特點(diǎn)提供了應用系統的靈活配置方案,使應用系統能夠很好地適應需求規模的變化(3)協(xié)議無(wú)關(guān)性:DCOM并不要求專(zhuān)門(mén)的網(wǎng)絡(luò )協(xié)議,用戶(hù)可以在不改變現有網(wǎng)絡(luò )結構的情況下使用分布式應用軟件.(4)平臺獨立性:DCOM把平臺相關(guān)性的二進(jìn)制標準和平臺無(wú)關(guān)的標準隔離開(kāi)來(lái),并且它是建立在 DCE RPC的基礎上,所以DCOM能很好地適應不同的系統平臺.(5)可配置性:使用DCOM模型建立的分布式軟件系統可以很方便地對系統進(jìn)行重新配置,包括服務(wù)器的變化、客戶(hù)程序的自動(dòng)安裝等特性2基于COM組件的聊天室設計實(shí)現交流客戶(hù)端聊天室主要是為終端用戶(hù)提供一個(gè)實(shí)時(shí)信息交流的工具.作為一個(gè)獨立功能模塊可以?huà)旖釉诓煌能浖脚_上.為了滿(mǎn)足模塊功能的可重用性和可擴展性,各部分交流服務(wù)器客戶(hù)端組件均以COM組件的方式實(shí)現聊天室是一個(gè)分布式應用其各部分結構如圖2:圖2聊天室各部分結構圖交流客戶(hù)端包括與用戶(hù)交互的所有功能,提供可視化的用戶(hù)界面以便用戶(hù)觀(guān)察信息及處理數據客戶(hù)端組件是交流客戶(hù)端程序訪(fǎng)問(wèn)交流服務(wù)器的接口,它向交流客戶(hù)端程序屏蔽了下層的聊天室應用協(xié)議以及更底層的通訊協(xié)議.通過(guò)客戶(hù)端組件提供的接口方法,交流客戶(hù)端程序可以通過(guò)方法調用的方式訪(fǎng)問(wèn)到遠程交流服務(wù)器提供的各種交流服務(wù).交流服務(wù)器涉及所有典型的數據處理活動(dòng),包括數據存取修改以及其他與數據庫相關(guān)的任務(wù).交流服務(wù)器管理和滿(mǎn)足由客戶(hù)端組件或其他數據服務(wù)組件提出的服務(wù)請求在交流平臺中,會(huì )有服務(wù)器主動(dòng)向各個(gè)交流客戶(hù)端“推送”消息的情況,并且服務(wù)器與交流客戶(hù)端之間需要建立長(cháng)連接,因此適合采用異步通信方式與服務(wù)器進(jìn)行數據交換.客戶(hù)端組件內部使用IOCP方式接收來(lái)自交流平臺服務(wù)器的數據,為此需在組件中創(chuàng )建單獨的數據接收線(xiàn)程專(zhuān)門(mén)接收服務(wù)器信息,并建立專(zhuān)門(mén)的緩沖區隊列存放接收到的報文數據到達客戶(hù)端組件后,客戶(hù)端組件對服務(wù)器應答報文進(jìn)行初步解析,獲取報文頭部信息,再通過(guò)事件或者消息方式通知交流客戶(hù)端數據到達3結束語(yǔ)自從COM在OLE2中被首次作為底層技術(shù)應用以來(lái),COM一直在不斷發(fā)展作為基于組件對象模型的分布式技術(shù)規范,COM/DCOM已被廣泛采用.COM已經(jīng)滲透到Internet各種軟件中去,包括一些基本的協(xié)議軟件隨著(zhù) nternet和 Internet企業(yè)應用的飛速發(fā)展,COM將以其巨大的潛力滲透到軟件科學(xué)的各個(gè)領(lǐng)域中去參考文獻[1]潘愛(ài)民.COM原理與應用[M].北京:清華大學(xué)出版社,1999[2]潘愛(ài)民COM本質(zhì)論[M].北京:中國電力出版社,1997[3]DaleRogerson.COM技術(shù)內幕[M].楊秀章譯北京清華大學(xué)出版社,199.[4] Thuan L.Thai.DCOM入門(mén)[M].陳逸譯.北京:中國電力出中國煤化工CNMHG

論文截圖
版權:如無(wú)特殊注明,文章轉載自網(wǎng)絡(luò ),侵權請聯(lián)系cnmhg168#163.com刪除!文件均為網(wǎng)友上傳,僅供研究和學(xué)習使用,務(wù)必24小時(shí)內刪除。
欧美AAAAAA级午夜福利_国产福利写真片视频在线_91香蕉国产观看免费人人_莉莉精品国产免费手机影院