官术网_书友最值得收藏!

第一部分 C#網(wǎng)絡(luò)程序開發(fā)基礎(chǔ)

第1章 C#網(wǎng)絡(luò)程序開發(fā)基礎(chǔ)知識

1.1 網(wǎng)絡(luò)通信模型及分類

1.1.1 分散式、集中式與分布式系統(tǒng)

為了網(wǎng)絡(luò)通信的需要,人們經(jīng)常需要對網(wǎng)絡(luò)通信模型做一定的分析,為此,提出了各種參考模型。隨著科技的進步,網(wǎng)絡(luò)技術(shù)高速發(fā)展,網(wǎng)絡(luò)的通信模型也在不斷變化,但總體目標向著“簡單明了”和“實用化”的方向發(fā)展。根據(jù)數(shù)據(jù)的通信方式,可以將通信模型分為分散式(Decentralized)系統(tǒng)、集中式(Centralized)系統(tǒng)和分布式(Distributed)系統(tǒng)三大類。

1. 分散式系統(tǒng)

在分散式系統(tǒng)中,用戶只需負責(zé)管理自己的計算機系統(tǒng),各自獨立的系統(tǒng)之間沒有資源或信息的交換或共享,由此引起大量共享數(shù)據(jù)的重復(fù)存儲,造成數(shù)據(jù)冗余,容易導(dǎo)致共享的不同用戶之間數(shù)據(jù)的不一致性,同時造成硬件的運營維護等成本大量增加。

2. 集中式系統(tǒng)

在集中式系統(tǒng)中,通過一臺主計算機保存共享的全部數(shù)據(jù),用戶通過終端連接到這臺主計算機進行數(shù)據(jù)訪問。終端包含鍵盤和顯示器,使用通信鏈路接收和發(fā)送數(shù)據(jù)。

集中式系統(tǒng)的優(yōu)點是資源集中,硬件成本低,數(shù)據(jù)共享訪問方便,減少或消除了數(shù)據(jù)的冗余與不一致。但它的主要缺點是可靠性不如分散式系統(tǒng),一旦主機出現(xiàn)故障,整個系統(tǒng)都會癱瘓;另外,由于系統(tǒng)為所有用戶共享,無法滿足特殊用戶的計算需要,系統(tǒng)響應(yīng)較慢。

3. 分布式系統(tǒng)

分布式系統(tǒng)是集中式系統(tǒng)和分散式系統(tǒng)的混合,由多個連接起來的獨立計算機組成。與計算機網(wǎng)絡(luò)相比,分布式系統(tǒng)的資源以透明的形式供給用戶使用,用戶在使用資源時無須知道該資源是本地的還是遠程的,對于遠程資源也可以像本地資源一樣任意調(diào)用,而計算機網(wǎng)絡(luò)則需要先知道資源的位置,與資源所在的主機建立連接后才能使用;此外,分布式系統(tǒng)還具有高度的內(nèi)聚性,每個數(shù)據(jù)庫分布節(jié)點高度自治,有本地的數(shù)據(jù)庫管理系統(tǒng)。分布式系統(tǒng)的著名例子是萬維網(wǎng)(World Wide Web),在萬維網(wǎng)中,所有的Web看起來就好像是放在一個主機上一樣。

當(dāng)然,分布式系統(tǒng)和計算機網(wǎng)絡(luò)還是有相通的地方,多數(shù)分布式系統(tǒng)的建立是以計算機網(wǎng)絡(luò)為基礎(chǔ)的,所以分布式系統(tǒng)與計算機網(wǎng)絡(luò)在物理結(jié)構(gòu)上基本相同,它們的區(qū)別主要在軟件層面。

1.1.2 C/S、B/S與P2P網(wǎng)絡(luò)通信架構(gòu)

1. C/S模型

C/S(Client/Server)模型也叫作C/S結(jié)構(gòu),即客戶機/服務(wù)器結(jié)構(gòu),它是在分散式系統(tǒng)、集中式系統(tǒng)和分布式系統(tǒng)的基礎(chǔ)之上發(fā)展出來的,當(dāng)前的大多數(shù)通信網(wǎng)絡(luò)都是這種模型。

C/S模型將一個網(wǎng)絡(luò)事務(wù)處理分為兩部分,一部分是客戶端(Client),主要負責(zé)界面和處理業(yè)務(wù)邏輯,并為用戶提供網(wǎng)絡(luò)請求服務(wù)的接口,如數(shù)據(jù)查詢請求;一部分是服務(wù)器端(Server),一般以數(shù)據(jù)處理能力較強的數(shù)據(jù)庫管理系統(tǒng)作為后臺,負責(zé)接收和處理用戶對服務(wù)的請求,并將這些服務(wù)透明地提供給用戶。C/S結(jié)構(gòu)一般采用兩層結(jié)構(gòu),如圖1-1所示。

圖1-1 C/S結(jié)構(gòu)工作示意圖

從程序?qū)崿F(xiàn)角度來說,客戶端和服務(wù)器端間的通信先由服務(wù)器端啟動Server進程,然后等待客戶端的請求服務(wù);客戶端啟動Client進程向服務(wù)器申請服務(wù)。服務(wù)器處理完一個客戶端請求信息后再繼續(xù)等待其他客戶端的請求,周而復(fù)始地以這樣一種方式進行。

在這種結(jié)構(gòu)中,服務(wù)器硬件需要足夠強的處理能力,才能滿足客戶的要求。

