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

基于CXF的信息匯集通用系統(tǒng)設(shè)計與實現(xiàn)

2017-12-02 09:02:53葛從兵李榮輝陳劍
軟件導(dǎo)刊 2017年11期

葛從兵 李榮輝 陳劍

摘要:為將大壩監(jiān)測信息從分散在各地的監(jiān)測數(shù)據(jù)庫匯集至中心數(shù)據(jù)庫,采用CXF框架,設(shè)計并實現(xiàn)了信息匯集通用系統(tǒng)。通過簡單配置,即可將監(jiān)測信息匯集至中心數(shù)據(jù)庫,方便水庫主管部門對監(jiān)測信息進(jìn)行處理、分析,以保障大壩安全運行。

關(guān)鍵詞關(guān)鍵詞:CXF;Spring;信息匯集;ETL;XML

DOIDOI:10.11907/rjdk.171720

中圖分類號:TP319

文獻(xiàn)標(biāo)識碼:A文章編號文章編號:16727800(2017)011010404

0引言

水庫是調(diào)控水資源時空分布、優(yōu)化水資源配置及防洪減災(zāi)的重要工程。水庫在發(fā)揮效益的同時,也存在一定風(fēng)險,一旦失事,后果不堪設(shè)想。為及時發(fā)現(xiàn)大壩安全隱患,越來越多的水庫建立了大壩安全監(jiān)測信息系統(tǒng)。但由于水庫基層管理單位缺乏技術(shù)人員,對監(jiān)測信息進(jìn)行處理、分析能力有限,需將監(jiān)測信息匯集至技術(shù)力量雄厚的水庫主管部門,由專家依據(jù)監(jiān)測信息,對大壩安全狀況進(jìn)行評估,指導(dǎo)基層單位日常安全管理工作。大壩安全監(jiān)測信息系統(tǒng)由不同承建商在不同時期建設(shè),數(shù)據(jù)存儲差異大,若針對每個監(jiān)測信息系統(tǒng)開發(fā)信息匯集系統(tǒng),不僅工作量大,而且信息匯集穩(wěn)定性也得不到保證。本文對CXF[1]、Spring[2]、ETL[3]、XML[4]進(jìn)行研究,設(shè)計并實現(xiàn)基于CXF的信息匯集通用系統(tǒng)。

1系統(tǒng)設(shè)計

1.1系統(tǒng)功能與結(jié)構(gòu)

信息匯集通用系統(tǒng)將監(jiān)測信息從分散在各地的大壩安全監(jiān)測數(shù)據(jù)庫匯集至水庫主管部門的中心數(shù)據(jù)庫。信息匯集通用系統(tǒng)主要功能有:①從不同類型的大壩安全監(jiān)測數(shù)據(jù)庫中提取監(jiān)測信息;②將原監(jiān)測信息轉(zhuǎn)為與中心數(shù)據(jù)庫表結(jié)構(gòu)一致的監(jiān)測信息;③將監(jiān)測信息加載至中心數(shù)據(jù)庫;④定時自動地將實時監(jiān)測信息匯集至中心數(shù)據(jù)庫;⑤人工將某時段歷史監(jiān)測信息匯集至中心數(shù)據(jù)庫。

信息匯集通用系統(tǒng)由一個服務(wù)端和多個客戶端組成。服務(wù)端位于水庫主管部門,負(fù)責(zé)接收監(jiān)測信息,并將其加載至中心數(shù)據(jù)庫。客戶端分布在各水庫,從大壩安全監(jiān)測數(shù)據(jù)庫提取信息,轉(zhuǎn)換、發(fā)送至服務(wù)端。信息匯集通用系統(tǒng)結(jié)構(gòu)見圖1。

圖1信息匯集系統(tǒng)結(jié)構(gòu)

1.2數(shù)據(jù)網(wǎng)絡(luò)傳輸

因特網(wǎng)傳輸數(shù)據(jù)可采用Socket、HTTPService、WebService等方式。Socket基于TCP/IP傳輸層協(xié)議,通過流進(jìn)行數(shù)據(jù)傳輸,不支持面向?qū)ο螅m用于傳輸大數(shù)據(jù)量數(shù)據(jù)。Socket數(shù)據(jù)傳輸格式不固定,通信協(xié)議需自定義,要自己解析發(fā)送和接收數(shù)據(jù)。HTTPService基于HTTP協(xié)議,通過GET或POST方法傳輸數(shù)據(jù)。HTTPService傳輸效率較高,但不能跨域訪問。WebService基于SOAP協(xié)議,數(shù)據(jù)格式固定,支持面向?qū)ο螅商幚韽?fù)雜的數(shù)據(jù)類型。由于WebService經(jīng)過兩次序列化,導(dǎo)致傳輸速度慢,適用于傳輸性能要求不高的小數(shù)據(jù)量數(shù)據(jù)。由于大壩安全監(jiān)測信息結(jié)構(gòu)復(fù)雜,采集頻率低(1次/日),故信息匯集采用WebService。

