宠

    QQ
物
客
户
端
重
构
      腾讯 魔方工作室 johnhuang
     http://t.qq.com/lakeman2000
目录




2011-5-28        魔方工作室   johnhuang   2
目录




2011-5-28        魔方工作室   johnhuang   3
客户端需求到全网普及需要多久?




2011-5-28      魔方工作室   johnhuang   4
• 客户端的同学满意吗?




2011-5-28   魔方工作室   johnhuang
Web的一个周期?


•   1个月?
•   2周?
•   1周?
•   1天?




2011-5-28      魔方工作室   johnhuang
• 客户端的同学羡慕吗?




2011-5-28   魔方工作室   johnhuang
“羡慕嫉妒恨”


• 每次发布活跃用户大量流失
• 3个月开发,一个月普及90%
• 客户端Crash,加班,延期

在黑暗中向往光明,绝望中寻找希望…




2011-5-28       魔方工作室   johnhuang
• 客户端能够做到Web一样快速发布,快速
  普及,无需安装吗?


            Yes

2011-5-28   魔方工作室   johnhuang
请看我们的演示
懒加载体验
回顾企鹅的生命线




我们做得很不错,但这不是今天我想说的!
那些可能毁掉产品的危机



                      A
                       B C          D

A:09年8月,社区改版后数据迁移,边缘用户大量流失,活跃用户规模降低1/4,有效
用户和PCU水平均降至历史最低。
B:09年9月,Agent出现bug,日活跃用户水平一周内缩水一半。
C:09年12月,客户端版本发布,再次造成边缘用户流失,日活跃降至历史最低。
   我们遇到了很多危机,但这也不是今天我想说的!
D:10年8月,心情动画圈版本,由于bug和体验问题,造成有效用户和PCU骤降。

                                        13
• 我们有了快速响应的架构,
  一切危机都是纸老虎




2011-5-28   魔方工作室   johnhuang   14
目录




2011-5-28        魔方工作室   johnhuang
回顾宠物经过的经过架构历史




2011-5-28      魔方工作室   johnhuang   16
微内核插件式懒加载客户端架构

微 内 核                              插 件 版 本 控 制s e r v e r   资 源 下 载s e r v e r

              插件加载器
                                                               个 性 化 逻 辑1- -



                                                              个 性 化 逻 辑2- -


        插件版本控制组件      资源下载组件
                                                              个 性 化 逻 辑3- -




2011-5-28                 魔方工作室   johnhuang
宠物客户端模块加载顺序示意图



微 内 核
                                                            IChildren 基 础 服 务               基础形象               喂养逻辑                   高级逻辑
                IChildren                                                       IChildren          IChildren              IChildren


                                                          扩 展 点1                                                                        扩 展 点. . .
        插 件 加 载 器(R O O T )                   IChildren                     扩 展 点2             扩 展 点3             扩 展 点4

                                IChildren

                                            启动参数解析
                                                                                               在线管理
                              版本控制组件                                                                                  商    城
                                                                          状态互斥逻辑                                                             社   区

                                                          基础组件
                                                                                               角色形象
                                                                                                                  喂食洗澡
                              资源下载组件                                            事件中心                                                         好   友


                                                                                                                      学    习

                                                                            GUI System                                                       家   园

                                                                                                                      打    工




2011-5-28                                            魔方工作室                 johnhuang
一个小功能背后还有什么?


• 喂养插件
• 角色插件




2011-5-28      魔方工作室   johnhuang
比普通插件架构多踏出一小步




微 内 核                          插 件 版 本 控 制s e r v e r   资 源 下 载s e r v e r

              插件加载器
                                                           个 性 化 逻 辑1- -



                                                          个 性 化 逻 辑2- -


        插件版本控制组件      资源下载组件
                                                          个 性 化 逻 辑3- -
一个小功能背后还有什么?


• 喂养插件资源
• 角色插件资源




2011-5-28      魔方工作室   johnhuang
为了踏出这一小步
插件体系