C/S結(jié)構(gòu)的技術(shù)較為成熟,其特點是交互性強,具有安全的存取模式,網(wǎng)絡(luò)通信量低,響應(yīng)速度快,利于處理大量的數(shù)據(jù),可以充分利用兩端硬件環(huán)境的優(yōu)勢,將任務(wù)合理分配到客戶端和服務(wù)器端來實現(xiàn),既適用于實際應(yīng)用程序,又適用于統(tǒng)一的計算和處理。但是它也有缺點,即該結(jié)構(gòu)的程序為針對性開發(fā),不能靈活變更,維護和管理的難度比較大,通常只局限于小型局域網(wǎng),不利于擴展。

2. B/S模型

B/S(Browse/Server)模型即瀏覽器/服務(wù)器模式,也叫B/S結(jié)構(gòu)。它只安裝維護一個服務(wù)器(Server),而客戶端采用瀏覽器(Browse)運行軟件。B/S結(jié)構(gòu)是隨著Internet技術(shù)的興起,對C/S結(jié)構(gòu)的變化和改進。它和C/S并沒有本質(zhì)區(qū)別,是C/S模型的一種特例,特殊在于這種模型必須使用HTTP(Hypertext Transfer Protocol,超文本傳送協(xié)議)。

B/S結(jié)構(gòu)采用的是三層客戶機/服務(wù)器結(jié)構(gòu),在數(shù)據(jù)管理層(Server)和用戶界面層(Client)增加了一層結(jié)構(gòu),稱為中間件(Middleware),使整個體系分為三層。三層結(jié)構(gòu)是伴隨著中間件技術(shù)的成熟而興起的,核心概念是利用中間件將應(yīng)用分別表示為界面層、業(yè)務(wù)邏輯層和數(shù)據(jù)存儲層3個不同的處理層,如圖1-2所示。

圖1-2 B/S結(jié)構(gòu)工作示意圖

中間件作為構(gòu)造三層結(jié)構(gòu)的基礎(chǔ)平臺,具有如下主要功能:負責(zé)客戶機與服務(wù)器、服務(wù)器與數(shù)據(jù)庫之間的連接和通信;實現(xiàn)應(yīng)用與數(shù)據(jù)庫之間的高效連接。具有中間件的三層結(jié)構(gòu)在層與層之間相互獨立,任一層的改變都不會影響其他層的功能。

在B/S體系結(jié)構(gòu)系統(tǒng)中,用戶通過瀏覽器向分布在網(wǎng)絡(luò)上的許多服務(wù)器發(fā)出請求,服務(wù)器對瀏覽器的請求進行處理,將用戶所需信息返回到瀏覽器。而其余的工作,如數(shù)據(jù)請求、加工、結(jié)果返回以及動態(tài)網(wǎng)頁生成、對數(shù)據(jù)庫的訪問和應(yīng)用程序的執(zhí)行等,全部由服務(wù)器完成。可以看出,B/S結(jié)構(gòu)相對于C/S結(jié)構(gòu)是一個非常大的進步。

B/S結(jié)構(gòu)的主要特點是分布性強、維護方便、開發(fā)簡單且共享性強,如一臺計算機可以訪問任意一個Web服務(wù)器,用戶只需要知道服務(wù)器的網(wǎng)址即可訪問,不需要針對不同服務(wù)器分別提供專門的客戶端軟件。但B/S結(jié)構(gòu)的缺點在于數(shù)據(jù)存在安全性問題,對服務(wù)器要求過高,數(shù)據(jù)傳輸慢,軟件個性化特點明顯降低,而且實現(xiàn)復(fù)雜的應(yīng)用構(gòu)造有較大困難。

綜上所述,兩種模式各有利弊。C/S結(jié)構(gòu)適用于特定范圍,如局域網(wǎng);而B/S結(jié)構(gòu)則可以彌補C/S結(jié)構(gòu)在應(yīng)用平臺上的功能不足。從可擴展性和高靈活性顯示,B/S結(jié)構(gòu)將是未來的發(fā)展方向。

3. P2P模型

P2P(Peer-to-Peer)稱為對等互連模型。在此環(huán)境中,網(wǎng)絡(luò)上的各臺主機具有相同的功能,無主從之分,任一臺計算機都是既可當(dāng)服務(wù)器,設(shè)定共享資源供網(wǎng)絡(luò)中其他計算機使用,又可作為工作站。從程序?qū)崿F(xiàn)來說,一個應(yīng)用程序同時起到客戶端和服務(wù)器的作用。目前,它是小型局域網(wǎng)常用的組網(wǎng)方式,其優(yōu)點是配置容易,通信便利,成本低;缺點是可靠性不如C/S模型,易遭黑客攻擊。

主站蜘蛛池模板: 宁化县| 饶阳县| 阿拉善右旗| 丹寨县| 台前县| 柏乡县| 武宁县| 延安市| 清苑县| 龙门县| 阿合奇县| 桦甸市| 南昌市| 澄迈县| 偃师市| 揭阳市| 邮箱| 大化| 满城县| 共和县| 莎车县| 会昌县| 垦利县| 德清县| 和林格尔县| 梅河口市| 吴桥县| 凉山| 大冶市| 泽普县| 大连市| 桑日县| 尼木县| 永顺县| 常德市| 罗甸县| 勐海县| 海盐县| 新兴县| 岳普湖县| 绥宁县|