总线是一种内部结构,在计算机系统中,主机的各个部件通过总线相连,外部设备通过相应的接口电路再与总线相连接,是CPU、内存、输入、输出设备传递信息的公用通道。按所传输的信息种类,可划分为数据、地址和控制总线,分别用来传输数据、数据地址和控制信号。
HarmonyOS系统的使命和目标是将不同的设备串联,成为设备的“万能语言”,让一个系统连接起所有上网的智能设备,实现万物互联的终极目标。其核心能力之一,【分布式软总线】让多设备融合为“一个设备”,带来设备内和设备间高吞吐、低时延、高可靠的流畅连接体验。
本文分享鸿蒙分布式软总线,并对相关源代码进行解析,作为在此平台上工作的相关人员的信息参考和指导。具体开发请参考鸿蒙官网。
1. 介绍设备的通信方式多种多样,譬如USB、WIFI、BT,通信方式差异大且繁琐,链路的融合、共享、冲突、安全等问题也难以保证。
鸿蒙分布式软总线致力于实现近场设备间统一的分布式通信能力,提供不区分链路的设备发现和传输接口,具备快速发现并连接设备,高效分发任务和传输数据。作为多终端设备的统一基座,是鸿蒙架构中的底层技术,是鸿蒙的大动脉,其总的目标是实现设备间无感发现,零等待传输。对开发者而言,无需关注组网方式与底层协议。
2. 分布式软总线特性鸿蒙分布式软总线的设计目标在于推进极简通信协议技术,在设备安全场景下,即连即用。关键技术特性覆盖设备的自动发现&连接、组网(多跳自组网、多协议混合组网)、传输(多元化协议与算法、智能感知与决策)。
2.1 设备间自发现&连接分布式软总线提出自动发现设备,实现用户零等待的自发现体验,附近同账号的设备自动发现无需等待,自动安全连接。
IoT设备分为发现端和被发现端。发现端一般为请求使用服务的设备或称为主控设备,常指智慧屏设备(如手机、平板等)。被发现端为发布服务的设备,指轻量设备(如AI音箱、智能家居、智能穿戴等设备)。目前软总线的设备互联,需保证发现端和被发现端处于同一个局域网内。
2.2 多设备互联、组网基于网络互联、交互的系统,开发者往往需要适配不同网络协议和标准规范。而在鸿蒙系统设定的分布式开发模式中,无需关心网络协议的差异及组网方式,业务开发与设备组网解耦,仅需监听设备上下线,开发成本大大降低。
分布式软总线提出了异构网络组网,自动构建一个逻辑全连接网络,以解决设备间不同协议交互的问题。设备上线后会向网络层注册,同时网络层会与设备建立通道连接,实时检测设备的变换。网络层负责管理设备的上线、下线变换,设备间可以监听自己感兴趣的设备,设备上线后可以立即与其建立连接,实现零等待体验。
2.3 多设备间数据传输提供统一的基于Session的认证、传输功能,上层业务系统可以通过sessionId收发数据或获取其相关基本属性,实现业务消息、流、控制指令等操作交互。