目錄
摘 要 I
Abstract II
目 錄 1
第 1 章 緒 論 1
1.1研究背景 1
1.2國內外研究現狀 2
1.3研究內容與意義 3
1.4論文結構 4
第 2 章 系統相關技術研究 6
2.1微服務架構 6
2.2Spring Cloud 相關組件介紹 7
2.2.1服務治理 Spring Cloud Eureka 8
2.2.2API 網關 Spring Cloud Zuul 9
2.2.3服務熔斷 Spring Cloud Hystrix 9
2.3Docker 容器技術 11
2.4本章小結 11
第 3 章 系統需求分析 12
3.1系統可行性分析 12
3.1.1經濟可行性分析 12
3.1.2管理可行性分析 12
3.1.3技術可行性分析 12
3.1.4社會可行性分析 13
3.2系統業務流程分析 13
3.3系統角色用例分析 16
3.4系統非功能需求分析 19
3.5本章小結 20
第 4 章 基于聚類的志愿崗位推薦算法研究 21
4.1基于聚類的小樣本集分類算法 21
4.2基于時間因子的崗位推薦模型 21
4.2.1時間因子的引入 21
4.2.2待推薦集合的過濾 22
4.2.3服務崗位推薦模型概覽 24
4.3本章小結 24
第 5 章 系統設計與實現 25
5.1系統設計原則 25
5.2系統功能結構設計 25
5.2.1系統結構設計 25
5.2.2系統切分 27
5.2.3登錄、注冊功能 28
5.2.4志愿者服務平臺 29
5.2.5志愿者用戶信息管理模塊 30
5.2.6志愿團隊信息管理模塊 31
5.2.7志愿項目管理模塊 32
5.2.8志愿者服務崗位推薦模塊 32
5.3數據庫表設計 33
5.4本章小結 37
第 6 章 總結與展望 38
6.1總結 38
6.2展望 39
參考文獻 40
第 1 章 緒 論
1.1研究背景
隨著人們的精神財富極大豐富,志愿精神更加深入人心,我國志愿者的人數在近年增 長迅猛。根據中國志愿服務聯合會第一屆理事會第七次會議的數據,截止至 2019 年,我 國實名注冊志愿者總人數已超過 1 億人次,覆蓋各類志愿者超過 1.3 億人,志愿服務組織 41 萬多個。高校大學生作為志愿工作的生力軍,最近幾年參加志愿工作的在校生人數呈幾 何式增長,目前,高校大學生已經成為志愿服務的中堅力量,各大高校是開展志愿服務教 育的主陣地[1]。志愿者服務領域也在迅速拓寬,志愿項目正面向更多元化發展,涉及領域 更加廣泛[2]。隨著志愿者信息管理流程復雜程度上升,相應地對志愿管理系統的業務擴展 性要求也會大幅度提高。在“智慧校園”大力發展的背景下,采用依托于網絡的信息化系統, 對高校志愿工作的整體流程全方位的監督與引導,對團隊組織各環節工作提供幫助已成為 必然趨勢。在“在校生志愿服務滿意度調查與分析”中,針對提問以往志愿經歷是否與期望 相符時,有 33.3%的被調查的大學生對象選擇“一定程度相符”,有 47. 7%的對象選擇“符 合預期”,選擇“十分符合預期”的占 5. 3%。其中當問及整個服務流程有待提高的方面 有哪些時,有 55. 3%的被調對象表示目前的志愿項目涉及領域不夠廣泛,希望能夠有更多 力所能及的崗位類型可供選擇;還有 41. 6%的對象表示無論是涉及團隊成員統籌還是人員 組織效率方面,志愿組織并沒有發揮應有的可觀作用。另外,有 3.93%表示他們的工作對 他人沒有明顯的幫助或者對社會有所貢獻,他們希望貢獻的是自己的時間和服務才能[3]。 因此,為了能夠提高志愿者服務工作的成效,必須有效地借助網絡信息技術和先進的管理 方式,將人才、時間、信息優勢相結合,合理的調配志愿者[4],因此亟需建立一套有效管 理志愿活動的系統,用以滿足信息傳遞與共享,并能夠靈活地應對業務需求的變化,從而 提高志愿工作效率,擴大志愿工作的社會影響力[5]。然而,還有一部分的志愿者團體組織 仍在實施人工管理模式[6],大部分的志愿者服務信息管理系統仍然沿用幾年前的開發技術, 使得這些系統現階段的運維愈發困難,難以保證系統穩定而高效地運作。針對以上的問題, 高校志愿者信息管理與服務崗位推薦系統的提出是非常有必要的。
目前,大多數高校采用的系統仍為單體應用開發模式,所有的系統構件打包在一個 WAR 包中,在服務器中進行發布。為了應對日益增多的服務請求與信息處理,部分開發團 體采用部署服務器集群的方式來緩解壓力,雖然問題得到暫時的解決,但是隨著開發技術 債務的堆積,系統代碼的冗雜,使得系統后期維護與更新變得異常困難。隨著開發技術的 不斷革新,使用陳舊技術開發的系統必定會被代替[7]。采用微服務架構進行開發的系統, 每個微服務負責其相應的系統功能,在設計與實現時,只需要關注業務邏輯的構建與實踐, 完全不需要考慮統一的開發技術與編碼規范,各微服務以輕量級的通訊機制通過網絡進行 調用。此外,隨著云計算技術的興起,微服務架構與云平臺的結合得到密切關注,開發人 員僅需支付相對低廉的平臺及應用租賃費用,即可將系統部署于云上,大大節約了購置軟、 硬件的成本[8],以往大型企業采用的搭建集群與內部系統的高難度方案也得以解決。
1.2國內外研究現狀
目前,在對國外的各機構和組織的志愿工作調研時發現,相當數量的志愿組織在志愿 工作各環節中采用了高信息化的信息管理系統。據統計,截至2019 年初,有超過7 成的 歐美等西方國家各級志愿機構采用信息化、自動化志愿管理系統[9],這不僅使得志愿工作 的各個環節成效更加明顯,也無疑避免了人工處理可能帶來的各種隱性弊端。在對國外高 校進行調研時發現,大部分學校已經將在校生的志愿記錄嵌入到學生生活實踐能力中進行 考量,并對就業產生直接影響。正是如此,大部分高校的志愿信息管理系統的研發得到迅 猛發展,以便于更好地服務于學生工作,為其提供外在的基礎條件。其二,志愿信息系統 不僅滿足了高校學生工作需要,還滿足了社會志愿熱潮的發展需要,是對傳統國際志愿概 念的轉變,也是對傳統志愿服務模式轉變提出的新挑戰[10]。對美國、日本、英國、法國等 志愿精神較為深入的國家的社會中正在使用的志愿信息管理系統進行考察時發現,一些先 進的開發人員正在摒棄以往的開發模式,正在向高性能化、大數據化的方向進行演變,采 用開發方案為分布式架構的 B/S 體系結構開發了許多志愿服務信息管理系統并投入使用, 例如基于 spark 的大數據分析志愿者信息管理系統。目前,隨著云計算技術、大數據技術、 虛擬技術的飛速發展,一般概念上的志愿者信息管理系統在業務功能和系統性能上都進行 了技術飛躍[11]。例如華盛頓州立大學的開發團隊將大數據技術、云平臺引入到現有的系統 中去,不僅解決了系統服務器負載問題,也實現了用戶行為分析等亟需功能;慕尼黑大學 科研開發團隊研發了一款基于大數據分析的志愿者用戶行為分析系統,使用系統可以直觀 地觀測志愿用戶行為分析數據結果,以便更好地對志愿活動的開展進行管控,對志愿服務 信息管理所需的各項成本進行管理。這些系統的研發和使用確保了志愿工作管理的高效 性、高信息化和高智能化。
在國內,也有越來越多的志愿機構和組織開始采用先進的志愿信息管理系統,代替了 傳統紙質辦公、人工處理的管理模式,這些系統大多采用了先進的互聯網技術、依托于云 平臺,對志愿工作的管理方式轉變產生積極影響[12]。市面上現存很多根據不同應用場景開 發的志愿信息管理系統,例如,面向公眾免費開放的宏大志愿者信息管理系統,該系統的 業務功能簡潔明了,頁面風格樸素使用,除了對現有功能進行優化以外,還增添了志愿項 目評價等新功能。但是,由于業務流程等各種因素決定社會志愿者與在校生志愿者需求并 不統一,因此想要將該系統應用于高校學生志愿工作的管理當中還是不現實的。上海市志 愿者管理系統是為了更好地實施上海世博會的志愿者管理而開發的一套成熟的系統,該系 統分為上海志愿者平臺和上海志愿者管理系統,在今后的完善中完全能夠滿足上海市各組 織機構對本市志愿者的管理工作。鐘燕紅研究開發的志愿者服務系統中采用了模塊化構建 的方式,采用 B/S 架構的系統應用結構,并分層開發,降低了各業務邏輯的耦合度,因此 該系統在更新維護、業務拓展方面表現更加出色。王暉玲與其開發團隊在進行系統開發的 過程中引入了工作流技術,使得系統根據志愿工作現實進展情況,對業務流程進行動態調 整成為可能,該功能的實現很大程度提升了志愿者服務工作的效率。鄒敏與其開發團隊應 用當前主流且成熟的企業級 J2EE 開發技術研發了一套可用性較高的志愿者服務系統,在 志愿者服務管理的測試應用中表現非常可靠,對系統用戶的服務管理工作提供了切實保 障。
1.3研究內容與意義
從系統開發技術層面來看,大多數目前正在使用的志愿服務管理系統仍沿用了單體開 發的模式,其開發模式在當前的開發環境中呈落后趨勢,例如復雜性逐漸變高,部署速度 逐漸變慢,技術債務逐漸上升,阻礙技術創新以及無法按需伸縮等問題難以解決[13]。本項 目使用 Spring Boot + Spring Cloud 的完整開發方案,作為當下流行的一種云原生的軟件架 構風格, 在應對當前日益復雜的應用構建時,開發更加靈活輕便,各服務間耦合度小。將 以往開發概念的系統進行拆分,打破應用技術與代碼規范的約束, 改為多個相互獨立、高 度自治、通過調用關系存在的微服務組合,從而使得系統功能的可擴展性顯著提高[14]。在 平臺運維方面,基于微服務架構的系統較單體開發模式的系統可用性更高,運行速率更高, 系統運行穩定可靠,開發和維護更加方便。
從系統功能層面來看,很多高校及志愿團隊使用的系統的主要功能大都專注于信息管 理,鮮有涉及服務崗位的推薦功能。本系統根據分析志愿者服務需求與服務工作及崗位需 求,設計基于聚類的服務崗位推薦算法,依據志愿者個人特長,專業及傾注時間等實際因 素,將更加適合志愿者個人從事的服務工作推薦給志愿者本人。因此,該平臺的推出和使 用將使得服務人員與崗位對接更加精準,工作的開展環境更加穩定,進而大大提高志愿服 務工作的效率。
本文主要研究內容為:
(1)基于聚類的服務崗位推薦算法的研究:本文詳細研究如何針對志愿者個人意愿 傾向,志愿服務崗位需求匹配度的問題,提出基于時間因子過濾的聚類服務崗位推薦模型, 應用該模型編碼實現高準確率的服務崗位推薦功能,為廣大高校志愿者用戶提供符合個人 實際情況的志愿服務崗位推薦。
(2)高校志愿者信息管理與服務崗位推薦系統的設計與實現:本文詳細介紹了高校
志愿者信息管理與服務崗位推薦系統的開發流程和實現的業務功能。 本系統開發目標可以歸納為:
(1)本系統實現系統架構微服務化,解決傳統單體架構開發模式的弊端,提高系統 可用性、可靠性。
(2)本系統將服務工作推薦功能融入系統,解決高校志愿者個人特長、專業與所從 事服務工作崗位對接不精準的問題。
(3)本系統優化了志愿服務管理系統的招募信息上傳、志愿者招募及管理、志愿工 作評價、數據分析等核心功能,幫助志愿服務機構和志愿團隊有效地對目前分散的志愿者 進行管理與安排,更加科學高效地開展志愿服務項目,加快山東省各大高校志愿服務事業 的信息化發展。
1.4論文結構
第 1 章 緒論 本章通過介紹目前社會中,尤其是各大高校中志愿者相關行業的發展趨勢,然后通過 一些案例說明現在互聯網時代存在自動化不足的問題,引出軟件開發技術更新換代的背 景,通過對國內外志愿者管理系統案例的介紹,以及現有的高校志愿者管理系統的優缺點 分析,說明對當今時代背景下的,微服務架構的高校志愿者信息管理及服務崗位推薦系統 開發的必要性。
第 2 章 系統相關技術研究 本章研究了從單體架構開發向微服務架構開發模式的演變,介紹了 Spring Cloud 核心 組件Eureka服務治理、Zuul網關、Feign負載均衡,Hystrix容錯機制,以及Spring Boot 開發框架和 Docker 容器技術構成的技術架構。
第 3 章 系統需求分析 通過上述章節介紹的理論知識,本章詳細分析了高校志愿者信息管理與服務崗位推薦 系統功能性和非功能性的需求。然后以此為基礎構建高校志愿者信息管理與服務崗位推薦 系統的整體框架,對該系統有一個全面且明了的概述。
第 4 章 基于聚類的志愿崗位推薦算法研究 本章對基于聚類的小樣本集分類算法進行分析研究,并提出服務崗位推薦模型,給出 模型構建的具體步驟,包括時間因子的引入、待推薦數據集的過濾和推薦模型的構建。
第 5 章 系統的設計與實現
本章利用上幾章介紹的理論知識,將第2 章提及的微服務開發方案具體應用到系統的 構建中,對高校志愿者信息管理及服務崗位推薦系統的各個模塊進行詳細設計,并編碼實 現,展示了高校志愿者信息管理及服務崗位推薦系統的各模塊頁面與功能界面截圖。
第 6 章 總結與展望 本章總結了高校志愿者信息管理與服務崗位推薦系統的各項業務功能的作用與價值 影響,并指出系統不完備之處,以及在后續工作中需要繼續研究的細節與方向。
第 2 章 系統相關技術研究
2.1微服務架構
微服務的開發模式可以看做將以往單體開發概念的系統進行拆分,打破應用技術與代 碼規范的約束, 劃分整個系統為多個相互獨立、高度自治的獨立服務,單個微服務在開發 調試時可以在本地作為系統的進程之一進行實現[15]。在開發完成后,系統可以在 PaaS 上 進行單獨部署,使得系統服務性能得以保障。各微服務間的輕量級通信方式均是通過 REST 和 RPC 調用進行的。想要最大化利用微服務帶來的便利,避開其劣勢,自由分工、按照各 自掌握的技術棧合格地構建每個微服務是一項重要步驟,一項合格的微服務應具備的兩個 特點是:松耦合和高內聚[16]。在面向對象中,對兩個概念的理解并不陌生,我們需要研究 在微服務層面兩者的意義。
松耦合,各個服務之間的代碼關聯度低,修改和部署一個微服務的同時不需要對另一 個微服務進行操作。這也是微服務架構最實用的一大優勢,在系統更新、維護時,不再需 要對整個系統進行停機,對非必要部分進行修改,這一點,使用調用密集的開發方式來進 行集成是做不到的,必然會引起其他業務編碼發生變動。由于通信方式和調用邏輯已經確 定,且各服務暴露在外的接口十分健全,邊界明確。在這種開發模式下,各應用模塊的耦 合度得到顯著降低[17][18]。
高內聚,即將相關業務邏輯代碼建立在一起,其他系統代碼置于別處。這種便利性在 進行系統調試與維護時展現得尤為突出,技術人員在對某一功能進行調試時,往往不希望 看到改動對系統其他部分造成影響的棘手結果,更愿意只專注于一項業務功能的修改之 中。對于有高內聚特性的系統,其運維效率一定較其他系統更高。
采用微服務架構進行開發的系統的技術架構也更加靈活,在系統交付時限上也有更明 顯的優勢,單個微服務可以獨立發布,不必等待所有環節均完工后才能一起進行打包發布 工作[19]。
本系統采用的技術架構選型比較先進,前端技術采用 Node.js 技術,響應用戶請求交 給 Nginx 服務器代理,通過 Zuul 網關進行權限鑒定與請求轉發,達到訪問系統資源的目的。 數據層選用 MySQL 與 Redis 結合的方式,優化數據緩存。技術架構如圖 2.1 所示。
2.2Spring Cloud 相關組件介紹
Spring Cloud開發方案其實是將目前成熟的開發技術組件進行整合,并形成生態體系 的組合成果。與Spring Boot框架一樣,它為分布式應用系統的開發節約了大量非必要時間 成本。Spring Cloud其實是基于后者改進的一套云原生技術方案,繼承了 Spring Boot不重 復造輪子的特點,開發人員僅需簡單的基礎配置,就可以專注于業務邏輯的設計與編碼, 在調試階段與普通系統一樣,未對開發環境有過多要求,在本地就可以進行系統調試。 Spring Cloud組件包括服務注冊與發現中心、負載均衡客戶端、API網關、分布式配置中心 以及容錯機制[20],在以下小節內容對各組件發展與底層原理進行研究。在形容基于微服務 架構系統的資源請求過程時,各微服務完成發布后會注冊在服務注冊與發現中心的服務列 表里,網關可以從服務注冊與發現中心拉取服務列表,經由PC端或移動終端發送的url
2.2.1服務治理 Spring Cloud Eureka
Eureka 服務注冊與發現中心是美國 Netflix 公司研發的一款組件,并正式融入 Spring Cloud生態圈之中。Eureka的主要作用是完成各微服務的治理,各微服務上線后會向服務 注冊與發現中心進行注冊,管理員即可通過 Eureka 服務器自帶的監控界面對各個服務節點 實施方便的管控[21]。在微服務架構的系統開發中,通常將 Eureka 視為服務的提供者,即 server-provider,相應的客戶端組件采用Ribbon來執行服務消費,即server-consumer。由 于 Ribbon 自帶負載均衡機制,在從 Eureka 中拉取到服務之后,會均衡地向客戶端分配[22]。 與之相稱地, Eureka 中也融入了服務緩存機制,即使某個微服務出現宕機狀況, Ribbon 依 然可以拉取已經緩存的服務進行訪問。
與大多數分布式架構系統的組件相似, Eureka 也編有心跳機制,已經注冊的服務在沒 有被調用的時段內,會向 Eureka 間斷地輸送狀態信號[23]。如果一個微服務節點在此時段沒 有按照規定發送心跳信號,那么該節點就會在服務注冊與發現中心的服務列表中被暫時屏 蔽。服務提供與消費端的良好互補運作,為用戶提供了更為良好的交互體驗,很大程度滿 足了系統高可用性需求。
2.2.2API 網關 Spring Cloud Zuul
Zuul網關在微服務架構中的作用非常關鍵,同為美國Netflix公司研發的一款動態路由 組件,其核心是基于java虛擬機的負載均衡器,用于提供服務端的安全與動態路由等服務 [24]。從網絡調用的角度而言,外部的服務通常是不能直接對系統內部服務進行調取和訪問 的,它們需要通過網關將訪問請求進行轉發,將該url地址路由至目標服務,從而達到外 部訪問目的。Zuul在系統工程構建時通常被命名為API-Gateway,并置于訪問請求端和 Eureka server-provide 之間,不僅保證了系統的安全性,還提供了用戶鑒權與訪問量控制等 功能[均西。眾所周知終端不同,對信息的請求速率需求也有不同,例如PC端、移動終端 或者延遲速率不同的網絡環境[27]。所以為了優化用戶體驗,同時也為了簡化調用邏輯,幾 乎所有基于微服務開發的項目均采用Zuul作為輕量級網關。其提供的負載均衡服務,將請 求合理均分,在很大程度上緩解了系統瞬時壓力,節約了用戶等待響應耗時,對系統高可 用性能指標的提升以及用戶體驗的優化起到關鍵作用。
2.2.3服務熔斷 Spring Cloud Hystrix
在當今分布式開發的系統當中,完成一項用戶請求通常需要對幾個依賴服務進行調 用,當所需調用的某個依賴出現宕機或者阻塞時,如果沒有容錯機制的保護,需要訪問該 資源的請求越積越多,就會出現服務器雪崩。特別是對于關鍵依賴而言,一旦延遲產生, 不進行熔斷操作,在極短的時段內正常的系統資源將迅速耗盡。Hystrix的引入就是為了防 止該情況的發生,對系統核心功能提供保護。Hystrix分配可監控的線程池給每個依賴服務, 若讀取到線程池滿載狀態,請求會被立即拒絕,優先保證系統核心功能運作,而非核心服 務不可用或弱可用。在系統使用中用戶會立即收到訪問限制反饋并退回上一步操作,而不 是持續的頁面讀取等待,做到優雅降級[28]。其原理圖如圖 2.3 所示。
Hystrix 完 成 彈 性 容 錯 的 原 理 是 預 設 了 三 種 熔 斷 狀 態 , 管 理 員 可 以 設 置 requestVolumeThreshold,即觸發熔斷的最小請求次數,默認設為20。Closed:關閉狀態, 所有請求都可以正常訪問;Open:打開狀態,所有請求被攔截并降級。有請求失敗發生時, 開啟請求狀態統計,當測得預設時間內請求失敗占比達到50%閾值,則完全開啟斷路;Half Open:半開狀態。open狀態啟動后會在默認時間內休眠,而后自動進入半開狀態,允許一 小部分請求通過,若得到請求成功的回饋,則會進入Closed狀態,如若沒收到回饋,則回 到打開狀態,再次進行休眠計時。
2.3Docker 容器技術
在云計算盛行的時代,許多的企業把應用程序部署到云計算的PaaS服務上,有利于 降低企業開發的成本,獲得閑置資源的最大化利用。云計算中的 PaaS 服務主要是為用戶 提供 PC 操作系統和軟件開發的環境,使用硬件虛擬化技術滿足用戶的需求,但是還存在 一些缺點,例如軟件環境難以擴展、軟件部署缺失靈活性以及各個軟件環境之間的兼容性 等問題。伴隨著這些問題的涌現,出現了基于容器級的Docker虛擬化技術。Docker容器 技術作為一種新的虛擬化技術,實現了把原有的軟開發環境進行整體打包,并能一鍵部署 到任意的云平臺上,解決了應用程序部署時出現的環境配置問題。同時它推動了 PaaS服 務的發展,市面上涌現了各式基于Docker容器技術的PaaS平臺凹。
Docker是一種基于LXC的高級容器引擎,它在LXC的基礎上進行封裝,提高了各個 容器使用的獨立性和可移植性,便于軟件開發環境的快速部署和構建工作[30]。與傳統虛擬 機的區別,在虛擬化方面,Docker容器技術是在內核的操作系統上進行虛擬化,把不同的 應用鏡像存放在不同的容器,實現了容器之間的隔離[31]。傳統虛擬機是在硬件資源的基礎 上進行虛擬化,虛擬出多個操作系統,并在虛擬的操作系統中進行相關軟件環境的搭建, 實現是各個操作系統之間的隔離。就資源的利用率方面來講,Docker容器技術是直接作用 在本地操作系統上的,相比傳統的虛擬機來說,其利用率相對較高。在運行效率方面,一 般意義上的虛擬機啟動是含OS的虛擬機,而Docker直接啟動的是容器,在啟動速度上優 勢是十分明顯的[32]。
2.4本章小結
本章首先對微服務系統架構作了詳細的描述,闡述了用于系統開發的整套技術架構。 然后對Spring Cloud生態圈展開理解,對其組件及相應原理進行說明與研究。最后介紹了 Docker容器技術的原理及發展,為系統的構建與開發打下了堅實的基礎。在系統開發過程 中,對各組件技術的底層原理有深入掌握,對處理一些可能存在的疑難問題有非常大的幫 助。
第3 章 系統需求分析
3.1系統可行性分析
系統的可行性分析將從經濟可行性、管理可行性、技術可行性以及社會可行性四個方 面進行分析。
3.1.1經濟可行性分析
當今志愿者組織機構與部門在信息化的熱潮中與時俱進,大多已經開始采用租用云平 臺的方式,從而輕松解決了本地服務器與其它計算機軟硬件條件不足的困難,因此在系統 開發過程中,不需要再重復購置數據交換設備、服務器以及計算機軟件等,因此節約了大 量用于采購軟硬件的經費,僅需支付云平臺租賃費用,將系統發布到云平臺并對其進行基 礎設置,系統即可運行。該系統完成之后,真正實現高校志愿工作信息化,省時省力,利 于減少成本開銷,因此經濟方面是可行的。
3.1.2管理可行性分析
目前,計算機應用系統的開發技術與體系架構正在迎來突飛猛進的發展和革新,計算 機系統的應用也隨之更加普遍和廣泛,因此大范圍的用戶必然已經受到一定程度的計算機 應用技術培訓,從而掌握了一定的系統操作知識,對計算機操作系統方面的知識也有一定 的掌握,這就為系統快速且成功地實現部署、運行以及后期更新維護方面的工作提供了基 礎。
3.1.3技術可行性分析
高校志愿者信息管理與服務崗位推薦系統開發過程中,系統體系結構采用B/S架構技 術,系統微服務架構采用Spring Cloud開發方案,系統設計在頁面設計與交互方面采用了 Node.js技術,后臺業務邏輯開發采用Spring Boot框架、Tomcat服務器和MySQL數據庫 技術,項目部署與發布采用Docker技術,這些開發技術組合非常廣泛地應用于當前十分熱 門的軟件開發當中,無論是開發經驗還是技術原理都是比較成熟的,因此技術方面是可行 的。
3.1.4社會可行性分析
高校志愿者信息管理與崗位推薦系統部署運行之后,相較一般單體架構開發的系統而 言,可以為用戶提供更加強大的業務邏輯處理服務功能。系統理論能夠承載之前數倍的用 戶服務請求,系統高可用且維護時間短,避免請求阻塞的情況,因此本系統投入使用使得 高校、社會的信息化水平得到顯著提高,從而提升高校志愿用戶志愿工作的效率,促進志 愿工作網絡化管理、加快信息交互,因此具有較強的社會影響力。
3.2系統業務流程分析
高校志愿者信息管理與志愿崗位推薦系統依據不同用戶角色的權限區別,對相應的數 據信息采取分層加工與處理的方式,不同的權限業務流程不一,結合身份加密驗證,能夠 在志愿管理工作流程中實現用戶隱私信息的有效保護。
本系統的業務流程分析從三個角度展開,分別是志愿者信息管理業務流程、志愿崗位 推薦流程和志愿信息發布到志愿活動開展流程。其中志愿者信息管理是對普通高校志愿者 用戶和志愿團隊的信息進行采集、審查以及收錄的過程,對高校志愿者信息管理與志愿崗 位推薦系統的業務流程可以分為三個方面,分別是志愿者信息管理業務流程、志愿崗位推 薦流程和志愿信息發布到志愿活動開展流程。其中志愿者信息管理是對普通高校志愿者用 戶和志愿團隊的信息進行采集、審查以及收錄的過程。在系統的設計之初采用區別于權限 的業務流程,其信息處理與加工的的層次必然不同,目的在于用戶執行系統業務流程時, 對系統用戶的隱私信息實現封閉,其他權限與事件流無法竊取。業務流程分層開發同時有 助于志愿服務信息的快速發布,審核以及志愿服務的開展。具體的,志愿者信息管理業務 流程業務流程圖如圖 3.1 所示。
圖 3.1 志愿者信息管理業務流程圖
志愿崗位推薦流程是系統根據志愿者用戶提交的個人簡歷、志愿意向、個人需求等因 素,向用戶提供最佳志愿崗位推薦排序的過程,具體的,志愿崗位推薦業務流程圖如圖 3.2 所示。
圖 3.2 志愿崗位推薦業務流程圖
志愿活動開展流程是從招募機構發布招募志愿者信息、審核服務崗位到志愿者申請入
崗,到志愿活動開展并記錄的過程,具體的,志愿活動開展業務流程圖如圖 3.3 所示。
圖 3.3 志愿活動開展業務流程圖
3.3系統角色用例分析
用例分析即為系統研發人員依據系統用戶的切實需求,遵從與系統用戶的協定而形成 的設計契約[33],因而系統角色的用例分析是系統的設計與開發中的關鍵環節。依據系統用 戶的用例需求導出系統業務邏輯功能,并將其向用戶傳達是用例分析環節的重要意義。
(1)系統參與者的確定
首先,系統參與者、執行者的研判是通過構建用例模型來實現的。系統參與者、執行 者與系統發生交互的方式可以通過系統數據、軟、硬件設備以及存儲之中的信息。角色不 是特指某個實體,而是可以指代具有同一特性的類,即是一個群體概念,在角色定義中, 一個角色可以特指一類系統參與者,而多個參與者也可以是同一系統參與者[34]。
(2) 用例的確定
在上述角色確定分析完成之后,接下來要進行用例的確定。系統參與者通過用例的使 用,利用系統產生能夠測得的價值結果,即為系統的一種行為。用例就是用來對系統參與 者們利用系統來實現需要的完成的事件進行描述的。進行用例確定的主要方式即通過對系 統參與者進行功能分析。
(3) 用例和角色的描述。
對系統角色及其用例的描述要遵循通俗易懂、簡明扼要的思想,要繪制用例圖進行展 現。用例之中的邏輯關系相互貫穿,也就代表了某一系統參與者通過系統完成了一些預期 行為,可以稱之為用例事件流,我們對用例事件流進行分析和描述的主要任務就是建立用 例的邏輯流程[35]。
(4) 建立用例模型實例
從系統的業務流程分析、角色定義得出,高校志愿者信息管理與服務崗位推薦系統的 參與者包括系統信息管理員、個人志愿者、團隊負責人和機構負責人。其中系統信息管理 員擁有的權限最高,可以對其他系統參與者所提交的信息進行審核,對系統基礎功能進行 管理,還可以對數據庫信息進行操作;個人志愿者的職責是保證所提交的信息規范、正確, 選擇符合自身實際條件和志愿意向的組織團隊以及志愿項目,向其提交申請;志愿團隊負 責人的功能權限為對個人志愿者提交的加入申請進行審核,對團隊信息、團隊成員、以及 志愿服務工作歷史進行管理。其管理權限局限于對組織和團隊的管理;機構負責人職責在 于正確對機構發布的志愿項目信息進行審核管理,對提交的志愿項目加入申請進行審核。 理論而言,其權限與系統管理員權限有一定的重合,因此分析為繼承關系。進行完角色權 限分析之后,就可以進行用例分析了。本文對系統參與者進行了詳細描述,相應角色與其 職責與功能描述如表 3-1所示。
表 3-1 系統參與者表
角色 職責或功能
未注冊志愿者 系統參與者,未注冊的志愿者用戶可以瀏覽志愿服務平臺 內容,還可以通過注冊和填寫個人信息成為志愿者用戶。 系統主要參與者,個人志愿者登錄系統后可以查看新聞、
個人志愿者用 公告,查看、修改個人信息,加入志愿團隊,申請參加志 愿服務工作,查看志愿歷史等。
系統主要參與者,團隊負責人登錄系統后可以查看、修改
團隊負責人 團隊信息,對團隊人員進行管理,對團隊參與的志愿服務 工作進行管理。
系統主要參與者,招募機構負責人登錄系統后可以發布、
招募機構負責人 修改志愿招募信息,對志愿用戶和團隊的活動申請進行審 批。
系統的管理員,可以進行個人志愿者用戶、團隊負責人用
系統管理員 戶、招募機構負責人用戶的申請進行審核,平臺信息推送、 新聞發布,以及進行系統用戶管理、角色權限管理等工作。
其次,繪制了系統主要參與者的用例圖,用以對各角色的用例進行更為細致的描述, 系統中系統管理員的用例圖如圖 3.4 所示。
接下來對普通志愿者和志愿團隊負責人用戶在志愿信息管理子系統的業務邏輯下進
行了用例分析,系統中個人志愿者與志愿團隊負責人角色用例分析如圖 3.5 所示。
最后對志愿招募機構負責人進行了用例分析,招募機構負責人角色的用例圖如圖 3.6 所示。
3.4系統非功能需求分析
1)系統安全性要求
①訪問鑒權的實現。在高校志愿者信息管理與服務崗位推薦系統中,需要對用戶的信 息訪問進行權限控制,系統日志中會記錄各種請求以及不同類型的訪問行為。系統會對登 錄者進行有效的鑒權,且不同權限的訪問者被系統授權的功能權限等級有所不同,確保不 會發生越權操作的發生。對系統完整性和數據保密性的要求更加嚴格,即需要更加嚴格的 身份驗證方式、系統日志與信息統計以及數據加密。
②數據機密性。由于涉及在校生、教師以及招募機構工作人員的個人隱私,系統的設 計與運營過程中應該加強數據的機密性的保護,所以要保證在發送請求、信息傳遞的過程 中,用戶信息不能被非系統授權調取與查看,保證其機密性,以此使得系統信息安全得到 保障。
(2)系統性能要求 本系統在應對較大數據范圍的業務需求時應具備良好的可用性、穩定性,并且具備較 高的系統靈活性。
①高校志愿者信息管理系統應該具備高可用性的需求。在大范圍請求涌入的情況下, 應能避免請求阻塞、服務器雪崩等情況的發生。
②實現快捷的系統維護。在對系統進行更新維護時,可以實現短時間停機、不停機的 方式進行系統的重新部署,在維護過程中系統核心功能仍然可用,從而支持新的系統業務 功能開發與拓展;
③系統的可擴展性。主要體現在能夠十分便捷地對系統在實際應用中存在的業務功能 進行操作,以此保證系統更快適應需求變化的情況。此外,系統沒有正式進行運行測試之 前,所有的功能都在設計設想之中是不現實的,由于信息管理和推薦功能具有多樣性,需 要系統具備較強的可擴展性。
3.5本章小結
本章內容首先進行了系統的經濟、管理、技術以及社會可行性分析,使系統可行性得 以驗證。然后調研分析高校大學生志愿工作,進行了詳細的業務流程分析與系統角色用例 分析,進而將系統的邏輯業務功能進行導出。其次從系統非功能需求角度進行了系統性能 分析,為確保系統在系統性能需求的角度進行了保密程度、響應速率、一致性方面的分析 驗證,為系統設計實現打下堅實的基礎。
第 4 章 基于聚類的志愿崗位推薦算法研究
4.1基于聚類的小樣本集分類算法
在使用 KNN 及其相關改進算法進行數據樣本分類時,時常發生數據樣本較少、密度 差較大以及樣本較為集中的情況,這些情況都會在一定程度上造成聚類精度的失準。在基 于聚類的志愿崗位推薦算法中,我們引入了基于聚類的 KNN 分類算法,通過對數據集進 行預分類和剪理,整理出新樣本集,這些樣本集的樣本密度更加接近,并使用這些更加合 理的樣本集對未進行類標號的新對象實施類別標識。在與普通未經預處理的樣本集進行實 驗比對時發現,該方式能夠對算法分類精度產生正向影響。
經典的 KNN 分類算法是一種典型的非參數的惰性學習方法。它的特點是算法復雜度 低、容易理解和編碼實現,其思想是在原有的訓練數據集合中篩得一些具有代表性的樣本 作為新的訓練樣本[36]。當訓練數據集是很小的數據集時, 已經標注類標的數據集中的數據 數量不足以對未置類標的數據進行分類。為了充分利用這一小部分標簽數據,還不對最終 精準度產生負影響,本文采用 K-means 算法與 KNN 算法相結合的方式, 先通過 K-means 聚類對數據集進行預分類,隨后在各樣本類具有相近密度條件下的 KNN 算法[37],通過已 經進行類別標識的集合作為引導,篩除“噪聲數據”, 進而完成對未標簽數據集進行類別標 號的工作[38], 從而提高算法的效率與準確度。
在小樣本集情況下應用基于聚類技術的誤分率改善效果明顯優于在大樣本集情況下。 主要原因是在小樣本集情況下,原來的樣本集不能完全代表數據集的分布特性, 且樣本的 分布不均勻。而基于聚類技術的 KNN 算法通過擴充樣本集, 改善樣本分布,提高分類的準 確率。因此, 本算法在志愿崗位數據集小樣本分類的情況成效明顯。傳統 KNN 算法對于最 近鄰閾值 k 比較敏感, 而對于本算法, 對于最近鄰閾值 k 選擇范圍更寬, 誤分率較為穩定, 分類精度更為滿意。
4.2基于時間因子的崗位推薦模型
4.2.1時間因子的引入
考慮到加入時間特征對推薦結果進行約束的志愿崗位推薦算法的優化。
(1)考慮時間對用戶的意愿行為有一定的影響。隨著時間推移,用戶所處的環境很 可能發生變化,用戶的行為意向也會產生相應的變化。例如志愿用戶的眼界、興趣愛好、 專業特長或者地理位置發生變化時,他們對志愿工作的特殊需求也會發生變化。
(2)考慮志愿服務崗位存在生命周期。在系統業務流中,一個志愿崗位存在的周期 是在進行項目信息發布時就設置好的,超過其生命周期的信息只能通過歷史進行查找,系 統會自動將其從推薦集合中剔除,即保證了系統為志愿用戶進行崗位推薦的準確性。即使 志愿用戶在用戶行為得分中顯性或者隱形地表達了對某一志愿服務崗位的意愿傾向,系統 也不能將生命周期以外的志愿崗位向志愿用戶進行推薦[39]。
(3)考慮同一時間條件下服務崗位評分的關聯性。例如,用戶 U 與未發生交互的待 推薦崗位 j 之間無關聯行為發生,且系統已記錄用戶 U 對崗位 i 的評價,系統即可根據志 愿服務崗位 i 與崗位 j 的相似度,對用戶 U 與崗位 j 的匹配度進行預測,對系統推薦結果 進行約束和調整。稱崗位 i 為用 U 與崗位 j 的媒介。如圖 4.1 用戶與服務崗位關聯圖所示:
圖 4.1 用戶與服務崗位關聯圖
4.2.2待推薦集合的過濾
志愿服務崗位推薦算法的執行步驟:
Stepl:擬定K個新審核上線的服務崗位樣本作為聚類中心,取三元組(input-time, professional needs, label)按照距離公式(4.1)計算所有服務崗位樣本的歐式距離;
d = J(xA 0 _ xB 0)2 + (xA 1 _ xB 1)2 + (xA 2 _ xB 2)2 (41)
Step2:計算數據集中其他N-K個服務崗位特征與這些聚類中心記錄的距離,并將每個 崗位樣本分配至與其距離最近的聚類集合之中;
Step3:重新計算每個聚類中記錄的均值以確定新的聚類中心,按照均值公式(4.2)計算目 標函數值;
kn
/ =亍工 ||x _ uk||
k =1 i=1 (4.2)
Step4:循環Step2和Step3直至各個聚類所含數據不再變動為止(或預設循環次數來結束 循環);
Step5:采用余弦式(4.3)計算志愿者簡歷中的個人特長和招募機構發布崗位工作之間的 相似度 Sim(X,Y);
Step6:將結果按照式(4.4)時間特征量化定義,求得時間特征與崗位工作之間的相似度的
乘積,對結果進行過濾;
f time _ factor = 工F(At)(工 G ,j, Tu , i))
Ati
Step7:按降序排列得出TOP-N個服務崗位推薦給志愿者用戶。
待推薦服務崗位過濾的流程如圖4.2所示:
4.2.3服務崗位推薦模型概覽
4.3本章小結
本章對基于聚類的小樣本集分類算法進行研究,依據志愿服務崗位數據集數據量較 小、特征明顯等特點,將 K-means 算法與 KNN 算法結合使用,首先使用 K-means 算法對 數據集合進行預分類,再依據分類標識進行 KNN 算法分類,然后在待推薦的一類數據集 中計算崗位之間的相似度,最后通過時間權重過濾消除因時間推移產生的信息誤分,分析 了算法的步驟與流程,并完成志愿崗位推薦模型的構建工作。
第5 章 系統設計與實現
5.1系統設計原則
系統總體設計與實現之前需構建基礎概要結構,本章嚴格依據第三章系統的功能需求 的分析,搭建系統開發平臺架構方案,設計系統數據庫結構模型,并編寫需要實現的業務 邏輯功能。在系統設計階段對于系統的軟件控制流程、數據庫結構、網絡結構等方案進行 了設計。同時,聲明系統設計原則應當先行于系統實現工作開展之前,原則如下:
(1) 系統交互友好性原則。用戶在執行系統操作時,系統應提供用戶權限功能的輔 助認知,比如寫入了用戶操作預判,以此設置用戶行為輔助,提示和指導用戶能夠順利按 照需求完成操作[40]。同時系統中用戶的操作界面也應設計的更加人性化,為用戶提供美觀、 簡潔等良好的用戶體驗,從而使得用戶能夠對相應權限功能有更直觀的認識,良好的用戶 體驗有利于相關工作的進展。
(2) 系統先進性原則。將現階段原理成熟、廣泛應用的系統研發技術和體系結構應 用到高校志愿者信息管理與服務崗位推薦系統的設計過程中,無論是從系統運維的角度而 言,還是從用戶體驗角度而言,保持系統架構的先進性都有著舉足輕重的意義[41]。當今的 軟件需求要求先進的系統可以便捷地操作相關的邏輯業務功能,以此達到提高系統處理請 求的效率的目的。采用先進的系統開發技術為志愿者信息管理與服務崗位推薦系統在運營 期間支持前沿主流成熟開發技術作為工具提供了強力保障,以便能夠更好地利用主流成熟 技術對系統進行后期維護、升級。使用先進的、主流的系統架構和開發技術保證系統的先 進性,無論從系統設計、開發到運維都具有積極影響[42]。
(3) 系統實用性原則。在系統分析與實現過程中,應當從系統各參與者的具體需求 進行分析,對系統業務流程進行詳細調研,從而設計實現必要的業務邏輯功能,從而滿足 用戶在工作中的的切實需求。在此基礎上進而考慮系統的承載性能、運行環境等進行設計, 能夠更大程度地優化系統實現所需的成本開銷,滿足用戶功能需求,從而提高系統的實用 性。
5.2系統功能結構設計
5.2.1系統結構設計
高校志愿者信息管理與崗位推薦系統在系統總體結構上分為高校志愿者服務平臺,服 務崗位推薦子系統和志愿信息管理子系統。系統結構圖如圖 5.1 所示:
志愿者信息管理系統
其中高校志愿者服務平臺主要用于用戶瀏覽新聞、通知,資料的上傳下載等信息交互 功能;服務崗位推薦子系統分為頁面展示模塊和服務崗位信息檢索模塊;志愿信息管理子 系統的三個部分為志愿者個人信息管理模塊、服務崗位信息管理模塊和志愿團隊管理模塊 三個模塊。下面對志愿信息管理子系統的模塊功能進行細致的描述。
(1)志愿者個人信息管理模塊 該模塊參與者面向志愿者個人用戶,該類用戶可以注冊、完善個人信息,合理安排自
己的志愿意向。并且用戶可以通過該模塊對自己的志愿服務進度和服務歷史信息進行查 看,以及提交志愿者團隊申請、志愿者服務崗位申請等。
(2)志愿團隊管理模塊 該模塊的用戶主要面向各志愿團隊負責人,志愿團隊負責人用戶可以根據團隊需求發
布志愿團隊信息以及志愿活動相關內容,并對于團隊工作動態進行實時更新,以便志愿者 實時了解團隊情況,吸引個人志愿者積極加入。另外團隊管理員可以對團隊成員進行管理, 也可以對團隊志愿項目工作進行管理。
(3)招募機構服務崗位管理模塊 當招募機構負責人登錄系統后,頁面會根據權限進行跳轉,顯示志愿崗位與志愿項目
管理界面,此界面包含了三個主要功能模塊,分別是志愿機構基礎信息模塊、服務工作招 募信息模塊和項目申請審核模塊。其中志愿機構基礎信息模塊用于收錄志愿招募機構組織 的各項基本信息;服務工作招募信息模塊用于記錄已發布、待發布的志愿項目狀態與各項 信息;項目申請審核模塊的功能是便于機構負責人用戶處理志愿個人與團隊的加入申請。
5.2.2系統切分
系統所包含的微服務如圖 5.2 所示:
■JVMS [cvmsl] ~/Desktop/VMS
?tn .idea
?I H cvms-api-gateway
?i Bcvms-apply
?I Bcvms-audit
?I B cvms-auth-center
?I' Bcvms-common
▼ i Bcvms-group
?Li cvms-group-interface
?[ B cvms-group-service
?I src
備 cvms-groupJml pom.xml
?Hcvms-items
?I H cvms-manage-web
?I B cvms-registry
?Bcvms-search
?H cvms-sendmessage
?I Bcvms-upload
?I B cvms-user-service
??lib
?out
?search
src
Hcvms.iml
ft cvmsl.iml
pom.xml
? Tlo External Libraries
圖 5.2 系統文件結構圖
cvms-api-gateway:zuul 網關,提供外部訪問的唯一入口。
cvms-apply:申請微服務,提供申請功能及相關的接口。 cvms-audit:審核微服務,提供審核功能及相關的接口。 cvms-auth-center:授權與安全中心,接收用戶請求,進行鑒權。 cvms-common:公共部分,各項微服務的共有功能。
cvms-group:志愿團隊信息管理微服務,提供志愿團隊管理的各項功能。 cvms-items:志愿項目管理微服務,提供志愿項目管理的各項功能。 cvms-manage-web:提供管理頁面的UI
cvms-registry:注冊微服務,提供用戶的注冊功能及相關的接口。 cvms-search:搜索微服務,提供搜索的功能。
cvms-sendmessage:短信微服務,提供向用戶發送短信的功能。 cvms-upload:上傳微服務,提供上傳資料功能。
cvms-user-service:用戶信息微服務,使用Feign客戶端進行服務消費,且自帶負載均 衡,提供用戶信息管理功能及相關的接口。
5.2.3登錄、注冊功能
普通志愿者用戶通過注冊成為個人志愿者用戶,同時個人志愿者用戶、團隊負責人用 戶、招募機構負責人用戶在登錄系統時選擇角色權限進行系統的登錄。登錄注冊界面如圖 5.3,圖 5.4 所示。
圖 5.3 登錄界面
磴高校志愿者服務中心 首頁新聞公益志愿服務關于 登錄 注冊
注冊 已有賬號找回
謂輜入賬號
zhT89
請輸入6-18位用戶名
碼
請確認密碼
請輸入一致的密碼
請輸入驗證手機號
獲取驗證碼
提交
注冊即代表您同意志愿者服勢條款
獲取觀證碼
©2019離校志愿者服務平自中國學術研究中心網絡科技部京ICP證1401號京ICPii
圖 5.4 注冊界面
5.2.4志愿者服務平臺
志愿者服務平臺面向全體用戶開放,提供友好的 UI 交互。其畫面風格是 Bootstrap 樣 式的,設計分為頂欄導航欄,左側欄引導欄,中間新聞欄和右側欄 logo 廣告。平臺建設的 主要目的是擴大志愿信息的宣傳范圍,提高志愿工作的社會積極影響。游客可以查閱最新 的志愿新聞,查閱和下載公告、資料,還可以進行注冊和上傳個人信息等操作。志愿者服
務平臺界面如圖 5.5、圖 5.6、圖 5.7 所示。
圖 5.6 平臺新聞頁界面
高校志愿者服務中 心
服務熱線:0531-
7776120
聯系我們:400-960-
2677
重要熱聞
jasteenbiber dis work hanmierton james
9.6k閱讀75699條評論更新于58分鐘前
jasteenbiber dis work hanmierton james
579閱讀75699條評論更新于2小時前
jasteenbiber dis work hanmierton james
1190閱讀75699條評論更新于7分鐘前
社區志愿者們見到總書記十分激動,紛紛講述自己的“志愿故事”。
習近平為社區志愿者們點贊,稱贊他們是為社會作出貢獻的前行者、引領者。
習近平強調,志愿者事業要同“兩個一百年”奮斗目標、同建設社會主義現代化國家同行。志愿服務是社會文明進步的重要標志,是
圖 5.7 新聞內容頁界面
5.2.5志愿者用戶信息管理模塊
志愿者服務工作開展過程中,志愿者對感興趣的符合自身意愿志愿項目服務參與意向 明確,因此后臺管理平臺的搭建為了能夠更大程度地保證志愿者能夠順利參加項目,用以 收錄和存儲用戶信息,提取姓名、性別、聯系方式及志愿意向等在內的個人簡歷,另外也 是為了將志愿者按照專業特長進行大體分類,系統以簡歷錄入的形式對志愿者用戶進行專 業特長、志愿意愿方面的信息采集。志愿者用戶管理功能包括志愿者個人信息的查詢、添 加、修改和刪除等功能,同時也新增提供了參與志愿活動歷史查詢功能,服務評價功能等, 如圖 5.8、圖 5.9 所示。
圖 5.8 志愿者用戶志愿崗位申請功能截圖
圖 5.9 志愿者用戶志愿工作歷史查詢功能截圖
5.2.6志愿團隊信息管理模塊
志愿團隊的建設為了方便有相似志愿意愿、相同職業技能的高校志愿者更便捷地投入 到志愿工作當中,也便于志愿者協調個人時間,簡化了志愿者加入志愿項目的過程。志愿 團隊的負責人負責團隊成員管理、團隊信息管理、團隊志愿工作的相關信息管理等工作。 志愿團隊成員在參與志愿項目活動的整個志愿流程較個人志愿者而言更加簡潔,從提交申 請,到志愿項目開展,到志愿項目的記錄和評估過程更加一目了然,界面截圖如圖 5.10 所 示。
圖 5.10 志愿團隊信息管理功能截圖
5.2.7志愿項目管理模塊
目前,許多志愿服務招募機構都會不定時地向社會公開招募志愿者投身到各領域的志 愿項目中去,參加這些志愿項目為高校在校生的學習生活提供一個寶貴的鍛煉機會,也為 社會增添了一份正能量。因此,本模塊包含了項目信息錄入、項目的發布審核、志愿歷史 記錄和評估等主要功能,志愿工作項目負責人登錄后擁有志愿者項目添加、執行、記錄查 詢和評分等權限。志愿項目管理模塊的應用對志愿項目開展的成功率有很大的正影響,志 愿項目管理模塊功能如圖 5.11 所示。
圖 5.11 志愿者項目信息管理模塊截圖
5.2.8志愿者服務崗位推薦模塊
系統依據志愿者用戶提交的簡歷,將簡歷中的性別、專業特長、興趣、傾注時間、志 愿意向作為數據集進行提取,作為篩選和評分的依據,隨后將服務崗位數據集輸入到推薦 模型中進行比對和過濾,最終生成與志愿者用戶各方面志愿意向最相近的服務崗位集合降 序[43]。基于聚類的推薦方式相較通常使用的模糊匹配方式,推薦功能不僅匹配度高,效率 也更加迅速,用戶只需進行提交簡歷、意向選型、生成結果、服務崗位申請等幾項簡單操 作即可得到推薦結果,在很大程度上避免了志愿選崗困難、選崗隨意性高、崗位要求與個 人實際情況不符等志愿工作中常見的棘手問題。
本功能測試時,選擇了外國語學院的一名女性學生志愿者,志愿意向為從事與英語、 日語、韓語相關的志愿工作,傾注時間為每周 12-18 小時,其推薦結果輸出如圖 5.12 所示。
巒高校志愿者平臺 首頁 新聞
服務記錄 志愿風采 關于
新聞動態
服務崗位推薦
依據您的意向,實時崗位情況
通知公告
上傳文件
下載最多
崗位簡述:青年運動會國際組翻譯及引導人員 招募機構:市團委、市志愿者協會
服務時間:2019-10-18 H起7個工作日
服務領域:禮賓接待、翻譯、引導
查看詳情I提交申請
5.3 數據庫表設計
崗位簡述:文化博覽會外賓引導人員 招募機構:博覽會執委會、市志愿者協會 服務時間:2019-10-22 H上午9-15時 服務領域:翻譯、引導及講解
崗位簡述:市青年國際文化藝術協會志愿者
招募機構:市青年會志愿者工作部、市志愿者協會 服務時間:2019-10-29日至30日
服務領域:語譯、筆譯協助
查看詳情I提交申請
展開更多
結果更新時間2019-11-08
圖 5.12 服務崗位推薦模塊界面截圖
數據庫是應用系統的搭建中必不可少的重要一環,是系統實現的核心部分,一個好的 數據庫不僅需要滿足系統業務層需求,在數據的健壯性方面也要有出色的表現。本系統選 擇使用輕便靈活的 MySQL 數據庫進行實現。本節列舉了如下主要數據表的設計。
志愿者個人信息表用于儲存個人志愿者用戶的基礎信息,各字段、數據類型、屬性如 表 5-1 所示。
表 5-1 志愿者個人信息表
字段名 數據類型 是否為空 備注
用戶編號 Guid 否 主鍵
用戶賬號 varchar(50) 否
密碼 varchar(50) 否
姓名 nvarchar(20) 否
性別 tinyint(1) 否
權限 int(2) 否
團隊歸屬 nvarchar(50) 是
聯系方式 nvarchar(50) 否
QQ nvarchar(50) 否
特長、愛好 nvarchar(255) 否
簡介 nvarchar(255) 否
志愿記錄 nvarchar(255) 是
手機驗證狀態 tinyint(1) 否
身份認證狀態 tinyint(1) 否
注冊時間 datetime 是
修改時間 datetime 是
志愿團隊信息表用于記錄志愿團隊需要管理的各種信息,以團隊編號為主鍵,與其他
數據信息表構建E-R關系,各字段、數據類型、屬性如表5-2所示。
表 5-2 志愿團隊信息表
字段名 數據類型 是否為空 備注
團隊編號 Guid 否 主鍵
團隊賬號 varchar(50) 否 外鍵
密碼 varchar(50) 否
團隊名 nvarchar(50) 否
權限 int(2) 否
聯系方式 nvarchar(50) 否
QQ nvarchar(50) 否
團隊簡介 nvarchar(255) 否
團隊成員 nvarchar(255) 否
團隊服務歷史 nvarchar(255) 是
志愿工作招募機構信息表主要用于存儲進行志愿項目招募的各組織機構的基本信息, 各字段、數據類型、屬性如表 5-3 所示。
表 5-3 招募機構信息表
字段名 數據類型 是否為空 備注
機構編號 Guid 否 主鍵
機構賬號 varchar(50) 否
密碼 nvarchar(50) 否
機構名稱 nvarchar(255) 否
權限 int(2) 否
聯系方式 nvarchar(50) 否
Email nvarchar(50) 否
崗位招募記錄 nvarchar(255) 是
機構簡介 nvarchar(255) 否
志愿活動的字段分別是志愿服務項目編號、服務項目名稱、招募機構名稱、服務項目 起止時間、志愿工作地址、項目狀態以及志愿項目簡介,各字段、數據類型、屬性如表 5-4 所示。
表 5-4 志愿項目信息表
字段名 數據類型 是否為空 備注
志愿服務項目編號 Guid 否 主鍵
服務項目名稱 nvarchar(30) 否 外鍵
招募機構 nvarchar(30) 否
活動開始時間 datetime 否
活動結束時間 datetime 否
參與志愿者數 int(10) 是
申請要求 nvarchar(255) 否
申請狀態 nvarchar(20) 否
志愿工作地址 nvarchar(50) 否
志愿項目簡介 nvarchar(255) 否
志愿項目工作記錄表是用來存儲用戶的參與志愿歷史記錄,并對志愿工作時長進行統 計,評分統計更有利于進行用戶工作滿意度調研。其各字段、數據類型、屬性如表 5-5 所 示。
表 5-5 志愿項目工作記錄表
字段名 數據類型 是否為空 備注
志愿服務項目編號 Guid 否 主鍵
服務項目名稱 nvarchar(30) 否 外鍵
個人用戶者賬號 varchar(50) 是
團隊賬號 varchar(50) 是
簽入時間 datetime 否
簽出時間 datetime 否
服務時長 int(10) 否
服務工作總結 nvarchar(255) 否
服務工作評分 nvarchar(20) 否
通知公告信息表用于對發布在系統中的公告和通知信息進行存儲,其每個字段、屬性、 類型以及作用如表5-6所示。
表 5-6 通知公告信息表
字段名 數據類型 是否為空 備注
公告通知編號 Guid 否 主鍵
公告通知標題 nvarchar(50) 否 外鍵
上傳人 nvarchar(20) 否
上傳時間 date 否
志愿者項目申請記錄表用以存儲個人志愿用戶或者志愿團隊組織向某個志愿項目提
出申請和預約記錄。其各字段、數據類型、屬性如表5-7所示。
表 5-7 志愿項目申請記錄表
字段名 數據類型 是否為空 備注
申請編號 Guid 否 主鍵
申請聯系人 nvarchar(20) 是 外鍵
申請組織團隊 nvarchar(50) 是 外鍵
申請時間 datetime 否
申請狀態 nvarchar(20) 否
5.4本章小結
本章介紹了高校志愿者信息管理與服務崗位推薦系統的結構,介紹了微服務架構系統 的文件結構,對數據庫表進行了分析與設計,并對系統的各模塊及功能進行了詳細的介紹 和展示。
第 6 章 總結與展望
6.1總結
隨著志愿精神的深入,高校在校生正在成為我國志愿者的生力軍,高校大學生志愿服 務工作在學生工作中所占比重越來越大的同時,大學生志愿者工作與信息管理流程復雜程 度升高已成必然,對志愿信息管理工作提出了更加嚴峻的挑戰。為了應對這些困難,本文 開發了微服務架構的高校志愿者信息管理與服務崗位推薦系統,實現信息化的志愿者個人 信息管理、志愿團隊管理、招募組織機構信息管理、志愿項目管理和志愿服務崗位的推薦。 本系統順應系統架構發展與革新的熱潮,解決用戶對軟件系統的可用性需求提高的現實情 況,滿足了當前用戶在快節奏的信息化的工作生活中對系統的高處理速率性能需求。崗位 推薦功能的實現更是幫助志愿用戶大量縮短選崗申請所用時間,在很大程度上避免了選崗 結果與志愿意向不匹配情況的發生,有效地提高了高校志愿工作的成效。本文主要完成了 以下兩項研究內容:
(1) 基于聚類的服務崗位推薦算法的研究:本文依據志愿服務崗位數據集數據量較 小、特征明顯等特點,將 K-means 算法與 KNN 算法結合使用,首先使用 K-means 算法對 數據集合進行預分類,再依據分類標識進行 KNN 算法分類,然后在待推薦的一類數據集 中計算崗位之間的相似度,最后通過時間權重過濾消除因時間推移產生的信息誤分,并構 建推薦模型,實現根據用戶個人志愿傾向的服務崗位推薦功能。
(2) 高校志愿者信息管理與服務崗位推薦系統的設計與實現:本文經過對高校志愿 工作的調研,展開了詳細系統需求分析,并根據分析結果,利用主流的先進開發技術設計 實現了高校志愿者信息管理與服務崗位推薦系統,系統的主要功能包括:
用戶注冊、登錄功能:普通志愿者注冊,系統用戶登錄登出,權限鑒定; 信息收錄、存儲功能:存儲用戶提交的個人信息; 志愿者信息管理功能:志愿者個人用戶對已錄入信息進行查看和變更; 志愿團隊信息管理功能:團隊負責人對志愿團隊的成員、信息、參與項目等信息進行 查看和變更,對加入團隊申請進行審核;
志愿項目管理功能:志愿機構負責人對志愿項目的招募信息進行變更和發布,對參與 志愿工作的申請進行審核;
志愿服務崗位推薦功能:系統根據用戶個人意愿傾向以及個人特殊需求,向志愿用戶 進行精準的志愿服務崗位推薦。
6.2展望
雖然本文介紹的高校志愿者信息管理與服務崗位推薦系統可以幫助各類志愿相關用 戶在管理信息時提供極大便利,并向高校志愿者用戶提供與個人志愿意愿相近的服務崗位 推薦功能,但是由于調研、系統開發時間有限,想要一步到位分析出一個完美的系統難度 較大,難免存在疏漏。今后會在實際測試中,對分析之外存在的功能遺漏進行完善。在本 文中實現的高校志愿者信息管理與服務崗位推薦系統仍然存在著許多設計不足之處,可以 概括為以下幾個方面:
(1) 理論結合實際。本文大量理論構思建立在對高校志愿者信息管理與服務崗位推 薦系統的研究的成果之上,高校大學生志愿工作涉及多部門、多角色的相互協調,需要構 建一個基于用戶行為進行動態調整的機制。
(2) 在系統界面與用戶交互體驗方面,由于技術水平有限,高校志愿者信息管理與 服務崗位推薦系統用戶界面部分設計較為粗糙,還需進一步美工修繕,方可提供更為良好 的用戶體驗。
(3) 加強系統安全性。本文對高校志愿者信息管理與服務崗位推薦系統的研究中, 系統安全性方面考慮不足,比如,只在網關處進行權限與登錄信息的鑒定,而沒有相應的 認證機制,用戶的信息很有可能遭到竊取。
在今后的工作中,在推薦功能方面需要考慮到召回率對服務崗位匹配度的約束影響。 在系統信息安全方面需要采用安全證書認證機制、移動終端驗證碼或其他更加安全有效的 方法進行身份驗證。
參考文獻
[1]梅霞.高校大學生志愿者服務相關問題研究[D].華中農業大學,2014:7-14.
[2]黃艷.當代大學生志愿服務現狀、問題與對策[J].高等農業教育,2014(02):93-97.
[3]Rongxiang Shen. China Youth Volunteer Service Competition and the Project-oriented Development of University Volunteer Service: Current Situation and Consideration[A]. Russian State Specialized Academy of Arts (Russia) 、 Zhengzhou Yingchun Conference planning Co., Ltd.(China).:International Science and Culture for Academic Contacts, 2019:8.
[4]李媛媛.大學生志愿服務發展問題研究[D].東北林業大學,2010:11-17.
[5]毛百川.濟南市志愿者管理系統的設計與實現[D].山東大學,2013:2-7.
[6]劉藝博,郝雪晶,鄧鵬飛.高校大學生志愿服務制度化建設研究J].吉林工程技術師范 學院學報, 2019, 35(05):53-56.
[7]翟永超.SpringCloud微服務實戰[M].北京:電子工業出版社,2017:1-7.
[8]許偉偉.SaaS軟件個性化定制研究與應用[D].西安電子科技大學,2014:7-11.
[9]Feng Tian. Next Generation of Web-based Information Management System for National Volunteer Service[A]. 重 慶 環球 聯 合 科 學 技 術 研 究 院 .Proceedings of 2015 Joint International Mechanical,Electronic and Information Technology Conference(JIMET 2015)[C]. 重慶環球聯合科學技術研究院:重慶環球聯合科學技術研究院, 2015:5.
[10]余封亮.基于Web技術的吉林大學珠海學院志愿者管理系統設計與實現[D].吉林大學, 2015:6-12.
[11]宋楊.大學生志愿者信息管理系統的設計與實現[D].電子科技大學,2014:9-15.
[12]郭棟,王偉,曾國蓀.一種基于微服務架構的新型云件PaaS平臺[J].信息網絡安全, 2015(11):15-20.
[13]馬雄.基于微服務架構的系統設計與開發[D].南京郵電大學,2017:8-12.
[14]張向祺.基于微服務的企業移動辦公平臺規劃設計[J].信息技術與標準化,2016
(3):13-15.
[15]洪華軍,吳建波,冷文浩.一種基于微服務架構的業務系統設計與實現J].計算機與數 字工程, 2018, 46(01):149-154.
[16]楊俊偉,紀鑫,胡強新.基于微服務架構的電力云服務平臺J].電力信息與通信技術, 2017, 14(1):8-12
[17]蔡海尼,何盼,文俊浩.面向服務架構的數據服務在數據訪問中的應用J].重慶大學學 報:自然科學版, 2009, 32(10):1208-1213
[18]牛曉菲.基于SOA的跨域單點登錄系統的研究與實現:[D].北京:北京交通大學圖書館, 2009:11-17.
[19]張晶,黃小鋒.一種基于微服務的應用框架[J].計算機系統應用,2016,25(9):265-270
[20]毛煜蘇.基于Spring Cloud微服務架構的評論系統的設計與實現[D].華中科技大學, 2018:22-27.
[21]Montesi F, Weber J. Circuit breakers, discovery, and API gateways in microservices[J]. arXiv preprint arXiv:1609.05830, 2016.
[22]LeungA, Spyker A, Bozarth T. Titus: Introducing Containers to the Netflix Cloud[J]. Queue, 2017, 15(5):30.
[23]張羽.一種分布式服務治理框架的設計與實現:[D].北京:北京交通大學圖書館, 2016:22-23.
[24]Slominski A, Muthusamy V,Khalaf R.Building a multi-tenant cloud service from legacy code with docker containers[C]//Cloud Engineering (IC2E),2015 IEEE International Conference on. IEEE, 2015: 394-396.
[25]朱榮鑫.基于微服務架構的游戲商城服務端的設計與實現[D].南京大學,2017:19-23.
[26]邵志強.對話系統數據預處理模塊的設計與實現[D].北京交通大學,2017:22-25.
[27]張俊娜, 王尚廣, 孫其博. 融合網絡環境下快速可靠的服務組合容錯方法. 軟件學報, 2017, 28(4): 940-958
[28]Lu Q, Zhu L, Xu X, et al. Mechanisms and Architectures for Tail-Tolerant System Operations in Cloud[C]//HotCloud. 2014.
[29]江萌.基于Docker的PaaS平臺的研究與應用[D].華北電力大學(北京),2017:10-26
[30]武志學.云計算虛擬化技術的發展與趨勢[J].計算機應用,2017, 37(04):915-923.
[31]高禮,高昕.Docker技術在軟件開發過程中的應用研究[J].軟件,2016, 37(03):110-113.
[32]馬越,黃剛.基于Docker的應用軟件虛擬化研究.軟件,2015,36(3): 10-14
[33]朱江.大學生青年志愿者管理系統的設計與實現[D].湖南大學,2016:33-35.
[34]吉•青珂莫.志愿者管理體系的流程分析與構建[D].清華大學,2008:26-39.
[35]韓玉仙.志愿者服務系統設計與實現[D].天津大學,2017:12-13.
[36]熊忠陽,楊營輝,張玉芳.基于密度的KNN分類器訓練樣本裁剪方法的改進[J].計算 機應用, 2010, 30(03):799-801+817.
[37]趙琳,徐明昊.基于元算法Django架構下社團推薦系統的設計[J].微型電腦應用, 2019(05):122-125.
[38]劉應東,牛惠民.基于K-均值聚類的小樣本集KNN分類算法[J].計算機應用與軟件, 2011, 28(05):112-113+125.
[39]汪澎洋.個性化求職信息推薦系統的研究與設計[D].北京郵電大學,2017:19-26.
[40]鄭苗.基于移動就業信息服務的個性化推薦系統設計與實現[D].北京郵電大學,2015.
[41]劉劭.基于微服務的教學支持平臺服務端的設計與實現[D].南京大學,2018:42-49.
[42]吳信龍.閩院大學生志愿者管理系統的研究與分析[D].云南大學,2015:39.
[43]郝凱.基于簡歷數據的職位推薦系統的設計與實現[D].東南大學,2018:52-58.