- C#網絡程序開發(第二版)
- 何波 傅由甲
- 14字
- 2020-06-30 17:14:22
第一部分 C#網絡程序開發基礎
第1章 C#網絡程序開發基礎知識
1.1 網絡通信模型及分類
1.1.1 分散式、集中式與分布式系統
為了網絡通信的需要,人們經常需要對網絡通信模型做一定的分析,為此,提出了各種參考模型。隨著科技的進步,網絡技術高速發展,網絡的通信模型也在不斷變化,但總體目標向著“簡單明了”和“實用化”的方向發展。根據數據的通信方式,可以將通信模型分為分散式(Decentralized)系統、集中式(Centralized)系統和分布式(Distributed)系統三大類。
1. 分散式系統
在分散式系統中,用戶只需負責管理自己的計算機系統,各自獨立的系統之間沒有資源或信息的交換或共享,由此引起大量共享數據的重復存儲,造成數據冗余,容易導致共享的不同用戶之間數據的不一致性,同時造成硬件的運營維護等成本大量增加。
2. 集中式系統
在集中式系統中,通過一臺主計算機保存共享的全部數據,用戶通過終端連接到這臺主計算機進行數據訪問。終端包含鍵盤和顯示器,使用通信鏈路接收和發送數據。
集中式系統的優點是資源集中,硬件成本低,數據共享訪問方便,減少或消除了數據的冗余與不一致。但它的主要缺點是可靠性不如分散式系統,一旦主機出現故障,整個系統都會癱瘓;另外,由于系統為所有用戶共享,無法滿足特殊用戶的計算需要,系統響應較慢。
3. 分布式系統
分布式系統是集中式系統和分散式系統的混合,由多個連接起來的獨立計算機組成。與計算機網絡相比,分布式系統的資源以透明的形式供給用戶使用,用戶在使用資源時無須知道該資源是本地的還是遠程的,對于遠程資源也可以像本地資源一樣任意調用,而計算機網絡則需要先知道資源的位置,與資源所在的主機建立連接后才能使用;此外,分布式系統還具有高度的內聚性,每個數據庫分布節點高度自治,有本地的數據庫管理系統。分布式系統的著名例子是萬維網(World Wide Web),在萬維網中,所有的Web看起來就好像是放在一個主機上一樣。
當然,分布式系統和計算機網絡還是有相通的地方,多數分布式系統的建立是以計算機網絡為基礎的,所以分布式系統與計算機網絡在物理結構上基本相同,它們的區別主要在軟件層面。
1.1.2 C/S、B/S與P2P網絡通信架構
1. C/S模型
C/S(Client/Server)模型也叫作C/S結構,即客戶機/服務器結構,它是在分散式系統、集中式系統和分布式系統的基礎之上發展出來的,當前的大多數通信網絡都是這種模型。
C/S模型將一個網絡事務處理分為兩部分,一部分是客戶端(Client),主要負責界面和處理業務邏輯,并為用戶提供網絡請求服務的接口,如數據查詢請求;一部分是服務器端(Server),一般以數據處理能力較強的數據庫管理系統作為后臺,負責接收和處理用戶對服務的請求,并將這些服務透明地提供給用戶。C/S結構一般采用兩層結構,如圖1-1所示。

圖1-1 C/S結構工作示意圖
從程序實現角度來說,客戶端和服務器端間的通信先由服務器端啟動Server進程,然后等待客戶端的請求服務;客戶端啟動Client進程向服務器申請服務。服務器處理完一個客戶端請求信息后再繼續等待其他客戶端的請求,周而復始地以這樣一種方式進行。
在這種結構中,服務器硬件需要足夠強的處理能力,才能滿足客戶的要求。
C/S結構的技術較為成熟,其特點是交互性強,具有安全的存取模式,網絡通信量低,響應速度快,利于處理大量的數據,可以充分利用兩端硬件環境的優勢,將任務合理分配到客戶端和服務器端來實現,既適用于實際應用程序,又適用于統一的計算和處理。但是它也有缺點,即該結構的程序為針對性開發,不能靈活變更,維護和管理的難度比較大,通常只局限于小型局域網,不利于擴展。
2. B/S模型
B/S(Browse/Server)模型即瀏覽器/服務器模式,也叫B/S結構。它只安裝維護一個服務器(Server),而客戶端采用瀏覽器(Browse)運行軟件。B/S結構是隨著Internet技術的興起,對C/S結構的變化和改進。它和C/S并沒有本質區別,是C/S模型的一種特例,特殊在于這種模型必須使用HTTP(Hypertext Transfer Protocol,超文本傳送協議)。
B/S結構采用的是三層客戶機/服務器結構,在數據管理層(Server)和用戶界面層(Client)增加了一層結構,稱為中間件(Middleware),使整個體系分為三層。三層結構是伴隨著中間件技術的成熟而興起的,核心概念是利用中間件將應用分別表示為界面層、業務邏輯層和數據存儲層3個不同的處理層,如圖1-2所示。

圖1-2 B/S結構工作示意圖
中間件作為構造三層結構的基礎平臺,具有如下主要功能:負責客戶機與服務器、服務器與數據庫之間的連接和通信;實現應用與數據庫之間的高效連接。具有中間件的三層結構在層與層之間相互獨立,任一層的改變都不會影響其他層的功能。
在B/S體系結構系統中,用戶通過瀏覽器向分布在網絡上的許多服務器發出請求,服務器對瀏覽器的請求進行處理,將用戶所需信息返回到瀏覽器。而其余的工作,如數據請求、加工、結果返回以及動態網頁生成、對數據庫的訪問和應用程序的執行等,全部由服務器完成。可以看出,B/S結構相對于C/S結構是一個非常大的進步。
B/S結構的主要特點是分布性強、維護方便、開發簡單且共享性強,如一臺計算機可以訪問任意一個Web服務器,用戶只需要知道服務器的網址即可訪問,不需要針對不同服務器分別提供專門的客戶端軟件。但B/S結構的缺點在于數據存在安全性問題,對服務器要求過高,數據傳輸慢,軟件個性化特點明顯降低,而且實現復雜的應用構造有較大困難。
綜上所述,兩種模式各有利弊。C/S結構適用于特定范圍,如局域網;而B/S結構則可以彌補C/S結構在應用平臺上的功能不足。從可擴展性和高靈活性顯示,B/S結構將是未來的發展方向。
3. P2P模型
P2P(Peer-to-Peer)稱為對等互連模型。在此環境中,網絡上的各臺主機具有相同的功能,無主從之分,任一臺計算機都是既可當服務器,設定共享資源供網絡中其他計算機使用,又可作為工作站。從程序實現來說,一個應用程序同時起到客戶端和服務器的作用。目前,它是小型局域網常用的組網方式,其優點是配置容易,通信便利,成本低;缺點是可靠性不如C/S模型,易遭黑客攻擊。