根据软件工程( Software ):Pfleeger和Atlee的理论与实践书,对等架构风格与Client体系结构模式不同。但在第二版的“微软应用架构指南”中,有人指出,点对点是客户端服务器(链接 )的一个变体。请任何人向我澄清这一点,哪个是正确的?
发布于 2019-09-28 23:19:07
这取决于你正在寻找的特征,以衡量他们有多近。
微软的文章将P2P风格看作是C/S的一种扩展,因为它有潜在的沟通潜力,所以从通信开发技术的角度来看:
P2P样式允许客户端和服务器交换它们的角色,以便在多个客户端之间分发和同步文件和信息。它通过对请求的多个响应、共享数据、资源发现和删除对等点的弹性来扩展客户机/服务器风格。
然而,大多数C/S系统不提供对称客户端。有时甚至选择C/S风格,因为客户端和服务器无法交换。因此,除了通信的对称性和非对称性之外,还必须有其他的东西可以起作用。
如果不看通信(Microsoft的文章视图),而是查看控件,那么您将把这两种样式看作是非常不同的。因为大多数C/S实现了主仆关系的变体(中央控制),而P2P实现了相等的关系。
如果您在网络中查看拓扑结构,您还会看到两幅非常不同的图片: C/S有一棵树状的形状,而P2P有一种网格。
所以总的来说,我不会说它是一个变体。
发布于 2019-09-29 13:23:06
使客户端“客户机”和服务器“服务器”的原因有几个方面:
客户端可以(1)发起连接,(2)启动请求/响应模式;而服务器不能执行这些操作,这也意味着客户机不需要主机/域名或发布其IP地址。
通过使用从客户端到服务器的长时间运行(或者说抽象)请求的技巧,在建立连接之后,服务器可以有效地启动与客户端的通信,请求/响应可以逆转--服务器发出请求和客户端响应,如果客户端需要,它可以中断一个长时间运行的请求,执行一个新的特定请求,从而重新控制请求/响应对。
在真正的对等点中,我们假设任何一方都可以发起连接(这意味着对等方必须事先了解对方(或目录服务)),然后,任何一方都可以发起请求/响应,或者只是发送单向消息,这些有效地消除了客户机-服务器中的不对称。
虽然比较尴尬,但通过使用一对客户机-服务器角色(每个节点同时扮演客户端角色和服务器角色)可以形成对等点,然后,任何一方都可以启动连接,任何一方都可以发起请求/响应。
点对点可能是对客户端服务器的验证(不确定这意味着什么);然而,对等点不需要客户机服务器,这是一个重要的区别。
客户机-服务器出于某种目的有限制,所以使用客户机-服务器这个术语是否意味着那些重要的限制,或者,客户机和服务器的更广泛的功能和实现需求的结合。如果是客户机和服务器,那么我想我们可以考虑对等和扩展或客户机服务器的变体(否则就不会)。
https://softwareengineering.stackexchange.com/questions/399070
复制相似问题