从资源管理和使用的角度来回顾计算机系统的发展,可以发现,客户机-服务器(最早出现的是20世纪60年代的IBM OS/360系统)一直是单机以外的主流模式,即,计算资源相对较少的客户机和计算资源相对较多的服务器总是在集中控制下,相互连接并协同完成计算任务。随着网络、计算资源以及应用模式的发展,客户机和服务器资源的使用方式也呈现出不同的形态。无论是最初的科学计算(完全依赖服务器端,终端没有实际计算能力),个人计算(通过个人电脑上相对较强的计算和存储资源与服务器进行交互,并发地使用服务器上的资源),还是早期的云计算(主要通过客户端浏览器或移动应用程序与服务器进行交互,并使用云端各类虚拟化的软硬件资源与服务),大都强调对某一端资源的使用。相应地,应用程序发布以后,对客户机和服务器资源的使用就固定不变了。这种相对固定的使用方式非常适用于资源和应用种类及数量相对稳定的个人计算、企业计算和(有线)互联网计算。
近十年来,越来越多的用户开始使用智能手机、平板电脑、智能手表以及其他移动计算设备,并接入使用云端服务。移动智能终端已经开始取代个人电脑,成为云端服务的主要消费载体。云端资源以在线服务的形式发布,终端资源以Web应用或本地应用程序(App)形式使用云端资源,云端和终端通过互联网及其延伸网络(包括移动互联网和物联网)连接。随着云计算和智能终端开始大规模商业化应用,“云-端融合”作为一种理想的应用模式,即软件应用能根据设备特性、用户偏好、使用场景、资源现状等情况,动态/在线地调整自身计算和数据在云端和终端的分布,进而按需使用终端和云端的计算、存储、网络、平台、应用、数据,甚至用户等资源,开始受到学术界和产业界的广泛关注。
从2009年开始,在计算机系统和软件领域的国际学术会议上,“云-端融合”理念的研究成果陆续出现。例如,卡耐基梅隆大学的Cloudlet[1]将云端服务通过虚拟机动态迁移到离移动设备最近的边缘服务器上,极大缩短和简化了移动设备和云端服务之间的网络连接,提高了交互效率;后来Cloudlet又加入了移动端计算负载动态迁移到边缘服务器的场景,形成了较为完善的云-端融合模式[2]。杜克大学的MAUI[3]、德国电信实验室的ThinkAir[4]、英特尔的CloneCloud[5]、密歇根大学的COMET[6]、北京大学的DPartner[7]等工作通过不同的技术思路和实现方式,利用云端强大的计算能力解决终端计算能力不足的问题,都体现了云-端融合的思想。此外,德克萨斯大学奥斯汀分校的πBox[8]和上海交通大学的TinMan[9]通过跨云端-终端的保护机制锁定隐私敏感数据,在保证应用基本功能正确性的同时,确保用户的隐私敏感数据不被泄露。北京大学的SM@RTWeb[10]不仅可以实现Web应用的计算和数据在客户端和云端之间的按需迁移,还能够以云端为中介实现客户端界面和流程在多个移动设备之间的分布与协同。
产业界对于云-端融合的关注主要受到软件定义的启发。斯坦福大学的尼克·麦克奎恩(Nick McKeown)等十余位教授联合承担的美国国家科学基金会首批重大项目POMI(Programmable Open Mobile Internet,2008~2012年),主旨是实现应用程序在移动互联网上的任意流动/迁移(属于云-端融合的典型场景),由此提出OpenFlow来解决网络资源的可编程管理,以支持云和端的网络通讯和资源共享。OpenFlow中蕴含的“软件定义”概念不仅正在改变网络、存储、计算等设备制造行业,也开始推动网络通信和云计算技术体系的演进。云-端融合作为学术界设想的更宏大的新型应用模式,自然引起产业界的关注。例如,IBM在2013年全球技术展望GTO中首次提出移动为先(mobile first)的企业云构建方案。该方案宣称,移动互联网、云计算和大数据等新兴技术已经不仅仅是信息技术,其更重要的是业务模式的创新,因而云和端资源在Cyber空间中跨物理边界进行资源协调和使用,将引领业务模式朝着更广阔的空间发展,就像原来单机系统朝着分布式系统、再到互联网系统发展时所体现的规律一样。高德纳公司(Gartner)在其发布的“2014年十大战略性技术趋势”中指出,随着移动设备的更新换代,网络的需求和成本都在增加,这就要求尽量简化云程序的计算,以节约存储空间,同时把客户端设备的存储能力也利用起来。而“个人云时代(The Era of Personal Cloud)”的出现使得用户可以使用多种设备访问自己的云数据,个人云技术将会取代传统设备的部分功能。英特尔的2015云战略中,云愿景的三个重要元素之一就是强调能够根据客户端设备能力进行服务调整。客户端(如个人电脑或手机等端设备)能够自动决定哪种应用、命令和处理应该在云上,或是在个人的笔记本、智能手机或其他设备上运行,从而充分利用某个用户和设备的独特性能以全面优化在线体验。
近年来,云-端融合思想已经在一些重量级的产品和系统中有所体现,其中的代表是移动浏览器,主要通过部署云服务来优化移动Web浏览体验。例如,Amazon Silk浏览器将各个子系统(如HTML和JavaScript解析、图片解码等)切分在云端和移动端执行,加载网页时会动态决定在Amazon Web Services(AWS)云端和移动端本地执行的部分,以加快页面加载速度;Opera Mini浏览器在加载网页时,目标页面首先会在Opera的云端进行压缩和优化,并且转换为可高效传输的特定结构,移动端直接解析渲染;Google Chrome浏览器加入了云端数据压缩服务,网页的所有内容会通过云端的服务器进行转码和压缩,以减少移动端的数据传输量。
我国学者也针对“云-端融合”这一新型应用模式,开展了大量基础理论和关键技术研究。在国家自然科学基金“中美软件合作研究项目:基于模型的自治云计算软件关键技术研究”(2013~2014年),以及国家863计划“中国云”三期项目“云端和终端资源自适应协同与调度平台”(2015~2017年)的支持下,来自北京大学、南京大学、华中科技大学和复旦大学的学者对云-端融合模式下的软件技术和系统挑战开展了研究,围绕云端和终端的基础设施资源、数据资源、电力资源、用户资源的开放融合以及典型应用与平台建设进行了探索和实践,形成了较为丰富的研究成果积累,并取得了很好的实际应用效果。本期专题将介绍相关的研究工作和进展。
北京大学教授黄罡、刘譞哲、张颖的文章《云-端融合应用模型与运行平台》分析了云-端融合环境下资源管理面临的挑战,提出了一种面向云-端融合的构件模型。围绕该构件模型,通过软件定义的技术手段实现了对云-端基础计算资源和数据资源的开放、共享与融合,并实现了对遗产应用的半自动重构改造,使其具备云-端融合的能力。
华中科技大学教授吴松、牛超、金海的文章《面向云-端融合的移动容器云平台》,从云-端融合计算平台的角度出发,通过6个典型移动应用的计算资源分配需求,分析了云-端融合场景下云计算平台以虚拟机为单元的计算资源分配机制在性能开销和实时性上的不足,提出了一套以容器为基本单元的轻量级云计算平台架构。
南京大学教授曹春、陆子凌、马晓星的文章《云-端融合下的端设备能耗优化》,从移动设备电量这种特殊资源的角度出发,介绍了国内外采用云-端融合思想实现能耗优化的主流方案和典型工作,总结分析了端设备能耗问题产生的核心原因,探讨了云-端融合模式下端设备能耗优化的挑战和发展趋势,其中终端之间相互借用电量甚至传感器资源的设想和实验,为云-端融合应用提供了有趣的新场景。
复旦大学教授彭鑫、郑家欢、宁德军、赵文耘的文章《云-端融合环境下的个人资源开放共享》,从服务计算和人机交互的角度,探讨云-端融合模式潜在的新应用场景,提出了一种将用户作为特殊资源的新思路,以移动终端为载体,通过丰富的人机交互和协作机制实现用户之间的资源分享和互助,并与各种软件服务和资源实现有机融合,更好地促进线上与线下任务(O2O)的集成。
希望这几篇文章能够引发同行的思考和探索,为“云-端融合”这种云计算新模式的研究和发展起到积极的促进作用。