WebService服務(wù)端實現(xiàn)服務(wù)接口,發(fā)布XML格式的WSDL服務(wù)描述文件供客戶端調(diào)用。客戶端調(diào)用服務(wù)接口時,將生成SOAP請求,并將SOAP請求嵌入到HTTP POST,發(fā)送至服務(wù)端的Web服務(wù)器。Web服務(wù)器將SOAP請求轉(zhuǎn)發(fā)給WebService處理器。WebService處理器解析SOAP請求,調(diào)用WebService,生成相應(yīng)的SOAP應(yīng)答。Web服務(wù)器收到SOAP應(yīng)答后,采用HTTP應(yīng)答方式將其返回至客戶端。WebService架構(gòu)見圖2。

圖2WebService架構(gòu)

1.3CXF和Spring

.Net和J2EE都可開發(fā)WebService,其中J2EE有多種實現(xiàn)方式,如CXF、Xfire、Axis2、Axis1、JAXWS等,本系統(tǒng)采用CXF+Spring構(gòu)建WebService。

Apache CXF是一個開源Services框架,它繼承了Celtix和XFire,利用Frontend編程API開發(fā)Services。這些Services支持SOAP、XML/HTTP、RESTful HTTP、CORBA等協(xié)議,可在HTTP、JMS、JBI等傳輸協(xié)議上運行。CXF可根據(jù)實際需要,采用代碼優(yōu)先(Code First)或WSDL優(yōu)先(WSDL First)實現(xiàn)WebService發(fā)布和使用。CXF簡化了WebService創(chuàng)建,可與Spring 無縫集成。

Spring是一個分層的JavaSE/EE fullstack輕量級開源框架,由核心容器、Spring上下文、Spring AOP、Spring DAO、Spring ORM、Spring Web、Spring MVC等7個模塊組成,核心容器定義了創(chuàng)建、配置和管理bean的方式,其它模塊建立在核心容器之上。每個模塊既可以單獨運行,又可以與其它模塊聯(lián)合運行。Spring提供了依賴注入(DI)與控制反轉(zhuǎn)(IoC)以及面向切面編程(AOP)。

1.4ETL

ETL(ExtractTransformLoad)是數(shù)據(jù)從源端經(jīng)過提取、轉(zhuǎn)換、加載到達(dá)目的端的過程。本系統(tǒng)的信息匯集是一個ETL過程:信息提取、信息轉(zhuǎn)換、信息加載。

從水庫現(xiàn)場大壩安全監(jiān)測數(shù)據(jù)庫的相關(guān)表中提取所需信息。信息提取需要知道大壩安全監(jiān)測數(shù)據(jù)庫管理系統(tǒng)及表結(jié)構(gòu)。信息轉(zhuǎn)換是將提取的信息轉(zhuǎn)換為符合中心數(shù)據(jù)庫要求的信息,包括信息拆分、信息重組、數(shù)據(jù)類型及長度變換等。信息轉(zhuǎn)換需要知道大壩安全監(jiān)測數(shù)據(jù)庫與中心數(shù)據(jù)庫表結(jié)構(gòu)之間的對應(yīng)關(guān)系。信息加載是指將轉(zhuǎn)換后的信息插入至中心數(shù)據(jù)庫相關(guān)表。

信息提取和信息轉(zhuǎn)換在客戶端完成。客戶端用Select語句從大壩安全監(jiān)測數(shù)據(jù)庫提取信息,生成與中心數(shù)據(jù)庫相關(guān)表一致的JSON字符串。信息轉(zhuǎn)換可在Select語句里或/和生成JSON字符串時完成。信息加載由服務(wù)端完成。WebService接收J(rèn)SON字符串,用Insert語句將監(jiān)測信息加載至中心數(shù)據(jù)庫。在加載信息前,為避免數(shù)據(jù)重復(fù),違反主鍵約束,先用Delete語句刪除這一時段的監(jiān)測信息。endprint

2系統(tǒng)實現(xiàn)

信息匯集通用系統(tǒng)由服務(wù)端和客戶端組成。服務(wù)端數(shù)據(jù)庫管理系統(tǒng)采用MySQL,開發(fā)語言為Java,集成開發(fā)環(huán)境為Eclipse;客戶端能連接常用數(shù)據(jù)庫管理系統(tǒng),開發(fā)語言為C#,集成開發(fā)環(huán)境為Microsoft Visual Studio。

