(四)MIDAS線程模型
()Single
代表所產生的InProcess COM程序是一個單一線程的程序一次只能接收一個client發出來的request由於是循環的操作所以不會有多任務同時進行的問題你的COM程序不需要編寫多任務處理的部分
()Apartment
代表每一個Remote Data Module所產生的instance一次只能處理一個前台發出的request可是如果同時創建多個InProcess COM程序那麼每個COM程序都會有一個線程來處理每個instance所處理的數據是安全的可是你必須防止一些共享變量的沖突
()Free
該線程模式可以讓Remote Data Module產生的每個instance通過各自的線程處理每個前台發出的request所以Remote Data Moudle本身必須采用多線程的程序寫法你必須保護每個instance所處理的數據區域不會互相沖突當使用ADO數據集時推薦使用Free模型
()Both
與Free相同除了所有對應前台界面的callback是連續的以外
()Neutral
此種模式允許多個前台程序在同一個時間以不同的線程來調用Remote Data Module不過COM對象必須確保不會有前台程序調用的沖突你要確定每個線程在訪問全局變量及實例數據時不會發生任何沖突這個模式只適用在COM+
(五)MIDAS前台程序連接到後台應用程序服務器
()SocketConnection:
只要前台計算機安裝有TCP/IP的通信協議即可但是Application Server上必須要有對應的SocketServer程序scktsrvrexe
()DCOMConnection:
如果前台計算機系統是Win則必須安裝DCOM form Win(去Microsoft網站下載)如果系統是WinMeNT等則已經包含DCOM Library
()Corbaconnection:
必須安裝Visic Broker即Delphi專用的Corba ORB文件這些文件名稱分別是:Orbpasdllcwmtdllorb_rdll請把這些文件復制到前台計算機的的系統目錄下同樣的Application Server上也不需安裝
()WebConnection:
只要前台計算機安裝有TCP/IP協議即可但是Application Server上必須安裝一套Web Server並且必須把httpsrvrdll文件安裝到Web Server虛擬目錄下再把WebConnection的屬性URL指向此虛擬路徑即可
注:不論采取何種Connection組件都會用到Midasdll文件所以打包時一定要把它分發到前台計算機的系統目錄下去
(五)MIDAS如何控制前台權限
()原理:
前台程序與應用程序服務器之間是通過DCOM機制的運行來傳送數據DCOM對象的安全機制是以Windows NT的安全模塊為構建基礎換句話說要設置某個用戶是否有遠程運行DCOM對象的能力最基本的條件是這個用戶一定要被加入Windows NT的用戶組內如此才有資格連上Windows NT Server並進而依據DCOM的權限來決定是否能夠運行指定的應用程序服務器
()工具:
在系統目錄下有一個DCOMCNFGEXE工具可以用來設置應用程序服務器的運行權限
()自己通過程序控制(也許更可取避免了配置人員的配置復雜性)
[] []
From:http://tw.wingwit.com/Article/program/Delphi/201311/8531.html