
实现业务平台的高效部署与运行能力的分布式软总线
分布式软总线组件
- 简介
- 系统架构
- 目录
- 约束
- 说明
- 使用说明
简介
现实中多设备间通信方式多种多样(WIFI、蓝牙等),不同的通信方式使用差异大,导致通信问题多;同时还面临设备间通信链路的融合共享和冲突无法处理等挑战。分布式软总线实现近场设备间统一的分布式通信管理能力,提供不区分链路的设备间发现连接、组网和传输能力,主要功能如下:
发现连接:提供基于Wifi、蓝牙等通信方式的设备发现连接能力。
设备组网:提供统一的设备组网和拓扑管理能力,为数据传输提供已组网设备信息。
数据传输:提供数据传输通道,支持消息、字节数据传输等能力。
业务方通过使用分布式软总线提供的API实现设备间的高速通信,不用关心通信细节,进而实现业务平台的高效部署与运行能力。
系统架构
图 1 分布式软总线组件架构图
目录
分布式软总线组件主要代码目录结构如下:
/foundation/communication/dsoftbus
├── interfaces # 接口代码
├── core # 核心代码
│ ├── common # 通用代码
│ ├── adapter # 适配层代码
│ ├── authentication # 认证代码
│ ├── bus_center # 组网代码
│ ├── connection # 连接代码
│ ├── discovery # 发现代码
│ ├── transmission # 传输代码
│ └── frame # 框架代码
├── sdk # 运行业务进程代码
│ ├── bus_center # 组网代码
│ ├── discovery # 发现代码
│ ├── transmission # 传输代码
│ └── frame # 框架代码
└── components # 依赖组件代码
约束
- 组网设备需在同一局域网中。
- 组网之前,需先完成设备绑定,绑定流程参见安全子系统中说明。
- 只能和一个设备进行组网。
说明
使用说明
须知: 使用跨设备通信时,必须添加权限ohos.permission.DISTRIBUTED_DATASYNC,该权限类型为 dangerous 。
1、发现
- 发布流程
1.上层应用需要对外发布自身能力时,调用服务发布接口发布自身能力。
2.上层应用不再需要对外发布自身能力时,调用UnpublishService接口注销服务。
- 发现流程
1.应用需要发现特定能力设备时,调用发现接口启动发现。
2.当软总线发现到设备时,通过回调接口通知业务所发现的设备信息。
3.上层应用不再需要发现时,调用StopDiscovery接口停止设备发现。
2、组网
1.发起组网请求,携带组网连接地址信息,并且提供组网执行结果回调函数。
2.等待组网结果,JoinLNN()返回成功表示软总线接受了组网请求,组网结果通过回调函数通知业务;组网回调函数中addr参数内容和JoinLNN()的入参互相匹配;retCode如果为0,表示组网成功,此时networkId为有效值,后续传输、退网等接口均需使用该参数;retCode如果不为0,表示组网失败,此时networkId为无效值。
3.使用传输相关接口进行数据传输。
4.发送退网请求,携带组网成功后返回的networkId,并且提供退网执行结果回调。
5.等待退网完成,OnLeaveLNNResult()的networkId和退网请求接口中的networkId互相匹配;retCode为0表示退网成功,否则退网失败。退网成功后,networkId变为无效值,后续不应该被继续使用。
6.使用节点(即设备)注册和注销接口,监听网络中节点状态变化等事件。
3、传输
1.创建会话服务,并设置会话相关回调,用户可在回调中处理打开/关闭和消息接收事件。
2.创建会话 ,用于收发数据。
3.通过sessionId向对端设备发送数据。
4.通过sessionId关闭会话。
5.删除会话服务。
