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

正文內容

高級軟件工程dcom、自動化-展示頁

2025-01-23 06:50本頁面
  

【正文】 ?進程透明性 進程內服務程序 : DLL 本地服務程序 : EXE 遠地服務程序 : DLL或 EXE =》 DCOM 為什么需要跨越進程、跨越計算機? 軟件規(guī)模持續(xù)增加 不同 EXE程序之間需要交互 不同 EXE程序可以分布在 不同的計算機上 適用于分布式計算環(huán)境 關鍵問題:進程空間不同 DCOM 內 容 跨越進程 IDL/MIDL 本地服務器的實現(xiàn) 遠程訪問( DCOM)的實現(xiàn) DCOM的特性 DCOM ( 1)跨越進程 每一個 EXE文件都將在不同的進程中運行 每一個進程都有自己的進程空間 DLL將被映射到連接它們的 EXE文件的進程空間 DLL被稱為進程中服務器( Inproc server) EXE被稱為進程外服務器( Outproc server) DLL提供的構件將接口傳給客戶 一個接口實際上是一個函數(shù)指針數(shù)組 客戶必須能夠訪問同接口相關聯(lián)的內存 DCOM 對于跨越進程邊界的接口 需滿足如下要求: 一個進程需要能夠調用 另外一個進程中的函數(shù) 一個進程需要能夠將數(shù)據(jù)傳遞給 另外一個進程 客戶無須關心它所訪問的服務器 是 DLL還是 EXE DCOM 本地過程調用 不同進程間通信的方法: DDE 管道 共享內存等 LPC COM: LPC 基于 RPC的單機進程間通信技術 DCOM: RPC DCOM LPC由操作系統(tǒng)實現(xiàn) 客戶 構件 EXE EXE LPC 進程邊界 DCOM 編排( Marshal) 將函數(shù)調用的參數(shù)從一個進程的地址空間中 傳到 另外一個進程的地址空間中 LPC:將參數(shù)數(shù)據(jù)從一個進程的地址空間 復制到 另外一個進程的地址空間中 RPC:需要考慮不同機器在數(shù)據(jù)表示方面的不同 支持編排的接口為: IMarshal DCOM 代理 /殘根 DLL( surrogate/stub) 客戶同一個模仿構件的 DLL通信 這個 DLL可以為客戶完成 參數(shù)的編排 與 LPC調用 這個 DLL被稱為 代理 構件需要另一個 DLL 這個 DLL為構件完成 參數(shù)的反編排 與 LPC調用 DCOM 客戶 構件 EXE EXE LPC 進程邊界 代理 殘根 DLL DLL DCOM ( 2) IDL/MIDL 先利用 IDL語言編寫接口的描述 在利用 MIDL編譯器生成代理和殘根 DLL 與 UUID、 RPC類似 IDL是從開發(fā)軟件基金會 OSF的 分布式計算環(huán)境( DCE)借用過來的 IDL語法與 C、 C++相同 COM只利用了 IDL的一個子集 并進行了擴展 MIDL編譯器接收接口的 IDL描述 并生成相應的代理和殘根 DLL DCOM IDL 開發(fā)人員可以不知道 LPC的細節(jié) 但必須知道如何利用 IDL描述自己的接口 但是 IDL不規(guī)范: 存在不一致 文檔資料差 缺乏典型的好例子 IDL可用于: 生成代理和殘根 DLL 建立類型庫( Type Library) DCOM IDL例子: import 。 // Interface IX [ object, uuid(32bb8323b41b11cfa6bb0080c7b2d682), helpstring(IX Interface), pointer_default(unique) ] interface IX : IUnknown { HRESULT FxStringIn([in, string] wchar_t* szIn) 。 } 。 HRESULT FyArrayIn([in] long sizeIn, [in, size_is(sizeIn)] long arrayIn[]) 。 } 。g_FactoryDataArray[0] 。g_FactoryDataArray[g_cFactoryDataEntries 1] 。 pData = pEnd 。 pDatam_dwRegister = NULL 。 // Register the class factory. DWORD dwRegister 。dwRegister) 。 return FALSE 。 pDatam_dwRegister = dwRegister 。 } DCOM 構件注冊: CoRegisterClassObject( *pDatam_pCLSID, static_castIUnknown*(pIFactory), CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE, amp。 m_pCLSID:類標識 pIFactory: 類廠指針 第四個參數(shù): EXE的單個實例 能否支持一個構件的多個實例 REGCLS_SINGLEUSER: 單個實例 則第三個參數(shù)為 CLSCTX_LOCAL_SERVER REGCLS_MULTI_SEPARATE:多個實例 第三個參數(shù)可以為 CLSCTX_LOCAL_SERVER 或者 CLSCTX_LOCAL_SERVER | CLSCTX_INPROC_SERVER DCOM CoRegisterClassObject( *pDatam_pCLSID, static_castIUnknown*(pIFactory), CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE, amp。 與 CoRegisterClassObject( *pDatam_pCLSID, static_castIUnknown*(pIFactory), CLSCTX_LOCAL_SERVER | CLSCTX_INPROC_SERVER, REGCLS_MULTI_SEPARATE, amp。 是等價的 DCOM ( 4)遠程訪問的實現(xiàn) 前述的本地服務器可以是遠地服務器 即 不需要對 進行任何修改 需要系統(tǒng)的支持: Windows 或者 DCOM for Windows95 它們需要 DCOM配置工具 DCOM 從遠地服務器運行 : 動作 本地系統(tǒng) 遠程系
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1