HDC2021技术分论坛:异构组网如何解决共享资源冲突?
作者:lijie,HarmonyOS软总线领域专家
相信大家对HarmonyOS的“超级终端”比较熟悉了。那么,您知道超级终端场景下的多种设备在不同环境下是如何组成一个网络的吗?这些设备之间又是如何解决共享资源冲突的?本期我们就来为您揭晓~
一、分布式业务的通信挑战
分布式业务的通信主要面临两大挑战:
1. 分布式设备通信的异构情况导致了体验的瓶颈
基于1+8+N设备的六大智慧场景(智慧家居、智慧出行、智慧办公、影音娱乐、运动健康、教育关怀),不同场景下设备种类、数量和能力等差异非常大。即使是同类设备,其硬件能力也不同。总结来说,分布式设备存在介质、协议、芯片、环境和场景5个方面的异构,如图1所示。

图1 五个异构
- 介质和协议异构:传输介质包括蓝牙、Wi-Fi和PLC等不同类型。而同一类型的传输介质也有区别,比如Wi-Fi分为2.4G和5G两个频段。此外,还存在协议的差异,比如Wi-Fi有802.11 a/b/g/n/ac/ax等代际差异。
- 芯片异构:通信芯片硬件有连接能力、天线、调制解调方式等差异。
- 环境异构:不同的环境,差异非常大。比如家庭环境下,卧室使用客厅的Wi-Fi,信号需要穿墙;微波炉等设备带来电磁干扰;邻居家Wi-Fi设备带来邻频干扰等等。
- 场景异构:业务的使用场景千差万别,比如影音娱乐、运动出行、办公商务、教育等,它们的主要业务模型差异很大,对通信能力的诉求也不同。
上面这些异构,造成业务并发冲突高、互通兼容性问题多、传输可靠性难以保障等问题。
2. 传统的软件方案造成通信资源与业务应用耦合
传统的端端通信,孤立地使用硬件资源,没有考虑或者也无法感知存在多设备、多业务的竞争和冲突。进而,传统的操作系统在软件实现上将业务与连接直接绑定,应用视角即通信视角。因此在面临分布式业务时,就有了先天的缺陷,往往因为连接冲突而无法保障业务体验,先天限制了分布式业务场景的拓展,割裂了体验。
二、异构组网介绍
针对分布式业务面临的异构的现状,分布式软总线提出了异构组网,目的是在诸多异构的情况下建立统一的管理体系,以便即使在诸多不确定性因素的影响下,也能给分布式业务提供确定性的通信保障。

图2 异构组网
分布式软总线基于各种物理介质的通信特点,以用户无感的方式使分布式设备之间相互发现并协商,创造出一个局域的端端横向网络(注:有大网的端云体系称为纵向网络),并通过合适的场景化的软件算法以极低的功耗保活网络。分布式软总线构建了这个横向网络之后,就能将诸多分布、孤立的设备组织起来,从系统底层将多设备抽象为一个设备。
然后,分布式软总线从局域空间内通信空口资源的维度,进行了重要的视角变换:所有的通信资源都归属于分布式软总线的网络,设备之间彼此共享这些通信资源。这样的一个视角转变,解耦了应用与通信连接的绑定关系,使得从软件角度去解决共享资源冲突的问题成为可能。而在软件的世界里,共享资源冲突的解决方式就有了太多的可行性的方案。
下面我们从三个方面更详细地介绍异构组网,看看异构组网具体是如何解决共享资源冲突问题的。
1. 通信资源抽象
在分布式设备间异构情况下,分布式软总线的组网模块构建了分布式业务的通信能力的管理面,统一管理异构通信资源。分布式软总线从资源的角度对通信进行统一的抽象,将每一个通信资源称为Lane,将一个分布式设备的资源合集称为LaneHub。超级终端的所有Lane形成一个共享资源池,由分布式软总线统一管理和调度。

图3 通信资源抽象
2. 感知与计算
分布式软总线对所有Lane进行信道级的质量监测,并通过软件算法将所有收集起来的情况进行分类,比如竞争集合、强干扰集合、背景噪音集合等。分布式软总线构建了一套组网智能测算体系,根据收集到的信息对信道进行评估。上层业务只需感知网络状态和调用传输API进行传输,无需关注底层细节,由分布式总线自动分配合理的空口资源(频率、信道等),保证全局最优。

图4 感知与计算
3. 调度与均衡
业务使用场景千差万别,可用带宽、信道负载、时延、传输异常等因素都会影响业务的用户体验。分布式软总线建立统一的调度框架,并对具体的业务种类进行传输建模。以投屏业务为例:我们对视频流业务,从内容质量、用户交互体验、用户观看体验三个方面进行建模,如图5所示。分布式软总线通过底层链路感知、时延感知、队列感知,联动业务进行码率、帧率、缓存帧的调整,实现0中断、0花屏、0卡顿的稳定可靠的业务体验。

图5 视频流业务建模
三、结束语
异构组网是一个不断演进、有生命力的网络,我们持续地增强网络感知能力,并对分布式业务进行精确化的调度,实现通信资源的合理使用,保障分布式业务体验,并提升负载能力。

图6 正向循环
更进一步,分布式软总线基于异构组网建立起了分布式软时钟体系。网络感知、软时钟、负载均衡以及调度交互,建立起良性的正向循环,不断提升业务体验!

