程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi5實現多層Client/Server應用程序(1) (1)

Delphi5實現多層Client/Server應用程序(1) (1)

編輯:Delphi

一、引言
  Client/Server是一種分布式的計算模式,與傳統的基於主機的結構相比,具有較好的可伸縮性和較優的性價比。過去,Client/Server結構一般分為兩層:客戶端和服務器端,所有客戶端各自實現自己的用戶界面和應用邏輯。隨著系統的不斷擴展,這種兩層的Client/Server模式逐漸暴露出它的缺陷,由於最終客戶需求的千變萬化,客戶端可能會不堪重負,而客戶端程序的過於龐大顯然與分布式計算的思想背道而馳。解決上述問題的方案,就是采用多層的ClIEnt/Server結構。目前,通常按客戶端、應用服務器端和DBMS服務器端三層,在這種結構中,客戶端只用於實現用戶界面,而應用邏輯則由應用服務器實現。

  二、應用服務器的創建
  要創建一個多層的ClIEnt/Server應用程序,首先要創建應用服務器。為完成與遠程的客戶雙向交互,應用服務器需提供某種類型的Iprovider構件來實現,也可以直接通過幾個繼承於TDBDataSet類的數據集構件如TtableTquery的Provider屬性實現。創建步驟如下:
  1. 遠程數據模塊(Remote Data Module)的創建
  使用File菜單上的“New Application”命令開始一個新工程,雙擊MultitIEr頁面中的“Remote Data Module”圖標,Delphi將要求指定類名,如圖1所示。
  (1)在“Class Name”框內鍵入類名後(類名第一個字母不必是T),單擊OK按鈕,Delphi就在當前工程中加入一個遠程數據模塊。
  (2)TTable數據集構件的創建
  置入一個Ttable構件,設定它的屬性databasename和tablename,然後設定active為true。
  (3)TdataSetProvider構件的創建
  置入一個TDataSetProvider構件,設定屬性DataSet為Table1。
  至此,一個簡單的應用服務器創建完畢。如圖2所示。
  執行此程序,該應用程序將在系統中自動注冊,今後的客戶端程序就可以調用該應用服務器程序了。

  三、客戶程序的創建
  從用戶角度看,創建多層的Client/Server結構的“瘦”客戶是用TclIEntDataSet構件實現的,並且通過TDCOMConnection構件與應用服務器端連接。創建步驟如下:
  1. 建立一個新的數據模塊
  使用“File”菜單上的“New Application”命令開始一個新的工程,使用“File”菜單上的“New Data Module”命令加入一個數據模塊。
  2. TDCOMConnection構件的創建
  把一個TDCOMConnection構件放到數據模塊上,設置它的ServerName屬性指定應用服務器名(在這裡,應用服務器就是上面創建的名為MyDcomServer服務器程序。如果“瘦”客戶與應用服務器不在同一個計算機上,還要設置ComputerName屬性指定服務器所在的機器名。


  3. TclIEntDataSet文件添加
  把一個TclIEntDataSet構件放到數據模塊上,設置它的RemoteServer屬性指定TDCOMConnection構件,再設置ProviderName屬性指定應用服務器中的DataSetProvider名,因此,“瘦”客戶程序可以透明地訪問遠端數據庫服務器上的數據。如圖3所示。
  4. TdataSource文件添加
  把一個TdataSource構件放到Form上,設置它的DataSet屬性指定TclIEntDataSet構件。
  5. TDBGrid構件添加
  把一個TDBGrid構件(也可以是其他數據控制構件)放到Form上,設置它的DataSource屬性指定TdataSource構件,如果要在設計期間就看到數據的話,把TclIEntDataSet構件的Active屬性設為True。
  至此,一個典型的“瘦”客戶創建完畢,與傳統的數據庫應用程序相比,它不需要直接與數據庫打交道,從而顯得較瘦。

  四、DCOM配置
  如果在Windows NT環境下正常運行應用服務器,必須進行DCOM配置。配置方法如下:

  1. 運行NT服務器上的dcomcnfg程序,進行DCOM配置。
  2. 進入DCOM的總體默認屬性頁面,將“在這台計算機上啟用分布式COM”打上勾,將默認身份級別改為“無”。
  3. 進入DCOM的總體默認安全機制頁面,確認默認訪問權限和默認啟動權限中的默認值無EveryOne,如果不去掉EveryOne,應用服務器不能正常啟動。
  4.在常規頁面中,雙擊你的應用服務器,打開你的應用服務器DCOM屬性設置。
  5.將常規頁面中的身份驗證級別改為“無”。
  6.位置頁面中選上“在這台計算機上運行應用程序”。
  7.將安全性頁面設置中,均選擇“使用自定義訪問權限”,編輯每一個權限,將EveryOne加入用戶列表中。
  8.身份標識頁面中,選擇“交互式用戶”。
  9.NT的GUEST用戶不能禁用。

  結束語
  多層ClIEnt/Server結構的優勢:
  1. 客戶端只需要關注用戶界面,而且與其他客戶共享相同的數據訪問模塊,從而使客戶端大大“減肥”。
  2. 客戶端與應用服務器端一般分布於不同的計算機上,程序運行效率更高,處理事務的能力更強。
  3. 有利於提高數據的安全性,因為應用邏輯和最終訪問數據庫均由應用服務器端實現,而不是由多個客戶直接訪問數據庫服

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved