
’中间件'
’中间件'
中间件
最近接触到了一些关于中间件尤其是通信中间件的东西,所以这里整理一些学习的东西.
中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。
执行中间件的一个关键途径是信息传递。通过中间件,应用程序可以工作于多平台或 OS 环境。
中间件是介于操作系统和应用软件之间,为应用软件提供服务功能的软件,有消息中间件,交易中间件,应用服务器等。由于介于两种软件之间,所以,称为中间件。
具体地说,中间件屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上,不必再为程序在不同系统软件上的移植而重复工作,从而大大减少了技术上的负担。
中间件带给应用系统的,不只是开发的简便、开发周期的缩短,也减少了系统的维护、运行和管理的工作量,还减少了计算机总体费用的投入。
知道大致概念后,由于我想学习的是关于通信中间件的一些东西,这里学一些关于通信的东西.
这里首先理清楚RPC,HTTP和socket以及发布订阅等这些常用的通信机制的概念与区别.事实上我之前并没有仔细深入学习过这些东西,但在学其他东西的时候经常看见RPC、发布订阅这些词,感觉这些知识更新换代的速度没那么快,不像前端一样…
RPC
Basic mechanism of RPC (Remote Procedure Call) is as follows.
- Map functions with unique function names.
- Serialize function name and arguments that are used to execute function in remote side
- Transfer serialized data to the remote node
- In the remote side, deserialize data.
- Execute requested function with deserialized function arguments.
1、RPC框架一般使用长链接,不必每次通信都要3次握手,减少网络开销。
2、RPC框架一般都有注册中心,有丰富的监控管理。发布、下线接口、动态扩展等,对调用方来说是无感知、统一化的操作协议私密,安全性较高
3、RPC 协议更简单内容更小,效率更高,服务化架构、服务化治理,RPC框架是一个强力的支撑。
DDS
DDS 是 OMG 组织发布的一种中间件协议和 API 标准,它将系统的组件集成在一起,提供业务和任务关键型物联网 (IoT) 应用程序所需的低延迟数据连接、极高的可靠性和可扩展架构。
DDS(Data Distribution Service,数据分发服务) 是一种以数据为中心的通信协议,用于分布式软件应用程序通信。
它描述了支持 数据提供者(Data Providers) 和 数据消费者(Data Consumers) 之间通信的通信应用程序编程接口 (API) 和通信语义。
要学习 DDS 就不能忽略它的模型:DCPS(以数据为中心的发布订阅模型)。
DCPS 有 3 个关键实体:
- publication entities: 定义消息生成对象及相关属性
- subscription entities:定义消息消费对象及相关属性
- configuration entities:定义传输相关的属性如 Topic 类型,通信的 QoS(服务质量)。
QoS 是一个非常重要的概念,DDS 使用 QoS 来定义 DDS 实体的行为特征。 QoS 由单独的 QoS 策略(源自 QoSPolicy 的类型的对象)组成.
参考资料
- 什么是中间件?常见中间件有哪些? (biancheng.net)
- 什么是中间件? | IBM
- [通信中间件 Fast DDS 基础概念简述与通信示例 - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/496135043#:~:text=Topic (话题)%3A它是绑定发布和订阅的实体。 它在 DDS 域中是唯一的。,通过TopicDescription,它允许发布和订阅数据类型的统一。 Domain (领域)%3A这是用于链接所有发布者和订阅者的概念,属于一个或多个应用程序,它们在不同主题下交换数据。 这些参与域的单个应用程序称为 DomainParticipant。)