王惠媛
(中國電建集團北京勘測設計研究院有限公司,北京 100024)
WebService平臺是一套標準,它定義了應用程序如何在Web上實現(xiàn)互操作性。WebService是基于網(wǎng)絡的、分布式的模塊化組件,它執(zhí)行特定的任務,遵守具體的技術規(guī)范,這些規(guī)范使得WebService能與其他兼容的組件進行互操作[1]。它可以使用標準的互聯(lián)網(wǎng)協(xié)議,像超文本傳輸協(xié)議HTTP和XML,將功能體現(xiàn)在互聯(lián)網(wǎng)和企業(yè)內部網(wǎng)上。
在實際工作中,各類系統(tǒng)間的數(shù)據(jù)交互、高效部署的需求日益突出,本文采用WebService平臺,通過接口調用的方式,很好地解決了本單位與外部訂票系統(tǒng)間的訂票、數(shù)據(jù)交互應用需求。
本次應用基于WebService技術,采用SOAP標準,雙方約定統(tǒng)一JSON數(shù)據(jù)格式。外部訂票系統(tǒng)作為服務器端將訂票人身份信息、票證信息組織成約定數(shù)據(jù)格式,本單位管理系統(tǒng)作為客戶端通過SOAP進行遠程過程調用(RPC),實現(xiàn)了本單位人員賬號與外部訂票系統(tǒng)的單點登錄集成、訂票信息進入本單位管理系統(tǒng)數(shù)據(jù)庫,完成了基于不同技術平臺的數(shù)據(jù)對接交互。
員工通過本單位管理系統(tǒng)賬號,登錄本單位管理系統(tǒng),并通過管理系統(tǒng)集成的訂票鏈接進行訂票。員工進入訂票系統(tǒng)鏈接過程中,客戶端發(fā)出一條SOAP消息,此消息包括加密的員工賬號信息,服務器接收此SOAP消息,根據(jù)規(guī)則解析此SOAP消息,并進行身份信息認證,認證通過后,進入外部訂票系統(tǒng),實現(xiàn)員工憑本單位系統(tǒng)賬號即可單點登錄外部訂票系統(tǒng)。
本單位管理系統(tǒng),通過Java定時服務的方式,定時向外部訂票系統(tǒng)發(fā)送請求,外部訂票系統(tǒng)響應請求,驗證請求通過后,返回訂票結果消息,本單位根據(jù)約定規(guī)則解析執(zhí)行結果,將解析出的訂票數(shù)據(jù)進行數(shù)據(jù)對比,依據(jù)對比結果完成訂票數(shù)據(jù)的入庫。
本單位報銷、差旅審批流程啟動時,管理系統(tǒng)根據(jù)報銷、差旅人員身份信息匹配數(shù)據(jù)庫中訂票數(shù)據(jù),將數(shù)據(jù)自動加載至報銷、差旅審批單中,實現(xiàn)了本單位內部審批流程與外部訂票系統(tǒng)的數(shù)據(jù)對接、與數(shù)據(jù)再利用,免去了訂票信息的重復填報,大大提升了本單位報銷、差旅數(shù)據(jù)的及時、準確性,縮短了流程審批時間,提升了工作效率。
本單位管理系統(tǒng)作為訂票入口,員工通過單點登錄方式進入外部訂票系統(tǒng)。由于本單位管理系統(tǒng)底層系采用.NET框架,為滿足性能穩(wěn)定的需求,故單點登錄功能采用C#語言進行開發(fā)。
員工點擊本單位管理系統(tǒng)的訂票鏈接,即向外部訂票系統(tǒng)發(fā)送SOAP請求。員工的姓名、公司ID、員工編號、登錄名等信息被封裝為JSON數(shù)據(jù)對象,此數(shù)據(jù)對象通過HTTP進行傳輸。外部訂票系統(tǒng)接收請求,即根據(jù)雙方約定格式對接收的JSON數(shù)據(jù)對象內容進行解析。外部訂票系統(tǒng)根據(jù)解析出內容,進行身份認證,身份認證通過后,返回JSON格式數(shù)據(jù)對象。本單位管理系統(tǒng)依據(jù)雙方約定格式再次進行解析,解析出外部訂票系統(tǒng)的目標地址,從而實現(xiàn)本單位管理系統(tǒng)與外部訂票系統(tǒng)的單點登錄功能。
核心源代碼如下:
外部訂票系統(tǒng)作為服務器端,采用的是Java框架,而本單位管理系統(tǒng)作為客戶請求端,為了更好的穩(wěn)定性、兼容性,數(shù)據(jù)讀取入庫采用了Java語言編程,并將編寫好程序部署于Tomcat,采用定時運行的方式,向外部訂票系統(tǒng)發(fā)送數(shù)據(jù)讀取請求,對返回的請求消息按約定規(guī)則進行解析,并將解析出的訂票數(shù)據(jù)進行入庫。
Tomcat定時運行,解析包含認證信息的配置文件,向外部訂票系統(tǒng)發(fā)送請求。請求成功后,將包含:目標地址、公司ID、員工姓名、員工編號等身份認證信息的數(shù)據(jù)流,推送至外部訂票系統(tǒng)。外部訂票系統(tǒng),接收所推送數(shù)據(jù)流,按雙方約定格式解析數(shù)據(jù)流,并進行身份認證,認證成功后,按約定JSON格式返回數(shù)據(jù)對象。本單位管理系統(tǒng)按雙方約定格式解析此數(shù)據(jù)對象,并按照本單位管理系統(tǒng)數(shù)據(jù)存儲規(guī)范進行數(shù)據(jù)入庫,從而完成了本單位員工訂票信息自動入本單位管理系統(tǒng)功能。
核心源代碼如下:
通過與外部訂票系統(tǒng)的數(shù)據(jù)集成,實現(xiàn)了本單位票務數(shù)據(jù)定時入本單位管理系統(tǒng)數(shù)據(jù)庫的功能。目前,在此票據(jù)數(shù)據(jù)基礎之上,本單位管理系統(tǒng)實現(xiàn)了本單位內部的報銷、差旅審批流程流轉,審批流程中的票務數(shù)據(jù)及時、準確,大大提升了工作效率。未來,基于此票務數(shù)據(jù),本單位管理系統(tǒng)將開發(fā)數(shù)據(jù)報表,實現(xiàn)各部門的出差成本自動核算,充分發(fā)揮票務數(shù)據(jù)的作用,實現(xiàn)數(shù)據(jù)再加工、再利用。
本文是WebService技術在實際項目中的應用,并達到了預期效果,解決了基于不同技術框架系統(tǒng)的交互問題。驗證了WebService技術在跨平臺、跨系統(tǒng)之間的良好支持,為解決各類系統(tǒng)的交互提供了比較實用的建設思路,對各類操作系統(tǒng)的交互有著很強的借鑒作用。