1、54 手机APP设计 日期:2015.05.11 摘要 当前信息化高速发展,人们社交日趋紧密,各种社交软件层出不穷,而且人们越来越注重社会个体的生活及创意的展现与记录。在这种展现个体生活与创意的主题上,手机app市场仍存在极大的市场潜力。我们的创意世界app基于此而设计,它是一款兼具社交性、游戏性、实用性的app。用户可通过原始模板或在线购买模板建造虚拟世界,并用自己创造的图画或文字加以填充,可记录生活,可展现创意,让用户充分享受“创世”与展现自己独特生活的快乐。我们的产品整体以缤纷绚烂色彩为主,象征大千缤纷世界,界面简洁婉约,整齐紧
2、凑,背后却是内容丰富多彩的用户世界,给予用户简便却又不失为简单的体验效果。同时,我们的app激发用户的创造性思维及对生活中点滴美好细节的关注,提高用户的文笔水平与艺术修养。 目录 1. 项目概述。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。4 2. 概要设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。12 3. 技术支持。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。17 4. 附录。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。43 5. 问卷调查。。。。。
3、44 6. 设计中遇到的困难和解决方案。。。。。。。。。50 7. 设计体会。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。52 1.项目概述 1.1 项目目的及内容 我们的作品主要是面向那些希望留下生活中美好回忆的那些人。因为每个人或多或少都有一些美好或者痛苦的记忆,但这些都是这的怀恋以及记录下来的。而且用户可以那个根据自己的爱好及习惯创建自己的世界,并且可以在里面留下自己的回忆以及想说的话。 内容就十分简单,初始时
4、你可以根据自己的喜好及心情构建自己的世界,然后可以在里面附上自己的图片以及想说的话,可以永久保存下来,并且可以分享到当前的一些主流聊天工具,比如QQ,微信。可以跟大家分享你的世界级心情。当然还有你系统推送功能,随时了解别人以及其他世界的动态,以及推荐一些精彩的文章借故事。当然还有一些付费功能功能,比如买一些炫酷的皮肤来装饰你的世界,主要是让玩家享受自己的世界,并让他们有成就感。 1.2 项目分析 1.2.1 行业背景分析 1市场背景 1.1 电子游戏,是指人们通过电子设备,如电脑、电视游戏机等,进行游戏的一种娱乐方式。电子游戏按照玩游戏的终端设备来
5、分类主要分为电脑游戏,电视游戏,和便携游戏。电脑游戏是指通过电子计算机来玩的游戏。而电脑游戏根据是否连接网又分为单机游戏和网络游戏。电视游戏是指用游戏机连接电视以电视屏幕为显示器的游戏。便携游戏是指在便携的移动终端如手机,PAD等上来玩的游戏。 1.2 电子游戏的发展 1.2.1 国际电子游戏的发展 电子游戏产业的发展最早是从美国开始的,很快扩展到全世界。电子游戏在日本发展很快,到80年代末,日本游戏产业一年的经营收入超过200亿美元,比他们的汽车工业一年的收入还多,引起世界轰动。美、日、英、法、德、加拿大等世界经济强国,都把游戏产业作为本国的重点产业来发展。 电子游戏比传统的休闲娱乐手
6、段更具有科学性、互动性,消费者犹如身临其境,能充分感受到它的逼真性和刺激性,又能锻炼人的体能和智能,同时还能使消费者得到心理满足,因而它成为目前人们最受欢迎的休闲娱乐方式之一,能进入千家万户拥有巨大的消费市场。 1.2.2 中国电子游戏发展 中国电子游戏产业的发展,是从上个世纪的80年代末开始兴起的,市场展现过的有大型机游戏、家用游戏、掌机游戏、PC机游戏、动漫游戏、网络游戏、手机游戏等几大类游戏。 80年代末是大型机游戏时代,主要经营游戏厅。90年初家用游戏和掌机游戏发展较快,主要产品面向家用。到了90年代中期,个人计算机普及很快,因此PC机游戏比较流行。 随着网络技术的发展,从2000年
7、开始盛行网络游戏。现在,网络游戏发展很快,是目前游戏产业中规模较大的一个种类。最近几年,手机游戏、动漫、卡通又开始迅速发展。游戏产业发展很快, 游戏种类不断变化。 1.3 游戏行业市场分析及趋势 随着游戏技术的发展游戏市场也在不断的变化。早期的电视游戏占有绝大市场,而电脑游戏出现后又占领很大的市场,现在智能手机平板电脑的发展又使便携游戏有了爆炸式的增长。但是,一种新游戏的兴起,并不表示旧的游戏被取代或者退出,许多旧的游戏仍然具有很强的市场和生命力。总体上游戏市场上呈现的是新旧游戏并存,互为发展的格局。 1.4 云游戏 1.4.1 什么是云游戏 云游戏是以云计算为基础的游戏方式,在云游戏的
8、运行模式下,所有游戏都在服务器端运行,并将渲染完毕后的游戏画面压缩后通过网络传送给用户。在客户端,用户的游戏设备不需要任何高端处理器和显卡,只需要基本的视频解压能力就可以了。可以简单概括为:所有的游戏运算处理都由云端服务器完成,再通过视频压缩以及网络传输技术,只把视频画面传给用户,用户的操作指令通过网络回传给服务器,如此循环。 1.4.2 云游戏的优势 作为一名发烧级电玩爱好者需要的一个特质是什么?要有钱!需要购买先进的游戏主机。购买高级的显卡CPU,频繁升级硬件,购买游戏软件。等等??而云游戏让普通玩家也能享 受发烧级体验。不需要高硬件,就可以享受高硬件带来的游戏体验不需要单独安装游戏
9、就能玩所有云游戏授权的游戏。云游戏带来的势是显而易见的,用户不需要为玩游戏而花费费用在游戏硬件和软件上。只需要购买云游戏服务就能享受更好的游戏体验。云游戏这个通过网络来游戏的方式看上去非常让人兴奋!很可能会是未来游戏业的重点发展方向。国外也类似的云游戏平台譬如GaiKai、Geforce GRIDOnLive 等。 1.4.3 云电视游戏 云游戏的特点是瘦终端。 那么只需要简单的设备就能实现在电视屏上玩需要高硬件支持的游 戏。通过一个简单的盒子就可以玩PC、PS3、甚至大型网络游戏。用坐在电脑前,随心所欲的享受电视屏高视觉和听觉效果,以及游戏的无尽乐趣。从娱乐效果上讲,云电
10、视游戏将比其他的屏游戏更具优势。 1.5 云联科技 国内云游戏服务供应商是云联科技。 主要做云游戏平台的设计、 开发和运营。 公司核心团队 主要由在云计算、视频、游戏、移动互联网等领域拥有多年行业从业经历的专业人才组成。 目前云联云游戏平台现在已经开始正式运营,向全国用户提供游戏服务 。 2 概述 2.1 云服务平台引领电视互联网的到来 云服务平台通过对应用页面的流化处理, 以视频流的方式为机顶盒提供应用页面, 使普通机 顶盒访问互联网应用成为可能。 云服务平台将成为了机顶盒访问互联网应用的入口, 不同厂 家、
11、各种配置的机顶盒 ( 包括单向广播式机顶盒配上带外交互遥控器、基本交互式机顶盒和 增强交互机顶盒) 都可以访问接入到云服务平台的各种互联网应用, 如视频点播、 游戏娱乐、 电视商务、信息服务等,云服务平台将引领电视互联网时代的到来。 电视云游戏丰富平台内容和高用户体验 无论是互联网, 还是电视, 游戏娱乐功能都是一个重要的功能。 云服务平台作为一个多元化 的平台,云电视游戏可以满足用户游戏娱乐需求,带来高用户体验。 2.2 合作关系 基于云服务平台的业务加载平台, 是一个开放的互联网应用承载平台, 所有希望利用电视机 屏幕拓展其
12、业务的互联网企业都可以参与其中, 主导其自有业务的运营, 在复制其成功经验 的基础上不断探索电视机终端的服务特性,提供能真正让用户满意的服务。 合作伙伴云游戏需要解决的问题 1. 服务器端资源开销极大; 2. 对网络环境要求极高; 3. 服务器端资源消耗大、带宽开销极大; 4. 某些游戏对响应延迟要求十分苛刻、网络稳定性要求很高等。 5. 成品不够成熟用户群还不具规模。 华数优势 1.2.2 典型用户分析 我认为我们这个软件主要是吸引那些喜欢自己创造和爱好游戏以及那些想将自
13、己的人生经历记录下来的人 因此适用范围极广不管你是小孩还是上班族或者是已经退休的老人,只要你会一点电脑知识,就可以随心的使用这款软件,切该软件不会上瘾。切具有极强的使用性及价值。 1.23 同类型app分析 Lofter:原创内容多,且不乏高质量作品。平时自己可以写些随想,拍些日常,偶尔看看wanimal。 出品公司:网易 出品时间:2012.11.12 总评价量:3446 美拍:短视频版的美图秀秀!近乎能把一些拍得很渣的视频处理得很有唯美MV的feel~~ 出品公司:Meitu,Inc. 出品时间:2014.4.30 总评价量:108030 Flipagr
14、am:用照片做MV的一款app!照片张数没有限制,BGM可以选自己手机里的音频,也可以用自己录音。 出品公司:Flipagram,Inc 出品时间:2014.6.12 总评价量:371 用家:相当文艺的照片处理app!滤镜和水印十分讲究,简单几步就能让自己的照片变得更有格调。 出品公司:Donglan Zou 出品时间:2014.3.18 总评价量:229 蝉游记:旅游随记app!以文字,照片,时间,地点作为旅行回忆的元素,智能生成游记。随时随地记录你走过的里程。 出品公司:Shanghai Chanyi Network Technology Co,Ltd 出品时间:2013.
15、6.13 总评价量:3966 path:UI精美的私密社交app!微信朋友圈太过喧闹,不如重新整理一番自己的通讯录,找几个熟人组成圈子分享彼此最真实的生活。 出品公司:path Inc 出品时间:2013.4.3 总评价量:12810 挖财:要学会理财,先要学会记账。记账便捷,报表输出很直观,便于分析自己的财务状况,月光男女必备(土豪可忽略) 出品公司:Hangzhou Caimi Technology Co.,Ltd 出品时间:无资料 总评价量:1337 生活纪录片:UI小清新的一款记录app!图片音乐随意插入,可以把自己的故事做成超赞的幻灯片。 出品公司:Shanghai
16、 Liba information Technology co。,Ltd 出品时间:2013.10.2 总评价量:680 MindMeister:以思维导图的方式记录生活。除了可以整理一些创意想法,还可以应用到生活中,例如读书笔记,项目,目标管理等 出品公司:MeisterLabs 出品时间:无 总评价量:289 2.概要设计 2.1创意来源 首先,现代人类在节奏紧促的现代生活中难免经受种种生活上的压力及精神上的空虚,通常情况下相当大一部人通过社交或游戏来排遣压力和精神上的空虚。其次,越来越多人喜欢上在各种社交软件上记录和
17、分享自己的生活或展现自己某一个得意的创意。事实上,很多人都有灵光一闪的创意,而且都有一种创造的欲望,会为自己独特的创意而自豪,乐于向人展现,却又无法及时地记录保存与人分享。我们的app参考于一些记录生活的软件如我的365天、回忆的时光及微信的朋友圈、qq空间,同时参考了游戏我的世界,综合社交软件与游戏的特点,兼具了社交软件的记录展现特点及我的世界中引人瞩目的“创世”的idea,吸引用户的浓厚兴趣,充分地满足用户游戏社交等各方面的需求,让用户既能享受到自己创造的快乐,又能让用户社交更加具象化、多元化。 2.2用户界面构成 入口界面背景缤纷绚烂,引人瞩目。各模块入口却简洁婉约,以求方便
18、用户使用。当然,用户也可以根据个人喜好自定义个人风格。在各虚拟用户世界中,各功能模块将类似于手游而排列于整个界面的上端,当然,功能模块在用户未使用时可以隐藏,这样以方便用户有更大的世界界面。 2.3设计表现说明 一、 登陆界面 账号: 密码: 登陆 注册 忘记密码? 二、 初始界面 1. 世界模板 2. 我的世界 3. 今日亮点 4. 我的展馆 三、 世界模板界面 初始模板
19、在线模板 四、 我的世界界面 图标1-我手写我心 图标2-我手画我心 图标3-分享-分享至朋友圈 分享至qq空间 分享至我的展馆 分享至新浪微博。。。。。。 图标4-模板导入 图标5-我的成就 图标6-我的会话 图标7-历史记录 图标8-世界之门 图标9-邀请好友 今日亮点界面 图标1-每日美文 图标2-每日美图 图标3-精彩创意 图标4-英雄榜 我的展馆 一、 上架展品 二、 上传展品 三、 今日访客 四、 展品说明及评论 3.技术支持 安卓环境搭建 一 准备工作 下载所需安装包,如下:JDK (Java Develo
20、pment Kit) Eclipse IDE for Java Developers Android SDK 、ADT 二 环境搭建 2.1 JDK安装 运行jdk-7u3-windows-i586.exe,按照提示只需单击下一步,安装即可,安装完成后,单击"开始",选择"运行",在出现的对话框中输入CMD命令,打开CMD窗口,在CMD窗口中输入java -version,如果屏幕出现下面的代码信息,说明JDK安装成功了: C:\Users\ZC>java -version java version "1.7.0_03" Java(TM) SE Runtime En
21、vironment (build 1.7.0_03-b05) Java HotSpot(TM) Client VM (build 22.1-b02, mixed mode, sharing) 2.2 Eclipse安装 (1)Eclipse无须执行安装程序,解压下载的压缩文件eclipse-java-helios-SR1-win32.zip就可以用,不过一定要先安装JDK。 本文假定 Eclipse 解压后存放的目录为 D: \AndroidDevelop (2)进入解压后的目录,可以看到一个名为"eclipse.exe"的可执行文件,双击此文件直接运行,
22、Eclipse能自动找到用户先期安装的JDK路径,启动界面如图所示。 (3)如果用户是第一次安装、启动Eclipse,将会看到选择工作空间的提示,如图所示。 选择工作空间路径(用于存放工程项目文件),然后单击"OK"按钮,至此,JDK和Eclipse已经安装完毕。 2.3 Android SDK安装 同Eclipse类似,不需要安装,解压android-sdk_r07-windows.zip文件之后就可以使用,我们把它解压到D:\ AndroidDevelop目录下 (1)在用户变量中新建PATH值为:Android
23、SDK中的tools绝对路径(本机为D:\AndroidDevelop\android-sdk_r16-windows\android-sdk-windows\tools) 如果有如下返回则表示安装成功: C:\Users\ZC>android -h Usage: android [global options] action [action options] Global options: -v --verbose Verbose mode: errors, warnings and informational mes inted. -h --he
24、lp Help on a specific command. -s --silent Silent mode: only errors are printed out. 2.4 ADT安装 Android 为Eclipse 定制了一个插件,即Android Development Tools(ADT),目的是为用户提供一个强大的综合环境用于开发Android应用程序。ADT扩展了Eclipse的功能,可以让用户快速地建立Android项目,创建应用程序界面,在基于Android框架API的基础上添加组件,以及用SDK工具集调试应用程序,甚至导出签名(或未签
25、名)的APKs以便发行应用程序。 2.4.1 第一种情形 (1)打开Eclipse, 在菜单栏上选择 help->Install New SoftWare 出现如下界面: (2)点击 Add按钮,出现如下界面 (3)输入网址: https://dl- (如果出错,请将https改成http)名称: Android (这里可以自定义)点击OK,按提示向下操作,直到出现如下界面 (4)选择 I accept the terms of the license agreements 点击Next,进入安装界面
26、5)安装完成后,出现重启界面 点击Yes按钮,重启Eclipse 2.4.2 第二种情形 打开Eclipse, 在菜单栏上选择 help->Install New SoftWare ,出现和第一种情形相同界面。 点击 Add按钮,出现如下界面 点击Archive,添加ADT-16.0.1.zip,并填上名称“Android Plugin” 然后点击确定 2.4.3 配置 安装插件后,还需要做如下配置才可以使用Eclipse创建Android项目,需要设置Android SDK
27、主目录。依次单击"Window→Preferences"项, 在弹出的界面左侧可以看到"Android"项,选中Android后,在右侧设定 Android SDK 所在目录为 SDK Location(D:\AndroidDevelop\android-sdk_r16-windows\android-sdk-windows),单击"OK"按钮完成安装。 2.4.4 安装需要的包 在Eclipse中。选择Windows > Android SDK and AVD Manager,出现如下界面 选择需要的平台等包(将2.2和2.3版本都选
28、中),点击Install Selected,出现如下界面 选择Accept All,点击Install,开始下载安装 安装完成后有如下提醒,并可点击Installed Packeages 2.5 创建AVD(Android Vitural Device) 为使Android应用程序可以在模拟器上运行,必须创建AVD。 在Eclipse中。选择Windows > Android SDK and AVD Manager 点击左侧面板的Virtual Devices,再右侧点击New 填入
29、Name,选择Target的API,SD Card大小任意,Skin要选择合适,Hardware目前保持默认值 点击Create AVD即可完成创建AVD 至此,android应用开发环境搭建完毕! 用户信息存储 1、直接使用单机Mysql来解决数据层的问题 大部分开发者最初直接用Mysql,因为这个阶段应用开发的主要矛盾并不是性能压力、容灾等方面,而是如何快速的实现功能和上线。而业界流行的LAMP架构具备上手快的优势,这时的数据层直接用单机Mysql就搭建起来了。 (1)好处:Mysql是一款非常知名的开源数据库软件,它功能丰富的、工具齐全,
30、由于在全世界应用得非常广泛,基本上遇到任何问题都能够很快的找到讨论者和解决办法。同时在应用发展的早期数据库压力小,除了提供在线服务外,数据库往往还可以用来进行数据统计和经营分析。 (2)不足:数据库需要专职的DBA管理人员进行维护工作(如数据备份、主从切换等),对于外部开发者来说,往往是开发人员兼任DBA的角色,风险固然有,但由于设备数量少,一般不会出现大问题。只是偶尔的设备故障、软件配置不当和Bug等问题,对应用会有影响,但总体上能够承受。 2、 使用Memcached来分担读压力,使用Mysql来进行持久化 应用接入开放平台后,用户会增长非常快,整个系统迅速地要接受新的考验。Mys
31、ql主要利用本机内存进行缓存,受单机物理资源限制,难以胜任并发读写较高高的应用场景,而很多Social Game都有同时高并发读写的特点,这时会发现应用响应速度明显变慢。 这种情况下常见做法是在DB层之前加Cache,目前最常用的Cache就是Memcached,通过增加Cache设备和简单改造,可以快速上线。现在的数据层方案变成了Memcached缓存+Mysql持久化。Memcache应对读请求,Mysql应对写请求,效果立竿见影,DB压力迅速降低。 (1)好处:Memcached同Mysql一样,也是一款业内知名的开源软件。它具有接口简单、运行稳定、配置方便、性能出色的特点。 (2
32、不足:又多了一个模块需要开发者自己运营。而Cache层机器如果出现问题的话,可能会导致缓存丢失,命中率大幅下降,一旦出现这种DB层就非常危险,很容易产生严重的雪崩效应,恢复非常困难。另外,由于Cache只能用于应对读的压力,解决不了高并发写的问题,这个才是Social Game发展过程中最让人头疼的问题。 3、使用分布式MemCached和分库分表的Mysql集群方案 单机的Memcached和Mysql眼看着抵挡不住日益上升的访问压力了,开发者心里是有喜有忧,喜的是应用得到了用户的喜爱,忧的是要命的数据层又要面临严峻压力。既然发展到这个地步了,对数据层进行适当重构是必须的,业界关于
33、分布式的方法可以借鉴的甚多,很多Memcached的SDK库已经支持分布了,Mysql也有分库分表的设计办法。经过一段时间的代码重构和数据搬迁后,数据层已经是个分布式的了。 (1)好处:现在的系统能够具备初步了较好的扩展性,可以根据用户活跃和访问情况进行扩容,用分布式的问题解决了单设备读写能力受限的困难 (2)不足:虽然实现了系统的可扩展,可这并不意味着我们可以高枕无忧了。应用需要密切关注各服务的容量。对于Cache层来说,机器死机、扩容操作会导致缓存丢失,带来命中率大幅下降,而一旦DB压力过大,可能很长一段时间都缓不过劲来。而DB层的容错和扩容更是是令人神经紧绷,主备切换需要人工干预,还
34、需要前端修改数据库接入IP、进行授权等若干配置;而扩容和数据搬迁操作一般只敢选在夜深人静的时候进行,一旦发现问题也要顶着巨大的压力去回滚和恢复数据,更是容易忙中出错。除此此外,要不要提前准备足够的资源也是令人十分纠结,准备多了会浪费资源,准备少了可能又满足不了业务的快速发展。而且Social Game的生命周期相对较短,往往数周之内迅速达到用户峰值,需要频繁的数据扩容和迁移,吃掉大量设备资源,接着就步入稳定和衰减期,又需要数据的合并和资源推出,对资源供应的要求非常高。而且此时的设备多,维护更加复杂,把如此庞大的精力都投在数据层显然是不明智的。 其实,我们可以活的更好的! 4、使用CMEM云
35、存储解决方案 由于Social Game的SNS特性,App在拥有一定的用户规模后,数据量大,读写请求非常多,读写比接近,大量的写到数据层,数据层由于IO原因抗不住写压力。针对这类情况和腾讯在数据层研发过程中的实际经验,我们目前提供了两款高性能、低成本的云存储产品,分别是: (1)NoSQL的云存储产品:Cmem。Cmem提供极高的并发读写能力,作为一款云存储产品,对用户透明的实现了自动容错、平滑扩容、数据备份、资源复用等一系列存储层的必要功能。将在线数据以Key-Value形式存放和访问,解决了大并发读写和令人头疼的数据层管理问题。 CMEM的介绍和相关讨论请见: CMEM全称为
36、Cloud Memory Storage,是腾讯提供的高性能内存级持久化存储服务。 CMEM基于一个存储键/值对的hashmap,具备内存级别的访问性能,并保证数据的持久性。 (2)SQL的云存储产品:CDB。CDB是兼容Mysql协议的云存储产品,以实例的方式进行Mysql数据库的供给,并将数据迁移、实例扩容、数据备份等工作都放在了云中,对逻辑层透明,减少了开发者对于DB层的维护成本。 CDB的介绍和相关讨论请见: CDB全称为Cloud Database,是腾讯提供的分布式数据存储服务。 CDB提供了高性能,高可靠的MySQL 集群服务,并且整合了备份,扩容,迁移等工具。
37、 这个时候的设计模式是,将大量需要在线高效访问的数据通过Key-Value的形式放在Cmem中,将少量需要SQL功能的数据放在CDB中。 (1)好处:Cmem完全兼容memcached协议,CDB兼容Mysql协议,这样对于开发者来说基本无门槛。在开发和运营过程中,开发无需关心存储层的数据安全、容错、扩容,这些问题全部在云端解决。 (2)不足:Cmem是Key-Value存储,用于应对在线数据的实时高效访问,不具备传统SQL存储的一些常用功能,如实时统计、分析等。但实际上,大部分应用在使用Mysql作为存储层使用的时候,基本上也都是同时只对一条记录进行操作,这正式Key-Value的使
38、用场景。如确实有SQL要求并且数据量适中、性能要求不高的数据,可以使用CDB解决。 第二部分:云存储——数据层解决方案 看过应用开发过程中存储层方案变迁后,回到项目起始阶段,如果在应用开始设计时就考虑使用云存储来解决数据层的问题是非常明智的。一来可以快速开发,使开发者更加聚焦于应用逻辑开发和产品运营;二来减少数据层后期扩容、运维成本,减少故障概率。我们再从各个纬度来全面看下数据层是否使用云存储的优劣。 自行设计和解决数据层问题 使用Cmem、CDB等云存储方案 开发门槛 熟悉LAMP架构和业界知名开源软件如Memcached、Mysql即可 Cmem兼容Mem
39、Cached协议 CDB兼容Mysql协议 无门槛 研发效率 需投入专业人员进行数据层的设计和开发工作 无需关注数据层具体实现,通过云存储解决数据层性能、容量、安全及可用性问题,资源可投入到应用开发 运维质量 1、数据层开发要求高,设计时的疏忽可能带来运维中的重大数据灾难; 2、经常的重构和各类数据运维操作带来额外风险; 3、业务极速增长带来资源的压力,经常会导致系统过载 1、成熟可靠的存储层方案,保障数据安全和可用性; 2、全面的监控告警、自动容错机制; 3、云端资源池共享,支持业务的极速成长 运营成本 1、以实际设备投入来计算,即
40、便只用了1/10的资源; 2、需提前准备资源来应对可能的业务突发; 3、业务开发人员兼顾数据层优化,性能提升有限 1、以实际使用资源来核算; 2、云存储资源的复用,资源单位成本小于直接使用物理资源; 3、专业数据层研发团队,从应用到硬件的极致优化 表1 可见,无论从性能、效率、质量、成本各个方面来看,对于第三方开发者来说,云存储都是更优的选择,不过这里还是有些研发模式的转变的。这一部分将就如何在云存储下进行数据层的设计进行一些分享。 我们分析了App常用的数据类型、场景和访问情况,有一些基于Key-Value的App数据设计参考方案供参考。目前对于各类应用来说,
41、所用到的主要数据类型大致有以下几种: 数据类型 示例 数据量 读取量 修改量 1 用户资料 昵称、等级、金钱、经验 中 多 多 2 背包数据 农场游戏的田地、果实等 大 多 多 3 Feeds “小明摘了我的菜” “小白帮我捉了虫” 大 少 中 4 留言信息 好友留言、系统消息 小 少 少 5 购买物品 用户装饰、游戏道具 小 少 少 6 成果归档 某用户升级到30级
42、 大 少 少 7 其他 好友排名、游戏排名 中 多 少 表2 除了第7点的排序工作外,通常应用对各类数据的在线访问都是以Key的形式来访问Value,并不会用到SQL功能。比如用户经验值成长了,我们根据用户id取出用户资料,修改经验值并设置回去就行了。特别是前几类高访问量的数据,非常适合Cmem的高性能存储场景。同时,将不同类型的数据分开存放在不同的数据表中是有好处的,同类数据的局部化可以方便Cmem根据不同模型进行更好的优化。 那么有没有场景是涉及到多条记录操作的,答案是有。比如农场游戏中A摘了好友B的萝卜,A的数量要增
43、加,B的要减少,就涉及到多个记录的修改了。这个时候在分布式场景中如果要使用事务是极其不理智的,即便能实现(没有分库分表),在实际使用的性能消耗也非常高,基本上不可承受。其实上是有折衷的方案的,比如先增加A的数量,再减少B的数量,这时出现问题的概率非常小,而且出现了也不会影响游戏效果和用户体验,但换来的却是系统扩展性和性能的大幅提升。在实际使用中,有的应用自己简单实现了一个非常轻量的transaction模块,效果也非常好。 针对表2中的各类数据类型,我们给出了建议使用场景,这里主要是根据访问密度和数据量2个纬度来衡量(Cmem具备更高的性能和扩展性,CDB提供SQL支持),下表中“访问密
44、度高”表示>500iops/GB,“数据量高”表示>150GB。 访问密度 数据量 推荐云存储方案方案 示例数据 高 高 Cmem 背包数据 Feeds 高 低 Cmem 用户资料 低 高 Cmem(数据量有持续增长的需求) 成果归档 CDB(数据量相对固定且有SQL的需求) 好友排名、用户排名 低 低 CDB 购买物品 留言消息 表3 根据上述一些原则,结合实际的应用策划,如果在早期能合理的进行数据层的规划,那么就可以避免在后期遭受巨
45、大的数据层运营挑战。那么,Cmem和CDB能解决所有的数据层问题吗,显然它们不是万能的,不过它们能解决我们目前在线上业务中最棘手的在线数据访问的根本问题。解决了这个,其他问题都好办了。如果还有什么疑问,请访问,那里有更多的信息和解答。 第三部分:应用云存储的一些遗留问题 1、事务操作 应尽量通过业务逻辑来避免事务,在Social Game开发中使用事务是极其不明智的行为,当然支付类操作除外,不过这个不属于游戏数据的在线访问,腾讯云平台也提供了相应的解决方案; 2、统计分析 提供数据导入到DB的功能,但DB分析能力终归是有限的,计划日后提供类似MapReduce原理的分析工具;
46、 3、游戏运营 比如需要对金钱<100的用户统一送2000金币,如果碰到这类问题,分析系统+操作工具应该是个不错的选择,直接去数据库修改太危险了,不是吗? 4、用户排名,搭建额外的排名系统,效率更高 设计个专用的排名系统把,逻辑实现即可,既高效又不影响在线数据的访 4.附录 一.分组 姓名 学号 任务 黄俊阳 201430260143 设计及论文撰写 何伟龙 201436260123 资料收集及论文撰写 陈清睿 201436260048 问卷调查及论文撰写 林伟杰 201430260302 背景调研及论文撰写 二.参考文献 5
47、 问卷调查 你想创造属于自己的世界吗?-自定义查询 作者:1178084156 时间:2015年5月16日 调查背景: 参考资料 调查方法: 开始时间:2015-5-16 结束时间:2015-5-16 样本总数:55 份 原始数据来源: 本报告分析内容:自定义查询 本报告样本筛选规则: 本报告包含样本数量:55份 数据与分析: 第 54 页 共 54 页 第1题 你平常喜欢用文字或图片记录生活吗? [单选题] 选项 小计 比例 喜欢 27 49.09% 还可以 24 43.64%
48、 不喜欢 4 7.27% 本题有效填写人次 55 第2题 你喜欢文字还是更喜欢图片记录生活? [单选题] 选项 小计 比例 文字 21 38.18% 图片 29 52.73% 其他 5 9.09% 本题有效填写人次 55 第3题 你愿意与别人分享生活中的点点滴滴吗? [单选题] 选项 小计 比例 愿意 37 67.27% 不愿意 18 32.73% 本题有效填写人次 55 第4题 你愿意创作一个属于自己的虚拟世界吗? [单选题]
49、 选项 小计 比例 是 31 56.36% 否 24 43.64% 本题有效填写人次 55 第5题 你想了解别人的生活吗? [单选题] 选项 小计 比例 想 23 41.82% 不想 9 16.36% 随意 23 41.82% 本题有效填写人次 55 第6题 你平时投入到微信,微博等社交平台的时间 [单选题] 选项 小计 比例 1小时 25 45.45% 2小时 20 36.36% 其他 10 18.18% 本题有效填写人次 55






