這里要說的是三類分布式系統(tǒng):局域網(wǎng)文件服務(wù)器結(jié)構(gòu)、客戶/服務(wù)器體系結(jié)構(gòu)(2層和N層)、基于Web的計(jì)算
1. 局域網(wǎng)文件服務(wù)器體系結(jié)構(gòu)
(1)服務(wù)器僅裝載了數(shù)據(jù)層,系統(tǒng)應(yīng)用的其他層都在客戶端實(shí)現(xiàn)
(2)執(zhí)行過程:
a. 用戶向服務(wù)器發(fā)送一個(gè)文件請(qǐng)求。
b. 文件服務(wù)器會(huì)從數(shù)據(jù)庫中找到相應(yīng)的表,傳送給客戶端,同時(shí)對(duì)所選表加鎖,直到客戶端返回表為止。
c. 客戶端采用本地程序?qū)Ρ磉M(jìn)行修改、讀取或其他處理,然后再把表返回文件服務(wù)器。
(3)適用領(lǐng)域:較少的小型數(shù)據(jù)庫。
(4)缺點(diǎn):
a. 客戶端和服務(wù)器之間需要移動(dòng)大量不必要的數(shù)據(jù),降低了應(yīng)用性能。
【客戶端和服務(wù)器之間傳輸?shù)亩际俏募?/p>
b. 客戶端必須相當(dāng)健壯。
【客戶端做了幾乎所有的工作,而且必須有足夠的磁盤空間來存儲(chǔ)下載的表】
c. 容易破壞數(shù)據(jù)的完整性。
【客戶端可以直接修改數(shù)據(jù)庫中的表】
d. 對(duì)環(huán)境的變化及用戶需求變革的適應(yīng)性差。
【一旦發(fā)生變化,客戶端和服務(wù)器端的應(yīng)用程序都必須修改,增加了維護(hù)的工作量】
2. 客戶機(jī)/服務(wù)器(Client/Server)體系結(jié)構(gòu)(兩層分布式)
(1)服務(wù)器端:數(shù)據(jù)存儲(chǔ)層、數(shù)據(jù)處理層
? ? ? ? 客戶端:應(yīng)用邏輯層、表現(xiàn)邏輯層、表現(xiàn)層
【充分挖掘使用了客戶端的計(jì)算能力】
(2)C/S體系結(jié)構(gòu)有三個(gè)主要組成部分:數(shù)據(jù)庫服務(wù)器、客戶應(yīng)用程序和網(wǎng)絡(luò)。
(3)服務(wù)器的任務(wù):數(shù)據(jù)庫安全性的要求;數(shù)據(jù)庫訪問并發(fā)性的控制;數(shù)據(jù)庫前端的客戶應(yīng)用程序的全局?jǐn)?shù)據(jù)完整性規(guī)則;數(shù)據(jù)庫的備份與恢復(fù)。
【服務(wù)器和數(shù)據(jù)庫的訪問、數(shù)據(jù)修改之類的有關(guān)】
? ? ? ? 客戶端的任務(wù):提供用戶與數(shù)據(jù)庫交互的界面;向數(shù)據(jù)庫服務(wù)器提交用戶請(qǐng)求并接收來自數(shù)據(jù)庫服務(wù)器的信息;利用客戶應(yīng)用程序?qū)Υ嬖谟诳蛻舳说臄?shù)據(jù)執(zhí)行應(yīng)用邏輯要求。
【客戶端和用戶交互、服務(wù)器訪問、數(shù)據(jù)處理有關(guān)】
(4)C/S的處理流程:

(5)優(yōu)點(diǎn):
a. 具有強(qiáng)大的數(shù)據(jù)操作和事務(wù)處理能力,模型思想簡(jiǎn)單,易于人們理解和接受。
b. 對(duì)于硬件和軟件的變化顯示出極大的適應(yīng)性和靈活性,而且易于對(duì)系統(tǒng)進(jìn)行擴(kuò)充和縮小。
【系統(tǒng)是分布式的,客戶端和服務(wù)器運(yùn)行在不同的電腦上】
c. 系統(tǒng)中的功能構(gòu)件充分隔離。
【服務(wù)器和客戶端任務(wù)分明?!?/p>
d. 將大的應(yīng)用處理任務(wù)分布到許多通過網(wǎng)絡(luò)連接的低成本計(jì)算機(jī)上,以節(jié)約大量費(fèi)用。
(6)缺點(diǎn):
a. 開發(fā)成本較高
b. 客戶端程序設(shè)計(jì)復(fù)雜
c. 用戶界面風(fēng)格不一,使用繁雜,不利于推廣使用
d. 信息內(nèi)容和形式單一
e. 軟件移植困難
f. 軟件維護(hù)和升級(jí)困難
g. 新技術(shù)不能輕易應(yīng)用
3. C/S N層體系結(jié)構(gòu)
(1)在客戶端和服務(wù)器之間加入一層或多層服務(wù)器。
4. 客戶機(jī)/服務(wù)器(Client/Server)體系結(jié)構(gòu)(三層)