• 插件描述:xml文件描述插件加载顺序和依
  赖资源
• 版本控制:一个版本对应一个xml描述文件
  ,通过控制xml描述文件的版本来实现客户
  端版本控制
• 插件遍历:插件构成一颗完整的树
• <Plugin Name="tqosagent"
  LibraryName="TQOSAgent_20101008_172913.dll"
  ObjectID="0x00000001" ><Res>
• <Item Priority="2" ="KernelZIP"
  FILE="TQOSAgent_20101008_172913.zip"
  Hash="7E9D3354F42D84DEFACFA1575309B43C"
  Version="1" size="" /> </Res>
•      <Children>
  <Plugin>…</Plugin>
• <Plugin>…</Plugin>
•      </Children>
•     </Plugin> More…
插件配置
一个小功能背后还有什么?


• 喂养插件配置
• 角色插件配置




2011-5-28      魔方工作室   johnhuang
微内核的设计思路
资源的更新逻辑和可靠性验证


•   文件改名更新
•   资源垃圾清理
•   解除对dll文件名的依赖
•   资源的Hash验证
QQ宠物客户端组织
宠物客户端:服务模块+逻辑模块




2011-5-28      魔方工作室   johnhuang
架构组织的基本方法




2011-5-28      魔方工作室   johnhuang
传统客户端横向模块划分的方式




2011-5-28      魔方工作室   johnhuang
基于特性的竖向模块划分方式




2011-5-28      魔方工作室   johnhuang
一个小功能背后还有什么?

• 客户端:
     – 喂养插件,配置,资源
     – 喂养代码
            • UI
            • 逻辑
            • 协议
• 服务器
     – 逻辑
     – 数据库

2011-5-28          魔方工作室   johnhuang
解耦的基本原则




2011-5-28      魔方工作室   johnhuang
客户端解耦的基本方法
•   数据解耦
•   协议解耦
•   UI解耦
•   互斥状态解耦




2011-5-28      魔方工作室   johnhuang
2011-5-28   魔方工作室   johnhuang
懒加载架构 VS Web架构

            懒加载架构             Web
                              Web架构
• 这是一个软件浏览器
加载器         懒加载微内核            TT,QQBrowser,
                              IE,Chrome,
                              IE,Chrome,
                              FireFox等浏览器
                              FireFox等浏览器
描述语言        XML               HTML


加载的对象       插件                图片,视频,
                              flash等
                              flash等

  这是一个Web化的客户端架构:是一个软件浏览器

2011-5-28         魔方工作室   johnhuang
目录




2011-5-28        魔方工作室   johnhuang
运营


•   客户端可运营,双周一个版本
•   节约升级流量90%
•   优化安装体验,减少安装步骤90%
•   Web融合为后续产品发展提供平台支撑




                         40
8倍效率提升,客户端可运营
• 需求提出到所有用户可以体验
• Downson提出的一个建议




2011-5-28   魔方工作室   johnhuang   42
增量升级:节约升级流量90%
• 每次升级从20M变为1~2M
• 一年节约升级流量成本近2000w元
懒加载vs普通增量升级
           懒加载            普通增量升级

节约流量       是              是

升级包制作      不需要关心现网版本,     需要关心现网的不同版本
           只需要配置目标版本xml
           文件
现网版本个数     可以只有一个         难以控制(比如QQ)

升级体验       平滑,用户无需参与      需要用户参与
再提优化后的安装和升级体验


• 独特的懒加载体验:
 – 先加载的功能可以先使用(见demo)
• 一天完成全网升级,平滑的升级体验
• 减少90%的安装步骤
一天实现全网平滑的升级无损用户在线
        QQ    QQ音乐
              QQ音乐   QQ拼音
                     QQ拼音   小熊梦工    旧版本企    懒加载版
                            场       鹅       本企鹅

普及速度    1月20% 1月     1月     3天100% 30天90% 3天100%
        5月50% 20%    20%

升级包大小   20M   7.6M   20M    90M     20M     2M


