999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于JSON的農(nóng)業(yè)異構(gòu)數(shù)據(jù)中間件的研究

2019-08-22 11:10:16王振鐸王振輝邊倩王英強
微型電腦應(yīng)用 2019年8期
關(guān)鍵詞:農(nóng)業(yè)

王振鐸, 王振輝, 邊倩, 王英強

(1. 西安思源學(xué)院 電子信息學(xué)院, 西安 710038; 2. 西安翻譯學(xué)院 工程技術(shù)學(xué)院, 西安 710105)

0 引言

農(nóng)業(yè)數(shù)據(jù)是關(guān)系著居民衣食、生態(tài)環(huán)保、健康醫(yī)療、工業(yè)生產(chǎn)的本源數(shù)據(jù)。但是,由于數(shù)據(jù)共享開放不足,信息孤島、數(shù)據(jù)壁壘、數(shù)據(jù)碎片化和信息不對稱等問題大量存在,直接制約了跨部門、跨區(qū)域和跨行業(yè)的互連互通、協(xié)作協(xié)同和科學(xué)決策。2015年8月31日,國務(wù)院發(fā)布的《促進(jìn)大數(shù)據(jù)發(fā)展行動綱要》,2015年12月31日農(nóng)業(yè)部發(fā)布的《關(guān)于推進(jìn)農(nóng)業(yè)農(nóng)村大數(shù)據(jù)發(fā)展的實施意見》,均明確提出政府?dāng)?shù)據(jù)資源共享開放工程,及具體任務(wù),力求在未來五至十年內(nèi)實現(xiàn)農(nóng)業(yè)數(shù)據(jù)的有序共享開放,初步完成農(nóng)業(yè)數(shù)據(jù)化改造。

1 農(nóng)業(yè)異構(gòu)數(shù)據(jù)問題

由于歷史上沒有重視數(shù)據(jù)的共享,原有歷史數(shù)據(jù)在數(shù)據(jù)格式、數(shù)據(jù)類型、存儲類型、存儲標(biāo)準(zhǔn)等方面仍然存在諸多問題。一是缺乏共享標(biāo)準(zhǔn)體系,沒有針對不同地區(qū)、不同行業(yè)、不同領(lǐng)域的數(shù)據(jù)格式匯交技術(shù),特別缺乏針對農(nóng)業(yè)多源異構(gòu)、結(jié)構(gòu)化、半結(jié)構(gòu)化數(shù)據(jù)的標(biāo)準(zhǔn)化技術(shù)和海量數(shù)據(jù)管理的模型技術(shù);二是缺乏不同平臺的整合技術(shù)。目前我國農(nóng)業(yè)存在諸多網(wǎng)站和數(shù)據(jù)平臺,但是各個平臺之間層次不清晰、覆蓋內(nèi)容不一致,架構(gòu)布局不合理、尚不能實現(xiàn)互聯(lián)互通;三是缺乏便捷、高效的數(shù)據(jù)查詢、瀏覽、檢索、分發(fā)技術(shù)。目前我國已經(jīng)開放的一些數(shù)據(jù)平臺中,要么數(shù)據(jù)無法瀏覽,要么數(shù)據(jù)無法下載,要么數(shù)據(jù)鏈接不存在,平臺的便捷性和可訪問性較差。

2 相關(guān)研究工作

針對異構(gòu)數(shù)據(jù)集成,朱峰針對互聯(lián)網(wǎng)金融應(yīng)用領(lǐng)域提出了一種基于JSON技術(shù)的異構(gòu)數(shù)據(jù)中間件系統(tǒng),設(shè)計了一種可擴展的異構(gòu)數(shù)據(jù)整合框架JHD,構(gòu)建了中介模式和數(shù)據(jù)源模式以及它們的映射關(guān)系,以解決數(shù)據(jù)源的語義異構(gòu)問題,利用多個異構(gòu)數(shù)據(jù)源各自提供的數(shù)據(jù)服務(wù)接口,增加了系統(tǒng)的可擴展性[1]。韓威威提出了一種利用XML技術(shù)解決語義沖突,利用Web Service架構(gòu)設(shè)計構(gòu)建異構(gòu)信息共享平臺,以服務(wù)的方式為各終端用戶解決了農(nóng)業(yè)多源異構(gòu)數(shù)據(jù)共享的難題[2]。倪芳提出了一種 采用分布式 Web 服務(wù)中的 XML 技術(shù)對多源異構(gòu)農(nóng)業(yè)數(shù)據(jù)實現(xiàn)融合,能將抽象的農(nóng)業(yè)數(shù)據(jù)變得模型化,從而有效解決當(dāng)前農(nóng)業(yè)不同領(lǐng)域的數(shù)據(jù)整合與交互問題[3]。

