張士鐸,劉克
(中國傳媒大學(xué) 計算機學(xué)院,北京 100024)
?
網(wǎng)絡(luò)游戲后臺管理系統(tǒng)的關(guān)鍵技術(shù)研究
張士鐸,劉克
(中國傳媒大學(xué) 計算機學(xué)院,北京 100024)
為了方便對網(wǎng)絡(luò)游戲的管理和運營,更好的對網(wǎng)絡(luò)游戲進(jìn)行維護(hù)。分析該系統(tǒng)中的關(guān)鍵技術(shù)并設(shè)計一個基于B/S模式的網(wǎng)絡(luò)游戲后臺管理系統(tǒng),大大減輕了降低了網(wǎng)絡(luò)游戲的管理維護(hù)成本,提高了效率,具有很大的靈活性和可擴(kuò)充性。
網(wǎng)絡(luò)游戲;后臺管理系統(tǒng);B/S模式
當(dāng)今網(wǎng)絡(luò)游戲不斷發(fā)展進(jìn)步,產(chǎn)生了大量優(yōu)秀的網(wǎng)絡(luò)游戲作品,然而對于大型的網(wǎng)絡(luò)游戲,為了提高對大型網(wǎng)絡(luò)游戲管理、運營、維護(hù)的效率,開發(fā)出一個針對該網(wǎng)絡(luò)游戲的后臺管理系統(tǒng),大大減輕了開發(fā)人員的工作量,充分協(xié)調(diào)了各個部門和人員的工作,因此網(wǎng)絡(luò)游戲的后臺管理系統(tǒng)的高效性和穩(wěn)定性對網(wǎng)絡(luò)游戲起到了至關(guān)重要的作用。
網(wǎng)絡(luò)游戲后臺管理系統(tǒng)是針對網(wǎng)絡(luò)游戲運維人員和管理人員使用的網(wǎng)絡(luò)平臺,各個部門的工作人員可以通過該系統(tǒng)查看游戲相關(guān)數(shù)據(jù)信息,編輯發(fā)布游戲資訊,管理游戲相關(guān)參數(shù)信息等對網(wǎng)絡(luò)游戲?qū)崿F(xiàn)高效的維護(hù)。
本文通過服務(wù)器的架構(gòu)、權(quán)限控制、內(nèi)容管理、信息安全、系統(tǒng)優(yōu)化等幾個方面論述,分析整個網(wǎng)絡(luò)游戲后臺管理系統(tǒng)中關(guān)鍵的實現(xiàn)技術(shù),設(shè)計出一個高效的網(wǎng)絡(luò)游戲后臺管理系統(tǒng)。
采用當(dāng)前最流行LAMP(Linux+Apache+MySQL+PHP)的web開發(fā)平臺,LAMP是開源的,完全免費的,成本非常低。[1]
2.1 Linux操作系統(tǒng)
Linux操作系統(tǒng)是開源的,使得其不斷得到改進(jìn),而且具有良好的擴(kuò)展性和靈活性,同時它的穩(wěn)定性相當(dāng)出色,可以長時間開機而不宕機,在實際的應(yīng)用中表現(xiàn)出優(yōu)秀的性能特點。
Linux可以在多種硬件平臺運行,基本上所有的處理器平臺和協(xié)議都能支持,也同樣支持多處理器技術(shù),使得其性能大大提升。Linux對網(wǎng)絡(luò)服務(wù)器軟件如Apache、MySQL、PHP等提供了更好的支持,兼容性更佳。與此同時,Linux具有相當(dāng)可靠的安全性,通過系統(tǒng)自帶的防火墻、安全認(rèn)證、入侵檢測等方法可以有效的對系統(tǒng)做出強力的保護(hù)。Linux高效的內(nèi)存管理,可以充分利用系統(tǒng)資源提供各種服務(wù)。對于網(wǎng)絡(luò)游戲后臺管理系統(tǒng),真正的多用戶多任務(wù)的Linux操作系統(tǒng)擁有諸多的優(yōu)勢,成為首選的服務(wù)器操作系統(tǒng)。
2.2 Apache web服務(wù)器軟件
Apache是運行在服務(wù)器端提供http服務(wù)的核心,是世界上使用最廣泛的網(wǎng)絡(luò)服務(wù)器軟件。Apache快速且穩(wěn)定,同時具有良好的跨平臺性和安全性,幾乎可以在所有的計算機操作系統(tǒng)上運行,支持安全Socket層,同時可以實時監(jiān)測服務(wù)器狀態(tài)和日志。用戶可以根據(jù)自身的業(yè)務(wù)需要靈活地配置,配置簡單,易操作,具有很大的靈活性。支持多進(jìn)程,可以快速提高訪問速度。
2.3 MySQL數(shù)據(jù)庫軟件
MySQL是關(guān)系型數(shù)據(jù)庫,被廣泛應(yīng)用在各類網(wǎng)站上。全面支持SQL,通過高度優(yōu)化的類庫實現(xiàn)SQL函數(shù)庫。MySQL可以工作在不同的平臺,支持多處理器,是完全多線程。MySQL支持多種數(shù)據(jù)存儲引擎,為不同的業(yè)務(wù)需求提供了有效的解決方案。MySQL具有很高的穩(wěn)定性,并且執(zhí)行速度快,占用系統(tǒng)資源少。
2.4 PHP軟件
PHP同樣也是開源軟件,它與Apache一起使得系統(tǒng)更加靈活和高效。PHP是一種強大的嵌入式CGI腳本語言,代碼執(zhí)行速度很快,占用的系統(tǒng)資源比較少,而且性能非常穩(wěn)定,可以跨平臺運行,具有良好的可擴(kuò)展性和可移植性。PHP可以采用面向?qū)ο蟮拈_發(fā)模式,并可以向下兼容,對于web開發(fā)架構(gòu)有很大意義。PHP支持幾乎所有的數(shù)據(jù)庫系統(tǒng),它與MySQL的黃金組合,運行效率非常高。
網(wǎng)絡(luò)游戲后臺管理系統(tǒng)根據(jù)業(yè)務(wù)劃分,不同的工作人員根據(jù)職責(zé)和任務(wù)對其分配不同的權(quán)限值,實現(xiàn)一個精細(xì)粒度的權(quán)限控制,并保留相應(yīng)的操作日志,對提高系統(tǒng)的穩(wěn)定性和協(xié)調(diào)性起到關(guān)鍵作用。網(wǎng)絡(luò)后臺管理系統(tǒng)采用B/S模式,權(quán)限控制相對于B/S模式,它的作用更加突出,如果不建立一個完善的權(quán)限檢測,系統(tǒng)很容易受到非法用戶的入侵訪問。
3.1 設(shè)計思想
將用戶進(jìn)行劃分,對應(yīng)不同的角色,再對相應(yīng)的角色進(jìn)行資源劃分,講權(quán)限定義到模塊的操作級別上,不同的模塊可以是不同的資源類型,對應(yīng)不同的操作權(quán)限。同時通過管理員系統(tǒng)對權(quán)限進(jìn)行管理,包括對用戶和角色級別的編輯和控制,還有分配、修改權(quán)限的功能。[2]
3.2 數(shù)據(jù)庫設(shè)計
權(quán)限管理的數(shù)據(jù)庫表主要由實體表和映射表組成。實體表主要由用戶表、角色表、資源表;映射表主要由用戶-角色映射表、角色-資源表組成。
用戶表主要存儲個人的詳細(xì)信息,角色表主要存儲各個角色的詳細(xì)信息,資源表主要存儲各種資源(“權(quán)限”)的詳細(xì)信息。三個實體表記錄著系統(tǒng)中的決定性元素,這三者之間可以獨立操作,互相不受影響。
用戶-角色映射表保存用戶和角色之間的相互關(guān)系,用戶和角色之間是多對多的關(guān)系;角色-資源映射表保存角色和資源之間的相互關(guān)系,同樣地,兩者之間也是多對多的關(guān)系。兩個獨立的映射表記錄著三個元素之間的關(guān)系,完全是人為創(chuàng)建的,只需要對數(shù)據(jù)庫進(jìn)行簡單的操作就可以輕易改變它們之間的關(guān)系映射,無需改動數(shù)據(jù)庫表的結(jié)構(gòu),大大提高了可重用性,更利于操作,如圖1。
圖1
網(wǎng)絡(luò)游戲后臺管理系統(tǒng)一個重要的功能是關(guān)于游戲的內(nèi)容管理:查看游戲相關(guān)數(shù)據(jù),發(fā)布游戲資訊,監(jiān)測游戲異常情況等。
4.1 游戲關(guān)鍵數(shù)據(jù)統(tǒng)計
游戲的一些重要統(tǒng)計數(shù)據(jù)對游戲的策劃和運營等方面提供了關(guān)鍵的數(shù)據(jù)參考,通過后臺管理系統(tǒng)可以直接獲取相應(yīng)的數(shù)據(jù),為網(wǎng)絡(luò)游戲的進(jìn)一步發(fā)展和完善具有指導(dǎo)性意義。
游戲數(shù)據(jù)分析的主要性能指標(biāo):
周大毛說,看吧,這孩子遲早要犯事。唉,也難為馱子了,他娶了個常愛蘭,常愛蘭隨身帶著個炸藥包?,F(xiàn)在這炸藥包還小,以后這炸藥包大了,不要把天炸出個窟窿來。
DAU(Day Active User,日活躍用戶),表示在當(dāng)天登陸過游戲的游戲玩家,有效反映和衡量游戲核心的玩家數(shù)量;
WAU(Weekly Active User,周活躍用戶),表示在一周之內(nèi)登陸游戲的玩家,一定程度反映游戲忠誠度玩家數(shù)量;
MAU(Monthly Active User,月活躍用戶),表示一月之內(nèi)登陸游戲的玩家,可以在總體范圍內(nèi)反映游戲的玩家水平。
除了以上的基本統(tǒng)計數(shù)據(jù),同時還包括游戲的付費充值玩家信息的計算和統(tǒng)計,直接體現(xiàn)游戲收入水平。同時還有流失玩家的信息統(tǒng)計和計算,這體現(xiàn)了游戲?qū)ν婕业挠绊懗潭?。除此之外,玩家個人信息、裝備信息、道具信息、游戲異常信息、游戲房間信息等也是游戲后臺管理系統(tǒng)需要做的關(guān)鍵性數(shù)據(jù)統(tǒng)計和計算。
4.2 游戲信息更新
在游戲后臺管理系統(tǒng)中,編輯功能必不可少,通過該編輯功能,實現(xiàn)對游戲相關(guān)信息的更新。例如游戲動態(tài)資訊的發(fā)布,運營人員可以直接登錄游戲后臺管理系統(tǒng)編輯相關(guān)的訊息發(fā)布,同時可以對發(fā)布的信息進(jìn)行修改。大大減輕了維護(hù)人員的工作負(fù)擔(dān),效率大大提升,從而實現(xiàn)了游戲信息的動態(tài)管理功能。
游戲后臺管理系統(tǒng)包含許多敏感數(shù)據(jù)操作,之前做的權(quán)限控制,這只是從全局上進(jìn)行保護(hù)的機制,因此正是由于系統(tǒng)的關(guān)鍵性,進(jìn)一步加強網(wǎng)絡(luò)安全機制也是游戲后臺管理系統(tǒng)中的關(guān)鍵要素。
5.1 通信協(xié)議
web服務(wù)主要使用的協(xié)議是http(Hyper Text Transfer Protocol,超文本傳輸協(xié)議),http協(xié)議可以很好的支持B/S模式,基于請求與響應(yīng)模式的、無狀態(tài)的應(yīng)用層的協(xié)議,通?;赥CP的鏈接方式。如表1:
表1
http請求方式主要有g(shù)et、post、head等。get方法請求時,把請求資源附在URL中,所有的請求信息都會顯示在URL中。post方法請求時,把信息附在報文里面,而不是放在URL中,通常用于提交表單,相對于get方法更加安全。head方法和get方法類似,主要用于測試超鏈接的有效性。
5.2 通信安全方案
網(wǎng)絡(luò)游戲后臺管理系統(tǒng)是基于http協(xié)議的web架構(gòu),要加強系統(tǒng)的安全性,基于系統(tǒng)的特點,采用必要的安全方案。
5.2.1 采用post方式提交表單信息
post方式不會把提交給服務(wù)器的信息直接暴露在URL中,而是直接放在消息報文中,更好的封裝性和隱蔽性。
5.2.2 關(guān)鍵字段加密
因為http協(xié)議公開性,http協(xié)議報文的各個字段可以直接獲取到,因此,單純的依靠http協(xié)議本身已經(jīng)無法滿足安全需要,同時為了減少系統(tǒng)開銷,對系統(tǒng)的關(guān)鍵敏感數(shù)據(jù)進(jìn)行雙向加密。服務(wù)器端動態(tài)生成一個數(shù)據(jù)密鑰,客戶端根據(jù)密鑰對提交的敏感信息進(jìn)行加密傳輸,然后服務(wù)器端根據(jù)密鑰進(jìn)行解密。為了保證加密規(guī)則不被破譯,服務(wù)器每次接受請求時都新生成一個密鑰。如圖2。
圖2
5.3 數(shù)據(jù)庫安全
所有的游戲數(shù)據(jù)都是保存在數(shù)據(jù)庫里面,然而數(shù)據(jù)庫的安全性有時候經(jīng)常會被忽略,在配置MySQL數(shù)據(jù)庫時,使用其默認(rèn)選項進(jìn)行安裝,造成數(shù)據(jù)被非法獲取,同時也有可能產(chǎn)生性能下降等問題,相應(yīng)的安全性配置起到很關(guān)鍵的作用。[3]
5.3.1 限制MySQL數(shù)據(jù)庫外部訪問權(quán)限
避免從外部訪問MySQL數(shù)據(jù)庫,授權(quán)特定的主機具有相應(yīng)的訪問權(quán)限,直接通過互聯(lián)網(wǎng)方式從本地網(wǎng)絡(luò)之外的計算機環(huán)境改變數(shù)據(jù)庫環(huán)境異常危險,后臺管理系統(tǒng)可以指定固定的主機名或者IP地址進(jìn)行訪問,并為不同數(shù)據(jù)庫的設(shè)置不同的登陸密碼。除此之外,慎重使用遠(yuǎn)程訪問數(shù)據(jù)庫功能,禁止或者限制遠(yuǎn)程訪問數(shù)據(jù)庫。在Linux中,root用戶擁有對所有數(shù)據(jù)庫的完全訪問權(quán),除了設(shè)置root密碼外,更改root的名字,也能有效的改進(jìn)root用戶的安全性。[4]
5.3.2 定期備份數(shù)據(jù)庫
任何系統(tǒng)都會出現(xiàn)故障,數(shù)據(jù)庫同樣也會崩潰或者受到非法入侵,數(shù)據(jù)會受到損害,丟失了用戶數(shù)據(jù),這會造成巨大的災(zāi)難,為了應(yīng)對這種糟糕的狀況,定期做好數(shù)據(jù)庫備份,這樣能夠在事后快速恢復(fù),因此定期備份數(shù)據(jù)庫最好作為維護(hù)服務(wù)器的一項日常工作。[5]
5.3.3 移除測試數(shù)據(jù)庫
在默認(rèn)安裝的MySQL數(shù)據(jù)庫里通常會有一個test數(shù)據(jù)庫,匿名用戶是可以訪問這個數(shù)據(jù)庫的,因此我們需要移除任何無用的數(shù)據(jù)庫,同時刪除匿名賬戶和廢棄的賬戶,減少未知的異常問題的出現(xiàn)。
5.3.4 啟用日志
數(shù)據(jù)庫日志通常會被開發(fā)者忽略,然而使用日志對記錄數(shù)據(jù)庫的各種操作和異常情況很有幫助,可以快速定位問題所在,及時解決數(shù)據(jù)庫出現(xiàn)的各種問題,同時可以更方便的查看各種數(shù)據(jù)操作的記錄。
5.3.5 SQL注入
SQL注入攻擊是比較常見的數(shù)據(jù)攻擊方式,攻擊者利用這個漏洞非法獲取數(shù)據(jù)庫中的數(shù)據(jù),而且不容易被發(fā)現(xiàn),因此,在加強用戶權(quán)限控制的同時,對輸入數(shù)據(jù)包括類型、長度等方面進(jìn)行有效的檢查和驗證可以有效防止SQL注入攻擊。
雖然網(wǎng)絡(luò)游戲后臺管理系統(tǒng)的流量和用戶數(shù)量不會太高,但是也占用了一定的系統(tǒng)資源,為了充分利用系統(tǒng)資源,在保證性能前提下對系統(tǒng)進(jìn)行相應(yīng)的優(yōu)化。
6.1 Linux和Apache優(yōu)化
Linux操作系統(tǒng)和Apache服務(wù),可以通過檢測CPU利用率、HTTP連接數(shù)等參數(shù)查看,分析出系統(tǒng)效率。由于系統(tǒng)的用戶使用數(shù)量有限,流量有限,通過對Linux和Apache的優(yōu)化,優(yōu)化程度有限。
6.2 MySQL和PHP優(yōu)化
對MySQL數(shù)據(jù)庫主要從索引優(yōu)化、存儲優(yōu)化、緩存優(yōu)化等方面入手。開啟查詢緩存可以更快的提高訪問速度,對經(jīng)常查詢的字段添加索引,然而不能盲目對字段添加索引,會造成系統(tǒng)資源浪費,降低效率。同時選擇合適的存儲引擎也很關(guān)鍵,讀寫較多并且需要保證事務(wù)安全的一般選擇InnoDB引擎;查找較多,對事務(wù)安全沒有太嚴(yán)格要求可以選擇MyISAM引擎。[6]
PHP的優(yōu)化主要體現(xiàn)在程序本身和連接操作數(shù)據(jù)庫方面。從PHP程序本身講,盡量使用PHP內(nèi)置的函數(shù),在操作數(shù)據(jù)庫插入、刪除、查找、更新時,注意SQL語句的效率,避免一些效率低下的操作,這樣會增加數(shù)據(jù)庫的負(fù)擔(dān),雖然數(shù)據(jù)庫的不斷升級,速度和效率也越來越快。
本文通過對網(wǎng)絡(luò)游戲后臺管理系統(tǒng)中的實現(xiàn)關(guān)鍵技術(shù)和需要注意的問題進(jìn)行了分析,同時也闡述了網(wǎng)絡(luò)游戲后臺管理系統(tǒng)對于游戲業(yè)務(wù)的重要意義,提高了工作效率,更加靈活。
游戲擁有很大的數(shù)據(jù)信息,下一步可以通過基本的數(shù)據(jù)統(tǒng)計進(jìn)行數(shù)據(jù)挖掘,分析用戶的行為模型,為游戲的發(fā)展戰(zhàn)略提供數(shù)據(jù)指導(dǎo),具有更深的意義。
[1]張屹峰.基于LAMP的網(wǎng)站后臺管理系統(tǒng)的設(shè)計與實現(xiàn)[J].Computer Knowledge Technology,2011,7(8):1780-1782.
[2]羅力華,姜建國.網(wǎng)站后臺管理系統(tǒng)的用戶權(quán)限管理的一種實現(xiàn)方案[J].電子科技,2006年第10期.
[3]胡敏.Web系統(tǒng)下提高M(jìn)ySQL數(shù)據(jù)庫安全性的研究與實現(xiàn)[D].北京郵電大學(xué)碩士論文,2015.
[4]潘銳.Web服務(wù)安全策略研究[M].北京,人民部電出版社,2003.
[5]Williams H E,Lane D.PHP & MySQL Web數(shù)據(jù)庫應(yīng)用開發(fā)指南[M].南京大學(xué)出版社,2006.
[6]吳滄舟,蘭逸正,張輝.基于MySQL數(shù)據(jù)庫的優(yōu)化[J].電子科技,2013年09期.
(責(zé)任編輯:馬玉鳳)
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-),男(漢族),山東滕州人,中國傳媒大學(xué)碩士研究生.E-mail:1135444595@qq.com
TP399
文章編號:1673-4793(2016)05-0062-05