沈宇杰
(徽商職業學院電子信息系,安徽 合肥 230061)
各行業為了提升工作效率都設計了不同類型的評議系統,通過定義和定量兩種不同方式進行信息管理,預防可能存在的風險。在網絡信息化的時代,許多行業利用互聯網進行動態評估,擴大評議覆蓋面和加強評議效果。采用周期性評估,能有效掌控評議的目標、內容與方案,從而提升行業的整體發展水平[1-3]。Zulfiqar等[4]在電子商務平臺創立了分析客戶意見的評議系統,通過收集和分析客戶的意見,改進線上購物的體驗。該系統是一個基于以太坊的去中心化產品,采用隨機點對點的節點網絡基礎,評估客戶評論的真實性和有效性。該系統也能對自身的安全性與高效性兩個方面進行分析,有效提升了評議系統的穩定性與健壯性。Zhao等[5]使用一種基于神經網絡的評議系統分析產品的銷售額。該系統的本質是銷售因子模型,利用反向傳播的多層感知器神經網絡,以及權值矩陣運算的方式,分析對線上產品的銷售產生影響的因素。系統從4個方向對產品銷售進行分析,分別是售后評論、銷售策劃、網絡促銷手段、售后服務,總結各方面因素之間的聯系,從而提高產品的銷售額。評議系統選擇關系型數據庫MySQL作為后臺數據系統,并采用開源架構(Spring+SpringMVC+MyBatis,SSM)實現業務邏輯,選擇安卓系統作為移動端。使用評議系統時,用戶不僅能在電腦上通過瀏覽器訪問系統,也可在手機、平板等移動端上通過瀏覽器訪問,增加了便捷性和多樣性。SSM架構由Spring框架、Spring MVC、MyBatis框架三者組成,Spring MVC的核心部分是前置控制器,能將用戶請求映射到對應的控制器。映射成功后,控制器調用相應的業務邏輯。Spring框架采用控制反轉的方式使模塊之間解除耦合,用于服務器端的開發。Mybatis框架通過將Java數據庫連接(Java Database Connectivity,JDBC)封裝,從而使評議系統操作透明化。系統采用的MySQL數據庫,有輕量級、支持結構化查詢語言(Structured Query Language,SQL)的優點,調試功能強大。評議結果的定制輸出功能使用第三方插件包Aspose,能夠處理Word、Excel等辦公文件,對表格屬性、單元格以及公式等進行操作,無需微軟辦公軟件的支持。移動端采用安卓系統,使用通用的數據通信接口,開發資源廣泛。
綜上所述,評議系統將采用SSM架構作為項目的框架,選擇MySQL作為系統數據庫,由第三方插件包Aspose處理定制輸出文件,移動端則基于安卓系統,由此形成完整的技術支撐體系。
現今社會,評議工作在各行各業具有重要的作用[6]。無論是人事決策、考核評價還是金融分析都離不開評議工作[7]。合理的評議對社會發展是有益的推動力,而評議的核心流程就是擺出問卷提供選項,通過投票得出相應的分數進行評價。目前來說,常見的評議工作總體分為兩種,分別是人工評議和在線評議,兩者有著各自的優缺點:
(1)人工評議。這類評議主要出現在重要人事場合,例如年度考核、股東決議、職業升遷等[8]。其優點是參與人數較少,計票評分較為容易;但是缺點也十分明顯:參與人數眾多時易產生計分錯誤,需要手動制定結果報表,等等。
(2)在線評議。在線評議是人工評議的升級,采用線上的投票方式,一般適用于投票參與者眾多的場景,利用計算機的能力處理大量的投票計分工作[9]。但此類評議系統都有著共同的缺點:輸出結果的樣式固定。有的系統提供了較多的選擇模板,但仍有一定的局限性。
本系統針對人工評議和在線評議的缺點進行了改進,不僅克服了人工評議的統計易錯性,也克服了在線評議的樣式固定性。系統分為服務器端和移動客戶端兩大部分。服務器使用開源服務器軟件Tomcat,項目結構使用SSM架構,采用瀏覽器/服務器模式(Browser/Server,B/S)將瀏覽器與系統服務器相結合,提高使用者在服務器端的事務處理邏輯能力。服務器端的軟件代碼包含2個核心模塊,分別是自定義問卷生成模塊、數據自定義輸出模塊,另外包含用戶管理、人工輸入和數據統計3個通用模塊。移動端采用客戶機/服務器架構(Client/Server,C/S),系統服務器通過JS對象簡譜(JavaScript Object Notation,JSON)格式數據通信連接手機、平板,提高系統的使用便攜性。系統的總體業務邏輯設計如圖1所示。

圖1 系統總體設計圖
服務器端承載著數據管理與業務邏輯等功能,包含自定義問卷生成、數據自定義輸出2個核心模塊,以及用戶管理、人工輸入和數據統計3個通用模塊。
2.1.1 自定義問卷生成模塊 評議系統的核心功能是設計需要評議的內容,也稱之為問卷。例如,商場進行促銷后的效果調查就是一個經典的問卷,讓商場老板對促銷后的成績、質量、完成度進行評議,問卷格式如圖2所示。

