第十八章 Delphi客戶服務器應用開發(fā)
客戶/服務器的開發(fā)工作涉及定義客戶/服務器的體系結(jié)構(gòu), 然后再將該結(jié)構(gòu)與其它一些對于客戶/服務器的實現(xiàn)至關重要的系統(tǒng)結(jié)構(gòu)和技術集成起來。Delphi 2.0的Client/Sever版支持用戶開發(fā)客戶/服務器結(jié)構(gòu)的應用程序。本章中我們將闡述客戶服務器體系結(jié)構(gòu)原理、如何用Delphi構(gòu)建客戶/服務器的環(huán)境和Delphi存取遠程SQL服務器的編程和注意事項。
18.1 Delphi客戶/服務器應用開發(fā)原理
18.1.1 客戶/服務器體系結(jié)構(gòu)
18.1.1.1 體系結(jié)構(gòu)概述
客戶/服務器系統(tǒng)的體系結(jié)構(gòu)有以下兩個特點:
● 是集合智能用戶工作站作為有效平臺使用
● 平臺和軟件之間的互操作性
客戶/服務器結(jié)構(gòu)包括連接在一個網(wǎng)絡中的多臺計算機。那些處理應用程序,請求另一計算機的服務的計算機稱為客戶機(Client)。而處理數(shù)據(jù)庫的計算機稱為服務器(Server)。所有用戶都擁有他們自己的計算機來處理應用程序。
客戶機計算機可以是大型機、小型機或微機。但是由于微機具有成本的優(yōu)勢,因而通常選擇它們作為客戶機。同樣地,服務器通常是一臺微機但在需要較大能力時,也可以使用一臺大型機或小型機。在數(shù)據(jù)庫環(huán)境下,通過若干稱作中間件(Middleware)的程序設計接口,客戶機可以與服務器通信。這些接口提供應用程序和數(shù)據(jù)庫之間的連通性。
圖18.1 客戶/服務器體系結(jié)構(gòu)
雖然圖18.1只有一個服務器,但客戶/服務器結(jié)構(gòu)也可以包括多個服務器。然而在這種情況下,每個服務器必定只處理一個不同的數(shù)據(jù)庫或提供一個的服務。(注意:使用兩上或多個服務器來處理同一個數(shù)據(jù)庫的結(jié)構(gòu)不認為是客戶/服務器系統(tǒng),相反它是一個分布式數(shù)據(jù)庫系統(tǒng)〕
表18.1歸納了計算機在客戶/服務器系統(tǒng)中的既定作用。
表18.1 客戶機和服務器計算機的作用
━━━━━━━━━━━━━━━━━━━━━━━━━━━
客戶機功能 服務器功能
───────────────────────────
管理用戶接口 從客戶機接受數(shù)據(jù)庫請求
從用戶接受數(shù)據(jù) 處理數(shù)據(jù)庫請求
處理應用邏輯 格式化結(jié)果并傳送給客戶機
產(chǎn)生數(shù)據(jù)庫請求 執(zhí)行完整性檢查
向服務器發(fā)送數(shù)據(jù)庫請求 提供并行訪問控制
從服務器接收結(jié)果 執(zhí)行恢復
格式化結(jié)果 優(yōu)化查詢和更新處理
━━━━━━━━━━━━━━━━━━━━━━━━━━━
18.1.1.2 客戶機概述
如上所述,客戶機運行那些使用戶能闡明其服務請求的程序,并將這些請求傳送到服務器。由客戶機執(zhí)行的計算稱為前端處理(front-end processing)。前端處理具有所有與提供、操作和顯示數(shù)據(jù)相關的功能。
客戶機軟件由網(wǎng)絡接口軟件、支持用戶需求的應用程序以及實現(xiàn)網(wǎng)絡能力的實用程序【例如電子郵件(E-Mail)和群件(Groupware)】組成。網(wǎng)絡接口軟件提供各種數(shù)據(jù)傳輸服務。應用程序軟件執(zhí)行具體的任務,如字處理、電子表格和數(shù)據(jù)庫查詢生成。實用程序軟件通常執(zhí)行幾乎所有網(wǎng)絡用戶都要求的標準任務。
18.1.1.3 服務器概述
在服務器上執(zhí)行的計算稱為后端處理(back-end processing)。后端硬件(back- end hardware)是一臺管理數(shù)據(jù)資源并執(zhí)行數(shù)據(jù)庫引擎功能(如存儲、操作和保護數(shù)據(jù))的計算機。在大型機環(huán)境下,后端網(wǎng)絡(back-end network)提供大型計算機至大容量存儲設備、控制器以及文件服務器的連接。在識別、評價和選擇適當?shù)姆掌髌脚_時,必須考慮將由該平臺提供的服務。例如,一個數(shù)據(jù)庫服務器可能需要快速處理能力。其他可能需要執(zhí)行的網(wǎng)絡服務有通信、應用程序、文件訪問以及只讀存儲器(CD-ROM)服務。隨著新的應用技術的廣泛使用,可被提供的潛在服務還將繼續(xù)增加。
服務器軟件既包括遵循于OSI或其它網(wǎng)絡結(jié)構(gòu)的網(wǎng)絡軟件,又包括由該服務器提供給網(wǎng)絡上客戶機的應用程序或服務軟件。
客戶/服務器的開發(fā)工作涉及定義客戶/服務器的體系結(jié)構(gòu), 然后再將該結(jié)構(gòu)與其它一些對于客戶/服務器的實現(xiàn)至關重要的系統(tǒng)結(jié)構(gòu)和技術集成起來。Delphi 2.0的Client/Sever版支持用戶開發(fā)客戶/服務器結(jié)構(gòu)的應用程序。本章中我們將闡述客戶服務器體系結(jié)構(gòu)原理、如何用Delphi構(gòu)建客戶/服務器的環(huán)境和Delphi存取遠程SQL服務器的編程和注意事項。
18.1 Delphi客戶/服務器應用開發(fā)原理
18.1.1 客戶/服務器體系結(jié)構(gòu)
18.1.1.1 體系結(jié)構(gòu)概述
客戶/服務器系統(tǒng)的體系結(jié)構(gòu)有以下兩個特點:
● 是集合智能用戶工作站作為有效平臺使用
● 平臺和軟件之間的互操作性
客戶/服務器結(jié)構(gòu)包括連接在一個網(wǎng)絡中的多臺計算機。那些處理應用程序,請求另一計算機的服務的計算機稱為客戶機(Client)。而處理數(shù)據(jù)庫的計算機稱為服務器(Server)。所有用戶都擁有他們自己的計算機來處理應用程序。
客戶機計算機可以是大型機、小型機或微機。但是由于微機具有成本的優(yōu)勢,因而通常選擇它們作為客戶機。同樣地,服務器通常是一臺微機但在需要較大能力時,也可以使用一臺大型機或小型機。在數(shù)據(jù)庫環(huán)境下,通過若干稱作中間件(Middleware)的程序設計接口,客戶機可以與服務器通信。這些接口提供應用程序和數(shù)據(jù)庫之間的連通性。
圖18.1 客戶/服務器體系結(jié)構(gòu)
雖然圖18.1只有一個服務器,但客戶/服務器結(jié)構(gòu)也可以包括多個服務器。然而在這種情況下,每個服務器必定只處理一個不同的數(shù)據(jù)庫或提供一個的服務。(注意:使用兩上或多個服務器來處理同一個數(shù)據(jù)庫的結(jié)構(gòu)不認為是客戶/服務器系統(tǒng),相反它是一個分布式數(shù)據(jù)庫系統(tǒng)〕
表18.1歸納了計算機在客戶/服務器系統(tǒng)中的既定作用。
表18.1 客戶機和服務器計算機的作用
━━━━━━━━━━━━━━━━━━━━━━━━━━━
客戶機功能 服務器功能
───────────────────────────
管理用戶接口 從客戶機接受數(shù)據(jù)庫請求
從用戶接受數(shù)據(jù) 處理數(shù)據(jù)庫請求
處理應用邏輯 格式化結(jié)果并傳送給客戶機
產(chǎn)生數(shù)據(jù)庫請求 執(zhí)行完整性檢查
向服務器發(fā)送數(shù)據(jù)庫請求 提供并行訪問控制
從服務器接收結(jié)果 執(zhí)行恢復
格式化結(jié)果 優(yōu)化查詢和更新處理
━━━━━━━━━━━━━━━━━━━━━━━━━━━
18.1.1.2 客戶機概述
如上所述,客戶機運行那些使用戶能闡明其服務請求的程序,并將這些請求傳送到服務器。由客戶機執(zhí)行的計算稱為前端處理(front-end processing)。前端處理具有所有與提供、操作和顯示數(shù)據(jù)相關的功能。
客戶機軟件由網(wǎng)絡接口軟件、支持用戶需求的應用程序以及實現(xiàn)網(wǎng)絡能力的實用程序【例如電子郵件(E-Mail)和群件(Groupware)】組成。網(wǎng)絡接口軟件提供各種數(shù)據(jù)傳輸服務。應用程序軟件執(zhí)行具體的任務,如字處理、電子表格和數(shù)據(jù)庫查詢生成。實用程序軟件通常執(zhí)行幾乎所有網(wǎng)絡用戶都要求的標準任務。
18.1.1.3 服務器概述
在服務器上執(zhí)行的計算稱為后端處理(back-end processing)。后端硬件(back- end hardware)是一臺管理數(shù)據(jù)資源并執(zhí)行數(shù)據(jù)庫引擎功能(如存儲、操作和保護數(shù)據(jù))的計算機。在大型機環(huán)境下,后端網(wǎng)絡(back-end network)提供大型計算機至大容量存儲設備、控制器以及文件服務器的連接。在識別、評價和選擇適當?shù)姆掌髌脚_時,必須考慮將由該平臺提供的服務。例如,一個數(shù)據(jù)庫服務器可能需要快速處理能力。其他可能需要執(zhí)行的網(wǎng)絡服務有通信、應用程序、文件訪問以及只讀存儲器(CD-ROM)服務。隨著新的應用技術的廣泛使用,可被提供的潛在服務還將繼續(xù)增加。
服務器軟件既包括遵循于OSI或其它網(wǎng)絡結(jié)構(gòu)的網(wǎng)絡軟件,又包括由該服務器提供給網(wǎng)絡上客戶機的應用程序或服務軟件。