All Posts

端与云的融合

端、管、云,物联网系统的三个主要构成元素,各自技术在高速发展的同时也在不断的影响着现代物联网系统的设计。 端,我们指终端设备,包含手机,车辆,智能家居设备等与用户直接交互的设备; 管,我们指通讯管道,包含有线/无线网络等连接端与与云,端与端进行数据交换的通道; 云,我们指运行在各地数据中心的远程服务器集群及其提供的服务; 传统端与云在软件设计方面有不同的专注点,端软件设计的重点在于思考在受限的内存和算力下如何优化单机程序;云软件设计的重点是在于如何设计可扩展的分布式计算使用多机来处理大规模的服务请求。 物联网系统里数据的产生者是各式各样的传感器,包含音频,摄像头视频,加速度传感器,温湿度传感器等。这些每时每刻都在自动产生的传感器数据,相对于移动互联网应用中用户在APP上手动交互而产生的数据会大上几个数量级。庞大的传感器数据量使得将所有原始数据传回云端处理非常困难,对终端算力和通讯管道的提速提出了要求。 近几年来终端算力的提升,使得我们可以把更多的计算放在终端设备,只与云端交换处理后的中间或结果数据,减少与云端原始数据交换。一方面减少了服务响应延时,另一方面也可以规避一些隐私数据的传输。终端算力的提升,越来越多的云端技术可以被引入到终端中。现代汽车电子中,整车电子系统发展趋向于由娱乐域和驾驶域等若干高性能计算机构成,高性能计算机之间通过以太网通讯形成了一个车载的分布式系统,一些原来在云端被验证的分布式技术开始被应用到车内。 另一方面,通讯管道的发展,4G网络的普及和即将到来的超10Gbps的理论传输速度的5G网络使得端与云的分工也在不断发生着变化。管道的提速,端与云之间可以有更高频的近实时数据交互。 端云融合在车联网的场景下, 车作为一个高复杂度的终端,与云之间也有着不断融合的趋势。车载以太网主干和5G的发展促使车与云融合的过程中会产生了一些新的设计思路,这里讨论一种车联网的整车软件架构,我们称之为C/S/ES(Client-Server-EmbeddedServer)架构,如下图。 C/S/ES架构在传统的C/S(客户端/服务器)架构中在逻辑上引入了车内嵌入式服务器ES(Embedded Server)的模块,将车内的计算与人机交互界面分离,把原来一部分在车载客户端的计算逻辑移到了ES模块中。实际部署中 客户端软件和ES可以是运行在同一个硬件模块上也可以是运行在不同的硬件模块上 ,e.