中間件技術(shù)原理與應(yīng)用_第1頁
中間件技術(shù)原理與應(yīng)用_第2頁
中間件技術(shù)原理與應(yīng)用_第3頁
中間件技術(shù)原理與應(yīng)用_第4頁
中間件技術(shù)原理與應(yīng)用_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、長春工業(yè)大學(xué)中間件技術(shù)原理與應(yīng)用劉 冰長春工業(yè)大學(xué)長春工業(yè)大學(xué)COM技術(shù)的發(fā)展COM技術(shù)的體系結(jié)構(gòu)COM技術(shù)中接口123COM類工廠機制DCOM技術(shù)、COM+技術(shù)、.NET技術(shù)45第3章 COM相關(guān)技術(shù)長春工業(yè)大學(xué)核心概念核心概念COMCOM組件組件:具有:具有一定邏輯功能一定邏輯功能的可執(zhí)行代碼,是組成應(yīng)用程序的構(gòu)件。的可執(zhí)行代碼,是組成應(yīng)用程序的構(gòu)件。COMCOM對象對象:類似:類似C+C+,每一個,每一個COMCOM對象是一個對象是一個特定類的實例特定類的實例,支持一個或,支持一個或多個接口。多個接口。COMCOM接口接口:是一組邏輯上相關(guān)的:是一組邏輯上相關(guān)的函數(shù)集合函數(shù)集合,即接口成

2、員函數(shù),它提供給,即接口成員函數(shù),它提供給客戶各種形式的服務(wù),實現(xiàn)各種功能,是組件與外界交互的通道。客戶各種形式的服務(wù),實現(xiàn)各種功能,是組件與外界交互的通道。COMCOM組件客戶組件客戶:組件的:組件的調(diào)用者調(diào)用者,是應(yīng)用程序中直接與用戶交互的界面和,是應(yīng)用程序中直接與用戶交互的界面和調(diào)用組件的程序框架。調(diào)用組件的程序框架。組件服務(wù)器組件服務(wù)器:通過若干個:通過若干個COMCOM對象來實現(xiàn)應(yīng)用程序所需的對象來實現(xiàn)應(yīng)用程序所需的功能功能。長春工業(yè)大學(xué)COMCOM技術(shù)的體系結(jié)構(gòu)技術(shù)的體系結(jié)構(gòu)COMCOM基礎(chǔ)結(jié)構(gòu)基礎(chǔ)結(jié)構(gòu)COMCOM對象對象COMCOM接口接口COMCOM組件組件COMCOM組件、組

3、件、COMCOM對象和對象和COMCOM接口關(guān)系接口關(guān)系長春工業(yè)大學(xué)COMCOM技術(shù)的體系結(jié)構(gòu)技術(shù)的體系結(jié)構(gòu)COMCOM客戶與組件服務(wù)器之間的交互過程客戶與組件服務(wù)器之間的交互過程客戶客戶應(yīng)用程序應(yīng)用程序COMCOM庫庫服務(wù)器服務(wù)器對象對象A1 1客戶調(diào)用客戶調(diào)用CoCreateInstance(CLSID_Y,IID_A)2 2CLSID_XCLSID_YC:Svr1.dllC:Svr2.exe系統(tǒng)注冊表系統(tǒng)注冊表COM定位并實例化服務(wù)器定位并實例化服務(wù)器3 3COM庫將界面庫將界面A的指針返回的指針返回4 4客戶調(diào)用界面客戶調(diào)用界面A的方法的方法長春工業(yè)大學(xué)3.3 COM3.3 COM技術(shù)

4、中的接口(續(xù))技術(shù)中的接口(續(xù)) IUnknownIUnknown接口接口COMCOM定義的每一個接口都必須定義的每一個接口都必須從從IUnknownIUnknown接口繼承接口繼承而來。而來。IUnknownIUnknown接口具有接口具有生存期控制生存期控制和和接口查詢接口查詢功能。功能。QueryInterfaceQueryInterface、AddRefAddRef和和ReleaseRelease,共同完成接口的,共同完成接口的自自管理管理任務(wù)。任務(wù)。QueryInterfaceQueryInterface函數(shù)函數(shù)用于查詢用于查詢COMCOM對象的其他接口指針,對象的其他接口指針,實現(xiàn)

5、接口實現(xiàn)接口查詢功能查詢功能。函數(shù)函數(shù)AddRefAddRef和和ReleaseRelease用于對引用計數(shù)進行操作,從而控用于對引用計數(shù)進行操作,從而控制對象制對象的的生存周期生存周期。長春工業(yè)大學(xué)3.3 COM3.3 COM技術(shù)中的接口(續(xù))技術(shù)中的接口(續(xù)) 引用計數(shù)引用計數(shù)COMCOM采用采用“引用計數(shù)引用計數(shù)”技術(shù)來解決技術(shù)來解決內(nèi)存管理內(nèi)存管理的問題的問題, ,它可以有效地控制它可以有效地控制對象的對象的生存周期生存周期。每一個每一個COMCOM對象對象都記錄了一個稱為都記錄了一個稱為“引用計數(shù)引用計數(shù)”的數(shù)值,該數(shù)值的含義的數(shù)值,該數(shù)值的含義為有多少個為有多少個有效指針有效指針在

6、引用該在引用該COMCOM對象。對象。當客戶得到了一個指向該對象的當客戶得到了一個指向該對象的接口指針接口指針時,引用計數(shù)值增時,引用計數(shù)值增1 1,用完后,用完后,引用計數(shù)減,引用計數(shù)減1 1。IUnknownIUnknown的接口成員函數(shù)的接口成員函數(shù)AddRefAddRef和和ReleaseRelease分別完成引用計數(shù)的增分別完成引用計數(shù)的增1 1和和減減1 1操作。操作。長春工業(yè)大學(xué)3.3 COM3.3 COM技術(shù)中的接口(續(xù))技術(shù)中的接口(續(xù)) 實現(xiàn)引用計數(shù)實現(xiàn)引用計數(shù)按照按照COMCOM規(guī)范,一個規(guī)范,一個COMCOM組件可以實現(xiàn)組件可以實現(xiàn)多個多個COMCOM對象對象,并且每個

