对于开发者而言,「Write Once,Run Anywhere」究竟凭借的是什么?

在 AI、IoT、大数据、云计算等火热技术的促活下,越来越多的设备“联动”起来,随之并入万物互联之列的设备也与日俱增。在智联设备量爆发之际,殊不知呈现在众人面前的竟是一款款形态各异的智能终端产品,毋庸置疑,这对于用户而言,想要统一管理这些设备都极为繁琐,更不要论对于在这些智能终端设备背后默默提供支持与更新的开发者了。

此前,在2019华为开发者大会上,华为消费者业务软件总裁王成录曾发布了一份针对应用开发者的调查数据统计,根据调查结果,我们发现,时下有 63% 的应用开发者有多设备适配困扰,即在推出一款新的软件时,需要对不同终端进行适配与兼容;还有 49% 的受访者表示,基于不同的平台,需要使用多种不同编程语言来完成;另外,有 20% 的程序员称跨平台数据融合是在多端开发过程中最大的挑战。

归根究底,面向多终端做开发,显然极大地增加的开发者的时间与技术成本,那么,是否有一种方法可以帮助开发者实现一招制敌,即「Write Once,Run Anywhere」,亦或是「一次编写、多端部署」的愿景?

日前,我们从华为的分布式技术中找到了答案。

一次开发,多端部署

想必大家对今年 8 月 HDC 2019 还有不少的印象,彼时在大会现场,华为消费者业务软件总裁王成录宣布正式发布新一代操作系统 EMUI10,同时,王成录表示,EMUI10 采用了三大关键分布式技术,即硬件能力互助共享、一次开发多端部署、分布式安全。而也就在那时,我们首次听到了华为的“一次开发,多端部署”的福音。

作为“一次开发,多端部署”的强有力支撑——分布式技术,根据传统的定义来看,它是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。其旨在利用更多的机器,处理更多的数据。简单来看,分布式技术可以用来打造一台“超级设备”,让信息在多终端之间无缝流转,各终端之间能力互助共享、互为外设,最终实现应用如同在同一终端运行、用户如同使用同一终端、开发者如同为同一终端开发。该分布式技术的应用,不仅大幅降低跨设备的应用开发工作量,还有效地提升了开发者的效率。

不过,纸上得来终觉浅,绝知此事要躬行。「一次开发,多端部署」看似简单,但其复杂度、适用性等都对开发者提出了很大的挑战。

基于 App 开发层面 ,想要实现一次开发,多端部署,首先需要在多终端与应用之间的架起一座桥梁,而该部分可分为简化为两大块内容:UI 和业务逻辑。

只有将 UI 和业务逻辑做解耦,如构建统一的编程框架、自动适配多终端硬件能力的统一抽象UI控件,以及能为不同屏幕的终端提供自适应的响应式布局等等,开发者才能更好地实现应用界面多端自适应功能,由此让应用超越单终端体验,跨终端生态共享,具备多设备分布式体验,提升跨终端体验。

那么,究竟该如何构建一款具备良好地扩展性、可靠性、低延时等特性的统一编程框架?对此,华为在分布式场景中为开发者解决了这一难题,并提供了两大框架:分布式 UX 框架和分布式应用与执行框架。该两大框架分别针对界面逻辑、业务逻辑最大限度地提供系统级别的分布式能力抽象,旨在帮助开发者们以低成本、高效率的方式实现一次开发、多端部署的愿景。

接下来,我们将共同见证两大框架带来的“魔力”。

分布式 UX 框架——轻松实现界面跨端自适应

如文章伊始所述,万物互联场景之下,我们所常用的智能设备早已不局限于普通的智能手机,还有电脑、平板、车载设备、智能助手,乃至诸多的折叠设备,在这其中,作为开发者,想要实现一次开发、多端部署这一目标,首先需要突破应用与多个屏幕界面适配与兼容性问题,也就是一套代码如何自适应各个终端界面的难题。基于这一点,华为研发了一款分布式UX 框架,旨在将自适应功能模块抽象化置于平台层,以此通过 App 代码调用,从而实现应用程序的跨终端运行及应用程序跨多终端自适应显示。

分布式 UX 框架将适配功能进行了抽象化,可简单地分为交互层、逻辑层、界面层、要素图层(Feature Layer)。除此之外,该框架也提供了一些工具包/链,以及库等。

