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