国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

移動系統(tǒng)中離線數(shù)據(jù)技術(shù)研究

2018-11-22 11:17:56唐廣花李強
科技創(chuàng)新與應(yīng)用 2018年31期
關(guān)鍵詞:移動應(yīng)用

唐廣花 李強

摘 要:文章通過對移動應(yīng)用中離線數(shù)據(jù)技術(shù)的研究,結(jié)合電力、公路等外業(yè)管理系統(tǒng)的業(yè)務(wù)需求,提出了移動應(yīng)用系統(tǒng)中采用離線數(shù)據(jù)技術(shù)的總體解決方案,從而解決當前移動應(yīng)用系統(tǒng)在信號不穩(wěn)定區(qū)域的應(yīng)用問題。

關(guān)鍵詞:外業(yè)管理;離線數(shù)據(jù);移動應(yīng)用

中圖分類號:TP393.02 文獻標志碼:A 文章編號:2095-2945(2018)31-0045-02

Abstract: Based on the research of off-line data technology in mobile application and the business requirement of electric power and highway field management system, this paper puts forward the overall solution of off-line data technology in mobile application system, thus solving the application problem of the current mobile application system in the region with unstable signal.

Keywords: field management; offline data; mobile applications

1 概述

隨著智能手機及其他智能移動終端的普及,伴隨而來的是APP呈現(xiàn)爆發(fā)式增長。然而,當前大部分的APP都是在線使用,而部分行業(yè),外業(yè)工作人員很多時候需要在崇山峻嶺的野外,甚至是隧道中進行戶外作業(yè),這些地方通訊信號還沒完全覆蓋或者網(wǎng)絡(luò)很不穩(wěn)定,在線的APP將無法進行正常的操作,因此在這些APP中必須采用離線數(shù)據(jù)處理技術(shù),讓工作人員能夠在無網(wǎng)絡(luò)的情況下保持順暢的數(shù)據(jù)錄入及查詢工作。

2 移動應(yīng)用系統(tǒng)離線數(shù)據(jù)技術(shù)分析

2.1 離線數(shù)據(jù)技術(shù)分析

當前,用于移動APP的離線數(shù)據(jù)存儲技術(shù)的發(fā)展已經(jīng)比較成熟,常見的離線數(shù)據(jù)存儲技術(shù)主要有SQLite數(shù)據(jù)庫技術(shù)、基于LocalStorage客戶端本地文件存儲技術(shù)以及IndexedDB移動數(shù)據(jù)庫技術(shù)等等。

各種離線數(shù)據(jù)技術(shù)各有千秋,SQLite功能強大但操作比較麻煩,基于LocalStorage本地文件方式操作簡單但是只能存儲數(shù)量級較小的數(shù)據(jù),相對而言IndexedDB既可以存儲大量的數(shù)據(jù)又操作便捷,IndexedDB能夠在客戶端存儲大量的結(jié)構(gòu)化數(shù)據(jù),數(shù)據(jù)以對象的方式進行保存和管理,IndexedDB創(chuàng)建了一套使用索引高效檢索的API,通過API可以高效地對數(shù)據(jù)進行保存和讀取,同時支持查詢和搜索,所以使用IndexedDB做為移動端數(shù)據(jù)庫比較合適。

2.2 離線應(yīng)用系統(tǒng)總體方案

2.2.1 業(yè)務(wù)模式

外業(yè)人員使用移動APP基于離線狀態(tài)獨立開展外業(yè)處理(數(shù)據(jù)采集等),移動端APP通過本地數(shù)據(jù)庫臨時存儲離線狀態(tài)下新錄入的業(yè)務(wù)數(shù)據(jù),回到網(wǎng)絡(luò)狀況好的環(huán)境下,啟動數(shù)據(jù)同步,將移動端數(shù)據(jù)提交到服務(wù)器數(shù)據(jù)中,內(nèi)業(yè)人員及管理人員通過PC端對數(shù)據(jù)進行后續(xù)的處理及應(yīng)用。

2.2.2 實現(xiàn)思路

移動端APP基于IndexedDB數(shù)據(jù)庫存儲數(shù)據(jù),建立移動端與服務(wù)器端的數(shù)據(jù)操作規(guī)則(哪些數(shù)據(jù)在移動端進行新增和修改,哪些數(shù)據(jù)只能在Web端修改等),據(jù)此規(guī)則建立基于http的數(shù)據(jù)同步服務(wù)(Webservice)并部署至外網(wǎng),移動端通過Webservice與服務(wù)器進行數(shù)據(jù)交換。

2.2.3 系統(tǒng)結(jié)構(gòu)(見圖1)

3 離線數(shù)據(jù)的實現(xiàn)方案

3.1 數(shù)據(jù)規(guī)則定義

為了讓數(shù)據(jù)在移動端的離線操作和PC Web端的在線操作之間達到統(tǒng)一,而不出現(xiàn)混亂,就必須在數(shù)據(jù)的訪問、修改、交換上定義一定的規(guī)則,從數(shù)據(jù)交換的角度,移動端的所有數(shù)據(jù)可以分為基礎(chǔ)數(shù)據(jù)、業(yè)務(wù)數(shù)據(jù)兩大類,其訪問、修改及交換的規(guī)則如下:

