11 月 19 - 20 日 Apache Pulsar 社区年度盛会来啦,立即报名! 了解详情
写点什么

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

  • 2012-07-10
  • 本文字数:1836 字

    阅读完需:约 6 分钟

编者按:由 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 )关注我们,并与我们的编辑和其他读者朋友交流。

2012-07-10 21:532142
用户头像

发布了 479 篇内容, 共 141.2 次阅读, 收获喜欢 42 次。

关注

评论

发布
暂无评论
发现更多内容

技术创想 | Cypress UI 自动化测试框架

领创集团Advance Intelligence Group

百度Q4财报:百度智能云2021年营收151亿元,同比大增64%

百度大脑

Powershell基础之脚本执行

喀拉峻

网络安全 安全 渗透测试

当听障人士实现手语自由:手语AI平台的产业狂想

脑极体

中国AI的“底线思维”与安全锁

脑极体

昇思MindSpore再突破:蛋白质结构预测训练推理全流程开源,助力生物医药发展

Geek_32c4d0

mindspore 昇思 生物医药

半导体材料的国产替代,机遇与挑战并存!

杰哥-IC男奋斗史

芯片行业思考 芯片技术 芯片上游

7招!实现安全高效的流水线管理

阿里云云效

云计算 阿里云 运维 云原生 持续交付

工业AI落地场景案例实战,飞桨EasyDL让工业更智能

百度大脑

赋能区域产业,南京、成都双城AI开发者Meetup报名开启

百度大脑

俄罗斯能通过加密货币规避制裁吗?

CECBC

群晖(Synology)NAS 后台安装 Docker 后配置 Mariadb / MySQL 配置端口

HoneyMoose

群晖(Synology)NAS 后台安装 Docker 后配置 Mariadb / MySQL

HoneyMoose

开发提效小技巧分享(二)

编程三昧

工具 gitee GitHub、 3月月更

CorelDRAW2022最新订阅版本下载

茶色酒

cdr2022

自己动手写Docker系列 -- 3.1构造实现run命令版本的容器

Go Docker

快速入门!全国大学生智能汽车竞赛百度创意组首期直播宣讲来啦

百度大脑

群晖(Synology)NAS 安装 Mariadb 数据库启动错误

HoneyMoose

HTTP的成长

Tristan

前端 浏览器 网络 HTTP

区块链共识,机器说了算还是人说了算?

Akumas

区块链 数字化转型 共识机制 十四五规划

重磅硬核 | 一文聊透对象在JVM中的内存布局,以及内存对齐和压缩指针的原理及应用

bin的技术小屋

JVM 内存 Java虚拟机 false sharing java

千万级学生管理系统的考试试卷存储方案

AragornYang

架构训练营 架构实战营

面由心生,由脸观心:基于AI的面部微表情分析技术解读

百度大脑

面向企业级前端应用的开发框架 UI5 的发展简史介绍

Jerry Wang

JavaScript 前端开发 前端框架 企业级应用 3月月更

安全无小事,教你解决密码泄露问题!

老陈

工具 安全 密码泄露

评测有礼 | 飞桨黑客松第二期热身活动上线啦!

百度大脑

Mac 配置 Flutter 安卓开发环境

岛上码农

flutter ios 安卓 移动开发 3月月更

低代码实现探索(三十四)前台code逻辑

零道云-混合式低代码平台

最好用的 6 款 Vue 拖拽组件库推荐 - 卡拉云

蒋川

Vue Vue3 vue cli

区块链的过去与未来

CECBC

两会声音|建议完善数字人民币体系 完善数字货币立法

CECBC

ArchSummit讲师专访:腾讯张凯谈手机浏览器架构_DevOps_郑柯_InfoQ精选文章