7、,并且每個COMCOM對象對象又可以支持又可以支持多個多個COMCOM接口接口,這種層次結(jié)構(gòu)為實現(xiàn)引用計數(shù)提供了多種,這種層次結(jié)構(gòu)為實現(xiàn)引用計數(shù)提供了多種選擇方案。選擇方案。COMCOM組件組件一級實現(xiàn)引用計數(shù)。一級實現(xiàn)引用計數(shù)。設(shè)置一個針對整個組件全局的引用計數(shù)。設(shè)置一個針對整個組件全局的引用計數(shù)。計數(shù)分辨率太粗。計數(shù)分辨率太粗。COMCOM對象對象一級實現(xiàn)引用計數(shù)。一級實現(xiàn)引用計數(shù)。利用成員變量,為每個利用成員變量,為每個COMCOM對象設(shè)置一個引用計數(shù)。對象設(shè)置一個引用計數(shù)。組件程序應(yīng)保持一份有效對象的紀錄。組件程序應(yīng)保持一份有效對象的紀錄。接口接口一級實現(xiàn)引用計數(shù)。一級實現(xiàn)引用計數(shù)。三

8、級計數(shù)控制。三級計數(shù)控制。計數(shù)分辨率太細。計數(shù)分辨率太細。長春工業(yè)大學(xué)3.3 COM3.3 COM技術(shù)中的接口(續(xù))技術(shù)中的接口(續(xù)) 引用計數(shù)規(guī)則引用計數(shù)規(guī)則函數(shù)的參數(shù)中使用接口變量。函數(shù)的參數(shù)中使用接口變量。局部接口指針變量。局部接口指針變量。全局接口指針變量全局接口指針變量類成員變量為接口指針變量。類成員變量為接口指針變量。一般性原則:一般性原則:在順序執(zhí)行過程中,如果要對一個接口指針變量賦值,則對賦值在順序執(zhí)行過程中,如果要對一個接口指針變量賦值,則對賦值后的接口指針變量調(diào)用后的接口指針變量調(diào)用AddRefAddRef,并且,如果賦值前的接口指針,并且,如果賦值前的接口指針變量還沒有結(jié)

9、束,則賦值前必須對它調(diào)用變量還沒有結(jié)束,則賦值前必須對它調(diào)用ReleaseRelease以便先結(jié)束它以便先結(jié)束它的使用。的使用。如果要結(jié)束使用一個接口指針變量,以后不再用到它了,則調(diào)用如果要結(jié)束使用一個接口指針變量,以后不再用到它了,則調(diào)用RealeaseRealease函數(shù)。函數(shù)。長春工業(yè)大學(xué)3.3 COM3.3 COM技術(shù)中的接口(續(xù))技術(shù)中的接口(續(xù)) 接口查詢接口查詢按照按照COMCOM規(guī)范,一個規(guī)范,一個COMCOM對象對象可以實現(xiàn)多個接口,客戶程序可以在可以實現(xiàn)多個接口,客戶程序可以在運行運行時刻時刻對對COMCOM對象的接口進行詢問。對象的接口進行詢問。當客戶創(chuàng)建一個當客戶創(chuàng)建一

10、個COMCOM對象后,創(chuàng)建函數(shù)會返回一個對象后,創(chuàng)建函數(shù)會返回一個接口指針接口指針,通過,通過QueryInterfaceQueryInterface函數(shù)就可獲得該對象所支持的任何一個接口指針。函數(shù)就可獲得該對象所支持的任何一個接口指針。函數(shù)說明:函數(shù)說明:HRESULT QueryInterfaceHRESULT QueryInterface(inREFIID iidinREFIID iid,outvoid outvoid * * * * ppv)ppv)輸入?yún)?shù)輸入?yún)?shù)iidiid:接口標識符:接口標識符輸出參數(shù)輸出參數(shù)ppvppv:查詢得到的結(jié)果接口指針:查詢得到的結(jié)果接口指針長春工業(yè)大

11、學(xué)3.3 COM3.3 COM技術(shù)中的接口(續(xù))技術(shù)中的接口(續(xù)) 接口查詢返回值接口查詢返回值HRESULT HRESULT QueryInterfaceQueryInterface( inREFIIDinREFIID iidiid, outvoidoutvoid * * * * ppvppv) )S_OKS_OK,查到了查到了指定的接口,接口指針存放在指定的接口,接口指針存放在ppvppv輸出參數(shù)中;輸出參數(shù)中;E_NOINTERFACEE_NOINTERFACE,對象不支持對象不支持所指定的接口,所指定的接口,* *ppvppv為為NULLNULL;E_UNEXPECTEDE_UNEXP

12、ECTED,發(fā)生了,發(fā)生了意外錯誤意外錯誤,* *ppvppv為為NULLNULL。長春工業(yè)大學(xué)3.3 COM3.3 COM技術(shù)中的接口(續(xù))技術(shù)中的接口(續(xù)) 接口原則接口原則每個對象的每個對象的IUnknownIUnknown接口接口指針是指針是唯一的唯一的。接口接口自反性自反性。接口接口對稱性對稱性。接口接口傳遞性傳遞性。接口查詢接口查詢時間無關(guān)性時間無關(guān)性。長春工業(yè)大學(xué)3.3 COM3.3 COM技術(shù)中的接口(續(xù))技術(shù)中的接口(續(xù)) IDispatchIDispatch接口接口&QueryInterface&AddRef&Release&GetTypeI

13、nfoCount&GetTypeInfo&GetIDsOfNames&InvokepVtbl&Function1&Function2&Function3654Function1Function2Function3&QueryInterface&AddRef&Release&GetTypeInfoCount&GetTypeInfo&GetIDsOfNames&InvokeDISPID 函數(shù)名稱長春工業(yè)大學(xué)3.3 COM3.3 COM技術(shù)中的接口(續(xù))技術(shù)中的接口(續(xù)) 雙重接口雙重接口&

14、;QueryInterface&AddRef&Release&GetTypeInfoCount&GetTypeInfo&GetIDsOfNames&Invoke654Function1Function2Function3DISPID 函數(shù)名稱&QueryInterface&AddRef&Release&GetTypeInfo&Invoke&Function1&Function2&Function3&GetTypeInfoCount&GetIDsOfNames長春工業(yè)大

