软件架构风格整理(6 CS,BS等)
1.1????? CS結構
?C/S軟件體系結構是基于資源不對等,且為實現共享而提出來的,是20世紀90年代成熟起來的技術, C/S體系結構定義了工作站如何與服務器相連,以實現數據和應用分布到多個處理機上。
C/S體系結構有三個主要組成部分:數據庫服務器、客戶應用程序和網絡。
l? 服務器
(1)數據庫安全性的要求;
(2)數據庫訪問并發性的控制;
(3)數據庫前端的客戶應用程序的全局數據完整性規則;
(4)數據庫的備份與恢復。
l? 客戶應用程序
(1)提供用戶與數據庫交互的界面;
(2)向數據庫服務器提交用戶請求并接收來自數據庫服務器的信息;
(3)利用客戶應用程序對存在于客戶端的數據執行應用邏輯要求。
1)???????? 優點
ü? C/S 體系結構具有強大的數據操作和事務處理能力,模型思想簡單,易于人們理解和接受。
ü? 系統的客戶應用程序和服務器構件分別運行在不同的計算機上,系統中每臺服務器都可以適合各構件的要求,這對于硬件和軟件的變化顯示出極大的適應性和靈活性,而且易于對系統進行擴充和縮小。
ü? 在C/S體系結構中,系統中的功能構件充分隔離,客戶應用程序的開發集中于數據的顯示和分析,而數據庫服務器的開發則集中于數據的管理,不必在每一個新的應用程序中都要對一DBMS進行編碼。將大的應用處理任務分布到許多通過網絡連接的低成本計算機上,以節約大量費用。
2)???????? 缺點
ü? 開發成本較高
ü? 客戶端程序設計復雜
ü? 信息內容和形式單一
ü? 用戶界面風格不一,使用繁雜,不利于推廣使用
ü? 軟件移植困難
ü? 軟件維護和升級困難
ü? 新技術不能輕易應用
1.2????? CS三層架構
c/s軟件體系結構是20世紀90年代成熟起來的技術,它將應用一分為二,服務器(后臺)負責數據管理.客戶機(前臺)完成與用戶的交互任務。 傳統的二層c/s結構存在以下幾個局限:
1.二層c/s結構是 單一服務器且以局域網為中心的.所以難以擴展至大型企業廣域網或Internet;
2.軟硬件的組合及集成能力有限;
3.客戶機的負荷太重.難以管理大量的客戶機.系統的性能容易變壞;
4.數據 安全性不好。
因為二層C/S有這么多缺點.三層C/S結構應運而生。三層C/S結構是將應用功能分成表示層、功能層和數據層三個部分.
圖 2 三層C/S結構示意圖
表示層是應用的用戶接口部分,它擔負著用戶與應用間的對話功能。它用于檢查用戶從鍵盤等輸入的數據,顯示應用輸出的數據。為使用戶能直觀地進行操作,一般要使用圖形用戶接口,操作簡單、易學易用。在變更用戶接口時,只需改寫顯示控制和數據檢查程序,而不影響其他兩層。檢查的內容也只限于數據的形式和取值的范圍,不包括有關業務本身的處理邏輯。
功能層相當于應用的本體,它是將具體的業務處理邏輯編入程序中。例如,在制作訂購合同時要計算合同金額,按照定好的格式配置數據、打印訂購合同,而處理所需的數據則要從表示層或數據層取得。表示層和功能層之間的數據交往要盡可能簡潔。例如,用戶檢索數據時,要設法將有關檢索要求的信息一次性地傳送給功能層,而由功能層處理過的檢索結果數據也一次性地傳送給表示層。
通常,在功能層中包含有確認用戶對應用和數據庫存取權限的功能以及記錄系統處理日志的功能。功能層的程序多半是用可視化編程工具開發的,也有使用COBOL和C語言的。
數據層就是數據庫管理系統,負責管理對數據庫數據的讀寫。數據庫管理系統必須能迅速執行大量數據的更新和檢索。因此,一般從功能層傳送到數據層的要求大都使用SQL語言。
三層C/S的解決方案是:對這三層進行明確分割,并在邏輯上使其獨立。原來的數據層作為數據庫管理系統已經獨立出來,所以,關鍵是要將表示層和功能層分離成各自獨立的程序,并且還要使這兩層間的接口簡潔明了。
一般情況是只將表示層配置在客戶機中,如果連功能層也放在客戶機中,與二層C/S結構相比,其程序的可維護性要好得多,但是其他問題并未得到解決。客戶機的負荷太重,其業務處理所需的數據要從服務器傳給客戶機,所以系統的性能容易變壞。
如果將功能層和數據層分別放在不同的服務器中,則服務器和服務器之間也要進行數據傳送。但是,由于在這種形態中三層是分別放在各自不同的硬件系統上的,所以靈活性很高,能夠適應客戶機數目的增加和處理負荷的變動。例如,在追加新業務處理時,可以相應增加裝載功能層的服務器。因此,系統規模越大這種形態的優點就越顯著。
n? 與傳統的二層結構相比,三層C/S結構具有以下優點:
1)??????? 允許合理地劃分三層結構的功能,使之在邏輯上保持相對獨立性,從而使整個系統的邏輯結構更為清晰,能提高系統和軟件的可維護性和可擴展性。
2)??????? 允許更靈活有效地選用相應的平臺和硬件系統,使之在處理負荷能力上與處理特性上分別適應于結構清晰的三層;并且這些平臺和各個組成部分可以具有良好的可升級性和開放性。例如,最初用一臺Unix工作站作為服務器,將數據層和功能層都配置在這臺服務器上。隨著業務的發展,用戶數和數據量逐漸增加,這時,就可以將Unix工作站作為功能層的專用服務器,另外追加一臺專用于數據層的服務器。若業務進一步擴大,用戶數進一步增加,則可以繼續增加功能層的服務器數目,用以分割數據庫。清晰、合理地分割三層結構并使其獨立,可以使系統構成的變更非常簡單。因此,被分成三層的應用基本上不需要修正。
3)??????? 三層C/S結構中,應用的各層可以并行開發,各層也可以選擇各自最適合的開發語言。使之能并行地而且是高效地進行開發,達到較高的性能價格比;對每一層的處理邏輯的開發和維護也會更容易些。
4)??????? 允許充分利用功能層有效地隔離開表示層與數據層,未授權的用戶難以繞過功能層而利用數據庫工具或黑客手段去非法地訪問數據層,這就為嚴格的安全管理奠定了堅實的基礎;
5)??????? 整個系統的管理層次也更加合理和可控制。
n? 要注意的問題
1)???????? 三層C/S結構各層間的通信效率若不高,即使分配給各層的硬件能力很強,其作為整體來說也達不到所要求的性能。
2)???????? 設計時必須慎重考慮三層間的通信方法、通信頻度及數據量。這和提高各層的獨立性一樣是三層C/S結構的關鍵問題。
1.3????? 瀏覽器/服務器風格
瀏覽器/服務器(B/S)風格就是上述三層應用結構的一種實現方式,其具體結構為:瀏覽器/Web服務器/數據庫服務器。◎ B/S體系結構主要是利用不斷成熟的WWW瀏覽器技術,結合瀏覽器的多種腳本語言,用通用瀏覽器就實現了原來需要復雜的專用軟件才能實現的強大功能,并節約了開發成本。從某種程度上來說,B/S結構是一種全新的軟件體系結構。
優點
1)???????? 基于B/S體系結構的軟件,系統安裝、修改和維護全在服務器端解決。用戶在使用系統時,僅僅需要一個瀏覽器就可運行全部的模塊,真正達到了“零客戶端”的功能,很容易在運行時自動升級。
2)???????? B/S體系結構還提供了異種機、異種網、異種應用服務的聯機、聯網、統一服務的最現實的開放性基礎。
缺點
1)???????? B/S體系結構缺乏對動態頁面的支持能力,沒有集成有效的數據庫處理功能。
2)???????? B/S體系結構的系統擴展能力差,安全性難以控制。
3)?? 采用B/S體系結構的應用系統,在數據查詢等響應速度上,要遠遠地低于C/S體系結構。
4)???????? B/S體系結構的數據提交一般以頁面為單位,數據的動態交互性不強,不利于在線事務處理(OLTP)應用。
?
1.4????? C/S與B/S混合軟件體系結構
B/S與C/S混合軟件體系結構是一種典型的異構體系結構。
B/S軟件體系結構,即Browser/Server (瀏覽器/服務器)結構,是隨著Internet技術的興起,對C/S體系結構的一種變化或者改進的結構。在B/S體系結構下,用戶界面完全通過WWW瀏覽器實現,一部分事務邏輯在前端實現,但是主要事務邏輯在服務器端實現。
B/S體系結構主要是利用不斷成熟的WWW瀏覽器技術,結合瀏覽器的多種腳本語言,用通用瀏覽器就實現了原來需要復雜的專用軟件才能實現的強大功能,并節約了開發成本,是一種全新的軟件體系結構。基于B/S體系結構的軟件,系統安裝、修改和維護全在服務器端解決。用戶在使用系統時,僅僅需要一個瀏覽器就可運行全部的模塊,真正達到了"零客戶端"的功能,很容易在運行時自動升級。B/S體系結構還提供了異種機、異種網、異種應用服務的聯機、聯網、統一服務的最現實的開放性基礎。
但是,與C/S體系結構相比,B/S體系結構也有許多不足之處,例如:
(1)B/S體系結構缺乏對動態頁面的支持能力,沒有集成有效的數據庫處理功能。
(2)B/S體系結構的系統擴展能力差,安全性難以控制。
(3)采用B/S體系結構的應用系統,在數據查詢等響應速度上,要遠遠地低于C/S體系結構。
(4)B/S體系結構的數據提交一般以頁面為單位,數據的動態交互性不強,不利于在線事務處理(OLTP)應用。
從上面的對比分析中,我們可以看出,傳統的C/S體系結構并非一無是處,而新興的B/S體系結構也并非十全十美。由于C/S體系結構根深蒂固,技術成熟,原來的很多軟件系統都是建立在C/S體系結構基礎上的,因此,B/S體系結構要想在軟件開發中起主導作用,要走的路還很長。我們認為,C/S體系結構與B/S體系結構還將長期共存。
C/S與B/S混合軟件體系結構的優點是外部用戶不直接訪問數據庫服務器,能保證企業數據庫的相對安全。企業內部用戶的交互性較強,數據查詢和修改的響應速度較快。
C/S與B/S混合軟件體系結構的缺點是企業外部用戶修改和維護數據時,速度較慢,較煩瑣,數據的動態交互性不強。
?PS:其實BS和CS(三層)的融合是必然之路,這是各自風格的優缺點和系統實際需要所決定的.比如在ERP系統中,貼近生產,需要操作效率(例如 MRP)和對本地控制要求比較高的可以采用CS三層,但對于一些行政OA性質的,一些對外接口則可以采用BS的(例如電子商務部分).
總結
以上是生活随笔為你收集整理的软件架构风格整理(6 CS,BS等)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 毕业设计 单片机心率检测器设计与实现 -
- 下一篇: 图片缩放库 Photoview 和 Gi