扫码添加开发者小助手微信
获取更多HarmonyOS开发资源和开发者活动资讯
HDC2021技术分论坛:异构组网如何解决共享资源冲突?的更多相关文章
- HDC2021技术分论坛:如何高效完成HarmonyOS分布式应用测试?
作者:liuxun,HarmonyOS测试架构师 HarmonyOS是新一代的智能终端操作系统,给开发者提供了设备发现.设备连接.跨设备调用等丰富的分布式API.随着越来越多的开发者投入到Harmon ...
- HDC2021技术分论坛:进程崩溃/应用卡死,故障频频怎么办?
作者:jiwenqiang,DFX技术专家 提到开发一个产品,我们通常首先想到的是要实现什么样的功能,但是除了功能之外,非功能属性也会很大程度上影响一个产品的体验效果,比如不定时出现的应用卡死.崩溃 ...
- HDC2021技术分论坛:组件通信、硬件池化,这些创新技术你get了吗?
作者:ligang 华为分布式硬件技术专家,sunbinxin 华为应用框架技术专家 HarmonyOS是一款全新的分布式操作系统,为开发者提供了元能力框架.事件通知.分布式硬件等分布式技术,使能开发 ...
- HDC2021技术分论坛:“积木拼装”,HarmonyOS弹性部署大揭秘!
作者:peitaiyi,华为终端OS产品交付专家 HarmonyOS是一款面向万物互联时代的.全新的分布式操作系统.在传统的单设备系统能力基础上,HarmonyOS提出了基于同一套系统能力.适配多种终 ...
- java解决共享资源竞争
由于多线程的实现,在运行一个程序的时候可能会有很多的线程在同时运行,但是线程的调度并不是可见的,所以不会知道一个线程什么时候在运行,比如说 你坐在桌子前手拿着叉子,正要去叉盘中的最后一片食物,当你的叉 ...
- HDC技术分论坛:HarmonyOS新一代UI框架的全面解读
作者:yuzhiqiang,UI编程框架首席技术专家 在Harmony 3.0.0开发者预览版中,包含了新一代的声明式UI框架ArkUI 3.0.多语言跨平台编译器ArkCompiler 3.0.跨端 ...
- PAT 甲级 1145 Hashing - Average Search Time (25 分)(读不懂题,也没听说过平方探测法解决哈希冲突。。。感觉题目也有点问题)
1145 Hashing - Average Search Time (25 分) The task of this problem is simple: insert a sequence of ...
- 【Android Developers Training】 90. 序言:解决云储存冲突
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- python中线程共享资源问题的解决
线程跟进程有些相似,有时被称作轻量级的进程,但不同的是,所有的线程运行在同一个进程中,共享相同的运行坏境. 进程和线程都是实现多任务的一种方式,例如:在同一台计算机上能同时运行多个QQ(进程),一个Q ...
随机推荐
- 一个C#开发搭建Android框架的心路历程
前言 Java框架实在是太多了,因为是初学乍练,所以,只好以百度为标准选择框架了. Java的框架文章太难写了,因为他引用了太多框架,而没一个框架都有很繁琐的配置,把每个框架都写一遍,就等于写书了:所 ...
- svg的animate动画动态加载删除遇到删除animate后再次加载的animate动画没有效果问题
svg上有多个圆圈,当选中特定圆圈后给其加上animate动画效果,并把其他圆圈的animate效果去除. 第一次选择一个点实现动画效果完全达到效果,因为是第一次所以不需要把其他圆圈的animate子 ...
- kafaka高效吞吐量-生产端,服务端,消费端
零拷贝:sendfile 生产端 生产端:消息压缩,缓存批量发送,异步解耦 多线程并发:防止某一个业务阻塞等待 接收消息缓存 BufferPool设计:不释放 服务端 Reactor模型,顺序写,页缓 ...
- STC单片机控制28BYJ-48步进电机
STC单片机4*4按键控制步进电机旋转 28BYJ-48型步进电机说明 四相永磁式的含义 28BYJ-48工作原理 让电机转起来 最简单的电机转动程序 电机转速缓慢的原因分析 便于控制转过圈数的改进程 ...
- 解决一次gitlab因异常关机导致启动失败
解决一次gitlab因异常关机导致启动失败 目录 解决一次gitlab因异常关机导致启动失败 1. 服务器异常关机 2. gitlab服务 2.1 进入gitlab容器内部 2.2 检查gitlab各 ...
- 什么?还在用delete删除数据《死磕MySQL系列 九》
系列文章 五.如何选择普通索引和唯一索引<死磕MySQL系列 五> 六.五分钟,让你明白MySQL是怎么选择索引<死磕MySQL系列 六> 七.字符串可以这样加索引,你知吗?& ...
- Java学习(十九)
先学了字体分类 大概是这种效果: 一般把这些大类放在font-family的最后使用,防止字体呈现的效果不够好. 今天把final关键字学完了 也要几点要注意,我觉得比较重要的就是public sta ...
- 十本你不容错过的Docker入门到精通书籍推荐
前言: 最近有许多小伙伴私信让我推荐几本关于Docker学习的书籍,今天花了一下午的时间在网上查阅了一些资料和结合自己平时工作中的一些学习参考资料书籍写下了这篇文章.注意以下书籍都是十分优秀的Dock ...
- [atAGC050F]NAND Tree
当$n$为偶数,暴力$o(n)$枚举第一次操作,以下只考虑$n$为奇数的情况 此时,$n-1$即操作次数为偶数,找到最小的$i$(其中$1\le i\le \frac{n-1}{2}$),满足第$2i ...
- [loj3180]天桥
考虑将所有交点作为关键点来建图跑最短路,但图上的关键点数量最坏为$o(nm)$,需要优化 当$s=0$且$g=n-1$的部分分,有以下结论: 1.对于一段天桥$([l,r],y)$,不会从$(r,y) ...