王 超,方詩(shī)虹
(1.西南民族大學(xué)信息與教育技術(shù)中心,四川 成都 610041;2.西南民族大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,四川 成都 610041)
近年來(lái),隨著信息技術(shù)的迅猛發(fā)展,高校在智慧化校園的建設(shè)中,通過(guò)對(duì)校園一卡通系統(tǒng)的實(shí)際應(yīng)用,在構(gòu)建校內(nèi)基礎(chǔ)數(shù)據(jù)平臺(tái)的同時(shí),利用一卡通所具有的身份識(shí)別與金融消費(fèi)兩大功能,實(shí)現(xiàn)了全校范圍內(nèi)數(shù)據(jù)標(biāo)準(zhǔn)的統(tǒng)一與資源共享,以及校內(nèi)消費(fèi)的刷卡支付與財(cái)務(wù)結(jié)算的智能化管理[1].
校園一卡通系統(tǒng)建設(shè)初期,卡內(nèi)金額的充值完全由人工現(xiàn)場(chǎng)完成,但隨著一卡通業(yè)務(wù)范圍的擴(kuò)展,用戶人數(shù)的逐漸增多,單純依靠人工充值的方式,已無(wú)法滿足校內(nèi)用戶方便、快捷的充值需求.銀行作為專業(yè)的金融服務(wù)機(jī)構(gòu),擁有大量的現(xiàn)金存取設(shè)備、人工業(yè)務(wù)辦理場(chǎng)所,以及完備的資金結(jié)算流程[2].校園一卡通充值業(yè)務(wù)可與銀行現(xiàn)有平臺(tái)進(jìn)行深度融合,利用其行業(yè)優(yōu)勢(shì)解決一卡通人工充值所帶來(lái)的各種問(wèn)題.
銀校轉(zhuǎn)賬系統(tǒng)總體框架如圖1所示,該系統(tǒng)主要由銀校雙方各自擁有的前置服務(wù)器、應(yīng)用管理平臺(tái)、數(shù)據(jù)庫(kù),以及各類終端設(shè)備組成.通過(guò)校園一卡通銀校轉(zhuǎn)賬系統(tǒng)的建設(shè),將現(xiàn)金的存取業(yè)務(wù)交由銀行處理,用戶既可使用和一卡通綁定的銀行卡在校外進(jìn)行社會(huì)消費(fèi),又可利用銀校轉(zhuǎn)賬系統(tǒng)的專用設(shè)備或應(yīng)用軟件向校園一卡通充值,然后通過(guò)校園一卡通管理平臺(tái)實(shí)現(xiàn)校內(nèi)刷卡消費(fèi),以及財(cái)務(wù)自動(dòng)結(jié)算[3].基于校內(nèi)應(yīng)用需求與銀行金融規(guī)范綜合考慮,既要在保證實(shí)時(shí)數(shù)據(jù)交互的同時(shí),還需保障數(shù)據(jù)傳輸過(guò)程中,各個(gè)應(yīng)用系統(tǒng)與校內(nèi)用戶的資金安全.因此,銀校轉(zhuǎn)賬系統(tǒng)設(shè)計(jì)為單向交易處理架構(gòu)模式,即僅限于用戶資金由銀行卡向一卡通內(nèi)轉(zhuǎn)入(圈存業(yè)務(wù)),而無(wú)一卡通向銀行卡轉(zhuǎn)出渠道(圈取業(yè)務(wù))[4].銀行卡并不介入校園一卡通校內(nèi)應(yīng)用范圍內(nèi)的交易,而校園一卡通也不具備在校外金融消費(fèi)功能.
將一卡通用戶銀行卡內(nèi)的部分金額,通過(guò)專有設(shè)備劃轉(zhuǎn)至校園一卡通系統(tǒng)IC卡電子錢(qián)包中的過(guò)程稱為“圈存”[5].銀校轉(zhuǎn)賬系統(tǒng),即通過(guò)校園前置服務(wù)器網(wǎng)卡A經(jīng)網(wǎng)絡(luò)運(yùn)營(yíng)商的SDH(Synchronous Digital Hierarchy,同步數(shù)字體系)電路傳輸服務(wù)與銀行前置服務(wù)器網(wǎng)卡B鏈接,采用Socket通信機(jī)制作為系統(tǒng)的數(shù)據(jù)通道,把銀行前置機(jī)設(shè)置為Socket Server,啟動(dòng)監(jiān)聽(tīng)服務(wù),校園前置機(jī)設(shè)置為 Socket Client,主動(dòng)連接Server.校園前置服務(wù)器網(wǎng)卡B與校內(nèi)網(wǎng)絡(luò)相連,通過(guò)以校園網(wǎng)為主干線路的一卡通網(wǎng)絡(luò),采用專網(wǎng)或VLAN(Virtual Local Area Network,虛擬局域網(wǎng))的劃分方式,將一卡通管理平臺(tái)、一卡通數(shù)據(jù)庫(kù)、圈存設(shè)備管理系統(tǒng)彼此進(jìn)行鏈接,待交易完成后,可根據(jù)轉(zhuǎn)賬金額對(duì)數(shù)據(jù)庫(kù)內(nèi)用戶的一卡通余額進(jìn)行改寫(xiě).而圈存服務(wù)器則通過(guò)校園網(wǎng)管理著部署在校內(nèi)各個(gè)場(chǎng)所的圈存設(shè)備.為保證數(shù)據(jù)傳輸?shù)目旖?、可靠,以及用戶的資金安全,還可將圈存系統(tǒng)中的專用機(jī)具采用MAC+IP在一卡通管理平臺(tái)注冊(cè)的方式,使其設(shè)備在邏輯上與物理上均與校內(nèi)其他設(shè)備進(jìn)行有效隔離[6].
圖1 系統(tǒng)總體框架Fig.1 System overall framework
每個(gè)交易日,由校園前置服務(wù)器遠(yuǎn)程登錄銀行前置機(jī),在登錄成功后,開(kāi)始進(jìn)行校銀簽約.首先由校方生成簽約報(bào)文,報(bào)文經(jīng)過(guò)密鑰加密后,將其發(fā)送至銀行前置服務(wù)器,銀行方對(duì)其解密處理,然后送至綜合業(yè)務(wù)管理平臺(tái),平臺(tái)根據(jù)用戶需求進(jìn)行相應(yīng)處理,處理成功后返回校園前置機(jī)交易代碼,最后開(kāi)始處理批量簽約結(jié)果文件[7].操作完成后,開(kāi)始日常一卡通銀校圈存轉(zhuǎn)賬業(yè)務(wù)工作.一卡通銀校轉(zhuǎn)賬系統(tǒng)業(yè)務(wù)流程如圖2所示.運(yùn)行結(jié)束后,在銀、校雙方約定的時(shí)間,停止交易,由銀行綜合業(yè)務(wù)管理平臺(tái)生產(chǎn)交易明細(xì)文件,銀行前置機(jī)將其取得后,生成對(duì)賬報(bào)文,放在其預(yù)設(shè)的目錄之下,由校園前置機(jī)通過(guò)FTP下載,進(jìn)行每日對(duì)賬流程.
1)用戶放入一卡通卡片,讀卡器讀取卡片ID后,提示輸入一卡通賬號(hào)、密碼;
2)在網(wǎng)絡(luò)暢通的狀態(tài)下,由一卡通應(yīng)用系統(tǒng)判斷其用戶身份是否有效;
3)根據(jù)用戶操作請(qǐng)求生成數(shù)據(jù)報(bào)文,加工處理后,經(jīng)校園前置機(jī)發(fā)送至銀行前置機(jī);
4)報(bào)文解密,由銀行綜合業(yè)務(wù)系統(tǒng)判定用戶身份、用戶權(quán)限是否有效,查詢用戶銀行卡余額,賬戶扣款成功后,返回交易成功代碼;
5)校園前置機(jī)接收到銀行報(bào)文,根據(jù)銀行交易代碼,由一卡通平臺(tái)為用戶增款,若失敗,則提示交易失敗,并向銀行返回錯(cuò)誤代碼,根據(jù)其生產(chǎn)的交易流水號(hào),產(chǎn)生交易回退事件,銀行進(jìn)行沖正處理;
6)交易完成后,提示用戶取卡,業(yè)務(wù)流程結(jié)束.
圖2 系統(tǒng)業(yè)務(wù)流程Fig.2 System business process
報(bào)文是指通訊雙方應(yīng)遵循的一種數(shù)據(jù)組織形式,它所包含的各類數(shù)據(jù)信息通過(guò)封裝、拆解進(jìn)行數(shù)據(jù)格式的轉(zhuǎn)變與信息的交互[8].當(dāng)前應(yīng)用較為廣泛的數(shù)據(jù)報(bào)文有 8583、MDB、DBF、XML、自定義等幾種類型.8583作為銀行傳統(tǒng)的標(biāo)準(zhǔn)報(bào)文格式,最多由128個(gè)字段域組成,每個(gè)域皆為行業(yè)內(nèi)部約定的標(biāo)準(zhǔn)描述,如交易代碼、交易金額、交易時(shí)間、以及服務(wù)類型等,但因其字段數(shù)量限制,帶來(lái)擴(kuò)充不便等缺點(diǎn)[9].MDB與DBF作為關(guān)系型數(shù)據(jù)庫(kù)報(bào)文格式,有著需嚴(yán)格遵循的數(shù)據(jù)格式與長(zhǎng)度規(guī)范,但因其個(gè)體尺寸較大,不適應(yīng)于需大量實(shí)時(shí)交換數(shù)據(jù)的應(yīng)用場(chǎng)景[10].而自定義報(bào)文格式,雖格式靈活多變,擴(kuò)充自由,但無(wú)行業(yè)標(biāo)準(zhǔn)可供遵循,通訊雙方的報(bào)文格式、數(shù)據(jù)類型缺少約束條件,平臺(tái)沒(méi)有定義的全局?jǐn)?shù)據(jù)字典,因而無(wú)法保證不同交易平臺(tái)在處理中的一致性.
XML(eXtensible Markup Language,可擴(kuò)展標(biāo)記語(yǔ)言)是 W3C(World Wide Web Consortium,World Wide Web Consortium,萬(wàn)維網(wǎng)聯(lián)盟)發(fā)布的一種元標(biāo)記語(yǔ)言.作為SGML(Standard Generalized Language,標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言)的子集,XML可根據(jù)用戶的自身需求,自己定義賦有內(nèi)涵的標(biāo)記,通過(guò)這些標(biāo)記來(lái)精確地表述事件中所含信息的各類意義[11].XML運(yùn)用Unicode標(biāo)準(zhǔn)編碼,采用樹(shù)狀結(jié)構(gòu),利用文本文件的格式對(duì)各種信息進(jìn)行存儲(chǔ).樹(shù)狀結(jié)構(gòu)的每一個(gè)節(jié)點(diǎn)均為事件中的每一個(gè)對(duì)象,而對(duì)象則可映射為相應(yīng)的元素(Element),元素是標(biāo)記(Tag)與內(nèi)容的集合.作為半結(jié)構(gòu)化的語(yǔ)言,XML通過(guò)元素之間的嵌套關(guān)系對(duì)信息進(jìn)行描述,因其樹(shù)狀化、層次化的文本結(jié)構(gòu),在應(yīng)用時(shí)無(wú)需使用數(shù)據(jù)庫(kù)系統(tǒng)[12].
總體而言,XML具有的自身特性為異構(gòu)平臺(tái)的數(shù)據(jù)交互提供了可能.首先,XML具有較強(qiáng)的精準(zhǔn)性.XML在嚴(yán)格要求標(biāo)記配對(duì)嵌套的基礎(chǔ)上,內(nèi)容描述與顯示方式相分離,用戶可分別針對(duì)內(nèi)容或顯示形式進(jìn)行修改,兩者之間互不影響,從而使得整體結(jié)構(gòu)清晰,便于用戶閱讀與維護(hù)[13].其次,XML具有優(yōu)秀的可擴(kuò)展性.XML作為元標(biāo)記語(yǔ)言,用戶可根據(jù)自身需求定義標(biāo)記,以充分表述文件內(nèi)容.同時(shí)還可依據(jù)DTD(Document Type Definition,文檔類型定義)或XML Schema的驗(yàn)證機(jī)制,規(guī)范元素與屬性格式,避免命名之間的沖突,以保證信息在多種異構(gòu)平臺(tái)的延伸.最后,XML具有良好的開(kāi)放性.XML基于純文本的標(biāo)記語(yǔ)言,語(yǔ)法規(guī)則簡(jiǎn)單易用,元素定義短小精干,在支持各類語(yǔ)言,以及多種編譯工具的前提下,可在不同的平臺(tái)系統(tǒng)中使用.因此,XML作為當(dāng)今社會(huì)通用的數(shù)據(jù)交互模式,它與語(yǔ)義的無(wú)關(guān)性、結(jié)構(gòu)的無(wú)關(guān)性、平臺(tái)的無(wú)關(guān)性,將會(huì)為異構(gòu)系統(tǒng)之間的數(shù)據(jù)集成帶來(lái)極大的便利[14].通過(guò)以上描述,XML數(shù)據(jù)報(bào)文具有在異構(gòu)平臺(tái)之間準(zhǔn)確、實(shí)時(shí)交互信息的基本特性,一卡通銀校轉(zhuǎn)賬系統(tǒng)可采用XML文檔作為報(bào)文格式描述文件.
一卡通銀校轉(zhuǎn)賬平臺(tái)根據(jù)其學(xué)校自身情況,可采用“一對(duì)一”或“一對(duì)多”業(yè)務(wù)關(guān)系,即一所高校一卡通轉(zhuǎn)賬系統(tǒng),可同時(shí)與一家或多家銀行進(jìn)行數(shù)據(jù)交互,其采用的模式為:以HTTP傳輸協(xié)議為基礎(chǔ),利用規(guī)范的XML報(bào)文格式對(duì)每一條報(bào)文進(jìn)行描述,按平臺(tái)預(yù)先設(shè)定的統(tǒng)一標(biāo)準(zhǔn)接入方式接入,即可實(shí)現(xiàn)在多個(gè)異構(gòu)系統(tǒng)運(yùn)行的前提下,平臺(tái)數(shù)據(jù)的實(shí)時(shí)交互[15].此類XML數(shù)據(jù)報(bào)文,可利用文檔腳本描述其數(shù)據(jù)結(jié)構(gòu)與屬性內(nèi)容.即用元素描述數(shù)據(jù)字段信息,結(jié)構(gòu)嵌套中的子元素描述組數(shù)據(jù),用元素的屬性描述數(shù)據(jù)字段的相關(guān)內(nèi)容[16].
銀校轉(zhuǎn)帳系統(tǒng)數(shù)據(jù)報(bào)文由基本信息、報(bào)文頭、報(bào)文體三大部分組成:①基本信息(Message_Inf),即客戶端與服務(wù)器之間,數(shù)據(jù)通訊所需的基礎(chǔ)信息,主要是對(duì)通訊報(bào)文的基本屬性進(jìn)行描述,包括系統(tǒng)版本號(hào)(version),格式設(shè)置為1.0.時(shí)間標(biāo)識(shí)(time),格式設(shè)置為 YYYY:MM:DD:HH:MIN:SS;②報(bào)文頭(Message_Header)包含通訊雙方用戶身份信息,分別為報(bào)文發(fā)送方與報(bào)文響應(yīng)方,其元素名稱(name)即報(bào)文的發(fā)送方或接收方,如XX大學(xué)或XX銀行,用戶角色(role)定義為該條報(bào)文的交易發(fā)起者,或交易接收者.ID號(hào)是銀校轉(zhuǎn)賬系統(tǒng)中是標(biāo)識(shí)每個(gè)機(jī)構(gòu)身份信息的數(shù)字編碼,具有唯一性,且固定不變;③報(bào)文體(Message_Body),根據(jù)用戶需求的不同,其內(nèi)容分別為請(qǐng)求信息或響應(yīng)信息,請(qǐng)求信息中包含一卡通用戶個(gè)人基本信息,以及行為操作等內(nèi)容,如交易代碼,以此用于對(duì)其操作動(dòng)作進(jìn)行區(qū)分,例如可設(shè)置為00006轉(zhuǎn)賬,00007查詢余額等.每一條交易數(shù)據(jù)均會(huì)自動(dòng)產(chǎn)生一條流水號(hào),用于每日對(duì)賬,以及數(shù)據(jù)存儲(chǔ)與數(shù)據(jù)檢索.數(shù)據(jù)組中包含了用戶的校園卡卡號(hào)、身份證號(hào)、轉(zhuǎn)賬金額等內(nèi)容.響應(yīng)信息主要包含銀行方返回的交易代碼,用于表示交易狀態(tài)成功或失敗.若交易失敗,則會(huì)根據(jù)銀行業(yè)務(wù)系統(tǒng)所提供的數(shù)據(jù),顯示失敗原因,如個(gè)人信息不符,卡內(nèi)余額不足,賬戶狀態(tài)異常等等.報(bào)文信息描述如下:
銀校轉(zhuǎn)賬系統(tǒng)中的XML數(shù)據(jù)報(bào)文在網(wǎng)絡(luò)中傳送,其安全性問(wèn)題需要著重關(guān)注.傳統(tǒng)的SSL/TSL雖然能夠?qū)崿F(xiàn)端到端的通訊安全保護(hù),但加密方式需對(duì)整個(gè)文檔進(jìn)行加密,這將導(dǎo)致在某個(gè)時(shí)間段內(nèi)傳送大量數(shù)據(jù)會(huì)產(chǎn)生性能方面的問(wèn)題.而XML安全機(jī)制則可提供多種加密粒度以供用戶選擇,即既可加密整個(gè)文檔內(nèi)容,也可加密單個(gè)元素,或者加密元素內(nèi)容.同時(shí),XML加密過(guò)程不會(huì)改變文檔格式,加密后的密文依舊是格式良好的XML文檔[17].在本案研究中,因元素Message_Body內(nèi)包含有用戶卡號(hào)、密碼,以及操作行為等涉及個(gè)人金融安全的內(nèi)容,需針對(duì)Message_Body進(jìn)行加密.以下是加密Message_Body元素后的X ML文檔.
根據(jù)以上文檔將加密數(shù)據(jù)封裝于EncryptedData元素中以實(shí)現(xiàn)對(duì)XML報(bào)文加密.EncryptionMethod使用URI唯一標(biāo)識(shí)中所采用的加密算法,以保證銀行、學(xué)校雙方在算法上的一致.在本案例中,URI使用tripledes進(jìn)行加密,并通過(guò)CBC填充.CipherData則作為加密后的密文,CipherValue用于封裝實(shí)際的加密數(shù)據(jù).
在系統(tǒng)實(shí)際運(yùn)行過(guò)程中,還需考慮校內(nèi)各個(gè)職能部門(mén)今后對(duì)一卡通銀校轉(zhuǎn)賬系統(tǒng)新的需求,以及整個(gè)業(yè)務(wù)平臺(tái)的功能擴(kuò)展或升級(jí)改造.為體現(xiàn)其開(kāi)放兼容性與靈活擴(kuò)展性,平臺(tái)需提供統(tǒng)一標(biāo)準(zhǔn)的數(shù)據(jù)接口,以供接入雙方使用[18].為方便應(yīng)用程序跨平臺(tái)的存取與調(diào)用,一般將數(shù)據(jù)接口的配置參數(shù)存放于XML文件中,當(dāng)每天服務(wù)啟動(dòng)時(shí),系統(tǒng)將首先讀取配置文件中的參數(shù)內(nèi)容,根據(jù)接口參數(shù)去獲取相關(guān)信息.XML配置文件部分內(nèi)容如下:
硬件部分包括:Intel(R)Xeon(R)2.6GHZ 2CPU,內(nèi)存為32G.HUAWEI16口光纖交換機(jī),銀、校雙方采用SDH連接.
軟件部分包括:操作系統(tǒng)Windows Server 2008 R2 Enterprise,F(xiàn)TP服務(wù)器軟件 Serv-U,數(shù)據(jù)庫(kù)MySQL Server 5.0,JDK1.6與 Jboss4.2.
實(shí)驗(yàn)場(chǎng)景選?。簢?guó)內(nèi)某大學(xué),一卡通用戶數(shù)4萬(wàn)余人,人工充值點(diǎn)位5個(gè),自助圈存終端16個(gè).年充值金額1.3億元.
系統(tǒng)上線5個(gè)月內(nèi),對(duì)全校用戶產(chǎn)生的人工充值與自助圈存的交易金額、交易次數(shù)進(jìn)行記錄,如表1所示.根據(jù)表1數(shù)據(jù),將人工充值與自助圈存每個(gè)點(diǎn)位一天的交易次數(shù)進(jìn)行計(jì)算
全校用戶在使用銀校轉(zhuǎn)賬系統(tǒng)后,人工充值金額及次數(shù)大幅下降,每個(gè)人工充值點(diǎn)由最初的311筆/天,下降至27筆/天.而每臺(tái)自助圈存終端則由最初的13筆/天,上升至166筆/天.其趨勢(shì)如圖3所示.
表1 數(shù)據(jù)記錄Table 1 Data record
圖3 每月日均交易數(shù)Fig.3 Daily average transaction per month
本文提出了一種基于XML的一卡通銀校轉(zhuǎn)賬系統(tǒng)架構(gòu),并較為詳細(xì)的闡述了其業(yè)務(wù)流程.同時(shí),利用XML所具有的精準(zhǔn)性、可擴(kuò)展性、開(kāi)放性等特質(zhì),實(shí)現(xiàn)了在學(xué)校與銀行這兩個(gè)異構(gòu)平臺(tái)之間安全、可靠、實(shí)時(shí)的傳送XML數(shù)據(jù)報(bào)文.應(yīng)用結(jié)果驗(yàn)證了此系統(tǒng)降低了學(xué)校在一卡通充值方面的人力開(kāi)銷,提高了數(shù)據(jù)實(shí)時(shí)交互的工作效率,能夠滿足一卡通用戶方便、快捷的自助圈存需求.但是,該系統(tǒng)在處理數(shù)據(jù)報(bào)文的封裝與解析上,耗時(shí)較長(zhǎng),未來(lái)還將針對(duì)此問(wèn)題進(jìn)行優(yōu)化,提高其運(yùn)行效率.