九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
基于Delphi的三層數(shù)據(jù)庫系統(tǒng)的實現(xiàn)方法
基于Delphi的三層數(shù)據(jù)庫系統(tǒng)的實現(xiàn)方法

摘 要 隨著中間件與Web技術的發(fā)展,三層或多層分布式應用體系越來越流行。而中間件作為分布體系應用的關鍵技術,以其獨特的優(yōu)勢為各種分布式應用的開發(fā)注入了強大動力,極大地推動了應用系統(tǒng)集成的發(fā)展。論文描述了基于Delphi中間件的三層結構訪問數(shù)據(jù)庫信息的方法。
關鍵詞 三層結構;中間件;連接技術;數(shù)據(jù)庫應用系統(tǒng)

作者簡介:邵泳兵(1968-),女,廣東南海人,碩士,助教

1 引言

當前的數(shù)據(jù)庫應用系統(tǒng)中,按其結構劃分為兩類,一類是兩層結構的數(shù)據(jù)庫應系統(tǒng),另一類是多層結構的數(shù)據(jù)庫應用系統(tǒng)。

兩層結構的數(shù)據(jù)庫應用系統(tǒng)包括客戶/服務器(C/S)模式和瀏覽器/服務器(B/S)模式,它的特點是數(shù)據(jù)和程序分離,數(shù)據(jù)庫服務器端管理數(shù)據(jù),客戶機或瀏覽器顯示、訪問和更新數(shù)據(jù),因此可以分別進行開發(fā)和維護,同時也降低了數(shù)據(jù)庫服務器的工作量,減小了網絡的流量,具有較強的安全性,但當客戶端程序或瀏覽器較多時,服務器的性能會明顯下降,而且應用邏輯安裝在每個客戶機上,如果系統(tǒng)要升級,就只能對客戶機逐一進行,如果客戶機分布在不同的地點,維護和升級任務將非常繁重。為了解決兩層結構應用系統(tǒng)的不足,人們提出了多層數(shù)據(jù)庫應用系統(tǒng)的結構模式,具有代表性的是三層結構。

2 三層系統(tǒng)的體系結構

所謂三層結構,是在客戶端與數(shù)據(jù)庫之間加入了一個“中間層”,也叫組件層。在這種體系結構中,客戶機只存放表示層軟件,后臺是數(shù)據(jù)庫,業(yè)務邏輯包括事務處理、監(jiān)控、信息排隊、Web服務等采用專門的中間件服務器,大大減少了與數(shù)據(jù)庫服務器連接的次數(shù)。通常情況下客戶端通過COM/DCOM通訊與中間層建立連接,再經由中間層與數(shù)據(jù)庫進行交互,客戶端與數(shù)據(jù)庫隔離,提高了整個系統(tǒng)的可靠性。在三層系統(tǒng)體系中,系統(tǒng)資源被統(tǒng)一管理和使用,用戶可以通過網格門戶(portal)透明地使用整個網絡資源。 它的體系結構如圖1所示。

三層結構功能如下:

表示層:提供簡潔的人機交互界面,負責數(shù)據(jù)顯示和客戶端的數(shù)據(jù)處理,由客戶機實現(xiàn);

功能層:實現(xiàn)業(yè)務邏輯,即實現(xiàn)客戶與數(shù)據(jù)庫對話,同時,在這一層中,還應實現(xiàn)分布式管理、負載均衡、安全隔離等;它是一個遠程模塊,由應用服務器來實現(xiàn);

數(shù)據(jù)層:負責數(shù)據(jù)管理,提供數(shù)據(jù)的存儲服務,由數(shù)據(jù)庫服務器來實現(xiàn)。

三層結構的主要特點:(1)安全性。中間層隔離了客戶直接對數(shù)據(jù)服務器的訪問,保護了數(shù)據(jù)庫的安全。(2)穩(wěn)定性。三層分布式體系提供了更可靠的穩(wěn)定性:中間層緩沖Client與數(shù)據(jù)庫的實際連接,使數(shù)據(jù)庫的實際連接數(shù)量遠小于Client應用數(shù)量。當然,連接數(shù)越少,數(shù)據(jù)庫系統(tǒng)就越穩(wěn)定。(3)易維護。由于業(yè)務邏輯在中間服務器,當業(yè)務規(guī)則變化后,客戶端程序基本不做改動。(4)快速響應。通過負載均衡以及中間層緩存數(shù)據(jù)能力,可以提高對客戶端的響應速度。(5)系統(tǒng)擴展靈活。基于三層分布體系,當業(yè)務增大時,可以在中間層部署更多的應用服務器,提高對客戶端的響應,而所有變化對客戶端透明。


