本文将介绍以下内容:
固定的状态服务器
选择的状态服务器
无服务器的数据冲击
最近对等同步
本文使用了以下技术 :
WCF
目录
固定的状态服务器
瞬时选择的状态服务器
纯对等无服务 器的数据冲击
最近对等同步
WeSpend 示例应用程序
后续 步骤
近年来,人们开始发现利用对等网络通信的应用程序具有令人惊奇 的强大功能。所谓的对等应用程序的范围从简单的文件共享到即时消息 (IM) 再 到功能齐全的协作应用程序(如共享白板、IP 语音 (VoIP) 呼叫和会议、社会 化网络等)。
考虑一下 Xbox 360 是如何自动检测是否存在另一运 行 Windows Media Center 的计算机并立即开始与该计算机共享音频和视 频,从而在您的 Xbox 上播放计算机中的音乐的。如果业务应用程序都支 持相同类型的对等识别和功能岂不是大快人心?如果有人在其桌面上创建了一条 新记录,组织内使用该应用程序的所有其他人都可以立即看到该新记录,并且您 不必安装和配置中心服务器即可实现此功能,想想客户会有多么满意吧。
本文主要介绍了通过允许业务应用程序在无服务器的对等网络中共享状 态来实现其对等功能的内容。在深入研究示例应用程序之前,我想谈一谈人们通 常在对等网络中实现状态共享的一些方法,以及这些方法的优缺点。最后,我将 向您展示一个名为 WeSpend 的示例应用程序,此工具可用于跟踪您的存折分类 帐。此应用程序可自动与家庭网络中其自身的所有其他实例同步数据。
有多少种可能的应用程序思路就有多少种实现对等网络的方法。每种实现都具有 其特定的优点和缺陷。其中有些方面与基础结构相关,有些与随着时间的推移维 护解决方案的难易程度有关,而其他则与最初开发解决方案时的轻松程度有关。 在本部分中,我将介绍人们在开发对等网络时最常使用的一些方法。
固 定的状态服务器
当许多开发团队解决了实现对等的应用程序的初始概念 阶段并着手实现时,面临的首要问题之一通常是:如何共享状态?
其中 一个最简单的解决方案是创建混合对等网络。在该解决方案中,所有的广播和对 等通信都是在对等网格上发生的,其中有一个众所周知的中心服务器,它通常通 过 Web 服务或其他的 Windows Communication Foundation (WCF) 服务始 终保持状态。这样网络中的对等点即可识别整个应用程序的单例状态,并能够很 好地使用优化后的对等网格通信。
此类网络的最常见示例是社会化网络 和 IM 应用程序。IM 应用程序通常需要一个中心服务器来维护登录人员列表、 其状态和可用性以及所有注册用户的好友列表(请参阅图 1)。网络用户之间以 点对点方式进行通信。典型的客户端-服务器和点对点功能之间存在一个极其有 用且功能强大的功能拆分。
图 1 对等网络中的中心状态服务器
这种模式的好处是非常易于实现。对 等网络组件并不复杂,并且近年来 Microsoft .NET Framework 和 WCF 的 使用使得与中心服务器的通信变得极其轻松。
不足之处是此基础结构需 要一台中心服务器。对等应用程序需要知道该服务器的地址,否则可能导致配置 和维护问题。此外,许多应用程序开发人员都没有资源来全局部署中心状态服务 器,并且应用程序的规范通常都无法满足中心状态服务器的要求。