本文首发我的微信公众号『爱笑的架构师』,欢迎大家关注。
华为开发者大会2020在广东东莞松山湖欧洲小镇举办,在主题演讲环节中,华为消费者业务总裁余承东宣布“鸿蒙”系统升级到2.0版本(HarmonyOS 2.0),余总表示,“鸿蒙”系统将在12月份推出手机版本,明年华为的手机将全面支持“鸿蒙”系统。
“没有人能够熄灭满天星光,每一位开发者,都是华为要汇聚的星星之火”,华为消费者业务CEO余承东说,华为将全面开放核心技术、软硬件能力,与开发者们共同驱动全场景智慧生态的蓬勃发展。
在这场发布会上也详细讲解了分布式软总线的概念,下面我们来看一下分布式软总线是不是真的硬核,会给我们以后的生活带来什么影响?
总线英文名叫Bus,你猜的没错也是公共汽车的意思。总线是一个非常广泛的概念,在传统计算机硬件体系中应用的非常广泛。
总线是一种内部结构,它是cpu、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。
在计算机系统中,各个部件之间传送信息的公共通路叫总线,微型计算机是以总线结构来连接各个功能部件的。按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。
传统总线的典型特征:
- 即插即用
- 高带宽
- 低时延
- 高可靠
- 标准
分布式软总线技术是基于华为多年的通信技术积累,参考计算机硬件总线,在1+8+N设备间搭建一条“无形”的总线,具备自发现、自组网、高带宽低时延的特点。
简单解释一下什么是1+8+N: 1指的是手机 8代表车机、音箱、耳机、手表/手环、平板、大屏、PC、AR/VR N泛指其他IOT设备
HarmonyOS分布式软总线
全场景设备间可以基于软总线完成设备虚拟化、跨设备服务调用、多屏协同、文件分享等分布式业务。
分布式软总线的典型特征:
- 自动发现/即连即用
- 高带宽
- 低时延
- 高可靠
- 开放/标准
通过协议货架和软硬协同层屏蔽各种设备的协议差别,总线中枢模块负责解析命令完成设备间发现和连接,通过任务和数据两条总线实现设备间文件传输、消息传输等功能。
分布式总线的总体目标是实现设备间无感发现,零等待传输。实现这个目标需要解决三个问题:
(1)设备间如何发现和连接?
(2)多设备互联后如何组网?
(3)多设备多协议间如何实现传输?
下面带着这三个问题我们一探究竟。
传统的设备发现是手动的,需要人干预,以生活中常见的一个例子讲解:
比如手机上有很多照片需要传到个人PC上,我们可以采用蓝牙传输,首先要打开手机和PC的蓝牙发现功能,手机或者PC点击搜索设备,然后互相配对授权即可连接上,成功连上后就可以肆无忌惮的发送照片啦。
在分享照片这个场景中有很多人为的动作:开启蓝牙发现功能、搜索设备、配对授权,这确实有点麻烦,耗费了很多时间,可能会降低分享的意愿。
软总线提出了自动发现的概念,实现用户零等待的自发现体验,附近同账号的设备自动发现无需等待。
上面的例子中手机传照片是通过蓝牙,假如PC没有蓝牙功能只有WIFI,在传统的场景中这种可能就不能实现分享传输了。
软总线能否做到手机通过蓝牙传输,PC通过WIFI接收照片呢?
答案是:当然可以。软总线提出了异构网络组网可以很好解决设备间不同协议如何交互的问题。
设备上线后会向网络层注册,同时网络层会与设备建立通道连接,实时检测设备的变换。网络层负责管理设备的上线下线变换,设备间可以监听自己感兴趣的设备,设备上线后可以立即与其建立连接,实现零等待体验。
软总线可以自动构建一个逻辑全连接网络,用户或者业务开发者无需关心组网方式与物理协议。
对于软件开发者来说软总线异构组网可以大大降低其开发成本。
传统开发模式:
在传统开发模式中开发者需要适配不同网络协议和标准规范。
分布式开发模式:
在HarmonyOS分布式开发模式中开发不再需要关心网络协议差异,业务开发与设备组网解耦,业务仅需监听设备上下线,开发成本大大降低。
传统协议的传输速率差异非常大,时延也难以得到保证。
软总线传输要实现的目标:
高带宽(High Speed)
低时延(Low Latency)
高可靠(High Reliability)
软总线要实现的这三大目标的尖刀武器是:极简协议。
将中间的四层协议栈精简为一层提升有效载荷,有效传输带宽提升20%
极简协议在传统网络协议的基础上进行增强:
- 流式传输:基于UDP实现数据的保序和可靠传输;
- 双轮驱动:颠覆传统TCP每包确认机制;
- 不惧网损:摒弃传统滑动窗口机制,丢包快速恢复,避免阻塞;
- 不惧抖动:智能感知网络变化,自适应流量控制和拥塞控制;
鸿蒙系统的使命和目标是将不同设备的串联起来,成为设备的“万能语言”,实现万物互联的终极目标。
变化一:软件开发从业者的福音
以前开发一款APP不仅需要为手机、手表、平板、电视等不同终端专门设计APP版本,而且还要为同类终端的不同品牌(华为、小米、OV)设计不同的APP版本。
而有了鸿蒙分布式系统架构,只需要开发一个版本,鸿蒙可以帮你“翻译”成不同终端的对应版本,真正实现一次开发就能在不同的终端上运行。
看到这估计很多程序员们会仰天长叹:终于可以早点下班了!
变换二:可以活得更懒
鸿蒙系统分布式架构能让你在使用某个APP软件的时候,比如看视频,可以把屏幕随意切换到电视、电脑、手机、平板、投影仪等任何一个设备的界面上。
你也不必满桌子找各种遥控器了,一个手表一个手机就可以控制家里的空调、电饭煲、汽车空调、音响、电视、电脑、门口的摄像头以及所有能联网的所有东西。
这就是鸿蒙所构想的“万物互联”,让一个系统连接起所有上网的智能设备。大家期待吗,让我们拭目以待吧。
公众号比Github早一到两天更新,如果大家想要实时关注我更新的文章以及分享的干货,可以关注我的公众号。