綜上所述,目前進(jìn)行異構(gòu)數(shù)據(jù)信息集成的技術(shù)主要集中在XML技術(shù)上,比較新的系統(tǒng)采用了JSON技術(shù),本文工作是利用JSON作為異構(gòu)數(shù)據(jù)集成的中間件,解決多源異構(gòu)數(shù)據(jù)信息共享的難題。

3 JSON技術(shù)

JSON(JavaScript Object Notation)一種輕量級的數(shù)據(jù)交換格式,具有良好的可讀和便于快速編寫的特性。可在不同平臺之間進(jìn)行數(shù)據(jù)交換。JSON采用兼容性很高的、完全獨立于語言文本格式,同時也具備類似于C語言的習(xí)慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)體系的行為。這些特性使JSON成為理想的數(shù)據(jù)交換語言。

3.1 JSON相對于XML的優(yōu)勢

XML(可擴展的標(biāo)記語言)格式統(tǒng)一,符合標(biāo)準(zhǔn);容易與其他系統(tǒng)進(jìn)行遠(yuǎn)程交互,數(shù)據(jù)共享比較方便。但是它具有文件龐大,文件格式復(fù)雜,傳輸占帶寬;服務(wù)器端和客戶端都需要花費大量代碼來解析XML,導(dǎo)致服務(wù)器端和客戶端代碼變得異常復(fù)雜且不易維護(hù);客戶端不同瀏覽器之間解析XML的方式不一致,需要重復(fù)編寫很多代碼;

相比之下,JSON具有數(shù)據(jù)格式比較簡單,易于讀寫,格式都是壓縮的,JSON相對于XML來講,數(shù)據(jù)的體積小,傳遞的速度更快些占用帶寬小;易于解析,客戶端JavaScript可以簡單的通過eval()進(jìn)行JSON數(shù)據(jù)的讀取;支持多種語言,包括ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby等服務(wù)器端語言,便于服務(wù)器端的解析;同時,因為JSON格式能直接為服務(wù)器端代碼使用,大大簡化了服務(wù)器端和客戶端的代碼開發(fā)量,且完成任務(wù)不變,并且易于維護(hù)。JSON與JavaScript的交互更加方便,更容易解析處理,更好的數(shù)據(jù)交互。下面,通過實例比較XML和JSON:

例如:用XML表示中國部分省市數(shù)據(jù)如下:

<2>.用JSON表示中國部分省市數(shù)據(jù)如下:

var country =

{

name: "中國",

provinces: [

{ name: "陜西", citys: { city: ["西安", "寶雞"]} },

{ name: "漢南", citys: { city: ["鄭州", "洛陽"]} }

}

從上面實例可以看出,XML的結(jié)構(gòu)化形式利于程序的閱讀。而JSON讀起來更像一個數(shù)據(jù)塊,讀起來就比較費解,然而這一點非常適合機器閱讀,所以通過JSON的索引country.provinces[0].name就能夠讀取“陜西”這個值。并且,XML數(shù)據(jù)中包含很多重復(fù)的標(biāo)記字符,而JSON中僅僅存在的是密密麻麻的有用數(shù)據(jù)。

3.2 JSON異構(gòu)數(shù)據(jù)集成中間件的設(shè)計

中間件模式通過統(tǒng)一的全局?jǐn)?shù)據(jù)模型來訪問異構(gòu)的數(shù)據(jù)庫、遺留系統(tǒng)、Web 資源等。中間件位于異構(gòu)數(shù)據(jù)源系統(tǒng)(數(shù)據(jù)層) 和應(yīng)用程序(應(yīng)用層) 之間,向下協(xié)調(diào)各數(shù)據(jù)源系統(tǒng),向上為訪問集成數(shù)據(jù)的應(yīng)用提供統(tǒng)一數(shù)據(jù)模式和數(shù)據(jù)訪問的通用接口。各數(shù)據(jù)源的應(yīng)用仍然完成它們的任務(wù),中間件系統(tǒng)則主要集中為異構(gòu)數(shù)據(jù)源提供一個高層次檢索服務(wù)。

