丁新紅 翟志強
(江蘇省常州市南車戚墅堰機車有限公司,江蘇常州 213011)
基于Web Service技術(shù)的企業(yè)信息系統(tǒng)數(shù)據(jù)交互
丁新紅 翟志強
(江蘇省常州市南車戚墅堰機車有限公司,江蘇常州 213011)
分析了南車戚墅堰機車有限公司目前使用的一種數(shù)據(jù)交互方式局限性,進一步介紹了Web Service技術(shù)的特點,提出了企業(yè)信息系統(tǒng)數(shù)據(jù)交互框架,結(jié)合企業(yè)ERP系統(tǒng)與機車修理系統(tǒng)數(shù)據(jù)交互實例,介紹信息系統(tǒng)數(shù)據(jù)交互實現(xiàn)方法。
Web Service技術(shù) 企業(yè)信息系統(tǒng) 數(shù)據(jù)交互
隨著信息技術(shù)的迅猛發(fā)展,南車戚墅堰機車有限公司(以下簡稱“戚墅堰公司”)的信息化系統(tǒng)也越來越多,但是眾多的信息系統(tǒng)基本上是基于獨立的解決方案設(shè)計的,分布在不同的服務(wù)器上,應(yīng)用程序開發(fā)語言和數(shù)據(jù)庫都不盡相同,信息系統(tǒng)之間不可避免的存在異構(gòu),眾多的關(guān)鍵信息封閉在獨立的信息系統(tǒng)中,形成了信息孤島?;ヂ?lián)網(wǎng)的發(fā)展對戚墅堰公司的信息化建設(shè)提出了新的要求,如何及解決信息系統(tǒng)間數(shù)據(jù)交互成了信息建設(shè)的重要課題。近年來,戚墅堰公司的信息系統(tǒng)數(shù)據(jù)交互主要通過中間接口庫的形式實現(xiàn),在數(shù)據(jù)庫中建立用戶賬號并對其授權(quán),各自系統(tǒng)操作員通過界面上的功能按鈕觸發(fā)事件實現(xiàn)系統(tǒng)信息的同步,系統(tǒng)之間不直接交互安全性提高,但是對用戶授權(quán)又存在一定的安全隱患,信息共享實時性較差。而且隨著接入系統(tǒng)數(shù)量的增加,數(shù)據(jù)庫連接數(shù)可能被耗盡。
2.1 Web Service定義
Web Service是一套實現(xiàn)網(wǎng)絡(luò)服務(wù)發(fā)布與調(diào)用的規(guī)范。這套規(guī)范使用HTTP作為通信協(xié)議、使用SOAP協(xié)議實現(xiàn)遠程服務(wù)的調(diào)用、使用WSDL文件描述服務(wù)、使用UUDI機制實現(xiàn)網(wǎng)絡(luò)上各種服務(wù)的集成和發(fā)布。
2.2 Web Service特點
Web Service是為軟件提供服務(wù)的,其直接用戶是程序開發(fā)人員,或者說,Web Service的內(nèi)部技術(shù)對最終用戶是透明的。其特點表現(xiàn)為:
(1)優(yōu)點:一、遠程服務(wù):服務(wù)請求時,客戶端向服務(wù)器端發(fā)送的是待處理的數(shù)據(jù),服務(wù)應(yīng)答時,服務(wù)器端向客戶端回送的是處理后的數(shù)據(jù)。整個服務(wù)過程中相對客戶端而言,屬于遠程服務(wù)。二、實時性:信息交互隨時請求,隨時響應(yīng)不需要人工觸發(fā),做到實時響應(yīng)。三、跨平臺,與語言無關(guān):使用Windows操作系統(tǒng)的客戶端即可以請求一臺Linux服務(wù)器上的Web Service,也可以請求一臺Solaris服務(wù)器上的Web Service。而且服務(wù)的消費者和服務(wù)的提供者都可以用不同的語言進行實現(xiàn)。四、跨防火墻通信:使用HTTP作為通信協(xié)議, Web Service的數(shù)據(jù)很容易通過防火墻,不需要防火墻為其單獨開通端口。五、易調(diào)試:使用了SOAP,數(shù)據(jù)是以xml文本的方式而非二進制傳輸,調(diào)試非常方便。
(2)缺點:數(shù)據(jù)量大時效率低:用文本格式編碼數(shù)據(jù),會造成SOAP數(shù)據(jù)包體積龐大。特別是當(dāng)待處理的數(shù)據(jù)本身就龐大時,Web Service的效率會嚴重下降。但是,在企業(yè)內(nèi)部網(wǎng)絡(luò)中,這個缺點可以忽略不計。
目前開源的Web Services框架常見的有Axis和CXF。系統(tǒng)選擇了Axis 2作為Web Services實現(xiàn)。Axis2具有強大的靈活性并可擴展到新的體系結(jié)構(gòu)。Axis2是一套嶄新的WebService引擎,該版本是對Axis1.x重新設(shè)計的產(chǎn)物。Axis2不僅支持SOAP1.1和SOAP1. 2,還集成了非常流行的REST WebService,同時還支持Spring、JSON等技術(shù)。架構(gòu)圖1如下:
以ERP系統(tǒng)與機車修理系統(tǒng)數(shù)據(jù)交互為實例介紹戚墅堰公司信息系統(tǒng)數(shù)據(jù)交互的實現(xiàn)。(機車修理系統(tǒng)獲取ERP系統(tǒng)細錄單信息為例)
(1)瀏覽器訪問機車修理系統(tǒng);如圖2用戶進入機車修理系統(tǒng)中,實例中訪問的是細錄單模板管理—細錄單查詢。
圖1 WebService集成接口系統(tǒng)架構(gòu)
圖2 瀏覽器訪問機車修理系統(tǒng)
圖3 接口平臺中定義服務(wù)
(2)修理系統(tǒng)請求Axis;輸入車型、車號、姓名條件,點擊“查詢”按鈕,此時修理系統(tǒng)發(fā)生請求,請求服務(wù)名為:AnalyzeRateByYear如圖3。
圖4 修理系統(tǒng)通過接口平臺返回給瀏覽器數(shù)據(jù)
(3)Axis訪問ERP系統(tǒng);
public List<AnalyzeAmtByTrainResultVo> getResult (String trainNo) throws Exception {
新風(fēng)進口干球溫度33.21℃,經(jīng)過熱管后干球溫度29.96℃,新風(fēng)量8 060m3/h,回風(fēng)干球溫度25.76℃,排風(fēng)量6 457m3/h,熱管熱回收效率計算如下:
AmtDao dao = new AmtDao();
//AmtDao中的analyzeAmtByTrainResult方法是通過車型車號,查詢結(jié)果
List<AnalyzeAmtByTrainResultVo> resultVos = dao. analyzeAmtByTrainResult(trainNo)
//返回的List對象會通過Axix轉(zhuǎn)換為xml發(fā)送到客戶端
return resultVos;
}
(4)ERP系統(tǒng)響應(yīng)Axis;ERP 系統(tǒng)響應(yīng)Axis,執(zhí)行執(zhí)行SQL命令,將處理的數(shù)據(jù)返回。
(5)Axis將XML數(shù)據(jù)返回給修理系統(tǒng)(以第二條數(shù)據(jù)XML為例);
<ns:getVosResponse>
<n s:r e t u r n x s i:t y p e="a x 2 1 8 1:GetTrmRepairListTempResultVo">
<ax2181:confirmFlag>N</ax2181:confirmFlag>
<ax2181:itemCode>06000001</ax2181:itemCode>
<ax2181:itemModel xsi:nil="true"/>
<ax2181:itemName>鐵路機車粗制整體輪</ax2181:itemName>
<ax2181:itemNorm>TJZL-010-98-1062</ax2181:itemNorm>
<ax2181:newQty>12</ax2181:newQty>
<ax2181:quantity>12</ax2181:quantity>
<ax2181:specialAttribute1 xsi:nil="true"/>
<ax2181:specialAttribute2 xsi:nil="true"/>
<ax2181:wcName xsi:nil="true"/>
</ns:return>
</ns:getVosResponse>
(6)修理系統(tǒng)返回給瀏覽器;如圖4。
戚墅堰公司通過建立基于Web Service技術(shù)的數(shù)據(jù)交互平臺,實現(xiàn)了供應(yīng)商管理系統(tǒng)與精益物流系統(tǒng),ERP系統(tǒng)與PDM系統(tǒng),客戶關(guān)系管理系統(tǒng)與ERP系統(tǒng)等多個系統(tǒng)之間的數(shù)據(jù)交互,有效的解決了異構(gòu)系統(tǒng)之間數(shù)據(jù)交互的問題,打破了信息孤島格局,提高了信息的實時共享效率。
數(shù)據(jù)在企業(yè)的經(jīng)營管理、生產(chǎn)制造等各方面的影響力越來越大,數(shù)據(jù)驅(qū)動將成為企業(yè)發(fā)展的動力。戚墅堰公司通過基于WebService技術(shù)的接口平臺實現(xiàn)企業(yè)信息系統(tǒng)數(shù)據(jù)實時交互處于初級階段,在大數(shù)據(jù)引爆的今天,如何在通過接口平臺實現(xiàn)數(shù)據(jù)快速實時交互的同時確保數(shù)據(jù)的安全仍需投入更多的人力、物力和財力進行深入研究。
[1]Eben Hewitt著,孫燕,陳伊文,王俊華,譯.JAVA SQL Cookbook 中文版[M].清華大學(xué)出版社,2011.
[2]徐光俠,楊丹.基于WebService技術(shù)的異構(gòu)系統(tǒng)的無縫集成[J].計算機工程與設(shè)計,2007(3):6.
丁新紅(1979—),女,本科,2004年畢業(yè)于北京理工大學(xué)計算機科學(xué)與技術(shù)專業(yè),研究方向:企業(yè)信息化建設(shè),工程師,MBA在讀。