1.3 Harmony理想的分布式世界
Harmony 2.0发布会多次提到Harmony是分布式系统,但是很多人仍然没有理解Harmony理想的分布式世界。
在Harmony开发者教程中,含有分布式地图导航、分布式输入法、分布式游戏手柄、分布式邮件编辑、分布式语音照相机、分布式调度启动远程FA(Feature Ability)、跨设备视频播放、分布式新闻客户端、分布式亲子早教系统共9个分布式项目教程。
从Harmony的这几个分布式项目教程中来看,Harmony的分布式与传统Java编程所构建的分布式服务、分布式微服务等后台应用的架构略有不同。
拿笔者曾经编写的《微服务分布式架构基础与实战——基于Spring Boot+Spring Cloud》举例可以看出,分布式微服务架构是指将众多独立运行的Spring Boot项目在注册中心Eureka、ZooKeeper或Consul中进行注册,注册后注册中心会有其他相应服务的地址,另外的Spring Boot微服务项目可以通过注册中心的地址获取到一些服务与资源。例如购物车服务可以通过账号管理服务中心获取用户的账号、密码及头像等相关信息。
而Harmony的分布式,类似这种分布式服务、分布式微服务的架构。例如开发者教程中的分布式游戏手柄项目,该项目将手机屏幕变成手柄的上、下、左、右、A、B键,用户可以通过手机控制电视里游戏角色的动作。当然根据官方描述,Harmony的分布式必须基于同一个网络并且要求设备使用同一个华为账号登录。简而言之,就是电视中的Harmony系统要与手机Harmony系统同时连接在同一个Wi-Fi中,手机作为注册中心,通过Wi-Fi集成范围内所有Harmony设备,并且底层会记录这些设备的地址,方便用户下次直接连接使用。
在过去出现过不少像这种分布式游戏手柄的项目,例如用小米手机控制室内的灯光亮度,用手机控制空调温度的高低。甚至还出现了模块化的智能家居构建,例如对于非智能家居,可以只买灯的智能开关,就可以通过手机间接控制灯的开启和关闭。这样只需要购买一个家居模块即可,而不需要必须有小爱音箱、天猫精灵这种智能家居的中心。
Harmony理想中的世界应该是,在智能家居场景下,通过手机可以控制家中的一切智能设备,甚至在下班回家之前就可以放好洗澡水,并且煮好米饭。
在游戏场景下,Harmony的用户在室内可以通过手机玩电视上的游戏,不需要额外购买手柄,当然这部分游戏暂时只能是基于Harmony和Android编写出来的游戏,暂时无法涉及PC游戏和主机游戏。游戏编程与之前并无不同,例如使用Cocos、Unity、Godot或Unreal等引擎编写的游戏打包成APK(Android Application Package,Android安装包),可以放到Harmony里兼容运行。
在亲子教育场景下,只要在同一个Wi-Fi下,家长可以隔着房间给孩子的错题进行标注,随时看到孩子正在写的题和练习题的作答步骤。
在轻办公场景下,如果手机中的截图需要用平板计算机进行发送,操作会十分复杂,Harmony具有分布式邮件发送的功能,可以同时调用不同设备中的文档或素材,进行跨设备操作,发送数据。
Harmony理想中的世界,是真正意义上万物互联的世界。以前因手机厂商、软件开发商、硬件制造商、用户等多方面协调的原因,万物互联的课题仍然处于萌芽状态。Harmony直接将最复杂的协议、通信、注册、协调等内容集成为接口,日后软件制造商可以更轻易地编写万物互联的软件。在HMS制定好的规则之下,各方面人员与其所在的公司都节省了大量的成本,这就是Harmony理想中的分布式世界。