该论文发表在2019年MobiSys会议(CCF-B类)上,发表团队来自美国哥伦比亚大学。随着智能手机和平板电脑等移动终端设备的激增,对跨设备资源共享的需求越来越大。近年来,很多研究关注移动分布式场景的跨设备资源共享,为用户提供多设备协作的新体验。这些研究有的从移动操作系统底层内核设计新的接口,有的从移动操作系统框架层实现新的RPC,还有一些工作专注于提高资源共享效率等。本文从移动系统框架层出发,以系统服务级的抽象实现异构设备的资源共享。更具体的来说,本文提出M2,这是一个用于跨设备资源共享的系统,它使现有的未经修改的移动应用程序能够共享和组合多个设备,包括摄像头、显示器、扬声器、麦克风、传感器、GPS 和输入。
01 背景&问题
① 移动系统方面,单就Android而言,超过24000个扩散系统可用。它们和不同的硬件平台高度集成,这样硬件平台集成了大量使用非标准接口的不同硬件设备,并且使用不标准的接口。不同版本的应用软件运行在这些系统上,包括各种版本的Android和IOS,尤其是Android。设备、硬件和软件的异构让跨系统的结合多种设备变得很难;
② 数据格式方面,众多的移动设备会产生不同数据格式的大量数据,从各种各样的传感器到音频和视频设备,异构的数据格式给不同系统和设备之间的资源共享带来极大困难;
③ 网络性能方面,要能够在既定网络环境下,实现高带宽的数据共享并且保证安全和性能;
02 设计
首先,M2提出以数据为中心的共享方式,将移动设备分为client和server,分别在client和server建立可用设备清单和设备清单。M2通过修改移动系统的System Service层实现跨设备的资源共享,因为上层应用是通过系统服务(public API)获取的数据。另外,M2只需要修改client端和server端部分本地框架,引入用户级别的虚拟设备。下图是M2的架构。以触摸屏输入为例:在server端,M2 App运行在前台,当用户触摸屏幕,这个input event就被M2 App捕获,然后APP将对这input event标准化并且打包它的细节变成M2系统的标准输入格式;然后,这个event就和一些辅助信息转发到client端的输入系统;接收之后,client端的input system services会解包input event然后转换成client平台的input format。如果有额外需求(根据辅助信息),还要做计算进行适配(fused display)。
其次,M2通过device transformation和transformation plugin框架灵活的使用远程设备。使得现在的App可以透明使用并且组合本地和远程的设备,无需修改应用就可以达到multi-mobile的功能。一个device transformation框架包含三部分:①input device abstraction ;② output device abstraction;③ transformation function。表3显示了这些设备转换类型。
例如,该表第一个fused用于融合输入,转换设备的一种应用,fused display将四个平板结合成为一个,按照比例切分为四部分,在不影响游戏体验的情况下,扩大了显示界面。如下图所示:
又如该表第二个translated类型,使用转换设备将眼睛移动变成触屏输入,这对于残疾人或者无法使用手触的人来说非常实用。服务端设备通过人脸识别功能使用相机追踪眼睛移动,产生的信号会转换为触摸,它将作为输入数据传输到客户端设备。
最后,M2 中client和server通过标准网络sockets通信,使用wifi或者wifi-direct。对于控制消息和重要数据,M2使用TCP;对于显示、音频、和相机preview,使用UDP。同时,M2通过硬件编码来压缩display和audio的数据,保证系统面对高带宽传输时的性能表现;M2通过128-bit AES加密和设置连接密钥确保移动设备连接的安全;M2系统中,服务端设备除发送时外不承担其他功能 类似于静默的 外部设备 服务端和客户端可以随时断开连接随时重新连接,M2在client端会维持所有App的状态信息,根据传输的设备数据调整传输策略。App的状态完全在client端,网络的断连不会导致App崩溃。
03 实验结果
M2运行在五种不同 SoC(Nexus 4 5 7 9, iPad mini以及iPhone 6S) 和九种不同版本的 Android 和 iOS 的异构智能手机和平板电脑配置上,包括 Android 版本 Jelly Bean (4.3)、KitKat (4.4)、Lollipop (5.0)、Marshmallow (6.0.x), 和Nougat(7.1.1)。主要有以下三方面性能指标:
① 显示性能
论文采用 Android PassMark 基准测试,这是一组资源密集型测试,用于评估 CPU、内存、I/O 和图形性能。图 3 显示了根据 Android Lollipop 性能标准化的 PassMark 基准测量结果;越低越好。随着远程显示设备数量的增加,M2 会产生一些额外的开销,但这种开销并不大,并且在某些测试中与使用的设备数量无关。图 4 显示了运行 PassMark 测试时所需的每台设备平均网络带宽,汇总到最小图形 CPU、磁盘和内存测试、2D 测试、3D 简单测试和 3D 复杂测试中。运行基准测试的客户端所需的网络带宽是显示的带宽乘以远程设备的数量,因为它将显示数据发送到每个远程设备。
② 拍照延迟
捕获时间表明,与使用本地摄像机相比,M2 产生的额外延迟可以忽略不计。远程摄像机场景的总时间要高得多,因为通过网络将图片传输到客户端应用程序的默认本地存储需要时间。在 N7 使用 N4 远程摄像头的最坏情况下,由于传输时间的原因,总时间比捕获时间多近一秒。图 5 还显示了拍摄照片的带宽要求,包括相机预览和从远程相机拍摄的照片到本地存储的传输中。相机预览的分辨率低于原始显示分辨率,因此其带宽要求低于 3Mbps。
③ 音频延迟
论文使用音频基准 Zoiper 测量音频和麦克风延迟。图 6 显示了音频延迟。对于大多数测试,与普通 Android 相比,M2 增加的延迟可以忽略不计,即使使用远程麦克风和扬声器也是如此。M2 产生更高性能开销的一种情况是,当使用远程扬声器和麦克风以 44.1 KHz 的采样率和 81.3 毫秒的 Zoiper 缓冲区大小设置运行基准测试时,导致大约 100 毫秒的额外延迟和近 20% 高架。
04 结论
首先,M2引入了一种新的以用户级数据为中心的方法,即通过System Services导出和导入设备数据,这使得M2具体良好移植性;其次,M2引入了设备转换,以透明地混合和匹配不同系统中不同的设备和不同的数据格式。这使得未经修改的应用程序能够以新的强大的方式共享和组合设备,例如多端显示器、更好的音频质量的电话会议、面向残疾用户的用户界面,以及在iOS系统上运行Android应用程序。同时,M2利用商用移动编码和加密硬件来实现高质量性能,甚至用于3D游戏。最后,该项目未开源,复现上有一定难度。
The End
致谢
感谢本次论文解读者,来自华东师范大学的博士生李文通,主要研究方向为跨设备资源共享、移动计算。
点一下“阅读原文”获取论文