• 
    

    
    

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

      ?

      基于Web Service嵌入式數(shù)據(jù)庫同步更新解決方案

      2020-08-26 07:46王國飛李質(zhì)建
      電腦知識(shí)與技術(shù) 2020年20期
      關(guān)鍵詞:序列化

      王國飛 李質(zhì)建

      摘要:目前嵌入式數(shù)據(jù)庫已在移動(dòng)終端平臺(tái)得到廣泛使用,但是不同廠商的數(shù)據(jù)庫產(chǎn)品之問還存在不兼容性問題,特別是在嵌入式數(shù)據(jù)庫與服務(wù)器數(shù)據(jù)源同步更新的問題上顯得尤為突出。考慮到商業(yè)產(chǎn)品的價(jià)格以及兼容性問題,本文提出了一種基于Web Service的嵌入式數(shù)據(jù)庫同步更新解決方案,并采用序列化、壓縮和附件技術(shù)等機(jī)制在性能上進(jìn)行優(yōu)化,以滿足實(shí)際商業(yè)或科研應(yīng)用的需要,是一種比較好的可行的解決方案,對(duì)系統(tǒng)項(xiàng)目建設(shè)具有示范和借鑒意義。

      關(guān)鍵詞:嵌入式數(shù)據(jù)庫;Web Service;同步更新;序列化;壓縮;附件技術(shù)

      中圖分類號(hào):rrP393 文獻(xiàn)標(biāo)識(shí)碼:A

      文章編號(hào):1009-3044(2020)20-0051-02

      1國內(nèi)外的移動(dòng)應(yīng)用軟件的發(fā)展

      隨著移動(dòng)應(yīng)用開發(fā)技術(shù)的發(fā)展和智能移動(dòng)終端的普及,移動(dòng)應(yīng)用軟件這個(gè)前景寬廣的領(lǐng)域已經(jīng)受到越來越多軟件廠商的關(guān)注。如何通過一種機(jī)制來訪問多種數(shù)據(jù)庫實(shí)現(xiàn)同步更新,并兼容跨平臺(tái)之間的互操性,Web Service技術(shù)很好地解決了這個(gè)問題,在當(dāng)前的桌面分布式數(shù)據(jù)庫中Web Service已經(jīng)得到廣泛的應(yīng)用。本文主要探討通過Web Service實(shí)現(xiàn)嵌入式數(shù)據(jù)庫與服務(wù)器數(shù)據(jù)源的同步更新,并以微軟的.NET平臺(tái)實(shí)現(xiàn)SOL Server CE與Oracle同步更新為例,得到一種基于Web Ser-vlce的嵌入式數(shù)據(jù)庫同步更新的解決方案,并采用序列化、壓縮和附件技術(shù)等機(jī)制在性能上進(jìn)行優(yōu)化,最后得到優(yōu)化的解決方案。

      2基于Web Service的嵌入式數(shù)據(jù)庫同步更新解決方案實(shí)現(xiàn)

      現(xiàn)在主流的開發(fā)平臺(tái)上都可以開發(fā)基于Web Service的應(yīng)用,如Eclipse,Visual Studio等,而且都對(duì)Web Service的發(fā)布,查找和生成本地代理等過程進(jìn)行了簡(jiǎn)化操作,使得開發(fā)人員能更容易的開發(fā)基于Web Service的應(yīng)用。Web Service一旦部署就可以在項(xiàng)目中調(diào)用,主要分為靜態(tài)調(diào)用和動(dòng)態(tài)調(diào)用。兩種方法沒用本質(zhì)的區(qū)別,靜態(tài)調(diào)用是只能固定調(diào)用某個(gè)Web Service(URL固定),而動(dòng)態(tài)調(diào)用可以通過配置以達(dá)到按跨平臺(tái)調(diào)用的目的。

      2.1嵌入式數(shù)據(jù)庫同步更新的解決方案系統(tǒng)架構(gòu)及實(shí)現(xiàn)

      Web Service是完全基于XML/XSD的標(biāo)準(zhǔn)的新平臺(tái),是個(gè)獨(dú)立的系統(tǒng)軟件,它可以進(jìn)行跨網(wǎng)絡(luò)的計(jì)算機(jī)操作,同時(shí)作為一種分布式的計(jì)算技術(shù),實(shí)現(xiàn)了異構(gòu)系統(tǒng)相互的通信與共享操作。所以在系統(tǒng)集成方案中通常將Web Service作為中間層。在本解決方案中,服務(wù)器端數(shù)據(jù)的更新是在移動(dòng)設(shè)備端來觸發(fā),移動(dòng)設(shè)備端查看并操作數(shù)據(jù)、處理一些或所有的業(yè)務(wù)規(guī)則,同時(shí)提供一個(gè)豐富的用戶界面做出響應(yīng),因此Web ServiCe中既包含了各種對(duì)服務(wù)器端數(shù)據(jù)庫取的操作還包含了各種對(duì)服務(wù)器端數(shù)據(jù)庫存的操作。具體的系統(tǒng)架構(gòu)如圖1所示。

      下面簡(jiǎn)單介紹利用Visual Studio.NET 2008環(huán)境來實(shí)現(xiàn)整個(gè)流程。

      1)建立Web ServiCe

      建立好ASP.NET web service 工程后,在文件Service.cs中添加連接和存取服務(wù)器數(shù)據(jù)源(如oracle等)的操作。

      2)本地調(diào)用Web ServiCe

      部署Web Service后,新建一個(gè)Smart Device應(yīng)用程序(移動(dòng)設(shè)備程序)項(xiàng)目,添加Web引用會(huì)在本地生成代理文件Ref-erenCe.cs,可修改此文件按需調(diào)用不同的Web ServiCe。

      在.NET環(huán)境中調(diào)用Web Service的方法和創(chuàng)建本地類并調(diào)用其方法的過程是十分類似的。由于這只是簡(jiǎn)單介紹使用Web ServiCe的整個(gè)流程,所以業(yè)務(wù)規(guī)則并沒有真正體現(xiàn)出來,實(shí)際的業(yè)務(wù)復(fù)雜的多,需要控制數(shù)據(jù)重復(fù)多、同步失敗等問題,但都是建立在最基本的存取數(shù)據(jù)操作上。另外考慮到網(wǎng)絡(luò)及安全等因素,在實(shí)際的商業(yè)軟件的開發(fā)中還需要加入異常處理等代碼。

      2.2 Web Service數(shù)據(jù)壓縮傳輸

      XML Web ServiCe是通過SOAP(簡(jiǎn)單對(duì)象訪問協(xié)議)協(xié)議進(jìn)行交互的,而SOAP消息是利用XML進(jìn)行描述的。使用XML描述SOAP消息的好處是使得Web Service可以跨平臺(tái)調(diào)用,成就了Web Service的巨大魅力。移動(dòng)終端的性能,無線或偶爾連接的網(wǎng)絡(luò)等因素對(duì)傳輸性能提出了更高的要求。基于SOAP協(xié)議的Web Services已經(jīng)成為網(wǎng)絡(luò)應(yīng)用發(fā)展的主流,其主要機(jī)制有基于數(shù)據(jù)的壓縮,基于Web Service附件技術(shù),基于訪問模式的優(yōu)化(異步),基于緩存機(jī)制的優(yōu)化等等。在移動(dòng)平臺(tái)的應(yīng)用中主要也采用前兩種機(jī)制。下面利用這些機(jī)制對(duì)我們的解決方案進(jìn)行優(yōu)化得到基于Web ServiCe的嵌入式數(shù)據(jù)庫同步更新數(shù)據(jù)壓縮傳輸解決方案。

      2.2.1序列化與反序列化

      在數(shù)據(jù)傳輸之前要將數(shù)據(jù)(對(duì)象)轉(zhuǎn)換成可保持或傳輸?shù)母袷?,這一過程稱為序列化,與序列化相對(duì)的是反序列化,它將數(shù)據(jù)流轉(zhuǎn)換為對(duì)象。序列化用在WEB應(yīng)用開發(fā)中可以解決數(shù)據(jù)庫調(diào)用困難的問題,使用經(jīng)過序列化的流進(jìn)行傳輸效率會(huì)得到大大的提升,Web Service基于SOAP協(xié)議,SOAP協(xié)議也是以對(duì)象的可序列化為基礎(chǔ)的。XML序列化僅將對(duì)象的公共字段和屬性值或者方法的參數(shù)和返回值轉(zhuǎn)換(序列化)為符合特定XML架構(gòu)定義語言(XSD)文檔的XML流。對(duì)Web Service來說,這是最普遍應(yīng)用的一種淺層序列化。另一種為深層序列化,是將對(duì)象的公共字段和私有字段以及類的名稱(包括包含該類的程序集)都被轉(zhuǎn)換為字節(jié)流,然后寫入數(shù)據(jù)流。這就更方便、更準(zhǔn)確地還原了對(duì)象的副本。選擇序列化的原因有兩個(gè):

      (1)將對(duì)象的狀態(tài)保持在存儲(chǔ)媒體中,以便可以在以后重新創(chuàng)建精確的副本;

      (2)通過值將對(duì)象從一個(gè)應(yīng)用程序域發(fā)送到另一個(gè)應(yīng)用程序域中。

      在使用經(jīng)過序列化的流進(jìn)行傳輸效率會(huì)得到大大的提升,深層序列化可進(jìn)一步提高網(wǎng)絡(luò)傳輸?shù)男阅?。在主流開發(fā)平臺(tái)和語言下,序列化已經(jīng)封裝成了接口或者開發(fā)平臺(tái)已經(jīng)把某類型數(shù)據(jù)進(jìn)行了序列化(XML序列化),使開發(fā)者從底層脫離出來以提高開發(fā)效率。序列化過程最后返回字節(jié)數(shù)組,可以大大壓縮數(shù)據(jù)集對(duì)象的體積。

      2.2.2壓縮與解壓縮

      數(shù)據(jù)壓縮技術(shù)一直以來是人們研究的重點(diǎn),壓縮的效率也越來越高?,F(xiàn)在已經(jīng)有很成熟的算法以及工具包(組件)。經(jīng)常使用的數(shù)據(jù)壓縮APl有zip、gzip等方式。Web Service中壓縮的使用非常簡(jiǎn)單,就是在發(fā)送XML流之前對(duì)XML流進(jìn)行壓縮,在接收端對(duì)已經(jīng)壓縮的XML流進(jìn)行解壓縮就可以了。針對(duì)不同文件格式采用成熟的壓縮和解壓縮技術(shù),降低I/O器件的存取頻率,有助于增強(qiáng)整個(gè)系統(tǒng)的性能,尤其當(dāng)數(shù)據(jù)量比較大的時(shí)候,可以大大提高傳輸效率。對(duì)于純文本的XML,壓縮可以減少其80%以上的體積。壓縮和解壓縮往往會(huì)具有很大的CPU占有率以及內(nèi)存占有率,雖然可以使得XML的體積大大減少,但是其過程卻是十分耗費(fèi)系統(tǒng)資源的。對(duì)于配置不高的客戶端甚至是服務(wù)器端,都會(huì)造成不小的壓力。而對(duì)于系統(tǒng)響應(yīng)XML來講,一般都包含大量的數(shù)據(jù),導(dǎo)致其體積龐大,需要進(jìn)行壓縮處理。

      2.2.3 Web Service附件技術(shù)

      Web ServiCe使用SOAP作為其標(biāo)準(zhǔn)的數(shù)據(jù)交換協(xié)議,使用SOAP進(jìn)行傳遞的數(shù)據(jù)首先被序列化(XML序列化),也就是將數(shù)據(jù)轉(zhuǎn)換成字符串在XML文檔中傳送。盡管使用Base64編碼能夠?qū)⒍M(jìn)制數(shù)據(jù)放入SOAP報(bào)文中進(jìn)行傳輸,然而,其效率非常低下。Web Service附件技術(shù)的工作原理是將二進(jìn)制數(shù)據(jù)作為SOAP消息的附件,而不作為SOAP消息的內(nèi)容進(jìn)行發(fā)送。這樣可以避免對(duì)二進(jìn)制數(shù)據(jù)進(jìn)行XML序列化,因?yàn)樾蛄谢闹皇荢OAP消息的內(nèi)容。

      我們?cè)趥鬏敹M(jìn)制文件,如圖像、聲音和視頻等,利用WebService附件技術(shù)傳輸和處理效率會(huì)得到進(jìn)一步提高。在我們的嵌入式數(shù)據(jù)庫同步解決方案中主要利用Web Service附件技術(shù)傳輸壓縮后的二進(jìn)制數(shù)據(jù)集以提高性能,當(dāng)然上傳下載二進(jìn)制文件(如圖2)可直接使用附件技術(shù)。

      綜上所述,我們將Web Service數(shù)據(jù)壓縮傳輸技術(shù)應(yīng)用到最初的解決方案中,得到更優(yōu)化的系統(tǒng)結(jié)構(gòu)圖(圖2)。

      3實(shí)驗(yàn)結(jié)果

      本實(shí)驗(yàn)主要是以微軟的.NET平臺(tái)實(shí)現(xiàn)SQL Server CE與Oracle同步更新為例,得到一種基于Web Service的嵌入式數(shù)據(jù)庫同步更新的解決方案,并使之最優(yōu)化,對(duì)其他系統(tǒng)的搭建、開發(fā)具有借鑒和示范效應(yīng)。

      4結(jié)束語

      本文針對(duì)實(shí)際移動(dòng)應(yīng)用軟件中,對(duì)嵌入式數(shù)據(jù)庫與服務(wù)器數(shù)據(jù)源同步更新兼容性問題提出了基于Web Service的一種解決方案,并考慮到移動(dòng)終端性能和網(wǎng)絡(luò)性能等對(duì)解決方案進(jìn)行了優(yōu)化以解決數(shù)據(jù)傳輸性能問題。雖然本方案解決了系統(tǒng)兼容性和數(shù)據(jù)傳輸性能問題,但是沒有對(duì)安全問題進(jìn)行探討,實(shí)際商業(yè)或科研應(yīng)用中可以根據(jù)需要加入Web Service訪問加密技術(shù)、簽名技術(shù)等安全機(jī)制,以便得到更完美的解決方案。

      參考文獻(xiàn):

      [1]萬忠.移動(dòng)應(yīng)用開發(fā)行業(yè)現(xiàn)狀分析[J].中國科技縱橫,2017(8).

      [2]王輝,馬維華.基于SQL Server CE數(shù)據(jù)同步技術(shù)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2008,18(4):232-235.

      [3]劉軍.基于Web Service的數(shù)據(jù)庫同步系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)研究[J].電子技術(shù)與軟件工程,2017(2).

      [4]劉益.基于Web Service移動(dòng)數(shù)據(jù)的同步[J].(數(shù)字通信)前沿技術(shù),2011.

      【通聯(lián)編輯:李雅琪】

      收稿日期:2020-03-27

      作者簡(jiǎn)介:王國飛(1980-),河南洛陽人,畢業(yè)于武漢大學(xué)計(jì)算機(jī)學(xué)院,碩士,研究方向:計(jì)算機(jī)應(yīng)用技術(shù)。

      猜你喜歡
      序列化
      Oj庫反序列化攻擊面分析
      Java Web反序列化網(wǎng)絡(luò)安全漏洞分析
      基于FlatBuffers的機(jī)車通信數(shù)據(jù)序列化方法應(yīng)用研究
      面向Redis的數(shù)據(jù)序列化算法研究
      Java反序列化漏洞探析及其修復(fù)方法研究
      論初中語文作文的序列化訓(xùn)練
      Java 反序列化漏洞研究
      作文訓(xùn)練微格化、序列化初探
      北京首鋼國際工程公司首創(chuàng)國內(nèi)重載非接觸供電運(yùn)輸車實(shí)現(xiàn)產(chǎn)品序列化
      Java序列化技術(shù)的探討
      通渭县| 株洲县| 尼玛县| 郯城县| 沈丘县| 昌乐县| 磴口县| 涞水县| 舞钢市| 岳普湖县| 二手房| 简阳市| 安国市| 涿州市| 江川县| 剑阁县| 西华县| 孟州市| 新乐市| 越西县| 双峰县| 陵川县| 南郑县| 临夏市| 崇仁县| 平果县| 通海县| 修武县| 准格尔旗| 广南县| 桐柏县| 鹿泉市| 区。| 旺苍县| 屯昌县| 吉木萨尔县| 崇州市| 望城县| 宿迁市| 西宁市| 依安县|