15、學(xué)進程進程進程進程是一個正在運行的程序,它有單獨的是一個正在運行的程序,它有單獨的內(nèi)存內(nèi)存地址空間,擁有自己的一地址空間,擁有自己的一些些系統(tǒng)資源系統(tǒng)資源。進程內(nèi)組件進程內(nèi)組件:動態(tài)連接庫方式動態(tài)連接庫方式。客戶調(diào)用組件程序的服務(wù)時,會把組件??蛻粽{(diào)用組件程序的服務(wù)時,會把組件程序裝入到自己的進程中,即客戶程序和組件程序運行在程序裝入到自己的進程中,即客戶程序和組件程序運行在同一進程空同一進程空間間中。中。進程外組件進程外組件:EXEEXE形式形式。組件程序在被調(diào)用時有其自己的進程空間,即。組件程序在被調(diào)用時有其自己的進程空間,即客戶程序和組件程序運行在客戶程序和組件程序運行在不同的進程空間不

16、同的進程空間中。中。COMCOM采用采用本地過程調(diào)用本地過程調(diào)用和和遠程過程調(diào)用遠程過程調(diào)用的方法進行進程之間的通信。的方法進行進程之間的通信。3.4 COM3.4 COM類工廠機制類工廠機制長春工業(yè)大學(xué)通過注冊表管理通過注冊表管理COMCOM對象對象COMCOM規(guī)范使用規(guī)范使用128128位位GUIDGUID來標識來標識COMCOM對象和接口,客戶程序通過對象和接口,客戶程序通過GUIDGUID值來值來創(chuàng)建創(chuàng)建COMCOM對象并與對象進行交互。對象并與對象進行交互。因因位置透明性位置透明性,按照,按照COMCOM規(guī)范,客戶程序通過規(guī)范,客戶程序通過COMCOM庫庫完成對象的創(chuàng)建工作完成對象的

17、創(chuàng)建工作。COMCOM庫通過庫通過系統(tǒng)注冊表系統(tǒng)注冊表所提供的信息進行組件的創(chuàng)建工作。所提供的信息進行組件的創(chuàng)建工作。組件程序組件程序把其實現(xiàn)的把其實現(xiàn)的COMCOM對象對象信息以及信息以及接口接口信息都保存到注冊表中,即信息都保存到注冊表中,即進行進行組件的注冊組件的注冊。3.4 COM3.4 COM類工廠機制(續(xù))類工廠機制(續(xù))長春工業(yè)大學(xué)注冊表注冊表 COMCOM規(guī)范要求規(guī)范要求注冊表必須包含注冊表必須包含COMCOM庫在完成各種操作時所要求的各項庫在完成各種操作時所要求的各項信息。信息。3.4 COM3.4 COM類工廠機制(續(xù))類工廠機制(續(xù))TreeView組件的注冊信息組件的注

18、冊信息CLSID進程內(nèi)組件程序標識符類型庫長春工業(yè)大學(xué)COMCOM組件的注冊操作組件的注冊操作自注冊組件自注冊組件程序與程序與非自注冊組件非自注冊組件程序。程序。進程內(nèi)組件進程內(nèi)組件DLLDLL本身不能直接運行,必須被某個進程本身不能直接運行,必須被某個進程調(diào)調(diào)用才能獲得控制;用才能獲得控制;注冊進程內(nèi)組件的適用工具:注冊進程內(nèi)組件的適用工具:RegSvr32.exeRegSvr32.exe用于注冊的入口函數(shù)為用于注冊的入口函數(shù)為DllRegisterServerDllRegisterServer和和DllUnregisterServerDllUnregisterServer例:注冊例:注冊R

19、egSvr32 C:RegSvr32 C:DictCompDictComp.dllDictCompDictComp.dll 注銷注銷RegSvr32 /u C:RegSvr32 /u C:DictCompDictComp.dllDictCompDictComp.dll進程外組件進程外組件EXEEXE本身是一個可執(zhí)行的程序,可本身是一個可執(zhí)行的程序,可自主完成注冊自主完成注冊過程。過程。必須支持兩個命令行參數(shù)必須支持兩個命令行參數(shù)/ /RegServerRegServer和和/ /UnregServerUnregServer。3.4 COM3.4 COM類工廠機制(續(xù))類工廠機制(續(xù))長春工業(yè)大

20、學(xué)類廠類廠類廠是類廠是COMCOM對象對象的生產(chǎn)基地的生產(chǎn)基地, ,即即“對象廠對象廠”。COMCOM庫通過類廠創(chuàng)建庫通過類廠創(chuàng)建COMCOM對象,類廠與對象,類廠與CLSIDCLSID一一對應(yīng)。一一對應(yīng)。類廠本身也是一個類廠本身也是一個COMCOM對象,支持一個特殊的接口:對象,支持一個特殊的接口:IClassFactoryIClassFactory, ,其其成員函數(shù)成員函數(shù)CreateInstanceCreateInstance 用于用于創(chuàng)建創(chuàng)建COMCOM對象對象。類廠對象本身由類廠對象本身由組件程序組件程序?qū)崿F(xiàn)的實現(xiàn)的引出函數(shù)引出函數(shù)創(chuàng)建創(chuàng)建: :HRESULT DllGetClass

21、Object(const CLSID& clsid, const IID& iid, (void*) ppv);類廠本身類廠本身無無CLSIDCLSID,沒有在系統(tǒng)注冊表中注冊。,沒有在系統(tǒng)注冊表中注冊。COMCOM規(guī)定每一個規(guī)定每一個COMCOM對象類對象類應(yīng)該有一個相應(yīng)的應(yīng)該有一個相應(yīng)的類廠對象類廠對象。3.4 COM3.4 COM類工廠機制(續(xù))類工廠機制(續(xù))長春工業(yè)大學(xué)類廠類廠3.4 COM3.4 COM類工廠機制(續(xù))類工廠機制(續(xù))字典對象類廠ISpellCheckIDictionaryIClassFactory字典組件對象1類廠1對象2類廠2多對象、多類廠組件長

22、春工業(yè)大學(xué)類庫類庫3.4 COM3.4 COM類工廠機制(續(xù))類工廠機制(續(xù))客戶客戶1. DllGetClassObject實例對象實例對象3.創(chuàng)建實例創(chuàng)建實例對象對象類廠對象類廠對象2.創(chuàng)建類創(chuàng)建類廠對象廠對象創(chuàng)建創(chuàng)建COMCOM對象示意圖:對象示意圖:客戶客戶- -引出函數(shù)引出函數(shù)- -類廠對象類廠對象- -用戶對象用戶對象長春工業(yè)大學(xué)3.4 COM3.4 COM類工廠機制(續(xù))類工廠機制(續(xù))COMCOM創(chuàng)建創(chuàng)建函數(shù)函數(shù)COMCOM庫中三個用于庫中三個用于創(chuàng)建組件創(chuàng)建組件的函數(shù):的函數(shù):CoGetClassObjectCoGetClassObjectCoCreateInstanceCo

