專利名稱:與國家電網(wǎng)營銷系統(tǒng)服務(wù)器進行數(shù)據(jù)通訊的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)接口方法,特別涉及一種與國家電網(wǎng)公司SG186項 目的營銷系統(tǒng)的WebService服務(wù)器數(shù)據(jù)接口進行數(shù)據(jù)通訊的方法。
背景技術(shù):
國家電網(wǎng)公司SG186項目的營銷系統(tǒng)的服務(wù)器提供WebService數(shù)據(jù)接口 與客戶端進行通信和數(shù)據(jù)交換傳輸。
目前客戶端主要通過HTTP協(xié)議或者使用TCP/IP 、 UDP協(xié)議與之連接再 通過字符串的方式模擬相應(yīng)的頭數(shù)據(jù)部分的方式來處理的。這種方式在同批的 數(shù)據(jù)傳輸中,需要多次發(fā)送驗證請求及進行驗證,傳輸過程相對比較麻煩,而 且由于采用字符串的數(shù)據(jù)結(jié)構(gòu),其代碼量大。
發(fā)明內(nèi)容
本發(fā)明的目的是解決現(xiàn)有技術(shù)與WebService服務(wù)器進行數(shù)據(jù)通訊存在的 代碼量大、需要多次驗證的問題,提供一種利用SOAP協(xié)議與國家電網(wǎng)公司的 WebService服務(wù)器進行數(shù)據(jù)通訊的方法,具有快速、數(shù)據(jù)更完整和可靠、兼容 性更強的優(yōu)點。
本發(fā)明的目的可以通過下述技術(shù)方案來實現(xiàn)
與國家電網(wǎng)營銷系統(tǒng)服務(wù)器進行數(shù)據(jù)通訊的方法,所述服務(wù)器為 WebService服務(wù)器,客戶端按照SOAP協(xié)議封裝上行數(shù)據(jù)和拆封下行數(shù)據(jù),在 上傳數(shù)據(jù)之前先自動將包含有用戶身份驗證信息的數(shù)據(jù)封裝到上行數(shù)據(jù)的 Header部分。
所述客戶端封裝上行數(shù)據(jù)是指,按照WebService服務(wù)器預(yù)先約定的文檔 結(jié)構(gòu)將需要上行傳輸?shù)臄?shù)據(jù)轉(zhuǎn)化為XML格式。
所述預(yù)先約定的文檔結(jié)構(gòu)以內(nèi)存節(jié)點的形式作為對象存儲于客戶端的內(nèi) 存中,將上行數(shù)據(jù)轉(zhuǎn)化為XML格式是指將需要上行傳輸?shù)臄?shù)據(jù)填充到對應(yīng)的 內(nèi)存節(jié)點。
所述客戶端拆封下行數(shù)據(jù)是指,按照WebService服務(wù)器預(yù)先約定的文檔 結(jié)構(gòu)將接收到的下行數(shù)據(jù)由XML格式轉(zhuǎn)化為客戶端的格式。
所述預(yù)先約定的文檔結(jié)構(gòu)以內(nèi)存節(jié)點的形式作為對象存儲于客戶端的內(nèi) 存中,將下行數(shù)據(jù)由XML格式轉(zhuǎn)化為客戶端的格式是指將接收到的XML格式的下行數(shù)據(jù)由對應(yīng)的內(nèi)存節(jié)點中提取出來轉(zhuǎn)化為客戶端的格式。
所述方法中,在請求服務(wù)器連接驗證通過后將上行數(shù)據(jù)封裝為XML格式。 所述封裝為XML格式的上行數(shù)據(jù)包括SOAP:Envelope、 SOAP:Header和
SOAP:Body三部分,Header部分包括WebService傳輸中的必要數(shù)據(jù)申明及請
求用戶身份驗證信息,Body部分包括需要上行傳輸?shù)臄?shù)據(jù)內(nèi)容。
所述自動封裝用戶身份驗證信息的數(shù)據(jù)是指在客戶端向服務(wù)器請求連接
通過后,客戶端調(diào)用預(yù)定的接口文件,完成Header部分用戶身份驗證信息數(shù)
據(jù)的自動填充。
所述自動封裝用戶身份驗證信息的數(shù)據(jù)過程是,通過重載IHeaderHandler 中的WriteHeader接口 ,結(jié)合用戶配置信息在WriteHeader中生成Header文件 內(nèi)容,客戶端在InvokeService前自動調(diào)用WriteHeader接口 ,此時WriteHeader 生成一個Header文件內(nèi)容返回給客戶端,客戶端內(nèi)部自動將Header內(nèi)容添加 到需要上行傳輸?shù)臄?shù)據(jù)結(jié)構(gòu)中的Header部分。
本發(fā)明采用上述方法,通過對內(nèi)存中的一個"預(yù)先約定的文檔結(jié)構(gòu)"操作 來完成對任意數(shù)據(jù)的快速封裝,因為所有操作都是在內(nèi)存中進行,操作的對象 是內(nèi)存中的對象而非字符串,確保了操作的快速性;其次,對象從建立開始就 確定了一個WebService服務(wù)器預(yù)約的文檔結(jié)構(gòu),使用時只需要將要傳輸?shù)臄?shù) 據(jù)填充到對應(yīng)的內(nèi)存節(jié)點即可,實現(xiàn)了對任意數(shù)據(jù)的封裝,具有靈活、方便的 特點;再次,本方法不僅僅在數(shù)據(jù)封裝時具備快速、靈活的特點,同時也支持 對已經(jīng)封裝的數(shù)據(jù)進行逆向拆封(主要應(yīng)用在數(shù)據(jù)下行時),確保了無論是數(shù) 據(jù)上行封裝還是數(shù)據(jù)下行拆封都能達到同樣的效果,因而具有可逆性;對于一 批數(shù)據(jù)傳輸,只需要向服務(wù)器發(fā)送一次驗證請求,請求驗證通過后自動記錄驗 證信息,即自動封裝Soap: Header,大大提縮短了數(shù)據(jù)傳輸時間,提高了工作 效率。
可見,采用本發(fā)明的上述方法,具有以下優(yōu)點傳輸數(shù)據(jù)格式化到XML 文檔方便、快速;支持XML數(shù)據(jù)封裝及拆封,即可逆性強,保證上下行數(shù)據(jù) 操作的兼容;簡化了數(shù)據(jù)傳輸前的用戶身份驗證,大大縮短了數(shù)據(jù)傳輸?shù)闹芷冢?提高工作效率;與國家電網(wǎng)公司的SG186營銷系統(tǒng)實現(xiàn)了無縫接合,避開了 系統(tǒng)與接口的邊界,使數(shù)據(jù)更完整、更可靠,可達到預(yù)期效果。
圖l是本發(fā)明的流程示意圖;圖2是本發(fā)明中自動封裝Header的原理示意圖。
具體實施例方式
下面結(jié)合具體實施例和附圖對本發(fā)明作進一步的說明。
與國家電網(wǎng)公司SG186項目的營銷系統(tǒng)的WebService服務(wù)器進行數(shù)據(jù)通 訊過程中,數(shù)據(jù)流主要分二個流向上行和下行。下行是設(shè)備/資產(chǎn)從國家電 網(wǎng)公司SG186營銷應(yīng)用中發(fā)送到廠家設(shè)備中;廠家設(shè)備在完成既定項目后, 將設(shè)備/資產(chǎn)項目數(shù)據(jù)傳輸?shù)絿奡G186營銷應(yīng)用中,此過程謂之上行。雙方 數(shù)據(jù)交互建立在以SOAP協(xié)議為基礎(chǔ)的WebService應(yīng)用中。
上述的廠家設(shè)備稱為客戶端。
WebService主要是為了使原來各孤立的站點之間的信息能夠相互通信、共 享而提出的一種接口。 WebService所使用的是Internet上統(tǒng)一、開放的標(biāo)準(zhǔn), 如HTTP、 XML、 SOAP (簡單對象訪問協(xié)議)、WSDL等,所以Web Service 可以在任何支持這些標(biāo)準(zhǔn)的環(huán)境(Windows,Linux)中使用。SOAP協(xié)議(Simple Object Access Protocal,簡單對象訪問協(xié)議),它是一個用于分散和分布式環(huán)境下 網(wǎng)絡(luò)信息交換的基于XML的通訊協(xié)議。
從表面上看,WebService就是一個應(yīng)用程序,它向外界暴露出一個能夠通 過Web進行調(diào)用的API,能夠用編程的方法通過Web調(diào)用來實現(xiàn)某個功能的 應(yīng)用程序。
本發(fā)明所述的方法如圖1所示,客戶端按照SOAP協(xié)議連接國家電網(wǎng)公司 營銷系統(tǒng)的WebService服務(wù)器,在請求服務(wù)器連接驗證通過后將上行數(shù)據(jù)自 動封裝為包括SOAP:Envelope、 SOAP:Header和SOAP:Body三部分的XML格 式,Header部分包括WebService傳輸中的必要數(shù)據(jù)申明及請求用戶身份驗證 信息,Body部分包括需要上行傳輸?shù)臄?shù)據(jù)內(nèi)容。
客戶端封裝上行數(shù)據(jù)是指,按照WebService服務(wù)器預(yù)先約定的文檔結(jié)構(gòu) 將需要上行傳輸?shù)臄?shù)據(jù)轉(zhuǎn)化為XML格式;預(yù)先約定的文檔結(jié)構(gòu)以內(nèi)存節(jié)點的 形式作為對象存儲于客戶端的內(nèi)存中,將上行數(shù)據(jù)轉(zhuǎn)化為XML格式是指將需 要上行傳輸?shù)臄?shù)據(jù)填充到對應(yīng)的內(nèi)存節(jié)點。
客戶端拆封下行數(shù)據(jù)是指,按照WebService服務(wù)器預(yù)先約定的文檔結(jié)構(gòu) 將接收到的下行數(shù)據(jù)由XML格式轉(zhuǎn)化為客戶端的格式;預(yù)先約定的文檔結(jié)構(gòu) 同樣是以內(nèi)存節(jié)點的形式作為對象存儲于客戶端的內(nèi)存中,將下行數(shù)據(jù)由 XML格式轉(zhuǎn)化為客戶端的格式是指將接收到的XML格式的下行數(shù)據(jù)由對應(yīng)的內(nèi)存節(jié)點中提取出來轉(zhuǎn)化為客戶端的格式。
自動封裝用戶身份驗證信息的數(shù)據(jù)過程如圖2所示,通過重載 IHeaderHandler中的WriteHeader接口 ,結(jié)合用戶配置信息在WriteHeader中生 成Header文件內(nèi)容,客戶端在InvokeService前自動調(diào)用WriteHeader接口 , 此時WriteHeader生成一個Header文件內(nèi)容返回給客戶端,客戶端內(nèi)部自動將 Header內(nèi)容添加到需要上行傳輸?shù)臄?shù)據(jù)結(jié)構(gòu)中的Header部分。通過本過程, 完成Header部分用戶驗證信息的自動填充,達到一次連接,多次使用的目的。
權(quán)利要求
1、與國家電網(wǎng)營銷系統(tǒng)服務(wù)器進行數(shù)據(jù)通訊的方法,所述服務(wù)器為WebService服務(wù)器,其特征在于,客戶端按照SOAP協(xié)議封裝上行數(shù)據(jù)和拆封下行數(shù)據(jù),在上傳數(shù)據(jù)之前先自動將包含有用戶身份驗證信息的數(shù)據(jù)封裝到上行數(shù)據(jù)的Header部分。
2、 如權(quán)利要求1所述與國家電網(wǎng)營銷系統(tǒng)服務(wù)器進行數(shù)據(jù)通訊的方法, 其特征在于,所述客戶端封裝上行數(shù)據(jù)是指,按照WebService服務(wù)器預(yù)先約 定的文檔結(jié)構(gòu)將需要上行傳輸?shù)臄?shù)據(jù)轉(zhuǎn)化為XML格式。
3、 如權(quán)利要求2所述與國家電網(wǎng)營銷系統(tǒng)服務(wù)器進行數(shù)據(jù)通訊的方法, 其特征在于,所述預(yù)先約定的文檔結(jié)構(gòu)以內(nèi)存節(jié)點的形式作為對象存儲于客戶 端的內(nèi)存中,將上行數(shù)據(jù)轉(zhuǎn)化為XML格式是指將需要上行傳輸?shù)臄?shù)據(jù)填充到 對應(yīng)的內(nèi)存節(jié)點。
4、 如權(quán)利要求1所述與國家電網(wǎng)營銷系統(tǒng)服務(wù)器進行數(shù)據(jù)通訊的方法, 其特征在于,所述客戶端拆封下行數(shù)據(jù)是指,按照WebService服務(wù)器預(yù)先約 定的文檔結(jié)構(gòu)將接收到的下行數(shù)據(jù)由XML格式轉(zhuǎn)化為客戶端的格式。
5、 如權(quán)利要求4所述與國家電網(wǎng)營銷系統(tǒng)服務(wù)器進行數(shù)據(jù)通訊的方法, 其特征在于,所述預(yù)先約定的文檔結(jié)構(gòu)以內(nèi)存節(jié)點的形式作為對象存儲于客戶 端的內(nèi)存中,將下行數(shù)據(jù)由XML格式轉(zhuǎn)化為客戶端的格式是指將接收到的 XML格式的下行數(shù)據(jù)由對應(yīng)的內(nèi)存節(jié)點中提取出來轉(zhuǎn)化為客戶端的格式。
6、 如權(quán)利要求2或3所述與國家電網(wǎng)營銷系統(tǒng)服務(wù)器進行數(shù)據(jù)通訊的方 法,其特征在于,在請求服務(wù)器連接驗證通過后將上行數(shù)據(jù)封裝為XML格式。
7、 如權(quán)利要求6所述與國家電網(wǎng)營銷系統(tǒng)服務(wù)器進行數(shù)據(jù)通訊的方法, 其特征在于,所述封裝為XML格式的上行數(shù)據(jù)包括SOAP:Envelope、 SOAP:Header和SOAP:Body三部分,Header部分包括WebServke傳輸中的必 要數(shù)據(jù)申明及請求用戶身份驗證信息,Body部分包括需要上行傳輸?shù)臄?shù)據(jù)內(nèi) 容。
8、 如權(quán)利要求1所述與國家電網(wǎng)營銷系統(tǒng)服務(wù)器進行數(shù)據(jù)通訊的方法, 其特征在于,所述自動封裝用戶身份驗證信息的數(shù)據(jù)是指在客戶端向服務(wù)器請 求連接通過后,客戶端調(diào)用預(yù)定的接口文件,完成Header部分用戶身份驗證 信息數(shù)據(jù)的自動填充。
9、 如權(quán)利要求8所述與國家電網(wǎng)營銷系統(tǒng)服務(wù)器進行數(shù)據(jù)通訊的方法, 其特征在于,所述自動封裝用戶身份驗證信息的數(shù)據(jù)過程是,通過重載IHeaderHandler中的WriteHeader接口 ,結(jié)合用戶配置信息在WriteHeader中生 成Header文件內(nèi)容,客戶端在InvokeService前自動調(diào)用WriteHeader接口 , 此時WriteHeader生成一個Header文件內(nèi)容返回給客戶端,客戶端內(nèi)部自動將 Header內(nèi)容添加到需要上行傳輸?shù)臄?shù)據(jù)結(jié)構(gòu)中的Header部分。
全文摘要
與國家電網(wǎng)營銷系統(tǒng)服務(wù)器進行數(shù)據(jù)通訊的方法,涉及一種數(shù)據(jù)接口方法,目的是解決現(xiàn)有技術(shù)與WebService服務(wù)器進行數(shù)據(jù)通訊存在的代碼量大、需要多次驗證的問題,客戶端按照SOAP協(xié)議封裝上行數(shù)據(jù)和拆封下行數(shù)據(jù),在上傳數(shù)據(jù)之前先自動將包含有用戶身份驗證信息的數(shù)據(jù)封裝到上行數(shù)據(jù)的Header部分;客戶端封裝上行數(shù)據(jù)是指,按照WebService服務(wù)器預(yù)先約定的文檔結(jié)構(gòu)將需要上行傳輸?shù)臄?shù)據(jù)轉(zhuǎn)化為XML格式;所述預(yù)先約定的文檔結(jié)構(gòu)以內(nèi)存節(jié)點的形式作為對象存儲于客戶端的內(nèi)存中,將上行數(shù)據(jù)轉(zhuǎn)化為XML格式是指將需要上行傳輸?shù)臄?shù)據(jù)填充到對應(yīng)的內(nèi)存節(jié)點。
文檔編號H04L29/06GK101442524SQ200810147960
公開日2009年5月27日 申請日期2008年12月23日 優(yōu)先權(quán)日2008年12月23日
發(fā)明者輝 代 申請人:成都市科陸洲電子有限公司