3 三層系統(tǒng)的連接技術

3.1 前端連接技術(DataSnap)

在三層數(shù)據(jù)庫應用系統(tǒng)中,客戶端與應用服務器端常處于不同的物理區(qū)域,它們之間的數(shù)據(jù)傳送成了影響系統(tǒng)運行效率最關鍵的技術。在Delphi中要建立與應用服務器的連接,客戶程序必須使用一個或幾個DataSnap連接組件,以及ClientDataSet等組件。首先DataSetProvider組件把讀取的DataSet數(shù)據(jù)源壓縮并切割成一段一段的數(shù)據(jù)包(Data Packet),通過各種傳輸協(xié)議如DCOM、TCP/IP、HTTP協(xié)議傳給前端,前端的DataSnap連接組件會把接受到的數(shù)據(jù)包再還原成DataSet傳給ClientDataSet組件,Data Control組件就可以將ClientDataSet作為數(shù)據(jù)源對它進行操作。

DataSnap技術是Delphi開發(fā)多層數(shù)據(jù)庫應用系統(tǒng)的核心技術,它不但提供了基于DCOM、TCP/IP、HTTP三種傳輸協(xié)議的數(shù)據(jù)傳送方式,還通過SimpleObjectBroker組件使系統(tǒng)輕易具備容錯能力和負載平衡能力,使得Delphi開發(fā)的多層應用系統(tǒng)不但結構簡潔、執(zhí)行效率高、應用范圍廣,而且安全穩(wěn)定,而且現(xiàn)在DataSnap還能夠同時在Windows和Linux上執(zhí)行。

3.2 應用服務器與數(shù)據(jù)庫的連接ADO

ADO是Microsoft存取通用數(shù)據(jù)源的標準引擎,它通過封裝OLE-DB來存取各種不同的數(shù)據(jù),OLE-DB定義了統(tǒng)一的COM接口作為存取各類異質數(shù)據(jù)源的標準,藉由OLE-DB,程序員就可以使用一致的方式來存取各種數(shù)據(jù),但OLE-DB太底層化,在使用上非常復雜,而ADO組件以COM技術封裝OLE-DB為ADO對象,大量簡化了程序員開發(fā)數(shù)據(jù)存取的工作,同時許多廠商也推出了ADO驅動程序,使得ADO應用日趨廣泛。

4 實現(xiàn)方法

本例使用DCOM協(xié)議,系統(tǒng)模型如圖2所示。

應用服務器是一個遠程數(shù)據(jù)模塊,它是一個COM程序,它通過ADO與SQL語句和數(shù)據(jù)庫服務器連接。它負責從數(shù)據(jù)庫服務器存取數(shù)據(jù)并通過DataSetProvider組件將數(shù)據(jù)分割成數(shù)據(jù)包,然后通過DCOM協(xié)議傳遞到網絡上的客戶端??蛻舳说慕M件負責還原數(shù)據(jù),這項工作由DCOMConnection來完成。ClientDataSet組件是客戶端數(shù)據(jù)集組件,它負責接收DCOMConnection組件還原過來的數(shù)據(jù),并把數(shù)據(jù)傳遞給客戶端數(shù)據(jù)處理組件,客戶端數(shù)據(jù)處理和顯示組件主要有ADOQuery、ADOTable、DataSource、DBGrid、DBEdit、DBComboBox等等,反過來,ClientDataSet組件負責收集客戶端處理的數(shù)據(jù),并把處理后的數(shù)據(jù)提交DCOMConnection組件,該組件通過DCOM協(xié)議和應用服務器正確地將數(shù)據(jù)寫入數(shù)據(jù)庫DB。

以顯示學生數(shù)據(jù)庫中學生基本信息表為例,具體地用Delphi語言實現(xiàn)步驟如下。

4.1 創(chuàng)建數(shù)據(jù)庫