23、CreateInstanceCoCreateInstanceExCoCreateInstanceEx長春工業(yè)大學(xué)3.4 COM3.4 COM類工廠機制(續(xù))類工廠機制(續(xù)) CoGetClassObjectCoGetClassObject創(chuàng)建一個創(chuàng)建一個類廠類廠HRESULT HRESULT CoGetClassObjectCoGetClassObject(const(const CLSID& CLSID& clsidclsid, , DWORD DWORD dwClsContextdwClsContext, , COSERVERINFO COSERVERINFO * *pSe

24、rverInfopServerInfo, , const IID& const IID& iidiid, ,(IClassFactoryIClassFactory接口)接口) (void (void * * *) )ppvppv););進程內(nèi)組件對象進程內(nèi)組件對象,CoGetClassObject調(diào)用調(diào)用DLLDLL模塊的模塊的DllGetClassObject引出函數(shù)創(chuàng)建類廠;引出函數(shù)創(chuàng)建類廠;進程外組件進程外組件,CoGetClassObject函數(shù)啟動組件進程,一直等到組件進程函數(shù)啟動組件進程,一直等到組件進程它支持的它支持的COM類對象的類廠注冊到類對象的類廠注冊到CO

25、M中。中。長春工業(yè)大學(xué)3.4 COM3.4 COM類工廠機制(續(xù))類工廠機制(續(xù)) CoCreateInstanceCoCreateInstance創(chuàng)建創(chuàng)建COMCOM對象對象HRESULT HRESULT CoCreateInstanceCoCreateInstance(const(const CLSID& CLSID& clsidclsid, , IUnknownIUnknown * *pUnknownOuterpUnknownOuter, , DWORD DWORD dwClsContextdwClsContext, , const IID& const IID&

26、amp; iidiid, , (void (void * * *) )ppvppv););長春工業(yè)大學(xué)3.4 COM3.4 COM類工廠機制(續(xù))類工廠機制(續(xù))CoCreateInstanceCoCreateInstance實現(xiàn)偽碼實現(xiàn)偽碼HRESULT HRESULT CoCreateInstanceCoCreateInstance(const(const CLSID& CLSID& clsid,IUnknownclsid,IUnknown * *pUnknownOuter,DWORDpUnknownOuter,DWORD dwClsContedtdwClsContedt,

27、 , const IID& const IID& iid,voidiid,void * *ppvppv) ) IClassFactoryIClassFactory * *pCFpCF; ; HRESULT hr; HRESULT hr; hr = hr = CoGetClassObjectCoGetClassObject(clsid,dwClsContext,NULL(clsid,dwClsContext,NULL, , IID_IClassFactory,(voidIID_IClassFactory,(void * *) )pCFpCF);); if ( if (FAILED

28、(hrFAILED(hr) return hr; return hr; hr = hr = pCFpCF-CreateInstanceCreateInstance(pUnkOuter,iid,(void(pUnkOuter,iid,(void * *) )ppvppv);); pCFpCF-Release();-Release(); return hr; return hr; 長春工業(yè)大學(xué)3.4 COM3.4 COM類工廠機制(續(xù))類工廠機制(續(xù)) CoCreateInstanceExCoCreateInstanceEx創(chuàng)建創(chuàng)建COMCOM對象對象HRESULT HRESULT CoCreat

29、eInstanceExCoCreateInstanceEx(const(const CLSID& CLSID& clsidclsid, , IUnknownIUnknown * *pUnknownOuterpUnknownOuter, , DWORD DWORD dwClsContextdwClsContext, , COSERVERINFO COSERVERINFO * *pServerInfopServerInfo, , DWORD DWORD dwCountdwCount, , MULTI_QI MULTI_QI * *rgMultiQIrgMultiQI););長春工業(yè)

30、大學(xué)3.4 COM3.4 COM類工廠機制(續(xù))類工廠機制(續(xù))三個創(chuàng)建函數(shù)選用原則三個創(chuàng)建函數(shù)選用原則如果客戶創(chuàng)建如果客戶創(chuàng)建遠程對象遠程對象或者希望一次獲取對象的或者希望一次獲取對象的多個接口指針多個接口指針,則選,則選用用CoCreateInstanceCoCreateInstanceExEx函數(shù);函數(shù);如果客戶希望獲取如果客戶希望獲取類廠對象類廠對象或者要調(diào)用類廠的某些成員函數(shù),則選用或者要調(diào)用類廠的某些成員函數(shù),則選用CoGetClassObjectCoGetClassObject函數(shù);函數(shù);在其他情況下,使用在其他情況下,使用CoCreateInstanceCoCreateInst

31、ance函數(shù)創(chuàng)建對象。函數(shù)創(chuàng)建對象。長春工業(yè)大學(xué)初始化初始化COMCOM庫庫3.4 COM3.4 COM類工廠機制(續(xù))類工廠機制(續(xù)) 客戶程序調(diào)用客戶程序調(diào)用COMCOM庫創(chuàng)建組件對象順序圖庫創(chuàng)建組件對象順序圖長春工業(yè)大學(xué)客戶程序調(diào)用客戶程序調(diào)用COMCOM庫創(chuàng)建組件對象的順序庫創(chuàng)建組件對象的順序通過通過CoCreateInstanceCoCreateInstance調(diào)用調(diào)用CoGetClassObjectCoGetClassObject;COMCOM庫找到庫找到DLLDLL程序并進入進程;程序并進入進程;調(diào)用調(diào)用DllGetClassObjectDllGetClassObject函數(shù);函

32、數(shù);DllGetClassObjectDllGetClassObject創(chuàng)建類廠創(chuàng)建類廠;DllGetClassObjectDllGetClassObject函數(shù)把類廠接口指針函數(shù)把類廠接口指針返回給返回給CoGetClassObjectCoGetClassObject 函數(shù)函數(shù);CoGetClassObjectCoGetClassObject 函數(shù)把類廠接口指針函數(shù)把類廠接口指針返回給返回給CoCreateInstanceCoCreateInstance函數(shù);函數(shù);CoCreateInstanceCoCreateInstance函數(shù)得到類廠后,調(diào)用類廠的對象創(chuàng)建函數(shù)函數(shù)得到類廠后,調(diào)用類廠的

33、對象創(chuàng)建函數(shù)CreateInstanceCreateInstance; ;類廠類廠創(chuàng)建創(chuàng)建COMCOM對象對象;類廠把類廠把COMCOM對象對象返回給返回給CoCreateInstanceCoCreateInstance, CoCreateInstanceCoCreateInstance函數(shù)返回函數(shù)返回COMCOM對象接口指對象接口指針給針給客戶客戶;客戶客戶直接調(diào)用直接調(diào)用COMCOM對象。對象。3.4 COM3.4 COM類工廠機制(續(xù))類工廠機制(續(xù))長春工業(yè)大學(xué)COM/DCOM/COM+COM/DCOM/COM+COMCOM通過為組件提供通過為組件提供二進制二進制標準,定義標準,定義通

34、信接口通信接口,提供,提供動態(tài)鏈接動態(tài)鏈接組件組件的方法,解決了早期組件開發(fā)面臨的問題。把開發(fā)者從的方法,解決了早期組件開發(fā)面臨的問題。把開發(fā)者從“繁瑣的繁瑣的底層底層設(shè)計設(shè)計”和和連通性事務(wù)連通性事務(wù)中解放出來,集中設(shè)計組件。中解放出來,集中設(shè)計組件。DCOMDCOM是一種用于是一種用于分布式分布式組件的組件的規(guī)范和服務(wù)規(guī)范和服務(wù),支持分布式的、面向事務(wù),支持分布式的、面向事務(wù)處理的應(yīng)用程序。處理的應(yīng)用程序。MTSMTS一方面為組件開發(fā)提供一方面為組件開發(fā)提供新的服務(wù)新的服務(wù),如事務(wù)管理、基于角色的安全,如事務(wù)管理、基于角色的安全性、實例激活管理、組件部署與安裝、管理組件配置的管理工具等,性

35、、實例激活管理、組件部署與安裝、管理組件配置的管理工具等,另一方面代表一種另一方面代表一種編程模型編程模型,組件開發(fā)者只需,組件開發(fā)者只需簡單聲明簡單聲明組件需要的服組件需要的服務(wù)即可,合適的務(wù)即可,合適的運行時環(huán)境運行時環(huán)境由由MTSMTS提供。開發(fā)者只需集中精力于提供。開發(fā)者只需集中精力于業(yè)務(wù)邏業(yè)務(wù)邏輯輯。長春工業(yè)大學(xué)COM/DCOM/COM+COM/DCOM/COM+COM+COM+通過把通過把MTSMTS和和DCOMDCOM融合融合在組件服務(wù)套件中,并添加了更多的服務(wù)在組件服務(wù)套件中,并添加了更多的服務(wù),包括對象池、隊列組件和事件模型等,成為核心,包括對象池、隊列組件和事件模型等,成為

36、核心Windows 2000Windows 2000操作操作系統(tǒng)系統(tǒng)的一部分。的一部分。.NET.NET是微軟的下一代組件技術(shù)和應(yīng)用程序是微軟的下一代組件技術(shù)和應(yīng)用程序開發(fā)平臺開發(fā)平臺,允許應(yīng)用程序通,允許應(yīng)用程序通過網(wǎng)絡(luò)進行過網(wǎng)絡(luò)進行通信和共享數(shù)據(jù)通信和共享數(shù)據(jù)。長春工業(yè)大學(xué)3.5 DCOM3.5 DCOM技術(shù)技術(shù)DCOMDCOM(Distributed Component Object Model)Distributed Component Object Model)是是分布式應(yīng)用環(huán)境分布式應(yīng)用環(huán)境中的中的COMCOM技術(shù)。技術(shù)。支持支持不同計算機不同計算機上組件對象與客戶程序之間或者組件

37、對象之間的相互上組件對象與客戶程序之間或者組件對象之間的相互通信。通信。DCOMDCOM把把COMCOM技術(shù)的技術(shù)的進程透明性進程透明性拓展為拓展為位置透明性位置透明性。DCOMDCOM處理了處理了底層網(wǎng)絡(luò)協(xié)議底層網(wǎng)絡(luò)協(xié)議的所有細節(jié),編程人員只需把重點放在應(yīng)用的所有細節(jié),編程人員只需把重點放在應(yīng)用的的業(yè)務(wù)邏輯業(yè)務(wù)邏輯上。上。DCOMDCOM是是COMCOM的的無縫擴展無縫擴展。長春工業(yè)大學(xué)3.5 DCOM3.5 DCOM技術(shù)(續(xù))技術(shù)(續(xù))從從COMCOM轉(zhuǎn)到轉(zhuǎn)到DCOMDCOM客戶程序和組件程序運行在同一進程中客戶程序和組件程序運行在同一進程中進程內(nèi)組件進程內(nèi)組件;客戶程序和組件程序運行在同

38、一計算機的不同進程中客戶程序和組件程序運行在同一計算機的不同進程中本地進本地進程外組件程外組件;客戶程序和組件程序分別運行在不同的計算機上客戶程序和組件程序分別運行在不同的計算機上遠程進程外遠程進程外組件組件,即,即DCOMDCOM。長春工業(yè)大學(xué)3.5 DCOM3.5 DCOM技術(shù)(續(xù))技術(shù)(續(xù))進程內(nèi)組件進程內(nèi)組件客戶與進程內(nèi)組件的通信示意圖客戶與進程內(nèi)組件的通信示意圖客戶客戶組件組件長春工業(yè)大學(xué)3.5 DCOM3.5 DCOM技術(shù)(續(xù))技術(shù)(續(xù))本地進程外組件本地進程外組件客戶與本地進程外組件的通信示意圖客戶與本地進程外組件的通信示意圖客戶客戶COM運行庫運行庫安全安全提供器提供器DCE

39、RPCLPC組件組件COM運行庫運行庫安全安全提供器提供器DCE RPCLPC長春工業(yè)大學(xué)3.5 DCOM3.5 DCOM技術(shù)(續(xù))技術(shù)(續(xù))DCOMDCOM組件組件客戶客戶與與DCOMDCOM組件的通信示意圖組件的通信示意圖客戶客戶COM運行庫運行庫安全安全提供器提供器DCE RPC協(xié)議棧協(xié)議棧組件組件COM運行庫運行庫安全安全提供器提供器DCE RPC協(xié)議棧協(xié)議棧DCOM網(wǎng)絡(luò)協(xié)議網(wǎng)絡(luò)協(xié)議長春工業(yè)大學(xué)3.5 DCOM3.5 DCOM技術(shù)(續(xù))技術(shù)(續(xù)) 相關(guān)內(nèi)容相關(guān)內(nèi)容DCOMDCOM對象的定位對象的定位遠程機器名遠程機器名+CLSID+CLSID列集列集散集散集DCOMDCOM網(wǎng)絡(luò)協(xié)議網(wǎng)絡(luò)

40、協(xié)議對象對象RPCRPC(ORPCORPC),基于),基于DCE RPCDCE RPC協(xié)議。協(xié)議。ORPCORPC建立了一套建立了一套面向?qū)ο竺嫦驅(qū)ο蟮牡倪h程調(diào)用規(guī)范遠程調(diào)用規(guī)范。ORPCORPC仍使用標準的仍使用標準的RPCRPC數(shù)據(jù)包數(shù)據(jù)包,附加上專用于,附加上專用于DCOMDCOM的一些信息的一些信息接接口指針標識符、版本信息和擴展信息??谥羔槝俗R符、版本信息和擴展信息。ORPCORPC協(xié)議已經(jīng)被作為協(xié)議已經(jīng)被作為InternetInternet草案遞交到草案遞交到IETFIETF(InternetInternet工程部)工程部)網(wǎng)絡(luò)數(shù)據(jù)表示法網(wǎng)絡(luò)數(shù)據(jù)表示法NDR長春工業(yè)大學(xué)3.6 CO

41、M+3.6 COM+技術(shù)(續(xù))技術(shù)(續(xù)) MTSMTS介紹介紹MTSMTS(Microsoft Transaction Microsoft Transaction Server),COMServer),COM組件的組件的一致管理系統(tǒng)一致管理系統(tǒng),為,為COMCOM技術(shù)的企業(yè)應(yīng)用提供基本的技術(shù)的企業(yè)應(yīng)用提供基本的組件管理組件管理與與配置環(huán)境配置環(huán)境。在在MTSMTS應(yīng)用中,所有的組件都運行在應(yīng)用中,所有的組件都運行在MTSMTS運行環(huán)境運行環(huán)境中,組件只需實現(xiàn)中,組件只需實現(xiàn)基基本的應(yīng)用邏輯本的應(yīng)用邏輯規(guī)則,由運行環(huán)境負責所有規(guī)則,由運行環(huán)境負責所有系統(tǒng)級應(yīng)用系統(tǒng)級應(yīng)用處理。處理。COM+COM

42、+是是COMCOM、DCOMDCOM和和MTSMTS技術(shù)的集成與發(fā)展,是真正適合于企業(yè)應(yīng)用的技術(shù)的集成與發(fā)展,是真正適合于企業(yè)應(yīng)用的組件技術(shù)。組件技術(shù)。長春工業(yè)大學(xué)3.6 COM+3.6 COM+技術(shù)(續(xù))技術(shù)(續(xù)) MTSMTS應(yīng)用基本結(jié)構(gòu)應(yīng)用基本結(jié)構(gòu)基客戶基客戶組件對象組件對象組件對象組件對象基客戶基客戶組件對象組件對象組件對象組件對象組件對象組件對象組件對象組件對象組件對象組件對象資源資源管理器管理器資源資源管理器管理器資源分發(fā)器資源分發(fā)器長春工業(yè)大學(xué)3.6 COM+3.6 COM+技術(shù)技術(shù)如果要用如果要用COMCOM組件開發(fā)組件開發(fā)企業(yè)一級企業(yè)一級的應(yīng)用系統(tǒng),那么的應(yīng)用系統(tǒng),那么MTS

