首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >点对点是客户机-服务器架构模式的一种变化吗?

点对点是客户机-服务器架构模式的一种变化吗?
EN

Software Engineering用户
提问于 2019-09-28 22:24:33
回答 2查看 168关注 0票数 0

根据软件工程( Software ):Pfleeger和Atlee的理论与实践书,对等架构风格与Client体系结构模式不同。但在第二版的“微软应用架构指南”中,有人指出,点对点是客户端服务器(链接 )的一个变体。请任何人向我澄清这一点,哪个是正确的?

EN

回答 2

Software Engineering用户

回答已采纳

发布于 2019-09-28 23:19:07

这取决于你正在寻找的特征,以衡量他们有多近。

微软的文章将P2P风格看作是C/S的一种扩展,因为它有潜在的沟通潜力,所以从通信开发技术的角度来看:

P2P样式允许客户端和服务器交换它们的角色,以便在多个客户端之间分发和同步文件和信息。它通过对请求的多个响应、共享数据、资源发现和删除对等点的弹性来扩展客户机/服务器风格。

然而,大多数C/S系统不提供对称客户端。有时甚至选择C/S风格,因为客户端和服务器无法交换。因此,除了通信的对称性和非对称性之外,还必须有其他的东西可以起作用。

如果不看通信(Microsoft的文章视图),而是查看控件,那么您将把这两种样式看作是非常不同的。因为大多数C/S实现了主仆关系的变体(中央控制),而P2P实现了相等的关系。

如果您在网络中查看拓扑结构,您还会看到两幅非常不同的图片: C/S有一棵树状的形状,而P2P有一种网格。

所以总的来说,我不会说它是一个变体。

票数 1
EN

Software Engineering用户

发布于 2019-09-29 13:23:06

使客户端“客户机”和服务器“服务器”的原因有几个方面:

  1. 服务器通过DNS注册使自己可用。
  2. 客户端知道或必须被告知服务器(例如,它知道或被告知服务器的名称,然后通过DNS或目录/搜索服务了解服务器的IP地址)
  3. 客户端要求服务器建立连接(服务器在此步骤中了解客户端)
  4. 客户端请求,例如向服务器发出命令或查询
  5. 服务器响应客户端。

客户端可以(1)发起连接,(2)启动请求/响应模式;而服务器不能执行这些操作,这也意味着客户机不需要主机/域名或发布其IP地址。

通过使用从客户端到服务器的长时间运行(或者说抽象)请求的技巧,在建立连接之后,服务器可以有效地启动与客户端的通信,请求/响应可以逆转--服务器发出请求和客户端响应,如果客户端需要,它可以中断一个长时间运行的请求,执行一个新的特定请求,从而重新控制请求/响应对。

在真正的对等点中,我们假设任何一方都可以发起连接(这意味着对等方必须事先了解对方(或目录服务)),然后,任何一方都可以发起请求/响应,或者只是发送单向消息,这些有效地消除了客户机-服务器中的不对称。

虽然比较尴尬,但通过使用一对客户机-服务器角色(每个节点同时扮演客户端角色和服务器角色)可以形成对等点,然后,任何一方都可以启动连接,任何一方都可以发起请求/响应。

点对点可能是对客户端服务器的验证(不确定这意味着什么);然而,对等点不需要客户机服务器,这是一个重要的区别。

客户机-服务器出于某种目的有限制,所以使用客户机-服务器这个术语是否意味着那些重要的限制,或者,客户机和服务器的更广泛的功能和实现需求的结合。如果是客户机和服务器,那么我想我们可以考虑对等和扩展或客户机服务器的变体(否则就不会)。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/399070

