專利名稱:網(wǎng)關(guān)服務(wù)器以及銀行數(shù)據(jù)處理系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,具體地,涉及一種網(wǎng)關(guān)服務(wù)器以及銀行數(shù)據(jù)處理 系統(tǒng)。
背景技術(shù):
網(wǎng)關(guān)是連接主機(jī)和各個開放平臺的重要通信環(huán)節(jié),所有由主機(jī)處理的數(shù)據(jù)都需經(jīng) 過網(wǎng)關(guān)流轉(zhuǎn)。同時,網(wǎng)關(guān)作為一類服務(wù)器,長期運(yùn)行后必然存在技術(shù)升級或重啟復(fù)位等操 作,目前一般選擇凌晨交易量較少的時間進(jìn)行網(wǎng)關(guān)重啟。在需要7X24小時提供服務(wù)情況 下,網(wǎng)關(guān)的重啟將嚴(yán)重影響企業(yè)系統(tǒng)的正常運(yùn)行,容易導(dǎo)致交易上下不一致等事件,嚴(yán)重時 會發(fā)生數(shù)據(jù)庫已變更、而數(shù)據(jù)無法實(shí)時下傳到開發(fā)平臺的事故,導(dǎo)致數(shù)據(jù)不一致性或發(fā)生 生產(chǎn)事故。因此,如何提高網(wǎng)關(guān)系統(tǒng)的可用性,保證其7X24小時的100%提供服務(wù),一直是 各企業(yè)的迫切要求。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例的主要目的在于提供一種網(wǎng)關(guān)服務(wù)器以及銀行數(shù)據(jù)處理系統(tǒng),以解 決現(xiàn)有的銀行網(wǎng)關(guān)在重啟時導(dǎo)致的數(shù)據(jù)不一致、從而發(fā)生生產(chǎn)事故的問題。為了實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例提供一種網(wǎng)關(guān)服務(wù)器,包括多個具有平行部署 結(jié)構(gòu)的網(wǎng)關(guān)節(jié)點(diǎn),該網(wǎng)關(guān)節(jié)點(diǎn)包括狀態(tài)標(biāo)記單元,用于標(biāo)記網(wǎng)關(guān)節(jié)點(diǎn)的當(dāng)前狀態(tài),其中,所 述的狀態(tài)包括重啟、或者正常;銀行數(shù)據(jù)收發(fā)單元,用于在所述狀態(tài)標(biāo)記單元標(biāo)記的網(wǎng)關(guān) 節(jié)點(diǎn)狀態(tài)為正常時,接收需要上送主機(jī)的銀行數(shù)據(jù);上行數(shù)據(jù)存儲單元,用于存儲所述銀行 數(shù)據(jù)接收單元接收的銀行數(shù)據(jù);主機(jī)數(shù)據(jù)收發(fā)單元,用于將所述上行數(shù)據(jù)存儲單元存儲的 銀行數(shù)據(jù)發(fā)送給所述主機(jī)進(jìn)行處理、以及接收所述主機(jī)處理后的結(jié)果數(shù)據(jù);下行數(shù)據(jù)存儲 單元,用于存儲所述主機(jī)數(shù)據(jù)收發(fā)單元接收的結(jié)果數(shù)據(jù);重啟單元,用于根據(jù)預(yù)設(shè)置的重啟 命令執(zhí)行網(wǎng)關(guān)節(jié)點(diǎn)的重啟操作。優(yōu)選地,上述的銀行數(shù)據(jù)收發(fā)單元還用于將所述下行數(shù)據(jù)存儲單元存儲的結(jié)果 數(shù)據(jù)發(fā)送給前置服務(wù)器。上述網(wǎng)關(guān)節(jié)點(diǎn)還包括超時處理單元,用于判斷所述主機(jī)數(shù)據(jù)收發(fā)單元發(fā)送給主 機(jī)的銀行數(shù)據(jù)是否在預(yù)定時間內(nèi)接收到所述結(jié)果數(shù)據(jù),如果未在預(yù)定時間接收到所述結(jié)果 數(shù)據(jù),則將超時提示發(fā)送給所述銀行數(shù)據(jù)收發(fā)單元。具體地,狀態(tài)標(biāo)記單元包括狀態(tài)檢查模塊,用于檢查網(wǎng)關(guān)節(jié)點(diǎn)的當(dāng)前狀態(tài);狀態(tài) 標(biāo)記模塊,用于根據(jù)所述重啟單元的重啟操作、以及所述當(dāng)前網(wǎng)關(guān)節(jié)點(diǎn)的狀態(tài)標(biāo)記所述網(wǎng) 關(guān)節(jié)點(diǎn)的狀態(tài)。本發(fā)明實(shí)施例還提供一種銀行數(shù)據(jù)處理系統(tǒng),該系統(tǒng)包括上述的網(wǎng)關(guān)服務(wù)器、用 于處理銀行數(shù)據(jù)的主機(jī)、以及前置服務(wù)器,所述的前置服務(wù)器通過所述的網(wǎng)關(guān)服務(wù)器將銀 行數(shù)據(jù)發(fā)送給所述的主機(jī),其中,所述的前置服務(wù)器包括網(wǎng)關(guān)節(jié)點(diǎn)信息獲取單元,用于獲知所述網(wǎng)關(guān)服務(wù)器中各網(wǎng)關(guān)節(jié)點(diǎn)的IP地址和端口信息;連接建立單元,用于至少與所述網(wǎng) 關(guān)服務(wù)器中的兩個網(wǎng)關(guān)節(jié)點(diǎn)建立通信連接;數(shù)據(jù)發(fā)送單元,用于將所述銀行數(shù)據(jù)發(fā)送給所 述連接建立單元建立的一個網(wǎng)關(guān)節(jié)點(diǎn);反饋信息接收單元,用于接收來自所述網(wǎng)關(guān)服務(wù)器 返回的結(jié)果數(shù)據(jù)、以及所述的結(jié)果數(shù)據(jù)為上送失敗時的失敗原因。借助于上述技術(shù)方案至少之一,通過根據(jù)每個網(wǎng)關(guān)節(jié)點(diǎn)的當(dāng)前狀態(tài)來確定是否該 網(wǎng)關(guān)節(jié)點(diǎn)來上送銀行數(shù)據(jù),對于處于重啟狀態(tài)的網(wǎng)關(guān)節(jié)點(diǎn),就可以不再通過該網(wǎng)關(guān)節(jié)點(diǎn)上 傳銀行數(shù)據(jù),可以克服現(xiàn)有技術(shù)中的由于銀行網(wǎng)關(guān)在重啟時導(dǎo)致的數(shù)據(jù)不一致而導(dǎo)致的生 產(chǎn)事故的問題,從而有效避免數(shù)據(jù)的不一致的問題,降低了生產(chǎn)事故的發(fā)生率。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例描述 中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些 實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些 附圖獲得其他的附圖。圖1是根據(jù)本發(fā)明實(shí)施例的網(wǎng)關(guān)服務(wù)器的結(jié)構(gòu)框圖;圖2是根據(jù)本發(fā)明實(shí)施例的狀態(tài)標(biāo)記單元111的結(jié)構(gòu)框圖;圖3是根據(jù)本發(fā)明實(shí)施例的網(wǎng)關(guān)節(jié)點(diǎn)的結(jié)構(gòu)框圖;圖4是根據(jù)本發(fā)明實(shí)施例的主處理單元118、超時處理單元117、重啟單元116以 及狀態(tài)標(biāo)記單元111的邏輯結(jié)構(gòu)框圖;圖5是根據(jù)本發(fā)明實(shí)施例的網(wǎng)關(guān)服務(wù)器不間斷服務(wù)的實(shí)現(xiàn)流程圖;圖6是根據(jù)本發(fā)明實(shí)施例的網(wǎng)關(guān)服務(wù)器的工作流程圖;圖7是根據(jù)本發(fā)明實(shí)施例的銀行數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)框圖;圖8是根據(jù)本發(fā)明實(shí)施例的前置服務(wù)器3的結(jié)構(gòu)框圖;圖9是根據(jù)本發(fā)明實(shí)施例的前置服務(wù)器3與網(wǎng)關(guān)服務(wù)器1的工作流程圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;?本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。由于現(xiàn)有技術(shù)中的銀行網(wǎng)關(guān)在重啟或者更新升級時,無法提供正常的服務(wù),從而 導(dǎo)致了交易數(shù)據(jù)的不一致,進(jìn)而將導(dǎo)致生產(chǎn)事故?;诖?,本發(fā)明實(shí)施例提供一種網(wǎng)關(guān)服務(wù) 器以及銀行數(shù)據(jù)處理系統(tǒng),以解決上述問題。以下結(jié)合附圖對本發(fā)明實(shí)施例進(jìn)行詳細(xì)說明。實(shí)施例一本發(fā)明實(shí)施例提供一種網(wǎng)關(guān)服務(wù)器,該網(wǎng)關(guān)服務(wù)器包括多個具有平行部署結(jié)構(gòu)的 網(wǎng)關(guān)節(jié)點(diǎn),如圖1所示,該網(wǎng)關(guān)節(jié)點(diǎn)11包括狀態(tài)標(biāo)記單元111,用于標(biāo)記當(dāng)前網(wǎng)關(guān)節(jié)點(diǎn)的狀態(tài),其中,狀態(tài)包括重啟、或者正 常;銀行數(shù)據(jù)收發(fā)單元112,用于在狀態(tài)標(biāo)記單元標(biāo)記的網(wǎng)關(guān)節(jié)點(diǎn)狀態(tài)為正常時,接收
5需要上送主機(jī)的銀行數(shù)據(jù);上行數(shù)據(jù)存儲單元113,用于存儲銀行數(shù)據(jù)接收單元接收的銀行數(shù)據(jù);主機(jī)數(shù)據(jù)收發(fā)單元114,用于將上行數(shù)據(jù)存儲單元存儲的銀行數(shù)據(jù)發(fā)送給主機(jī)進(jìn) 行處理、以及接收主機(jī)處理后的結(jié)果數(shù)據(jù);下行數(shù)據(jù)存儲單元115,用于存儲主機(jī)數(shù)據(jù)收發(fā)單元接收的結(jié)果數(shù)據(jù);重啟單元116,用于根據(jù)預(yù)設(shè)置的重啟命令執(zhí)行網(wǎng)關(guān)節(jié)點(diǎn)的重啟操作。由以上描述可以看出,通過銀行數(shù)據(jù)收發(fā)單元根據(jù)狀態(tài)標(biāo)記單元標(biāo)記的每個網(wǎng)關(guān) 節(jié)點(diǎn)的當(dāng)前狀態(tài),確定可以用于上送數(shù)據(jù)的網(wǎng)關(guān)節(jié)點(diǎn),并通過下行數(shù)據(jù)存儲單元存儲主機(jī) 反饋的結(jié)果數(shù)據(jù),可以獲知銀行數(shù)據(jù)是否上送成功,這樣,對于處于重啟狀態(tài)的網(wǎng)關(guān)節(jié)點(diǎn), 就可以不再通過該網(wǎng)關(guān)節(jié)點(diǎn)上傳銀行數(shù)據(jù),并且通過下行數(shù)據(jù)存儲單元可以獲知數(shù)據(jù)是否 上送成功,從而有效避免了數(shù)據(jù)不一致的問題,通過本發(fā)明實(shí)施例可以克服現(xiàn)有技術(shù)中的 由于交易數(shù)據(jù)不一致而導(dǎo)致的生產(chǎn)事故問題。具體地,上述的銀行數(shù)據(jù)收發(fā)單元112還可以將下行數(shù)據(jù)存儲單元存儲的結(jié)果數(shù) 據(jù)發(fā)送給前置服務(wù)器,該前置服務(wù)器用于發(fā)送需要上送給主機(jī)處理的銀行數(shù)據(jù),一般為需 要連接主機(jī)的眾多平臺應(yīng)用服務(wù)器,例如前置系統(tǒng)、新終端系統(tǒng)、其他交易服務(wù)器等。如圖2所示,狀態(tài)標(biāo)記單元111包括狀態(tài)檢查模塊1111,用于檢查網(wǎng)關(guān)節(jié)點(diǎn)的當(dāng)前狀態(tài);狀態(tài)標(biāo)記模塊1112,用于根據(jù)重啟單元的重啟操作、以及當(dāng)前網(wǎng)關(guān)節(jié)點(diǎn)的狀態(tài)標(biāo) 記網(wǎng)關(guān)節(jié)點(diǎn)的狀態(tài)。通過狀態(tài)標(biāo)記單元實(shí)時的標(biāo)記網(wǎng)關(guān)節(jié)點(diǎn)的當(dāng)前狀態(tài),在該網(wǎng)關(guān)節(jié)點(diǎn)需要重啟時, 則狀態(tài)標(biāo)記模塊1112就可以將該網(wǎng)關(guān)節(jié)點(diǎn)的狀態(tài)標(biāo)記為“重啟”,前置服務(wù)器就不會選擇 該網(wǎng)關(guān)節(jié)點(diǎn)進(jìn)行傳輸銀行數(shù)據(jù),從而避免了數(shù)據(jù)的不一致問題。圖3是根據(jù)本發(fā)明實(shí)施例的網(wǎng)關(guān)節(jié)點(diǎn)的結(jié)構(gòu)框圖,以下結(jié)合圖3所示的框圖,對上 述各單元進(jìn)行詳細(xì)的描述。銀行數(shù)據(jù)收發(fā)單元112接收下端前置服務(wù)器發(fā)起的連接請求,有新建連接請求時 建立socket連接,創(chuàng)建子進(jìn)程讀取應(yīng)用發(fā)起的合法交易數(shù)據(jù),將交易數(shù)據(jù)發(fā)送至上行數(shù)據(jù) 存儲單元113。這里的上行數(shù)據(jù)存儲單元113是系統(tǒng)消息隊(duì)列,網(wǎng)關(guān)節(jié)點(diǎn)中包括至少一個上 行數(shù)據(jù)存儲單元113,用于存放各需要上送的交易數(shù)據(jù)。下行數(shù)據(jù)存儲單元115也是系統(tǒng)消 息隊(duì)列,網(wǎng)關(guān)節(jié)點(diǎn)中也包括至少一個下行數(shù)據(jù)存儲單元115,用于存放主機(jī)處理后返回的交 易數(shù)據(jù)或者結(jié)果數(shù)據(jù),然后將返回的交易數(shù)據(jù)或者結(jié)果數(shù)據(jù)通過銀行數(shù)據(jù)收發(fā)單元112發(fā) 送給前置服務(wù)器。主機(jī)數(shù)據(jù)收發(fā)單元114實(shí)時讀取上行數(shù)據(jù)存儲單元113存儲的數(shù)據(jù)并將數(shù)據(jù)發(fā)送 給主機(jī),并等待主機(jī)處理后返回的交易數(shù)據(jù)或結(jié)果數(shù)據(jù),然后將返回的交易數(shù)據(jù)或結(jié)果數(shù) 據(jù)發(fā)送到下行數(shù)據(jù)存儲單元115。狀態(tài)標(biāo)記單元111用于標(biāo)記當(dāng)前網(wǎng)關(guān)節(jié)點(diǎn)的狀態(tài),該狀態(tài)包含“正?!?、“重啟”兩 種。重啟單元116提供網(wǎng)關(guān)節(jié)點(diǎn)的自動重啟服務(wù)功能。狀態(tài)標(biāo)記單元111根據(jù)重啟單元 116執(zhí)行的重啟服務(wù),檢查網(wǎng)關(guān)節(jié)點(diǎn)的工作狀態(tài),當(dāng)網(wǎng)關(guān)節(jié)點(diǎn)為工作正常時,狀態(tài)標(biāo)記單元 111修改網(wǎng)關(guān)節(jié)點(diǎn)狀態(tài)為“重啟”,當(dāng)完成網(wǎng)關(guān)節(jié)點(diǎn)重啟操作后,狀態(tài)標(biāo)記單元111修改網(wǎng)關(guān) 節(jié)點(diǎn)狀態(tài)為“正?!薄V貑卧?16可以是一項(xiàng)實(shí)時服務(wù)程序,提供實(shí)時重啟服務(wù)。該預(yù)設(shè)置的重啟命令可以是一個按月或按天的定時服務(wù),實(shí)現(xiàn)網(wǎng)關(guān)節(jié)點(diǎn)的定期重啟。狀態(tài)標(biāo)記單元111根據(jù)重啟單元116的重啟操作進(jìn)行標(biāo)記,以供銀行數(shù)據(jù)收發(fā)單 元112、主機(jī)數(shù)據(jù)收發(fā)單元114實(shí)時讀取,進(jìn)而確定是否選擇該網(wǎng)關(guān)節(jié)點(diǎn)進(jìn)行傳輸數(shù)據(jù)。該 狀態(tài)標(biāo)記單元111可以是一塊系統(tǒng)共享內(nèi)存,也可以是一個公共區(qū)域的文件標(biāo)識符。優(yōu)選地,網(wǎng)關(guān)節(jié)點(diǎn)11還包括超時處理單元,用于判斷主機(jī)數(shù)據(jù)收發(fā)單元發(fā)送給 主機(jī)的銀行數(shù)據(jù)是否在預(yù)定時間內(nèi)接收到結(jié)果數(shù)據(jù),如果未在預(yù)定時間接收到結(jié)果數(shù)據(jù), 則將超時提示發(fā)送給銀行數(shù)據(jù)收發(fā)單元,進(jìn)而將結(jié)果數(shù)據(jù)發(fā)送給前置服務(wù)器,這樣,前置服 務(wù)器就會重新發(fā)送銀行數(shù)據(jù),以保證數(shù)據(jù)的上下一致性。在具體實(shí)施過程中,網(wǎng)關(guān)節(jié)點(diǎn)可以包含一主處理單元,用于控制超時處理單元、重 啟單元以及狀態(tài)標(biāo)記單元,以實(shí)現(xiàn)網(wǎng)關(guān)無縫重啟等功能。圖4為主處理單元118、超時處理 單元117、重啟單元116以及狀態(tài)標(biāo)記單元111的邏輯結(jié)構(gòu)框圖,以下結(jié)合圖4所示的邏輯 結(jié)構(gòu),詳細(xì)描述這幾個單元的工作原理。狀態(tài)標(biāo)記單元111標(biāo)記網(wǎng)關(guān)節(jié)點(diǎn)的當(dāng)前狀態(tài)。網(wǎng)關(guān)進(jìn)程在處理每筆交易(該交 易,即指銀行數(shù)據(jù))上送主機(jī)前都必須檢查該狀態(tài)標(biāo)記單元111 當(dāng)狀態(tài)標(biāo)記單元111標(biāo)記 “正?!睍r,交易正常上送;當(dāng)狀態(tài)標(biāo)記單元111標(biāo)記“重啟”時,交易不再上送,并返回錯誤 提示,以提示選擇其他網(wǎng)關(guān)節(jié)點(diǎn)進(jìn)行上送。狀態(tài)標(biāo)記單元111可以是一塊共享內(nèi)存,或是一 個公共的文件標(biāo)示符。銀行數(shù)據(jù)收發(fā)單元、主機(jī)數(shù)據(jù)收發(fā)單元可以實(shí)時讀取狀態(tài)標(biāo)記單元 111標(biāo)記的狀態(tài),以確定是否選擇該網(wǎng)關(guān)節(jié)點(diǎn)進(jìn)行上送數(shù)據(jù)。具體地,狀態(tài)標(biāo)記單元111包括狀態(tài)檢查模塊1111和狀態(tài)標(biāo)記模塊1112,其中 狀態(tài)檢查模塊1111用于檢查當(dāng)前網(wǎng)關(guān)進(jìn)程的工作狀態(tài),并將檢查結(jié)果反饋給主處理單元 118。主處理單元118接收到外部的重啟命令,讀取相應(yīng)配置文件,獲得網(wǎng)關(guān)工作進(jìn)程的名 字,查找當(dāng)前系統(tǒng)中,是否存在正常工作的網(wǎng)關(guān)進(jìn)程如存在,說明網(wǎng)關(guān)正常工作;如進(jìn)程 不存在,說明網(wǎng)關(guān)異常或未啟動,最后將網(wǎng)關(guān)工作狀態(tài)反饋給主處理單元118。狀態(tài)標(biāo)記模塊1112用于標(biāo)記當(dāng)前網(wǎng)關(guān)節(jié)點(diǎn)的狀態(tài),當(dāng)主處理單元118接收到重啟 命令,調(diào)用狀態(tài)檢查模塊1111檢查網(wǎng)關(guān)節(jié)點(diǎn)的狀態(tài),然后根據(jù)狀態(tài)檢查模塊1111反饋的結(jié) 果調(diào)用狀態(tài)標(biāo)記模塊1112將狀態(tài)標(biāo)記為“重啟”,進(jìn)入等待交易返回階段。當(dāng)所有的正常交 易都返回后,主處理單元118調(diào)用狀態(tài)標(biāo)記模塊1112將狀態(tài)標(biāo)記為“正?!薄3瑫r處理單元117用于處理等待交易返回的過程。當(dāng)主處理單元118通過調(diào)用狀 態(tài)標(biāo)記模塊1112標(biāo)記網(wǎng)關(guān)節(jié)點(diǎn)狀態(tài)為“重啟”時,網(wǎng)關(guān)節(jié)點(diǎn)處于重啟狀態(tài),此時不再接收新 數(shù)據(jù),但也并不立刻退出,而是等待由該網(wǎng)關(guān)節(jié)點(diǎn)已上送主機(jī)的數(shù)據(jù)返回。等待時間由超時 機(jī)制控制,在此時間內(nèi),按正常流程,所有正常交易已返回。超過該時間時,該網(wǎng)關(guān)節(jié)點(diǎn)不在 等待,發(fā)送給前置服務(wù)器交易超時提示。當(dāng)主處理單元118等待超時處理單元117工作結(jié)束后,調(diào)用重啟單元116結(jié)束網(wǎng) 關(guān)節(jié)點(diǎn)的工作。該重啟單元可以調(diào)用原有網(wǎng)關(guān)的退出命令,或者采用直接關(guān)閉網(wǎng)關(guān)進(jìn)程的 系統(tǒng)命令,然后判斷是繼續(xù)重啟操作或者是正常停機(jī)。如果是正常停機(jī),則主處理單元118 調(diào)用狀態(tài)標(biāo)記模塊1112將狀態(tài)標(biāo)記單元111修改至“正?!?,以防止下次網(wǎng)關(guān)正常啟動后, 檢查到“重啟”狀態(tài)而不能正常工作,然后主處理單元118自動退出即可。如果需要重啟, 則主處理單元118調(diào)用狀態(tài)標(biāo)記模塊1112將狀態(tài)標(biāo)記單元111修改至“正?!保缓髮⒕W(wǎng)關(guān) 節(jié)點(diǎn)啟動,完成重啟操作。
需要說明的是,網(wǎng)關(guān)重啟分兩種一種是日常定時重啟服務(wù)器(如上述的重啟程 序);另一種是需要停掉服務(wù)以便更新網(wǎng)關(guān)程序(類似重裝程序),這種情況下就相當(dāng)于正 常退出,完全停機(jī)后可進(jìn)行程序安裝等操作。圖5是網(wǎng)關(guān)服務(wù)器不間斷服務(wù)的實(shí)現(xiàn)流程圖,該流程包括如下步驟步驟501,重啟單元116啟動,該啟動可以是手工操作,進(jìn)行網(wǎng)關(guān)服務(wù)器的實(shí)時重 啟功能,該啟動也可以添加到定時作業(yè)里面,實(shí)現(xiàn)按月或按日的規(guī)定時間重啟。服務(wù)進(jìn)程 啟動后,讀取配置文件,獲得網(wǎng)關(guān)進(jìn)程名以及超時等待時間等參數(shù),以完成進(jìn)程的初始化操 作;步驟502,狀態(tài)檢查模塊1111檢查網(wǎng)關(guān)節(jié)點(diǎn)的當(dāng)前狀態(tài),如果正在工作,則進(jìn)入步 驟503,如果網(wǎng)關(guān)節(jié)點(diǎn)未啟動,則說明無需重啟服務(wù),進(jìn)入步驟509,并返回錯誤提示;步驟503,如果存在正常服務(wù)的網(wǎng)關(guān)進(jìn)程,則主處理單元118調(diào)用狀態(tài)標(biāo)記模塊 1112標(biāo)記當(dāng)前狀態(tài)為“重啟”,表示網(wǎng)關(guān)服務(wù)器處于重啟狀態(tài);步驟504,在狀態(tài)標(biāo)記模塊1112標(biāo)記當(dāng)前狀態(tài)為“重啟”之后,按照預(yù)定的等待時 間,等待交易正常返回。該等待時間大于預(yù)先設(shè)置的交易等待時間,一直未返回或在終端等 待時間之后返回的交易,認(rèn)為是異常超時交易;步驟505,在等待時間之后,所有正常交易已返回,主處理單元118調(diào)用重啟單元 116,結(jié)束所有網(wǎng)關(guān)進(jìn)程;步驟506,所有網(wǎng)關(guān)進(jìn)程關(guān)閉后,主處理單元118調(diào)用狀態(tài)標(biāo)記模塊1112標(biāo)記當(dāng)前 狀態(tài)為“正?!?,等待網(wǎng)關(guān)啟動或升級操作;步驟507,判斷網(wǎng)關(guān)是升級還是啟動,如果網(wǎng)關(guān)需要升級,重啟單元退出后,可進(jìn)行 更換網(wǎng)關(guān)程序、重啟系統(tǒng)等操作;如果是重啟網(wǎng)關(guān)操作,則調(diào)用狀態(tài)標(biāo)記模塊1112標(biāo)記當(dāng) 前狀態(tài)為“正?!焙筮M(jìn)入步驟508 ;步驟508,啟動網(wǎng)關(guān)進(jìn)程,完成網(wǎng)關(guān)無縫重啟流程;步驟509,如果狀態(tài)檢查模塊1111檢查到網(wǎng)關(guān)節(jié)點(diǎn)未啟動,則說明重啟操作不需 要,將網(wǎng)關(guān)未啟動狀態(tài)反饋給管理員,以進(jìn)行異常處理;步驟510,如果不需要重新啟動網(wǎng)關(guān),則狀態(tài)標(biāo)記模塊1112標(biāo)記當(dāng)前狀態(tài)為“正
常”,結(jié)束重啟流程。圖6是網(wǎng)關(guān)服務(wù)器的工作流程圖,如圖6所示,該流程包括步驟600,網(wǎng)關(guān)服務(wù)器單元20啟動,可以是手工啟動,這一般是網(wǎng)關(guān)節(jié)點(diǎn)開始正常 工作,用于完成網(wǎng)關(guān)正常工作的配置文件讀取、正常初始化等工作;步驟601,監(jiān)聽服務(wù)端口,網(wǎng)關(guān)服務(wù)器1與前置服務(wù)器3是服務(wù)器與客戶端的關(guān)系, 網(wǎng)關(guān)服務(wù)器作為服務(wù)端,開放一個監(jiān)聽端口,該端口可以從配置文件中讀取,網(wǎng)關(guān)服務(wù)器啟 動時,該端口不能被占用。銀行數(shù)據(jù)收發(fā)單元在該端口,按指定的協(xié)議簇和套接字類型上建 立幀聽套接字,并將指定的端口綁定到該套接字,創(chuàng)建監(jiān)聽套接口,讀取前置服務(wù)器3上送 的數(shù)據(jù),并進(jìn)行數(shù)據(jù)校驗(yàn),轉(zhuǎn)碼等處理;步驟602,接收到合法數(shù)據(jù)后,檢查狀態(tài)標(biāo)記單元,判斷網(wǎng)關(guān)節(jié)點(diǎn)是否處于重啟狀 態(tài)當(dāng)處于“重啟”時,則進(jìn)入步驟607,并將該狀態(tài)返回給前置服務(wù)器;當(dāng)處于“正?!睍r, 則該交易可正常進(jìn)行,進(jìn)入步驟603 ;步驟603,網(wǎng)關(guān)節(jié)點(diǎn)工作正常,新交易按應(yīng)用號被放入上行數(shù)據(jù)存儲單元,等待主機(jī)數(shù)據(jù)收發(fā)單元的讀取,主機(jī)數(shù)據(jù)收發(fā)裝置根據(jù)不同的應(yīng)用號將交易上送至相應(yīng)主機(jī);步驟604,交易數(shù)據(jù)放入上行數(shù)據(jù)存儲單元后,子進(jìn)程采取堵塞式方式在下行數(shù)據(jù) 存儲單元等待交易返回,并設(shè)置超時等待時間,如果在等待時間內(nèi)交易未返回,則將超時結(jié) 果返回給終端;步驟605 如果在規(guī)定時間內(nèi)等待到交易返回,則將主機(jī)處理后的交易數(shù)據(jù)或者 處理結(jié)果打包發(fā)送給前置服務(wù)器,至此完成一筆交易;或?qū)⒊瑫r結(jié)果發(fā)送到前置服務(wù)器,并 返回步驟601繼續(xù)等待該連接的新交易數(shù)據(jù)的到來;步驟606 將處理后的交易數(shù)據(jù)返回前置服務(wù)器后,并檢查狀態(tài)標(biāo)記單元,判斷網(wǎng) 關(guān)節(jié)點(diǎn)是否處于重啟狀態(tài)當(dāng)處于“重啟”狀態(tài)時,進(jìn)入步驟607,關(guān)閉該連接;當(dāng)處于“正 ?!睜顟B(tài)時,則返回步驟601,繼續(xù)等待交易數(shù)據(jù);步驟607 當(dāng)網(wǎng)關(guān)處于“重啟中”狀態(tài),返回網(wǎng)關(guān)處于重啟狀態(tài)的信息到前置服務(wù) 器,關(guān)閉該連接,網(wǎng)關(guān)子進(jìn)程退出。實(shí)施例二本發(fā)明實(shí)施例還提供一種包含上述網(wǎng)關(guān)服務(wù)器的銀行數(shù)據(jù)處理系統(tǒng),如圖7所 示,該系統(tǒng)還包括用于處理銀行數(shù)據(jù)的主機(jī)2、以及前置服務(wù)器3,前置服務(wù)器3通過網(wǎng)關(guān) 服務(wù)器1將銀行數(shù)據(jù)發(fā)送給主機(jī)2進(jìn)行處理,主機(jī)將處理后的數(shù)據(jù)通過網(wǎng)關(guān)服務(wù)器1返回 給前置服務(wù)器3。網(wǎng)關(guān)服務(wù)器1主要用于銀行數(shù)據(jù)的交換,為開放平臺和主機(jī)系統(tǒng)之間的透明交互 提供了平臺。具體地,網(wǎng)關(guān)服務(wù)器1由多個具有平行部署結(jié)構(gòu)的網(wǎng)關(guān)節(jié)點(diǎn)組成,交易的流 向是單向過程,數(shù)據(jù)的流向是雙向過程,交易由前置服務(wù)器3發(fā)起,主機(jī)作為處理數(shù)據(jù)的核 心,處理后的數(shù)據(jù)依原路通過網(wǎng)關(guān)返回給前置服務(wù)器3。主機(jī)2可以是大型計(jì)算機(jī),也可以是中、小型計(jì)算機(jī),主要功能是運(yùn)行處理銀行各 種業(yè)務(wù)交易數(shù)據(jù)。主機(jī)2可以包括一主機(jī)外聯(lián)裝置,用于實(shí)現(xiàn)主機(jī)的對外通信,負(fù)責(zé)與網(wǎng)關(guān) 服務(wù)器進(jìn)行數(shù)據(jù)的交換。前置服務(wù)器3 —般為需要連接核心主機(jī)的眾多平臺應(yīng)用服務(wù)器。例如前置系統(tǒng)、 新終端系統(tǒng)、其他交易服務(wù)器等。前置服務(wù)器需具備負(fù)載均衡機(jī)制,能同時連接多臺網(wǎng)關(guān)節(jié) 點(diǎn),以保證連接的可靠性。同時具有重連機(jī)制,當(dāng)檢查到需要連接的多臺網(wǎng)關(guān)節(jié)點(diǎn)中有不能 連接的情況時,定時嘗試發(fā)起到該網(wǎng)關(guān)節(jié)點(diǎn)的長連接,直到連接建立,以保證當(dāng)網(wǎng)關(guān)節(jié)點(diǎn)工 作恢復(fù)正常時,能夠及時連接進(jìn)行通信。在具體實(shí)施過程中,前置服務(wù)器3至少需要連接兩 個網(wǎng)關(guān)節(jié)點(diǎn),以防止在一臺網(wǎng)關(guān)節(jié)點(diǎn)宕機(jī)或不能正常工作時無法進(jìn)行通信的情況,這樣可 以保證與主機(jī)2的正常通信。具體地,圖8是前置服務(wù)器3的結(jié)構(gòu)框圖,如圖8所示,該前置服務(wù)器3包括網(wǎng)關(guān)節(jié)點(diǎn)信息獲取單元31,用于獲知網(wǎng)關(guān)服務(wù)器中各網(wǎng)關(guān)節(jié)點(diǎn)的IP地址和端口 fn息;連接建立單元32,用于至少與網(wǎng)關(guān)服務(wù)器中的兩個網(wǎng)關(guān)節(jié)點(diǎn)建立通信連接;數(shù)據(jù)發(fā)送單元33,用于將銀行數(shù)據(jù)發(fā)送給連接建立單元建立的一個網(wǎng)關(guān)節(jié)點(diǎn);反饋信息接收單元34,用于接收來自網(wǎng)關(guān)服務(wù)器返回的結(jié)果數(shù)據(jù)、以及結(jié)果數(shù)據(jù) 為上送失敗時的失敗原因。通過連接建立單元32至少與網(wǎng)關(guān)服務(wù)器中的兩個網(wǎng)關(guān)節(jié)點(diǎn)建立通信連接,可以
9保證上送銀行數(shù)據(jù)到主機(jī)的成功率,通過反饋信息接收單元34獲知上送失敗原因,可以及 時調(diào)整上送方式,進(jìn)一步保證了數(shù)據(jù)的上送成功率。圖9是前置服務(wù)器3與網(wǎng)關(guān)服務(wù)器1的工作流程圖,該流程包括步驟900,前置服務(wù)器3啟動服務(wù),讀取配置,獲知需連接的網(wǎng)關(guān)服務(wù)器1中各個網(wǎng) 關(guān)節(jié)點(diǎn)的IP地址以及端口,開始與登記的各個網(wǎng)關(guān)節(jié)點(diǎn)建立連接,每個前置服務(wù)器3可配 置多個網(wǎng)關(guān)節(jié)點(diǎn)的連接信息,至少需要與兩臺網(wǎng)關(guān)節(jié)點(diǎn)連接成功;步驟901,如果登記在配置文件中的網(wǎng)關(guān)節(jié)點(diǎn)連接成功,則更新連接池狀態(tài),將該 連接記錄下來,該連接池用于記錄前置服務(wù)器3與各個網(wǎng)關(guān)節(jié)點(diǎn)的連接狀態(tài);如果連接失 敗,則定時嘗試恢復(fù)該連接,以保證當(dāng)該網(wǎng)關(guān)節(jié)點(diǎn)工作正常時,能及時建立通信;步驟902,實(shí)時更新連接池的狀態(tài),當(dāng)連接建立時,添加連接,當(dāng)連接關(guān)閉時,刪除 該連接;步驟903,前置服務(wù)器3發(fā)起交易時,隨機(jī)選擇連接池中的一條成功連接上送數(shù) 據(jù),因?yàn)榫W(wǎng)關(guān)節(jié)點(diǎn)采用平行部署的方式,交易數(shù)據(jù)從任意一臺網(wǎng)關(guān)節(jié)點(diǎn)都能正常上送到主 機(jī)3 ;步驟904,前置服務(wù)器3上送數(shù)據(jù)并等待網(wǎng)關(guān)服務(wù)器1的返回,判斷交易是否上送 成功,如果連接被關(guān)閉,則獲知失敗原因;步驟905,上送交易失敗,接收網(wǎng)關(guān)服務(wù)器1返回的原因,做相應(yīng)錯誤提示處理,如 果該連接的網(wǎng)關(guān)處于重啟狀態(tài),則跳轉(zhuǎn)到步驟902,更新連接池的狀態(tài),將該連接從連接池 中刪除,同時重新選擇連接發(fā)送該交易;步驟906,如果交易上送成功,等待交易數(shù)據(jù)返回,至此完成一筆成功交易;關(guān)閉 該連接,或者重新開始一筆新的交易。通過上述的前置服務(wù)器3與網(wǎng)關(guān)服務(wù)器1的工作流程,可以實(shí)現(xiàn)不間斷服務(wù),克服 了現(xiàn)有技術(shù)中的網(wǎng)關(guān)在重啟時導(dǎo)致的數(shù)據(jù)不一致、從而發(fā)生生產(chǎn)事故的問題。綜上所述,本發(fā)明實(shí)施例提供了一種能夠?qū)崿F(xiàn)不間斷服務(wù)的網(wǎng)關(guān)服務(wù)器及其系 統(tǒng),網(wǎng)關(guān)服務(wù)器在重啟的整個過程都是系統(tǒng)自動完成,可以減少人工干預(yù),同時設(shè)計(jì)了重啟 狀態(tài),可以避免交易上下不一致的情況發(fā)生。采用多個網(wǎng)關(guān)節(jié)點(diǎn),多套網(wǎng)關(guān)節(jié)點(diǎn)輪流重啟, 實(shí)現(xiàn)了網(wǎng)關(guān)服務(wù)器的無縫重啟,解決了網(wǎng)關(guān)重啟或更新時暫停服務(wù)對銀行業(yè)務(wù)的影響,保 證了網(wǎng)關(guān)系統(tǒng)能夠7X24小時內(nèi)100%的可用性,提高了銀行的客戶服務(wù)水平。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟可以通 過程序來指令相關(guān)的硬件來完成,該程序可以存儲于一計(jì)算機(jī)可讀取存儲介質(zhì)中,比如 ROM/RAM、磁碟、光盤等。以上所述的具體實(shí)施例,對本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳 細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施例而已,并不用于限定本發(fā)明的保 護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本 發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
一種網(wǎng)關(guān)服務(wù)器,包括多個具有平行部署結(jié)構(gòu)的網(wǎng)關(guān)節(jié)點(diǎn),其特征在于,所述的網(wǎng)關(guān)節(jié)點(diǎn)包括狀態(tài)標(biāo)記單元,用于標(biāo)記網(wǎng)關(guān)節(jié)點(diǎn)的當(dāng)前狀態(tài),其中,所述的狀態(tài)包括重啟、或者正常;銀行數(shù)據(jù)收發(fā)單元,用于在所述狀態(tài)標(biāo)記單元標(biāo)記的網(wǎng)關(guān)節(jié)點(diǎn)狀態(tài)為正常時,接收需要上送主機(jī)的銀行數(shù)據(jù);上行數(shù)據(jù)存儲單元,用于存儲所述銀行數(shù)據(jù)接收單元接收的銀行數(shù)據(jù);主機(jī)數(shù)據(jù)收發(fā)單元,用于將所述上行數(shù)據(jù)存儲單元存儲的銀行數(shù)據(jù)發(fā)送給所述主機(jī)進(jìn)行處理、以及接收所述主機(jī)處理后的結(jié)果數(shù)據(jù);下行數(shù)據(jù)存儲單元,用于存儲所述主機(jī)數(shù)據(jù)收發(fā)單元接收的結(jié)果數(shù)據(jù);重啟單元,用于根據(jù)預(yù)設(shè)置的重啟命令執(zhí)行網(wǎng)關(guān)節(jié)點(diǎn)的重啟操作。
2.根據(jù)權(quán)利要求1所述的網(wǎng)關(guān)服務(wù)器,其特征在于,所述的銀行數(shù)據(jù)收發(fā)單元還用于 將所述下行數(shù)據(jù)存儲單元存儲的結(jié)果數(shù)據(jù)發(fā)送給前置服務(wù)器。
3.根據(jù)權(quán)利要求2所述的網(wǎng)關(guān)服務(wù)器,其特征在于,所述的網(wǎng)關(guān)節(jié)點(diǎn)還包括超時處理單元,用于判斷所述主機(jī)數(shù)據(jù)收發(fā)單元發(fā)送給主機(jī)的銀行數(shù)據(jù)是否在預(yù)定時 間內(nèi)接收到所述結(jié)果數(shù)據(jù),如果未在預(yù)定時間接收到所述結(jié)果數(shù)據(jù),則將超時提示發(fā)送給 所述銀行數(shù)據(jù)收發(fā)單元。
4.根據(jù)權(quán)利要求1所述的網(wǎng)關(guān)服務(wù)器,其特征在于,所述的狀態(tài)標(biāo)記單元包括 狀態(tài)檢查模塊,用于檢查網(wǎng)關(guān)節(jié)點(diǎn)的當(dāng)前狀態(tài);狀態(tài)標(biāo)記模塊,用于根據(jù)所述重啟單元的重啟操作、以及所述當(dāng)前網(wǎng)關(guān)節(jié)點(diǎn)的狀態(tài)標(biāo) 記所述網(wǎng)關(guān)節(jié)點(diǎn)的狀態(tài)。
5.一種銀行數(shù)據(jù)處理系統(tǒng),所述的系統(tǒng)包括如權(quán)利要求1所述的網(wǎng)關(guān)服務(wù)器、用于處 理銀行數(shù)據(jù)的主機(jī)、以及前置服務(wù)器,其特征在于,所述的前置服務(wù)器通過所述的網(wǎng)關(guān)服務(wù) 器將銀行數(shù)據(jù)發(fā)送給所述的主機(jī),其中,所述的前置服務(wù)器包括網(wǎng)關(guān)節(jié)點(diǎn)信息獲取單元,用于獲知所述網(wǎng)關(guān)服務(wù)器中各網(wǎng)關(guān)節(jié)點(diǎn)的IP地址和端口信息;連接建立單元,用于至少與所述網(wǎng)關(guān)服務(wù)器中的兩個網(wǎng)關(guān)節(jié)點(diǎn)建立通信連接; 數(shù)據(jù)發(fā)送單元,用于將所述銀行數(shù)據(jù)發(fā)送給所述連接建立單元建立的一個網(wǎng)關(guān)節(jié)點(diǎn); 反饋信息接收單元,用于接收來自所述網(wǎng)關(guān)服務(wù)器返回的結(jié)果數(shù)據(jù)、以及所述的結(jié)果 數(shù)據(jù)為上送失敗時的失敗原因。
6.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于,所述的銀行數(shù)據(jù)收發(fā)單元還用于將所述 下行數(shù)據(jù)存儲單元存儲的結(jié)果數(shù)據(jù)發(fā)送給前置服務(wù)器。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述的網(wǎng)關(guān)節(jié)點(diǎn)還包括超時處理單元,用于判斷所述主機(jī)數(shù)據(jù)收發(fā)單元發(fā)送給主機(jī)的銀行數(shù)據(jù)是否在預(yù)定時 間內(nèi)接收到所述結(jié)果數(shù)據(jù),如果未在預(yù)定時間接收到所述結(jié)果數(shù)據(jù),則將超時提示發(fā)送給 所述銀行數(shù)據(jù)收發(fā)單元。
8.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于,所述的狀態(tài)標(biāo)記單元包括 狀態(tài)檢查模塊,用于檢查網(wǎng)關(guān)節(jié)點(diǎn)的當(dāng)前狀態(tài);狀態(tài)標(biāo)記模塊,用于根據(jù)所述重啟單元的重啟操作、以及所述當(dāng)前網(wǎng)關(guān)節(jié)點(diǎn)的狀態(tài)標(biāo)記所述網(wǎng)關(guān)節(jié)點(diǎn)的狀態(tài)。
全文摘要
本發(fā)明提供一種網(wǎng)關(guān)服務(wù)器以及銀行數(shù)據(jù)處理系統(tǒng),該網(wǎng)關(guān)服務(wù)器包括多個具有平行部署結(jié)構(gòu)的網(wǎng)關(guān)節(jié)點(diǎn),其中,網(wǎng)關(guān)節(jié)點(diǎn)包括狀態(tài)標(biāo)記單元,用于標(biāo)記網(wǎng)關(guān)節(jié)點(diǎn)的當(dāng)前狀態(tài),其中,狀態(tài)包括重啟、或者正常;銀行數(shù)據(jù)收發(fā)單元,用于在狀態(tài)標(biāo)記單元標(biāo)記的網(wǎng)關(guān)節(jié)點(diǎn)狀態(tài)為正常時,接收需要上送主機(jī)的銀行數(shù)據(jù);上行數(shù)據(jù)存儲單元,用于存儲銀行數(shù)據(jù)接收單元接收的銀行數(shù)據(jù);主機(jī)數(shù)據(jù)收發(fā)單元,用于將上行數(shù)據(jù)存儲單元存儲的銀行數(shù)據(jù)發(fā)送給主機(jī)進(jìn)行處理、以及接收主機(jī)處理后的結(jié)果數(shù)據(jù);下行數(shù)據(jù)存儲單元,用于存儲主機(jī)數(shù)據(jù)收發(fā)單元接收的結(jié)果數(shù)據(jù);重啟單元,用于根據(jù)預(yù)設(shè)置的重啟命令執(zhí)行網(wǎng)關(guān)節(jié)點(diǎn)的重啟操作。通過本發(fā)明可以有效避免數(shù)據(jù)的不一致的問題,降低生產(chǎn)事故的發(fā)生率。
文檔編號G06Q40/00GK101924715SQ20101025703
公開日2010年12月22日 申請日期2010年8月19日 優(yōu)先權(quán)日2010年8月19日
發(fā)明者張磊, 程中, 胡銳明, 鄒懿 申請人:中國工商銀行股份有限公司