43、MTS可以提供基本的可以提供基本的組件運行組件運行和和配置環(huán)境配置環(huán)境。MTSMTS為分布式應(yīng)用提供了為分布式應(yīng)用提供了底層的基礎(chǔ)設(shè)施底層的基礎(chǔ)設(shè)施,把應(yīng)用系統(tǒng)的,把應(yīng)用系統(tǒng)的客戶程序客戶程序與應(yīng)與應(yīng)用用組件對象組件對象以及以及各種資源各種資源有機地組織起來。有機地組織起來。MTSMTS使使COMCOM前進了一大步,它為前進了一大步,它為COMCOM注入了許多新的特性,并最終使注入了許多新的特性,并最終使COMCOM成為一個完整的組件體系結(jié)構(gòu)。但成為一個完整的組件體系結(jié)構(gòu)。但COMCOM、DCOMDCOM和和MTSMTS相互之間并不相互之間并不很融洽,難以形成一個整體。很融洽,難以形成一個整體

44、。COM+COM+將這三者有效地統(tǒng)一起來,形成了一個全新的,功能強大的組件將這三者有效地統(tǒng)一起來,形成了一個全新的,功能強大的組件體系結(jié)構(gòu)。體系結(jié)構(gòu)。長春工業(yè)大學(xué)3.6 COM+3.6 COM+技術(shù)(續(xù))技術(shù)(續(xù)) COM+COM+不是不是COMCOM的新版本,而是的新版本,而是COMCOM更高層次上的應(yīng)用更高層次上的應(yīng)用,其底層結(jié)構(gòu)仍以,其底層結(jié)構(gòu)仍以COMCOM為基礎(chǔ),實現(xiàn)了許多面向企業(yè)應(yīng)用的分布式應(yīng)用所需的服務(wù)。為基礎(chǔ),實現(xiàn)了許多面向企業(yè)應(yīng)用的分布式應(yīng)用所需的服務(wù)。COM+COM+不再局限于不再局限于COMCOM的組件技術(shù),更加注重于分布式網(wǎng)絡(luò)應(yīng)用的設(shè)計與的組件技術(shù),更加注重于分布式網(wǎng)絡(luò)

45、應(yīng)用的設(shè)計與實現(xiàn),是一個面向應(yīng)用的實現(xiàn),是一個面向應(yīng)用的高級高級COMCOM運行環(huán)境運行環(huán)境。COM+COM+把組件軟件把組件軟件提升到應(yīng)用層提升到應(yīng)用層,而不再是底層的軟件結(jié)構(gòu)。,而不再是底層的軟件結(jié)構(gòu)。COM+COM+通過操通過操作系統(tǒng)的各種支持,使組件對象模型建立在作系統(tǒng)的各種支持,使組件對象模型建立在應(yīng)用層應(yīng)用層上,把所有組件上,把所有組件的的底層細節(jié)留給操作系統(tǒng)底層細節(jié)留給操作系統(tǒng)。COM+COM+與操作系統(tǒng)的結(jié)合更加與操作系統(tǒng)的結(jié)合更加緊密緊密,通過,通過系統(tǒng)服務(wù)系統(tǒng)服務(wù)為應(yīng)用程序提供全面的為應(yīng)用程序提供全面的服務(wù)。服務(wù)。COM+COM+是是Windows DNAWindows D

46、NA框架中的中間層技術(shù)。框架中的中間層技術(shù)。長春工業(yè)大學(xué)3.6 COM+3.6 COM+技術(shù)(續(xù))技術(shù)(續(xù))Windows DNAWindows DNA(分布式網(wǎng)際應(yīng)用結(jié)構(gòu))(分布式網(wǎng)際應(yīng)用結(jié)構(gòu))三層結(jié)構(gòu)模型及簡化的三層結(jié)構(gòu)模型及簡化的DNADNA結(jié)構(gòu)圖結(jié)構(gòu)圖客戶應(yīng)用客戶應(yīng)用Web客戶客戶表現(xiàn)層表現(xiàn)層中間層中間層IIS和和ASPCOM和和MTSMSMQ數(shù)據(jù)層數(shù)據(jù)層數(shù)據(jù)庫數(shù)據(jù)庫ADO/OLE DBADO/OLE DB、COMTICOMTIFORMS+COM+STORAGE(a) a) 三層結(jié)構(gòu)技術(shù)集成三層結(jié)構(gòu)技術(shù)集成(b) Windows DNA(b) Windows DNA結(jié)構(gòu)結(jié)構(gòu)以以系統(tǒng)服務(wù)

47、系統(tǒng)服務(wù)的形式把原的形式把原先散落的一些技術(shù)綜合先散落的一些技術(shù)綜合起來,并提供簡單的編起來,并提供簡單的編程模型,以直接應(yīng)用層程模型,以直接應(yīng)用層的編程接口為應(yīng)用程序的編程接口為應(yīng)用程序提供服務(wù)。提供服務(wù)。長春工業(yè)大學(xué)3.6 COM+3.6 COM+技術(shù)(續(xù))技術(shù)(續(xù))COM+COM+基本結(jié)構(gòu)基本結(jié)構(gòu)COM+COM+組成結(jié)構(gòu)圖組成結(jié)構(gòu)圖COM+COM+MTSMTSCOM/DCOMCOM/DCOM基于接口的編程模型基于接口的編程模型遠程支持遠程支持基本的組件服務(wù)基本的組件服務(wù)分布式組件服務(wù)分布式組件服務(wù)事務(wù)服務(wù)事務(wù)服務(wù)資源分發(fā)管理資源分發(fā)管理安全模型安全模型易于管理易于管理COM+目錄目錄負載

48、平衡負載平衡內(nèi)存數(shù)據(jù)庫內(nèi)存數(shù)據(jù)庫對象池對象池隊列組件隊列組件新的事件模型新的事件模型組件管理與配置組件管理與配置長春工業(yè)大學(xué)3.6 COM+3.6 COM+技術(shù)(續(xù))技術(shù)(續(xù)) COM+COM+目錄目錄COMCOM和和MTSMTS把組件的所有配置信息都存放在把組件的所有配置信息都存放在WindowsWindows的的系統(tǒng)注冊表系統(tǒng)注冊表中。中。COM+COM+把組件信息保存在一個把組件信息保存在一個數(shù)據(jù)庫數(shù)據(jù)庫中,并提供一個專門針對組件的中,并提供一個專門針對組件的管理管理環(huán)境環(huán)境。既可以通過既可以通過COM+COM+管理程序管理程序檢查或設(shè)置檢查或設(shè)置COM+COM+目錄信息,也可以通過目錄

49、信息,也可以通過COM+COM+提提供的一組供的一組COMCOM接口接口訪問訪問COM+COM+目錄信息。目錄信息。COM+COM+一方面提供了許多一方面提供了許多新的服務(wù)新的服務(wù)和一個一致的和一個一致的管理環(huán)境管理環(huán)境, ,另一方面支持另一方面支持說明性編程模型說明性編程模型。長春工業(yè)大學(xué)3.6 COM+3.6 COM+技術(shù)(續(xù))技術(shù)(續(xù)) 說明性編程模型說明性編程模型開發(fā)人員按盡可能通用的方式開發(fā)組件程序,把一些細節(jié)留到開發(fā)人員按盡可能通用的方式開發(fā)組件程序,把一些細節(jié)留到配置時配置時刻刻再確定。再確定。通過通過管理程序管理程序配置組件的配置組件的屬性屬性來決定組件特性。來決定組件特性。對

50、象環(huán)境對象環(huán)境COM+COM+環(huán)境:體現(xiàn)相同運行服務(wù)功能需求的環(huán)境:體現(xiàn)相同運行服務(wù)功能需求的策略對象集合策略對象集合,其中每一個,其中每一個特定的策略對象成為特定的策略對象成為環(huán)境對象環(huán)境對象。COM+COM+系統(tǒng)在創(chuàng)建每一個系統(tǒng)在創(chuàng)建每一個COM+COM+組件對象時,為每一個對象建立一個組件對象時,為每一個對象建立一個對象對象環(huán)境環(huán)境,并為它分配,并為它分配環(huán)境對象環(huán)境對象,這種技術(shù)被稱為截取技術(shù)。,這種技術(shù)被稱為截取技術(shù)。長春工業(yè)大學(xué)3.6 COM+3.6 COM+技術(shù)(續(xù))技術(shù)(續(xù)) 截取技術(shù)截取技術(shù)組件對象通過組件對象通過說明性屬性說明性屬性指定它的一些基本要求。指定它的一些基本要求

51、。當客戶程序調(diào)用當客戶程序調(diào)用CoCreateInstanceCoCreateInstance函數(shù)時,函數(shù)時,COM+COM+系統(tǒng)檢查客戶代碼是系統(tǒng)檢查客戶代碼是否運行在與對象類否運行在與對象類兼容的兼容的對象環(huán)境中;對象環(huán)境中;若若兼容兼容,不必使用截取技術(shù),直接創(chuàng)建對象并返回其接口引用;,不必使用截取技術(shù),直接創(chuàng)建對象并返回其接口引用;若若不兼容不兼容,則把,則把CoCreateInstanceCoCreateInstance函數(shù)切換到一個兼容的環(huán)境,再創(chuàng)函數(shù)切換到一個兼容的環(huán)境,再創(chuàng)建對象并返回一個建對象并返回一個代理對象代理對象;接口接口方法調(diào)用方法調(diào)用時,代理對象在調(diào)用前和調(diào)用后都要

52、做一些處理,以便時,代理對象在調(diào)用前和調(diào)用后都要做一些處理,以便方法的運行環(huán)境能夠滿足對象的要求。方法的運行環(huán)境能夠滿足對象的要求。長春工業(yè)大學(xué)3.6 COM+3.6 COM+技術(shù)(續(xù))技術(shù)(續(xù)) 截取技術(shù)截取技術(shù)對象對象B B的代理的代理對象對象B存根存根對象對象A的代理的代理對象對象A存根存根對象對象C的代理的代理對象對象C存根存根環(huán)境環(huán)境X X環(huán)境環(huán)境Y Y環(huán)境環(huán)境Z Z環(huán)境環(huán)境W W表示截取表示截取跨環(huán)境調(diào)用示意圖跨環(huán)境調(diào)用示意圖長春工業(yè)大學(xué)3.7 .NET3.7 .NET框架框架.NET.NET是是Microsoft XML Web servicesMicrosoft XML Web

