齊愛朋
[摘要]C/S和B/S是當今世界開發(fā)模式技術架構的兩大主流技術,C/S交互性強且具有安全的存取模式,但當客戶端數(shù)目激增時,應用維護極困難。B/S采用三層結構,便于開發(fā)網(wǎng)絡應用軟件。
[關鍵詞]架構C/S模式B/S模式
中圖分類號:TP3文獻標識碼:A文章編號:1671-7597(2009)1120055-01
架構的思想萌芽自1968年Dijkstra的工作。架構設計出現(xiàn)的背景是:需要進行超越算法和數(shù)據(jù)結構一級的設計,以適應軟件規(guī)模和復雜性的增長。
C/S和B/S是當今世界開發(fā)模式技術架構的兩大主流技術,C/S是美國Borland公司最早研發(fā)的、基于客戶機/服務器的模式;B/S是美國微軟公司研發(fā)的、基于瀏覽器/服務器的模式。目前,這兩項技術已被世界各國所掌握,國內(nèi)公司所開發(fā)出的很多產(chǎn)品都是基于C/S和B/S技術的。
一般一個典型的應用可以分為四個部分:表示邏輯、事務邏輯、業(yè)務邏輯和數(shù)據(jù)邏輯。C/S兩層體系結構就是把表示邏輯放在客戶端,把數(shù)據(jù)邏輯和事務邏輯放在服務器端,而業(yè)務邏輯視情況而定。從物理結構上來說,C/S兩層體系結構的前端是客戶機,負責接受用戶的請求,并向數(shù)據(jù)庫服務器提出請求;后端是服務器,負責將數(shù)據(jù)提交給客戶端,客戶端將數(shù)據(jù)進行計算并將結果呈現(xiàn)給用戶。服務器還要提供完善的安全保護及對數(shù)據(jù)的完整性處理等操作,并允許多個客戶同時訪問同一個數(shù)據(jù)庫。
過去,C/S兩層體系結構在應用系統(tǒng)開發(fā)中得到了廣泛的應用。其優(yōu)點是:技術上成熟,交互性強且具有安全的存取模式,網(wǎng)絡通信量低、響應速度快、便于處理大量數(shù)據(jù)。但是同時它也有缺點:當客戶端數(shù)目激增時,服務器端的性能會因為負載過重而大大降低;客戶端和服務器端耦合度太高,維護和管理的難度較大;每臺客戶機都需要安裝相應的客戶端程序,給應用維護和升級帶來了極大的不便;大量的數(shù)據(jù)傳輸增加了網(wǎng)絡的負載。
為了解決以上存在的問題,人們將業(yè)務邏輯層提取出來作為單獨的中間層。該中間層為所有用戶共享,作為整個系統(tǒng)的核心,提供的功能主要有:負責客戶機與服務器、服務器與服務器間的連接和通信;實現(xiàn)應用與數(shù)據(jù)庫的高效連接;提供一個多層結構應用的開發(fā)、運行、部署和管理的平臺,具有事務處理、安全控制以及為滿足不同數(shù)量客戶機的請求而進行性能調(diào)整的能力。這樣,就使傳統(tǒng)的二層C/S結構演變成三層C/S結構,在層與層之間相互獨立,任何一層的改變不會影響其它層的功能,從而極大地降低了客戶端和服務器的耦合度;也使客戶端的工作量減少,開發(fā)和管理工作向服務器轉移,使得分布式數(shù)據(jù)處理成為可能。三層結構相對二層結構來說,無論是從理論上還是實踐上都使應用者向前邁進了一大步。但是三層結構也有其缺點:一是計算能力過于分散,客戶端的維護費用隨著客戶端的增加而遞增;二是對數(shù)據(jù)庫的資源使用限制在局域網(wǎng)范圍內(nèi),無法使用Internet資源。針對C/S結構的缺陷,B/S應運而生。
Internet/Intranet采用的B/S計算模型并不是一種全新的架構模型,其實質是一種擴展了的C/S模型。對于典型的三層應用系統(tǒng)來說,通??梢园严到y(tǒng)分成三個層次:數(shù)據(jù)層、表示層和業(yè)務邏輯層,如圖1所示。在這三個層次中,系統(tǒng)的主要功能和業(yè)務邏輯在業(yè)務邏輯層進行處理,主要處理以下幾個方面的問題:
1.數(shù)據(jù)的表示方式,也就是實體類的表示方式,以及同數(shù)據(jù)庫的對應關系,即所謂的O-R Map的問題。
2. 數(shù)據(jù)的存取方式,也就是實體類的持久化問題,通常采用數(shù)據(jù)庫來永久存儲數(shù)據(jù)實體,這就需要解決同數(shù)據(jù)庫的交互問題。
3.業(yè)務邏輯的組織方式。在面向對象的系統(tǒng)中,業(yè)務邏輯是通過對象間的消息傳遞來實現(xiàn)的。在這個部分,為了保證邏輯處理的正確性和可靠性,還必須支持事務處理的能力。
4.業(yè)務服務的提供方式。為了保證系統(tǒng)的靈活性和封裝性,系統(tǒng)必須有一個層來封裝這些業(yè)務邏輯,向客戶端提供服務,同時作為系統(tǒng)各個模塊間功能調(diào)用的接口,保證系統(tǒng)的高內(nèi)聚和低耦合性。這里的客戶指的不是操作的用戶,而是調(diào)用的界面、其他程序等。Web層通常只同這個部分交互,而不是直接調(diào)用業(yè)務邏輯層或者數(shù)據(jù)實體的功能。
將系統(tǒng)劃分成多層的好處是:能夠使得系統(tǒng)的架構更加清晰,從而每個層次完成的功能比較單一,而簡單功能的代碼是有規(guī)律可循的,這意味著我們可以開發(fā)一些工具來生成這些代碼。
圖1表示的意思可以這樣理解,Web客戶端(表示層)與Web服務器或應用服務器(業(yè)務邏輯層)之間通過HTTP協(xié)議進行通信,WEB服務器或應用服務器將數(shù)據(jù)請求發(fā)送至數(shù)據(jù)層,數(shù)據(jù)層將處理后的數(shù)據(jù)返回至業(yè)務邏輯層,再從業(yè)務邏輯層返回至用戶表示層。
B/S的三層架構體系相對于C/S架構來說,最大的改變是其數(shù)據(jù)通信完全是基于互聯(lián)網(wǎng)的,客戶端只需要有瀏覽器就可以使用系統(tǒng),不再需要進行客戶端的安裝部署,且用戶的界面具有一致性,易于學習與操作,降低了培訓成本。另外,由于開發(fā)環(huán)境獨立于用戶的前臺應用環(huán)境,從而提高了系統(tǒng)應用的跨平臺性,也便于系統(tǒng)的擴展、管理和升級等。
可將B/S三層體系結構的優(yōu)點歸納如下:
1.瘦客戶端結構??蛻舳酥恍枰惭b瀏覽器,系統(tǒng)擴展容易,所有開發(fā)均集中在服務器端;
2. 具有開放性和可跨平臺性,很容易與互聯(lián)網(wǎng)資源進行連接。
但是B/S也有其缺點:由于其采用點對點、多點對多點的開放式結構模式,并采用TCP/IP開放性協(xié)議,因此其安全性無法和適用于局域網(wǎng)的網(wǎng)絡協(xié)議相比,需要靠信息加密和身份驗證來保證,為了進一步增強系統(tǒng)的安全性,有時還需要構筑防火墻。
綜上所述,B/S與C/S這兩種技術架構在各自的領域各有利弊長短,但由于當前信息系統(tǒng)應用的重點逐漸向INTERNET領域靠近,且該領域B/S多層體系結構又是主流的開發(fā)模式,該種開發(fā)模式又具有分布性強、維護方便、開發(fā)簡單、共享性強、總體擁有成本低等優(yōu)點。因此,在本文所討論的通用系統(tǒng)開發(fā)模型的體系架構選型時,選擇了基于B/S架構模式來作為開發(fā)模型的架構體系。
參考文獻:
[1]孫亞民,開發(fā).NET平臺應用系統(tǒng)框架[EB/OL].賽迪網(wǎng),2007-6-12.
[2]溫昱,軟件架構解讀與架構師角色培養(yǎng)[J].希賽顧問-軟件工程???2007,3:59-60.