基礎(chǔ)數(shù)據(jù):只能在PC端進行修改,移動端只能訪問不可修改,在進行數(shù)據(jù)交換時,只需從服務(wù)器下載至移動端,無需從移動端上傳服務(wù)器。

業(yè)務(wù)數(shù)據(jù):對于本地新增的部分業(yè)務(wù)數(shù)據(jù),在數(shù)據(jù)與服務(wù)器進行交換前可以任意修改,當數(shù)據(jù)上傳服務(wù)器之后,在移動端只能查詢,不能再進行編輯,只能在pc端進行修改。非本設(shè)備新增的業(yè)務(wù)數(shù)據(jù)一律不能編輯、只能查詢。在進行數(shù)據(jù)交換時,需要上傳本地新增的部分數(shù)據(jù),還需要從服務(wù)器下載必要的業(yè)務(wù)數(shù)據(jù)到移動端,以備查閱。

3.2 數(shù)據(jù)結(jié)構(gòu)設(shè)計

為了實現(xiàn)移動端與服務(wù)器數(shù)據(jù)的交換,保證交換的規(guī)則和交換效率,數(shù)據(jù)庫結(jié)構(gòu)的設(shè)計需要在實現(xiàn)原有業(yè)務(wù)需求的基礎(chǔ)上增加以下的設(shè)計:

(1)增加一個數(shù)據(jù)交換定義表,用于記錄移動端數(shù)據(jù)與服務(wù)器的交換規(guī)則,后續(xù)的數(shù)據(jù)管理及交換都按此表中的定義進行操作,數(shù)據(jù)定義表主要包含表名稱、說明、交換規(guī)則等字段,表結(jié)構(gòu)及數(shù)據(jù)示例如表1:

(2)在所有的業(yè)務(wù)數(shù)據(jù)庫表上增加同步狀態(tài)標志字

段,用來標記哪些記錄為新增的(需要上傳的),哪些是同步完成(不能再在移動端進行修改)的記錄,字段類型為整數(shù),移動端新增的記錄該字段默認為0,同步完成后的相應(yīng)記錄的狀態(tài)標記字段設(shè)為1,一般業(yè)務(wù)數(shù)據(jù)表結(jié)構(gòu)及數(shù)據(jù)如表2:

3.3 離線數(shù)據(jù)訪問實現(xiàn)

IndexedDB以對象的方式存取數(shù)據(jù),它創(chuàng)建了一套API,通過API實現(xiàn)數(shù)據(jù)的基本操作,使用起來簡單且直觀。通過indexedDB.open(數(shù)據(jù)庫名稱,版本號)打開移動端數(shù)據(jù)庫,建立與數(shù)據(jù)庫的連接。在indexedDB中沒有表的概念,而是objectStore,一個數(shù)據(jù)庫中可以包含多個objectStore,objectStore是一個靈活的數(shù)據(jù)結(jié)構(gòu),可以存放多種類型數(shù)據(jù)。一個objectStore相當于一張表,里面存儲的每條數(shù)據(jù)和一個鍵相關(guān)聯(lián)。

3.4 數(shù)據(jù)同步

當移動終端處于離線操作時,采集的數(shù)據(jù)只能臨時保存在本機,無法存儲到更加安全的服務(wù)器上,也不能進行后續(xù)的業(yè)務(wù)處理,同時本地的基礎(chǔ)數(shù)據(jù)等也會因為服務(wù)器上的數(shù)據(jù)更新而變得過時,所以當移動設(shè)備進入網(wǎng)絡(luò)狀況較好的區(qū)域時,需要盡快進行數(shù)據(jù)同步,將采集的數(shù)據(jù)上傳至服務(wù)器,同時從服務(wù)器下載最新的其他數(shù)據(jù)。讓本機和服務(wù)器的數(shù)據(jù)都保持最新狀態(tài)。數(shù)據(jù)同步主要分為數(shù)據(jù)上傳和數(shù)據(jù)下載兩個部分,通過調(diào)用部署在服務(wù)器上的webservice的相關(guān)方法來實現(xiàn)。

3.4.1 數(shù)據(jù)上傳

