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