中間件模式是比較流行的數(shù)據(jù)集成方法,它通過在中間層提供一個統(tǒng)一的數(shù)據(jù)邏輯視圖來隱藏底層的數(shù)據(jù)細(xì)節(jié),使得用戶可以把集成數(shù)據(jù)源看為一個統(tǒng)一的整體。這種模型下的關(guān)鍵問題是如何構(gòu)造這個邏輯視圖并使得不同數(shù)據(jù)源之間能映射到這個中間層。根據(jù)此原理,我們設(shè)計了基于JSON的異構(gòu)數(shù)據(jù)中間件系統(tǒng),如下圖1所示:

圖1 JSON異構(gòu)數(shù)據(jù)集成中間件

4 關(guān)鍵技術(shù)

4.1 將數(shù)據(jù)庫中的數(shù)據(jù)轉(zhuǎn)換成JSON數(shù)據(jù)

為了構(gòu)建異構(gòu)數(shù)據(jù)集成平臺,需要將各異構(gòu)數(shù)據(jù)庫中的數(shù)據(jù)取出來,進(jìn)行數(shù)據(jù)格式的統(tǒng)一,以便JSON 異構(gòu)數(shù)據(jù)集成中間件進(jìn)行進(jìn)一步處理。下面以Java Web開發(fā)為例。

數(shù)據(jù)庫中數(shù)據(jù)轉(zhuǎn)換成JSON數(shù)據(jù)分為兩步,首先將java對象保存在JSON中; 然后通過Ajax來得到JSON轉(zhuǎn)化成js對象的數(shù)據(jù),以便在Web頁面中顯示。關(guān)鍵代碼如下:

<%@ page import=java.io.Writer%>

<%@ page import="org.json.JSONArray"%>

<%@ page import="org.json.JSONObject"%>

public class Tsdh {

private String depname;

private String name;

private String tel;

//這幾個屬性的get和set方法省略

}

JSONArray jsons=new JSONArray();

try{

Tsdh tsdh=new Tsdh();

tsdh.setDepname("辦公室");

tsdh.setName("大熊");

tsdh.setTel("0431-1111111");

Tsdh tsdh2=new Tsdh();

tsdh2.setDepname("行政部");

tsdh2.setName("柯基");

tsdh2.setTel("0431-2222222");

JSONObject json=new JSONObject(tsdh);

JSONObject json1=new JSONObject(tsdh2);

jsons.put(json);

jsons.put(json1);

response.setContentType("text/html;charset=utf-8");

Writer writer=response.getWriter();

writer.writer(jsons.toString);

writer.flush();

writer.close();

writer=null;

}catch(Exception e){

System.out.println("error: "+e);

}

}

Html代碼 AJAX處理代碼

4.2 把JSON數(shù)據(jù)存放到數(shù)據(jù)庫

通過異構(gòu)數(shù)據(jù)中間件,將用戶輸入的數(shù)據(jù)存入各異構(gòu)數(shù)據(jù)庫的步驟是:

1.在用戶端在處理量數(shù)據(jù)提交的表單時,可以使用Ajax提交,并將數(shù)據(jù)轉(zhuǎn)換成JSON格式,使用jquery.serializeJSON,可以在基于jQuery技術(shù)實現(xiàn)。

2.頁面中,調(diào)用 .serializeJSON() 方法來序列化form表單的數(shù)據(jù)成JS對象。

3.將JS對象轉(zhuǎn)換成實體類。調(diào)用JSONObject 的toBean方法。示例代碼如下:

for(Object obj : arr){

JSONObject jsonObject =JSONObject.fromObject(obj);

EnterpriseInfoEntity entInfo = (EnterpriseInfoEntity)JSONObject.toBean(jsonObject, EnterpriseInfoEntity.class);

}

4.使用ORM技術(shù),將實體映射到相應(yīng)的關(guān)系表中,實現(xiàn)數(shù)據(jù)的存儲。

5 系統(tǒng)特點

利用Java技術(shù)實現(xiàn)的該農(nóng)業(yè)異構(gòu)數(shù)據(jù)集成平臺,具有平臺無關(guān)性、安全性等特點。通過系統(tǒng)測試,可以兼容SQL Server、MySql、Oracle等大型關(guān)系庫。

6 總結(jié)

