亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于JSON數(shù)據(jù)交換的移動(dòng)終端與服務(wù)器端異構(gòu)數(shù)據(jù)庫的數(shù)據(jù)交互

        2016-10-18 07:48:15李金來吳濤
        現(xiàn)代計(jì)算機(jī) 2016年16期
        關(guān)鍵詞:主鍵服務(wù)器端異構(gòu)

        李金來,吳濤

        (海洋石油工程(青島)有限公司,青島266100)

        基于JSON數(shù)據(jù)交換的移動(dòng)終端與服務(wù)器端異構(gòu)數(shù)據(jù)庫的數(shù)據(jù)交互

        李金來,吳濤

        (海洋石油工程(青島)有限公司,青島266100)

        隨著移動(dòng)互聯(lián)網(wǎng)發(fā)展和Android平臺(tái)的SQLite數(shù)據(jù)庫系統(tǒng)的應(yīng)用日益廣泛以及企業(yè)間信息交換的日益頻繁,移動(dòng)端數(shù)據(jù)庫與服務(wù)器端不同種類數(shù)據(jù)庫之間進(jìn)行數(shù)據(jù)共享或傳輸?shù)膯栴}日益突出。傳統(tǒng)的數(shù)據(jù)庫轉(zhuǎn)換工具已不能很好地解決數(shù)據(jù)類型復(fù)雜的數(shù)據(jù)庫之間的數(shù)據(jù)交換。針對(duì)以上問題,對(duì)Android終端SQLite數(shù)據(jù)庫和服務(wù)器端異構(gòu)數(shù)據(jù)庫的數(shù)據(jù)交換進(jìn)行研究,借助新興的JSON數(shù)據(jù)交換格式和JavaBean技術(shù),對(duì)移動(dòng)端SQLite數(shù)據(jù)庫與服務(wù)器端數(shù)據(jù)庫數(shù)據(jù)交換進(jìn)行實(shí)現(xiàn)。

        數(shù)據(jù)交換;SQLite;JSON;異構(gòu)數(shù)據(jù)庫;Android

        0 引言

        隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)的迅速發(fā)展和Android操作系統(tǒng)的應(yīng)用,目前,在許多行業(yè)、單位或機(jī)構(gòu)、部門內(nèi)部對(duì)于一些實(shí)時(shí)的業(yè)務(wù)數(shù)據(jù)使用Android移動(dòng)終端的SQLite數(shù)據(jù)庫來存儲(chǔ)。由于在后臺(tái)對(duì)數(shù)據(jù)提取、分析、挖掘的要求和Android數(shù)據(jù)終端受限于存儲(chǔ)容量小的缺點(diǎn),移動(dòng)端數(shù)據(jù)庫需要按時(shí)與服務(wù)器端數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交換。因時(shí)間推移、人事變遷以及數(shù)據(jù)庫技術(shù)的發(fā)展和數(shù)據(jù)庫時(shí)常變化,再加上實(shí)施數(shù)據(jù)管理系統(tǒng)的階段性、技術(shù)性以及其他經(jīng)濟(jì)和人為因素的影響,在一個(gè)單獨(dú)企業(yè)內(nèi)部采用不同的數(shù)據(jù)管理系統(tǒng)的現(xiàn)象非常普遍,從簡(jiǎn)單的文件數(shù)據(jù)庫到復(fù)雜的網(wǎng)絡(luò)數(shù)據(jù)庫,它們構(gòu)成了企業(yè)的異構(gòu)數(shù)據(jù)源。為了進(jìn)行信息的交流,或者當(dāng)目前使用的服務(wù)器端數(shù)據(jù)庫已經(jīng)不能滿足數(shù)據(jù)的日益增加而要求更大更高級(jí)的數(shù)據(jù)庫的需求時(shí),需要適應(yīng)在異構(gòu)數(shù)據(jù)庫間進(jìn)行數(shù)據(jù)的傳輸和交換,特別是對(duì)于后者,則需要在移動(dòng)端SQLite數(shù)據(jù)庫和服務(wù)器端異構(gòu)數(shù)據(jù)庫間進(jìn)行數(shù)據(jù)的上傳和下載。另外,對(duì)于數(shù)據(jù)庫軟件開發(fā)公司而言,其項(xiàng)目開發(fā)過程中也經(jīng)常涉及數(shù)據(jù)的導(dǎo)入和導(dǎo)出操作。

        1 SQLite數(shù)據(jù)庫概述

        Google為Andriod平臺(tái)處理大量數(shù)據(jù)提供了SQLite數(shù)據(jù)庫技術(shù)。SQLite是一款輕型的數(shù)據(jù)庫,它的設(shè)計(jì)目標(biāo)是服務(wù)于嵌入式系統(tǒng),而且目前已經(jīng)廣泛使用。其占用資源非常低,能夠支持Windows/Linux/Unix等主流的操作系統(tǒng),也能夠跟很多程序語言相結(jié)合,例如C#、PHP、Java等。

        2 基于JSON數(shù)據(jù)交換的移動(dòng)終端與服務(wù)器端異構(gòu)數(shù)據(jù)庫的數(shù)據(jù)交互的方法

        2.1基于JSON數(shù)據(jù)交換的移動(dòng)終端與服務(wù)器端異構(gòu)數(shù)據(jù)庫的數(shù)據(jù)交互的方法簡(jiǎn)介

        本文提出的數(shù)據(jù)交換方法成功應(yīng)用在海洋石油工程(青島)有限公司信息化科研綜合攻關(guān)研究的“基于C/S架構(gòu)下的臺(tái)賬監(jiān)控與統(tǒng)計(jì)系統(tǒng)軟件的開發(fā)與應(yīng)用”課題中。海洋石油工程(青島)有限公司臺(tái)賬監(jiān)控與統(tǒng)計(jì)系統(tǒng)采用C/S架構(gòu),Android系統(tǒng)移動(dòng)端集成了數(shù)據(jù)交換功能,通過無線網(wǎng)絡(luò)將數(shù)據(jù)上傳至服務(wù)器,由服務(wù)器接口程序分析并將數(shù)據(jù)插入到后臺(tái)數(shù)據(jù)庫中。系統(tǒng)架構(gòu)圖如圖1所示:

        圖1 系統(tǒng)架構(gòu)圖示

        利用“SQLite數(shù)據(jù)庫+JavaBean技術(shù)+JSON數(shù)據(jù)交換格式+服務(wù)器端數(shù)據(jù)庫”的四位一體的設(shè)計(jì)模式,本系統(tǒng)規(guī)定了協(xié)議數(shù)據(jù)單元(Protocol Data Unit,PDU)內(nèi)容包括請(qǐng)求與回復(fù)格式,請(qǐng)求類別定義,回復(fù)類別定義,斷點(diǎn)續(xù)傳方式,無響應(yīng)處理等。將SQLite數(shù)據(jù)庫表中的每一行數(shù)據(jù)對(duì)應(yīng)成一個(gè)JavaBean對(duì)象,通過JSON技術(shù)對(duì)JavaBean對(duì)象進(jìn)行序列化,最終和請(qǐng)求組根據(jù)自定義協(xié)議內(nèi)容封裝成數(shù)據(jù)包并壓縮,通過無線網(wǎng)絡(luò),發(fā)送到服務(wù)器并由服務(wù)器端通信接口程序進(jìn)行解析。服務(wù)器端解壓縮并拆包,根據(jù)協(xié)議內(nèi)容及數(shù)據(jù)組織格式分析出移動(dòng)端發(fā)來的數(shù)據(jù)類型存入服務(wù)器端的數(shù)據(jù)庫,并對(duì)移動(dòng)端的請(qǐng)求進(jìn)行響應(yīng)。其技術(shù)路線如圖2所示。

        圖2 技術(shù)路線圖示

        2.2 SQLite數(shù)據(jù)庫與服務(wù)器端異構(gòu)數(shù)據(jù)庫數(shù)據(jù)交換設(shè)計(jì)

        為實(shí)現(xiàn)數(shù)據(jù)交換,首先應(yīng)該把移動(dòng)端SQL數(shù)據(jù)庫字段設(shè)計(jì)為一個(gè)JavaBean類:

        CREATE TABLE storage(record_id integer primary key autoincrement,machine_id integer,storage_time date,price integer)

        轉(zhuǎn)化對(duì)應(yīng)的JavaBean類結(jié)構(gòu)為:

        在程序中為JavaBean實(shí)體對(duì)象賦值,其代碼為:

        將JavaBean序列化為JSON對(duì)象,經(jīng)過JSON封裝以后會(huì)變成以下格式:

        最后將請(qǐng)求組和數(shù)據(jù)JSON對(duì)象拼接成一個(gè)JSON字符串,進(jìn)行壓縮,其代碼為:

        數(shù)據(jù)經(jīng)壓縮后發(fā)送,服務(wù)器端接口程序進(jìn)行解析,其步驟為:解壓縮,JSON反序列化為JavaBean對(duì)象,數(shù)據(jù)插入數(shù)據(jù)庫中。其代碼是發(fā)送的逆過程,不再贅述。

        2.3數(shù)據(jù)交換關(guān)鍵問題的解決方案

        對(duì)于Android平臺(tái)的移動(dòng)端設(shè)備而言,大量的應(yīng)用利用SQLite數(shù)據(jù)庫的目的是為搜集實(shí)時(shí)數(shù)據(jù)。而在實(shí)時(shí)數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)中,主鍵作為唯一性標(biāo)示是沒有特定意義的,這一點(diǎn)與業(yè)務(wù)主鍵有所區(qū)別。如表1所示,員工信息表中的員工編號(hào)是人為設(shè)計(jì)或指定的編號(hào),因此表1中員工編號(hào)為業(yè)務(wù)主鍵。

        表1 員工信息表

        邏輯主鍵是為標(biāo)示數(shù)據(jù)在數(shù)據(jù)表唯一性和方便開發(fā)而設(shè)置,是無特殊含義的主鍵。如表2所示,實(shí)時(shí)統(tǒng)計(jì)表中自增主鍵record_id并無實(shí)際意義,其作用則是利于后期數(shù)據(jù)庫開發(fā)并保證記錄的時(shí)間有序性。

        表2 實(shí)時(shí)統(tǒng)計(jì)表

        當(dāng)多個(gè)Android移動(dòng)端數(shù)據(jù)庫通過數(shù)據(jù)交換插入到服務(wù)端數(shù)據(jù)庫中,以局表為例使用邏輯主鍵會(huì)產(chǎn)生兩個(gè)問題。其一,不同移動(dòng)終端上傳的數(shù)據(jù)到服務(wù)器端數(shù)據(jù)庫,會(huì)產(chǎn)生主鍵沖突。例如每個(gè)終端數(shù)據(jù)庫中的局表都含有value值為1的主鍵record_id。其二,相同的移動(dòng)終端上傳的數(shù)據(jù)到服務(wù)器端數(shù)據(jù)庫,會(huì)產(chǎn)生主鍵沖突。例如相同的數(shù)據(jù)重復(fù)上傳,主鍵相同,產(chǎn)生沖突。再例如移動(dòng)終端重新安裝應(yīng)用,主鍵record_id將從1開始自增,與之前本終端上傳的數(shù)據(jù)發(fā)生主鍵沖突。

        為區(qū)分不同終端的數(shù)據(jù)導(dǎo)致的上傳數(shù)據(jù)主鍵沖突,移動(dòng)端上傳數(shù)據(jù)時(shí),為終端編碼或獲取終端MAC地址來作為終端在整個(gè)系統(tǒng)中的唯一標(biāo)示。在上傳過程中,移動(dòng)端數(shù)據(jù)包請(qǐng)求組攜帶唯一標(biāo)識(shí)與數(shù)據(jù)一起上傳。在服務(wù)器數(shù)據(jù)庫局表中,將這個(gè)唯一標(biāo)示作為主屬性。

        為解決同一移動(dòng)端重復(fù)上傳數(shù)據(jù)導(dǎo)致主鍵沖突,移動(dòng)端采取“傳完就刪”的策略。即移動(dòng)端數(shù)據(jù)上傳到服務(wù)器端并獲取服務(wù)端響應(yīng)之后,從移動(dòng)端數(shù)據(jù)庫中刪除這些記錄,避免重復(fù)上傳或篩選已上傳數(shù)據(jù)才能上傳。

        為解決應(yīng)用因故障重裝或者移動(dòng)端數(shù)據(jù)庫被清空,主鍵重新自增而導(dǎo)致的本終端上傳數(shù)據(jù)發(fā)生的主鍵沖突,服務(wù)器端接收到上傳數(shù)據(jù),在插入到服務(wù)器端數(shù)據(jù)庫之前,將移動(dòng)端自增的Integer型主鍵轉(zhuǎn)為String型的“當(dāng)前系統(tǒng)時(shí)間+移動(dòng)端Integer型主鍵”,作為服務(wù)器端數(shù)據(jù)庫表的主鍵。移動(dòng)端數(shù)據(jù)庫中以自增Integer型主鍵作為外鍵關(guān)系的表需要同時(shí)上傳到服務(wù)器端,以此來保證服務(wù)器端的當(dāng)前系統(tǒng)時(shí)間取相同值,外鍵關(guān)系依舊成立。將移動(dòng)端Integer型外鍵轉(zhuǎn)為String型的“當(dāng)前系統(tǒng)時(shí)間+移動(dòng)端Integer型外鍵”,作為服務(wù)器端的外鍵。按照這種處理方式,移動(dòng)端上傳的數(shù)據(jù)在服務(wù)器端不會(huì)出現(xiàn)主鍵沖突,且沒有破壞各種外鍵關(guān)系。

        借用以上解決方案,在移動(dòng)端的下載方面,服務(wù)器數(shù)據(jù)庫基于分析之后,根據(jù)移動(dòng)端唯一標(biāo)示,將分析結(jié)果下載到移動(dòng)端,并把數(shù)據(jù)插入到對(duì)應(yīng)的表中。

        這種方案有兩大優(yōu)點(diǎn)。第一,更符合實(shí)際應(yīng)用的需求,前臺(tái)移動(dòng)端在采集實(shí)時(shí)數(shù)據(jù)之后,將數(shù)據(jù)上傳到服務(wù)器,接下來對(duì)歷史數(shù)據(jù)的需求其實(shí)就是查看其規(guī)律和分析結(jié)果。移動(dòng)端也可以通過下載瀏覽歷史數(shù)據(jù)。第二、在操作上是簡(jiǎn)單可行并成功避免不同移動(dòng)端和統(tǒng)一移動(dòng)端數(shù)據(jù)之間的主鍵沖突。

        3 數(shù)據(jù)交換方法在現(xiàn)實(shí)中的應(yīng)用

        本文提出的數(shù)據(jù)交換方法成功應(yīng)用在海洋石油工程(青島)有限公司信息化科研綜合攻關(guān)研究的“基于C/S架構(gòu)下的臺(tái)賬監(jiān)控與統(tǒng)計(jì)系統(tǒng)軟件的開發(fā)與應(yīng)用”課題中。移動(dòng)端系統(tǒng)在臺(tái)賬情況實(shí)時(shí)記錄后,系統(tǒng)對(duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)和簡(jiǎn)單分析,并以簡(jiǎn)潔、直觀的報(bào)表方式提供給管理人員。服務(wù)器端系統(tǒng)是對(duì)移動(dòng)端系統(tǒng)的功能擴(kuò)展,通過數(shù)據(jù)通信持久化保存移動(dòng)端的數(shù)據(jù),對(duì)數(shù)據(jù)加以提取、分析、整合、挖掘。最終形成一個(gè)能夠直觀反映臺(tái)賬數(shù)據(jù)的統(tǒng)計(jì)平臺(tái)。平板電腦利用無線網(wǎng)絡(luò),將臨場(chǎng)技戰(zhàn)術(shù)統(tǒng)計(jì)數(shù)據(jù)和訓(xùn)練質(zhì)量監(jiān)控?cái)?shù)據(jù)匯集,形成一個(gè)以SQLite數(shù)據(jù)庫平臺(tái)作為支撐的綜合移動(dòng)端數(shù)據(jù)體系。利用該系統(tǒng)所提供數(shù)據(jù)通信功能,管理人員能夠?qū)⒁苿?dòng)端數(shù)據(jù)上傳至服務(wù)器端持久化保存,對(duì)這些移動(dòng)端數(shù)據(jù)進(jìn)行詳細(xì)的分析和挖掘,從中提取到規(guī)律化的賬目特點(diǎn),供公司的信息管理人員改進(jìn)管理方法。

        4 結(jié)語

        本文通過建立JSON中間數(shù)據(jù)源,以JSON對(duì)象作為異構(gòu)數(shù)據(jù)庫之間數(shù)據(jù)轉(zhuǎn)換的橋梁,充分利用了JSON具有較好的系統(tǒng)擴(kuò)展性、可移植性、跨平臺(tái)等特性和優(yōu)點(diǎn),為實(shí)現(xiàn)移動(dòng)端SQLite數(shù)據(jù)庫與服務(wù)器端異構(gòu)數(shù)據(jù)庫間的數(shù)據(jù)轉(zhuǎn)換提供了轉(zhuǎn)換模型。由于JSON和異構(gòu)數(shù)據(jù)庫本身的特點(diǎn),我們有理由相信JSON在異構(gòu)數(shù)據(jù)庫系統(tǒng)中的應(yīng)用將會(huì)越來越廣泛,它們之間的結(jié)合也將會(huì)越來越緊密。

        [1]丘廣華,張文敏.XML編程實(shí)例教程[M].北京:科學(xué)出版社,2004:34-50.

        [2]閻宏.Java與模式[M].北京:電子工業(yè)出版社,2003:179-200,992-1000.

        [3]Brett McLaughlin.使用JSON進(jìn)行數(shù)據(jù)傳輸[EB/OL].[2014-06-09].http://www.ibm.com/developerworks/cn/web/wa-ajaxintro10/.

        [4]徐周,黃上騰.基于XML實(shí)現(xiàn)數(shù)據(jù)庫間信息交換的方法[J].計(jì)算機(jī)工程,2001,27(4):167-175.

        [5]Horstmann C.S,Cornell G.Java核心技術(shù)卷Ⅱ:高級(jí)特性[M].北京:機(jī)械工業(yè)出版社,2006:50-66.

        [6]勒巖,姚尚郎.Google Android開發(fā)入門與實(shí)戰(zhàn)[M].北京:人民郵電出版社,2009:54-125.

        Data Exchange For Database of Mobile Terminals and Heterogeneous Database of Server Based on JSON Data Interchange Format

        LI Jin-lai,WU Tao
        (Offshore Oil Engineering Co.Ltd.,Qingdao 266100)

        With the development of mobile Internet applications,Android SQLite database systems widely spreading and the exchange of information between enterprises frequently progressive,the problem of mobile and server-side database for data sharing or transmission between different types of database become increasingly prominent.Traditional data conversion tools do not have a good solution for data exchange between complex data types database.To solve these problems,studies data exchange based on SQLite database of Android terminals and heterogeneous database data of server.With emerging JSON and JavaBean technology,it achieves the data exchange between SQLite database of mobile client and server database.

        Data Exchange;SQLite;JSON;Heterogeneous Database;Android

        1007-1423(2016)16-0055-04DOI:10.3969/j.issn.1007-1423.2016.16.016

        李金來(1979-),男,山東青島人,本科,中級(jí)工程師,研究方向?yàn)檐浖こ膛c智能信息系統(tǒng)

        2016-03-16

        2016-05-15

        吳濤(1988-),男,山東青島人,碩士研究生,初級(jí)工程師,研究方向?yàn)檐浖こ膛c智能信息系統(tǒng)

        猜你喜歡
        主鍵服務(wù)器端異構(gòu)
        基于Go 實(shí)現(xiàn)的分布式主鍵系統(tǒng)研究
        試論同課異構(gòu)之“同”與“異”
        基于外鍵的E-R圖繪制方法研究
        淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
        成功(2018年10期)2018-03-26 02:56:14
        overlay SDN實(shí)現(xiàn)異構(gòu)兼容的關(guān)鍵技術(shù)
        LTE異構(gòu)網(wǎng)技術(shù)與組網(wǎng)研究
        在Windows中安裝OpenVPN
        在新興異構(gòu)SoCs上集成多種系統(tǒng)
        數(shù)據(jù)庫主鍵的設(shè)計(jì)方法探討
        網(wǎng)頁防篡改中分布式文件同步復(fù)制系統(tǒng)
        一区二区三区四区黄色av网站| 欧美丰满熟妇bbbbbb| 欧美肥婆性猛交xxxx| 午夜亚洲www湿好爽| 久久精品国产亚洲5555| 亚洲第一页在线免费观看| 国产综合精品久久99之一| 天干天干天啪啪夜爽爽av| 中国猛少妇色xxxxx| 国产成人精品电影在线观看18| 亚洲黄片久久| 日本一区二三区在线中文| 日本h片中文字幕在线| 女人被狂躁到高潮视频免费网站 | 久久精品国产自在天天线| 国产精品麻花传媒二三区别| 无码伊人久久大蕉中文无码| 日韩有码在线一区二区三区合集 | 无码人妻精品丰满熟妇区| 无码之国产精品网址蜜芽| 精品国产麻豆免费人成网站| 国精产品一区一区三区| 国精无码欧精品亚洲一区| 成年女人在线观看毛片| 精品熟女av中文字幕| 中文无码伦av中文字幕| 久久亚洲国产精品成人av秋霞| 亚洲精品一品二品av| 中文字幕乱码在线人妻| 成人a级视频在线观看| 久久国产乱子伦精品免费强| 国产亚洲日本精品二区| 日韩精品在线视频一二三| 亚洲精品国产av天美传媒| 亚洲男人的天堂精品一区二区| 亚洲日本精品一区二区三区| 精品无码国产自产在线观看水浒传 | 天码人妻一区二区三区| 国产人成亚洲第一网站在线播放| 91精品国产综合久久国产| 私人vps一夜爽毛片免费|