• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            天空之城
            new,think,program,happy to live
            posts - 39,comments - 39,trackbacks - 0
            ?
            ????
            ? 比較詳細的文章(轉載) ?
            ? ?
            ? 熟悉面向對象編程和網絡編程的人一定對ActiveX、OLE和COM/DCOM這些概念不會陌生,但是它們之間究竟是什么樣的關系,對許多們還是比較模糊的。 ?
            ? 在具體介紹它們的關系之間,我們還是先明確組件(Component)和對象(Object)之間的區(qū)別。組件是一個可重用的模塊,它是由一組處理過程、數(shù)據封裝和用戶接口組成的業(yè)務對象(Rules ? Object)。組件看起來像對象,但不符合對象的學術定義。它們的主要區(qū)別是: ?
            ? 1)組件可以在另一個稱為容器(有時也稱為承載者或宿主)的應用程序中使用,也可以作為獨立過程使用; ?
            ? 2)組件可以由一個類構成,也可以由多個類組成,或者是一個完整的應用程序; ?
            ? 3)組件為模塊重用,而對象為代碼重用。 ?
            ? 現(xiàn)在,比較流行的組件模型有COM(Component ? Objiect ? Module,對象組件模型)/DCOM(Distributed ? COM,分布式對象組件模型)和CORBA(Common ? Object ? Request ? Broker ? Architecture,公共對象請求代理體系結構)。到這里,已經出現(xiàn)了與本文相關的主題COM,而CORBA與本文無關,就不作介紹。之所以從組件與對象的區(qū)別說起,是想讓大家明確COM和CORBA是處在整個體系結構的最底層,如果暫時對此還不能理解,不妨繼續(xù)往下看,最后在回過頭看一看就自然明白了。 ?
            ? 現(xiàn)在開始闡述ActiveX、OLE和COM的關系。首先,讓大家有一個總體的概念,從時間的角度講,OLE是最早出現(xiàn)的,然后是COM和ActiveX;從體系結構角度講,OLE和ActiveX是建立在COM之上的,所以COM是基礎;單從名稱角度講,OLE、ActiveX是兩個商標名稱,而COM則是一個純技術名詞,這也是大家更多的聽說ActiveX和OLE的原因。 ?
            ? 既然OLE是最早出現(xiàn)的,那么就從OLE說起,自從Windows操作系統(tǒng)流行以來,“剪貼板”(Clipboard)首先解決了不同程序間的通信問題(由剪貼板作為數(shù)據交換中心,進行復制、粘貼的操作),但是剪貼板傳遞的都是“死”數(shù)據,應用程序開發(fā)者得自行編寫、解析數(shù)據格式的代碼,于是動態(tài)數(shù)據交換(Dynamic ? Data ? Exchange,DDE)的通信協(xié)定應運而生,它可以讓應用程序之間自動獲取彼此的最新數(shù)據,但是,解決彼此之間的“數(shù)據格式”轉換仍然是程序員沉重的負擔。對象的鏈接與嵌入(Object ? Linking ? and ? Embedded,OLE)的誕生把原來應用程序的數(shù)據交換提高到“對象交換”,這樣程序間不但獲得數(shù)據也同樣獲得彼此的應用程序對象,并且可以直接使用彼此的數(shù)據內容,其實OLE是Microsoft的復合文檔技術,它的最初版本只是瞄準復合文檔,但在后續(xù)版本OLE2中,導入了COM。由此可見,COM是應OLE的需求而誕生的,所以雖然COM是OLE的基礎,但OLE的產生卻在COM之前。 ?
            ? COM的基本出發(fā)點是,讓某個軟件通過一個通用的機構為另一個軟件提供服務。COM是應OLE的需求而誕生,但它的第一個使用者卻是OLE2,所以COM與復合文檔間并沒有多大的關系,實際上,后來COM就作為與復合文檔完全無關的技術,開始被廣泛應用。這樣一來,Microsoft就開始“染指”通用平臺技術。但是COM并不是產品,它需要一個商標名稱。而那時Microsoft的市場專家們已經選用了OLE作為商標名稱,所以使用COM技術的都開始貼上了OLE的標簽。雖然這些技術中的絕大多數(shù)與復合文檔沒有關系。Microsoft的這一做法讓人產生這樣一個誤解OLE是僅指復合文檔呢?還是不單單指復合文檔?其實OLE是COM的商標名稱,自然不僅僅指復合文檔。但Microsoft自己恐怕無法解釋清楚,這要花費相當?shù)木蜁r間。 ?
            ? 于是,隨著Internet的發(fā)展,在1996年春,Microsoft改變了主意,選擇ActiveX作為新的商標名稱。ActiveX是指寬松定義的、基于COM的技術集合,而OLE仍然僅指復合文檔。當然,ActiveX最核心的技術還是COM。ActiveX和OLE的最大不同在于,OLE針對的是桌面上應用軟件和文件之間的集成,而ActiveX則以提供進一步的網絡應用與用戶交互為主。到這里,大家應該對ActiveX、OLE和COM三者的關系有了一個比較明確的認識,COM才是最根本的核心技術,所以下面的重點COM。 ?
            ? 讓對象模型完全獨立于編程語言,這是一個非常新奇的思想。這一點從C++和Java的對象概念上,我們就能有所了解。但所謂COM對象究竟是什么呢?為了便于理解,可以把COM看作是某種(軟件)打包技術,即把它看作是軟件的不同部分,按照一定的面向對象的形式,組合成可以交互的過程和以組支持庫。COM對象可以用C++、Java和VB等任意一種語言編寫,并可以用DLL或作為不同過程工作的執(zhí)行文件的形式來實現(xiàn)。使用COM對象的瀏覽器,無需關心對象是用什么語言寫的,也無須關心它是以DLL還是以另外的過程來執(zhí)行的。從瀏覽器端看,無任何區(qū)別。這樣一個通用的處理技巧非常有用。例如,由用戶協(xié)調運行的兩個應用,可以將它們的共同作業(yè)部分作為COM對象間的交互來實現(xiàn)(當然,現(xiàn)在的OLE復合文檔也能做到)。為在瀏覽器中執(zhí)行從Web服務器下載的代碼,瀏覽器可把它看作是COM對象,也就是說,COM技術也是一種打包可下載代碼的標準方法(ActiveX控件就是執(zhí)行這種功能的)。甚至連應用與本機OS進行交互的方法也可以用COM來指定,例如在Windows和Windows ? NT中用的是新API,多數(shù)是作為COM對象來定義的??梢?,COM雖然起源于復合文檔,但卻可有效地適用于許多軟件問題,它畢竟是處在底層的基礎技術。用一句話來說,COM是獨立于語言的組件體系結構,可以讓組件間相互通信.
            posted on 2006-05-14 13:06 太極虎~宏 閱讀(1027) 評論(0)  編輯 收藏 引用
            大香伊人久久精品一区二区| 熟妇人妻久久中文字幕| 久久亚洲欧美日本精品| 国产成人精品久久一区二区三区av| 精品水蜜桃久久久久久久| 久久综合亚洲色一区二区三区| 国产麻豆精品久久一二三| 成人午夜精品久久久久久久小说| 综合久久精品色| 97久久精品人妻人人搡人人玩| 久久伊人五月天论坛| 777米奇久久最新地址| 亚洲国产天堂久久久久久| 久久婷婷国产麻豆91天堂| 精品久久久久久久国产潘金莲| 99久久免费国产精品热| 伊人久久大香线蕉综合影院首页| 狠狠精品久久久无码中文字幕 | 欧美久久亚洲精品| 99久久99久久久精品齐齐| 久久人人爽人人爽人人片av麻烦 | 亚洲第一永久AV网站久久精品男人的天堂AV| 久久精品国产99国产精品导航| 久久r热这里有精品视频| 亚洲成色www久久网站夜月| 无码乱码观看精品久久| 国产高潮久久免费观看| 99久久国产主播综合精品| 99久久久精品| 国内精品久久久久国产盗摄| 91久久九九无码成人网站| 情人伊人久久综合亚洲| 精品久久久久久久| 2020最新久久久视精品爱 | 囯产极品美女高潮无套久久久 | 少妇久久久久久久久久| 亚洲AV日韩AV永久无码久久| 国产成人精品综合久久久| 精品熟女少妇a∨免费久久| 久久国产免费观看精品| 99久久成人18免费网站|