將本地新增數(shù)據(jù)上傳至服務(wù)器,保存到服務(wù)器數(shù)據(jù)庫中,上傳數(shù)據(jù)的整個流程:(1)獲取數(shù)據(jù):根據(jù)數(shù)據(jù)定義表中定義的數(shù)據(jù)上傳表清單(這些表中有可能有新增數(shù)據(jù)),逐個表進行獲取數(shù)據(jù),只讀取各表中數(shù)據(jù)同步狀態(tài)為0的數(shù)據(jù);(2)數(shù)據(jù)上傳:將獲取到的數(shù)據(jù)轉(zhuǎn)換成JSON格式或者xml格式的文件包,通過調(diào)用數(shù)據(jù)同步服務(wù)的提交數(shù)據(jù)方法,將數(shù)據(jù)提交給服務(wù),通過服務(wù)(Webservice)將數(shù)據(jù)傳輸給服務(wù)器;(3)數(shù)據(jù)接收:服務(wù)器接收到上傳的數(shù)據(jù)包后,進行解析,將上傳的數(shù)據(jù)逐個插入到對應(yīng)的表中,在數(shù)據(jù)插入前先開啟事務(wù),如果發(fā)生異常,全部回滾,返回失敗標記給移動端;當全部數(shù)據(jù)正常插入后,結(jié)束事務(wù),返回成功標記給移動端;(4)數(shù)據(jù)狀態(tài)更新:當數(shù)據(jù)同步服務(wù)反饋數(shù)據(jù)同步成功后,移動端將本次上傳數(shù)據(jù)對應(yīng)的狀態(tài)全部修改為1。

3.4.2 數(shù)據(jù)下載

下載基礎(chǔ)數(shù)據(jù)及必要的業(yè)務(wù)數(shù)據(jù)到移動端,替換現(xiàn)有數(shù)據(jù),數(shù)據(jù)下載流程:(1)請求下載:通過調(diào)用Webserice的數(shù)據(jù)下載接口,發(fā)起數(shù)據(jù)下載請求;(2)數(shù)據(jù)準備:Webservice獲取服務(wù)器上最新的數(shù)據(jù)(只獲取同步定義表中列舉的表中的全部數(shù)據(jù)),轉(zhuǎn)換成JSON格式或者XML格式的數(shù)據(jù)包;(3)數(shù)據(jù)傳輸:通過http協(xié)議將數(shù)據(jù)包從服務(wù)器下載至移動端;(4)數(shù)據(jù)替換:解析收到的數(shù)據(jù)包后,開啟事務(wù),將移動端對應(yīng)表中原有的數(shù)據(jù)全部刪除,將下載的新數(shù)據(jù)添加到對應(yīng)的表中,如發(fā)生異常,回滾事務(wù),將移動端數(shù)據(jù)還原為下載之前的狀態(tài),正常完成數(shù)據(jù)替換后,更新移動端數(shù)據(jù)同步時間。

4 結(jié)束語

本文基于外業(yè)APP系統(tǒng),對數(shù)據(jù)離線技術(shù)及實現(xiàn)方案進行了探索,以indexdb作為移動終端的數(shù)據(jù)庫,提出了離線應(yīng)用系統(tǒng)數(shù)據(jù)處理的基本框架,從數(shù)據(jù)交換規(guī)則定義、數(shù)據(jù)結(jié)構(gòu)設(shè)計、移動數(shù)據(jù)庫訪問、數(shù)據(jù)同步等方面對實現(xiàn)應(yīng)用系統(tǒng)的離線數(shù)據(jù)處理方案進行了分析,為移動應(yīng)用系統(tǒng)使用離線數(shù)據(jù)庫提供了實現(xiàn)思路。

參考文獻:

[1]穆鑫鑫,蔣同海,程力,等.基于JSON的離線數(shù)據(jù)同步策略及應(yīng)用[J].計算機系統(tǒng)應(yīng)用,2017,12.

[2]李青巖.Android下的移動空間數(shù)據(jù)存取方法研究[D].江西理工大學(xué),2015.

[3]霍冰鵬.基于HTML5的離線存儲技術(shù)[J].十堰職業(yè)技術(shù)學(xué)院學(xué)報,2013,4.

猜你喜歡
移動應(yīng)用
T學(xué)校公共設(shè)施便捷報修平臺的移動應(yīng)用研究
東方教育(2016年18期)2017-01-16 16:42:44
云計算環(huán)境下的微課移動云平臺設(shè)計
大數(shù)據(jù)時代下免費手機軟件盈利模式探討
基于APICloud的“校園健身達人”APP設(shè)計與實現(xiàn)
基于Android平臺的教學(xué)應(yīng)用系統(tǒng)研究
基于PhoneGap技術(shù)的跨平臺移動應(yīng)用開發(fā)探討
智能手機移動應(yīng)用交互框架研究
戲劇之家(2016年11期)2016-06-22 13:24:35
基于iOS的校園電子地圖的研究與實現(xiàn)
移動天氣系統(tǒng)UI設(shè)計
移動互聯(lián)網(wǎng)在防汛工作中的應(yīng)用
科技視界(2016年4期)2016-02-22 08:53:41
博爱县| 颍上县| 织金县| 桑日县| 巩义市| 区。| 长泰县| 临漳县| 荣昌县| 黎城县| 小金县| SHOW| 宝应县| 苍梧县| 荃湾区| 莫力| 陵水| 海南省| 天全县| 墨竹工卡县| 尼玛县| 湛江市| 嘉兴市| 连云港市| 静乐县| 临西县| 建始县| 河津市| 云南省| 舞钢市| 罗城| 宣城市| 拉萨市| 镇宁| 舞阳县| 新龙县| 武清区| 齐河县| 武宁县| 肥西县| 高邑县|