于詩宇+侯祝平
摘 要:目前,在國內(nèi)外交互網(wǎng)站領(lǐng)域涌現(xiàn)了許多成功的案例,例如:Facebook、twitter、新浪微博等等。但是,這些交互網(wǎng)站對巨大的用戶基數(shù)來說有一個共同的缺憾,那就是它們大都僅僅提供了單一的用戶交流渠道,而并沒有提供與用戶息息相關(guān)、關(guān)乎用戶切身需要的活動平臺。自2009年,隨著Apple IOS、Google Android等智能移動手機平臺的發(fā)布,移動客戶端以其便捷性和及時性大大削弱了普通電腦在人們?nèi)粘I钪械闹匾?。攜程結(jié)伴系統(tǒng)使用Android+Eclipse+MySQL開發(fā),該系統(tǒng)植根于移動端平臺的、具有專門交互功能的系統(tǒng)已經(jīng)成為一種迫切的需求,是為解決以上交互需求問題提出的一種解決方案。
關(guān)鍵詞:攜程-結(jié)伴系統(tǒng) 交互系統(tǒng) 移動開發(fā) java MySQL Android
中圖分類號:TP393 文獻標(biāo)識碼:A 文章編號:1674-098X(2014)09(b)-0049-02
交互系統(tǒng)是基于網(wǎng)絡(luò)平臺的廣泛性、互通性、娛樂性、經(jīng)濟性、安全性等優(yōu)點,于本世紀(jì)初出現(xiàn)在網(wǎng)絡(luò)交流方式中的互動型服務(wù)系統(tǒng)。網(wǎng)絡(luò)交互較之其它交互方式更加經(jīng)濟、安全、健康?,F(xiàn)在的上網(wǎng)條件非常的便利。網(wǎng)上交互大多以開展文字、音頻、視頻聊天為主,無須現(xiàn)實中產(chǎn)生具體交互。網(wǎng)絡(luò)交友因其所進行的活動都是通過網(wǎng)絡(luò)進行,很大程度減少了網(wǎng)絡(luò)之外的交友開銷,因此是種的開銷的交友方式?,F(xiàn)在也有很多交友網(wǎng)站開始推出一些各自的特色功能,讓用戶在網(wǎng)上交友的同時能通過更直觀的了解到對方,提高了交互網(wǎng)站用戶的體驗和交友成功率。交互網(wǎng)站的市場競爭已然很激烈,接近白熱化,若想有長遠的發(fā)展必須朝著門戶式、多元化方向發(fā)展。
1 系統(tǒng)的設(shè)計目標(biāo)
攜程-結(jié)伴系統(tǒng)是專門針對已有的交互及交友網(wǎng)站的不足而開發(fā)的組織線下活動的系統(tǒng)。由于其設(shè)計之初就是針對現(xiàn)有交互系統(tǒng)的不足之處開發(fā)的,所以,攜程-結(jié)伴系統(tǒng)能更好的解決用戶線上交友、線下活動的需求,本系統(tǒng)設(shè)計就是為了方便用戶網(wǎng)上聯(lián)絡(luò)、方便用戶更好的參與活動。本系統(tǒng)補充了用戶自主聯(lián)系他人的單一聯(lián)系方式,提供了詳盡的信息發(fā)布平臺和便捷的溝通紐帶。其中包括用戶發(fā)布Together、用戶瀏覽其他用戶發(fā)布的Together由這兩個功能實現(xiàn)用戶的基本交流。用戶發(fā)布Together將自己組織的活動公布于眾,這是本系統(tǒng)主要的信息公布功能,也是本系統(tǒng)用戶展現(xiàn)自己的主要渠道,而與之相對應(yīng)的就是系統(tǒng)其他用戶瀏覽Together,用戶通過瀏覽他人發(fā)布的Together來尋找志同道合的人,基于此兩項基本功能用戶初步完成了信息的交互。
攜程-結(jié)伴系統(tǒng)是基于移動客戶端的C/S架構(gòu)系統(tǒng),由于Android手機性能參差不齊,Android系統(tǒng)本身又碎片化嚴重,所以這就要求客戶端系統(tǒng)占用系統(tǒng)資源少,并且,能適配Android 2.3版本及其以上的較低版本,以服務(wù)更廣大的用戶群。
2 系統(tǒng)功能整體設(shè)計
2.1 用戶模塊
2.1.1 用戶注冊
在本模塊,用戶實現(xiàn)注冊系統(tǒng),這是用戶實現(xiàn)登錄攜程-結(jié)伴系統(tǒng)的先決條件,只有用戶通過注冊才能獲得系統(tǒng)承認的唯一標(biāo)識,已進行余后的系統(tǒng)操作和享受系統(tǒng)其他服務(wù)。為了防止用戶注冊時個人敏感信息,如:用戶郵箱、用戶手機、密碼等在網(wǎng)絡(luò)中明碼傳送本模塊將對用戶注冊數(shù)據(jù)進行封裝,并通過POST方式上傳至網(wǎng)絡(luò)服務(wù)器。在本模塊中系統(tǒng)將對用戶提交的注冊信息進行驗證和檢查,只用用戶提交的信息符合系統(tǒng)的格式和內(nèi)容要求注冊才會成功,系統(tǒng)中將保留用戶注冊的信息并產(chǎn)生用戶對應(yīng)本系統(tǒng)的唯一標(biāo)識以備系統(tǒng)其他功能和服務(wù)調(diào)用。至此用戶注冊模塊完畢。
2.1.2 用戶登錄
用戶在完成注冊這個先決條件后才擁有登錄攜程-結(jié)伴系統(tǒng)的資格,登錄界面將是用戶面對的第一個系統(tǒng)界面,用戶需要正確填寫系統(tǒng)注冊時填寫的用戶郵箱和密碼并選擇相對應(yīng)的用戶權(quán)限進行登錄,同樣,本模塊也涉及用戶的敏感個人信息,如:用戶郵箱、用戶密碼。為了防止用戶個人信息在網(wǎng)絡(luò)中進行明碼傳送,系統(tǒng)將對本模塊產(chǎn)生的數(shù)據(jù)進行封裝并采用POST方式上傳數(shù)據(jù)庫進行用戶登錄驗證,網(wǎng)絡(luò)服務(wù)端在驗證通過后將數(shù)據(jù)返回至View層以供手機客戶端獲取,手機客戶端在獲取登錄返回值后解析返回數(shù)據(jù)等到用戶登錄結(jié)果,以決定是否允許用戶登錄,此時系統(tǒng)將保留用戶登錄的ID以備系統(tǒng)其他服務(wù)和功能調(diào)用。至此用戶登錄模塊完畢。
2.1.3 修改個人信息
在此模塊用戶可以修改除了注冊時填寫的E-mail之外可以修改任何其他個人信息,用戶E-mail注冊時一經(jīng)填寫將不得再修改,這樣才能保證系統(tǒng)的安全與穩(wěn)定。
2.2 Together模塊
2.2.1 Together瀏覽
這是用戶登錄攜程-結(jié)伴系統(tǒng)成功后,與用戶進行交互的第一個界面,在這個功能模塊上將集合系統(tǒng)所能提供的大部分服務(wù)與功能。用戶瀏覽其他系統(tǒng)發(fā)布的Together信息并在用戶選擇某條信息后出示本條信息的詳細內(nèi)容以供用戶判斷和決策是否是自己需要的交互內(nèi)容,為用戶以后選擇是否加入本Together提供判斷依據(jù)。本模塊不涉及用戶的隱私內(nèi)容所以需要做到盡量以最少的數(shù)據(jù)流量傳送更多的有價值的信息,較之于XML格式數(shù)據(jù)傳送,我們選用了JSON格式,它擁有更少的信息流量消耗和解析數(shù)據(jù)流系統(tǒng)資源消耗,雖然信息未經(jīng)編碼,但是仍能滿足安全性需求。這樣就在安全性和實用性上做到了平衡。
2.2.2 用戶Together發(fā)布
Together發(fā)布模塊是系統(tǒng)用戶發(fā)布信息與其他用戶產(chǎn)生交互的主要途徑,在本模塊用戶需要按照系統(tǒng)約定的Together模式發(fā)布自己的Together信息,Together信息一經(jīng)發(fā)布即刻生效,系統(tǒng)將在第一時間將用戶發(fā)布的Together信息輸出到每一個系統(tǒng)用戶的手機上,做到隨時隨地共享Together信息。由于本模塊不需要較高的安全性并且要求較高的及時性所以本模塊依然采用GET方式請求與解析JSON數(shù)據(jù)開發(fā),以滿足用戶對時效的需求。用戶在填寫完成Together并上傳成功后,系統(tǒng)將返回Together發(fā)布情況結(jié)果以告知用戶Together信息發(fā)布結(jié)果和當(dāng)前系統(tǒng)狀態(tài)。至此Together發(fā)布模塊結(jié)束。endprint
2.2.3 加入Together
用戶在瀏覽其他用戶發(fā)布的Together信息后,已經(jīng)發(fā)現(xiàn)志同道合的Together信息就可以進行加入操作,系統(tǒng)將判斷此用戶是否有加入的權(quán)限并在用戶提交加入請求后返回加入結(jié)果以告知用戶。系統(tǒng)對開放聯(lián)系方式的Together發(fā)布者一并返回此Together發(fā)布者的聯(lián)系方式以便發(fā)起者和進行線下交互。Together模塊還將將用戶的加入信息存入數(shù)據(jù)庫以備其他查詢模塊調(diào)用。至此用戶加入Together模塊完畢。
2.2.4 Together留言
用戶在瀏覽其他用戶發(fā)布的Together信息后可以對此Together發(fā)布留言詢問相關(guān)內(nèi)容等,方便系統(tǒng)用戶交流。
2.3 管理員模塊
管理員模塊分為用戶賬號管理和Together信息管理。包含了這兩個系統(tǒng)信息的基本管理功能。
2.3.1 用戶賬號管理
主要實現(xiàn)對違規(guī)用戶的刪除。管理員一經(jīng)發(fā)現(xiàn)用戶發(fā)布的Together涉嫌違反法律法規(guī)以及用戶服務(wù)條款協(xié)議的,就有權(quán)對該用戶賬號進行刪除并在后臺級聯(lián)刪除用戶之前發(fā)布的一切信息進行刪除,實現(xiàn)此功能就保證了系統(tǒng)的和諧與穩(wěn)定,對用戶日常使用本系統(tǒng)帶來便利,并有效杜絕虛假和垃圾信息對用戶造成的不良影響。
2.3.2 Together信息管理
Together信息管理主要包括對用戶發(fā)布不合乎規(guī)定的信息的刪除,管理員在此有權(quán)視其發(fā)布者違規(guī)情節(jié)輕重決定:(1)只刪除此條Together信息。(2)刪除此條Together信息發(fā)布者并級聯(lián)刪除此人發(fā)布的一切信息。這是在保護用戶享有本系統(tǒng)提供的服務(wù)的情況下盡可能的保證本系統(tǒng)的干凈和用戶獲取信息時的高效。
2.4 好友模塊
好友管理模塊分為添加好友、刪除好友與特別關(guān)注好友Together,這三個主要功能。
2.4.1 添加好友
用戶在瀏覽其他用戶發(fā)布的Together如果發(fā)現(xiàn)其發(fā)布者甚合心意確為志同道合之人,這就完成了系統(tǒng)設(shè)計的首要需求。這時就可以發(fā)起加此人為好友的申請,該申請信息將上傳至系統(tǒng)服務(wù)器。系統(tǒng)在響應(yīng)到用戶加好友的申請時,將進行審核和邏輯處理,若審核通過就將計入后臺數(shù)據(jù)庫完成用戶加好友的請求,此時服務(wù)器返回對用戶該請求的處理結(jié)果已告知用戶。
2.4.2 刪除好友
用戶在添加好友后可以隨時刪除好友,刪除好友完全是用戶自主行為,其他任何人包括管理員不得干預(yù),系統(tǒng)在響應(yīng)到用戶刪除好友的請求后,將在數(shù)據(jù)庫刪除其與該用戶的好友關(guān)系,系統(tǒng)將返回對該請求的處理結(jié)果,完成刪除好友的功能。
2.4.3 特別關(guān)注好友Together
用戶一經(jīng)添加其他用戶為好友后,系統(tǒng)將自動為其添加好友Together特別關(guān)注,用戶只要在特別關(guān)注界面查看Together信息,系統(tǒng)將在第一時間進行好友Together的推送,方便用戶茫茫人海中更快捷的接收到志同道合的人發(fā)送的信息,方便用戶的交流。攜程-結(jié)伴系統(tǒng)的功能模塊如圖1所示。
3 數(shù)據(jù)庫設(shè)計
3.1 數(shù)據(jù)庫表結(jié)構(gòu)
良好的數(shù)據(jù)庫設(shè)計會使一個優(yōu)秀的系統(tǒng)如虎添翼,無論在效率上還是在安全上都會得到巨大的提升,所以在本系統(tǒng)數(shù)據(jù)庫表設(shè)計之初我們就考慮到了將數(shù)據(jù)庫規(guī)范模式應(yīng)用到本系統(tǒng)中。攜程-結(jié)伴系統(tǒng)中的數(shù)據(jù)庫表以按照3NF范式規(guī)范建立,數(shù)據(jù)庫表中既不包含傳遞依賴也不包含部分依賴,做到減少插入異常、刪除異常和更新異常,保證數(shù)據(jù)庫安全平穩(wěn)運行。
3.2 存儲過程設(shè)計
為了實現(xiàn)更高效的后臺數(shù)據(jù)處理和更安全的數(shù)據(jù)庫操作,我們在后臺數(shù)據(jù)庫創(chuàng)建了完善的存儲過程機制,利用存儲過程可以用于降低網(wǎng)絡(luò)流量,存儲過程代碼直接存儲于數(shù)據(jù)庫中,所以不會產(chǎn)生大量T-sql語句的代碼流量。使用存儲過程能夠增強對執(zhí)行計劃的重復(fù)使用,由此可以通過使用遠程過程調(diào)用(RPC)處理服務(wù)器上的存儲過程而提高性能。存儲過程可維護性高,更新存儲過程通常比更改、測試以及重新部署程序集需要較少的時間和精力并且使代碼精簡一致,一個存儲過程可以用于應(yīng)用程序代碼的不同位置。其次存儲過程能增強數(shù)據(jù)庫及系統(tǒng)安全性,
通過向用戶授予對存儲過程(而不是基于表)的訪問權(quán)限,它們可以提供對特定數(shù)據(jù)的訪問;提高代碼安全,防止SQL注入。因此我們在攜程-結(jié)伴系統(tǒng)中大量的使用了存儲過程處理數(shù)據(jù)庫數(shù)據(jù)。
4 結(jié)語
該系統(tǒng)客戶端平臺為面向Android的移動端開發(fā),服務(wù)端為基于JavaEE的服務(wù)器端開發(fā)。其中Android平臺運用了Java語言開發(fā)并集合了Android所提供的ADK,但系統(tǒng)并不局限于封裝層的ADK而是在底層重構(gòu)了HTTP協(xié)議等模塊,這樣就從根本上使每個模塊都恰當(dāng)?shù)倪m應(yīng)本系統(tǒng)的特定需求,大大提高了系統(tǒng)的性能。在服務(wù)端實現(xiàn)了MVC架構(gòu)并運用了工廠模式、單例模式等設(shè)計模式實現(xiàn)了良好的程序擴展性和低耦合性,甚至代碼不需要做過多修改就可以在不同種類的數(shù)據(jù)庫、服務(wù)器上部署,這樣的設(shè)計達到了易于使用便于修改的目的。
參考文獻
[1] 呂海東,張坤.JavaEE企業(yè)級應(yīng)用開發(fā)實例教程[M].北京:清華大學(xué)出版社,2010:45-167.
[2] 葉達峰.Eclipse編程技術(shù)與實例[M].北京:人民郵電出版社,2006:134.
[3] 王永貴.Java高級框架(Struts2+Spring
+Hibernate)應(yīng)用開發(fā)案例教程[M].北京:清華大學(xué)出版社,2012:35-266.
[4] 佘志龍,陳昱勛,鄭名杰,等.Google Android SDK開發(fā)范例大全[M].3版,北京:清華大學(xué)出版社,2012:45-90.
[5] 鄧凡平.深入理解Android[M].北京:機械工業(yè)出版社,2012:50-126.endprint
2.2.3 加入Together
用戶在瀏覽其他用戶發(fā)布的Together信息后,已經(jīng)發(fā)現(xiàn)志同道合的Together信息就可以進行加入操作,系統(tǒng)將判斷此用戶是否有加入的權(quán)限并在用戶提交加入請求后返回加入結(jié)果以告知用戶。系統(tǒng)對開放聯(lián)系方式的Together發(fā)布者一并返回此Together發(fā)布者的聯(lián)系方式以便發(fā)起者和進行線下交互。Together模塊還將將用戶的加入信息存入數(shù)據(jù)庫以備其他查詢模塊調(diào)用。至此用戶加入Together模塊完畢。
2.2.4 Together留言
用戶在瀏覽其他用戶發(fā)布的Together信息后可以對此Together發(fā)布留言詢問相關(guān)內(nèi)容等,方便系統(tǒng)用戶交流。
2.3 管理員模塊
管理員模塊分為用戶賬號管理和Together信息管理。包含了這兩個系統(tǒng)信息的基本管理功能。
2.3.1 用戶賬號管理
主要實現(xiàn)對違規(guī)用戶的刪除。管理員一經(jīng)發(fā)現(xiàn)用戶發(fā)布的Together涉嫌違反法律法規(guī)以及用戶服務(wù)條款協(xié)議的,就有權(quán)對該用戶賬號進行刪除并在后臺級聯(lián)刪除用戶之前發(fā)布的一切信息進行刪除,實現(xiàn)此功能就保證了系統(tǒng)的和諧與穩(wěn)定,對用戶日常使用本系統(tǒng)帶來便利,并有效杜絕虛假和垃圾信息對用戶造成的不良影響。
2.3.2 Together信息管理
Together信息管理主要包括對用戶發(fā)布不合乎規(guī)定的信息的刪除,管理員在此有權(quán)視其發(fā)布者違規(guī)情節(jié)輕重決定:(1)只刪除此條Together信息。(2)刪除此條Together信息發(fā)布者并級聯(lián)刪除此人發(fā)布的一切信息。這是在保護用戶享有本系統(tǒng)提供的服務(wù)的情況下盡可能的保證本系統(tǒng)的干凈和用戶獲取信息時的高效。
2.4 好友模塊
好友管理模塊分為添加好友、刪除好友與特別關(guān)注好友Together,這三個主要功能。
2.4.1 添加好友
用戶在瀏覽其他用戶發(fā)布的Together如果發(fā)現(xiàn)其發(fā)布者甚合心意確為志同道合之人,這就完成了系統(tǒng)設(shè)計的首要需求。這時就可以發(fā)起加此人為好友的申請,該申請信息將上傳至系統(tǒng)服務(wù)器。系統(tǒng)在響應(yīng)到用戶加好友的申請時,將進行審核和邏輯處理,若審核通過就將計入后臺數(shù)據(jù)庫完成用戶加好友的請求,此時服務(wù)器返回對用戶該請求的處理結(jié)果已告知用戶。
2.4.2 刪除好友
用戶在添加好友后可以隨時刪除好友,刪除好友完全是用戶自主行為,其他任何人包括管理員不得干預(yù),系統(tǒng)在響應(yīng)到用戶刪除好友的請求后,將在數(shù)據(jù)庫刪除其與該用戶的好友關(guān)系,系統(tǒng)將返回對該請求的處理結(jié)果,完成刪除好友的功能。
2.4.3 特別關(guān)注好友Together
用戶一經(jīng)添加其他用戶為好友后,系統(tǒng)將自動為其添加好友Together特別關(guān)注,用戶只要在特別關(guān)注界面查看Together信息,系統(tǒng)將在第一時間進行好友Together的推送,方便用戶茫茫人海中更快捷的接收到志同道合的人發(fā)送的信息,方便用戶的交流。攜程-結(jié)伴系統(tǒng)的功能模塊如圖1所示。
3 數(shù)據(jù)庫設(shè)計
3.1 數(shù)據(jù)庫表結(jié)構(gòu)
良好的數(shù)據(jù)庫設(shè)計會使一個優(yōu)秀的系統(tǒng)如虎添翼,無論在效率上還是在安全上都會得到巨大的提升,所以在本系統(tǒng)數(shù)據(jù)庫表設(shè)計之初我們就考慮到了將數(shù)據(jù)庫規(guī)范模式應(yīng)用到本系統(tǒng)中。攜程-結(jié)伴系統(tǒng)中的數(shù)據(jù)庫表以按照3NF范式規(guī)范建立,數(shù)據(jù)庫表中既不包含傳遞依賴也不包含部分依賴,做到減少插入異常、刪除異常和更新異常,保證數(shù)據(jù)庫安全平穩(wěn)運行。
3.2 存儲過程設(shè)計
為了實現(xiàn)更高效的后臺數(shù)據(jù)處理和更安全的數(shù)據(jù)庫操作,我們在后臺數(shù)據(jù)庫創(chuàng)建了完善的存儲過程機制,利用存儲過程可以用于降低網(wǎng)絡(luò)流量,存儲過程代碼直接存儲于數(shù)據(jù)庫中,所以不會產(chǎn)生大量T-sql語句的代碼流量。使用存儲過程能夠增強對執(zhí)行計劃的重復(fù)使用,由此可以通過使用遠程過程調(diào)用(RPC)處理服務(wù)器上的存儲過程而提高性能。存儲過程可維護性高,更新存儲過程通常比更改、測試以及重新部署程序集需要較少的時間和精力并且使代碼精簡一致,一個存儲過程可以用于應(yīng)用程序代碼的不同位置。其次存儲過程能增強數(shù)據(jù)庫及系統(tǒng)安全性,
通過向用戶授予對存儲過程(而不是基于表)的訪問權(quán)限,它們可以提供對特定數(shù)據(jù)的訪問;提高代碼安全,防止SQL注入。因此我們在攜程-結(jié)伴系統(tǒng)中大量的使用了存儲過程處理數(shù)據(jù)庫數(shù)據(jù)。
4 結(jié)語
該系統(tǒng)客戶端平臺為面向Android的移動端開發(fā),服務(wù)端為基于JavaEE的服務(wù)器端開發(fā)。其中Android平臺運用了Java語言開發(fā)并集合了Android所提供的ADK,但系統(tǒng)并不局限于封裝層的ADK而是在底層重構(gòu)了HTTP協(xié)議等模塊,這樣就從根本上使每個模塊都恰當(dāng)?shù)倪m應(yīng)本系統(tǒng)的特定需求,大大提高了系統(tǒng)的性能。在服務(wù)端實現(xiàn)了MVC架構(gòu)并運用了工廠模式、單例模式等設(shè)計模式實現(xiàn)了良好的程序擴展性和低耦合性,甚至代碼不需要做過多修改就可以在不同種類的數(shù)據(jù)庫、服務(wù)器上部署,這樣的設(shè)計達到了易于使用便于修改的目的。
參考文獻
[1] 呂海東,張坤.JavaEE企業(yè)級應(yīng)用開發(fā)實例教程[M].北京:清華大學(xué)出版社,2010:45-167.
[2] 葉達峰.Eclipse編程技術(shù)與實例[M].北京:人民郵電出版社,2006:134.
[3] 王永貴.Java高級框架(Struts2+Spring
+Hibernate)應(yīng)用開發(fā)案例教程[M].北京:清華大學(xué)出版社,2012:35-266.
[4] 佘志龍,陳昱勛,鄭名杰,等.Google Android SDK開發(fā)范例大全[M].3版,北京:清華大學(xué)出版社,2012:45-90.
[5] 鄧凡平.深入理解Android[M].北京:機械工業(yè)出版社,2012:50-126.endprint
2.2.3 加入Together
用戶在瀏覽其他用戶發(fā)布的Together信息后,已經(jīng)發(fā)現(xiàn)志同道合的Together信息就可以進行加入操作,系統(tǒng)將判斷此用戶是否有加入的權(quán)限并在用戶提交加入請求后返回加入結(jié)果以告知用戶。系統(tǒng)對開放聯(lián)系方式的Together發(fā)布者一并返回此Together發(fā)布者的聯(lián)系方式以便發(fā)起者和進行線下交互。Together模塊還將將用戶的加入信息存入數(shù)據(jù)庫以備其他查詢模塊調(diào)用。至此用戶加入Together模塊完畢。
2.2.4 Together留言
用戶在瀏覽其他用戶發(fā)布的Together信息后可以對此Together發(fā)布留言詢問相關(guān)內(nèi)容等,方便系統(tǒng)用戶交流。
2.3 管理員模塊
管理員模塊分為用戶賬號管理和Together信息管理。包含了這兩個系統(tǒng)信息的基本管理功能。
2.3.1 用戶賬號管理
主要實現(xiàn)對違規(guī)用戶的刪除。管理員一經(jīng)發(fā)現(xiàn)用戶發(fā)布的Together涉嫌違反法律法規(guī)以及用戶服務(wù)條款協(xié)議的,就有權(quán)對該用戶賬號進行刪除并在后臺級聯(lián)刪除用戶之前發(fā)布的一切信息進行刪除,實現(xiàn)此功能就保證了系統(tǒng)的和諧與穩(wěn)定,對用戶日常使用本系統(tǒng)帶來便利,并有效杜絕虛假和垃圾信息對用戶造成的不良影響。
2.3.2 Together信息管理
Together信息管理主要包括對用戶發(fā)布不合乎規(guī)定的信息的刪除,管理員在此有權(quán)視其發(fā)布者違規(guī)情節(jié)輕重決定:(1)只刪除此條Together信息。(2)刪除此條Together信息發(fā)布者并級聯(lián)刪除此人發(fā)布的一切信息。這是在保護用戶享有本系統(tǒng)提供的服務(wù)的情況下盡可能的保證本系統(tǒng)的干凈和用戶獲取信息時的高效。
2.4 好友模塊
好友管理模塊分為添加好友、刪除好友與特別關(guān)注好友Together,這三個主要功能。
2.4.1 添加好友
用戶在瀏覽其他用戶發(fā)布的Together如果發(fā)現(xiàn)其發(fā)布者甚合心意確為志同道合之人,這就完成了系統(tǒng)設(shè)計的首要需求。這時就可以發(fā)起加此人為好友的申請,該申請信息將上傳至系統(tǒng)服務(wù)器。系統(tǒng)在響應(yīng)到用戶加好友的申請時,將進行審核和邏輯處理,若審核通過就將計入后臺數(shù)據(jù)庫完成用戶加好友的請求,此時服務(wù)器返回對用戶該請求的處理結(jié)果已告知用戶。
2.4.2 刪除好友
用戶在添加好友后可以隨時刪除好友,刪除好友完全是用戶自主行為,其他任何人包括管理員不得干預(yù),系統(tǒng)在響應(yīng)到用戶刪除好友的請求后,將在數(shù)據(jù)庫刪除其與該用戶的好友關(guān)系,系統(tǒng)將返回對該請求的處理結(jié)果,完成刪除好友的功能。
2.4.3 特別關(guān)注好友Together
用戶一經(jīng)添加其他用戶為好友后,系統(tǒng)將自動為其添加好友Together特別關(guān)注,用戶只要在特別關(guān)注界面查看Together信息,系統(tǒng)將在第一時間進行好友Together的推送,方便用戶茫茫人海中更快捷的接收到志同道合的人發(fā)送的信息,方便用戶的交流。攜程-結(jié)伴系統(tǒng)的功能模塊如圖1所示。
3 數(shù)據(jù)庫設(shè)計
3.1 數(shù)據(jù)庫表結(jié)構(gòu)
良好的數(shù)據(jù)庫設(shè)計會使一個優(yōu)秀的系統(tǒng)如虎添翼,無論在效率上還是在安全上都會得到巨大的提升,所以在本系統(tǒng)數(shù)據(jù)庫表設(shè)計之初我們就考慮到了將數(shù)據(jù)庫規(guī)范模式應(yīng)用到本系統(tǒng)中。攜程-結(jié)伴系統(tǒng)中的數(shù)據(jù)庫表以按照3NF范式規(guī)范建立,數(shù)據(jù)庫表中既不包含傳遞依賴也不包含部分依賴,做到減少插入異常、刪除異常和更新異常,保證數(shù)據(jù)庫安全平穩(wěn)運行。
3.2 存儲過程設(shè)計
為了實現(xiàn)更高效的后臺數(shù)據(jù)處理和更安全的數(shù)據(jù)庫操作,我們在后臺數(shù)據(jù)庫創(chuàng)建了完善的存儲過程機制,利用存儲過程可以用于降低網(wǎng)絡(luò)流量,存儲過程代碼直接存儲于數(shù)據(jù)庫中,所以不會產(chǎn)生大量T-sql語句的代碼流量。使用存儲過程能夠增強對執(zhí)行計劃的重復(fù)使用,由此可以通過使用遠程過程調(diào)用(RPC)處理服務(wù)器上的存儲過程而提高性能。存儲過程可維護性高,更新存儲過程通常比更改、測試以及重新部署程序集需要較少的時間和精力并且使代碼精簡一致,一個存儲過程可以用于應(yīng)用程序代碼的不同位置。其次存儲過程能增強數(shù)據(jù)庫及系統(tǒng)安全性,
通過向用戶授予對存儲過程(而不是基于表)的訪問權(quán)限,它們可以提供對特定數(shù)據(jù)的訪問;提高代碼安全,防止SQL注入。因此我們在攜程-結(jié)伴系統(tǒng)中大量的使用了存儲過程處理數(shù)據(jù)庫數(shù)據(jù)。
4 結(jié)語
該系統(tǒng)客戶端平臺為面向Android的移動端開發(fā),服務(wù)端為基于JavaEE的服務(wù)器端開發(fā)。其中Android平臺運用了Java語言開發(fā)并集合了Android所提供的ADK,但系統(tǒng)并不局限于封裝層的ADK而是在底層重構(gòu)了HTTP協(xié)議等模塊,這樣就從根本上使每個模塊都恰當(dāng)?shù)倪m應(yīng)本系統(tǒng)的特定需求,大大提高了系統(tǒng)的性能。在服務(wù)端實現(xiàn)了MVC架構(gòu)并運用了工廠模式、單例模式等設(shè)計模式實現(xiàn)了良好的程序擴展性和低耦合性,甚至代碼不需要做過多修改就可以在不同種類的數(shù)據(jù)庫、服務(wù)器上部署,這樣的設(shè)計達到了易于使用便于修改的目的。
參考文獻
[1] 呂海東,張坤.JavaEE企業(yè)級應(yīng)用開發(fā)實例教程[M].北京:清華大學(xué)出版社,2010:45-167.
[2] 葉達峰.Eclipse編程技術(shù)與實例[M].北京:人民郵電出版社,2006:134.
[3] 王永貴.Java高級框架(Struts2+Spring
+Hibernate)應(yīng)用開發(fā)案例教程[M].北京:清華大學(xué)出版社,2012:35-266.
[4] 佘志龍,陳昱勛,鄭名杰,等.Google Android SDK開發(fā)范例大全[M].3版,北京:清華大學(xué)出版社,2012:45-90.
[5] 鄧凡平.深入理解Android[M].北京:機械工業(yè)出版社,2012:50-126.endprint