对于应用开发者而言,在面向界面自适应编程时,主要用到分布式 UX 框架中三大模块:

  1. UX 编程框架中的智能界面开发包。该开发包将界面元素、内容框架、页面框架等不同维度的组件能力抽象化,为开发者直观地提供了多态控件、动态布局、栅格系统、工程模板等模块。通过该智能界面开发包,可轻松将不同设备中的控件、自适应的信息结构设计、乃至系统参数抽象,便于开发者调用。

  2. 声明式界面编程DSL。在分布式 UX 这一框架中,华为在界面层,主要采用了 DSL 来为开发者提供提升分布式界面编程效率的声明式语言,通过 DSL 描述目标性质,从而让计算机明白目标。

  3. UX 编程框架中的分布式界面执行框架。这对于开发者而言,是不可见的。在分布式开发过程中,不同的 UX 设备之间的依赖、兼容、编译、解析等平台级工作均由该框架完成。

基于以上,开发者只需在开发过程中调用智能界面开发包中的工具或模板进行代码设计,并在 App 的前端界面代码中声明DSL 相关的文件,最后借助分布式界面执行框架编译代码,即可轻松实现一次开发,多端部署的界面自适应问题。

分布式应用与执行框架——业务逻辑的元能力化

不过,仅解决了多终端界面自适应的问题,对于开发者而言,还有一个更为严峻的挑战——除了界面之外,如何将应用的其他功能及服务部分均适用于多终端?

众所周知,目前开发者在开发应用时,会分别面向手机、桌面,以及不同的操作系统发布不同的版本,同时基于不同的平台所采用的技术架构以及框架均会有所不同。无形之中,这一举措就造成了多设备割裂的状态,那么如何让不同设备之间的应用在开发层面有共通性,从而让服务可以灵活迁移与互助,这就是华为分布式应用与执行框架所需要完成的使命。

在落地应用过程中,分布式应用与执行框架首先将应用程序业务逻辑进行了解耦,分隔成可在任何设备上独立工作的原子能力 AA(原子化服务,Atomic Ability)。对于分布式应用与执行框架中最核心的部分,元能力(AA)是面向未来全场景不同应用开发的解决方案,适合近场且轻量级,其能够在实现应用分布式的基础结构之上,完成应用的跨设备迁移。

从功能上来看,元能力由第三方开发而成,集成单一功能程序实体,并由系统直接调用。举例说明,如在面向同一类型的不同应用时,AA 可以集成通用的特性并封装,然后将其接口开放给开发者,开发者通过FA(特性能力,Feature Ability)调用其他设备有而本设备没有的计算能力,或者将本设备的计算能力共享给其他设备,从而实现一次开发,多端部署的业务逻辑调用。

这也正如今年 HDC 上的一个视频通话 App 案例,通过分布式应用与执行框架,可将视频通话 App 业务逻辑解耦成 7 个模块:视频处理、音频处理、通话控制、通话迁移、视频采集、音频控制、美颜。其中,通过调用视频采集、音频控制、美颜三个相互独立的 AA,即可实现视频处理、音频处理、通话控制、通话迁移四个单一的特性。

对于开发者而言,可以基于不同的设备按需部署。比如:对于功能最为完善的智能手机设备而言,7 个功能模块全部会用到;但大屏如电脑等设备,5 个功能模块已足够;对于智能音箱设备,因缺少视频界面显示,直接调用三个模块即可实现功能部署。

整体而言,应用由元能力灵活组装,可大可小,可分可合,从而能够为开发者提供统一的开发入口。对此,你 Get 了吗?没get到也不要紧,12月20日,华为将在上海举办一场面向开发者的线下活动,还将为你进行全方位展示分布式技术,并发布更多开放Kit内容。活动详情请搜索华为开发者联盟,获取更多技术能力。

