• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

      李金來,吳濤

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

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

      李金來,吳濤

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

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

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

      0 引言

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

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

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

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

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

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

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

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

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

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

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

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

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

      在程序中為JavaBean實體對象賦值,其代碼為:

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

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

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

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

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

      表1 員工信息表

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

      表2 實時統(tǒng)計表

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

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

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

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

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

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

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

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

      4 結(jié)語

      本文通過建立JSON中間數(shù)據(jù)源,以JSON對象作為異構(gòu)數(shù)據(jù)庫之間數(shù)據(jù)轉(zhuǎn)換的橋梁,充分利用了JSON具有較好的系統(tǒng)擴(kuò)展性、可移植性、跨平臺等特性和優(yōu)點(diǎn),為實現(xiàn)移動端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)用將會越來越廣泛,它們之間的結(jié)合也將會越來越緊密。

      [1]丘廣華,張文敏.XML編程實例教程[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實現(xiàn)數(shù)據(jù)庫間信息交換的方法[J].計算機(jī)工程,2001,27(4):167-175.

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

      [6]勒巖,姚尚郎.Google Android開發(fā)入門與實戰(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-),男,山東青島人,本科,中級工程師,研究方向為軟件工程與智能信息系統(tǒng)

      2016-03-16

      2016-05-15

      吳濤(1988-),男,山東青島人,碩士研究生,初級工程師,研究方向為軟件工程與智能信息系統(tǒng)

      猜你喜歡
      主鍵服務(wù)器端異構(gòu)
      基于Go 實現(xiàn)的分布式主鍵系統(tǒng)研究
      試論同課異構(gòu)之“同”與“異”
      基于外鍵的E-R圖繪制方法研究
      淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
      成功(2018年10期)2018-03-26 02:56:14
      overlay SDN實現(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è)計方法探討
      網(wǎng)頁防篡改中分布式文件同步復(fù)制系統(tǒng)
      龙南县| 临汾市| 沙田区| 开鲁县| 岗巴县| 绥德县| 临猗县| 浦江县| 五家渠市| 怀宁县| 监利县| 治县。| 青神县| 新绛县| 卢龙县| 孟连| 龙江县| 固始县| 金堂县| 加查县| 滨海县| 泰宁县| 资兴市| 永平县| 洛隆县| 都江堰市| 都安| 台东县| 乌恰县| 女性| 安泽县| 建瓯市| 丰顺县| 石狮市| 霍邱县| 潞城市| 麦盖提县| 东乌珠穆沁旗| 探索| 康定县| 安新县|