作者: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技术分论坛:异构组网如何解决共享资源冲突?的更多相关文章

  1. HDC2021技术分论坛:如何高效完成HarmonyOS分布式应用测试?

    作者:liuxun,HarmonyOS测试架构师 HarmonyOS是新一代的智能终端操作系统,给开发者提供了设备发现.设备连接.跨设备调用等丰富的分布式API.随着越来越多的开发者投入到Harmon ...

  2. HDC2021技术分论坛:进程崩溃/应用卡死,故障频频怎么办?

    ​作者:jiwenqiang,DFX技术专家 提到开发一个产品,我们通常首先想到的是要实现什么样的功能,但是除了功能之外,非功能属性也会很大程度上影响一个产品的体验效果,比如不定时出现的应用卡死.崩溃 ...

  3. HDC2021技术分论坛:组件通信、硬件池化,这些创新技术你get了吗?

    作者:ligang 华为分布式硬件技术专家,sunbinxin 华为应用框架技术专家 HarmonyOS是一款全新的分布式操作系统,为开发者提供了元能力框架.事件通知.分布式硬件等分布式技术,使能开发 ...

  4. HDC2021技术分论坛:“积木拼装”,HarmonyOS弹性部署大揭秘!

    作者:peitaiyi,华为终端OS产品交付专家 HarmonyOS是一款面向万物互联时代的.全新的分布式操作系统.在传统的单设备系统能力基础上,HarmonyOS提出了基于同一套系统能力.适配多种终 ...

  5. java解决共享资源竞争

    由于多线程的实现,在运行一个程序的时候可能会有很多的线程在同时运行,但是线程的调度并不是可见的,所以不会知道一个线程什么时候在运行,比如说 你坐在桌子前手拿着叉子,正要去叉盘中的最后一片食物,当你的叉 ...

  6. HDC技术分论坛:HarmonyOS新一代UI框架的全面解读

    作者:yuzhiqiang,UI编程框架首席技术专家 在Harmony 3.0.0开发者预览版中,包含了新一代的声明式UI框架ArkUI 3.0.多语言跨平台编译器ArkCompiler 3.0.跨端 ...

  7. PAT 甲级 1145 Hashing - Average Search Time (25 分)(读不懂题,也没听说过平方探测法解决哈希冲突。。。感觉题目也有点问题)

    1145 Hashing - Average Search Time (25 分)   The task of this problem is simple: insert a sequence of ...

  8. 【Android Developers Training】 90. 序言:解决云储存冲突

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  9. python中线程共享资源问题的解决

    线程跟进程有些相似,有时被称作轻量级的进程,但不同的是,所有的线程运行在同一个进程中,共享相同的运行坏境. 进程和线程都是实现多任务的一种方式,例如:在同一台计算机上能同时运行多个QQ(进程),一个Q ...

随机推荐

  1. Machine learning(3-Linear Algebra Review )

    1.Matrices and vectors Matrix :Rectangular array of numbers a notation R3×3 Vector : An n×1 matrix t ...

  2. 最新JS正则表达式验证手机号码(2019)

    根据移动.联通.电信的电话号码号段,实现一个简单的正则表达式来验证手机号码: // 手机号校验 export function isPhoneNumber(phoneNum) { // let reg ...

  3. Bzoj P2054 疯狂的馒头 | 并查集

    题目链接 思路:因为每次染色都会将某些馒头的颜色彻底更改,所以每个馒头的最终的颜色其实是由最后一次染色决定的,那么我们只考虑最后一次染色即可.对此,我们可以从后往前倒着染色,当目前的染色区间中存在白色 ...

  4. (一)lamp 环境搭建之编译安装apache

    apache的编译安装: 安装步骤大概参考:http://www.cnblogs.com/iyoule/archive/2013/10/24/3385540.html 简单的将分为三步: (1)安装a ...

  5. idea如何在终端使用git并解决终端中文乱码

    idea使用git终端 在idea设置中 找到Settings-Tools-Terminal-Shell path,替换为git安装目录下的bin/bash.exe 解决中文乱码 在git安装目录下找 ...

  6. ABAP——系统状态&用户状态修改、查询

    前言:在ABAP开发中有时候会涉及到状态的变更,比如销售订单的系统状态变更未审批->已审批.设备的在运->报废等,在这里就需要用到标准函数I_CHANGE_STATUS.STATUS_CH ...

  7. Redis这15个“雷坑”,别问我咋知道的……

    来源:https://dbaplus.cn/news-158-3836-1.html

  8. OPPO 图数据库平台建设及业务落地

    本文首发于 OPPO 数智技术公众号,WeChat ID: OPPO_tech 1.什么是图数据库 图数据库(Graph database)是以图这种数据结构存储和查询的数据库.与其他数据库不同,关系 ...

  9. OAuth 2.0 扩展协议之 PKCE

    前言 阅读本文前需要了解 OAuth 2.0 授权协议的相关内容, 可以参考我的上一篇文章 OAuth 2.0 的探险之旅. PKCE 全称是 Proof Key for Code Exchange, ...

  10. ES6—数值(Number,Math对象)(复习+学习)

    ES6-数值(Number,Math对象)(复习+学习) 每天一学,今天要学习ES6的关于数的扩展以及复习,然后通过看书,查阅资料,以及webAPI来搞清楚遇到的,没见过的对象方法等等,下面为本次学习 ...