蔣凌燕
摘 要:在互聯(lián)網(wǎng)+時(shí)代,用戶數(shù)據(jù)采集需求不斷變化。以往針對(duì)多變的數(shù)據(jù)采集需求開發(fā)系統(tǒng)需要花費(fèi)較高的經(jīng)濟(jì)和時(shí)間成本,而現(xiàn)存系統(tǒng)又往往不能滿足數(shù)據(jù)采集的新需求。多終端自適應(yīng)數(shù)據(jù)采集系統(tǒng)采用Web前后臺(tái)框架新技術(shù),對(duì)系統(tǒng)實(shí)現(xiàn)的一些關(guān)鍵問題進(jìn)行分析,包括系統(tǒng)中采集的數(shù)據(jù)元模型如何定義,自適應(yīng)式網(wǎng)頁表單如何生成,多終端訪問如何實(shí)現(xiàn),核心數(shù)據(jù)如何傳輸和存儲(chǔ)等,并探討系統(tǒng)可擴(kuò)展性和存在的問題,提出解決方案。
關(guān)鍵詞:多終端;自適應(yīng)網(wǎng)頁;數(shù)據(jù)采集
DOIDOI:10.11907/rjdk.1511377
中圖分類號(hào):TP303
文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào)文章編號(hào):16727800(2015)012001502
0 引言
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,接入互聯(lián)網(wǎng)的設(shè)備多種多樣,移動(dòng)終端對(duì)互聯(lián)網(wǎng)的訪問越來越頻繁[1]。大量信息系統(tǒng)往往不能滿足用戶數(shù)據(jù)采集新需求,需要根據(jù)采集的數(shù)據(jù)內(nèi)容設(shè)計(jì)專門的系統(tǒng),一旦有新的數(shù)據(jù)采集需求來不及開發(fā)系統(tǒng),又會(huì)回歸原始的數(shù)據(jù)采集方法:發(fā)放電子或紙質(zhì)表格,再進(jìn)行繁瑣的人工匯總和統(tǒng)計(jì)。開發(fā)自適應(yīng)多終端數(shù)據(jù)采集系統(tǒng)尤為必要[2]。
1 系統(tǒng)功能設(shè)計(jì)
1.1 系統(tǒng)數(shù)據(jù)采集功能設(shè)計(jì)
系統(tǒng)中的用戶角色分成可以發(fā)起數(shù)據(jù)采集的管理員和需要填寫表單完成數(shù)據(jù)采集的普通用戶。管理員根據(jù)實(shí)際需求來定義采集數(shù)據(jù)的表格或者表單結(jié)構(gòu),系統(tǒng)負(fù)責(zé)將表格內(nèi)容轉(zhuǎn)換成Web表單型頁面,并生成元數(shù)據(jù)模型,當(dāng)普通用戶填寫表單數(shù)據(jù)時(shí),數(shù)據(jù)以元數(shù)據(jù)的模式存儲(chǔ)到數(shù)據(jù)庫(kù)中,當(dāng)管理員完成一項(xiàng)數(shù)據(jù)采集任務(wù)時(shí),系統(tǒng)將存儲(chǔ)的元數(shù)據(jù)生成符合要求的表格文件并提供下載,同時(shí)表格文件存儲(chǔ)在服務(wù)器上,可供多次使用。
1.2 自適應(yīng)數(shù)據(jù)采集的原始數(shù)據(jù)模型
對(duì)于新的數(shù)據(jù)采集需求,自適應(yīng)多終端數(shù)據(jù)采集系統(tǒng)由管理員角色的用戶來發(fā)起數(shù)據(jù)采集任務(wù),對(duì)于需要采集的數(shù)據(jù)原始模型采用可自定義的表單或者Excel表格轉(zhuǎn)換為表單,通過上傳Excel表格或者自定義表單來完成初步任務(wù)創(chuàng)建,系統(tǒng)負(fù)責(zé)將原始數(shù)據(jù)模型從Excel表格轉(zhuǎn)換為數(shù)據(jù)庫(kù)中的元數(shù)據(jù),并生成用于數(shù)據(jù)采集的表單,在數(shù)據(jù)庫(kù)中采用元數(shù)據(jù)的模式來存儲(chǔ)用戶輸入的采集數(shù)據(jù)。
系統(tǒng)讀取Excel文件的常用方法有以下幾種:JDBC-ODBC Excel Driver、 jxl.jar、jcom.jar 、 poi.jar,本文選用jxl.jar庫(kù)來實(shí)現(xiàn)原始數(shù)據(jù)模型的讀取,Excel文件如圖1所示,讀取并轉(zhuǎn)換流程如圖2所示。
圖1 定義需采集數(shù)據(jù)內(nèi)容的Excel文件
圖2 原始Excel文件轉(zhuǎn)成元數(shù)據(jù)流程
讀取Excel文件后在程序中存儲(chǔ)成集合并轉(zhuǎn)換成元素?fù)?jù),元數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中結(jié)構(gòu)如圖3所示。
圖3 數(shù)據(jù)庫(kù)中元數(shù)據(jù)結(jié)構(gòu)
1.3 自適應(yīng)數(shù)據(jù)采集表單生成
數(shù)據(jù)庫(kù)中的元數(shù)據(jù)定義了數(shù)據(jù)采集的格式,在服務(wù)器端進(jìn)行轉(zhuǎn)化生成對(duì)應(yīng)的表單頁面,轉(zhuǎn)換過程中使用struts2的部分服務(wù)器端標(biāo)記。
首先在數(shù)據(jù)庫(kù)中讀取元數(shù)據(jù),轉(zhuǎn)換成集合遍歷后生成對(duì)應(yīng)表單元素,代碼如下所示,使用struts的迭代標(biāo)簽生成。
|
1.4 支持多終端訪問的前臺(tái)頁面
系統(tǒng)頁面使用HTML5新特性配合前臺(tái)框架技術(shù)JQuery實(shí)現(xiàn)多終端訪問的支持,在系統(tǒng)前臺(tái)頁面設(shè)計(jì)中根據(jù)客戶端屏幕的大小定義可變的布局,按照響應(yīng)式頁面來設(shè)計(jì)。響應(yīng)式網(wǎng)頁根據(jù)不同設(shè)備環(huán)境自動(dòng)響應(yīng)及調(diào)整,提供兼容不同屏幕分辨率、清晰度以及屏幕定向方式豎屏(portrait)、橫屏(landscape),采用彈性柵格布局方式,頁面在不同的分辨率環(huán)境下呈現(xiàn)不同的布局[3]。
數(shù)據(jù)采集頁面通過腳本語句獲取當(dāng)前顯示設(shè)備的窗口寬度和高度,再動(dòng)態(tài)修改頁面的大小和布局來實(shí)現(xiàn)多終端自適應(yīng)頁面的生成。同時(shí),不同大小終端提供的用戶體驗(yàn)也不同。PC機(jī)上大多利用鍵盤和鼠標(biāo),平板和手機(jī)采用觸摸屏需要用手指控制。響應(yīng)式頁面除了頁面適應(yīng)以外還需根據(jù)用戶輸入方式提供多種操控方式和頁面響應(yīng),需要對(duì)觸摸屏的事件進(jìn)行綁定和響應(yīng),這是響應(yīng)式頁面的用戶交互特殊性的體現(xiàn)。
1.5 數(shù)據(jù)處理和存儲(chǔ)
普通用戶將數(shù)據(jù)輸入采集系統(tǒng)后存儲(chǔ)在數(shù)據(jù)庫(kù)中,當(dāng)任務(wù)書發(fā)起人(管理員)結(jié)束數(shù)據(jù)采集任務(wù)時(shí),系統(tǒng)將數(shù)據(jù)庫(kù)中的元數(shù)據(jù)轉(zhuǎn)換為Excel表格文件,文件存儲(chǔ)在服務(wù)器上并生成對(duì)應(yīng)的文件信息存儲(chǔ)于數(shù)據(jù)庫(kù)中,管理員可以查看文件信息并下載對(duì)應(yīng)的文件。
所采集的數(shù)據(jù)有兩種存儲(chǔ)方式,一種是數(shù)據(jù)庫(kù)中的元數(shù)據(jù),一種是用元數(shù)據(jù)生成的Excel表格,兩種方式存儲(chǔ)的數(shù)據(jù)用途不同,數(shù)據(jù)庫(kù)中的元數(shù)據(jù)用于數(shù)據(jù)采集和頁面顯示功能,Excel表格文件生成后存儲(chǔ)在服務(wù)器上,數(shù)據(jù)采集任務(wù)結(jié)束后供用戶下載。元數(shù)據(jù)轉(zhuǎn)換成Excel文件的流程如圖4所示,生成的任務(wù)文件下載頁面如圖5所示。
2 系統(tǒng)可擴(kuò)展性
數(shù)據(jù)采集系統(tǒng)在實(shí)際使用中往往面臨大規(guī)?;蛘叱笠?guī)模用戶并發(fā)的問題,在大量用戶并發(fā)使用時(shí)容易出現(xiàn)問題。同一個(gè)任務(wù)需要采集的用戶數(shù)量較大時(shí),鏈接服務(wù)器的并發(fā)訪問達(dá)到一定的規(guī)模,會(huì)造成服務(wù)器響應(yīng)變慢,影響用戶體驗(yàn)。針對(duì)這一問題使用狀況改善,可以使用已發(fā)布的新技術(shù)來解決。作為html5的重要部分,WebSocket可以完成更多的并發(fā)大量數(shù)據(jù)處理應(yīng)用,解決了Web實(shí)時(shí)化的問題,相比傳統(tǒng)httpWebSocket服務(wù)端可以推送(push)數(shù)據(jù)到Web客戶端,減少數(shù)據(jù)傳送量。 通過在瀏覽器和服務(wù)器之間建立雙向連接,以基于事件的方式,賦予瀏覽器實(shí)時(shí)通信能力,服務(wù)器端和客戶端可以同時(shí)發(fā)送并響應(yīng)請(qǐng)求,而不同于HTTP的請(qǐng)求和響應(yīng)[4]。數(shù)據(jù)提交部分功能用node.js實(shí)現(xiàn),配合WebSocket技術(shù)來實(shí)現(xiàn)。通過Node.js 的事件驅(qū)動(dòng)以及非阻塞I/O 模型來開發(fā)在分布式設(shè)備上運(yùn)行的數(shù)據(jù)密集型數(shù)據(jù)采集實(shí)時(shí)應(yīng)用。通過事件循環(huán)(event loop)的架構(gòu),提高所編寫的可擴(kuò)展性高的服務(wù)器的安全性和健壯性。同時(shí)配合HTML5的WebSock功能在前臺(tái)實(shí)現(xiàn)客戶端和服務(wù)器之間的直接數(shù)據(jù)傳輸連接,加快數(shù)據(jù)傳輸和響應(yīng)的速度。數(shù)據(jù)采集功能采用Websock配合node.js更好地能更好地適應(yīng)大量用戶并發(fā)的應(yīng)用環(huán)境,同時(shí)采用node.js開發(fā)的功能,相比傳統(tǒng)服務(wù)器可以添加到已有的信息系統(tǒng)中,而不影響已有系統(tǒng)功能,數(shù)據(jù)采集系統(tǒng)的適應(yīng)性將大大提高。
圖4 元數(shù)據(jù)轉(zhuǎn)換成Excel文件流程
圖5 任務(wù)文件下載頁面
3 結(jié)語
本文對(duì)多終端自適應(yīng)數(shù)據(jù)采集系統(tǒng)的關(guān)鍵問題進(jìn)行分析,設(shè)計(jì)系統(tǒng)功能,可以用于數(shù)據(jù)采集任務(wù),使用方便,但也存在一些問題待解決。元數(shù)據(jù)在數(shù)據(jù)庫(kù)中存儲(chǔ)雖然解決了數(shù)據(jù)采集中用戶數(shù)據(jù)結(jié)構(gòu)多變的問題,但也帶來了新的問題,所采集的數(shù)據(jù)需要修改或者查詢時(shí)需要從數(shù)據(jù)庫(kù)中取出元數(shù)據(jù)進(jìn)行解析,當(dāng)數(shù)據(jù)量達(dá)到一定規(guī)模時(shí)則降低了數(shù)據(jù)處理的速度,解決辦法之一是針對(duì)一個(gè)數(shù)據(jù)采集任務(wù)在數(shù)據(jù)庫(kù)中創(chuàng)建對(duì)應(yīng)的數(shù)據(jù)表,當(dāng)任務(wù)完成時(shí)將數(shù)據(jù)表刪除,保留Excel文件在服務(wù)器上。同時(shí)處理的采集任務(wù)較多時(shí)也會(huì)造成數(shù)據(jù)庫(kù)中有大量新建的數(shù)據(jù)表,這兩種方式需要根據(jù)具體的使用環(huán)境來取舍。 本文數(shù)據(jù)采集系統(tǒng)的采集方式主要是用戶通過網(wǎng)頁表單的方式,下一步在系統(tǒng)功能擴(kuò)展方面希望能拓寬數(shù)據(jù)采集渠道,從各種各樣的外部硬件和數(shù)據(jù)采集終端設(shè)備中來采集原始數(shù)據(jù)并上傳服務(wù)器處理。
參考文獻(xiàn)參考文獻(xiàn):
[1] SU JUNMING, TSENG SHIANSHYONG, LIN HUANYU. A personalized learning content adaptation mechanism to meet diverse user needs in mobile learning environments[J]. UserModeling and Useradapted Interaction, 2011,21(1):549.
[2] 呂江峰.遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與應(yīng)用[J]. 中國(guó)新通信 ,2014(8):8384
[3] 陸鋼,朱培軍,李慧云,等. 智能終端跨平臺(tái)應(yīng)用開發(fā)技術(shù)研究[J].電信科學(xué),2012,28(5):1417.
[4] 工業(yè)和信息化部電信研究院.移動(dòng)互聯(lián)網(wǎng)白皮書[EB/OL].http://www.catr.cn/kxyj/qwfb/bps/201405/P0201405123394644 14386.pdf,2014(5):1516.
[5] 毛新軍,尹俊文.基于組織的分布式開放系統(tǒng)自適應(yīng)機(jī)制孫躍坤[J];計(jì)算機(jī)學(xué)報(bào),2013(11):2126.
[6] 申文明,孫中平,張雪,等.生態(tài)環(huán)境移動(dòng)數(shù)據(jù)采集系統(tǒng)研究與實(shí)現(xiàn)[J].生態(tài)學(xué)報(bào), 2013(24):231245.
(責(zé)任編輯:陳福時(shí))