個可執行文件及MIDAS.DLL,而移到NT服務器上的DataMoule則變成一個COM程序(Remote DataModule).
注:前台一定要把MIDAS.DLL發布到系統目錄下.
(1)前台程序會通過調用應用程序服務器提供的方法(接口)提出一個請求
應用程序服務器會響應這個請求,傳送一個相應的SQL命令到後台數據庫,而後台數據庫會把執行SQL命令產生的DataSet返回給應用程序服務器.
注:Delphi提供了Type Library來幫助應用程序服務器定義COM方法(接口)
(2)NT服務器上的COM程序是通過中間軟件(dbExpress,ADO,BDE,SQL Link)傳送SQL到後台數據庫.
當應用程序服務器要把讀取到的DataSet傳送給前台時,就必須利用DCOM的機制來進行.Delphi提供的TDataSetProvider組件就會把讀取到的DataSet壓縮並且分割成一段一段的數據包,通
過DCOM或TCP/IP傳給前台.
注:Delphi提供了RemoteDataModule向導來幫你產生COM程序的結構.
由於Delphi的程序具有傳送DataSet的特殊機制,所以Delphi也實現了一個接口叫做IProvider(即TDataSetProvider),來幫助應用程序服務器上的COM程序發送DataSet數據.
(3)前台程序與NT服務器上的COM程序是通過DCOM的機制互相溝通
前台的應用程序是通過MIDAS.DLL和應用程序服務器相互溝通,前台的MIDAS.DLL會把接收到的應用程序服務器發過來的數據包再還原成DataSet,丟給前台程序中的TClientDataSet組件.
注:前台程序必須提供相應的TClientData組件來和應用程序服務器上的每個IProvider(即TDataSetProvider)對應.用戶修改前台數據時,修改的只是Cache(緩存)在前台的Dataset,最後
要通過TClientData.ApplyUpdate方法來把前台變動的數據寫回到後台數據庫中.