資源描述:
《為什么要使用COM開發(fā)程序》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在行業(yè)資料-天天文庫。
1、為什么要使用COM開發(fā)程序?吳長彬COM的利弊團隊(并行)開發(fā)需要一種好的集成方法COM組件易于替換COM與語言無關性COM有利于軟件的復用版本難以控制接口一旦發(fā)布就難以修改優(yōu)點缺點COM與三層體系結構利用COM易于實現(xiàn)三層體系結構:表示層、企業(yè)層、數(shù)據(jù)層企業(yè)層表示層數(shù)據(jù)層應用程序DBMS企業(yè)對象數(shù)據(jù)對象DCOMADOCOM原理與方法吳長彬COM的相關概念COM表示ComponentObjectModel(組件對象模型),COM不是編程語言、代碼庫或編譯器,而是個二進制規(guī)范。接口(Interface)接口類型Iunkown——基本接口,QueryInterface、Add
2、Ref、ReleaseIdispatch——從Iunkown繼承,如果程序不用腳本開發(fā),最好不用該類型接口雙接口(dual-interface)——一般用于Automation對象接口規(guī)則接口是不可變的每一個接口具有唯一的標識符GUID函數(shù)應返回HRESULT字符串參數(shù)應為UNICODECOM與面向?qū)ο蠹夹g面向?qū)ο罂梢远乙话阃ㄟ^COM實現(xiàn),但COM不一定都是面向?qū)ο蟮摹OM可以具有與面向?qū)ο笙嗤奶匦?。封裝性繼承性多態(tài)性ActiveXActiveX與一般的COM的區(qū)別在于通常具有用戶界面。DCOMDCOM(DistributedCOM)是COM的延伸,它允許應用程序調(diào)
3、用其他機器中的COM對象??蛻舳藞?zhí)行程序服務端執(zhí)行程序客戶端應用程序ProxyDllStubDllserverDCOMDCOM與COM的區(qū)別COM有兩種存在形式,動態(tài)連接庫和可執(zhí)行程序,但DCOM必須是可執(zhí)行程序.因為DCOM不可能在客戶程序的內(nèi)存空間運行,所以不能是動態(tài)連接庫.COM(動態(tài)連接庫形式)可以不用RPC通信,而DCOM必須使用RPC遠程調(diào)用.COM程序配置簡單,DCOM配置較復雜.畢竟DCOM牽涉到網(wǎng)絡和安全性.COM+COM與MTS(MicrosoftTransactionServer)相結合產(chǎn)生了下一代的MTS/COM+。MTS/COM+也用于解決分布式
4、問題,但MTS/COM+具備了更好的品質(zhì):事務處理和安全機制。微軟對COM+的定義為“基于MicrosoftTransactionServer(MTS)和組件對象模型(COM)擴展的一組服務,提供了改良的線程和安全性、事務管理、對象池、排隊組件以及應用程序管理及打包”。MTS事務管理事務管理的運算對于所有數(shù)據(jù)的改變必須是完全成功,并且把數(shù)據(jù)的狀態(tài)成功地改變成另外一個狀態(tài)。否則所有事務管理執(zhí)行的運算就必須把數(shù)據(jù)恢復成這個事務管理還沒有執(zhí)行之前的狀態(tài)。支持事務不支持事務需要事務需要新事務如何用Delphi開發(fā)簡單的COM?吳長彬COM程序開發(fā)過程組件群分類接口定義和參數(shù)設計邏
5、輯代碼編寫模塊測試組件發(fā)布組件功能劃分應用程序/DEMO.EXE協(xié)調(diào)組件/Coordinate.dll業(yè)務邏輯組件平臺組件瘦客戶端,僅僅接受用戶的輸入連接協(xié)調(diào)業(yè)務邏輯組件,傳遞參數(shù)企業(yè)邏輯實現(xiàn),具體算法較成熟穩(wěn)定的獨立的平臺DCOM程序DELPHI客戶端程序ClientDataset組件RemotServer組件MIDAS.DLL遠程數(shù)據(jù)模塊Iappserver接口DatasetProvider組件數(shù)據(jù)集組件BDE/OLEDB/ADO數(shù)據(jù)庫服務器