在E盤建立文件夾E:\學生課程管理,在該文件夾中創(chuàng)建Access數(shù)據(jù)庫Student.mdb,包含表jbqk(基本情況)、course(課程)、teacher(教師)、sle_course(選課),jbqk表中設置主鍵為number(學號),以備查詢之用。建立的表如圖3所示。




圖3 學生基本情況表jbqk

4.2 建立應用服務器程序

(1)建立一個應用程序,在窗體上添加ADOConnection1、ADOTable1、DataSource、DBGrid1四個組件,設置這四個組件的屬性。

ADOConnection1的ConnectionString屬性設置為Student.mdb,LoginPrompt屬性設置為false,ADOTable1的Connection屬性設置為ADOConnection1,TableName屬性設置為jbqk(在下拉列表框中可以找到),Active屬性設置為true。保存所有文件,項目文件名為AppServer,單元文件名為Server1。

(2)新建一個遠程數(shù)據(jù)模塊(Remote Data Module),設置類名為rdstu,在它的Uses子句中添加Server1,這樣rdstu模塊就可以訪問Server1里面的組件了。在模塊中添加組件DataSetProvider,設置它的DataSet屬性為Form1.Table1,這樣可以將本地數(shù)據(jù)讀到DCOM服務器上,并由DataSetProvider組件提供給客戶端。保存單元文件,命名為Server2。

運行程序后,系統(tǒng)自動在服務器注冊程序,當有客戶端程序運行時,系統(tǒng)會自動啟動服務器程序。

4.3 建立客戶端程序

為了方便描述,這里把客戶端程序和服務器程序放在同一臺電腦上。實際應用中通常把客戶端程序與服務器程序放置在不同的電腦上。

新建一個應用程序,在窗體上添加DCOMConnection1、ClientDataSet1、DataSource1、DBGrid1、DBNavigator1等組件。

設置DCOMConnection1的ComputerName屬性為服務器所在的計算機名,這樣程序可以在網絡上尋找服務器,如果本服務器已在本機注冊,則不設置ComputerName屬性;設置它的ServerName屬性為AppServer.rdstu;設置它的Connected屬性為True,此時激活服務器程序。

設置ClientDataSet1的RemoteServer屬性為DCOMConnection1;ProviderName屬性為DataSetProvider1。這樣ClientDataSet1就可以通過DCOMConnection1從DataSetProvider1組件讀取數(shù)據(jù)了。

DataSource1的DataDet屬性設置為ClientDataSet1。

DBGrid1和DBNavigator1的DataSource屬性設置為DataSource1。

5 結論

和兩層C/S結構相比,三層C/S結構具有更靈活的硬件系統(tǒng)構成,對于各個層可以選擇與其處理負荷和處理特性相適應的硬件。合理地分割三層結構并使其獨立,可以使系統(tǒng)的結構變得簡單清晰,提高了程序的可維護性。三層C/S結構中,應用的各層可以并行開發(fā),各層也可以選擇各自最適合的開發(fā)語言,有利于變更和維護應用技術規(guī)范。按層分割功能使各個程序的處理邏輯變得十分簡單。在Delphi中主要通過DataSnap等技術來實現(xiàn)。隨著基于Web的瘦客戶機結構的發(fā)展,基于多層分布體系的應用將會越來越廣泛。

參考文獻

[1] 李維.Delphi 5.x ADO/MTS/COM+高級程序設計篇[M].北京:機械工業(yè)出版社,2000.

[2] 李維.Delphi 7高效數(shù)據(jù)庫程序設計[M].北京:機械工業(yè)出版社,2003.

[3] 何鵬飛.Delphi 7程序設計教程[M].北京:清華大學出版社,2003.

[4] 張增強,劉成.Delphi 7數(shù)據(jù)庫開發(fā)完全手冊[M].北京:清華大學出版社,2003.

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
全新的DataSnap 2009
Delphi中ClientDataSet的用法小結
Delphi Socket 經驗總結
ClientDataset+TDataSetProvider的數(shù)據(jù)保存問題
使用delphi 開發(fā)多層應用(七)簡單的kbmMW多層數(shù)據(jù)庫訪問服務
第一講 Delphi操作數(shù)據(jù)庫基礎(上)
更多類似文章 >>
生活服務
熱點新聞
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服