WCF P2P如何在对等网络中设计状态共享

本文将介绍以下内容:

固定的状态服务器

选择的状态服务器

无服务器的数据冲击

最近对等同步

本文使用了以下技术 :

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 的 使用使得与中心服务器的通信变得极其轻松。

不足之处是此基础结构需 要一台中心服务器。对等应用程序需要知道该服务器的地址,否则可能导致配置 和维护问题。此外,许多应用程序开发人员都没有资源来全局部署中心状态服务 器,并且应用程序的规范通常都无法满足中心状态服务器的要求。

时间: 2024-11-08 19:15:14

WCF P2P如何在对等网络中设计状态共享的相关文章

GNUnet 0.9.1发布 对等网络框架

GNUnet是一个专注于提供安全的对等网络框架,对等网络中的所有消息都是保密和认证的.该框架提供了一个传输抽象层,目前可以封装在UDP.TCP.HTTP.http://www.aliyun.com/zixun/aggregation/29830.html">HTTPS或直接802.11(无线局域网)的网络流量.GNUnet提供更好的服务的贡献节点,框架服务包括:匿名文件共享,通过P2P网络协议的IPv4-Pv6转换的一个虚拟网络. GNUnet 0.9.1该版本是一个修正错误的版本.改善了

GNUnet 0.9.0发布 对等网络框架

GNUnet是一个专注于提供安全的对等网络框架,对等网络中的所有消息都是保密和认证的.该框架提供了一个传输抽象层,目前可以封装在UDP.TCP.HTTP.http://www.aliyun.com/zixun/aggregation/29830.html">HTTPS或直接802.11(无线局域网)的网络流量.GNUnet提供更好的服务的贡献节点,框架服务包括:匿名文件共享,通过P2P网络协议的IPv4-Pv6转换的一个虚拟网络. GNUnet 0.9.0该版本是进行了体系结构的重大变化和

iOS下的实际网络连接状态检测

序言 网络连接状态检测对于我们的iOS app开发来说是一个非常通用的需求.为了更好的用户体验,我们会在无网络时展现本地或者缓存的内容,并对用户进行合适的提示.对绝大部分iOS开发者来说,从苹果示例代码改变而来的各种Reachablity框架是实现这个需求的普遍选择,比如这个库.但事实上,基于此方案的所有实现,都无法帮助我们检测真正的网络连接状态,它们能检测的只是本地连接状态:这种情况包括但不限于如下场景: 1.现在很流行的公用wifi,需要网页鉴权,鉴权之前无法上网,但本地连接已经建立: 2.

Android连接网络的时候对网络的状态进行判断

Android连接网络的时候,并不是每次都能连接到网络,因此在程序启动中需要对网络的状态进行判断,如果没有网络则提醒 用户进行设置. 首先,要判断网络状态,需要有相应的权限,下面为权限代码(AndroidManifest.xml): <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.p

win8怎么查看网络连接状态?

  1.首先,右击桌面的空白处,会弹出一系列的快捷菜单; 2.接着,在其中选择"新建"到"快捷方式"选项; 3.在弹出的"创建快捷方式"对话框中,输入"C:Windowsexplorer.exe ::{7007ACC7-3202-11D1-AAD2-00805FC1270E}"; 4.注意exe后是有个空格的.然后单击"下一步"; 5.接着,在弹出的输入对话框中输入快捷方式的名称,比如你可以输入"

瑞星防火墙实时查看网络连接状态

  在使用电脑时,我们常常需要查看本机的网络连接状态,弄清楚究竟是哪个程序占用了流量,或者看清楚本机内是否有一些垃圾插件正在偷偷传输信息.而一旦发现有异常的连接,我们就可以将其关闭以恢复正常状态.下面,我们就演示一下利用瑞星个人防火墙V16查看网络连接状态的技巧. 瑞星个人防火墙 在瑞星个人防火墙中打开"小工具"选项,点击"网络查看器",我们就能看到当前本机内全部的网络连接端口. 除了进程名称外,我们还能看到这些连接是否安全,进程路径,本地IP,本地端口,目标端口,

iOS下的实际网络连接状态检测:RealReachability

序言 网络连接状态检测对于我们的iOS app开发来说是一个非常通用的需求.为了更好的用户体验,我们会在无网络时展现本地或者缓存的内容,并对用户进行合适的提示.对绝大部分iOS开发者来说,从苹果示例代码改变而来的各种Reachablity框架是实现这个需求的普遍选择,比如这个库.但事实上,基于此方案的所有实现,都无法帮助我们检测真正的网络连接状态,它们能检测的只是本地连接状态:这种情况包括但不限于如下场景: 1.现在很流行的公用wifi,需要网页鉴权,鉴权之前无法上网,但本地连接已经建立: 2.

Android开发之获取网络链接状态_Android

网络开发是Android程序设计一个非常重要的内容,今天本文就和大家一起分享一下Android网络开发的一点经验. 本文主要通过实例形式说明了Android获取网络链接状态的方法.具体内容如下: 就目前的Android手机来说,可能存在如下5种网络状态: ----无网络(这种状态可能是因为手机停机,网络没有开启,信号不好等原因) ----使用WIFI上网 ----CMWAP(中国移动代理) ----CMNET上网 ----2G/3G/4G上网 很多时候我们需要判断用户是否开启网络设置,通常通过C

android 检查网络连接状态实现步骤_Android

获取网络信息需要在AndroidManifest.xml文件中加入相应的权限. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 1)判断是否有网络连接 复制代码 代码如下: public boolean isNetworkConnected(Context context) { if (context != null) { ConnectivityManager mConn