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应用程序。


作者:DanielWise
出处:http://www.cnblogs.com/danielWise/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

原文地址:https://www.cnblogs.com/danielWise/p/2021190.html