对在线影响                       7月1日发   降低10%
                            布降15%   到20%    0影响
优化安装步骤,提升用户进入率10倍
一点成绩
•   这是一次首创的客户端架构实践
•   客户端一天实现全网平滑的升级无损用户在线
•   节约流量成本:90%,一年2000万
•   首次安装步骤减少90%,每日安装量提升10倍




2011-5-28      魔方工作室   johnhuang
日活跃用户提升




2011-5-28      魔方工作室   johnhuang
挑战依然存在


• 优化增量升级逻辑,P2p的应用?
目录




2011-5-28        魔方工作室   johnhuang
背后的故事
• 一次头脑风暴的灵感
• 良好的基础
• 一路走来不容易,运气的眷顾




                  52
2011-5-28   魔方工作室   johnhuang   53
一个观点


• 互联网时代产品是运营出来的,
  游戏对运营节奏提出了更高的要求
• 客户端的可运营化是一个趋势




2011-5-28      魔方工作室   johnhuang
一则讨论


• 目前各种app平台兴起,而app平台都未解
  决的增量升级问题,这种软件浏览器的思
  想商业化的前景如何?




2011-5-28      魔方工作室   johnhuang   55
2011-5-28   魔方工作室   johnhuang

More Related Content

PDF
01 -阿朱--简单事情夯实做
PPT
Techparty story
PPTX
06 -甄焱琨--知识转化为资源
PPT
City learning centres
PPTX
Child Development by Malina Parker
PDF
Loyalty Basics
PPTX
Compassion Uganda
ODP
Les Frameworks CSS, par Raphaël Goetter & Nicolas Hoffmann
01 -阿朱--简单事情夯实做
Techparty story
06 -甄焱琨--知识转化为资源
City learning centres
Child Development by Malina Parker
Loyalty Basics
Compassion Uganda
Les Frameworks CSS, par Raphaël Goetter & Nicolas Hoffmann

Viewers also liked (18)

PDF
Google Analytics vu de l'intégrateur/développeur
PDF
Horn, Deborah e[1]. neurological differences between adhd and childhood bipol...
DOC
AN INVESTIGATION OF THE IMPACT OF ATYPICAL PRINCIPAL PREPARATION PROGRAMS ON ...
PDF
10 Artwork Paling Gokil
PDF
Lunenburg, fred c[1]. state mandated performance testing schooling v1 n1 2010
PDF
Lunenburg%2 c%20fred%20c[1].%20managing%20change%20the%20role%20of%20change%2...
DOCX
Dr. Diana Linn, NATIONAL FORUM JOURNALS, Dr. William Allan Kritsonis, Editor-...
PDF
EDUL 7063 (PO2) Philosophy of Leadership in Education - William Allan Kritson...
PDF
San Benito, Medalla
PDF
ADMN 5023-Z0 Online - Public School Law - Dr. W.A. Kritsonis
PDF
Edimax
PPTX
Fusion2009 Amy And Brenda
PDF
AN IN-DEPTH ANALYSIS OF THE COGNITIVE AND METACOGNITIVE DIMENSIONS OF AFRICAN...
PPT
Dr. William Allan Kritsonis - Students Rights PPT.
PDF
Handout - William Allan Kritsonis, PhD
DOC
Doutores Do Riso
PPT
Dr. William Allan Kritsonis - Nepotism: Restrictions in Public School Distric...
Google Analytics vu de l'intégrateur/développeur
Horn, Deborah e[1]. neurological differences between adhd and childhood bipol...
AN INVESTIGATION OF THE IMPACT OF ATYPICAL PRINCIPAL PREPARATION PROGRAMS ON ...
10 Artwork Paling Gokil
Lunenburg, fred c[1]. state mandated performance testing schooling v1 n1 2010
Lunenburg%2 c%20fred%20c[1].%20managing%20change%20the%20role%20of%20change%2...
Dr. Diana Linn, NATIONAL FORUM JOURNALS, Dr. William Allan Kritsonis, Editor-...
EDUL 7063 (PO2) Philosophy of Leadership in Education - William Allan Kritson...
San Benito, Medalla
ADMN 5023-Z0 Online - Public School Law - Dr. W.A. Kritsonis
Edimax
Fusion2009 Amy And Brenda
AN IN-DEPTH ANALYSIS OF THE COGNITIVE AND METACOGNITIVE DIMENSIONS OF AFRICAN...
Dr. William Allan Kritsonis - Students Rights PPT.
Handout - William Allan Kritsonis, PhD
Doutores Do Riso
Dr. William Allan Kritsonis - Nepotism: Restrictions in Public School Distric...

