张士铎,刘克
(中国传媒大学 计算机学院,北京 100024)
网络游戏后台管理系统的关键技术研究
张士铎,刘克
(中国传媒大学 计算机学院,北京 100024)
为了方便对网络游戏的管理和运营,更好的对网络游戏进行维护。分析该系统中的关键技术并设计一个基于B/S模式的网络游戏后台管理系统,大大减轻了降低了网络游戏的管理维护成本,提高了效率,具有很大的灵活性和可扩充性。
网络游戏;后台管理系统;B/S模式
当今网络游戏不断发展进步,产生了大量优秀的网络游戏作品,然而对于大型的网络游戏,为了提高对大型网络游戏管理、运营、维护的效率,开发出一个针对该网络游戏的后台管理系统,大大减轻了开发人员的工作量,充分协调了各个部门和人员的工作,因此网络游戏的后台管理系统的高效性和稳定性对网络游戏起到了至关重要的作用。
网络游戏后台管理系统是针对网络游戏运维人员和管理人员使用的网络平台,各个部门的工作人员可以通过该系统查看游戏相关数据信息,编辑发布游戏资讯,管理游戏相关参数信息等对网络游戏实现高效的维护。
本文通过服务器的架构、权限控制、内容管理、信息安全、系统优化等几个方面论述,分析整个网络游戏后台管理系统中关键的实现技术,设计出一个高效的网络游戏后台管理系统。
采用当前最流行LAMP(Linux+Apache+MySQL+PHP)的web开发平台,LAMP是开源的,完全免费的,成本非常低。[1]
2.1 Linux操作系统
Linux操作系统是开源的,使得其不断得到改进,而且具有良好的扩展性和灵活性,同时它的稳定性相当出色,可以长时间开机而不宕机,在实际的应用中表现出优秀的性能特点。
Linux可以在多种硬件平台运行,基本上所有的处理器平台和协议都能支持,也同样支持多处理器技术,使得其性能大大提升。Linux对网络服务器软件如Apache、MySQL、PHP等提供了更好的支持,兼容性更佳。与此同时,Linux具有相当可靠的安全性,通过系统自带的防火墙、安全认证、入侵检测等方法可以有效的对系统做出强力的保护。Linux高效的内存管理,可以充分利用系统资源提供各种服务。对于网络游戏后台管理系统,真正的多用户多任务的Linux操作系统拥有诸多的优势,成为首选的服务器操作系统。
2.2 Apache web服务器软件
Apache是运行在服务器端提供http服务的核心,是世界上使用最广泛的网络服务器软件。Apache快速且稳定,同时具有良好的跨平台性和安全性,几乎可以在所有的计算机操作系统上运行,支持安全Socket层,同时可以实时监测服务器状态和日志。用户可以根据自身的业务需要灵活地配置,配置简单,易操作,具有很大的灵活性。支持多进程,可以快速提高访问速度。
2.3 MySQL数据库软件
MySQL是关系型数据库,被广泛应用在各类网站上。全面支持SQL,通过高度优化的类库实现SQL函数库。MySQL可以工作在不同的平台,支持多处理器,是完全多线程。MySQL支持多种数据存储引擎,为不同的业务需求提供了有效的解决方案。MySQL具有很高的稳定性,并且执行速度快,占用系统资源少。
2.4 PHP软件
PHP同样也是开源软件,它与Apache一起使得系统更加灵活和高效。PHP是一种强大的嵌入式CGI脚本语言,代码执行速度很快,占用的系统资源比较少,而且性能非常稳定,可以跨平台运行,具有良好的可扩展性和可移植性。PHP可以采用面向对象的开发模式,并可以向下兼容,对于web开发架构有很大意义。PHP支持几乎所有的数据库系统,它与MySQL的黄金组合,运行效率非常高。
网络游戏后台管理系统根据业务划分,不同的工作人员根据职责和任务对其分配不同的权限值,实现一个精细粒度的权限控制,并保留相应的操作日志,对提高系统的稳定性和协调性起到关键作用。网络后台管理系统采用B/S模式,权限控制相对于B/S模式,它的作用更加突出,如果不建立一个完善的权限检测,系统很容易受到非法用户的入侵访问。
3.1 设计思想
将用户进行划分,对应不同的角色,再对相应的角色进行资源划分,讲权限定义到模块的操作级别上,不同的模块可以是不同的资源类型,对应不同的操作权限。同时通过管理员系统对权限进行管理,包括对用户和角色级别的编辑和控制,还有分配、修改权限的功能。[2]
3.2 数据库设计
权限管理的数据库表主要由实体表和映射表组成。实体表主要由用户表、角色表、资源表;映射表主要由用户-角色映射表、角色-资源表组成。
用户表主要存储个人的详细信息,角色表主要存储各个角色的详细信息,资源表主要存储各种资源(“权限”)的详细信息。三个实体表记录着系统中的决定性元素,这三者之间可以独立操作,互相不受影响。
用户-角色映射表保存用户和角色之间的相互关系,用户和角色之间是多对多的关系;角色-资源映射表保存角色和资源之间的相互关系,同样地,两者之间也是多对多的关系。两个独立的映射表记录着三个元素之间的关系,完全是人为创建的,只需要对数据库进行简单的操作就可以轻易改变它们之间的关系映射,无需改动数据库表的结构,大大提高了可重用性,更利于操作,如图1。
图1
网络游戏后台管理系统一个重要的功能是关于游戏的内容管理:查看游戏相关数据,发布游戏资讯,监测游戏异常情况等。
4.1 游戏关键数据统计
游戏的一些重要统计数据对游戏的策划和运营等方面提供了关键的数据参考,通过后台管理系统可以直接获取相应的数据,为网络游戏的进一步发展和完善具有指导性意义。
游戏数据分析的主要性能指标:
周大毛说,看吧,这孩子迟早要犯事。唉,也难为驮子了,他娶了个常爱兰,常爱兰随身带着个炸药包。现在这炸药包还小,以后这炸药包大了,不要把天炸出个窟窿来。
DAU(Day Active User,日活跃用户),表示在当天登陆过游戏的游戏玩家,有效反映和衡量游戏核心的玩家数量;
WAU(Weekly Active User,周活跃用户),表示在一周之内登陆游戏的玩家,一定程度反映游戏忠诚度玩家数量;
MAU(Monthly Active User,月活跃用户),表示一月之内登陆游戏的玩家,可以在总体范围内反映游戏的玩家水平。
除了以上的基本统计数据,同时还包括游戏的付费充值玩家信息的计算和统计,直接体现游戏收入水平。同时还有流失玩家的信息统计和计算,这体现了游戏对玩家的影响程度。除此之外,玩家个人信息、装备信息、道具信息、游戏异常信息、游戏房间信息等也是游戏后台管理系统需要做的关键性数据统计和计算。
4.2 游戏信息更新
在游戏后台管理系统中,编辑功能必不可少,通过该编辑功能,实现对游戏相关信息的更新。例如游戏动态资讯的发布,运营人员可以直接登录游戏后台管理系统编辑相关的讯息发布,同时可以对发布的信息进行修改。大大减轻了维护人员的工作负担,效率大大提升,从而实现了游戏信息的动态管理功能。
游戏后台管理系统包含许多敏感数据操作,之前做的权限控制,这只是从全局上进行保护的机制,因此正是由于系统的关键性,进一步加强网络安全机制也是游戏后台管理系统中的关键要素。
5.1 通信协议
web服务主要使用的协议是http(Hyper Text Transfer Protocol,超文本传输协议),http协议可以很好的支持B/S模式,基于请求与响应模式的、无状态的应用层的协议,通常基于TCP的链接方式。如表1:
表1
http请求方式主要有get、post、head等。get方法请求时,把请求资源附在URL中,所有的请求信息都会显示在URL中。post方法请求时,把信息附在报文里面,而不是放在URL中,通常用于提交表单,相对于get方法更加安全。head方法和get方法类似,主要用于测试超链接的有效性。
5.2 通信安全方案
网络游戏后台管理系统是基于http协议的web架构,要加强系统的安全性,基于系统的特点,采用必要的安全方案。
5.2.1 采用post方式提交表单信息
post方式不会把提交给服务器的信息直接暴露在URL中,而是直接放在消息报文中,更好的封装性和隐蔽性。
5.2.2 关键字段加密
因为http协议公开性,http协议报文的各个字段可以直接获取到,因此,单纯的依靠http协议本身已经无法满足安全需要,同时为了减少系统开销,对系统的关键敏感数据进行双向加密。服务器端动态生成一个数据密钥,客户端根据密钥对提交的敏感信息进行加密传输,然后服务器端根据密钥进行解密。为了保证加密规则不被破译,服务器每次接受请求时都新生成一个密钥。如图2。
图2
5.3 数据库安全
所有的游戏数据都是保存在数据库里面,然而数据库的安全性有时候经常会被忽略,在配置MySQL数据库时,使用其默认选项进行安装,造成数据被非法获取,同时也有可能产生性能下降等问题,相应的安全性配置起到很关键的作用。[3]
5.3.1 限制MySQL数据库外部访问权限
避免从外部访问MySQL数据库,授权特定的主机具有相应的访问权限,直接通过互联网方式从本地网络之外的计算机环境改变数据库环境异常危险,后台管理系统可以指定固定的主机名或者IP地址进行访问,并为不同数据库的设置不同的登陆密码。除此之外,慎重使用远程访问数据库功能,禁止或者限制远程访问数据库。在Linux中,root用户拥有对所有数据库的完全访问权,除了设置root密码外,更改root的名字,也能有效的改进root用户的安全性。[4]
5.3.2 定期备份数据库
任何系统都会出现故障,数据库同样也会崩溃或者受到非法入侵,数据会受到损害,丢失了用户数据,这会造成巨大的灾难,为了应对这种糟糕的状况,定期做好数据库备份,这样能够在事后快速恢复,因此定期备份数据库最好作为维护服务器的一项日常工作。[5]
5.3.3 移除测试数据库
在默认安装的MySQL数据库里通常会有一个test数据库,匿名用户是可以访问这个数据库的,因此我们需要移除任何无用的数据库,同时删除匿名账户和废弃的账户,减少未知的异常问题的出现。
5.3.4 启用日志
数据库日志通常会被开发者忽略,然而使用日志对记录数据库的各种操作和异常情况很有帮助,可以快速定位问题所在,及时解决数据库出现的各种问题,同时可以更方便的查看各种数据操作的记录。
5.3.5 SQL注入
SQL注入攻击是比较常见的数据攻击方式,攻击者利用这个漏洞非法获取数据库中的数据,而且不容易被发现,因此,在加强用户权限控制的同时,对输入数据包括类型、长度等方面进行有效的检查和验证可以有效防止SQL注入攻击。
虽然网络游戏后台管理系统的流量和用户数量不会太高,但是也占用了一定的系统资源,为了充分利用系统资源,在保证性能前提下对系统进行相应的优化。
6.1 Linux和Apache优化
Linux操作系统和Apache服务,可以通过检测CPU利用率、HTTP连接数等参数查看,分析出系统效率。由于系统的用户使用数量有限,流量有限,通过对Linux和Apache的优化,优化程度有限。
6.2 MySQL和PHP优化
对MySQL数据库主要从索引优化、存储优化、缓存优化等方面入手。开启查询缓存可以更快的提高访问速度,对经常查询的字段添加索引,然而不能盲目对字段添加索引,会造成系统资源浪费,降低效率。同时选择合适的存储引擎也很关键,读写较多并且需要保证事务安全的一般选择InnoDB引擎;查找较多,对事务安全没有太严格要求可以选择MyISAM引擎。[6]
PHP的优化主要体现在程序本身和连接操作数据库方面。从PHP程序本身讲,尽量使用PHP内置的函数,在操作数据库插入、删除、查找、更新时,注意SQL语句的效率,避免一些效率低下的操作,这样会增加数据库的负担,虽然数据库的不断升级,速度和效率也越来越快。
本文通过对网络游戏后台管理系统中的实现关键技术和需要注意的问题进行了分析,同时也阐述了网络游戏后台管理系统对于游戏业务的重要意义,提高了工作效率,更加灵活。
游戏拥有很大的数据信息,下一步可以通过基本的数据统计进行数据挖掘,分析用户的行为模型,为游戏的发展战略提供数据指导,具有更深的意义。
[1]张屹峰.基于LAMP的网站后台管理系统的设计与实现[J].Computer Knowledge Technology,2011,7(8):1780-1782.
[2]罗力华,姜建国.网站后台管理系统的用户权限管理的一种实现方案[J].电子科技,2006年第10期.
[3]胡敏.Web系统下提高MySQL数据库安全性的研究与实现[D].北京邮电大学硕士论文,2015.
[4]潘锐.Web服务安全策略研究[M].北京,人民部电出版社,2003.
[5]Williams H E,Lane D.PHP & MySQL Web数据库应用开发指南[M].南京大学出版社,2006.
[6]吴沧舟,兰逸正,张辉.基于MySQL数据库的优化[J].电子科技,2013年09期.
(责任编辑:马玉凤)
The Key Technology Research of Background Management System of Online Game
ZHANG Shi-duo,LIU Ke
(School of Computer Science,Communication University of China,Beijing 100024,China)
In order to facilitate the management and operation of the online game,and keep the maintenance of online games.To analyze the key technology of the system and design a background management system of online game based on B/S pattern,which will significantly reduce the cost of maintenance and improve the efficiency of the management of the online game with great flexibility and expandability.
online game;background management system;B/S pattern
2016-03-04
张士铎(1990-),男(汉族),山东滕州人,中国传媒大学硕士研究生.E-mail:1135444595@qq.com
TP399
文章编号:1673-4793(2016)05-0062-05