分布式服务-通信方式对比

远程通信方式
  • RPC(Remote Procedure Call Protocol)
    • C/S方式
    • tcp协议,发送请求,等待响应
    • 请求包括一个参数集和一个文本值,常形成“classname.methodname”形式
    • 优点
      • 跨语言跨平台,C端和S端有更大的独立性
    • 缺点
      • 不支持对象,无法在编译期检查错误,只能在运行期检查
  • RMI(Remote Method Invocation)
    • 采用stubs和skeletons进行远程对象通讯
    • stub充当远程对象的客户端代理,和远程对象有相同接口
    • 远程对象的调用实际是调用stub来完成的,RMI就好比是本地工作
    • tcp/ip协议,客户端直接调用服务端上的一些方法
    • 优点
      • 强类型,编译期可检查错误
    • 缺点
      • 只基于JAVA语言,客户端与服务器紧耦合
  • JMS(Java Messaging Service)
    • Java的消息服务
    • JMS客户端之间可以通过JMS服务进行异步消息传输
    • 消息模型
      • Point-to-Point,点对点
      • Publish/Subscribe,发布订阅
  • Web Service
    • 基于web容器
    • 底层使用http协议
    • 类似一个远程服务提供者
    • 通过一个servlet,提供服务
    • 机制
      • 客户端从服务器得到WSDL,生成代理类
      • 代理类负责与WebService服务器的Request和Response
      • 数据(XML)被封装成SOAP(Simple Oject Access Protocol)格式发送到服务器
      • 服务器生成一个进程解析Request中的SOAP包
      • 业务处理
      • 对计算结果进行SOAP包装
      • 将包作为Response发送给客户端代理类
      • 客户端代理类对SOAP包进行解析
      • 后续操作
    • 5个层次
      • http传输信道
      • XML数据格式
      • SOAP封装格式
      • WSDL描述方式
      • UDDI
        • 目录服务,可以用它对Webservices进行注册和搜索
对比
  • RPC与RMI
    • RPC跨语言,RMI只支持Java
    • 可以说RMI是面向对象方式的Java RPC
    • RMI调用远程对象方法,允许返回Java对象及基本数据类型;RPC不支持对象,消息由外部数据表示语言(External Data Representation,XDR)表示,这种语言抽象了字节序类和数据类型结构之间的差异
    • RMI中,远程接口使每个远程方法都具有方法签名;如果一个方法在服务器上执行,但是没有相匹配的签名被添加到远程接口,就不能被RMI客户方调用
    • RPC中,到达RPC服务器的请求包含一个参数集和一个文本值,通常形成“classname.methodname”的形式
  • JMS与RMI
    • JMS是消息通知机制;RMI对象绑定在本地JVM中,只有函数参数和返回值是通过网络传送的(请求应答机制)
    • RMI一般都是同步的;JMS一般只是发出Message到Server,发出之后一般不关心谁用了message
    • 所以,一般RMI应用是紧耦合,JMS应用相对来说是松耦合
  • Web Service与RMI
    • RMI在tcp协议上传递可序列化java对象,语言仅java;Web Service是在http协议上传递xml数据,语言平台无关
  • Web Service与JMS
    • Web Service专注于远程调用,JMS专注于消息交换
    • 多数情况下Web Service是两系统间直接交互(consumer < - > producer),而JMS是三方系统交互(consumer <- broker -> producer)为主
    • 当然,JMS也可以实现request-response模式的通信,只要consumer或producer其中一方兼任broker即可
    • JMS的异步调用可以抵御流量洪峰
    • Web Service通常为同步调用,有复杂的对象转换,相比SOAP,JSON和REST都是很好的http架构方案
    • 举个例子:电子商务分布式系统中,有支付系统和业务系统,支付系统负责用户付款,付款成功后需通知各业务系统,这个时候,既可以用同步也可以用异步,使用异步的好处是能抵御流量高峰
    • JMS是java平台消息规范;JMS消息一般不是xml,而是java对象;很明显,JMS没考虑异构系统,说白了,JMS就没考虑非java的东西;但是好在现在大多数的JMS Provider都解决了异构问题;相比Web Service的跨平台各有千秋吧
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Eddy咸鱼

感谢大佬加鸡蛋~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值