delphi三層架構

三層架構指的是界面,業務邏輯和數據存儲分離,不是指物理上是否分離。

這樣做的好處是層次分明,維護好做,系統資源也好分佈式處理。

數據庫層哪就不說了,用MSSQL、Orcale隨你了,就是數據服務層

業務邏輯的話要分析清楚,就是中間層

界面,也叫客戶端。這裏就是得到數據和顯示數據的部分了,不做其它處理。但是數據有效性分析最好放在界面層,以充分利用客戶端的性能。不然的話業務邏輯層的負擔太大也會形成瓶勁。

數據庫的建立不說了。

三層體系的建立

一 數據庫層的建立

      使用sqlserver或orale建立數據庫。

二 中間層的建立

      一般將中間層分爲二個部分,數據部分和邏輯部分。

     數據部分就是使用原始的查詢,一個ado連接,多個成對出現的adq和dsp。ado連接最後選使用文件連接,以便以後可以在客戶端自由決定連接哪個數據庫而不需要改程序。

邏輯部分跟客戶端一樣,使用DCom來連接到數據部分,然後使用cds連接到DCOM並指明數據提供器dsp.然後再增加相應的函數來處理數據。事務一般取自動維護的,這樣函數開始事務自動開始,我們只需要維護事務回滾setAbout,和事務完成setcomplete.在中間層服務器中不要添加需要人主動干預的動作,比如對話框之類。因爲中間層服務器和數據庫一樣是長時間不間斷運行的,也沒有誰會呆在中間層服務器前專門處理這些問題。

例:delphi7 sqlserver2000,win32環境

在delphi中建立一個多層項,選Translation Data Moudle

取個名testTran,線程模式Threadling Model選Aparment,等會再改它。

事務模式Translation model取 需要一個事務requires a Translation

點OK就建立了一箇中間層。

然後得改一改線程模式由tmApartment改成tmNeutral.(在initialization的 TComponentFactory.Create裏改參數。)

再就可以添加數據控件進行處理了。

附:線程模式 1.Single:單線程,只有一個Rmd線程,所有客戶端只能順序地得到服務。
2.Apartment:服務程序可以同時有多個Rmd線程,但每個Rmd線程只能服務以單線程模式運行。
3.Free:沒有線程限制的模式,沒見用過。
4.Both:介於Apartment和Free之間的一種線程模式,沒見用過。
5.Neutral:僅對Com+有效,可以使多個客戶端同時以多線程模式應用服務器,建議使用,但注意全局變量的保護問題。

三 客戶端的建立

     客戶端的建立,取數據直接用DCOM連接,cds取。如果是邏輯業務的話就用 DCOM.appserver.函數來處理。

     主從結構在這裏有一個小技巧。如果將主從結構放在中間層的話,主表第一次取數據時會遍歷主表,從表也會跟着查一次,如果主表條數很多,會造成用時很長。如查將主從結構放在客戶端的話,主表第一次取數從表不會跟着走一次,哪樣速度就快很多。但是如果主表條目數很少,而且在取得數據後經常變動的話,還是將主從結構放在中間層較好,這樣查詢到的數據是暫存起來的,這樣得到數據就會很快。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章