53、 services平臺,允許應(yīng)用程序通過平臺,允許應(yīng)用程序通過InternetInternet進行進行通信和共享數(shù)據(jù)通信和共享數(shù)據(jù)。.NET.NET是是COMCOM技術(shù)的進一步發(fā)展,它擴展了通過技術(shù)的進一步發(fā)展,它擴展了通過任何設(shè)備任何設(shè)備隨時隨地操作數(shù)隨時隨地操作數(shù)據(jù)和進行通信的能力。據(jù)和進行通信的能力。.NET.NET框架使用框架使用分布式計算模型分布式計算模型,并基于,并基于開放標準開放標準將將PCPC與其它與其它智能設(shè)備智能設(shè)備連接在一起。連接在一起。.NET.NET框架為開發(fā)人員提供了一個統(tǒng)一、面向?qū)ο髮哟位?、可擴展的類框架為開發(fā)人員提供了一個統(tǒng)一、面向?qū)ο髮哟位?、可擴展的類庫集(庫

54、集(APIAPI),即統(tǒng)一了微軟當前的),即統(tǒng)一了微軟當前的各種不同類框架各種不同類框架。長春工業(yè)大學(xué)3.7 .NET3.7 .NET技術(shù)(續(xù))技術(shù)(續(xù)) 分層結(jié)構(gòu)分層結(jié)構(gòu)Web Services公共語言運行時(公共語言運行時(Common Language Runtime)對象模型和公共語言規(guī)范對象模型和公共語言規(guī)范組件模型組件模型框架和庫框架和庫(ASP.NET、ADO.NET、Windows Forms交互標準交互標準(SOAP、WSDL)開發(fā)工具開發(fā)工具(Visual Studio.NET).NET.NET框架分層結(jié)構(gòu)框架分層結(jié)構(gòu)長春工業(yè)大學(xué)3.7 .NET3.7 .NET技術(shù)(續(xù))技

55、術(shù)(續(xù)) .NET.NET與與COMCOM.NET.NET框架框架簡化了簡化了COMCOM開發(fā)開發(fā)。.NET.NET框架組件依然是框架組件依然是一種一種COMCOM組件組件。在大型分布式應(yīng)用開發(fā)方面,由于在大型分布式應(yīng)用開發(fā)方面,由于COM+COM+是是.NET.NET框架的一部分,框架的一部分,.NET.NET框架類可框架類可直接訪問直接訪問COM+COM+所提供的服務(wù)。所提供的服務(wù)。長春工業(yè)大學(xué)3.8 COM3.8 COM技術(shù)中的企業(yè)功能服務(wù)技術(shù)中的企業(yè)功能服務(wù)在在Windows 2000Windows 2000操作系統(tǒng)中包含的操作系統(tǒng)中包含的COM+COM+技術(shù)提供了大量技術(shù)提供了大量面

56、向企業(yè)的服面向企業(yè)的服務(wù)務(wù)。面向企業(yè)的功能服務(wù)通過大量的面向企業(yè)的功能服務(wù)通過大量的底層底層COMCOM對象來提供。對象來提供。在在COM+COM+系統(tǒng)中,實現(xiàn)企業(yè)功能的系統(tǒng)中,實現(xiàn)企業(yè)功能的COMCOM對象被作為對象被作為內(nèi)置對象內(nèi)置對象來實現(xiàn)。來實現(xiàn)。長春工業(yè)大學(xué)3.8 COM3.8 COM技術(shù)中的企業(yè)功能服務(wù)(續(xù))技術(shù)中的企業(yè)功能服務(wù)(續(xù)) 使使COMCOM組件具有企業(yè)應(yīng)用特性的方式組件具有企業(yè)應(yīng)用特性的方式使用系統(tǒng)提供的使用系統(tǒng)提供的管理工具管理工具進行進行服務(wù)特性的配置服務(wù)特性的配置。通過在通過在COM+COM+組件中加入具有組件中加入具有企業(yè)功能屬性企業(yè)功能屬性的代碼,當存在特定的

57、功能需的代碼,當存在特定的功能需求時,通過在程序中求時,通過在程序中嵌入代碼嵌入代碼的方式滿足需求。的方式滿足需求。長春工業(yè)大學(xué)3.8 COM3.8 COM技術(shù)中的企業(yè)功能服務(wù)(續(xù))技術(shù)中的企業(yè)功能服務(wù)(續(xù)) 企業(yè)功能服務(wù)企業(yè)功能服務(wù)事務(wù)處理事務(wù)處理安全服務(wù)安全服務(wù)同步服務(wù)同步服務(wù)隊列服務(wù)隊列服務(wù)事件服務(wù)事件服務(wù)內(nèi)存數(shù)據(jù)庫內(nèi)存數(shù)據(jù)庫IMDB IMDB 動態(tài)負載平衡機制動態(tài)負載平衡機制集成管理工具集成管理工具長春工業(yè)大學(xué)應(yīng)用程序(應(yīng)用程序(AP)資源管理器資源管理器(RM)通信資源通信資源管理器管理器(CRM)事務(wù)管理器事務(wù)管理器(TM)TM APIXA+XARM APICRM APITCP/I

58、P3.8 COM3.8 COM技術(shù)中的企業(yè)功能服務(wù)(續(xù))技術(shù)中的企業(yè)功能服務(wù)(續(xù)) 事務(wù)處理事務(wù)處理事務(wù)處理為事務(wù)處理為COMCOM對象對象提供創(chuàng)建、使用事務(wù)以及提交事務(wù)的方法。提供創(chuàng)建、使用事務(wù)以及提交事務(wù)的方法。COM+COM+支持支持MTSMTS的事務(wù)語義的事務(wù)語義,并允許,并允許COM+COM+組件參與非組件參與非MTSMTS事務(wù)環(huán)境管理的事務(wù)環(huán)境管理的事務(wù)。事務(wù)。長春工業(yè)大學(xué)3.8 COM3.8 COM技術(shù)中的企業(yè)功能服務(wù)(續(xù))技術(shù)中的企業(yè)功能服務(wù)(續(xù)) 安全服務(wù)安全服務(wù)COM+COM+采用采用基于角色基于角色的安全模型,根據(jù)用戶的角色訪問應(yīng)用的有關(guān)功的安全模型,根據(jù)用戶的角色訪問應(yīng)用的有關(guān)功能模塊。能模塊。在在開發(fā)階段開發(fā)階段,開發(fā)人員負責,開發(fā)人員負責定義定義各種角色,并且在各種角色,并且在實現(xiàn)實現(xiàn)組件功能時組件功能時,只允許指定角色的用戶才可以執(zhí)行這些功能。,只允許

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論