徐京京 馬素霞 王海威
(華北電力大學控制與計算機工程學院 北京 102206)
《2018~2023年中國電能質量治理產業(yè)市場前瞻與投資戰(zhàn)略規(guī)劃分析報告》近日由中國前瞻產業(yè)研究院發(fā)布,據預估,今年我國電能質量治理市場規(guī)模預計將達1187億元,并且此后將保持每年百億元的穩(wěn)定增長態(tài)勢。隨著風電、光伏發(fā)電等可再生能源發(fā)電的快速發(fā)展,電氣化鐵路、城市軌道交通建設的加速,新能源汽車充電樁的大規(guī)模使用和各種新型電子設備的出現(xiàn),由此產生了一系列新的電能質量問題,也加劇了以往一些長期存在的電能質量問題。在此背景下,電能質量智能信息系統(tǒng)在電網資源全面數字化、數據傳送及共享等方面將面臨更嚴峻的考驗。
為實現(xiàn)數據在國家電網及其各子公司間的流轉、共享,加強國網系統(tǒng)與各監(jiān)測終端廠商設備實時、準實時和非實時通訊,提出建立統(tǒng)一的數據交換通道和據交換規(guī)則,使得來自不同系統(tǒng)、不同數據格式的數據能夠進行上傳訪問、共享[1]。經過探索,Web服務在解決這一問題上表現(xiàn)突出。不同監(jiān)測設備廠家通過Web服務,將監(jiān)測終端采集到的數據提供給電能質量智能信息系統(tǒng)等分析設備;電能質量智能信息系統(tǒng)對個數據指標進行分析計算,將結果以Web服務的形式上傳到國網監(jiān)測平臺,其他用戶也可以從服務獲取分析數據,做可視化展示等二次應用開發(fā)[2~3]。
Web服務的良好表現(xiàn)使得其得到越來越多的關注,應運而生的是多種多樣的服務描述方式、服務傳輸協(xié)議、服務框架等,服務的多樣性使其不可避免地存在語法、語義、描述結構異構的問題[4]。服務的多樣性同樣給用戶端調用服務帶來了很大的挑戰(zhàn)[5]。作為服務的請求者和生產者,電能質量智能信息系統(tǒng)為國網監(jiān)測平臺提供服務接口,同時調用解析不同設備廠家提供的服務。在實際與廠家對接的工作中,總是在接口聯(lián)調上耗費巨大的精力,因此,采用更加通用和自動化的服務檢測訪問方法是十分有必要的[6~7]。針對這一問題,本文研究了面向多監(jiān)測終端廠家服務的調用方法將面向不同廠家的調用方法集成,根據用戶請求某廠家數據,通過Web服務調用,自動匹配調用服務,返回XML結果。它提供一套調用接口,用戶無需了解Web服務的具體內容和差異,并且允許以類似的方式調用各種設備廠家開發(fā)的Web服務。
目前主流的Web服務風格有兩種,一種是RPC(Remote Procedure Call,遠程過程調用)風格的,還有就是REST(Representational State Transfer,表現(xiàn)層狀態(tài)轉化)式的[8]。遠程過程調用風格的兩大代表是XML-RPC和大Web服務。盡管XML-RPC的應用依然存在,作為一種遺留技術,已被SOAP取代[9]。
REST風格比RPC風格輕量且響應快。RPC請求都是HTTP協(xié)議的POST方法,其方法信息協(xié)議包含在SOAP協(xié)議包或HTTP協(xié)議包中。REST方法信息存在于HTTP方法中(如GET、PUT),無需引入SOAP消息傳輸層。相比之下RPC方法的通用性差一些。從服務的作用域方面看,RPC包含于協(xié)議包中,不能直觀看到,而REST采用URI顯示定義作用域,更加直觀明了。RPC風格的關注服務器到客戶端之間的調用,不關注基于哪個網絡層的協(xié)議,這種面向方法的調用過程對應的是REST的面向資源狀態(tài)的調用。目前主流的框架有SUN的JAX-WS,Apache的CXF、Axis1、Axis2、Wink,Jboss RESTEasy,Dubbo等。適用于SOAP風格的框架有RESTEasy、Wink、CXF、Axis2;適用于SOAP的框架有Xfire、Axis2、CXF、Axis1等。
REST數據格式可以為HTML、XML、Json格式,根據國際電工委員會(IEC)發(fā)布的IEC6970系列國際標準中應用最為廣泛的XMLWeb服務組建模型[10],本文所解析的均為XML格式數據。
RESTful(REST式的)Web服務,定義了數據CRUD(Create Read Update Delete,增查改刪)的元操作,與之對應的HTTP方法是GET(獲取資源),POST(新建資源也可以用于更新資源),PUT(更新資源),DELETE(刪除資源),通過HTTP方法,就可以完成對數據的增刪查改操作。由于研究服務調用方法,本論文主要關注GET從服務器取出資源(一項或多項)和POST在服務器新建一個資源[11~12]。
RESTful架構風格所有的資源,都可以通過URI定位,每個資源至少有一個URI與之對應,最典型的URI即URL,而且這個定位與其他資源無關,也不會因為其他資源的變化而改變。
基于SOAP+WSDL的Web服務允許不同種類的應用程序通過標準HTTP協(xié)議調用服務生產者發(fā)布的服務方法。在二進制層操作是過去大部分遠程調用技術都要求的。而Web服務通過使用SOAP、HTTP、XML等組件,隔離服務請求方和服務提供方,利用服務接口連接雙方,服務實現(xiàn)與接口分離,調用方無須了解服務提供者方法的具體實現(xiàn)細節(jié),因此Web服務是較為松散耦合的,基于SOAP服務的數據交換是以XML格式通過HTTP進行,調用服務的方式有靜態(tài)、半自動、動態(tài)方式[13]。
以往在服務請求方調用Web服務之前,需要掌握接口參數、綁定類型與方式、所需調用服務的功能等信息,通過輸入固定類型的消息參數對服務進行調用。用戶請求端需要人為的對WSDL進行解析,確定所需要的服務的功能,特別是服務調用參數及其類型,在調用服務時,封裝這些消息參數,調用所需要的方法,發(fā)送請求到服務器端,這種調用服務的方式是靜態(tài)綁定的方式,弱化了服務松散耦合的優(yōu)點[14]。因此,增加服務請求方和服務提供方耦合,使得一旦服務提供者更改服務的某些細節(jié),請求方不得不重復修改、解析讀取來保證自己的程序不出錯。為了降低耦合,降低人力成本,本文采取動態(tài)綁定與調用SOAP服務的方法。
對于面向資源的RESTful風格服務,需要使用URI協(xié)議標識各個資源并發(fā)布出接口,服務請求者訪問所請求的資源需要訪問具有指定性和描述性的標識,經由HTTP,實現(xiàn)資源的表述從服務器到用戶端的轉移。

