李光明 房靖力
摘要:在如今信息爆炸的時代,我們需要從海量數(shù)據(jù)中抽取特定的一些數(shù)據(jù)作為與用戶交互的數(shù)據(jù)輸出,將數(shù)據(jù)以一對一或多對一的方式推薦給有特定需求的用戶的系統(tǒng)稱之為推薦系統(tǒng),而通過hadoop、spark等大數(shù)據(jù)處理組件對大量數(shù)據(jù)處理后的有用數(shù)據(jù),則需要推薦數(shù)據(jù)后臺管理系統(tǒng)的存放與管理,將特定數(shù)據(jù)輸送到特定用戶客戶端,達(dá)到To C即面向用戶的推薦效果;該系統(tǒng)采用JavaWeb技術(shù)、B/S模式與MVC思想進(jìn)行系統(tǒng)開發(fā)。測試結(jié)果表明,該系統(tǒng)擁有良好的交互性與可用性。
關(guān)鍵詞:大數(shù)據(jù);JavaWeb;B/S模式;推薦系統(tǒng)
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2020)03-0066-03
1 背景
互聯(lián)網(wǎng)經(jīng)過幾十年的發(fā)展,已經(jīng)成為多用戶端、大數(shù)據(jù)量的互聯(lián)網(wǎng)環(huán)境,每天產(chǎn)生超過EB級的數(shù)據(jù)量。如今,衡量一個公司規(guī)模大小需要看它擁有多少數(shù)據(jù)量,由此可見,每天產(chǎn)生的大量數(shù)據(jù)是未來互聯(lián)網(wǎng)生態(tài)的寶貴財富。
當(dāng)人們面對如此海量的數(shù)據(jù)而無所適從時,推薦系統(tǒng)油然而生,通過此類系統(tǒng),人們可以從海量的數(shù)據(jù)中提取到對自己有用的信息而做出下一步?jīng)Q策。一個成功的推薦系統(tǒng)需要有數(shù)據(jù)源、數(shù)據(jù)分析處理模塊以及前后臺數(shù)據(jù)管理與用戶交互的模塊。
本文設(shè)計實(shí)現(xiàn)了基于JavaWeb的推薦數(shù)據(jù)后臺管理系統(tǒng),用于將經(jīng)過推薦算法模塊計算過后的數(shù)據(jù)進(jìn)行管理與操作,按照不同用戶的性格習(xí)慣,推薦出對應(yīng)的個性化數(shù)據(jù);同時本系統(tǒng)包括了對用戶信息及其權(quán)限的基本管理與日志系統(tǒng)的管理。
2 系統(tǒng)開發(fā)技術(shù)簡介
2.1 JavaWeb技術(shù)簡介
Java是一款面向?qū)ο蟮母呒壵Z言,它具有封裝、繼承、多態(tài)三大特性,保證了它在代碼書寫方面優(yōu)于面向過程語言。Java擁有獨(dú)特的JVM虛擬機(jī),保證了它可跨平臺使用,并且,Java的垃圾回收發(fā)生在JVM的堆內(nèi)存中,有分代回收等垃圾回收算法對Java對象進(jìn)行自動垃圾回收,無須像C++-樣手動回收、釋放資源。
Java作為一款從出世以后就備受歡迎的語言,已經(jīng)是Apache、阿里巴巴、京東等大型公司的眾多組件的底層語言,并且再大數(shù)據(jù)Hadoop生態(tài)領(lǐng)域,Java同樣是包括Hadoop、Flume、Kafka等大數(shù)據(jù)組件的底層語言。
Java擁有許多進(jìn)行Web開發(fā)的優(yōu)秀基礎(chǔ)框架,例如Spring、SpringMVC、MyBatis,SpringBoot等后端框架,良好的結(jié)合了與大數(shù)據(jù)組件相關(guān)的API供程序員使用。在JavaWeb類程序發(fā)布上線以后,同樣擁有良好的技術(shù)支持在線維護(hù)與后期擴(kuò)展,是開發(fā)后臺類管理系統(tǒng)的首選技術(shù)。
2.2 MVC模式概述
MVC即Model、View、Controller系統(tǒng)開發(fā)三層架構(gòu)模式,有利于實(shí)現(xiàn)代碼的高內(nèi)聚低耦合的特性,也有利于后期的代碼擴(kuò)展與維護(hù)。
MVC的原理就是將整個系統(tǒng)代碼的邏輯按輸入、邏輯處理、輸出來分為Model、View、Controller三層進(jìn)行分離,從而使該系統(tǒng)分為視圖、控制、模型層三層。
模型層中包括邏輯上的Service(業(yè)務(wù)處理)層以及Dao(數(shù)據(jù)庫交互)層,主要負(fù)責(zé)系統(tǒng)中業(yè)務(wù)方面以及數(shù)據(jù)交互方面的邏輯處理。視圖層指與用戶交互的前端頁面,例如經(jīng)常使用的JSP、ThymeLeaf及FreeMarker等模板引擎??刂茖迂?fù)責(zé)接收接口中傳來的數(shù)據(jù)以及輸出數(shù)據(jù)到視圖層進(jìn)行頁面渲染。MVC模式在推薦數(shù)據(jù)管理平臺中的應(yīng)用模型圖如圖1所示。3系統(tǒng)分析
本文使用SSM作為推薦數(shù)據(jù)管理系統(tǒng)的后臺框架,SSM即Spring.SpringMVC、MyBatis的總稱,其具有配置簡單、代碼解耦性強(qiáng)、后期可維護(hù)性可擴(kuò)展性高的良好優(yōu)勢。使用Java編程語言編寫代碼,與其他組件底層代碼相同,API互通,具有高性能、跨平臺等優(yōu)點(diǎn)。Mysql數(shù)據(jù)庫作為持久層軟件,因其輕量的架構(gòu)、免費(fèi)開源的特性,具有易用性強(qiáng)、功能強(qiáng)大、成本低廉、可進(jìn)行分布式構(gòu)建的優(yōu)點(diǎn)。
本文主要設(shè)計開發(fā)一個存儲和管理推薦數(shù)據(jù)的后臺數(shù)據(jù)管理系統(tǒng),其所用技術(shù)從技術(shù)可行性、操作可行性.經(jīng)濟(jì)可行性方面都是可行的,可以完成從開始的編碼到最終的運(yùn)行、測試、上線、維護(hù)的整個過程。
4 系統(tǒng)設(shè)計
推薦數(shù)據(jù)后臺管理系統(tǒng)主要用于對各類計算后的推薦數(shù)據(jù)、日志數(shù)據(jù)、用戶信息數(shù)據(jù)等進(jìn)行操作。系統(tǒng)共包含普通管理員與超級管理兩類用戶,超級管理員對普通管理員的信息進(jìn)行管理維護(hù)。普通管理員主要對推薦信息及用戶信息進(jìn)行管理維護(hù),其中推薦信息管理模塊的數(shù)據(jù)主要來源為離線信息數(shù)據(jù),即經(jīng)過推薦算法模型計算后的TOP-N推薦信息,前端通過各項(xiàng)數(shù)據(jù)的推薦權(quán)重進(jìn)行推薦,權(quán)重越高,數(shù)據(jù)排名越靠前,同時管理員可以人工操作近期的熱點(diǎn)數(shù)據(jù)并將推薦權(quán)重升高,進(jìn)而在頁面上顯示TOP-N推薦結(jié)果。
4.1 系統(tǒng)架構(gòu)設(shè)計
系統(tǒng)后端框架采用SSM(Spring、SpringMVC、MyBatis)后端集成框架,前端UI框架使用easy-UI框架,持久層軟件使用Mysql輕量級數(shù)據(jù)庫,使用B/S架構(gòu)模式通過瀏覽器登錄方式進(jìn)行頁面訪問,使用tomcat作為系統(tǒng)的輕量級服務(wù)器,采用MVC模式進(jìn)行系統(tǒng)開發(fā)。
4.2 各模塊功能概述
4.2.1 登錄模塊
為了保證系統(tǒng)數(shù)據(jù)的安全性,需要在登錄模塊中使用基于安全的組件shiro,shiro組件底層集成了權(quán)限配置和權(quán)限控制以及對系統(tǒng)訪問路徑的過濾,可以對每個接口進(jìn)行需求過濾,達(dá)到安全登錄安全退出的目的。
登錄模塊使用賬戶、密碼、驗(yàn)證碼三級驗(yàn)證,首先通過前端比對賬戶密碼的格式正確性,然后通過數(shù)據(jù)庫比對賬戶密碼正確性,同時通過實(shí)時生成的驗(yàn)證碼在前端進(jìn)行比對,三級驗(yàn)證通過后才可以登入系統(tǒng)。
系統(tǒng)退出后需要重新登入,不可以通過瀏覽器上方返回按鈕返回,通過shiro接口過濾實(shí)現(xiàn)。
4.2.2 管理員管理模塊
系統(tǒng)包括三級用戶,超級管理員、普通管理員及基本用戶,超級管理員作為系統(tǒng)最高權(quán)限角色,管理系統(tǒng)日志數(shù)據(jù)以及對普通管理員進(jìn)行維護(hù);普通管理員維護(hù)基本數(shù)據(jù)以及普通用戶的操作行為;設(shè)立普通用戶角色是為了在無權(quán)限下對系統(tǒng)中數(shù)據(jù)進(jìn)行查看下載。
4.2.3 推薦數(shù)據(jù)管理模塊(本系統(tǒng)以電影數(shù)據(jù)為例)
推薦系統(tǒng)前端通過網(wǎng)頁埋點(diǎn)技術(shù)將用戶的日常點(diǎn)擊瀏覽日志數(shù)據(jù)通過kafka消息隊(duì)列以及Spark并行處理模塊進(jìn)行處理后存人推薦數(shù)據(jù)后臺管理系統(tǒng)中,為前端推薦展示作數(shù)據(jù)支持以及底層持久化。
4.2.4 用戶管理模塊
用戶管理模塊主要是對用戶基本信息進(jìn)行維護(hù),通過管理員對普通用戶的操作權(quán)限進(jìn)行維護(hù),以期對不同用戶顯示出不同的個性化推薦結(jié)果。
4.3 數(shù)據(jù)庫設(shè)計
通過對系統(tǒng)的前期需求調(diào)研以及系統(tǒng)分析后,可將本系統(tǒng)分為10個數(shù)據(jù)表,包括admin(管理員表),user(用戶表),roles(角色表),alstab(電影評分表),category(電影類型表),movie(電影信息表),moviecategory(電影Id及類型Id對應(yīng)表),review(交互日志分析表),similartab(相似標(biāo)簽表),topdefaultmovies(排行前15存儲表),數(shù)據(jù)表及數(shù)據(jù)字段如表1所示。
5 系統(tǒng)實(shí)現(xiàn)
5.1 系統(tǒng)搭建環(huán)境系統(tǒng)
推薦數(shù)據(jù)后臺管理系統(tǒng)所采用的系統(tǒng)環(huán)境如表2所示。
5.2 系統(tǒng)部署
基于JavaWeb的推薦數(shù)據(jù)后臺管理系統(tǒng)編寫完成后需要進(jìn)行系統(tǒng)上線測試,本文使用的部署服務(wù)器是開源免費(fèi)的輕量級Tomc at服務(wù)器,成功部署后可以供其他用戶訪問,若需要通過外網(wǎng)訪問,則需要租用公用服務(wù)器如阿里云服務(wù)器并進(jìn)行域名購買,此后用戶可使用特定域名登入系統(tǒng)。
6 系統(tǒng)測試
在系統(tǒng)開發(fā)完成后,為保障系統(tǒng)在正式上線后穩(wěn)定運(yùn)行,不出現(xiàn)嚴(yán)重的bug,我們需要對系統(tǒng)進(jìn)行系統(tǒng)測試。通常使用黑盒測試和白盒測試兩種方式。黑盒測試即完全屏蔽內(nèi)部代碼,只對前端功能進(jìn)行功能邏輯測試,在出現(xiàn)問題后進(jìn)行bug追蹤并修改bug,而白盒測試則是對系統(tǒng)中的代碼邏輯、代碼語法以及方法、接口等進(jìn)行單元測試,確保每一模塊不發(fā)生重大邏輯錯誤。
本文主要使用黑盒測試的方式對系統(tǒng)外部功能進(jìn)行了測試,對代碼書寫中的邏輯錯誤等在代碼編寫階段已經(jīng)解決。
6.1 測試環(huán)境
系統(tǒng)平臺所采用的測試環(huán)境見表3。
6.2 白盒測試
在代碼編寫階段,對代碼的書寫邏輯,命名規(guī)范,路徑配置等進(jìn)行模塊測試,針對每一模塊可以使用Test方法對單模塊進(jìn)行模塊測試,在底層代碼階段對整個系統(tǒng)的bug及邏輯錯誤進(jìn)行修復(fù)。
7 結(jié)束語
本文使用javaWeb等相關(guān)技術(shù)設(shè)計并實(shí)現(xiàn)了一個基于B/S架構(gòu)的推薦數(shù)據(jù)后臺管理系統(tǒng),本系統(tǒng)是基于大數(shù)據(jù)的推薦系統(tǒng)的后臺數(shù)據(jù)支持系統(tǒng),為推薦系統(tǒng)前端進(jìn)行數(shù)據(jù)支持與維護(hù)。本系統(tǒng)發(fā)布維護(hù)簡單,都使用開源免費(fèi)的數(shù)據(jù)庫以及服務(wù)器,通過開源服務(wù)器發(fā)布系統(tǒng)后,用戶可根據(jù)IP或域名對系統(tǒng)進(jìn)行訪問。對整個推薦系統(tǒng)的維護(hù),只需在服務(wù)端進(jìn)行,提高了系統(tǒng)的安全性與可維護(hù)性;該后臺系統(tǒng)通過MVC的思想對代碼模塊進(jìn)行解耦,大大提高了編程速度與效率及后期可擴(kuò)展性。
本系統(tǒng)針對推薦數(shù)據(jù)進(jìn)行管理維護(hù),與推薦系統(tǒng)的前端系統(tǒng)進(jìn)行數(shù)據(jù)對接,有較好的數(shù)據(jù)展示支持作用。
本系統(tǒng)的下一步工作對系統(tǒng)的日志管理模塊進(jìn)行細(xì)化,嘗試構(gòu)建單獨(dú)的日志服務(wù)器,對后臺中每個用戶的操作數(shù)據(jù)進(jìn)行精細(xì)化區(qū)分,以期達(dá)到更好的數(shù)據(jù)支持與個性化推薦效果。
參考文獻(xiàn):
[1]李洋.SSM框架在Web應(yīng)用開發(fā)中的設(shè)計與實(shí)現(xiàn)[J].計算機(jī)技術(shù)與發(fā)展,2016,26(12):190-194.
[2] Walls C,Breidenbach R.Spring in action[M]. Manning Publi-cations Co.2007.
[3]趙小濤.基于SSM框架的鐵路技術(shù)規(guī)章管理系統(tǒng)的設(shè)計與實(shí)現(xiàn)[D].北京:北京交通大學(xué),2018.
[4]楊陽,湯光恒.基于Spring Boot的高校部門測評系統(tǒng)的設(shè)計與實(shí)現(xiàn)[J].福建電腦,2018,34(8):128-129.
[5]徐雯,高建華.基于Spring MVC及MyBatis的Web應(yīng)用框架研究[J]微型電腦應(yīng)用,2012,28(7):1-4,10.
[6]武強(qiáng).基于B/S三層架構(gòu)下的基層連隊(duì)管理信息系統(tǒng)的設(shè)計與實(shí)現(xiàn)[D].長春:長春工業(yè)大學(xué),2018.
[7]姜博文,基于B/S架構(gòu)的資產(chǎn)數(shù)據(jù)管理系統(tǒng)的設(shè)計與實(shí)現(xiàn)[D].北京:北京交通大學(xué),2018.
[8]王書愛.面向?qū)ο蟪绦蛟O(shè)計的應(yīng)用[J].電腦知識與技術(shù),2011, 7(29):7289-7290, 7299.
[9]程春蕊,劉萬軍.高內(nèi)聚低耦合軟件架構(gòu)的構(gòu)建[J].計算機(jī)系統(tǒng)應(yīng)用,2009,18(7):19-22.