1兴蒸、目錄
- 概述
- 兩層架構(gòu)
- 三層架構(gòu)
- MVC 架構(gòu)
2、概述
一個聯(lián)網(wǎng)應(yīng)用程序總是分布在兩個或多個主機之間掀泳,這就衍生了我們該如何在多個主機之間劃分功能的問題月幌。
我們從兩個方面關(guān)注該問題:
1碍讯、技術(shù)推理。
2飞醉、組織如何管理其網(wǎng)絡(luò)計算基礎(chǔ)架構(gòu)和聯(lián)網(wǎng)應(yīng)用程序冲茸。
3、兩層架構(gòu)
有兩個基本的替代方案如下圖所示缅帘,C/S 架構(gòu)與P2P 架構(gòu)轴术。
3.1、 C/S 架構(gòu)
C/S 應(yīng)用程序 一部分是由 以與客戶端或用戶交互為基礎(chǔ)的主機钦无,另一部分主機則是專門用于管理大型數(shù)據(jù)存儲庫逗栽,處理應(yīng)用特有的數(shù)據(jù)和邏輯的服務(wù)器。
這給 C/S 架構(gòu)引入了不對稱的功能性失暂,客戶端需要向服務(wù)端發(fā)起請求彼宠,而服務(wù)端需要滿足(答復(fù))客戶端的請求。C/S 架構(gòu)適合應(yīng)用于在服務(wù)器上發(fā)布的信息管理應(yīng)用程序弟塞。OLTP 應(yīng)用則是傳統(tǒng)的 C/S 架構(gòu)中的良好示例凭峡。
3.2、P2P 架構(gòu)
這是 C/S 架構(gòu)的替代架構(gòu)决记,P2P架構(gòu)不設(shè)立服務(wù)端摧冀,只有客戶端。這種架構(gòu)對于一些去中心化的即時通信應(yīng)用是有吸引力的系宫。P2P 很適用于語音或視頻會議的場景索昂。P2P 的很明顯的特征是功能的對稱性。
一般來說扩借,可以將C/S和P2P架構(gòu)混合在一起椒惨。舉例,許多直接即時通訊社交應(yīng)用涉及信息管理和多用戶交互方面潮罪。一個客戶端主機可以同時作為 Client 或 Peer康谆,這取決于該主機在應(yīng)用程序的角色定義。
4嫉到、三層架構(gòu)
二層結(jié)構(gòu)無法識別包含關(guān)鍵數(shù)據(jù)庫一類的特殊需求沃暗,典型的例子是 OLTP。希望將這些關(guān)鍵任務(wù)數(shù)據(jù)庫集成到C / S應(yīng)用程序中屯碴,而不會犧牲其期望的質(zhì)量瓶蝴。
下面將展示三層的 C/S 架構(gòu):
- 第一層:客戶端(用戶)泼疑。
- 第二層:服務(wù)端(用于存放應(yīng)用程序的邏輯)遥倦。
- 第三層:數(shù)據(jù)庫(不同的應(yīng)用程序所需要的共享數(shù)據(jù))管挟。
這種3層架構(gòu)的動機包括:
- 表現(xiàn):專注于單個用戶
- 應(yīng)用程序邏輯:支持多用戶,通過添加多臺服務(wù)器來支持更多用戶的成本是較低的今艺。
- 關(guān)鍵共享數(shù)據(jù):支持多個應(yīng)用程序韵丑。
這三層的 C/S 架構(gòu)字啊每層之間都是n…1
的關(guān)系。顯然三層架構(gòu)比兩層架構(gòu)具備更高的擴展性虚缎,向客戶端隱藏的異構(gòu)數(shù)據(jù)庫支持以及提供了不同的通信協(xié)議的更好支持撵彻。
5、MVC 架構(gòu)
模型 - 視圖 - 控制器(MVC)應(yīng)用程序架構(gòu)是用于分析分布式應(yīng)用程序的功能的流行模型实牡。這種抽象有助于將應(yīng)用程序分解成邏輯組件陌僵,以實現(xiàn)更容易/更清晰的分布式實現(xiàn)。
MVC 劃分在監(jiān)視和處理數(shù)據(jù)中涉及的對象之間的功能创坞,以便最小化這些對象之間的耦合度碗短,并因此將這些對象映射在多層架構(gòu)上。
最初 MVC 用戶解耦:輸入题涨、數(shù)據(jù)處理偎谁、輸出 UI 界面。但是纲堵,將此模型映射到多層網(wǎng)站或企業(yè)應(yīng)用程序也很簡單巡雨。
- 模型(Model):操作數(shù)據(jù)。
當 Model 層數(shù)據(jù)變更時通知 View 席函。
它允許 Controller 訪問 Model 封裝的方法铐望。
- 視圖(View):將 Model 提供的內(nèi)容渲染出來。
它可以查詢Model關(guān)于數(shù)據(jù)的模型并指定如何呈現(xiàn)它向挖。
- 控制器(Controller):定義應(yīng)用程序的行為蝌以。
它將用戶手勢映射到要由Model執(zhí)行的操作。在標準的 GUI 客戶端何之,用戶手勢可以是按壓按鈕跟畅。在 Web 環(huán)境,它可以是發(fā)起一次 HTTP GET/POST 請求溶推。通常一個Controller徊件,表示一組相關(guān)的功能。