Similar to 03 -黄朝兴--腾讯游戏 (20)

PPTX
Gentek应用介绍20111123
PDF
Top100summit 秀野堂主-做最好的html5游戏 copy
PDF
开源+自主开发 - 淘宝软件基础设施构建实践
PPTX
Appcan平台介绍
PPTX
Maximize Your Production Effort (Chinese)
PDF
Action script3.0中文版
PDF
Ajax设计技术
PDF
张克军:前端基础架构的实践和思考
PDF
建立前端开发团队 (Front-end Development Environment)
PDF
Html5研究小组《微周刊》第28期
PDF
美丽说的架构发展与变迁 New
PDF
张松国 腾讯微博架构介绍08
PPTX
Node js feat pegasus
PDF
GUI conclusion
PDF
Gui Conclusion2
PDF
Gui Conclusion2
PPT
构建ActionScript游戏服务器,支持超过15000并发连接
PPT
构建高性能Html5网页游戏
PDF
百度 刘宁 系统也智慧
PDF
运维系统开发与Rails 3页面开发实践
Gentek应用介绍20111123
Top100summit 秀野堂主-做最好的html5游戏 copy
开源+自主开发 - 淘宝软件基础设施构建实践
Appcan平台介绍
Maximize Your Production Effort (Chinese)
Action script3.0中文版
Ajax设计技术
张克军:前端基础架构的实践和思考
建立前端开发团队 (Front-end Development Environment)
Html5研究小组《微周刊》第28期
美丽说的架构发展与变迁 New
张松国 腾讯微博架构介绍08
Node js feat pegasus
GUI conclusion
Gui Conclusion2
Gui Conclusion2
构建ActionScript游戏服务器,支持超过15000并发连接
构建高性能Html5网页游戏
百度 刘宁 系统也智慧
运维系统开发与Rails 3页面开发实践

More from 勇浩 赖 (20)

PDF
论 Python 与设计模式。
PPT
一种多屏时代的通用 web 应用架构
PPT
Tp web
PPT
2012,我的技术之选
PPT
页游开发中的 Python 组件与模式
PDF
Scala
PPT
珠三角技术沙龙广州场
PPT
为什么 rust-lang 吸引我?
PDF
Python 于 webgame 的应用
PDF
Behavior+tree+ai lite
PPTX
敏捷网游架构与性能的新玩法
PPT
先用再学 - 借助 Xna 快速开发游戏原型
PDF
关于Bitworld的一些话题222
PPT
Stekin
PPT
abu.rpc intro
PPT
07 -林伟铃--成长中的36氪
PDF
Python 温故
PPT
如何做好沙龙演讲
PPT
虚拟世界是怎么炼成的(图片版)
PPT
2010,我的技术之选
论 Python 与设计模式。
一种多屏时代的通用 web 应用架构
Tp web
2012,我的技术之选
页游开发中的 Python 组件与模式
Scala
珠三角技术沙龙广州场
为什么 rust-lang 吸引我?
Python 于 webgame 的应用
Behavior+tree+ai lite
敏捷网游架构与性能的新玩法
先用再学 - 借助 Xna 快速开发游戏原型
关于Bitworld的一些话题222
Stekin
abu.rpc intro
07 -林伟铃--成长中的36氪
Python 温故
如何做好沙龙演讲
虚拟世界是怎么炼成的(图片版)
2010,我的技术之选

03 -黄朝兴--腾讯游戏