傅梓煥 朱曉鳳 曾鐘渝 馬羨明
(廣州大學(xué)華軟軟件學(xué)院,廣東 廣州 510990)
基于多數(shù)可變規(guī)則的校內(nèi)交友平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)
傅梓煥 朱曉鳳 曾鐘渝 馬羨明
(廣州大學(xué)華軟軟件學(xué)院,廣東 廣州 510990)
本文詳細(xì)分析了基于多數(shù)可變規(guī)則的校內(nèi)交友平臺(tái)的設(shè)計(jì)。此平臺(tái)為在校生在線上匯聚交友信息,在線下進(jìn)行社交活動(dòng),主要使用java、SQL、PHP等編程語(yǔ)言開(kāi)發(fā),運(yùn)行于安卓系統(tǒng)中。
PHP;安卓;Yii框架;校內(nèi)交友
本設(shè)計(jì)將打造一個(gè)健康、活躍的校內(nèi)陌生人社交平臺(tái)。與其他陌生人社交不同的是,本平臺(tái)有“多規(guī)則”、O2O、更安全、更健康等幾大特點(diǎn)?!岸嘁?guī)則”是指本平臺(tái)針對(duì)在校學(xué)生的特點(diǎn)推出的必須具有連接用戶線上與線下社交的多種社交活動(dòng)規(guī)則,這些規(guī)則是不定期更新的,是用戶自選的。“O2O”的特點(diǎn)是建立在“多規(guī)則”的特點(diǎn)之上?!案踩笔侵副酒脚_(tái)所有用戶必須經(jīng)過(guò)實(shí)名認(rèn)證才能正常使用,用戶通過(guò)平臺(tái)與校園教務(wù)系統(tǒng)對(duì)接,可通過(guò)教務(wù)系統(tǒng)進(jìn)行實(shí)名驗(yàn)證和資料對(duì)接?!案】怠笔侵概c其他陌生人社交應(yīng)用離不開(kāi)“約炮”等形象的不同,本平臺(tái)要打造的是綠色健康的陌生人社交品牌。
本平臺(tái)分為面向用戶的移動(dòng)前端和面向平臺(tái)管理員的后臺(tái)服務(wù)器端。移動(dòng)前端運(yùn)行于安卓系統(tǒng)中,使用java語(yǔ)言進(jìn)行開(kāi)發(fā),而后臺(tái)服務(wù)器端使用PHP語(yǔ)言的Yii框架進(jìn)行開(kāi)發(fā),其中后臺(tái)采用阿里云的CentOS 6.5云服務(wù)器與Bmob后端云運(yùn)行。阿里云是一種簡(jiǎn)單高效、處理能力可彈性伸縮的計(jì)算服務(wù),可快速構(gòu)建更穩(wěn)定、安全的應(yīng)用,同時(shí)提升運(yùn)維效率,降低成本。Bmob后端云為專職于移動(dòng)后端開(kāi)發(fā)的服務(wù),具有安全高效等特點(diǎn)。在項(xiàng)目中的兩種服務(wù)器的配合中,Bmob后端云負(fù)責(zé)處理聊天與登錄注冊(cè)部分,阿里云負(fù)責(zé)處理規(guī)則活動(dòng)后臺(tái)管理等部分。在阿里云服務(wù)器中使用Apache、MySQL和PHP的組合進(jìn)行基礎(chǔ)環(huán)境搭建,此環(huán)境組合有著免費(fèi)開(kāi)源、相對(duì)高效易用的優(yōu)點(diǎn)。
3.1 主要功能模塊
根據(jù)需求分析,本平臺(tái)主要分為以下功能模塊:
(1)登錄注冊(cè)模塊,對(duì)用戶的身份進(jìn)行唯一區(qū)分;
(2)聯(lián)系人和會(huì)話模塊,用戶與用戶間的關(guān)系和會(huì)話;
(3)多規(guī)則活動(dòng)的選擇和顯示模塊,在應(yīng)用中顯示用戶選擇或系統(tǒng)默認(rèn)的活動(dòng)模塊,同時(shí)用戶通過(guò)該模塊選擇自己感興趣的規(guī)則活動(dòng);
(4)用戶實(shí)名認(rèn)證,即用戶與用戶所在學(xué)校的教務(wù)系統(tǒng)進(jìn)行綁定的模塊;
(5)管理員后臺(tái)管理模塊。
實(shí)現(xiàn)以上的所有功能都需要數(shù)據(jù)庫(kù)的支持,數(shù)據(jù)庫(kù)中含有多個(gè)表,見(jiàn)表1,分別對(duì)應(yīng)不同的功能,其中主要的數(shù)據(jù)表有:活動(dòng)規(guī)則表、活動(dòng)動(dòng)態(tài)表、用戶自選規(guī)則表、學(xué)校表、用戶表等。
表1 數(shù)據(jù)庫(kù)中部分?jǐn)?shù)據(jù)表的字段組成
此外,除了以上的功能外,還有其它的應(yīng)用功能,例如:找回密碼,附近的人,搜索好友,發(fā)布動(dòng)態(tài),資料修改等,但在本文不對(duì)這些功能進(jìn)行詳細(xì)的描述。
3.2 登錄注冊(cè)模塊
在登錄前需進(jìn)行用戶注冊(cè),本平臺(tái)在新用戶的注冊(cè)中使用最為簡(jiǎn)便的注冊(cè)方式,即在注冊(cè)界面輸入用戶名、密碼和重復(fù)密碼即可完成注冊(cè),但在注冊(cè)后需進(jìn)行資料的補(bǔ)充與身份的認(rèn)定(若無(wú)身份認(rèn)定則不能參與社交活動(dòng),只能瀏覽活動(dòng)列表)。注冊(cè)完成后為默認(rèn)為已登錄狀態(tài),運(yùn)行界面如圖1所示。
注冊(cè)的后臺(tái)業(yè)務(wù)處理放在Bmob后端云中,Bmob后端云處理完畢后將在后臺(tái)將數(shù)據(jù)與阿里云的數(shù)據(jù)進(jìn)行對(duì)接,即保持兩種服務(wù)器的用戶數(shù)據(jù)同步。在用戶二次登錄時(shí)也將檢驗(yàn)其數(shù)據(jù)是否在兩種服務(wù)器中已同步,以確保兩種服務(wù)器中用戶的數(shù)據(jù)相同,也防止其中一個(gè)服務(wù)的數(shù)據(jù)的丟失導(dǎo)致所有數(shù)據(jù)丟失的情況的發(fā)生。
3.3 聯(lián)系人和會(huì)話模塊
聯(lián)系人和會(huì)話模塊包括添加好友、搜索好友、尋找附近的人、加入黑名單、查看用戶資料等應(yīng)用功能。
此模塊為基礎(chǔ)的社交功能模塊,為主要的多規(guī)則社交提供基礎(chǔ)的交流方式。為使會(huì)話功能與多規(guī)則社交模塊保持獨(dú)立,并在服務(wù)器出現(xiàn)宕機(jī)或者被入侵時(shí)不會(huì)受到相互牽連,我們將會(huì)話和聯(lián)系人的模塊與登錄注冊(cè)模塊一起放在Bmob后端云中。但這里的會(huì)話數(shù)據(jù)只放在Bmob后端云中,僅做備份處理,不與阿里云同步,運(yùn)行界面如圖2所示。
圖1 登錄界面示意圖
圖2 聯(lián)系人界面示意圖
3.4 多規(guī)則活動(dòng)的選擇和顯示模塊
此模塊是本平臺(tái)最核心的模塊,實(shí)現(xiàn)本平臺(tái)的特色社交方式。此過(guò)程有多個(gè)步驟,流程如下:
(1)用戶注冊(cè)。為加強(qiáng)用戶線下社交的安全性,在本平臺(tái)中未登錄的游客或未實(shí)名認(rèn)證的用戶只能進(jìn)入本平臺(tái)默認(rèn)放在主頁(yè)的六個(gè)規(guī)則活動(dòng)列表,但不能參與社交活動(dòng),且不能發(fā)布社交活動(dòng)。
(2)登錄平臺(tái)。
(3)首次登錄后可進(jìn)行兩種操作:
1)首次登錄后可進(jìn)行實(shí)名認(rèn)證,初期的實(shí)名認(rèn)證僅限于對(duì)接該用戶所在的校園的教務(wù)系統(tǒng)進(jìn)行認(rèn)證;
2)首次登錄后將進(jìn)行主頁(yè)的六個(gè)用戶自選的社交活動(dòng)規(guī)則的選擇,也可以不選擇。若不選擇則主頁(yè)將會(huì)顯示系統(tǒng)默認(rèn)的六個(gè)社交活動(dòng)規(guī)則。
(1)用戶選擇某個(gè)活動(dòng)規(guī)則,進(jìn)入該規(guī)則頁(yè)面,社交規(guī)則顯示頁(yè)面如圖3所示。。
(2)若成功進(jìn)行實(shí)名認(rèn)證進(jìn)入之后可進(jìn)行兩種操作(若未進(jìn)行實(shí)名認(rèn)證則必須返回進(jìn)行實(shí)名認(rèn)證),用戶參與或發(fā)布社交活動(dòng)的流程如圖4所示:
1)發(fā)布符合該規(guī)則的社交活動(dòng);
2)參與自己感興趣的其他用戶發(fā)布的社交活動(dòng)。
在多規(guī)則這一模塊中,多規(guī)則的提供是由后臺(tái)管理人員完成,后臺(tái)管理人員提供多種多樣的符合線上與線下相結(jié)合的社交活動(dòng)規(guī)則,供用戶選擇,但用戶只能選擇六個(gè)社交活動(dòng)規(guī)則放在主頁(yè)中。用戶選擇社交活動(dòng)規(guī)則后將改變用戶規(guī)則表中的六個(gè)字段的值,當(dāng)用戶登錄本平臺(tái)的應(yīng)用時(shí),應(yīng)用將自動(dòng)獲取用戶選擇后的規(guī)則活動(dòng)放置在主頁(yè)中。
圖3 用戶選擇后的社交規(guī)則顯示頁(yè)面
圖4 用戶參與或發(fā)布社交 活動(dòng)的流程
3.5 用戶實(shí)名認(rèn)證模塊
本平臺(tái)面向的人群是校園用戶,所以在實(shí)名認(rèn)證上,我們采取的是與高校教務(wù)學(xué)生管理系統(tǒng)對(duì)接來(lái)獲取用戶的真實(shí)資料,這不單是為用戶的真實(shí)性做一定的保證,還是保證用戶的資料符合社交平臺(tái)的資料需求。
在與高校教務(wù)系統(tǒng)對(duì)接上,我們使用PHP的CURL系列函數(shù)爬取教務(wù)系統(tǒng)的網(wǎng)頁(yè)數(shù)據(jù)以及驗(yàn)證學(xué)生賬號(hào)的正誤。
用戶在個(gè)人資料頁(yè)面點(diǎn)擊“綁定學(xué)號(hào)”按鈕,進(jìn)而系統(tǒng)會(huì)彈出綁定學(xué)號(hào)的彈框。用戶需選擇自己學(xué)校所在的省市后再選擇自己所在的學(xué)校,最后進(jìn)行學(xué)號(hào)與密碼的輸入并點(diǎn)擊確定按鈕,若用戶輸入的學(xué)號(hào)和密碼輸入正確,則綁定成功,若輸入的學(xué)號(hào)和密碼有誤則需重新輸入。
一個(gè)用戶賬號(hào)只能綁定一個(gè)學(xué)生學(xué)號(hào),一個(gè)學(xué)生的學(xué)號(hào)也只能被一個(gè)用戶賬號(hào)綁定,且綁定后不能更改。
系統(tǒng)綁定學(xué)號(hào)的界面如圖5所示。
圖5 綁定學(xué)號(hào)界面示意圖
3.6 后臺(tái)管理模塊
后臺(tái)管理模塊的功能主要為數(shù)據(jù)庫(kù)中的數(shù)據(jù)的管理,即對(duì)數(shù)據(jù)表進(jìn)行“增刪查改”的操作。后臺(tái)管理模塊分為:用戶管理、視圖管理、動(dòng)態(tài)管理、學(xué)校管理、系統(tǒng)管理。
在進(jìn)入后臺(tái)管理模塊前,需進(jìn)行管理員賬號(hào)登錄驗(yàn)證,登錄成功后才可進(jìn)入后臺(tái)管理界面。后臺(tái)管理模塊對(duì)超鏈接有過(guò)濾作用,即無(wú)法通過(guò)超鏈接直接進(jìn)入管理界面,只有登錄成功后才可進(jìn)入后臺(tái)管理主頁(yè)面。
用戶管理為查看用戶的所有信息(用戶密碼為密文),并且對(duì)用戶進(jìn)行增刪操作,對(duì)應(yīng)的操作是對(duì)數(shù)據(jù)庫(kù)中的用戶表數(shù)據(jù)進(jìn)行增刪查改。
視圖管理為應(yīng)用中的動(dòng)態(tài)圖片管理,例如首頁(yè)的輪播圖片管理,對(duì)應(yīng)的操作是對(duì)數(shù)據(jù)庫(kù)中的圖片表數(shù)據(jù)的增刪查改。
動(dòng)態(tài)管理為管理用戶在本平臺(tái)發(fā)布的動(dòng)態(tài),在動(dòng)態(tài)管理中可對(duì)用戶發(fā)布的動(dòng)態(tài)進(jìn)行刪除操作。對(duì)應(yīng)的操作是活動(dòng)動(dòng)態(tài)表數(shù)據(jù)的刪除。
學(xué)校管理為管理學(xué)校的數(shù)據(jù),對(duì)應(yīng)的操作是學(xué)校表的增刪查改。
系統(tǒng)管理為管理系統(tǒng)管理員的賬號(hào)信息,對(duì)應(yīng)的操作是管理員表的增刪查改。
后臺(tái)管理中心界面如圖6所示。
圖6 后臺(tái)管理中心界面示意圖
4.1 面向?qū)ο笈cMVC架構(gòu)
本系統(tǒng)的動(dòng)態(tài)部分采用PHP的Yii框架編寫(xiě)。Yii框架是一個(gè)純面向?qū)ο蟮目蚣?,同時(shí)所有采用Yii開(kāi)發(fā)的應(yīng)用都使用MVC架構(gòu)。
面向?qū)ο蟮姆椒ㄊ遣捎脴?gòu)造模型的觀點(diǎn),在系統(tǒng)的開(kāi)發(fā)過(guò)程中,各個(gè)步驟的共同的目標(biāo)是建造一個(gè)問(wèn)題域的模型。在面向?qū)ο蟮脑O(shè)計(jì)中,初始元素是對(duì)象,然后將具有共同特征的對(duì)象歸納成類,組織類之間的等級(jí)關(guān)系,構(gòu)造類庫(kù)。在應(yīng)用時(shí),在類庫(kù)中選擇相應(yīng)的類[1]。
所有Yii應(yīng)用是使用模型-視圖-控制器(MVC)架構(gòu),Yii強(qiáng)制這種開(kāi)發(fā)模式,通過(guò)提供一個(gè)放置MVC代碼的位置,最大限度地減少重復(fù),并有助于代碼的重用性和可維護(hù)性。編寫(xiě)越少的代碼,則需要的時(shí)間就越少,應(yīng)用程序?qū)②A得市場(chǎng)。同樣,越容易維護(hù)的應(yīng)用程序,留在市場(chǎng)的時(shí)間就越長(zhǎng)[2]。
4.2 Session管理
在計(jì)算機(jī)專業(yè)術(shù)語(yǔ)中,Session是指一個(gè)終端用戶與交互系統(tǒng)進(jìn)行通信的時(shí)間間隔,通常指從注冊(cè)進(jìn)入系統(tǒng)到注銷退出系統(tǒng)之間所經(jīng)過(guò)的時(shí)間。因此,Session實(shí)際上是一個(gè)特定的時(shí)間概念[3]。
當(dāng)用戶登錄進(jìn)入本平臺(tái)應(yīng)用后,后臺(tái)將創(chuàng)建一個(gè)唯一的Session(會(huì)話),在用戶注銷登錄之前,用戶在應(yīng)用中的所有短鏈接的操作都需通過(guò)該Session來(lái)記錄信息與辨別用戶信息。用戶每次登錄都將產(chǎn)生一個(gè)唯一的Session,每次登錄所產(chǎn)生的Session都不相同,直到用戶注銷登錄或者該Session超過(guò)系統(tǒng)所設(shè)定的Session的存活期時(shí)將會(huì)刪除該Session,則該Session的生命周期結(jié)束。
本文所介紹的校內(nèi)交友平臺(tái)旨在減少陌生人社交的危險(xiǎn)性,減弱網(wǎng)絡(luò)虛擬社交,加強(qiáng)線下的真實(shí)社交,給予學(xué)生一個(gè)更健康更安全的社交平臺(tái)。
本文從平臺(tái)設(shè)計(jì)的概念與部分系統(tǒng)實(shí)現(xiàn)上敘述平臺(tái)的實(shí)現(xiàn),從中探討了平臺(tái)應(yīng)用的前后臺(tái)關(guān)鍵部分的實(shí)現(xiàn)和其中的關(guān)鍵技術(shù)。但本平臺(tái)的實(shí)現(xiàn)成果中還存在著許多不足之處,本平臺(tái)將不斷地補(bǔ)充、修正和完善。
[1]Stanley B.Lippman,Josee Lajoie,Barbara E.Moo.C++ Primer[M].北京:人民郵電出版社,2010.
[2]杰費(fèi)里·溫西特.應(yīng)用Yii1.1和PHP5進(jìn)行敏捷Web開(kāi)發(fā)[M].Leanpub,2013.
[3]馬駿.PHP應(yīng)用開(kāi)發(fā)與實(shí)踐[M].北京:人民郵電出版社,2012.
Analysis and Design of the Campus Dating Platform Based on Majority Variable Rules
Fu Zihuan Zhu Xiaofeng Zeng Zhongyu Ma Xianming
(South China Institute of Software Engineering.GU,Guangzhou 510990,Guangdong)
This article analyzes the design of the campus dating platform which is based on majority variable rules.This platform collects dating information online and takes an activity offline for students.It develops using java,SQL and PHP programming language and runs on android.
PHP develop;Android;Yii framework;make friends at school
TP311.52
A
1008-6609(2015)11-0073-04
傅梓煥,男,廣東汕尾人,本科,研究方向:企業(yè)級(jí)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)。