(1)客戶端:表現(xiàn)邏輯層、表現(xiàn)層
? ? ? ? ?中間服務(wù)器:應(yīng)用邏輯層
? ? ? ? ?服務(wù)器:數(shù)據(jù)存儲(chǔ)層、數(shù)據(jù)處理層
(2)三層C/S的處理流程

(3)優(yōu)點(diǎn):
a. 應(yīng)用的各層可以并行開發(fā),可以選擇各自最適合的開發(fā)語言。
b. 利用功能層有效地隔離開表示層與數(shù)據(jù)層,未授權(quán)的用戶難以繞過功能層而利用數(shù)據(jù)庫工具或黑客手段去非法地訪問數(shù)據(jù)層,為嚴(yán)格的安全管理奠定了堅(jiān)實(shí)的基礎(chǔ)。
?【有點(diǎn)像封裝】
c. 允許合理地劃分三層結(jié)構(gòu)的功能,使之在邏輯上保持相對(duì)獨(dú)立性,能提高系統(tǒng)和軟件的可維護(hù)性和可擴(kuò)展性。
d. 把應(yīng)用的業(yè)務(wù)邏輯與用戶界面分開,將商業(yè)邏輯放在經(jīng)過合理任務(wù)劃分與物理部署后的中間層應(yīng)用服務(wù)器上,從而客戶程序通過中間層簡(jiǎn)介訪問數(shù)據(jù)庫,客戶端修改不影響服務(wù)器
e. 客戶數(shù)可以充分?jǐn)U展,如果需要修改應(yīng)用程序代碼,只需對(duì)中間層應(yīng)用服務(wù)器進(jìn)行修改,而不用修改成千上萬的客戶端應(yīng)用程序。
【中間的應(yīng)用邏輯層相當(dāng)于軟件的功能,然后客戶端是一個(gè)顯示界面】
5. 瀏覽器/服務(wù)器(B/S)風(fēng)格
(1)B/S風(fēng)格是上述三層應(yīng)用結(jié)構(gòu)的一種實(shí)現(xiàn)方式,其具體結(jié)構(gòu)為:瀏覽器/Web服務(wù)器/數(shù)據(jù)庫服務(wù)器。

(2)基于B/S體系結(jié)構(gòu)的軟件,系統(tǒng)安裝、修改和維護(hù)全在服務(wù)器端解決。
【用戶僅僅需要一個(gè)瀏覽器就能使用所有的模塊】
(3)缺點(diǎn):
a. 缺乏對(duì)動(dòng)態(tài)頁面的支持能力,沒有集成有效的數(shù)據(jù)庫處理功能。
【因?yàn)橐粩嗨⑿虏拍塬@取】
b. 系統(tǒng)擴(kuò)展能力差,安全性難以控制。
【所有東西都在服務(wù)器上】
c. 在數(shù)據(jù)查詢等響應(yīng)速度上,要遠(yuǎn)遠(yuǎn)地低于C/S體系結(jié)構(gòu)。
d. 數(shù)據(jù)提交一般以頁面為單位,數(shù)據(jù)的動(dòng)態(tài)交互性不強(qiáng),不利于在線事務(wù)處理(OLTP)應(yīng)用。
6. 公共對(duì)象請(qǐng)求代理結(jié)構(gòu)CORBA(Common?Object Request Broker Architecture)
(1)是一種獨(dú)立于語言和軟件/硬件平臺(tái)的軟件構(gòu)件模型。
(2)CORBA主要由對(duì)象請(qǐng)求代理、公共對(duì)象服務(wù)、通用設(shè)施和應(yīng)用接口組成。
(3)對(duì)象請(qǐng)求代理ORB:建立基于分布式對(duì)象的應(yīng)用程序的基礎(chǔ),使得分布式對(duì)象之間能夠透明的發(fā)送請(qǐng)求或接受響應(yīng)。
【CORBA中所有的通信都通過ORB進(jìn)行,所以遠(yuǎn)程和近程是等價(jià)的。】
? ? ? ? 對(duì)象服務(wù):對(duì)象管理體系結(jié)構(gòu)OMA定義的一系列獨(dú)立于應(yīng)用領(lǐng)域的服務(wù)。它的本職是將覆蓋對(duì)象整個(gè)生存期的對(duì)象管理任務(wù)標(biāo)準(zhǔn)化。
【用來提供基本ORB功能之上的更高系統(tǒng)級(jí)服務(wù)?!?/p>
? ? ? ?通用設(shè)施:是IDL定義的、向終端用戶應(yīng)用程序提供的一組服務(wù)接口的集合。
? ? ? ?應(yīng)用程序?qū)ο螅簽榻K端用戶執(zhí)行特定的任務(wù),主要為某一類應(yīng)用或一個(gè)特定的應(yīng)用提供服務(wù),位于整個(gè)OMA參考模型的最高層。
(4)對(duì)象管理結(jié)構(gòu)

