梁 倩,鄭澤嚴(yán),從勝軍,鄭大為,夏文杰,郭龍凱
(天津科技大學(xué),天津300457)
目前人們的生活逐漸快節(jié)奏化,而生活中的瑣事又過于繁多,且處理生活瑣事所花費(fèi)的大多數(shù)時(shí)間都在路途之中,其中的很多事務(wù)并不需要本人親自前往,以往所存在的困難是我們無法找到事務(wù)所在位置里能幫助我們解決問題的人。而定點(diǎn)互助系統(tǒng)便成功解決了這一點(diǎn),它能利用位置信息為用戶精準(zhǔn)匹配到相應(yīng)位置中能幫助其解決此事務(wù)的其他用戶。將信息進(jìn)行匹配以達(dá)到為用戶提供所需要信息的功能。這樣,用戶便可請其他方便的用戶幫助自己完成自己的事務(wù),同時(shí)也能利用自身的位置優(yōu)勢幫助其他用戶完成任務(wù),以達(dá)到互利共贏的終極目的。
在大數(shù)據(jù)時(shí)代,信息的收集與分析是非常必要的,本系統(tǒng)的本質(zhì)是通過對已發(fā)布各個(gè)任務(wù)的詳細(xì)信息進(jìn)行統(tǒng)計(jì)與分析,以及對任務(wù)接收者需求的分析,將雙方信息進(jìn)行精確匹配。因此本系統(tǒng)的重點(diǎn)是信息匹配的精確性、及時(shí)性以及系統(tǒng)運(yùn)行的流暢性,以保證用戶在使用時(shí)盡可能少的出現(xiàn)信息錯誤和信息丟失。與此同時(shí),該系統(tǒng)需要對用戶的行為進(jìn)行一定的規(guī)范化管理,避免用戶利用系統(tǒng)功能進(jìn)行一些不利于他人及社會的行為。因此,對系統(tǒng)運(yùn)行的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,以及對用戶發(fā)布任務(wù)的篩查管控是解決此問題最為有效的方法。
本系統(tǒng)由安卓客戶端、云服務(wù)器和后臺管理端三部分組成。安卓客戶端實(shí)現(xiàn)用戶任務(wù)的發(fā)布、任務(wù)詳細(xì)信息的收集、對任務(wù)接收者檢索到的多個(gè)任務(wù)的基本信息展示,以及歷史記錄、個(gè)人信息等其他信息的錄入和展示。云服務(wù)器端用以實(shí)現(xiàn)對用戶基本信息、用戶發(fā)布任務(wù)的存儲,以及對已發(fā)布的任務(wù)信息和用戶想要接收的任務(wù)信息進(jìn)行匹配并返回給用戶的功能。服務(wù)器端承載對數(shù)據(jù)的所有處理、分析功能,因此需對服務(wù)器端的結(jié)構(gòu)采用分布式微服務(wù)架構(gòu)以用來對不同的信息處理需求分離保護(hù)復(fù)制,有效避免一個(gè)服務(wù)出現(xiàn)錯誤時(shí)引發(fā)一連串的服務(wù)錯誤。后臺管理端用以設(shè)置超級管理員,讓超級管理員擁有查看用戶資料數(shù)據(jù)、查詢并管理所有任務(wù)、統(tǒng)計(jì)一定時(shí)間內(nèi)用戶量、任務(wù)量等能力。后臺管理端采用網(wǎng)頁形式,設(shè)置超級管理員對用戶及系統(tǒng)進(jìn)行管理。后臺管理端需要網(wǎng)頁前端和服務(wù)器端兩部分,服務(wù)器端部分并入云服務(wù)器端并單獨(dú)劃分一模塊進(jìn)行開發(fā)。這樣,由前端網(wǎng)頁部分向云服務(wù)端的后臺管理端發(fā)送請求即可完成對系統(tǒng)中用戶的管理以及對系統(tǒng)數(shù)據(jù)的查詢與管理??蛻舳?、云服務(wù)器端、后臺管理端三個(gè)部分協(xié)同運(yùn)行保證了系統(tǒng)運(yùn)行的流暢性與安全性,在解決用戶需求的同時(shí)提升用戶體驗(yàn)??蛻舳斯δ芙Y(jié)構(gòu)圖如圖1所示。
2.1.1 用戶注冊登錄
新用戶需要注冊后才能使用本系統(tǒng),用戶的注冊信息會保存到云服務(wù)器端的數(shù)據(jù)庫中。注冊部分需收集盡可能多的用戶信息,以便有利于后面任務(wù)信息更加精確的匹配。
2.1.2 發(fā)布任務(wù)功能
發(fā)布任務(wù)功能主要是讓用戶輸入任務(wù)的各項(xiàng)信息,其中任務(wù)的位置主要調(diào)用百度地圖的定位功能以及位置檢索功能,在用戶調(diào)用百度地圖選定好任務(wù)的位置之后,客戶端會記錄任務(wù)位置的經(jīng)緯度信息并將其傳輸?shù)椒?wù)器端以供后期進(jìn)行數(shù)據(jù)匹配。
2.1.3 任務(wù)接收功能
任務(wù)接收功能只需要用戶調(diào)用百度地圖選擇任務(wù)的位置并檢索,安卓端會將位置的經(jīng)緯度傳給服務(wù)器端,由服務(wù)器端進(jìn)行匹配并把相應(yīng)的任務(wù)返回給安卓客戶端。同時(shí)接收任務(wù)可進(jìn)行條件多選,將多個(gè)信息傳給服務(wù)器進(jìn)行更加精準(zhǔn)的任務(wù)篩選。
2.1.4 正在進(jìn)行的任務(wù)顯示功能
安卓客戶端會一直顯示用戶正在進(jìn)行的任務(wù)信息,以便查看自己發(fā)布的任務(wù)是否已被接收或完成,以及查看自己已接收的任務(wù)以防止忘記任務(wù)信息或是查看任務(wù)即時(shí)情況,是否被取消等信息。
2.1.5 任務(wù)完成確認(rèn)功能
本系統(tǒng)中任務(wù)的完成確認(rèn)需要經(jīng)過雙方的認(rèn)同,即在任務(wù)接受者確認(rèn)任務(wù)完成之后,再由任務(wù)發(fā)布者確認(rèn)任務(wù)完成即算作任務(wù)完成。在接收者確認(rèn)完后發(fā)布者可看到任務(wù)狀態(tài)轉(zhuǎn)為接受者確認(rèn)完成,發(fā)布者自身確認(rèn)任務(wù)完成無誤即可操作確認(rèn)任務(wù)的完成。以此種方式來保證任務(wù)的完成質(zhì)量。
2.1.6 界面設(shè)計(jì)
界面采用簡潔的綠色主題,直線邊框設(shè)計(jì)。使界面看起來更加的整潔,突出任務(wù)信息,個(gè)人任務(wù)列表如圖2所示。
圖2 個(gè)人任務(wù)列表
2.2.1 數(shù)據(jù)庫設(shè)計(jì)
本系統(tǒng)數(shù)據(jù)庫使用mysql,主要設(shè)計(jì)的表格有用戶基本信息表、用戶任務(wù)表等。用戶基本信息表主要用來存儲用戶的個(gè)人信息,賬號、密碼、用戶名等。用戶任務(wù)表中主要用來存儲用戶發(fā)布的任務(wù)、接收的任務(wù)等。各表之間不使用外鍵,使用用戶ID貫穿所有表格。對于數(shù)據(jù)庫的操作基本采用對象進(jìn)行操作,使用以實(shí)體類自動生成數(shù)據(jù)庫的方式進(jìn)行數(shù)據(jù)庫表的創(chuàng)建。利用對象對數(shù)據(jù)庫進(jìn)行操作,方便了多個(gè)數(shù)據(jù)的修改。
2.2.2 云服務(wù)器端的主要功能
(1)將用戶發(fā)布的任務(wù)進(jìn)行存儲和分類。用戶發(fā)布的任務(wù)含有多種標(biāo)志性的屬性,服務(wù)器需要根據(jù)接收到的這些任務(wù)信息在對其進(jìn)行存儲時(shí)設(shè)置標(biāo)簽信息以便后期檢索匹配時(shí)方便匹配。
(2)處理任務(wù)接受者的任務(wù)查詢請求。安卓客戶端會將任務(wù)接收者想要接收任務(wù)的經(jīng)緯度以及其他任務(wù)信息傳到服務(wù)器,服務(wù)器根據(jù)對應(yīng)的信息到數(shù)據(jù)庫中查詢符合條件的任務(wù)并將其根據(jù)匹配的程度進(jìn)行排序返回。在此部分之中,服務(wù)器可根據(jù)任務(wù)的經(jīng)緯度檢索其設(shè)定范圍之內(nèi)的任務(wù),服務(wù)器根據(jù)經(jīng)緯度距離公式計(jì)算滿足距離的經(jīng)緯度范圍,并以經(jīng)緯度范圍為條件檢索屬于經(jīng)緯度范圍內(nèi)的任務(wù),以此方式來實(shí)現(xiàn)檢索特定范圍之內(nèi)的所有任務(wù)。同時(shí),在以任務(wù)位置為首要前提之下,對任務(wù)的時(shí)間、積分及發(fā)布者等進(jìn)行匹配,以篩選出最符合任務(wù)接受者要求的任務(wù),其中主要涉及多表及多條件查詢。
(3)對任務(wù)的屬性進(jìn)行修改。在任務(wù)發(fā)布時(shí)設(shè)定任務(wù)為已發(fā)布,當(dāng)任務(wù)被接收時(shí)設(shè)定任務(wù)屬性為已接收,當(dāng)任務(wù)被完成時(shí)設(shè)定任務(wù)屬性為已完成。這樣在檢索任務(wù)時(shí)便能根據(jù)任務(wù)的屬性進(jìn)行分別,以便檢索歷史任務(wù)、未完成任務(wù)、未被接收任務(wù)等。這里對任務(wù)的描述主要采用實(shí)體類的方式,將接收的信息轉(zhuǎn)化為對應(yīng)的實(shí)體類,再根據(jù)實(shí)體類中信息對任務(wù)的信息進(jìn)行更新。
(4)系統(tǒng)信息安全。為防止信息的泄露以及明確各個(gè)功能部分所能具有的操作權(quán)限,系統(tǒng)通過整合Springsecurity進(jìn)行各個(gè)功能權(quán)限的管理。確定每個(gè)功能能調(diào)用的權(quán)限以便每個(gè)功能在擁有足夠權(quán)限運(yùn)行的同時(shí)又能做到權(quán)限的分離與保護(hù),使得整個(gè)系統(tǒng)的安全性更高,能有效避免惡意行為。
2.2.3 云服務(wù)器端的架構(gòu)設(shè)計(jì)
本系統(tǒng)主要的功能即為處理各個(gè)數(shù)據(jù)之間的匹配,當(dāng)用戶數(shù)量過多,用戶請求過于頻繁時(shí),單一的服務(wù)器無法滿足需求,就會出現(xiàn)延遲甚至是宕機(jī)情況。所以服務(wù)器端的設(shè)計(jì)主要采用當(dāng)下最為流行的分布式微服務(wù)。將個(gè)人信息操作統(tǒng)一為一獨(dú)立模塊,任務(wù)發(fā)布接收功能統(tǒng)一為一模塊。歷史任務(wù)信息及當(dāng)前任務(wù)為一模塊,多模塊之間利用NACOS進(jìn)行服務(wù)注冊以及相互調(diào)用,以及負(fù)載均衡等。以此方式來避免請求擁堵以及單一服務(wù)器的宕機(jī)情況。同時(shí)多模塊的設(shè)計(jì)使得系統(tǒng)功能條理更加清晰,有利于后期的維護(hù)以及對某個(gè)功能模塊進(jìn)行修改或刪除的操作。多模塊形式可容納更多不同的技術(shù),有利于功能的擴(kuò)展。
2.3.1 網(wǎng)頁端設(shè)計(jì)
后臺管理端部分的主要用戶群體是進(jìn)行系統(tǒng)管理與維護(hù)的超級管理員,因此頁面的美化也就無關(guān)緊要,對于數(shù)據(jù)顯示的清晰性和可視性是此部分需要關(guān)注的重點(diǎn)。本系統(tǒng)中使用vue與echarts結(jié)合的方式進(jìn)行前端頁面的開發(fā),一方面vue已是十分穩(wěn)定流行的前端框架,而另一方面vue整合echarts也十分的方便,這樣前端頁面的開發(fā)便可以大大簡化。
網(wǎng)頁部分主要設(shè)置兩大模塊,即用戶部分和任務(wù)部分。用戶部分主要是對用戶信息的查看以及對用戶的管理部分。任務(wù)部分主要用以查看用戶發(fā)布的所有歷史任務(wù),同時(shí)對每日的任務(wù)發(fā)布量、接收量、完成量以及當(dāng)前任務(wù)最流行的關(guān)鍵詞進(jìn)行統(tǒng)計(jì)分析并以圖表形式進(jìn)行繪制,以便系統(tǒng)維護(hù)人員能清晰的看到當(dāng)前系統(tǒng)運(yùn)行的大致情況,并對用戶量、任務(wù)量有一定的了解。此外,對當(dāng)前任務(wù)最流行關(guān)鍵詞的分析統(tǒng)計(jì)將對系統(tǒng)后期進(jìn)行特殊模式的開發(fā)起到很好的啟示作用,有利于系統(tǒng)的功能擴(kuò)展和用戶體驗(yàn)的提升。
2.3.2 云服務(wù)端設(shè)計(jì)
后臺管理端中云服務(wù)器端的主要功能是能夠?qū)W(wǎng)頁端提供的對用戶、任務(wù)等一系列系統(tǒng)數(shù)據(jù)進(jìn)行大批量查詢、統(tǒng)計(jì)、修改和刪除的接口。因后臺管理端云服務(wù)器端的功能實(shí)現(xiàn)需要對數(shù)據(jù)庫進(jìn)行操作,因此將其規(guī)劃為云服務(wù)器中的一個(gè)模塊,能夠在方便的對數(shù)據(jù)庫進(jìn)行操作的同時(shí)與云服務(wù)器端共用許多同樣的配置,避免了數(shù)據(jù)庫的重復(fù)和各種配置及依賴包的導(dǎo)入。與此同時(shí),也有利于后臺管理端利用注冊中心對云服務(wù)器中其他后臺模塊中接口的調(diào)用,有效避免代碼的冗余和接口的重復(fù),使得其對系統(tǒng)的維護(hù)和修改更方便。
在后臺管理端中需要實(shí)現(xiàn)的接口主要有如下幾個(gè):對一段時(shí)間內(nèi)新注冊的用戶數(shù)量的統(tǒng)計(jì);對一段時(shí)間內(nèi)發(fā)布的任務(wù)中出現(xiàn)頻率最高關(guān)鍵詞進(jìn)行統(tǒng)計(jì)排序;對一段時(shí)間內(nèi)未發(fā)布任務(wù)和接收任務(wù)用戶的統(tǒng)計(jì);對指定任務(wù)的刪除;對一段時(shí)間內(nèi)系統(tǒng)中發(fā)布任務(wù)總量的分析;對近一個(gè)月內(nèi)每日任務(wù)發(fā)布接收完成量的統(tǒng)計(jì)。后臺管理端為網(wǎng)頁管理端提供接口調(diào)用,完成對系統(tǒng)進(jìn)行管理的功能。
本系統(tǒng)利用安卓客戶端與服務(wù)器端進(jìn)行信息交互展示,采用目前最為流行的分布式微服務(wù)設(shè)計(jì)提升服務(wù)速度,充分利用用戶的位置信息進(jìn)行信息匹配,實(shí)現(xiàn)了一種新的“位置信息共享”,使得人們能發(fā)現(xiàn)位置的價(jià)值并將其合理利用起來,避免了人們在處理遠(yuǎn)程事務(wù)上浪費(fèi)時(shí)間,使得人們在這個(gè)快節(jié)奏的時(shí)代能擁有更多屬于自己的時(shí)間,實(shí)現(xiàn)更加高效的事務(wù)處理。