听说有了华为分布式技术,开发者能够一人顶三人?相关推荐

  1. HighNewTech:2021 年Google谷歌 I/O 开发者大会 Kemal 等三人主题演讲分享《TensorFlow 在机器学习领域的进展》

    High&NewTech:2021 年Google谷歌 I/O 开发者大会 Kemal 等三人主题演讲分享<TensorFlow 在机器学习领域的进展> 作者简介:一个处女座的程序 ...

  2. 手机车机一体化,华为分布式技术构筑车机新生态

    近年来,车机经历了一段快速发展的成长过程.十年前,车机单色的显示屏还只有简单的CD.FM等功能.但是随着.随着4G网络的发展,车载多媒体系统硬件资源不断增加,软件上也将娱乐.导航等功能加入,车辆系统逐 ...

  3. 【人人学-5G技术进阶】华为5G技术进阶测试答案(三)

    1.在当前已经冻结的R15版本中,最大的载波带宽为800MHz. O正确 O错误 下一题 区太遗憾,答错了! 我的得分: 0分正确答案: 错误 2.同样的材质,随着频率的变高,穿透损耗也会慢慢变大. ...

  4. 多个硬件体验如一,华为终端分布式技术会重构IoT生态吗?

    文|编程浪子 来源 | 螳螂财经(ID:TanglangFin) 随着新基建理念的深入贯彻,从事硬件行业的人们不禁提出了一个至关重要的问题:物联网的商业价值在什么情况下才能最大化? 物联网的概念由比尔 ...

  5. 华为畅享max有没有人脸识别_看到Meeting视频会议一体机融合华为分布式能力,共建智能会议新体验...

    点击蓝字关注我们 12月20日,华为终端分布式能力开放技术交流会在上海金茂君悦大酒店举行.会上,华为宣布开放了包括DV Kit(DeviceVirtualization Kit).CaaS Kit.A ...

  6. 【华为云技术分享】HDC.Cloud|华为云Stack大咖说:如何实现微服务架构下的分布式事务

    离华为开发者大会2020(Cloud)开幕仅剩一月左右,让开发者们和华为大咖近距离沟通的扫地僧早午餐会也已经开放预约.但是,有些小伙伴们已经等不及到二月了,别急,福利这不就来了吗!华为云Stack混合 ...

  7. 打破硬件边界,华为EMUI分布式技术如何连接万物

    作者 | 伍杏玲 出品 | CSDN 随着万物互联时代的到来,我们身边充斥着越来越多的智能终端:智能手机.智能电视.智能音响.车载终端.平板.笔记本电脑.电视机.智能手表--我们和单个终端产品的交互方 ...

  8. 【华为云技术分享】华为开发者大会HDC.Cloud带你探索强化学习三大挑战及落地实践

    2015-2017年间,AlphaGo系列事件宣告在围棋领域AI算法战胜人类世界冠军,这主要得益于其背后的核心技术-深度强化学习技术.之后研究者开始转向更加复杂的对战博弈场景,典型例子如Deepmin ...

  9. 鸿蒙商务旅行箱,全军出击!华为智选发布16款新品:鸿蒙分布式技术来了

    原标题:全军出击!华为智选发布16款新品:鸿蒙分布式技术来了 近日,华为智选品鉴会在深圳举行,这也是华为智选在今年举办的首个专场品鉴会. "给全场景智慧生活添点温度",华为与生态合 ...

最新文章

  1. Java并发之同步的产生及解决
  2. 如何刪除GitHub中的repository
  3. 分别使用委托、接口、匿名方法、泛型委托实现加减乘除运算
  4. 在Netbeans下配置Tomcat manager用户名与密码
  5. 机器人聊天软件c#_使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)
  6. 计算机基础- -认识磁盘
  7. C# Winform实现捕获窗体最小化、最大化、关闭按钮事件的方法,可通过重写WndProc来实现
  8. 使用JShell的Java 9 Streams API
  9. docker kibana:7.14.2
  10. 使用U-Net分割方法进行癌症诊断
  11. 自然语言交流系统 phxnet团队 创新实训 个人博客 (十一)
  12. java删除文件内容_java 删除文件中的数据
  13. 系统安装 使用VMware14安装XP系统
  14. spring AOP的配置
  15. 关于C语言中,long类型的长度
  16. 微信 css area,微信小程序--手写一个地区选择器(多级联动)
  17. Win10系统无法安装可选功能提示错误代码0x800F081F的解决方法
  18. 人脸识别c语言正方形,Matlab实现的基于FLD的人脸识别系统源代码
  19. word 插入脚注尾注和删除页眉页脚
  20. 区分SLA,SLI,SLO Google 云原生的三个S

热门文章

  1. 【Linux】部署cobbler
  2. Eclipse统计代码行数
  3. Gitbook/Markdown中插入复杂(合并单元格)的表格
  4. vue限制点击次数_vue点击切换颜色限制个数(用了mui框架)
  5. 装饰效果(最大连续字段和)
  6. python set() 和 dict()
  7. tf.global_variables_initializer()什么时候用?
  8. Linux Shell笔记4 正则表达式
  9. Linux下的进程池(3)
  10. Markdown数学符号