(5)特點(diǎn):
a. CORBA在基于網(wǎng)絡(luò)的分布式應(yīng)用環(huán)境下實(shí)現(xiàn)應(yīng)用軟件的集成。
b. CORBA采用并吸收了面向?qū)ο蠹夹g(shù)、分布式計(jì)算技術(shù)和多層體系結(jié)構(gòu)技術(shù),實(shí)現(xiàn)了在分布式應(yīng)用環(huán)境中軟件的可復(fù)用性、可移植性和互操作性。
c. 提供“軟件總線”機(jī)制,任何應(yīng)用只要提供按照CORBA規(guī)范定義的一組接口,就可以方便的集成到CORBA系統(tǒng)中。
d. 使用代理擴(kuò)展了客戶/服務(wù)器的計(jì)算模型。
【代理的作用是:完成對(duì)客戶發(fā)出的抽象服務(wù)請(qǐng)求的映射,自動(dòng)發(fā)現(xiàn)并找到服務(wù)器,自動(dòng)設(shè)定路由,實(shí)現(xiàn)服務(wù)器程序的執(zhí)行】
【客戶和服務(wù)器完全分離??蛻舨辉倥c服務(wù)器直接聯(lián)系,而是與代理發(fā)生聯(lián)系。這樣,客戶和服務(wù)器都易于維護(hù)、修改?!?/p>
e. 使用IDL定義接口
7. 正交軟件體系結(jié)構(gòu)

(1)正交軟件體系結(jié)構(gòu)由組織層和線索的構(gòu)件構(gòu)成。
? ? ? ? 層是由一組具有相同抽象級(jí)別的構(gòu)件構(gòu)成。
? ? ? ? 線索是子系統(tǒng)的特例,它是由完成不同層次功能的構(gòu)件組成(通過相互調(diào)用來關(guān)聯(lián)),每一條線索完成整個(gè)系統(tǒng)中相對(duì)獨(dú)立的一部分功能。
【這里有點(diǎn)像分層的體系結(jié)構(gòu)】
(2)線索是縱向的,?每一條線索的實(shí)現(xiàn)與其他線索的實(shí)現(xiàn)無關(guān)或關(guān)聯(lián)很少,在同一層中的構(gòu)件之間是不存在相互調(diào)用的。
(3)如果線索是相互獨(dú)立的,即不同線索中的構(gòu)件之間沒有相互調(diào)用,那么這個(gè)結(jié)構(gòu)就是完全正交的。
(4)同一層次的構(gòu)件不允許互相調(diào)用。
【相互獨(dú)立】
(5)系統(tǒng)有一個(gè)公共驅(qū)動(dòng)層(一般為最高層)和公共數(shù)據(jù)結(jié)構(gòu)(一般為最低層)。
(6)特點(diǎn):
a. 結(jié)構(gòu)清晰,易于理解。
【線索功能相互獨(dú)立,不進(jìn)行互相調(diào)用。每個(gè)構(gòu)件的位置都十分明了?!?/p>
b. 易修改,可維護(hù)性強(qiáng)。
【由于線索之間是相互獨(dú)立的,所以對(duì)一個(gè)線索的修改不會(huì)影響到其他線索?!?/p>
c. 可移植性強(qiáng),重用粒度大。
8. 異構(gòu)結(jié)構(gòu)風(fēng)格
(1)由這些純體系結(jié)構(gòu)組合而成。
(2)C/S與B/S混合之內(nèi)外有別模型:

a. 優(yōu)點(diǎn):外部用戶不直接訪問數(shù)據(jù)庫服務(wù)器,能保證企業(yè)數(shù)據(jù)庫的相對(duì)安全。企業(yè)內(nèi)部的用戶交互性強(qiáng),數(shù)據(jù)查詢和響應(yīng)速度較快。
b. 缺點(diǎn):企業(yè)外部用戶修改和維護(hù)數(shù)據(jù)時(shí),速度較慢,較繁瑣,數(shù)據(jù)的動(dòng)態(tài)交互性不強(qiáng)。
(3)C/S與B/S混合之查改有別模型:

a. 缺點(diǎn):外部用戶能直接通過Internet連接到數(shù)據(jù)庫服務(wù)器,企業(yè)數(shù)據(jù)容易暴露給外部用戶,給數(shù)據(jù)安全這造成一定的威脅。