公務(wù)員期刊網(wǎng) 論文中心 正文

用戶滿意度在線調(diào)查系統(tǒng)設(shè)計論文

前言:想要寫出一篇引人入勝的文章?我們特意為您整理了用戶滿意度在線調(diào)查系統(tǒng)設(shè)計論文范文,希望能給你帶來靈感和參考,敬請閱讀。

用戶滿意度在線調(diào)查系統(tǒng)設(shè)計論文

1評選系統(tǒng)的設(shè)計

1.1系統(tǒng)結(jié)構(gòu)設(shè)計

本在線調(diào)查系統(tǒng)基于B/S架構(gòu),采取分層設(shè)計,模塊化實現(xiàn)的思路進(jìn)行構(gòu)建,以便于系統(tǒng)的維護(hù)與擴展。整個系統(tǒng)劃分為在線評選子系統(tǒng)與管理子系統(tǒng)兩部分,分別面向大量的匿名用戶與少量的管理人員使用。在線評選子系統(tǒng)是整個系統(tǒng)的核心,通過系統(tǒng)前臺頁面對企業(yè)產(chǎn)品信息進(jìn)行展示。由于前臺頁面訪問量比較大,且其框架結(jié)構(gòu)在運行期間幾乎不會變化,因此采取了寫靜態(tài)技術(shù)來實現(xiàn),以達(dá)到性能的最優(yōu)化。后臺管理子系統(tǒng)訪問量比較小,主要包括企業(yè)產(chǎn)品信息管理,評選數(shù)據(jù)的管理以及評選系統(tǒng)的維護(hù)。由于系統(tǒng)參數(shù)數(shù)據(jù)量小,將其存放于系統(tǒng)配置文件中。

1.2評選交互設(shè)計

全省參評企業(yè)產(chǎn)品數(shù)量多,如果全部同時展示出來,一方面?zhèn)鬏敂?shù)據(jù)量太大,另一方面不方便用戶瀏覽,直接影響著用戶的使用體驗,同時,與大規(guī)模用戶訪問進(jìn)行交互,也影響著系統(tǒng)運行的穩(wěn)定性,需要盡量減少用戶交互的數(shù)據(jù)量。因此,對企業(yè)產(chǎn)品進(jìn)行了分類分組,當(dāng)用戶選擇某一類產(chǎn)品時,會按產(chǎn)品分類從后臺數(shù)據(jù)庫中提取數(shù)據(jù)。

1.3數(shù)據(jù)庫的設(shè)計

數(shù)據(jù)庫系統(tǒng)主要包括兩個核心數(shù)據(jù)表:產(chǎn)品信息表與投票數(shù)據(jù)采集表,分別存放參評企業(yè)的產(chǎn)品信息與匿名評選人的投票記錄。

2評選系統(tǒng)的實現(xiàn)

2.1匿名評選子系統(tǒng)的實現(xiàn)用戶評選流程圖

用戶選擇一個產(chǎn)品類別后,通過產(chǎn)品分類提取模塊,產(chǎn)生一個Ajax的Get請求,從后臺數(shù)據(jù)庫中提取該分類的企業(yè)與產(chǎn)品信息。用戶可以對產(chǎn)品進(jìn)行評選,因為可以同時對多個產(chǎn)品進(jìn)行同時評選,因此每選擇一個產(chǎn)品時,即利用JavaScript程序進(jìn)行檢測與記錄,選擇結(jié)束后提交由后臺程序進(jìn)行處理。采取Ajax技術(shù)實現(xiàn)局部刷新,而不觸發(fā)整個頁面的回傳,減少了網(wǎng)絡(luò)數(shù)據(jù)傳輸量,顯著提升系統(tǒng)性能以及用戶操作體驗。后臺程序首先對驗證碼進(jìn)行驗證,另外,須對前臺驗證過的數(shù)據(jù)再次進(jìn)行驗證,比如一次評選產(chǎn)品數(shù)不能超過10個,以避免繞過前臺檢測的惡意攻擊。為了防止用戶重復(fù)評選,還需要對客戶端的IP地址進(jìn)行有效性驗證。用戶進(jìn)行評選時,前臺拼接提交的字符串,是通過分割符將多組所評選的產(chǎn)品編號與選項值分割后組成的,示例字符串形式如“產(chǎn)品編號1,選項值X;產(chǎn)品編號2,選項值Y;產(chǎn)品編號3,選項值Z;……”。后臺服務(wù)器上運行的數(shù)據(jù)庫存儲時,也僅需要一條SQL語句就能完成批量插入操作,操作效率非常高,示例SQL代碼如“INSERTINTOvotes(productid,option,ip)select字段值列表1UNIONSELECT段值列表2UNIONSELECT段值列表3……”。其中,字段值是由強類型變量傳入的,productid字段與option字段均為整型數(shù)據(jù),而ip字段為長整型數(shù)據(jù),均不會導(dǎo)致SQL注入攻擊。另外,ip字段定義為長整型數(shù)據(jù)要比定義為char(16)類型數(shù)據(jù),在進(jìn)行IP地址查詢時效率高得多,特別在用戶訪問量大時,更容易體現(xiàn)其性能優(yōu)點。后臺對客戶端IP地址的有效性驗證,是通過投票記錄表中IP記錄實現(xiàn)的,示例SQL代碼為“selectcount(*)fromvoteswheredatediff(day,votedate,getdate())=0andip=用戶IP地址”。如果返回值與當(dāng)前評選數(shù)之和大于10,則說明評選超過當(dāng)天評選數(shù),評選無效。

2.2后臺管理子系統(tǒng)的實現(xiàn)

