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

点对点是客户机-服务器架构模式的一种变化吗?
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

复制
相关文章
使用代码为textview设置drawableLeft
xml中的textView中设置android:drawableLeft: <TextView          android:id="@+id/bookTitle" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:drawableLeft="@drawable/checkmark" android:gravity="center_
欢醉
2018/01/22
8790
代码中修改TextView的DrawableLeft图片
先把解决代码贴上来: Drawable weather = getResources().getDrawable(R.drawable.sunday); weather.setBounds(0, 0, weather.getMinimumWidth(), weather.getMinimumWidth()); tv_choose_weather.setCompoundDrawables(weather, null, null, null); /***********分割线*
张拭心 shixinzhang
2022/11/30
7970
在代码中设置drawableLeft
在xml中使用android:drawableLeft="@drawable/payicon_type";
yuanyuan
2019/09/10
2.6K0
Android TextView 属性大全
Android 中我们知道有一个使用频率非常高的控件,它就是 TextView,但是它的属性特别多,今天我们就来探究下,它都有哪些属性。
程序员飞飞
2020/05/11
2.7K0
一文学会所有 Android TextView 属性,妈妈再也不担心我的代码写不好了!
Android 中我们知道有一个使用频率非常高的控件,它就是 TextView,但是它的属性特别多,今天我们就来探究下,它都有哪些属性。
程序员飞飞
2022/01/11
1.9K0
[HTML5] Canvas绘制简单形状
使用canvas来进行绘画,它像很多其他dom对象一样,有很多属性和方法,操作这些方法,实现绘画
唯一Chat
2019/09/10
1.1K0
[HTML5] Canvas绘制简单形状
textview设置字体大小-设置textview字体样式
  一些字体基础的设置,都可以的textview设置字体大小,但是我们能满足吗?不能,所以继续
宜轩
2022/12/26
3.1K0
常用控件之Button详解
小伙伴们肯定都有在玩儿一些游戏,比如和平精英,在界面上展示的名字,其实就是Android中咱们上一篇介绍到的TextView控件。而今天,我们再给大家带来一个非常好玩儿的控件,这个控件可以结合咱们之前的讲到的内容做很多有趣的事情~
下码看花
2019/09/02
1.4K0
常用控件之Button详解
腾讯开源超实用的UI轮子库,我是轮子搬运工
只需要修改一份配置表就可以调整 App 的全局样式,包括组件颜色、导航栏、对话框、列表等。一处修改,全局生效。
Android技术干货分享
2019/06/22
4.9K0
TextView属性和方法大全
前面简单学习了一些Android UI的一些基础知识,那么接下来我们一起来详细学习Android的UI界面基本组件。 一、认识TextView 我们知道前面学习的HelloWorld应用程序中就是使用
分享达人秀
2018/02/02
2.1K0
TextView属性和方法大全
Origin绘制上面和右边边框
如下面两个图,是绘制前后的对比图,可以发现多了上面和右边的边框,且边框无刻度。
全栈程序员站长
2022/08/31
1.2K0
Origin绘制上面和右边边框
BottomSheet底部动作条使用
底部动作条 底部动作条(Bottom Sheets)是一个从屏幕底部边缘向上滑出的一个面板,使用这种方式向用户呈现一组功能。底部动作条呈现了简单、清晰、无需额外解释的一组操作。 使用环境 底部动作条(Bottom Sheets)特别适合有三个或者三个以上的操作需要提供给用户选择、并且不需要对操作有额外解释的情景。如果只有两个或者更少的操作,或者需要详加描述的,可以考虑使用菜单(Menu)或者对话框替代。 底部动作条(Bottom Sheets)可以是列表样式的也可以是宫格样式的。宫格布局可以增加视觉的清晰
xiangzhihong
2018/02/05
1.9K0
BottomSheet底部动作条使用
OpenGL 学习系列---基本形状的绘制
在之前的一篇博客中,讲述了 OpenGL 基础绘制流程 及相关的代码,其中关于 OpenGL 程序编译部分都是可以在其他项目中接着复用的,接下来会讲到如何去绘制其他的基本图元。
音视频开发进阶
2019/07/25
1.9K0
Android开发笔记(三十七)按钮类控件
Button是文本按钮(继承自TextView),而ImageButton是图像按钮(继承自ImageView)。两者之间的区别在于: 1、Button即可显示文本也可显示图形(通过设置背景图),而ImageButton只能显示图形不能显示文本; 2、Button可在文本周围区域显示小图,而ImageButton无法在某个区域显示小图; 3、ImageButton上的图像可按比例进行拉伸,而Button上的大图会拉伸变形(因为背景图无法按比例拉伸); 从上面可以看出,Button的适应面更广,所以实际开发中基本使用Button。 Button与ImageButton的单击方法是setOnClickListener,对应的监听器要实现接口View.OnClickListener。长按方法是setOnLongClickListener,对应的监听器要实现接口View.OnLongClickListener。下面是Button按键监听器的代码例子:
aqi00
2019/01/18
1.6K0
OpenCV之绘制几何形状
python代码: import cv2 as cv import numpy as np image = np.zeros((512, 512, 3), dtype=np.uint8) cv.rectangle(image, (100, 100), (300, 300), (255, 0, 0), 2, cv.LINE_8, 0) cv.circle(image, (256, 256), 50, (0, 0, 255), 2, cv.LINE_8, 0) cv.ellipse(image, (256,
MachineLP
2021/07/19
5140
android常用布局详解「建议收藏」
在一个Android应用程序中,用户界面通过View和ViewGroup对象构建。Android中有很多种View和ViewGroup,他们都继承自View类。View对象是Android平台上表示用户界面的基本单元。
全栈程序员站长
2022/09/05
2.1K0
android常用布局详解「建议收藏」
网站顶部设置灯笼
自定义CSS .deng-box { position: fixed; top: -40px; right: -20px; z-index: 999; } .deng-box1 { position: fixed; top: -30px; right: 30px; z-index: 999; } .deng-box2 { position: fixed; top: -30px; left: 30px; z-i
院长技术
2021/02/19
8960
给WordPress博客添加返回顶部和底部的教程
今天就给大家分享下返回顶部那块的制作教程,其实也不难,主要是用到html、css和一些jq代码。
小狐狸说事
2022/11/17
5400
给WordPress博客添加返回顶部和底部的教程
点击加载更多

相似问题

缓存或核心数据的半持久化图像和视频?

12

将byte[]持久化到图像数据库字段

11

将NSCountedSet持久化到NSUserDefaults

11

将ExpandoObject持久化到MongoDB

31

将文件持久化到App

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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