JSON (JavaScriptObject Notation) 是一種輕量級的數(shù)據(jù)交換格式,主要用于傳送數(shù)據(jù)。JSON采用了獨立于語言的文本格式,類似XML,但是比XML簡單,易讀并且易編寫。對機器來說易于解析和生成,并且會減少網(wǎng)絡(luò)帶寬的傳輸。由于JSON格式可以解耦javascript客戶端應(yīng)用與服務(wù)器端的方法調(diào)用,因而在互聯(lián)網(wǎng)應(yīng)用中被大量使用。所以,系統(tǒng)采用JSON技術(shù),將異構(gòu)數(shù)據(jù)統(tǒng)一成JSON格式輸出顯示,和將用戶數(shù)據(jù)轉(zhuǎn)換成JSON格式對象保存到異構(gòu)數(shù)據(jù)庫。以此為基礎(chǔ)構(gòu)建的數(shù)據(jù)集成中間件,具有易實施,擴展性強等優(yōu)點,為從事異構(gòu)數(shù)據(jù)集成提供了借鑒。

猜你喜歡
農(nóng)業(yè)
國內(nèi)農(nóng)業(yè)
國內(nèi)農(nóng)業(yè)
國內(nèi)農(nóng)業(yè)
擦亮“國”字招牌 發(fā)揮農(nóng)業(yè)領(lǐng)跑作用
新農(nóng)業(yè) 從“看天吃飯”到“看數(shù)吃飯”
歐盟發(fā)布短期農(nóng)業(yè)展望
“5G+農(nóng)業(yè)”:5G如何為農(nóng)業(yè)賦能?
健康富硒168慢病未病全靠它——加入農(nóng)業(yè)合作社,與健康同行!
健康富硒168慢病未病全靠它——加入農(nóng)業(yè)合作社,與健康同行!
外向型農(nóng)業(yè)
江蘇年鑒(2014年0期)2014-03-11 17:09:36
主站蜘蛛池模板: 女人18毛片一级毛片在线| 亚洲男人在线| 亚洲a级毛片| 国产精品视频a| 青青草国产一区二区三区| 午夜福利在线观看成人| 精品人妻一区无码视频| 中文字幕无码电影| 九九免费观看全部免费视频| 国产毛片不卡| 日本黄色a视频| 国产精品精品视频| 一区二区三区精品视频在线观看| 国产91丝袜| 无码专区在线观看| 国产乱子伦一区二区=| 欧美福利在线播放| 国产成人av一区二区三区| 国产精品.com| 最新国产成人剧情在线播放| 色天天综合久久久久综合片| 亚洲午夜福利在线| 91人人妻人人做人人爽男同| 欧美人人干| 国产成年无码AⅤ片在线| 久久99热66这里只有精品一| 朝桐光一区二区| 国产va免费精品观看| 久久网综合| 久久免费观看视频| 亚洲中文在线看视频一区| 久久久久久久久久国产精品| 91系列在线观看| 女人毛片a级大学毛片免费| 五月天福利视频| 国产福利在线免费观看| 亚洲va在线∨a天堂va欧美va| 中文天堂在线视频| 国模视频一区二区| 中文字幕人成人乱码亚洲电影| 99视频全部免费| 中文字幕永久视频| 狠狠干欧美| 婷婷六月天激情| 日本欧美成人免费| 国产国拍精品视频免费看| 国产白浆在线观看| AV在线麻免费观看网站| 国产区在线看| 欧美天堂在线| 亚洲男人的天堂在线观看| 看av免费毛片手机播放| 青青青国产在线播放| 亚洲日本韩在线观看| 亚洲第一精品福利| 亚洲AV无码久久精品色欲| 丰满人妻久久中文字幕| 91午夜福利在线观看| 伊人福利视频| 在线播放精品一区二区啪视频| 又爽又大又黄a级毛片在线视频| 国产精品99一区不卡| 久久这里只精品热免费99| 欧美a网站| 日本一区高清| 国产人前露出系列视频| 成人午夜在线播放| 国产精品专区第1页| 成人欧美日韩| 青青网在线国产| a毛片在线免费观看| 四虎成人精品| 蜜臀av性久久久久蜜臀aⅴ麻豆| 88av在线| 尤物成AV人片在线观看| 欧美不卡视频在线观看| 国产小视频免费| 无码高潮喷水在线观看| 国产精品主播| 日韩国产无码一区| 国产亚洲精| 青草娱乐极品免费视频|