后臺管理子系統(tǒng)主要提供給管理人員使用。通過后臺管理系統(tǒng),工作人員通過評選結(jié)果查看模塊,實時查看企業(yè)產(chǎn)品的考評結(jié)果??梢园丛u分高低、所在區(qū)域等多種方式進(jìn)行排序,也可以導(dǎo)出Excel格式的結(jié)果。在產(chǎn)品數(shù)據(jù)管理中,可以將Excel文件或文本文檔中的原始數(shù)據(jù),遠(yuǎn)程批量導(dǎo)入企業(yè)產(chǎn)品信息表中。通過系統(tǒng)參數(shù)設(shè)置模塊,可以設(shè)置數(shù)據(jù)庫鏈接字符串,恢復(fù)與備份數(shù)據(jù)庫等。系統(tǒng)參數(shù)的存放,在基于ASP.NET技術(shù)進(jìn)行開發(fā)時,存于web.config文件中,而基于J2EE技術(shù)開發(fā)時,則存于config.properties文件中。假設(shè)某企業(yè)產(chǎn)品的調(diào)查數(shù)據(jù)是滿意為x,一般為y,不滿意為z。那么該產(chǎn)品的用戶滿意度即等于(x×1.0+y×0.7)/(x+y+z)×100%。實現(xiàn)用戶滿意度計算的方式有多種,由SQL語句直接運算效率高且快捷,示例如下:語句1:SELECT*FROM(SELECTprodid,SUM(CASEWHENoption=1THEN1ELSE0END)ASopt1,SUM(CASEWHENoption=2THEN1ELSE0END)ASopt2,SUM(CASEWHENoption=3THEN1ELSE0END)ASopt3FROMdbo.votesGROUPBYprodid)astmp_A語句2:SELECTname,product,opt1,opt2,opt3,(opt1*1.0+opt2*0.7)/(opt1+opt2+opt3)AStotalFROMproductsLEFTOUTERJOINtmp_AONproducts.prodid=tmp_A.prodid語句1得到某產(chǎn)品滿意度各類別計數(shù)值,并生成臨時表tmp_A,語句2得到滿意度計算結(jié)果,通過表products與表tmp_A聯(lián)合查詢,可以得到企業(yè)名稱(name),產(chǎn)品名稱(product)等信息,以及最終滿意度計算結(jié)果(total)。語句1與語句2可以合并為一條語句完成計算查詢。

2.3安全問題及解決方案

滿意度在線調(diào)查系統(tǒng)采取的B/S結(jié)構(gòu),具有很強的開放性、共享性,這給網(wǎng)上投票系統(tǒng)帶來了很多安全隱患。本系統(tǒng)采取的主要安全措施有session防護(hù)、驗證碼防護(hù)、IP地址限制等。在進(jìn)行識別碼驗證時,服務(wù)器產(chǎn)生一個唯一的會話標(biāo)識符。會話標(biāo)識符可以采取cookie技術(shù)來存儲,但是,如果用戶的瀏覽器關(guān)閉了cookie的功能,將無法參與評選,因此采取session存儲會話標(biāo)識符。由于默認(rèn)的session有效期為20或30min,當(dāng)用戶訪問量大時,大量的會話消耗服務(wù)器端內(nèi)存,會嚴(yán)重降低系統(tǒng)的性能。因此,可以設(shè)置ses-sion的失效期(timeout)為2min,且僅在用戶向提交數(shù)據(jù)時創(chuàng)建session,這樣既保證用戶有足夠的時間輸入驗證碼,也保證了會話的及時關(guān)閉。在系統(tǒng)運行初始,通過后臺管理頁,曾發(fā)現(xiàn)投票數(shù)據(jù)出現(xiàn)兩個可疑點:

①同一IP地址連續(xù)出現(xiàn)若干次后才開始變化;

②對同一產(chǎn)品的投票時間間隔非常短,統(tǒng)計結(jié)果平均約為30s,這在人工操作且需要輸入驗證碼的情況下是難以完成的,由此認(rèn)定是刷票的結(jié)果。防御自動投票軟件的方法就是增加驗證碼識別難度。一般的驗證碼很容易被OCR軟件破解,比如字跡比較清晰的數(shù)字圖片等。另外還要防止系統(tǒng)出現(xiàn)漏洞:

①在每次投票時用戶填寫的驗證碼驗證失敗后,要及時更換,防止多次猜測同一驗證碼;

②在每次投票成功后,要及時清空服務(wù)器端session會話,否則易招致攻擊者重復(fù)提交。

3結(jié)束語

本系統(tǒng)自從部署后,每年開通一次,每次在線調(diào)查歷時約半個月,累計接受訪問量約30萬人次,參評約8萬人次。在線調(diào)查期間,該系統(tǒng)經(jīng)受住了復(fù)雜網(wǎng)絡(luò)環(huán)境的考驗,運行比較平穩(wěn)。通過引入高難度的驗證碼方案,有效預(yù)防了自動化程序的攻擊。但是,由于一些網(wǎng)絡(luò)水軍的存在,對在線評選活動造成很大沖擊。這些所謂水軍是網(wǎng)絡(luò)上分散在各地方的人,有組織有預(yù)謀地進(jìn)行投票,盡管政府與網(wǎng)絡(luò)運營商共同對網(wǎng)絡(luò)水軍進(jìn)行封殺,但依然沒有更有效的措施進(jìn)行預(yù)防。如何抵御網(wǎng)絡(luò)水軍的干擾,將是下一步研究的課題。特別鳴謝:河南省質(zhì)量技術(shù)監(jiān)督局質(zhì)量管理處(省防偽辦公室)宋松林處長和石笑宇主任提供的幫助。

作者:楊省偉 單位:河南質(zhì)量工程職業(yè)學(xué)院