复制
相关文章
分析比特币网络:一种去中心化、点对点的网络架构
比特币采用了基于互联网的点对点(P2P:peer-to-peer)分布式网络架构。 比特币网络可以认为是按照比特币P2P协议运行的一系列节点的集合。 本文来分析下比特币网络,了解它跟传统中心化网络的区
Tiny熊
2018/06/21
1.2K0
TCP客户机-服务器
1 僵尸进程 2 信号处理 信号: 1 由一进程发往另一进程 2 由内核发往某进程 僵尸状态: 父进程取回子进程的相关信息,进程的ID,终止状态,子进程的资源利用信息 编程时: 1 当派生子进程时,必须捕获信号SIGCHLD 2 当捕获信号时,必须处理被中断的系统调用 3 SIGCHLD的信号处理程序必须正确编写,使用函数waitpid以免留下僵尸进程 1 int main(int argc,char **argv){ 2 int listenfd,connfd; 3 pid_t childpid;
用户1154259
2018/01/17
1.8K0
比特币:一种点对点的电子现金系统
Checkout Github Repo for this translation
金融民工小曾
2022/02/24
1.4K0
比特币:一种点对点的电子现金系统
一种经典的网游服务器架构
这个图是一个区的架构图,所有区的架构是一样的。上面虚线框的ServerGroup和旁边方框内的架构一样。图上的所有x N的服务器,都是多台一起的。红线,绿线,和蓝线图上也有图示,这里就不多介绍了。关于
小小科
2018/05/02
1.6K0
一种经典的网游服务器架构
简单的客户机服务器投射模拟
下面模拟了,简单的客户机服务器投射模拟的过程。客户机像服务器发送数据,服务器接受到数据后,发送回给客户机。再由客户机打印出来。 需要的函数: 网络方面 服务器 socket(AF_INET,SOCK_STREAM,0);  AF_INET表示IPV4,SOCK_STREAM表示基于字节流的,0表示协议由前面两个参数组合而成。返回描述符 bind(sockdf,(struct sockaddr*)servaddr,sizeof(servaddr));   用于把描述符与本地协议地址联系起来。 listen
用户1154259
2018/01/17
9340
实体服务是一种反模式
在微服务架构中,最重要的是要保持服务间的隔离。实体服务(Entity Service)是被广泛应用于微服务架构上的一种模式,但其实它是一种反模式,因为它背离了服务隔离的原则。Michael Nygard在他的微服务系列博客中提到了这一点。
全栈程序员站长
2022/07/20
2560
实体服务是一种反模式
意识是一种数学模式
Consciousness, we've all wondered about the mystery of consciousness. But there are really two separate mysteries, as the famous philosopher David Chalmers has emphasized.
CreateAMind
2019/07/01
6460
意识是一种数学模式
【观点】AI是一种文化吗? 当然!
如果说文化是人类一代一代传下来的一套信念和行为,那么,AI会是其中之一吗? AI无疑正在改变人们对技术的看法和互动方式。与你的手机交谈,期待着一个聪明的回应已经从新奇转向常规期望。在自然环境中,自我驾
AiTechYun
2018/03/05
1.3K0
【观点】AI是一种文化吗? 当然!
Java是一种纯面向对象的语言吗?
在刚开始学习 Java 的前面几年,我从书本里知道了 Java 是遵循 “面向对象编程范式(Object Oriented Programming paradigm)”的。在Java世界内一切都是对象,甚至包括字符串(String)这些都是对象(在 C 语言中,字符串是字符数组),那时候,我认为 Java是一种面向对象的语言。
森七
2020/04/14
1K0
责任链模式是一种行为型设计模式
fmt.Println("Medicine already given to patient")
用户7108768
2021/10/06
1790
什么是点对点传输?什么是点对多传输
点对点技术(peer-to-peer, 简称P2P)又称对等互联网络技术,是一种网络新技术,依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。P2P网络通常用于通过Ad Hoc连接来连接节点。这类网络可以用于多种用途,各种文件共享软件已经得到了广泛的使用。P2P技术也被使用在类似VoIP等实时媒体业务的数据通信中。
镭速
2023/05/08
8310
你了解过数据链路层点对点协议吗
点对点协议(PPP)是一种广泛用于数据链路层的通信协议,主要用于通过串行线路(如电话线、光纤、无线等)进行计算机之间的直接通信。PPP 是由互联网工程任务组(IETF)制定的标准协议,广泛应用于网络连接中,如拨号连接、虚拟专用网络(VPN)等场景。
神的孩子都在歌唱
2025/03/05
1310
你了解过数据链路层点对点协议吗
「软件架构」10种常见的软件架构模式
有没有想过企业规模的系统是如何设计的?在主要的软件开发开始之前,我们必须选择一个合适的架构,为我们提供所需的功能和质量属性。因此,在将它们应用于我们的设计之前,我们应该了解不同的体系结构。
架构师研究会
2020/05/14
1.4K0
「软件架构」10种常见的软件架构模式
SaaS模式是SaaS的护身符吗?
来源:运营官张沐|作者:运营官张沐 ---- 国内,很多企业对于订阅经济或SaaS的模式有着天然的好感,持续性付费,按lisence付费,数据价值,一次使用终身使用…… 各种能把用户留在自己平台的行为和理念,让SaaS的模式有持续性的性感故事。因为SaaS产品是用户数据存储在产品公有云的服务器,而且用户购买了账号,按照年、数据空间、增值服务等方式进行综合性的付费,在这种情况下,B/S架构又比C/S架构性感很多。 SaaS因其产品使用的便利性和性感的故事,成为了很多公司重要的一个赛道,那么SaaS的
腾讯SaaS加速器
2021/10/19
6000
bs架构与cs架构的定义和区别_cs架构的优缺点
B/S架构是浏览器和服务器架构模式。是对C/S架构的一种变化或者改进的架构。 B/S架构不用安装客户端,只需要在客户机上安装一个浏览器,服务端安装一种数据库,就可以通过webservice实现浏览器和数据库的数据交互。这种架构,前端极少处理事务逻辑,大部分的事务逻辑都在服务端处理。 浏览器端:用户使用的浏览器,用户通过浏览器向服务器端发出请求,并对服务器端返回的结果进行处理并展示,通过界面可以将系统的逻辑功能更好的表现出来。 服务器端:提供数据服务,操作数据,然后把结果返回中间层,结果显示在系统界面上。 中间件:运行在浏览器和服务器之间的。主要完成系统逻辑,实现具体的功能,接受用户的请求并把这些请求传送给服务器,然后将服务器的结果返回给用户,浏览器端和服务器端需要交互的信息是通过中间件完成的。
全栈程序员站长
2022/09/30
1.1K0
因特网是一种什么网_广域网是因特网吗
相信有些童鞋一直分不清以太网、局域网、广域网、互联网、因特网、万维网这“几张网”的区别,我也是。所以今天我们就来介绍一下它,勇闯盘丝洞,看看这几张网到底是何方妖孽。
全栈程序员站长
2022/11/02
8730
因特网是一种什么网_广域网是因特网吗
适应现代变化的数据架构
传统BI和数据仓库架构已无法应对大数据、分析、自助服务所带来的挑战。然而,现代化数据架构仍未能够全部解决传统数据仓库和BI所面临的问题,很少有组织能够在一些尚未成熟的领域采用大数据分析技术。数据架构在能够支持传统BI的同时,也要意识到需要逐渐的适应现代化项目需求。 现代化数据架构设计方法 毫无疑问,数据架构必须改变。它必须适应大数据、分析和自助服务的时代。传统数据仓库和BI架构已经不能很好地满足许多企业创新发展的需求,每一个变化——大数据、分析和自助服务——都是一个巨大潜力和挑战的组合,把它们组合在一起便形
企鹅号小编
2018/01/23
8880
适应现代变化的数据架构
什么是无服务器架构?
无服务器计算(Severless computing,简称 Serverless)现在是软件架构圈中的热门话题,国外三大云计算供应商(Amazon、Google 和 Microsoft)都在大力投入这个领域,涌现了不计其数的相关书籍、开源框架、商业产品、技术大会。到底什么是 Serverless?它有什么长处/短处?我希望通过本文对这些问题提供一些启发。
物流IT圈
2019/07/16
4.4K0
什么是无服务器架构?
什么是MVC软件架构模式_mvc架构的设计思路
作为程序员,很容易天天被业务追逐着,抽不开时间修炼。有一天突然停了一下,忽地就会有一种怅然的感觉,过去的那些日子我学到了什么?
全栈程序员站长
2022/11/18
5420
软件体系架构模式之一什么是软件架构模式
计划启动未开发的软件项目?然后选择正确的架构模式将对项目的结果起关键作用。选择市场上最流行或最新的技术并不总是意味着会带来最好的结果。但是,选择最合适的解决方案将为行之有效的问题和反复出现的问题提供可靠的解决方案。
Java架构师必看
2020/10/09
6590
软件体系架构模式之一什么是软件架构模式

相似问题

MapReduce是一种架构模式吗?

10

在分层架构中拥有服务依赖关系是一种反模式吗?

30

这些网页的结构是一种设计模式吗?

10

这门课怎么命名?是一种模式吗?

10

在分层架构中抛弃存储库模式是可以接受的吗?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文