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