圖1 調用RESTful服務圖
SOAP服務是面向方法調用過程的,相比靜態(tài)調用方法需要提前約定服務功能、接口參數、綁定類型,動態(tài)訪問盡量減少人為參與,即無需了解WSDL中參數的結構和定義,而是事先建立一個相關知識庫,根據請求設施約束,匹配所訪問的方法。
調用流程如圖2所示。
1)請求服務。
2)請求信息經匹配器處理,生成用戶請求。
3)從知識庫提取服務描述,將兩個描述進行匹配。
4)選擇適合的綁定類型、端口。
5)對WSDL描述的服務參數和用戶提供的服務參數進行映射。
6)調用操作的名稱以及操作需要的一個輸入消息進行調用。
7)返回調用結果。

圖2 調用SOAP服務圖
如圖3所示,面向多監(jiān)測終端廠家服務的調用方法將面向不同廠家的調用方法集成,根據用戶請求某廠家數據,通過Web服務調用模塊,自動匹配調用服務,返回XML結果。對應地,本方法主要提供給國網電能質量智能信息系統(tǒng)與各監(jiān)測終端廠家,進行數據對接,返回的XML,經解析存入電能質量智能信息系統(tǒng)PQES數據庫。

圖3 系統(tǒng)物理結構圖
服務是一種安全且降低耦合數據對接方法,然而不同的廠家有著不同開發(fā)能力和開發(fā)習慣,進行數據服務接口對接又弱化了服務的優(yōu)點。根據上述描述可以看出,Web統(tǒng)一對接問題是普遍存在且急需解決的問題。本文研究了面向多監(jiān)測終端廠家服務的調用方法將面向不同廠家的調用方法集成[15],根據用戶請求某廠家數據,通過Web服務調用,自動匹配調用服務,返回XML結果。它提供一套調用接口,用戶無需了解Web服務的具體內容和差異,并且允許以類似的方式調用各種設備廠家開發(fā)的Web服務。目前測試的服務數量還比較有限,下一步的工作是集成更多的服務調用方法。