freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

com多線程模型、dcom(編輯修改稿)

2024-08-11 22:36 本頁面
 

【文章內(nèi)容簡介】 X對象 B的代理對象 A的代理對象 B對象 C的代理對象 A對象 C表示截取存根存根存根從進(jìn)程內(nèi)走向進(jìn)程外 進(jìn)程透明性 客戶 COM運(yùn)行庫 安全 提供器L P CDCE R P CCOM運(yùn)行庫 安全 提供器L P CDCE R P C組件客戶 組件從本機(jī)走向遠(yuǎn)程主機(jī) DCOM 客戶 C OM運(yùn)行庫 安全 提供器協(xié)議棧DC E R P CC OM運(yùn)行庫 安全 提供器協(xié)議棧DC E R P C組件DC OM 網(wǎng)絡(luò)協(xié)議預(yù)備: RPC(Remote Procedure Call) ? RPC Client and RPC Server ? 可以在 TCP、 UDP上實(shí)現(xiàn) ? RPC是分布式應(yīng)用的基礎(chǔ),過程如下: – 客戶準(zhǔn)備:三元組 (遠(yuǎn)程機(jī)器、 server、函數(shù) ) – 在 RPC Server上需要運(yùn)行一個(gè) RPC端口管理服務(wù),每個(gè) RPC Server向它登記注冊 – RPC client與遠(yuǎn)程機(jī)的 RPC端口管理服務(wù)聯(lián)系,請求 RPC Server的端口號 – 然后 RPC client與 RPC server直接聯(lián)系 ? 其他遠(yuǎn)程調(diào)用途徑,如 HTTP、 SOAP DCOM要點(diǎn) ? 創(chuàng)建遠(yuǎn)程對象 ? 把進(jìn)程內(nèi)對象放到遠(yuǎn)程機(jī)器上 ? DCOM的連接管理 ? DCOM并發(fā)性管理 ? DCOM安全性 DCOM組件對象的創(chuàng)建過程 客戶 組件CO M 庫(OL E 3 2 . DL L )S CM(RP C S S . E X E )S CM(RP C S S . E X E )RP C調(diào)用創(chuàng)建函數(shù)遠(yuǎn)程創(chuàng)建創(chuàng)建進(jìn)程和對象對象激活 (activation) ? 對象激活: – 創(chuàng)建新的組件對象 ——類廠對象 – 建立已有組件對象與客戶之間的連接 ——名字對象 ? 遠(yuǎn)程對象的創(chuàng)建: – 標(biāo)識一個(gè)遠(yuǎn)程對象: CLSID+RemoteServerName ? 如何獲取 RemoteServerName 信息 – DCOM配置工具指定遠(yuǎn)程服務(wù)器名 – 客戶程序在代碼中顯式指定遠(yuǎn)程服務(wù)器名 創(chuàng)建 DCOM組件 (一 ) ? 位置透明性:客戶程序不必知道組件運(yùn)行在本地或遠(yuǎn)程機(jī)器上 ? RemoteServerName信息: HKEY_CLASSES_ROOT\APPID\{appidguid} “RemoteServerName”=“DNS name” HKEY_CLASSES_ROOT\CLSID\{clasidguid} “AppID”=“appidguid ” ? RemoteServerName信息不能被傳遞 ? 客戶創(chuàng)建組件對象的代碼不必修改 使用 DCOM配置工具配置組件的 RemoteServerName信息 創(chuàng)建 DCOM組件 (二 ) ? 在 CoGetClassObject和 CoCreateInstanceEx函數(shù)中指定服務(wù)器信息 typedef struct _COSERVERINFO { DWORD dwReserved1。 LPWSTR pwszName。 COAUTHINFO *pAuthInfo。 DWORD dwReserved2。 } COSERVERINFO。 typedef struct _MULTI_QI { const IID* pIID。 IUnknown * pItf。 HRESULT hr。 } MULTI_QI。 用 CoCreateInstanceEx創(chuàng)建遠(yuǎn)程組件舉例 HRESULT hr = S_OK。 MULTIQI mqi[] = {{IID_IBackupAdmin, NULL , hr1}}。 COSERVERINFO srvinfo = {0, NULL, NULL, 0}。 = pFileServerName。 HRESULT hr = CoCreateInstanceEx( CLSID_MyBackupService, NULL, CLSCTX_SERVER, amp。srvinfo, sizeof(mqi)/sizeof(mqi[0]), amp。mqi)。 if (SUCCEEDED(hr)) { if (SUCCEEDED(mqi[0].hr)) { IBackupAdmin* pBackupAdmin=mqi[0].pItf。 hr=pBackupAdminStartBackup()。 pBackupAdminRelease()。 } } 用分派服務(wù)組件對象 實(shí)現(xiàn)動(dòng)態(tài)負(fù)載平衡功能 ② p A Cre a teO b jec tB客戶機(jī)名字開放服務(wù)器服務(wù)器 1服務(wù)器 2服務(wù)器 3① 請求創(chuàng)建對象 A③選擇服務(wù)器 3并創(chuàng)建對象 B④返回對象 B⑥客戶直接與對象 B 連接⑤釋放 對象 A遠(yuǎn)程創(chuàng)建進(jìn)程內(nèi)組件:代理進(jìn)程 (Surrogate) ? 代理進(jìn)程優(yōu)點(diǎn): – 進(jìn)程內(nèi)組件程序中的嚴(yán)重錯(cuò)誤只影響到代理進(jìn)程,不會(huì)使客戶進(jìn)程崩潰; – 一個(gè)代理進(jìn)程可以同時(shí)為多個(gè)客戶提供服務(wù); – 在代理進(jìn)程中運(yùn)行進(jìn)程內(nèi)服務(wù)可使 DLL享有代理進(jìn)程的安全性。 控制遠(yuǎn)程對象的生存期 ? DCOM優(yōu)化了遠(yuǎn)程對象的 AddRef和 Release調(diào)用,客戶程序不必考慮優(yōu)化 ? OR (OXID Resolver)服務(wù) – OXID(object exporter identifier) 對象 ? OXID對象實(shí)現(xiàn)了 IRemUnknown接口 – RemQueryInterface – RemAddRef和 RemRelease ? 參考資料: MSJ, 1998年第 3期 – Understanding the DCOM Wire Protocol by Analyzing Network Data Packets DCOM使用 ORPC協(xié)議實(shí)現(xiàn)遠(yuǎn)程通信 OR service OR service Client Server OXID表 OXID表 OR RPC
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1