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


外部訂票系統作為服務器端,采用的是Java框架,而本單位管理系統作為客戶請求端,為了更好的穩定性、兼容性,數據讀取入庫采用了Java語言編程,并將編寫好程序部署于Tomcat,采用定時運行的方式,向外部訂票系統發送數據讀取請求,對返回的請求消息按約定規則進行解析,并將解析出的訂票數據進行入庫。
Tomcat定時運行,解析包含認證信息的配置文件,向外部訂票系統發送請求。請求成功后,將包含:目標地址、公司ID、員工姓名、員工編號等身份認證信息的數據流,推送至外部訂票系統。外部訂票系統,接收所推送數據流,按雙方約定格式解析數據流,并進行身份認證,認證成功后,按約定JSON格式返回數據對象。本單位管理系統按雙方約定格式解析此數據對象,并按照本單位管理系統數據存儲規范進行數據入庫,從而完成了本單位員工訂票信息自動入本單位管理系統功能。
核心源代碼如下:



通過與外部訂票系統的數據集成,實現了本單位票務數據定時入本單位管理系統數據庫的功能。目前,在此票據數據基礎之上,本單位管理系統實現了本單位內部的報銷、差旅審批流程流轉,審批流程中的票務數據及時、準確,大大提升了工作效率。未來,基于此票務數據,本單位管理系統將開發數據報表,實現各部門的出差成本自動核算,充分發揮票務數據的作用,實現數據再加工、再利用。
本文是WebService技術在實際項目中的應用,并達到了預期效果,解決了基于不同技術框架系統的交互問題。驗證了WebService技術在跨平臺、跨系統之間的良好支持,為解決各類系統的交互提供了比較實用的建設思路,對各類操作系統的交互有著很強的借鑒作用。