2.1服務(wù)端

服務(wù)端實現(xiàn)WebService,采用CXF+Spring+MyBatis框架,由持久層、DAO層、服務(wù)層、Web服務(wù)層組成。持久層由實體類組成,每個實體類對應(yīng)于中心數(shù)據(jù)庫中一個監(jiān)測數(shù)據(jù)表,其屬性與字段對應(yīng),并實現(xiàn)屬性get/set方法。DAO層由DAO類和MyBatis映射配置文件組成,DAO類定義數(shù)據(jù)插入和刪除方法,映射配置文件包含插入語句映射和刪除語句映射。服務(wù)層由服務(wù)接口和實現(xiàn)類組成,服務(wù)接口定義插入和刪除方法。類實現(xiàn)這些方法,主要是調(diào)用DAO類的插入和刪除方法。Web服務(wù)層由Web服務(wù)接口和實現(xiàn)類組成,Web服務(wù)接口Upload定義DeleteMeasureData和UploadMeasureData方法。根據(jù)參數(shù),先調(diào)用相應(yīng)服務(wù)接口的刪除方法,刪除相應(yīng)表中同一時段監(jiān)測信息,然后將客戶端發(fā)送的JSON數(shù)據(jù)轉(zhuǎn)換為實體對象,調(diào)用相應(yīng)服務(wù)接口插入方法,將實體對象中監(jiān)測信息插入至數(shù)據(jù)庫相應(yīng)表。

采用CXF實現(xiàn)WebService,需在Web部署文件中增加CXF servlet:

Apache CXF Endpoint

cxf

cxf

org.apache.cxf.transport.servlet.CXFServlet

1

cxf

