ArchSummit 讲师专访:腾讯张凯谈手机浏览器架构

阅读数:885 2012 年 7 月 10 日

话题:DevOps腾讯语言 & 开发架构文化 & 方法ArchSummit

 编者按:由 InfoQ 中文站主办的首届International ArchSummit 架构师峰会即将召开。我们也对一些专题的讲师进行了采访,谈谈他们要讲的议题。

张凯,华中科技大学硕士 2004 年毕业加入腾讯无线业务系统,一直致力于无线互联网服务端系统的开发和设计工作,先后负责手机 QQ、手机 QQ 浏览器、手机 QQ 通讯录等多条产品线以及腾讯无线服务开发框架,分布式存储平台等系统的的架构设计与研发工作,见证了无线互联网从 2G 到 3G 经历的多次产品和技术变革。

InfoQ:请您对自己做个简单介绍,尤其是在移动互联网方面的技术经验和积累。

张凯:大家好,我是来自腾讯无线浏览器产品部的张凯,04 年毕业后加入腾讯,与许多同学,朋友,同事在这里度过了 8 年的时光,经历了 sp 时代的发展和衰退,也经历了漫长的对 3G 时代的期待和等待,承担过短信和终端产品的开发以及手机 QQ,手机 Qzone,QQ 通讯录,QQ 浏览器的服务端架构设计工作,并参与和主导了腾讯无线应用开发框架以及分布式存储平台的设计和开发。

InfoQ:移动互联网领域的应用,您认为在架构上与其他传统的客户端或后台服务等架构有哪些最大的不同?

张凯:移动应用与传统 PC 桌面应用很大的区别是在终端和网络,受限于现阶段终端能力(特别是电池续航能力)以及无线网络相对较“窄”且有一定费用的影响,“快”和“省”就成为了移动应用需要从技术架构上解决的两个突出问题,包括终端响应快,网络传输快,省电,省流量,省内存等,另外,无线网络的稳定性也不如有线网,因此稳定有效的传输也是重点要考虑的。移动应用还有许多特点,比如可以随时随地的“在线”,可以更方便的使用 PUSH 机制将信息及时触达用户等等,这些特性也对架构提出了“弱在线”,“异步化“等挑战。

InfoQ:移动互联网领域的应用对上线速度有很高的要求,这种对速度的追求反映到架构上,会有哪些影响?

张凯:需要解决的问题是灵活性和扩展性,但同时产品又需要稳定性,因此整体架构的抽象和合理的模块化以及统一的开发框架就非常有必要,不只是可以保证开发质量、提高服务稳定性,在开发效率上也可以提升,也满足了快速开发和上线的需求。

InfoQ:您能否结合腾讯手机浏览器的 X 架构对上述两个问题进行一些分析?

张凯:手机 QQ 浏览器的 X 架构是个典型的例子,因为浏览器是个终端和云端交互非常频繁的产品,最多的场景就是浏览网页,每次都需要网络交互,因此针对无线网络的“加速”和“省流量”都是 X 架构的核心,包括从网络连接策略,网络协议设计,数据传输机制以及借助云端更强大的计算和缓存能力等多个方面围绕着“快”和“省”进行的持续优化,许多方案也适用于其他移动应用。在终端本地通过对浏览器内核的深度优化,提高渲染能力,加快 JS 执行速度也是 X 架构的特点。快速开发方面,X 架构下各层的组件和模块都发挥了重要作用,例如终端的 UI 引擎,网络组件,云端的应用开发框架,统一存储,跨平台的协议编解码工具等等。

InfoQ:移动互联网应用应该如何在架构层面保证安全性?

张凯:可以从几个层面考虑,终端本地存储的安全性,网络交互协议的安全性,云端接入层的防恶意攻击,云端存储数据的安全性。一些在传统互联网比较成熟的加密,认证方案在移动互联网也可以借鉴和使用,但是需要在复杂度和安全性之间做一些平衡。

InfoQ:如果一个应用想侧重于省电方面,架构上有哪些原则可以遵循?

张凯:移动设备的模块中,CPU,屏幕和网络模块是耗电的“大户”,因此应用需要省电就可以从这三方面来考虑功耗,屏幕可控制的空间相对较小,CPU 和网络可以优化的细节点有很多,包括减少本地逻辑和计算的复杂性,精简终端和服务端的交互协议,尽可能“轻客户端重服务端”,充分发挥服务端的能力,让客户端更清晰简单。另外,在连接策略上可以采用“半长连接”,在某些终端平台下,应用处于后台运行时,可以根据时间和用户行为以及用户活跃度等来动态调整休眠时的逻辑,尽可能减少功耗,原则上也尽量避免不必要的定时或周期性任务。

相关信息


给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。