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