/webservice/*

同時,還需配置WebService的端點(endpoint):

xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"

xmlns:jaxws="http://cxf.apache.org/jaxws"

xsi:schemaLocation=" http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/springbeans.xsd

http://cxf.apache.org/jaxws

http://cxf.apache.org/schemas/jaxws.xsd">

address="/Upload"/>

通過瀏覽器可瀏覽Web服務(wù),見圖3。

圖3Web服務(wù)及其方法

2.2客戶端

客戶端采用C/S模式,從水庫現(xiàn)場大壩安全監(jiān)測數(shù)據(jù)庫提取信息,發(fā)送至水庫主管部門的中心數(shù)據(jù)庫。

為了連接不同類型數(shù)據(jù)庫并進(jìn)行相應(yīng)數(shù)據(jù)轉(zhuǎn)換,通過配置文件控制信息匯集過程:

InformationCollection元素表示一個信息匯集過程,包含匯集過程所有SQL語句。SourceConnection元素為大壩安全監(jiān)測數(shù)據(jù)庫的連接字符串。Delete中Table為要刪除數(shù)據(jù)的表名。Insert中Table為要插入數(shù)據(jù)的表名;FieldNum為從SelectSQL傳遞至JSonString的字段數(shù);SelectSQL為從數(shù)據(jù)庫中提取信息的SQL語句,其Where子句中,開始時間和結(jié)束時間采用保留字符串“STTM”和“ENTM”;JSonString為采用JSON格式的監(jiān)測信息字符串,其中保留字符串“FIELD0”、“FIELD1”、…為來自SelectSQL第1列、第2列、…的數(shù)據(jù)。endprint

為了保證客戶端通用性,采用OLEDB連接不同類型數(shù)據(jù)庫,SourceConnection元素中典型的連接字符串代碼如下:

(1)Oracle:"Provider=MSDAORA;Data Source=;User ID=myUsername;Password=myPassword"

(2)SQL Server:"Provider=SQLOLEDB;Data Source=(local); Initial Catalog=mydb;User ID=myUsername;Password=myPassword"

(3)MySQL:"Provider=OleMySql.MySqlSource.1;Data Source=(local);Initial Catalog=mydb;User ID=myUsername;Password=myPassword"

(4)Access:"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\bin\\LocalAccess40.mdb"

例如:中心數(shù)據(jù)庫和大壩安全監(jiān)測數(shù)據(jù)庫中滲流壓力監(jiān)測表結(jié)構(gòu)為圖4,則信息匯集配置如下:

圖4滲流壓力監(jiān)測表結(jié)構(gòu)

Provider=SQLOLEDB;Data Source=(local); Initial Catalog=dsmis;

User ID=sa;Password=sa

egs_sppr_r

egs_sppr_r

6

<![CDATA[select left(hycncd,11),'1'+right(hycncd,2),mpcd,msdt,tm,wl from

mi_sppr_m WHERE msdt>='STTM' and msdt<='ENTM' and wl is not null and tm is not null]] >

<![CDATA[{'rscd':'FIELD0','hycncd':'FIELD1','mpcd':'FIELD2','mstm':'FIELD3',

'tm':'FIELD4','spprwl':'FIELD5'}]] >

3結(jié)語

本文采用CXF+Spring+MyBatis框架開發(fā)信息匯集通用系統(tǒng)服務(wù)端,為客戶端提供WebService,將客戶端發(fā)送的監(jiān)測信息加載至中心數(shù)據(jù)庫。采用C#開發(fā)信息匯集通用系統(tǒng)客戶端,通過XML配置文件,控制監(jiān)測信息的提取、轉(zhuǎn)換、傳送過程。信息匯集通用系統(tǒng)客戶端能夠與不同的大壩安全監(jiān)測數(shù)據(jù)庫連接,使系統(tǒng)具有通用性,降低了信息匯集工作難度,節(jié)省了時間和成本。信息匯集通用系統(tǒng)可定時自動匯集實時監(jiān)測信息,也可人工匯集某時段歷史監(jiān)測信息。基于CXF的信息匯集通用系統(tǒng)已用于廣西壯族自治區(qū)大壩安全監(jiān)測信息匯集工作,效果良好。

參考文獻(xiàn)參考文獻(xiàn):

[1]任鋼.基于Apache CXF構(gòu)建SOA應(yīng)用[M].北京:電子工業(yè)出版社,2013:5065.

[2]賈蓓,鎮(zhèn)明敏,杜磊,等.Java Web整合開發(fā)實戰(zhàn)[M].北京:清華大學(xué)出版社,2013:456531.

[3]ANHAI DOAN,ALON HALEVY,ZACHARY IVES.數(shù)據(jù)集成原理[M].孟小峰,馬如霞,馬友忠,譯.北京:機械工業(yè)出版社,2014:201203.

[4]JOE FAWCETT,LIAM R E QUIN,DANNY AYERS.XML入門經(jīng)典[M].第5版.劉云鵬,王超,譯.北京:清華大學(xué)出版社,2013:3233.

責(zé)任編輯(責(zé)任編輯:杜能鋼)endprint

主站蜘蛛池模板: 伊人狠狠丁香婷婷综合色| 亚洲天堂在线免费| 国产香蕉在线| 久久综合色88| 五月婷婷精品| 亚洲AⅤ无码国产精品| 国产成本人片免费a∨短片| 国产精品性| 欧美色丁香| 中国黄色一级视频| 99精品久久精品| 99视频在线看| 丰满的熟女一区二区三区l| 婷婷五月在线| 国产一在线观看| 色综合热无码热国产| 精品天海翼一区二区| 国产人在线成免费视频| 国产Av无码精品色午夜| 99久久亚洲综合精品TS| 欧美在线伊人| 波多野结衣国产精品| 中文字幕第4页| 一区二区三区四区在线| 久久综合成人| 欧美黄网站免费观看| 亚洲一区黄色| 国产美女在线观看| 成人精品在线观看| 久久久精品国产亚洲AV日韩| AV天堂资源福利在线观看| 国产成人乱无码视频| 国产白浆视频| 国内丰满少妇猛烈精品播| 99精品影院| 国产免费网址| 日本免费一级视频| 日本免费福利视频| 少妇人妻无码首页| 欧美一级色视频| 不卡午夜视频| 91po国产在线精品免费观看| 丰满人妻久久中文字幕| 亚洲妓女综合网995久久| 中国精品久久| 日本亚洲成高清一区二区三区| 一级毛片视频免费| 久久精品波多野结衣| 亚洲乱码在线视频| 国产免费看久久久| 亚洲Av激情网五月天| 亚洲第一精品福利| 日韩欧美国产综合| 欧美在线综合视频| 国产在线视频欧美亚综合| 亚洲视频四区| 国产一国产一有一级毛片视频| 亚洲码一区二区三区| 亚洲综合久久成人AV| 国内精品91| 茄子视频毛片免费观看| 波多野结衣一区二区三区四区视频 | 免费国产无遮挡又黄又爽| 亚洲AV免费一区二区三区| 又污又黄又无遮挡网站| 亚洲一道AV无码午夜福利| 91在线一9|永久视频在线| 亚洲午夜综合网| 欧美一区二区福利视频| 国产精品福利社| 成年人国产网站| 国产精品视频a| 狠狠综合久久久久综| 漂亮人妻被中出中文字幕久久| 亚州AV秘 一区二区三区| 国产色伊人| 毛片免费试看| 中国黄色一级视频| 久久99国产精品成人欧美| aa级毛片毛片免费观看久| 欧美日韩综合网| 国产成人高清在线精品|