圖2 促銷業績問卷格式
系統設計的初衷是涵蓋多樣性的題材問卷,不僅僅包含商場也包含其他領域,例如工程項目評議、人事考核評議、環保數據評議等各種題材,這就需要評議系統能夠根據不同的客戶問卷需求,動態生成問卷內容,并且每個單項問題生成數個選項用于評議。因此,如何動態生成問卷是研究的核心。
解決方案是在數據庫中設計樹型結構。在設立一個問卷時,將問卷所有內容按照層次劃分為單元,對每個小單元都設置“父子關系”進行層級關聯,最終將問卷轉換成樹型結構,做到具體內容與結構相互獨立。
設計時有兩張核心數據表用于存儲樹型結構,第1張結構表(Structure Table表),由自碼、層級、父碼、層級名、選項碼(Id、Level、Father Level、Level Name、Option Id)等5個字段組成,決定了單元的層次結構。第2張選項表(Option Table表),記錄了每個分問卷的選項內容與分值。結構表里每一個單元的父碼關聯上一層單元的自碼,最底層的單元利用自身的選項碼關聯選項表內的對應選項,從而構建為樹型。
例如圖2的促銷業績評議轉換成樹型結構如圖3所示。該樹型結構在結構表和選項表中的數據關聯記錄如表1、表2所示。
從圖3、表1和表2中可以看出,根據父碼與自碼的關聯性構建樹型層級結構。結構表中的每個單元的“父碼”關聯上一層相同碼值的“自碼”,而結構表最低層的單元,利用“選項碼”關聯選項表的“選項”。無論問卷的題材、層次、選項如何改變,只要構建出樹型結構,就能用java代碼讀取樹型結構并轉換成評議問卷,最終展示給用戶。

表1 結構表

表2 選項表

圖3 促銷業績評議樹型結構
2.1.2 數據自定義輸出模塊 所有評議系統在問卷評議結束后,需要輸出一個最終結果文件。普通評議系統的結果文件是格式固定的,而本系統能夠利用Aspose插件[10]根據自定義模板文件的結構填充生成所需的結果,實現了動態化輸出。圖4展示了在相同的數據源下,Aspose插件通過不同的模板得出不同樣式的輸出結果。

圖4 Aspose填充模板流程
當管理員點擊“生成結果”按鈕時,系統從結果表中取出評議數據進行封裝,再將封裝好的數據寫入模板文件中(模板文件由模板管理上傳)。最后,輸出的定制結果文件在頁面生成鏈接,供管理員用戶下載。模板填充定制內容的核心代碼如下:

2.1.3 通用模塊 用戶管理模塊、人工輸入模塊和數據統計模塊是當前流行的評議系統通用模塊,故只做簡單介紹:
(1)用戶管理模塊。該模塊主要是實現登錄和注冊的功能,提供管理員和用戶的權限控制,以及普通用戶的注冊和登陸功能。
(2)人工輸入模塊。用戶通過手機或者電腦瀏覽器界面,點選問卷選項,系統根據所有選項的總分值,計算最后的評議結果。
(3)數據統計模塊。當用戶點擊提交按鈕時,選項數據被提交給后臺,系統以結構表和選項表為參照,統計每一個問卷的選項得分并計算出結果。最終用戶的分數會被存入數據庫中的結果表內。
本系統的架構設計采用的是C/S架構,以采集控制終端、Windows平臺軟件、Android平臺APP作為Client客戶程序,由部署在擁有固定IP云主機上的服務器作為Server服務軟件[11]??蛻舳四K主要分為通信部分和客戶端業務部分。
2.2.1 通信設計 系統利用Android APP開發中常用的OkHttp插件[12]包封裝通信數據,與Spring MVC的Web服務接口實現數據的交互。OkHttp能夠連接主機地址的所有請求,可以共享網絡通信套接字和連接池[13],并緩存響應數據,減少了請求次數和訪問延時。
(1)OkHttp通信核心代碼如下:


(2)接收客戶端請求的服務器Controller接口核心代碼如下:

2.2.2 客戶端業務流程 用戶管理由用戶和管理員兩部分組成,通過對JSON數據封裝處理,可高效完成客戶端業務,具體客戶端業務流程如圖5所示。

圖5 客戶端業務流程
客戶端通過用戶管理模塊,進入評議設計或用戶評議功能,根據不同的業務邏輯,將數據參數封裝成JSON數據格式[14],并通過OkHttp向服務器發送請求。服務器接收到請求后,解析JSON格式數據并進入具體的業務邏輯。通過抽象類描述基于OkHttp文件傳輸的基本步驟,體現傳輸行為的統一性。通過抽象類派生的子類實現同步傳輸或者異步傳輸,體現傳輸行為的差異性[15]。
本文基于SSM框架和MySQL數據庫,同時使用Aspose插件設計了可定制輸出結果的評議系統。該系統綜合了B/S模式和基于移動端的C/S模式,不僅可以實現人工投票結果輸入,也能夠通過在線和移動端使用,有效提高了評議工作的效率,完善了評議系統,對評議系統的研究與設計提供了理論支撐。