D-bus 介绍(一)
1.DBus 是什么
a) DBus 是一种本地进程间通信机制,支持点对点的通信,以及广播/订阅式的通信方式.
b) DBus将要传输的的数据结构化为二进制数据.包括不同长度的整数.浮点数.字符串.数据.复合类型等等.
2. DBus组成部分
DBus有两个主要组成部分,一是点对点通信的支持库,任何想用DBus通信的进程都可以引用;二是dbus服务进程,其作用类似于总线,进程可以连接到这个总线,并在总线上传输消息.流程:进程使用支持库,连接到服务进程总线并收发消息.
3.总线地址
每条总线者有总线地址,进程通过这个地址连接到总线.总线地址一般是类似于"/tmp/dbus_***"这类socket接口,但也有可能是TCP端口,或者其他通信方式接口.具体如何使用使用这些接口通信,是完全封装在dbus支持库的.我们使用都是说客户进程打开并连接到总线.
4.每个连接到总线的对象(连接称为对象,总线也是对象,总线对象本身提供了很多接口与方法)
总线上的每个连接都有名字.这些名字一般叫做连接名,称为bus names.(也可以不设置连接名,比如你不提供服务)连接名由'.'分开的字符串组成,比"com.free.add",中间的字符可以是字母.数字.连接线.下划线.当连接建立以后.DBus服务会分配一个不可改变的连接名,称为唯一连接名.这个连接名即使在进程结束后也不会再被其他进程所使用.唯一连接名以冒号开头,像是这个样子"3:34-907",用以来区分不同的连接
5. 对象 接口 方法 信号 关系如下
对象 对象
| |
-------------------------------总线
|连接名
--
|对象|
--
__|__
| |. ..
接口 接口
___|
| |..
方法.信号.
这种方法很像c/s架构,也可以当做这样模型来看,只要可以理解.
6.代理与请求
总线上的对象访问方式有两种:一种是代理,客户可以调用本地接口与对象通信,此时,本地接口充当了代理的角色,看起来就像调用本地接口一样;别一种是请求: 客户向某个对象发送一个请求的过程,对象被请求执行一个明确的,有名称的动作.客户会返回结果,不管正常的还是错误的.
7.同一个对象的请求的到达顺序与发送顺序一样,但响应消息不一定发送的一样,不过每一条请求都有一个编号,故不会错误接收别的响应消息.
写这个的原因,是让我们先有一个大的概念及架构,由表及里的去理解.我试过去直接读源码,发现这样效率很低,全篇看spec文档,这个也比较费时间.所以,我将用以下的方法去学习dbus
1. dbus大概介绍
2.dbus 简单编程
3.dbus组成及在系统中的应用.
4.深入分析实现.(如果有时间的话)
D-bus 介绍(一)相关推荐
- 企业服务总线Enterprise service bus介绍
企业服务总线(Enterprise service bus). 以往企业已经实现了很多服务, 构成了面向服务的架构,也就是我们常说的SOA. 服务的参与双方都必须建立1对1 的联系,让我们回顾一下SO ...
- Web测试介绍2一 安全测试
安全测试是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程. 主要安全需求包括: (i) 认证 Authentication: ...
- Kafka的原理介绍及实践
一.官方定义 根据官网的介绍,kafka是一个提供统一的.高吞吐.低延迟的,用来处理实时数据的流式平台,它具备以下三特性: 流式记录的发布和订阅:类似于消息系统. 存储:在一个分布式.容错的集群中安全 ...
- SpringCloud教程-消息总线Bus 客户端(client)刷新(SpringCloud版本Greenwich.SR4)
文章目录 消息总线(Bus)介绍 项目示例 config-client-bus 代码地址:github-spring-cloud地址 前言:前面文章讲了Spring Cloud Config配置中心如 ...
- SpringCloud学习笔记(十) Bus 消息总线
目录 一.SpringCloud Bus 介绍 1.消息总线的由来 2.是什么 3.能干嘛 4.总线 1)什么是总线 2)基本原理 二.RabbitMQ环境配置 三.动态刷新全局广播 1.搭建客户端微 ...
- SpringCloud之消息总线组件及微服务网关
消息总线组件 Spring Cloud Bus 单个工程更新 有了配置中心,我们就可以吧配置文件放到git上来统一管理了,但是如果配置文件发生了变化,客户端 又如何更新呢? 1.在配置文件中增加自定义 ...
- 记微服务架构实战学习笔记
架构演进和分布式系统基础知识 1.传统架构演进到分布式架构 简介:讲解单机应用和分布式应用架构演进基础知识 (画图) 高可用 LVS+keepalive 1.单体应用:开发速度慢启动时间长依赖庞大等等 ...
- 自学Java找到30w的工作
大家好,我是大彬~ 我本科学的不是计算机,大四开始自学Java,并且找到了中大厂的offer.自学路上遇到不少问题,每天晚上都是坚持到一两点才睡觉,最终也拿到了30w的offer. 在这里也提醒学弟学 ...
- 2021年8月12日-------Java从基础到项目教程,Java全栈学习路线,帮你省去培训机构的2万块钱。
余生很贵,请努力活成自己想要的样子. 如何进行学习,别着急,我整理全栈的Java学习路线.帮你吊打面试官. 转载自一位大佬 首先是Java的知识点 一阶段:JavaSE基础 第一步:夯实Java基础语 ...
- 自学Java多久才能找到一份15K的工作?干货都说了,能不能就业看你自己了!
如果有一天我醒来时,发现自己的几年Java开发经验被抹掉,重新回到了一个小白的状态.我想要重新自学Java,然后找到一份自己满意的Java工作,我想大概需要7个月的时间,如果顺利的话,5个月可能就够了 ...
最新文章
- iOS响应链和传递机制
- android+apk+修改+签名文件位置,Jenkins打包android应用时自动签名apk详解
- Maven(八)Eclipse创建Web项目(复杂方式)
- 一款超炫的图片排列特效
- 语言 重量计算_大师之光:有种跨越国界的语言叫C++
- 机器人总动员拟人后_WALL·E 机器人总动员——又是一部让名字耽误的高分电影...
- 基础测试题(字符串、列表、元组、字典)
- CVPR2021系列(一)—— 语义图像抠图
- 产品的缺点要不要提前告诉客户?
- 最新增值税商品税目编码表_姓名:增值税,税率:13%,9%,6%,这是我最新最全税率表!...
- mysql隐式锁_innodB的隐式锁
- OpenDDS应用开发步骤
- IDEA This is not a valid Java qualified name问题解决
- spss分析qpcr数据_qRT-PCR差异分析及P值计算
- 图层蒙版和快速蒙版、路径
- mysql ndb存储引擎_Cluster的NDB存储引擎
- unity3D灯光烘焙(二)
- 华为华为Mate30pro青春版参数配置
- 让我们旋转跳跃不停歇~~~当3D打印遇上八音盒!(三)
- 游戏中找CALL的万能方法