WCF 第十二章 对等网
很多開發人員在創建分布式應用程序時會考慮客戶端-服務端或者n-層結構模型。另外一個通常會被忽略的創建分布式應用程序的方案是點到點(P2P)模型。大多數流行的互聯網應用程序中的一部分,包含即時通信,游戲以及文件共享,都使用P2P方案。與其他應用程序的類型不同,一個P2P應用程序假設沒有中心結點,這意味著客戶端和服務端之間沒有區別。這里介紹了在應用程序的設計中的大量的復雜性。大多數開發人員由于創建P2P應用程序的復雜性和困難性而回避創建P2P應用程序。如果使用合適的方式實現,P2P應用程序可以提供在可擴展性和可信賴性兩方面的明顯優勢。這一章將聚集在Windows Vista 上使用WCF創建P2P應用程序。我們將檢查WCF的能力并描述在.NET Framework 3.5 中添加的新功能。
創建分布式應用程序的方案
現如今很多分布式應用程序使用下面三種網絡架構類型之一來構建: 客戶端/服務端, n-層結構以及點到點。這部分將比較這些方案的不同以便于我們可以理解點到點應用程序背后的玄機。
客戶端/服務端應用程序
在過去的十年中很多分布式應用程序已經使用客戶端/服務端方案構建。在這個模型中,客戶端和服務端是分布式應用程序的參與者,每一方都有一個不同的角色。客戶端初始化請求、服務端對這些請求做出反饋。當今最廣泛應用的客戶端-服務端應用程序是站點瀏覽器比如IE。一個用戶通過向瀏覽器的地址欄輸入一條URL來初始化一個請求,然后一個服務端對那個請求做出響應。包含請求的URL也包含要把請求發送到的網站服務器的地址。網頁服務器比如因特網信息服務(IIS)處理進入的請求并向客戶端發一條反饋。圖片12.1顯示了客戶端/服務端模型。
?
圖片12.1 客戶端/服務端模型
N-層結構應用
分布式應用程序接下來從客戶端/服務端(2層結構)發展為n-層配置。n-層應用最廣泛的形式是3層結構模型,用戶接口,商業邏輯以及數據層被分別部署到不同的物理層上。圖片12.2 顯示了三層結構。很多分布式應用程序使用這個模型創建。使用這個模型有很多優勢。其中一個最常見的原因是將商業邏輯部署到一個安全的獨立的物理層上去。它通常提供一種方式來擴展應用程序,即使有更多的硬件資源。
?
圖片12.2 三層結構模型
點到點應用
另外一種分布式應用程序類型是點到點(P2P)應用。在一個純粹的點到點應用程序中每個參與者(節點)對網絡上的其他參與者來說既是客戶端又是服務端。誰可以發出或者響應請求都沒有任何區別。P2P應用程序通常與合作程序有關系。一個廣為人知的P2P應用程序例子是Gnutella, 它是一個互聯網文件共享應用。其他的P2P應用程序例子有即時通信,介紹,白板以及文件合作應用。圖片12.3顯示了一個有三個節點的P2P應用。
?
圖片12.3 有三個節點的對等模型
分布式解決方案的比較
客戶端/服務端以及n-層結構應用程序顯然更加容易創建P2P應用程序。它們有很多優勢,包括容易開發,中心化管理以及安全。缺點包括不易擴展和信賴性差。擴展性方面的改進可以通過一個擴大(更好一些,但需要更多硬件)或者擴充(更多服務器)方案實現。信賴性可以通過添加冗余硬件實現。在任何一種情況都需要有硬件開銷,這極大地增加了解決方案的整體開銷。P2P應用程序相對來說總是相反的。一個P2P應用程序的大部分優勢正是一個客戶端/服務端應用的劣勢,反之亦然。例如,可以使用商用硬件增加額外節點來加強一個P2P應用的可擴展性和可信賴性。這意味著可擴展性和可信賴性不需要花費昂貴的服務器硬件開銷來實現。也意味著沒有中央管理系統或者安全系統使得P2P應用程序很難部署,保證安全性以及維護。現實是每一種方案都不比其他方案更好,但是根據你的需求,其中的一種可能更加適合。一些應用程序可能使用多種方案來構建分布式應用程序。
? 這一章的剩余部分將聚焦使用WCF創建P2P應用程序。
總結
以上是生活随笔為你收集整理的WCF 第十二章 对等网的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 设计模式(6)-装饰器(认识程序中的装饰
- 下一篇: 手动删除3389连接记录