亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理系統(tǒng)、裝置及方法

文檔序號:7747292閱讀:243來源:國知局
專利名稱:應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理系統(tǒng)、裝置及方法
技術(shù)領(lǐng)域
本發(fā)明涉及金融報文語言(IFML)數(shù)據(jù)傳輸處理技術(shù)領(lǐng)域,尤其是一種應(yīng)用于金 融報文語言的數(shù)據(jù)傳輸處理系統(tǒng)、裝置及方法。
背景技術(shù)
服務(wù)化、構(gòu)件化、松耦合是當(dāng)前企業(yè)聯(lián)機(jī)應(yīng)用系統(tǒng)編程的發(fā)展趨勢,并且通常是采 用XML (extensible Markup Language)作為報文語言,以各平臺的XML解析器作為服務(wù)化、 構(gòu)件化的基礎(chǔ)支持系統(tǒng)。XML解析器生成的XML報文是一種數(shù)據(jù)描述語言,具有開放性、易讀性、可擴(kuò)展性、 簡潔性(相對于XML的母標(biāo)準(zhǔn)SGML而言)、自描述等特性,這些特性使XML成為國際上通用 的、廣泛用于應(yīng)用程序服務(wù)接口。IBM主機(jī)系統(tǒng)上也有XML的解析器,但如果要在主機(jī)聯(lián)機(jī) 應(yīng)用構(gòu)件基于XML解析器實現(xiàn)聯(lián)機(jī)應(yīng)用的服務(wù)化和構(gòu)件化,就有以下無法克服的困難DXML解析器CPU資源消耗很大、處理時間長。相對于主機(jī)聯(lián)機(jī)交易程序來說,不管采用何種XML解析程序包或方法,在XML組包 和解包上都要消耗大量CPU運行時間,1個主機(jī)交易可能調(diào)用10多個主機(jī)應(yīng)用構(gòu)件、技術(shù)構(gòu) 件,如果采用XML,應(yīng)用交易的性能將不可接受,尤其是對金融行業(yè)有很高并發(fā)和實時性要 求的核心聯(lián)機(jī)交易系統(tǒng)。2) XML報文太長。XML解析器生成的XML報文是一種文本,使用標(biāo)記對數(shù)據(jù)進(jìn)行封裝,相比較主機(jī)程 序傳統(tǒng)的COPYBOOK接口,在表達(dá)效率上要低很多,通常要比COPYBOOK類型的數(shù)據(jù)增大5_10 倍左右。而在主機(jī)構(gòu)件程序進(jìn)行互相調(diào)用的時候,尤其是跨CICS通過VTAM完成的程序DPL, 有32K通訊區(qū)的限制。考慮到應(yīng)用設(shè)計服務(wù)化、構(gòu)件化和松耦合的發(fā)展趨勢,迫切需要一種數(shù)據(jù)傳輸處 理裝置來對主機(jī)應(yīng)用系統(tǒng)的服務(wù)、構(gòu)件提供高效支持。

發(fā)明內(nèi)容
(一)要解決的技術(shù)問題有鑒于此,為了克服現(xiàn)有XML報文語言及其解析器的技術(shù)缺點,本發(fā)明提供了一 種應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理系統(tǒng)、裝置及方法,數(shù)據(jù)傳輸處理裝置部署在渠道 服務(wù)器、網(wǎng)關(guān)和主機(jī)上,有高效組包解包、低CPU消耗等特點,兼顧了應(yīng)用程序服務(wù)構(gòu)件對 接口松耦合和主機(jī)聯(lián)機(jī)核心應(yīng)用程序高性能的要求。(二)技術(shù)方案為達(dá)到上述目的,本發(fā)明采用的技術(shù)方案如下一種應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理系統(tǒng),該系統(tǒng)包括依次連接的渠道接入層1、網(wǎng)關(guān)3、交互控制層4和業(yè)務(wù)處理層5,其中,渠道接入層1包含多個渠道接入終端及多 個配置于該渠道接入終端的渠道接入終端服務(wù)器,交互控制層4包含多個應(yīng)用服務(wù)器,業(yè)務(wù)處理層5包含多個主機(jī)構(gòu)件,該渠道接入終端服務(wù)器將該渠道接入終端接收的數(shù)據(jù)通過 網(wǎng)關(guān)3轉(zhuǎn)發(fā)給交互控制層4中對應(yīng)的應(yīng)用服務(wù)器,由該應(yīng)用服務(wù)器調(diào)用業(yè)務(wù)處理層5中對 應(yīng)的主機(jī)構(gòu)件對該數(shù)據(jù)進(jìn)行處理,在該渠道接入終端服務(wù)器、網(wǎng)關(guān)3、應(yīng)用服務(wù)器和主機(jī)構(gòu) 件上均配置有金融報文語言處理裝置2,該金融報文語言處理裝置2對渠道接入終端服務(wù) 器與網(wǎng)關(guān)3、網(wǎng)關(guān)3與應(yīng)用服務(wù)器、應(yīng)用服務(wù)器與主機(jī)構(gòu)件之間的通訊數(shù)據(jù)包進(jìn)行處理和轉(zhuǎn) 發(fā),實現(xiàn)金融報文語言的數(shù)據(jù)傳輸。上述方案中,該金融報文語言是自描述的,包含包頭100、自描述區(qū)和數(shù)據(jù)區(qū)400,其中,數(shù)據(jù)區(qū)400是緊密排放的純業(yè)務(wù)數(shù)據(jù),包頭100和自描述區(qū)實現(xiàn)對數(shù)據(jù)區(qū)的詳細(xì)描 述。上述方案中,該自描述區(qū)采用兩層結(jié)構(gòu),包括結(jié)構(gòu)體描述區(qū)200和具體參數(shù)區(qū) 300,將具體的參數(shù)歸屬到二維數(shù)組結(jié)構(gòu)里,實現(xiàn)用報文來表達(dá)數(shù)組數(shù)據(jù),并將通訊區(qū)記錄 段看作是只有1個元素的二維數(shù)組,進(jìn)而將單個的參數(shù)歸屬到某條通訊區(qū)記錄段之下。上述方案中,該系統(tǒng)中金融報文語言自描述采用如下方案實現(xiàn)1)數(shù)據(jù)區(qū)400存放的實際的純通訊區(qū)數(shù)據(jù),數(shù)據(jù)與數(shù)據(jù)之間沒有任何間隔,是緊 密排放的;并使用結(jié)構(gòu)體描述區(qū)200、具體參數(shù)描述區(qū)300對數(shù)據(jù)區(qū)進(jìn)行自描述;2)包頭100 包頭描述金融報文語言數(shù)據(jù)包中結(jié)構(gòu)體描述區(qū)200、具體參數(shù)描述區(qū) 300、數(shù)據(jù)區(qū)400的大??;a)結(jié)構(gòu)體數(shù)101 :2字節(jié),表示數(shù)據(jù)中結(jié)構(gòu)體的個數(shù),也就是結(jié)構(gòu)體描述區(qū)200中 有多少個結(jié)構(gòu)體描述,決定了結(jié)構(gòu)體描述區(qū)200的大??;數(shù)據(jù)來源通訊區(qū)打包時由調(diào)用方 提供;b)記錄數(shù)102 :2字節(jié),表示具體參數(shù)的個數(shù),也就是具體參數(shù)描述區(qū)300中有多 少個參數(shù)描述,決定了具體參數(shù)描述區(qū)300的大小;數(shù)據(jù)來源通訊區(qū)打包的時候由調(diào)用方 提供;c)數(shù)據(jù)區(qū)數(shù)據(jù)長度103 :2字節(jié),表示數(shù)據(jù)區(qū)400的大?。粩?shù)據(jù)來源通訊區(qū)打包時
由調(diào)用方提供;3)結(jié)構(gòu)體描述區(qū)1 對數(shù)據(jù)區(qū)進(jìn)行結(jié)構(gòu)描述,將數(shù)據(jù)區(qū)描述成若干個二維數(shù)組,其 中某個結(jié)構(gòu)體描述包括a)結(jié)構(gòu)體標(biāo)識201 8字節(jié),表示該結(jié)構(gòu)體的名稱;數(shù)據(jù)來源通訊區(qū)打包時由調(diào) 用方提供,組包時結(jié)構(gòu)體描述區(qū)的數(shù)據(jù)是按結(jié)構(gòu)體標(biāo)識升序排列的;b)記錄數(shù)202 :2字節(jié),表示該結(jié)構(gòu)體對應(yīng)在數(shù)據(jù)區(qū)中有多少條記錄,記錄數(shù)等于1 代表單記錄的結(jié)構(gòu),記錄數(shù)大于1表示多記錄的結(jié)構(gòu);數(shù)據(jù)來源通訊區(qū)打包時由調(diào)用方提 供;c)參數(shù)區(qū)內(nèi)偏移量203 :2字節(jié),表示該結(jié)構(gòu)所屬參數(shù)在具體參數(shù)描述區(qū)300中的 起始位置;數(shù)據(jù)來源通訊區(qū)打包程序根據(jù)之前結(jié)構(gòu)體參數(shù)個數(shù)之和計算得到;d)參數(shù)個數(shù)204 2字節(jié),表示該結(jié)構(gòu)體在具體參數(shù)描述區(qū)300中的參數(shù)個數(shù);數(shù) 據(jù)來源通訊區(qū)打包時由調(diào)用方提供;e)數(shù)據(jù)區(qū)內(nèi)偏移量205 2字節(jié),表示該結(jié)構(gòu)體在數(shù)據(jù)區(qū)的起始位置;數(shù)據(jù)來源 通訊區(qū)打包程序根據(jù)之前的結(jié)構(gòu)體數(shù)據(jù)長度之和計算得到;f)結(jié)構(gòu)體數(shù)據(jù)長度206 :2字節(jié),表示該結(jié)構(gòu)體在數(shù)據(jù)區(qū)中的數(shù)據(jù)長度;數(shù)據(jù)來源通訊區(qū)打包時由調(diào)用方提供;4)參數(shù)描述區(qū)2 描述一個結(jié)構(gòu)體下面的具體參數(shù),其中某個具體的參數(shù)描述包 括a)參數(shù)名301 12字節(jié),具體某個參數(shù)的名字;數(shù)據(jù)來源通訊區(qū)打包的時候由調(diào) 用方提供,組包時參數(shù)描述區(qū)是按結(jié)構(gòu)體名、參數(shù)名升序排列的;b)譯碼類型302 2字節(jié),表示該參數(shù)在網(wǎng)關(guān)上如何譯碼;數(shù)據(jù)來源通訊區(qū)打包 時由調(diào)用方提供;c)結(jié)構(gòu)體內(nèi)偏移量303 :2字節(jié),表示該參數(shù)在本結(jié)構(gòu)體內(nèi)的起始位置;數(shù)據(jù)來源 通訊區(qū)打包程序根據(jù)之前的參數(shù)數(shù)據(jù)長度之和計算得到;d)參數(shù)數(shù)據(jù)長度304:2字節(jié),表示該參數(shù)的長度;數(shù)據(jù)來源通訊區(qū)打包時由調(diào) 用方提供。上述方案中,該金融報文語言處理裝置2包括并行連接的金融報文語言組包模塊 20和金融報文語言解包模塊30,其中該金融報文語言組包模塊20對接收的數(shù)據(jù)進(jìn)行組包 處理,生成金融報文語言數(shù)據(jù)包并輸出;該金融報文語言解包模塊30對接收的金融報文語 言數(shù)據(jù)包進(jìn)行解包處理,提取出金融報文語言數(shù)據(jù)包中的數(shù)據(jù)并輸出。上述方案中,該金融報文語言組包模塊20包括依次連接的包頭生成模塊21、結(jié)構(gòu) 體描述區(qū)生成模塊23、參數(shù)描述區(qū)生成模塊25、增加數(shù)據(jù)區(qū)模塊27和組包返回信息處理模 塊28,以及與包頭生成模塊21連接的包頭數(shù)據(jù)檢查模塊22、與結(jié)構(gòu)體描述區(qū)生成模塊23 連接的結(jié)構(gòu)體在參數(shù)區(qū)數(shù)據(jù)區(qū)偏移計算模塊24、與參數(shù)描述區(qū)生成模塊25連接的參數(shù)在 結(jié)構(gòu)體內(nèi)偏移計算模塊26。上述方案中,該包頭生成模塊21讀取金融報文語言組包模塊20接收數(shù)據(jù)中的包 頭數(shù)據(jù),生成金融報文語言包頭100,并加入到金融報文語言組包模塊20輸出的金融報文 語言數(shù)據(jù)包中。上述方案中,在生成金融報文語言包頭100前,該包頭生成模塊21調(diào)用包頭數(shù)據(jù) 檢查模塊22對接收數(shù)據(jù)中的包頭數(shù)據(jù)進(jìn)行檢查,包頭數(shù)據(jù)檢查模塊22對包頭數(shù)據(jù)進(jìn)行檢 查包括以下3個方面1)、檢查結(jié)構(gòu)體數(shù)是否超限;2)、檢查參數(shù)個數(shù)是否超限;以及3)、檢查數(shù)據(jù)區(qū)長度是否超限。上述方案中,該結(jié)構(gòu)體描述區(qū)生成模塊23循環(huán)讀取金融報文語言組包模塊20接 收數(shù)據(jù)中的結(jié)構(gòu)體描述數(shù)據(jù),得到結(jié)構(gòu)體標(biāo)識201、記錄數(shù)202、結(jié)構(gòu)體的參數(shù)個數(shù)204和結(jié) 構(gòu)體數(shù)據(jù)長度206,并調(diào)用結(jié)構(gòu)體在參數(shù)區(qū)數(shù)據(jù)區(qū)偏移計算模塊24得到該結(jié)構(gòu)體在參數(shù)區(qū) 內(nèi)偏移量203和該結(jié)構(gòu)體在數(shù)據(jù)區(qū)內(nèi)偏移量205,生成結(jié)構(gòu)體描述區(qū)200,并將生成的結(jié)構(gòu) 體描述區(qū)200加入到金融報文語言組包模塊20輸出的金融報文語言數(shù)據(jù)包中。上述方案中,該結(jié)構(gòu)體在參數(shù)區(qū)數(shù)據(jù)區(qū)偏移計算模塊24根據(jù)該結(jié)構(gòu)體的參數(shù)個 數(shù)204之和計算出該結(jié)構(gòu)體在參數(shù)區(qū)內(nèi)偏移量203,根據(jù)該結(jié)構(gòu)體數(shù)據(jù)長度206之和計算出 該結(jié)構(gòu)體在數(shù)據(jù)區(qū)內(nèi)偏移量205。上述方案中,該參數(shù)描述區(qū)生成模塊25循環(huán)讀取金融報文語言組包模塊20接收數(shù)據(jù)中的參數(shù)描述輸入數(shù)據(jù),得到參數(shù)標(biāo)識301、譯碼類型302和參數(shù)數(shù)據(jù)長度304,并調(diào)用參數(shù)在結(jié)構(gòu)體內(nèi)偏移計算模塊26,得到該參數(shù)在結(jié)構(gòu)體內(nèi)偏移量303,生成參數(shù)描述區(qū) 300,并將生成的參數(shù)描述區(qū)300加入到金融報文語言組包模塊20輸出的金融報文語言數(shù) 據(jù)包中。上述方案中,該參數(shù)在結(jié)構(gòu)體內(nèi)偏移計算模塊26根據(jù)結(jié)構(gòu)體內(nèi)之前參數(shù)的參數(shù) 數(shù)據(jù)長度304之和,計算出該參數(shù)在結(jié)構(gòu)體內(nèi)偏移量303。上述方案中,該增加數(shù)據(jù)區(qū)模塊27將數(shù)據(jù)區(qū)400加入到金融報文語言組包模塊20 輸出的金融報文語言數(shù)據(jù)包中。上述方案中,該組包返回信息處理模塊28設(shè)置組包的返回碼和返回信息。上述方案中,該金融報文語言解包模塊30包括依次連接的解包輸入數(shù)據(jù)格式化模塊31、結(jié)構(gòu)體數(shù)據(jù)提取模塊32、參數(shù)數(shù)據(jù)提取模塊33、解包后通訊區(qū)生成模塊34和解包 返回信息處理模塊35。上述方案中,該解包輸入數(shù)據(jù)格式化模塊31對金融報文語言數(shù)據(jù)包的包頭數(shù)據(jù) 進(jìn)行檢查,看結(jié)構(gòu)體數(shù)、參數(shù)個數(shù)、數(shù)據(jù)區(qū)長度是否超限;并用預(yù)先定義好的數(shù)組變量對輸 入數(shù)據(jù)進(jìn)行直接格式化。上述方案中,該輸入數(shù)據(jù)包括金融報文語言報文、調(diào)用方需要提取的結(jié)構(gòu)體描述 和調(diào)用方需要提取的參數(shù)描述,該解包輸入數(shù)據(jù)格式化模塊31用預(yù)先定義好的數(shù)組變量 對輸入數(shù)據(jù)進(jìn)行直接格式化是將這三類數(shù)據(jù)直接賦值給到格式化好的數(shù)組變量中。上述方案中,該結(jié)構(gòu)體數(shù)據(jù)提取模塊32根據(jù)輸入的結(jié)構(gòu)體名在結(jié)構(gòu)體描述區(qū)中 搜索,如果有匹配到,則調(diào)用參數(shù)數(shù)據(jù)提取模塊33,如此循環(huán)一次,直到完成所有所有結(jié)構(gòu) 體數(shù)據(jù)的提?。蝗绻麤]有匹配到,則金融報文語言數(shù)據(jù)包中沒有解包方需要的結(jié)構(gòu)體數(shù)據(jù), 調(diào)用解包返回信息處理模塊35進(jìn)行錯誤處理退出。上述方案中,該參數(shù)數(shù)據(jù)提取模塊33根據(jù)輸入的參數(shù)名在參數(shù)描述區(qū)中搜索,如 果有匹配到,則通過偏移量、數(shù)據(jù)長度直接從數(shù)據(jù)區(qū)提取到數(shù)據(jù);如果沒有匹配到,則金融 報文語言數(shù)據(jù)包中沒有該參數(shù),賦缺省值;如此循環(huán)一次,完成某結(jié)構(gòu)體下所有參數(shù)的提 取。上述方案中,該解包后通訊區(qū)生成模塊34在參數(shù)數(shù)據(jù)提取模塊33已經(jīng)得到參數(shù) 的具體數(shù)值后,再根據(jù)調(diào)用方輸入的結(jié)構(gòu)體、參數(shù)信息生成解包后的通訊區(qū)。上述方案中,該解包返回信息處理模塊35設(shè)置解包的返回碼和返回信息。上述方案中,該渠道接入終端為終端渠道、自助終端、ATM終端、POS終端、網(wǎng)銀 終端和電話銀行終端中的至少一種;該業(yè)務(wù)處理層5中的主機(jī)構(gòu)件采用主機(jī)程序傳統(tǒng)的 COPYBOOK通訊區(qū)。一種金融報文語言處理裝置,該處理裝置包括并行連接的金融報文語言組包模塊 20和金融報文語言解包模塊30,該金融報文語言組包模塊20對接收的數(shù)據(jù)進(jìn)行組包處理, 生成金融報文語言數(shù)據(jù)包并輸出;該金融報文語言解包模塊30對接收的金融報文語言數(shù) 據(jù)包進(jìn)行解包處理,提取出金融報文語言數(shù)據(jù)包中的數(shù)據(jù)并輸出。上述方案中,該金融報文語言組包模塊20包括依次連接的包頭生成模塊21、結(jié)構(gòu) 體描述區(qū)生成模塊23、參數(shù)描述區(qū)生成模塊25、增加數(shù)據(jù)區(qū)模塊27和組包返回信息處理模 塊28,以及與包頭生成模塊21連接的包頭數(shù)據(jù)檢查模塊22、與結(jié)構(gòu)體描述區(qū)生成模塊23 連接的結(jié)構(gòu)體在參數(shù)區(qū)數(shù)據(jù)區(qū)偏移計算模塊24、與參數(shù)描述區(qū)生成模塊25連接的參數(shù)在結(jié)構(gòu)體內(nèi)偏移計算模塊26,其中該包頭生成模塊21讀取金融報文語言組包模塊20接收數(shù)據(jù)中的包頭數(shù)據(jù),生成金融報文語言包頭100,并加入到金融報文語言組包模塊20輸出的金融報文語言數(shù)據(jù)包 中;在生成金融報文語言包頭100前,該包頭生成模塊21調(diào)用包頭數(shù)據(jù)檢查模塊22 對接收數(shù)據(jù)中的包頭數(shù)據(jù)進(jìn)行檢查,包頭數(shù)據(jù)檢查模塊22對包頭數(shù)據(jù)進(jìn)行檢查包括以下3 個方面檢查結(jié)構(gòu)體數(shù)是否超限;檢查參數(shù)個數(shù)是否超限;以及檢查數(shù)據(jù)區(qū)長度是否超限;該結(jié)構(gòu)體描述區(qū)生成模塊23循環(huán)讀取金融報文語言組包模塊20接收數(shù)據(jù)中的結(jié) 構(gòu)體描述數(shù)據(jù),得到結(jié)構(gòu)體標(biāo)識201、記錄數(shù)202、結(jié)構(gòu)體的參數(shù)個數(shù)204和結(jié)構(gòu)體數(shù)據(jù)長度 206,并調(diào)用結(jié)構(gòu)體在參數(shù)區(qū)數(shù)據(jù)區(qū)偏移計算模塊24得到該結(jié)構(gòu)體在參數(shù)區(qū)內(nèi)偏移量203 和該結(jié)構(gòu)體在數(shù)據(jù)區(qū)內(nèi)偏移量205,生成結(jié)構(gòu)體描述區(qū)200,并將生成的結(jié)構(gòu)體描述區(qū)200 加入到金融報文語言組包模塊20輸出的金融報文語言數(shù)據(jù)包中;該結(jié)構(gòu)體在參數(shù)區(qū)數(shù)據(jù)區(qū)偏移計算模塊24根據(jù)該結(jié)構(gòu)體的參數(shù)個數(shù)204之和計 算出該結(jié)構(gòu)體在參數(shù)區(qū)內(nèi)偏移量203,根據(jù)該結(jié)構(gòu)體數(shù)據(jù)長度206之和計算出該結(jié)構(gòu)體在 數(shù)據(jù)區(qū)內(nèi)偏移量205;該參數(shù)描述區(qū)生成模塊25循環(huán)讀取金融報文語言組包模塊20接收數(shù)據(jù)中的參數(shù) 描述輸入數(shù)據(jù),得到參數(shù)標(biāo)識301、譯碼類型302和參數(shù)數(shù)據(jù)長度304,并調(diào)用參數(shù)在結(jié)構(gòu)體 內(nèi)偏移計算模塊26,得到該參數(shù)在結(jié)構(gòu)體內(nèi)偏移量303,生成參數(shù)描述區(qū)300,并將生成的 參數(shù)描述區(qū)300加入到金融報文語言組包模塊20輸出的金融報文語言數(shù)據(jù)包中;該參數(shù)在結(jié)構(gòu)體內(nèi)偏移計算模塊26根據(jù)結(jié)構(gòu)體內(nèi)之前參數(shù)的參數(shù)數(shù)據(jù)長度304 之和,計算出該參數(shù)在結(jié)構(gòu)體內(nèi)偏移量303 ;該增加數(shù)據(jù)區(qū)模塊27將數(shù)據(jù)區(qū)400加入到金融報文語言組包模塊20輸出的金融 報文語言數(shù)據(jù)包中;該組包返回信息處理模塊28設(shè)置組包的返回碼和返回信息。上述方案中,該金融報文語言解包模塊30包括依次連接的解包輸入數(shù)據(jù)格式化 模塊31、結(jié)構(gòu)體數(shù)據(jù)提取模塊32、參數(shù)數(shù)據(jù)提取模塊33、解包后通訊區(qū)生成模塊34和解包 返回信息處理模塊35,其中該解包輸入數(shù)據(jù)格式化模塊31對金融報文語言數(shù)據(jù)包的包頭數(shù)據(jù)進(jìn)行檢查,看 結(jié)構(gòu)體數(shù)、參數(shù)個數(shù)、數(shù)據(jù)區(qū)長度是否超限;并用預(yù)先定義好的數(shù)組變量對輸入數(shù)據(jù)進(jìn)行直 接格式化;該輸入數(shù)據(jù)包括金融報文語言報文、調(diào)用方需要提取的結(jié)構(gòu)體描述和調(diào)用方需 要提取的參數(shù)描述,該解包輸入數(shù)據(jù)格式化模塊31用預(yù)先定義好的數(shù)組變量對輸入數(shù)據(jù) 進(jìn)行直接格式化是將這三類數(shù)據(jù)直接賦值給到格式化好的數(shù)組變量中;該結(jié)構(gòu)體數(shù)據(jù)提取模塊32根據(jù)輸入的結(jié)構(gòu)體名在結(jié)構(gòu)體描述區(qū)中搜索,如果有 匹配到,則調(diào)用參數(shù)數(shù)據(jù)提取模塊33,如此循環(huán)一次,直到完成所有所有結(jié)構(gòu)體數(shù)據(jù)的提 ?。蝗绻麤]有匹配到,則金融報文語言數(shù)據(jù)包中沒有解包方需要的結(jié)構(gòu)體數(shù)據(jù),調(diào)用解包返 回信息處理模塊35進(jìn)行錯誤處理退出;該參數(shù)數(shù)據(jù)提取模塊33根據(jù)輸入的參數(shù)名在參數(shù)描述區(qū)中搜索,如果有匹配到, 則通過偏移量、數(shù)據(jù)長度直接從數(shù)據(jù)區(qū)提取到數(shù)據(jù);如果沒有匹配到,則金融報文語言數(shù)據(jù)包中沒有該參數(shù),賦缺省值;如此循環(huán)一次,完成某結(jié)構(gòu)體下所有參數(shù)的提??;該解包后通訊區(qū)生成模塊34在參數(shù)數(shù)據(jù)提取模塊33已經(jīng)得到參數(shù)的具體數(shù)值 后,再根據(jù)調(diào)用方輸入的結(jié)構(gòu)體、參數(shù)信息生成解包后的通訊區(qū);該解包返回信息處理模塊35設(shè)置解包的返回碼和返回信息。—種應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理方法,應(yīng)用于包含有金融報文語言組包 模塊和金融報文語言解包模塊的金融報文語言處理裝置,該方法包括該金融報文語言組包模塊對接收的數(shù)據(jù)進(jìn)行組包處理,生成金融報文語言數(shù)據(jù)包并輸出;以及該金融報文語言解包模塊對接收的金融報文語言數(shù)據(jù)包進(jìn)行解包處理,提取出金 融報文語言數(shù)據(jù)包中的數(shù)據(jù)并輸出。上述方案中,該金融報文語言組包模塊對接收的數(shù)據(jù)進(jìn)行組包處理,生成金融報 文語言數(shù)據(jù)包并輸出,包括步驟600 對輸入的包頭數(shù)據(jù)進(jìn)行檢查;步驟601 創(chuàng)建包頭信息,至少包括結(jié)構(gòu)體個數(shù)、參數(shù)個數(shù)、數(shù)據(jù)區(qū)長度;步驟602 計算結(jié)構(gòu)體所屬的參數(shù)在參數(shù)描述區(qū)中的偏移量和結(jié)構(gòu)體在數(shù)據(jù)區(qū)中 的偏移量;步驟603 創(chuàng)建結(jié)構(gòu)體的描述數(shù)據(jù),至少包括結(jié)構(gòu)體標(biāo)識、記錄數(shù)、參數(shù)描述區(qū)中 的偏移量、參數(shù)個數(shù)、數(shù)據(jù)區(qū)中的偏移量、結(jié)構(gòu)體數(shù)據(jù)長度;步驟604 重復(fù)步驟602、603,直到完成所有結(jié)構(gòu)體的描述,即完成結(jié)構(gòu)體描述區(qū) 的創(chuàng)建;步驟605 計算參數(shù)在結(jié)構(gòu)體中的偏移量;步驟606 創(chuàng)建參數(shù)的描述數(shù)據(jù),至少包括參數(shù)、譯碼類型、結(jié)構(gòu)體中的偏移量、參 數(shù)數(shù)據(jù)長度;步驟607 循環(huán)步驟605、606直到完成所有參數(shù)的處理;步驟608 最后填寫純數(shù)據(jù)區(qū)。上述方案中,該金融報文語言解包模塊對接收的金融報文語言數(shù)據(jù)包進(jìn)行解包處 理,提取出金融報文語言數(shù)據(jù)包中的數(shù)據(jù)并輸出,包括步驟500 對解包輸入的數(shù)據(jù)進(jìn)行格式化;步驟501 按結(jié)構(gòu)體名在結(jié)構(gòu)體描述區(qū)進(jìn)行掃描,搜索結(jié)構(gòu)體;步驟502 對結(jié)構(gòu)體掃描結(jié)果進(jìn)行判斷,如果有匹配到,則執(zhí)行步驟503,進(jìn)行該結(jié) 構(gòu)體中具體參數(shù)掃描;如果沒有匹配到,則通訊區(qū)中沒有需要的結(jié)構(gòu)體數(shù)據(jù),轉(zhuǎn)到步驟508 進(jìn)行錯誤處理,并退出;步驟503 按參數(shù)名在參數(shù)描述區(qū)進(jìn)行掃描,搜索參數(shù);步驟504 對參數(shù)掃描結(jié)果進(jìn)行判斷,如果有匹配到,則通過偏移量、數(shù)據(jù)長度直 接從數(shù)據(jù)區(qū)提取到數(shù)據(jù);如果沒有匹配到,則通訊區(qū)中沒有該參數(shù),轉(zhuǎn)到步驟505賦缺省 值;步驟505:賦缺省值;步驟506 判斷是否完成某個結(jié)構(gòu)體中所有參數(shù)的查找;步驟507 判斷是否完成所有結(jié)構(gòu)體的處理。
上述方案中,步驟500中所述對解包輸入的數(shù)據(jù)進(jìn)行格式化包括對金融報文語言數(shù)據(jù)包包頭數(shù)據(jù)進(jìn)行檢查,看是否超限,并用內(nèi)存變量賦值的方式直接對金融報文語言解包模塊的輸入進(jìn)行數(shù)據(jù)提取,將輸入數(shù)據(jù)串存放到格式化好的內(nèi) 存變量中,該輸入包括金融報文語言報文、調(diào)用方需要提取的結(jié)構(gòu)體描述、調(diào)用方需要提 取的參數(shù)描述。上述方案中,步驟505中所述賦缺省值,是實現(xiàn)開發(fā)規(guī)范中松耦合要求的對非必 輸項的賦值。(三)有益效果從上述技術(shù)方案可以看出,本發(fā)明具有以下有益效果1、本發(fā)明克服了現(xiàn)有XML報文語言及其解析器的技術(shù)缺點,提供了一種應(yīng)用于金 融報文語言的數(shù)據(jù)傳輸處理系統(tǒng)、裝置及方法,數(shù)據(jù)傳輸處理裝置部署在渠道服務(wù)器、網(wǎng)關(guān) 和主機(jī)上,有高效組包解包、低CPU消耗等特點,兼顧了應(yīng)用程序服務(wù)構(gòu)件對接口松耦合和 主機(jī)聯(lián)機(jī)核心應(yīng)用程序高性能的要求。2、本發(fā)明貼合金融行業(yè)主機(jī)核心聯(lián)機(jī)應(yīng)用的發(fā)展需要,滿足了主機(jī)聯(lián)系程序服務(wù) 化、構(gòu)件化、松耦合的要求,同時可以保證報文解析的高性能,滿足主機(jī)聯(lián)機(jī)程序?qū)π阅艿?苛刻要求。3、根據(jù)實際測試,采用公共的金融報文COBOL解析程序,每個報文解析大約消耗 70微秒主機(jī)CPU,和同主機(jī)環(huán)境下典型聯(lián)機(jī)交易7毫秒多的CPU時間相比是可以接受的,如 果把解析程序改寫為源程序模塊,報文解析CPU消耗可以控制在35微秒左右。


圖1是IFML報文處理裝置的系統(tǒng)結(jié)構(gòu)圖;圖2是IFML報文處理裝置的功能框圖;圖3-1是IFML組包模塊的功能框圖;圖3-2是IFML解包模塊的功能框圖;圖4是IFML報文的結(jié)構(gòu)簡圖;圖5-1是IFML報文包頭的結(jié)構(gòu)圖;圖5-2是IFML報文結(jié)構(gòu)體描述區(qū)結(jié)構(gòu)圖;圖5-3是IFML報文具體測試描述區(qū)結(jié)構(gòu)圖;圖6是IFML報文處理裝置解包流程圖;圖7是IFML報文處理裝置組包流程圖。
具體實施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,以下結(jié)合具體實施例,并參照 附圖,對本發(fā)明進(jìn)一步詳細(xì)說明。本發(fā)明提供了一種應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理系統(tǒng)、裝置及方法,尤其 適合在主機(jī)核心聯(lián)機(jī)應(yīng)用系統(tǒng)中實現(xiàn)服務(wù)、構(gòu)件的高效率調(diào)用,即金融報文語言(以下簡 稱IFML)處理裝置,該裝置包括IFML組包模塊和IFML解包模塊。本發(fā)明的IFML是自描述的數(shù)據(jù),為了處理裝置的高效率,IFML最多只支持二維數(shù)組數(shù)據(jù),但在金融核心應(yīng)用系統(tǒng)中,二維數(shù)組數(shù)據(jù)足以表達(dá)從數(shù)據(jù)庫表中查詢到的多條返 回記錄,IFML已經(jīng)夠用。下面將對照附圖,對本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)的說明。本發(fā)明提供的應(yīng)用于IFML的數(shù)據(jù)傳輸處理系統(tǒng)的結(jié)構(gòu)圖如圖1所示,該系統(tǒng)包括 依次連接的渠道接入層1、網(wǎng)關(guān)3、交互控制層4和業(yè)務(wù)處理層5。其中,渠道接入層1包含 多個渠道接入終端及多個配置于該渠道接入終端的渠道接入終端服務(wù)器,交互控制層4包 含多個應(yīng)用服務(wù)器,業(yè)務(wù)處理層5包含多個主機(jī)構(gòu)件,該渠道接入終端服務(wù)器將該渠道接 入終端接收的數(shù)據(jù)通過網(wǎng)關(guān)3轉(zhuǎn)發(fā)給交互控制層4中對應(yīng)的應(yīng)用服務(wù)器,由該應(yīng)用服務(wù)器 調(diào)用業(yè)務(wù)處理層5中對應(yīng)的主機(jī)構(gòu)件對該數(shù)據(jù)進(jìn)行處理,在該渠道接入終端服務(wù)器、網(wǎng)關(guān) 3、應(yīng)用服務(wù)器和主機(jī)構(gòu)件上均配置有金融報文語言處理裝置2,該金融報文語言處理裝置 2對渠道接入終端服務(wù)器與網(wǎng)關(guān)3、網(wǎng)關(guān)3與應(yīng)用服務(wù)器、應(yīng)用服務(wù)器與主機(jī)構(gòu)件之間的通 訊數(shù)據(jù)包進(jìn)行處理和轉(zhuǎn)發(fā),實現(xiàn)金融報文語言的數(shù)據(jù)傳輸。圖1中渠道接入層1中有各種渠道的接入服務(wù)器,如負(fù)責(zé)柜員終端接入的終端渠 道服務(wù)器,負(fù)責(zé)ATM接入的ATM渠道服務(wù)器等等。在渠道接入層1的各渠道服務(wù)器都部署了 XML或本發(fā)明的IFML的處理裝置2。在渠道接入層1服務(wù)器和網(wǎng)關(guān)3之間,可以選擇XML報文也可以選擇本發(fā)明涉及 的IFML報文。網(wǎng)關(guān)3上也部署了本發(fā)明的IFML處理裝置2,負(fù)責(zé)IFML通訊包處理。在網(wǎng)關(guān)3和主機(jī)對外提供的應(yīng)用服務(wù)4之間采用本發(fā)明涉及的IFML報文,主機(jī)核心應(yīng)用系統(tǒng)部署有本發(fā)明的IFML處理裝置2,主機(jī)應(yīng)用服務(wù)4需要調(diào)用本發(fā)明的IFML處理 裝置2進(jìn)行通訊包處理。主機(jī)應(yīng)用服務(wù)4需要調(diào)用主機(jī)業(yè)務(wù)或技術(shù)構(gòu)件5來實現(xiàn)具體的功能,兩者之間的 通訊也采用本發(fā)明的IFML報文,主機(jī)構(gòu)件5也需要調(diào)用本發(fā)明的IFML處理裝置2進(jìn)行通 訊包處理。在構(gòu)件內(nèi)部采用主機(jī)程序傳統(tǒng)的COPYBOOK通訊區(qū)。如圖2所示本發(fā)明提供的IFML處理裝置包括IFML組包模塊20和IFML解包模 塊30。如圖3-1所示,IFML組包模塊20包括包頭生成模塊21、包頭數(shù)據(jù)檢查模塊22、 結(jié)構(gòu)體描述區(qū)生成模塊23、結(jié)構(gòu)體在參數(shù)區(qū)數(shù)據(jù)區(qū)偏移計算模塊24、參數(shù)描述區(qū)生成模塊 25、參數(shù)在結(jié)構(gòu)體內(nèi)偏移計算模塊26、增加數(shù)據(jù)區(qū)模塊27和組包返回信息處理模塊28。包頭生成模塊21的功能是讀取IFML組包模塊20從調(diào)用方獲得的包頭數(shù)據(jù),生成 IFML包頭100,并加入到組包模塊20輸出的IFML包中。在生成前要調(diào)用包頭數(shù)據(jù)檢查模 塊22,對IFML組包調(diào)用方提供的包頭數(shù)據(jù)進(jìn)行檢查。包頭數(shù)據(jù)檢查模塊22的功能是對IFML組包模塊20獲得的包頭數(shù)據(jù)進(jìn)行檢查,檢 查包括3個方面(1)、檢查結(jié)構(gòu)體數(shù)101是否超限,如300個;(2)、檢查參數(shù)個數(shù)102是否 超限,如1500個;(3)檢查數(shù)據(jù)區(qū)長度103是否超限,如32000字節(jié)。結(jié)構(gòu)體描述區(qū)生成模塊23的功能是循環(huán)讀取IFML組包模塊20獲得的每一個結(jié) 構(gòu)體描述輸入數(shù)據(jù)結(jié)構(gòu)體標(biāo)識201、記錄數(shù)202、結(jié)構(gòu)體內(nèi)參數(shù)個數(shù)204、結(jié)構(gòu)體數(shù)據(jù)長度 206,并調(diào)用結(jié)構(gòu)體在參數(shù)區(qū)數(shù)據(jù)區(qū)偏移計算模塊24得到該結(jié)構(gòu)體在參數(shù)區(qū)內(nèi)偏移量203、 該結(jié)構(gòu)體在數(shù)據(jù)區(qū)內(nèi)偏移量205。完成結(jié)構(gòu)體描述區(qū)200的生成,并加入到組包模塊20輸出的IFML包中。結(jié)構(gòu)體在參數(shù)區(qū)數(shù)據(jù)區(qū)偏移計算模塊24的功能是根據(jù)之前結(jié)構(gòu)體的參數(shù)個數(shù)204之和計算出該結(jié)構(gòu)體在參數(shù)區(qū)內(nèi)偏移量203,根據(jù)之前結(jié)構(gòu)體數(shù)據(jù)長度206之和計算出 該結(jié)構(gòu)體在數(shù)據(jù)區(qū)內(nèi)偏移量205。參數(shù)描述區(qū)生成模塊25的功能是循環(huán)讀取IFML組包模塊20獲得的每一個參數(shù) 描述輸入數(shù)據(jù)參數(shù)標(biāo)識301、譯碼類型302、參數(shù)數(shù)據(jù)長度304,并調(diào)用參數(shù)在結(jié)構(gòu)體內(nèi)偏 移計算模塊26,得到該參數(shù)在結(jié)構(gòu)體內(nèi)偏移量303。完成參數(shù)描述區(qū)300的生成,并加入到 組包模塊20輸出的IFML包中。參數(shù)在結(jié)構(gòu)體內(nèi)偏移計算模塊26的功能是根據(jù)結(jié)構(gòu)體內(nèi)之前參數(shù)的參數(shù)長度 304之和,計算出該參數(shù)在結(jié)構(gòu)體內(nèi)偏移量303。增加數(shù)據(jù)區(qū)模塊27的功能是把數(shù)據(jù)區(qū)400加入到解包程序的輸出的IFML包中。組包返回信息處理模塊28的功能是設(shè)置組包的返回碼、返回信息。如圖3-2所示,IFML解包模塊30包括解包輸入數(shù)據(jù)格式化模塊31、結(jié)構(gòu)體數(shù)據(jù) 提取模塊32、參數(shù)數(shù)據(jù)提取模塊33、解包后通訊區(qū)生成模塊34和解包返回信息處理模塊 35。解包輸入數(shù)據(jù)格式化模塊31的功能有2個(1)、是對IFML包頭數(shù)據(jù)100進(jìn)行檢 查,看結(jié)構(gòu)體數(shù)、參數(shù)個數(shù)、數(shù)據(jù)區(qū)長度是否超限(2)是用預(yù)先定義好的數(shù)組變量對輸入數(shù) 據(jù)進(jìn)行直接格式化,IFML報文處理裝置解包模塊的輸入包括IFML報文、調(diào)用方需要提取 的結(jié)構(gòu)體描述、調(diào)用方需要提取的參數(shù)描述,把這三類數(shù)據(jù)直接賦值給到格式化好的數(shù)組 變量中,這種數(shù)據(jù)提取方法是內(nèi)存級的賦值操作,可以獲得最高效率。結(jié)構(gòu)體數(shù)據(jù)提取模塊32的功能是根據(jù)輸入的結(jié)構(gòu)體名在結(jié)構(gòu)體描述區(qū)中搜索, 如果有匹配到,則調(diào)用參數(shù)數(shù)據(jù)提取模塊33,如此循環(huán)一次,直到完成所有所有結(jié)構(gòu)體數(shù)據(jù) 的提取。如果解包時某個輸入的結(jié)構(gòu)體沒有匹配到,說明IFML包中沒有解包方需要的結(jié)構(gòu) 體數(shù)據(jù),則調(diào)用返回信息處理模塊進(jìn)行錯誤處理退出。參數(shù)數(shù)據(jù)提取模塊33的功能是根據(jù)輸入的參數(shù)名在參數(shù)描述區(qū)中搜索,果匹配 則通過偏移量、數(shù)據(jù)長度直接從數(shù)據(jù)區(qū)提取到數(shù)據(jù)。如果不匹配,說明IFML通訊區(qū)中沒有 該參數(shù),賦缺省值。如此循環(huán)一次,完成某結(jié)構(gòu)體下所有參數(shù)的提取。解包后通訊區(qū)生成模塊34的功能是在參數(shù)數(shù)據(jù)提取模塊33已經(jīng)得到參數(shù)的具體 數(shù)值后,再根據(jù)IFML解包模塊調(diào)用方輸入的結(jié)構(gòu)體、參數(shù)信息生成解包后的通訊區(qū)。解包返回信息處理模塊35的功能是設(shè)置解包的返回碼、返回信息。下面將對照圖4、圖5-1、圖5-2和圖5_3對金融報文語言(IFML)進(jìn)行詳細(xì)描述, 并對照圖6、7對IFML處理裝置的主要組包、解包流程進(jìn)行詳細(xì)描述。金融報文語言是自描述的,如圖4所示主要有包頭100、結(jié)構(gòu)體描述區(qū)200、具體參 數(shù)區(qū)300和數(shù)據(jù)區(qū)400組成。數(shù)據(jù)區(qū)400是緊密排放的純業(yè)務(wù)數(shù)據(jù),包頭100、結(jié)構(gòu)體描述 區(qū)200、具體參數(shù)區(qū)300實現(xiàn)對數(shù)據(jù)區(qū)的詳細(xì)描述。自描述采用了兩層結(jié)構(gòu),分為結(jié)構(gòu)體和具體參數(shù),也就是把具體的參數(shù)都?xì)w為二 維數(shù)組結(jié)構(gòu)里面,這樣報文就可以表達(dá)數(shù)組數(shù)據(jù),如數(shù)據(jù)庫表的多條查詢結(jié)果,而單個的 普通參數(shù)歸屬到某條通訊區(qū)記錄段下面一把通訊區(qū)記錄段看成是只有1個元素的二維數(shù)組。
在金融行業(yè)的主機(jī)核心應(yīng)用程序里面,二維數(shù)組的數(shù)據(jù)結(jié)構(gòu)已經(jīng)足夠使用,不需 要太復(fù)雜的更多層數(shù)據(jù)結(jié)構(gòu)。在本發(fā)明IFML處理裝置涉及的IFML里面自描述采用如下方案實現(xiàn)(為了節(jié)約 空間,除數(shù)據(jù)區(qū)外對數(shù)值都采用二進(jìn)制數(shù)值存儲,如2個字節(jié)最大為X’ FFFF')1)數(shù)據(jù)區(qū)400 (DATA)存放的實際的純通訊區(qū)數(shù)據(jù),數(shù)據(jù)與數(shù)據(jù)之間沒有任何間隔 緊密排放。使用結(jié)構(gòu)體描述區(qū)200、具體參數(shù)描述區(qū)300對數(shù)據(jù)區(qū)進(jìn)行自描述。2)包頭100 包頭描述了 IFML包中結(jié)構(gòu)體描述區(qū)200、具體參數(shù)描述區(qū)300、數(shù)據(jù) 區(qū)400的大小。圖5-1表示了包頭結(jié)構(gòu)a)結(jié)構(gòu)體數(shù)(2字節(jié))101 表示了數(shù)據(jù)中結(jié)構(gòu)體的個數(shù),也就是結(jié)構(gòu)體描述區(qū)200 中有多少個圖5-2表示的結(jié)構(gòu)體描述,也就決定了結(jié)構(gòu)體描述區(qū)200的大小。數(shù)據(jù)來源通 訊區(qū)打包的時候由調(diào)用方提供。b)記錄數(shù)(2字節(jié))102 表示了具體參數(shù)的個數(shù),也就是具體參數(shù)描述區(qū)300中有 多少個圖5-3表示的參數(shù)描述,也就決定了具體參數(shù)描述區(qū)300的大小。數(shù)據(jù)來源通訊區(qū) 打包的時候由調(diào)用方提供。c)數(shù)據(jù)區(qū)數(shù)據(jù)長度(2字節(jié))103 表示了數(shù)據(jù)區(qū)400的大小。數(shù)據(jù)來源通訊區(qū)打 包的時候由調(diào)用方提供。3)結(jié)構(gòu)體描述區(qū)1 對數(shù)據(jù)區(qū)進(jìn)行結(jié)構(gòu)(二維數(shù)組)描述,把數(shù)據(jù)區(qū)描述成若干個二維數(shù)組,如公共通訊區(qū)塊、應(yīng)用公共通訊區(qū)區(qū)塊、數(shù)組數(shù)據(jù)等等。圖5-2表示了某個結(jié)構(gòu) 體描述包括a)結(jié)構(gòu)體標(biāo)識(8字節(jié))201 該結(jié)構(gòu)體的名稱。數(shù)據(jù)來源通訊區(qū)打包的時候由調(diào) 用方提供。組包的時候,結(jié)構(gòu)體描述區(qū)的數(shù)據(jù)是按結(jié)構(gòu)體標(biāo)識升序排列的。b)記錄數(shù)(2字節(jié))202 表示該結(jié)構(gòu)體對應(yīng)在數(shù)據(jù)區(qū)中有多少條記錄,記錄數(shù)等于 1代表單記錄的結(jié)構(gòu),如公共通訊區(qū)塊;記錄數(shù)大于1表示多記錄的結(jié)構(gòu),如查詢到的多 條數(shù)據(jù)庫表記錄。數(shù)據(jù)來源通訊區(qū)打包的時候由調(diào)用方提供。c)參數(shù)區(qū)內(nèi)偏移量(2字節(jié))203 表示該結(jié)構(gòu)所屬參數(shù)在具體參數(shù)描述區(qū)300中 的起始位置(第幾個參數(shù)開始)。數(shù)據(jù)來源通訊區(qū)打包程序根據(jù)之前結(jié)構(gòu)體參數(shù)個數(shù)之 和計算得到。d)參數(shù)個數(shù)(2字節(jié))204 表示該結(jié)構(gòu)體在具體參數(shù)描述區(qū)300中的參數(shù)個數(shù)。 數(shù)據(jù)來源通訊區(qū)打包的時候由調(diào)用方提供。e)數(shù)據(jù)區(qū)內(nèi)偏移量(2字節(jié))205 表示該結(jié)構(gòu)體在數(shù)據(jù)區(qū)的起始位置。數(shù)據(jù)來源 通訊區(qū)打包程序根據(jù)之前的結(jié)構(gòu)體數(shù)據(jù)長度之和計算得到。f)結(jié)構(gòu)體數(shù)據(jù)長度(2字節(jié))206 表示該結(jié)構(gòu)體在數(shù)據(jù)區(qū)中的數(shù)據(jù)長度(如為數(shù) 組,則為一條記錄的長度)。數(shù)據(jù)來源通訊區(qū)打包的時候由調(diào)用方提供。4)參數(shù)描述區(qū)2 描述一個結(jié)構(gòu)體下面的具體參數(shù),如參數(shù)在結(jié)構(gòu)體中的位置、 參數(shù)類型、長度等等。圖5-3表示了某個具體的參數(shù)描述包括a)參數(shù)名(12字節(jié))301 具體某個參數(shù)的名字。數(shù)據(jù)來源通訊區(qū)打包的時候由 調(diào)用方提供。組包的時候參數(shù)描述區(qū)是按結(jié)構(gòu)體名、參數(shù)名升序排列的。b)譯碼類型(2字節(jié))302 表示該參數(shù)在網(wǎng)關(guān)上如何譯碼。數(shù)據(jù)來源通訊區(qū)打包的時候由調(diào)用方提供。譯碼類型數(shù)據(jù)字典 C)結(jié)構(gòu)體內(nèi)偏移量(2字節(jié))303 表示該參數(shù)在本結(jié)構(gòu)體內(nèi)的起始位置。數(shù)據(jù)來 源通訊區(qū)打包程序根據(jù)之前的參數(shù)數(shù)據(jù)長度之和計算得到。d)參數(shù)數(shù)據(jù)長度(2字節(jié))304 表示該參數(shù)的長度。數(shù)據(jù)來源通訊區(qū)打包的時候 由調(diào)用方提供。實例XML數(shù)據(jù)和IFML數(shù)據(jù)某通訊區(qū)由通訊區(qū)塊COMMSTAT和COMMCHTR組成,其XML表達(dá)為<commarea><workarea id = “ COMMSTAT" counter = “ 1〃 >〈field id =〃 TRANSOK" type=" 4〃 length =" 1〃 ><value>0</value></field>〈field id =〃 ERR_N0〃 type=" 4〃 length =" 4〃 ><value>0000</value></field>〈field id =〃 TSF_STAT〃 type=" 4〃 length =" 1〃 ><value>9</value></field></workarea><workarea id = " COMMCHTR" counter = " 1〃 >〈field id = 〃 TRXSQNB" type=" 3〃 length =" 3〃 ><value>74</value></field>
〈field id =〃 TRXCODE" type=" 3〃 length =" 3〃 ><value>8883</value></field>〈field id =〃 ZONENO" type=" 3〃 length =" 3〃 ><value>00200</value></field>
〈field id =〃 BRNO" type=" 3〃 length =" 3〃 ><value>00260</value></field>〈field id =〃 TELLERNO" type=" 3〃 length =" 3〃 ><value>10140</value></field>〈field id =〃 SERVFACE" type=" 3〃 length =" 2" ><value>001</value></field>〈field id =〃 CURRTYPE" type=" 3〃 length =" 2" ><value>001</value></field>〈field id =〃 DRACCNO" type=" 4〃 length =" 17〃 ><value>02000260090000001</value></field>〈field id=〃 AMOUNT" type=" 3〃 length =" 9〃 ><value>10000</value></field>〈field id =〃 REVTRANF" type=" 3〃 length =" 1〃 ><value>0</value></field>〈field id =〃 WORKDATE" type=" 2" length =" 10〃 ><value>2008-02-04</value></field></workarea></commarea>IFML表示的通訊區(qū)為(左邊是主機(jī)EB⑶IC碼,右邊豎線中是字符)0002000 E003EC3 D6D4D4E2 E3C1E300.......C0MMSTAT.01000100 0300010 006C3D6D4 D4C3C8E3.........C0MMCHTD9000100 04000B0 0070038E3 D9C1D5E2|R..........TRANSD6D24040 4040400 034000100 01C5D9D9|0K...........ERR6DD5D640 4040404 040003400 020004E3 |_Ν0............TE2C66DE2 E3C1E34 040404000 34000600|SF_STAT.........
01E3D9E7 E2D8D5C 240404040 40003300|. TRXSQNB........010003E3 D9E7C3D 6C4C54040 40404000|... TRXCODE......33000400 03E9D6D 5C5D5D640 40404040|..... ZONENO.....40003300 070003C 2D9D5D640 40404040|.......BRNO.....40404000 33000A0 003E3C5D3 D3C5D9D5.........TELLERND6404040 4000330 00D0003E2 C5D9E5C6 O..........SERVFC1C3C540 4040400 033001000 02C3E4D9 | ACE..........CURD9E3E8D7 C540404 040003300 120002C4 | RTYPE..........DD9C1C3C3 D5D6404 040404000 34001400|RACCNO..........11C1D4D6 E4D5E34 040404040 40003300|. AMOUNT.........250009D9 C5E5E3D 9C1D5C640 40404000|. . . REVTRANF.....33002E00 01E6D6D 9D2C4C1E3 C5404040 .....WORKDATE...40003200 2F000AF OFOFOFOFO F900074C |....... 000009.. <08883C00 200C002 60C10140C 001C001C|.h..............F0F2F0F0 F0F2F6F 0F0F9F0F0 FOFOFOFO|0200026009000000F1000000 0000001 0000C0CF2 F0F0F860 11.......... 2008-F0F260F0 F4|02-041)最開始的6個字節(jié)000200 0E003E是包頭,參照圖5_1的包頭結(jié)構(gòu)a)X’ 0002’表示通訊區(qū)中有2個結(jié)構(gòu)體,圖5_2中每個結(jié)構(gòu)體描述是18字節(jié),所 以結(jié)構(gòu)體描述區(qū)是18X2 = 36字節(jié)。b) X’ 000E’表示參數(shù)描述區(qū)總共有14個參數(shù);圖5_3中每個參數(shù)描述是18字節(jié), 所有參數(shù)描述區(qū)是18X14 = 252字節(jié)c)X,003E,表示有數(shù)據(jù)區(qū)長度是62字節(jié)。2)緊接是第1個結(jié)構(gòu)體C0MMSTAT的描述C3 D6D4D4E2 E3C1E300 |.......C0MMSTAT.010001000300010006|.........參考圖5-2,解析如下d)結(jié)構(gòu)體標(biāo)識(8 字節(jié))201 -X C3D6D4D4E2E3C1E3,,EBCDIC 碼的 C0MMSTAT ;e)記錄數(shù)(2字節(jié))202:X’ 0001’,該結(jié)構(gòu)體在數(shù)據(jù)區(qū)中是1條記錄。f)參數(shù)區(qū)內(nèi)偏移量(2字節(jié))203 :X’ 0001’表示該結(jié)構(gòu)在具體參數(shù)描述區(qū)300中的起始位置第1個參數(shù)。g)參數(shù)個數(shù)(2字節(jié))204 =X' 0003’表示該結(jié)構(gòu)體在具體參數(shù)描述區(qū)300中有3 個參數(shù)。h)數(shù)據(jù)區(qū)內(nèi)偏移量(2字節(jié))205 :X’ 0001’,表示該結(jié)構(gòu)體在數(shù)據(jù)區(qū)的起始位置為 第1個字節(jié)。i)結(jié)構(gòu)體數(shù)據(jù)長度(2字節(jié))206 :X’0006’,表示結(jié)構(gòu)體在數(shù)據(jù)區(qū)是6個字節(jié)長度。3)根據(jù)包頭中信息,參數(shù)描述區(qū)在包頭(6字節(jié))、結(jié)構(gòu)體描述區(qū)(36字節(jié))后面, 第1個參數(shù)的描述數(shù)據(jù)為E3D9C1D5E2 |...........TRANS
D6D240404040400034000100011OK...........參考圖5-3,解析如下a)參數(shù)名(12B)301 :X,E3D9C1D5E2 D6D24040 404040,,表示結(jié)構(gòu)體 C0MMSTAT 的 第1個參數(shù)名字是TRANS0K,后面補(bǔ)滿5個空格X’ 40’到12字節(jié)。b)譯碼類型(2B) 302 :X’ 0034’,表示該參數(shù)在網(wǎng)關(guān)上按NUM型進(jìn)行ASCII到 EB⑶IC的轉(zhuǎn)碼。c)結(jié)構(gòu)體內(nèi)偏移量(2B)303 :X’ 0001’表示該參數(shù)在本結(jié)構(gòu)體內(nèi)的起始位置是第 1個字節(jié)。d)參數(shù)數(shù)據(jù)長度(2B)304 -X 0001’,表示該參數(shù)在數(shù)據(jù)區(qū)內(nèi)的長度為1。4)根據(jù)包頭中信息,數(shù)據(jù)區(qū)是包頭(6字節(jié))、結(jié)構(gòu)體描述區(qū)(36字節(jié))、參數(shù)描述 區(qū)(252字節(jié))后面的62字節(jié)FO F0F0F0F0 F900074C |....... 000009.. <08883C00 200C0026 0C10140C 001C001C|.h..............F0F2F0F0 F0F2F6F0 F0F9F0F0 F0F0F0F0|0200026009000000F1000000 00000010 000C0CF2 F0F0F860 11.......... 2008-F0F260F0F4|02-045)根據(jù)第2)中的解析C0MMSTAT在數(shù)據(jù)區(qū)中是第1個字節(jié)開始的6個字節(jié)X‘F0 F0F0F0,。6)根據(jù)第3)中的解析第1個參數(shù)TRANS0K在結(jié)構(gòu)體數(shù)據(jù)中是第1個字節(jié)開始的, 長度為1個字節(jié),即EB⑶IC碼X卞0,,數(shù)值為0這樣,采用上述設(shè)計就可以實現(xiàn)金融報文語言的自描述,從而使得通訊雙方將數(shù) 據(jù)描述與數(shù)據(jù)內(nèi)容同時傳送,數(shù)據(jù)交換雙方不需要事先對數(shù)據(jù)格式進(jìn)行約定,只要采用統(tǒng) 一的IFML處理裝置即可?;趫D2和圖3所示的應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理裝置,本發(fā)明還提供 的這種應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理方法,該方法包括該金融報文語言組包模塊對接收的數(shù)據(jù)進(jìn)行組包處理,生成金融報文語言數(shù)據(jù)包 并輸出;以及該金融報文語言解包模塊對接收的金融報文語言數(shù)據(jù)包進(jìn)行解包處理,提取出金 融報文語言數(shù)據(jù)包中的數(shù)據(jù)并輸出。下面結(jié)合圖6對本發(fā)明的IFML處理裝置的解包流程進(jìn)行說明步驟500 對解包輸入的數(shù)據(jù)進(jìn)行格式化,主要功能是對IFML包頭數(shù)據(jù)100進(jìn)行 檢查,看是否超限,并用內(nèi)存變量賦值的方式直接對IFML報文處理裝置解包模塊的輸入進(jìn) 行數(shù)據(jù)提取,輸入包括=IFML報文、調(diào)用方需要提取的結(jié)構(gòu)體描述、調(diào)用方需要提取的參數(shù) 描述,把輸入數(shù)據(jù)串存放到格式化好的內(nèi)存變量中,這種數(shù)據(jù)提取可以獲得最高效率。步驟501 搜索結(jié)構(gòu)體,由于是松耦合設(shè)計,數(shù)據(jù)提供方發(fā)來的IFML數(shù)據(jù)中可能包 含比需求方更多的結(jié)構(gòu)、參數(shù),在本步驟中按結(jié)構(gòu)體名在結(jié)構(gòu)體描述區(qū)進(jìn)行掃描。步驟502 結(jié)構(gòu)體掃描結(jié)果判斷,對步驟501的掃描結(jié)果進(jìn)行判斷。如果匹配則到步驟503,進(jìn)行該結(jié)構(gòu)體中具體參數(shù)掃描;如果沒有匹配到,說明通訊區(qū)中沒有需要的結(jié)構(gòu) 體數(shù)據(jù),轉(zhuǎn)到508進(jìn)行錯誤處理,并退出,說明通訊區(qū)不匹配。
步驟503 搜索參數(shù),在本步驟中按參數(shù)名在參數(shù)描述區(qū)進(jìn)行掃描。步驟504 具體參數(shù)掃描結(jié)果判斷,對步驟503的掃描結(jié)果進(jìn)行判斷。如果匹配則通過偏移量、數(shù)據(jù)長度直接從數(shù)據(jù)區(qū)提取到數(shù)據(jù)。如果不匹配,說明通訊區(qū)中沒有該參數(shù), 到步驟505賦缺省值。步驟505 賦缺省值。實現(xiàn)開發(fā)規(guī)范中松耦合要求的對非必輸項的賦值。步驟506 判斷是否完成了某個結(jié)構(gòu)體中所有參數(shù)的查找。步驟507 判斷是否完成了所有結(jié)構(gòu)體的處理。下面結(jié)合圖7對本發(fā)明的IFML處理裝置的壓包流程進(jìn)行說明步驟600 對輸入的包頭數(shù)據(jù)進(jìn)行檢查。步驟601 創(chuàng)建包頭信息,如結(jié)構(gòu)體個數(shù))、參數(shù)個數(shù)、數(shù)據(jù)區(qū)長度。步驟602 計算結(jié)構(gòu)體所屬的參數(shù)在參數(shù)描述區(qū)中的偏移量(開始位置);計算結(jié) 構(gòu)體在數(shù)據(jù)區(qū)中的偏移量(開始字節(jié)數(shù))。步驟603 創(chuàng)建結(jié)構(gòu)體的描述數(shù)據(jù),如結(jié)構(gòu)體標(biāo)識、記錄數(shù)、節(jié)點區(qū)2內(nèi)偏移量 (步驟602計算得到)、參數(shù)個數(shù)、數(shù)據(jù)區(qū)內(nèi)偏移量(步驟602計算得到)、結(jié)構(gòu)體數(shù)據(jù)長度。步驟604 重復(fù)步驟602、603,直到完成所有結(jié)構(gòu)體的描述,即完成結(jié)構(gòu)體描述區(qū) 的創(chuàng)建。步驟605 計算參數(shù)在結(jié)構(gòu)體中的偏移量。步驟606 創(chuàng)建參數(shù)的描述數(shù)據(jù),如參數(shù)、譯碼類型、結(jié)構(gòu)體內(nèi)偏移量(步驟605 計算得到)、參數(shù)數(shù)據(jù)長度。步驟607 循環(huán)步驟605、606直到完成所有參數(shù)的處理。步驟608 最后填寫純數(shù)據(jù)區(qū)。本發(fā)明提供的這種應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理系統(tǒng)、裝置及方法,可以 高效處理自描述通訊區(qū)結(jié)構(gòu),尤其適合主機(jī)核心聯(lián)機(jī)應(yīng)用系統(tǒng)中實現(xiàn)服務(wù)、構(gòu)件高效率調(diào) 用,其優(yōu)點具體表現(xiàn)在以下方面1、IFML處理裝置高性能設(shè)計本發(fā)明在主機(jī)服務(wù)、構(gòu)件入口部署的IFML處理裝置,在主機(jī)交易流程中被反復(fù)調(diào) 用,IFML處理裝置就必須滿足主機(jī)交易程序苛刻的性能要求,也就是必須保證解析的高效 率、低CPU資源消耗。高性能的報文處理通過如下設(shè)計實現(xiàn)1)內(nèi)存賦值級別的描述區(qū)解析結(jié)構(gòu)體描述區(qū)中對每個結(jié)構(gòu)體的描述都是固定數(shù)據(jù)結(jié)構(gòu)的(圖5-2),同樣具體參 數(shù)描述區(qū)對每個參數(shù)的描述也是固定結(jié)構(gòu)的(圖5-3),這樣通過包頭里面的結(jié)構(gòu)體數(shù)、參 數(shù)個數(shù),就可以把結(jié)構(gòu)體描述區(qū)、具體參數(shù)描述區(qū)直接賦值給格式化好的數(shù)組變量,實現(xiàn)內(nèi) 存變量賦值級別的描述區(qū)解析。2)對數(shù)據(jù)區(qū)的一次掃描解析、無需循環(huán)在結(jié)構(gòu)體描述區(qū)、參數(shù)描述區(qū)解析后,就可以對整個密排的數(shù)據(jù)區(qū)進(jìn)行1次掃描, 解析出所有數(shù)據(jù)。避免了 XML有效數(shù)據(jù)分散、解析CPU資源消耗大、效率低的缺點。3)最后一次性生成處理輸出、避免對數(shù)據(jù)的循環(huán)掃描由于松耦合的設(shè)計,調(diào)用方并不需要服務(wù)或構(gòu)件返回的所有數(shù)據(jù),在調(diào)用IFML解包程序的時候,調(diào)用方對需要提取的結(jié)構(gòu)體、變量名都按升序進(jìn)行了排序,而IFML組包程 序在組包的時候?qū)Y(jié)構(gòu)體描述區(qū)、參數(shù)描述區(qū)也按結(jié)構(gòu)體、參數(shù)名進(jìn)行了升序排序。這樣通 過一次掃描就完成最后結(jié)果的輸出,避免了對整個通訊區(qū)不停地進(jìn)行變量名匹配、循環(huán)。2、IFML處理裝置生成的報文長度可控通過大概測算和實際報文的實驗,結(jié)構(gòu)體描述區(qū)和參數(shù)描述區(qū)相加在長度上和數(shù)據(jù)區(qū)差不多,也就是說使用IFML處理裝置生成的IFML通訊區(qū)比傳統(tǒng)的主機(jī)程序通訊區(qū) COPYBOOK只增加1倍的長度。而金融行業(yè)的主機(jī)聯(lián)機(jī)程序通訊區(qū)都在幾K以下,增加1倍 通訊區(qū)長度和得到松耦合的好處相比是可以接受的,也在主機(jī)通訊的32K限制內(nèi)。以上所述的具體實施例,對本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳 細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實施例而已,并不用于限制本發(fā)明,凡 在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保 護(hù)范圍之內(nèi)。
權(quán)利要求
一種應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理系統(tǒng),該系統(tǒng)包括依次連接的渠道接入層(1)、網(wǎng)關(guān)(3)、交互控制層(4)和業(yè)務(wù)處理層(5),其中,渠道接入層(1)包含多個渠道接入終端及多個配置于該渠道接入終端的渠道接入終端服務(wù)器,交互控制層(4)包含多個應(yīng)用服務(wù)器,業(yè)務(wù)處理層(5)包含多個主機(jī)構(gòu)件,該渠道接入終端服務(wù)器將該渠道接入終端接收的數(shù)據(jù)通過網(wǎng)關(guān)(3)轉(zhuǎn)發(fā)給交互控制層(4)中對應(yīng)的應(yīng)用服務(wù)器,由該應(yīng)用服務(wù)器調(diào)用業(yè)務(wù)處理層(5)中對應(yīng)的主機(jī)構(gòu)件對該數(shù)據(jù)進(jìn)行處理,其特征在于在該渠道接入終端服務(wù)器、網(wǎng)關(guān)(3)、應(yīng)用服務(wù)器和主機(jī)構(gòu)件上均配置有金融報文語言處理裝置(2),該金融報文語言處理裝置(2)對渠道接入終端服務(wù)器與網(wǎng)關(guān)(3)、網(wǎng)關(guān)(3)與應(yīng)用服務(wù)器、應(yīng)用服務(wù)器與主機(jī)構(gòu)件之間的通訊數(shù)據(jù)包進(jìn)行處理和轉(zhuǎn)發(fā),實現(xiàn)金融報文語言的數(shù)據(jù)傳輸。
2.根據(jù)權(quán)利要求1所述的應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理系統(tǒng),其特征在于,該 金融報文語言是自描述的,包含包頭(100)、自描述區(qū)和數(shù)據(jù)區(qū)(400),其中,數(shù)據(jù)區(qū)(400) 是緊密排放的純業(yè)務(wù)數(shù)據(jù),包頭(100)和自描述區(qū)實現(xiàn)對數(shù)據(jù)區(qū)的詳細(xì)描述。
3.根據(jù)權(quán)利要求2所述的應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理系統(tǒng),其特征在于,該 自描述區(qū)采用兩層結(jié)構(gòu),包括結(jié)構(gòu)體描述區(qū)(200)和具體參數(shù)區(qū)(300),將具體的參數(shù)歸屬 到二維數(shù)組結(jié)構(gòu)里,實現(xiàn)用報文來表達(dá)數(shù)組數(shù)據(jù),并將通訊區(qū)記錄段看作是只有1個元素 的二維數(shù)組,進(jìn)而將單個的參數(shù)歸屬到某條通訊區(qū)記錄段之下。
4.根據(jù)權(quán)利要求2所述的應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理系統(tǒng),其特征在于,該 系統(tǒng)中金融報文語言自描述采用如下方案實現(xiàn)1)數(shù)據(jù)區(qū)(400)存放的實際的純通訊區(qū)數(shù)據(jù),數(shù)據(jù)與數(shù)據(jù)之間沒有任何間隔,是緊密 排放的;并使用結(jié)構(gòu)體描述區(qū)(200)、具體參數(shù)描述區(qū)(300)對數(shù)據(jù)區(qū)進(jìn)行自描述;2)包頭(100)包頭描述金融報文語言數(shù)據(jù)包中結(jié)構(gòu)體描述區(qū)(200)、具體參數(shù)描述區(qū) (300)、數(shù)據(jù)區(qū)(400)的大??;a)結(jié)構(gòu)體數(shù)(101):2字節(jié),表示數(shù)據(jù)中結(jié)構(gòu)體的個數(shù),也就是結(jié)構(gòu)體描述區(qū)(200)中 有多少個結(jié)構(gòu)體描述,決定了結(jié)構(gòu)體描述區(qū)(200)的大小;數(shù)據(jù)來源通訊區(qū)打包時由調(diào)用 方提供;b)記錄數(shù)(102):2字節(jié),表示具體參數(shù)的個數(shù),也就是具體參數(shù)描述區(qū)(300)中有多 少個參數(shù)描述,決定了具體參數(shù)描述區(qū)(300)的大小;數(shù)據(jù)來源通訊區(qū)打包的時候由調(diào)用 方提供;c)數(shù)據(jù)區(qū)數(shù)據(jù)長度(103):2字節(jié),表示數(shù)據(jù)區(qū)(400)的大?。粩?shù)據(jù)來源通訊區(qū)打包時 由調(diào)用方提供;3)結(jié)構(gòu)體描述區(qū)(1)對數(shù)據(jù)區(qū)進(jìn)行結(jié)構(gòu)描述,將數(shù)據(jù)區(qū)描述成若干個二維數(shù)組,其中 某個結(jié)構(gòu)體描述包括a)結(jié)構(gòu)體標(biāo)識(201):8字節(jié),表示該結(jié)構(gòu)體的名稱;數(shù)據(jù)來源通訊區(qū)打包時由調(diào)用 方提供,組包時結(jié)構(gòu)體描述區(qū)的數(shù)據(jù)是按結(jié)構(gòu)體標(biāo)識升序排列的;b)記錄數(shù)(202):2字節(jié),表示該結(jié)構(gòu)體對應(yīng)在數(shù)據(jù)區(qū)中有多少條記錄,記錄數(shù)等于1 代表單記錄的結(jié)構(gòu),記錄數(shù)大于1表示多記錄的結(jié)構(gòu);數(shù)據(jù)來源通訊區(qū)打包時由調(diào)用方提 供;c)參數(shù)區(qū)內(nèi)偏移量(203):2字節(jié),表示該結(jié)構(gòu)所屬參數(shù)在具體參數(shù)描述區(qū)(300)中的起始位置;數(shù)據(jù)來源通訊區(qū)打包程序根據(jù)之前結(jié)構(gòu)體參數(shù)個數(shù)之和計算得到;d)參數(shù)個數(shù)(204):2字節(jié),表示該結(jié)構(gòu)體在具體參數(shù)描述區(qū)(300)中的參數(shù)個數(shù);數(shù)據(jù)來源通訊區(qū)打包時由調(diào)用方提供;e)數(shù)據(jù)區(qū)內(nèi)偏移量(205):2字節(jié),表示該結(jié)構(gòu)體在數(shù)據(jù)區(qū)的起始位置;數(shù)據(jù)來源通 訊區(qū)打包程序根據(jù)之前的結(jié)構(gòu)體數(shù)據(jù)長度之和計算得到;f)結(jié)構(gòu)體數(shù)據(jù)長度(206):2字節(jié),表示該結(jié)構(gòu)體在數(shù)據(jù)區(qū)中的數(shù)據(jù)長度;數(shù)據(jù)來源 通訊區(qū)打包時由調(diào)用方提供;4)參數(shù)描述區(qū)(2)描述一個結(jié)構(gòu)體下面的具體參數(shù),其中某個具體的參數(shù)描述包括a)參數(shù)名(301):12字節(jié),具體某個參數(shù)的名字;數(shù)據(jù)來源通訊區(qū)打包的時候由調(diào)用 方提供,組包時參數(shù)描述區(qū)是按結(jié)構(gòu)體名、參數(shù)名升序排列的;b)譯碼類型(302)2字節(jié),表示該參數(shù)在網(wǎng)關(guān)上如何譯碼;數(shù)據(jù)來源通訊區(qū)打包時 由調(diào)用方提供;c)結(jié)構(gòu)體內(nèi)偏移量(303):2字節(jié),表示該參數(shù)在本結(jié)構(gòu)體內(nèi)的起始位置;數(shù)據(jù)來源 通訊區(qū)打包程序根據(jù)之前的參數(shù)數(shù)據(jù)長度之和計算得到;d)參數(shù)數(shù)據(jù)長度(304)2字節(jié),表示該參數(shù)的長度;數(shù)據(jù)來源通訊區(qū)打包時由調(diào)用 方提供。
5.根據(jù)權(quán)利要求1所述的應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理系統(tǒng),其特征在于,該 金融報文語言處理裝置(2)包括并行連接的金融報文語言組包模塊(20)和金融報文語言 解包模塊(30),其中該金融報文語言組包模塊(20)對接收的數(shù)據(jù)進(jìn)行組包處理,生成金融 報文語言數(shù)據(jù)包并輸出;該金融報文語言解包模塊(30)對接收的金融報文語言數(shù)據(jù)包進(jìn) 行解包處理,提取出金融報文語言數(shù)據(jù)包中的數(shù)據(jù)并輸出。
6.根據(jù)權(quán)利要求5所述的應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理系統(tǒng),其特征在于,該 金融報文語言組包模塊(20)包括依次連接的包頭生成模塊(21)、結(jié)構(gòu)體描述區(qū)生成模塊 (23)、參數(shù)描述區(qū)生成模塊(25)、增加數(shù)據(jù)區(qū)模塊(27)和組包返回信息處理模塊(28),以 及與包頭生成模塊(21)連接的包頭數(shù)據(jù)檢查模塊(22)、與結(jié)構(gòu)體描述區(qū)生成模塊(23)連 接的結(jié)構(gòu)體在參數(shù)區(qū)數(shù)據(jù)區(qū)偏移計算模塊(24)、與參數(shù)描述區(qū)生成模塊(25)連接的參數(shù) 在結(jié)構(gòu)體內(nèi)偏移計算模塊(26)。
7.根據(jù)權(quán)利要求6所述的應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理系統(tǒng),其特征在于,該 包頭生成模塊(21)讀取金融報文語言組包模塊(20)接收數(shù)據(jù)中的包頭數(shù)據(jù),生成金融報 文語言包頭(100),并加入到金融報文語言組包模塊(20)輸出的金融報文語言數(shù)據(jù)包中。
8.根據(jù)權(quán)利要求7所述的應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理系統(tǒng),其特征在于,在 生成金融報文語言包頭(100)前,該包頭生成模塊(21)調(diào)用包頭數(shù)據(jù)檢查模塊(22)對接 收數(shù)據(jù)中的包頭數(shù)據(jù)進(jìn)行檢查,包頭數(shù)據(jù)檢查模塊(22)對包頭數(shù)據(jù)進(jìn)行檢查包括以下3個 方面1)、檢查結(jié)構(gòu)體數(shù)是否超限;2)、檢查參數(shù)個數(shù)是否超限;以及3)、檢查數(shù)據(jù)區(qū)長度是否超限。
9.根據(jù)權(quán)利要求6所述的應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理系統(tǒng),其特征在于,該 結(jié)構(gòu)體描述區(qū)生成模塊(23)循環(huán)讀取金融報文語言組包模塊(20)接收數(shù)據(jù)中的結(jié)構(gòu)體描述數(shù)據(jù),得到結(jié)構(gòu)體標(biāo)識(201)、記錄數(shù)(202)、結(jié)構(gòu)體的參數(shù)個數(shù)(204)和結(jié)構(gòu)體數(shù)據(jù)長度 (206),并調(diào)用結(jié)構(gòu)體在參數(shù)區(qū)數(shù)據(jù)區(qū)偏移計算模塊(24)得到該結(jié)構(gòu)體在參數(shù)區(qū)內(nèi)偏移量 (203)和該結(jié)構(gòu)體在數(shù)據(jù)區(qū)內(nèi)偏移量(205),生成結(jié)構(gòu)體描述區(qū)(200),并將生成的結(jié)構(gòu)體 描述區(qū)(200)加入到金融報文語言組包模塊(20)輸出的金融報文語言數(shù)據(jù)包中。
10.根據(jù)權(quán)利要求9所述的應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理系統(tǒng),其特征在于,該 結(jié)構(gòu)體在參數(shù)區(qū)數(shù)據(jù)區(qū)偏移計算模塊(24)根據(jù)該結(jié)構(gòu)體的參數(shù)個數(shù)(204)之和計算出該 結(jié)構(gòu)體在參數(shù)區(qū)內(nèi)偏移量(203),根據(jù)該結(jié)構(gòu)體數(shù)據(jù)長度(206)之和計算出該結(jié)構(gòu)體在數(shù) 據(jù)區(qū)內(nèi)偏移量(205)。
11.根據(jù)權(quán)利要求6所述的應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理系統(tǒng),其特征在于,該 參數(shù)描述區(qū)生成模塊(25)循環(huán)讀取金融報文語言組包模塊(20)接收數(shù)據(jù)中的參數(shù)描述輸 入數(shù)據(jù),得到參數(shù)標(biāo)識(301)、譯碼類型(302)和參數(shù)數(shù)據(jù)長度(304),并調(diào)用參數(shù)在結(jié)構(gòu)體 內(nèi)偏移計算模塊(26),得到該參數(shù)在結(jié)構(gòu)體內(nèi)偏移量(303),生成參數(shù)描述區(qū)(300),并將 生成的參數(shù)描述區(qū)(300)加入到金融報文語言組包模塊(20)輸出的金融報文語言數(shù)據(jù)包 中。
12.根據(jù)權(quán)利要求11所述的應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理系統(tǒng),其特征在于, 該參數(shù)在結(jié)構(gòu)體內(nèi)偏移計算模塊(26)根據(jù)結(jié)構(gòu)體內(nèi)之前參數(shù)的參數(shù)數(shù)據(jù)長度(304)之和, 計算出該參數(shù)在結(jié)構(gòu)體內(nèi)偏移量(303)。
13.根據(jù)權(quán)利要求6所述的應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理系統(tǒng),其特征在于,該 增加數(shù)據(jù)區(qū)模塊(27)將數(shù)據(jù)區(qū)(400)加入到金融報文語言組包模塊(20)輸出的金融報文 語言數(shù)據(jù)包中。
14.根據(jù)權(quán)利要求6所述的應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理系統(tǒng),其特征在于,該 組包返回信息處理模塊(28)設(shè)置組包的返回碼和返回信息。
15.根據(jù)權(quán)利要求5所述的應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理系統(tǒng),其特征在于,該 金融報文語言解包模塊(30)包括依次連接的解包輸入數(shù)據(jù)格式化模塊(31)、結(jié)構(gòu)體數(shù)據(jù) 提取模塊(32)、參數(shù)數(shù)據(jù)提取模塊(33)、解包后通訊區(qū)生成模塊(34)和解包返回信息處理 模塊(35)。
16.根據(jù)權(quán)利要求15所述的應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理系統(tǒng),其特征在于, 該解包輸入數(shù)據(jù)格式化模塊(31)對金融報文語言數(shù)據(jù)包的包頭數(shù)據(jù)進(jìn)行檢查,看結(jié)構(gòu)體 數(shù)、參數(shù)個數(shù)、數(shù)據(jù)區(qū)長度是否超限;并用預(yù)先定義好的數(shù)組變量對輸入數(shù)據(jù)進(jìn)行直接格式 化。
17.根據(jù)權(quán)利要求16所述的應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理系統(tǒng),其特征在于, 該輸入數(shù)據(jù)包括金融報文語言報文、調(diào)用方需要提取的結(jié)構(gòu)體描述和調(diào)用方需要提取的 參數(shù)描述,該解包輸入數(shù)據(jù)格式化模塊(31)用預(yù)先定義好的數(shù)組變量對輸入數(shù)據(jù)進(jìn)行直 接格式化是將這三類數(shù)據(jù)直接賦值給到格式化好的數(shù)組變量中。
18.根據(jù)權(quán)利要求15所述的應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理系統(tǒng),其特征在于, 該結(jié)構(gòu)體數(shù)據(jù)提取模塊(32)根據(jù)輸入的結(jié)構(gòu)體名在結(jié)構(gòu)體描述區(qū)中搜索,如果有匹配到, 則調(diào)用參數(shù)數(shù)據(jù)提取模塊(33),如此循環(huán)一次,直到完成所有所有結(jié)構(gòu)體數(shù)據(jù)的提??;如 果沒有匹配到,則金融報文語言數(shù)據(jù)包中沒有解包方需要的結(jié)構(gòu)體數(shù)據(jù),調(diào)用解包返回信 息處理模塊(35)進(jìn)行錯誤處理退出。
19.根據(jù)權(quán)利要求15所述的應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理系統(tǒng),其特征在于, 該參數(shù)數(shù)據(jù)提取模塊(33)根據(jù)輸入的參數(shù)名在參數(shù)描述區(qū)中搜索,如果有匹配到,則通過 偏移量、數(shù)據(jù)長度直接從數(shù)據(jù)區(qū)提取到數(shù)據(jù);如果沒有匹配到,則金融報文語言數(shù)據(jù)包中沒 有該參數(shù),賦缺省值;如此循環(huán)一次,完成某結(jié)構(gòu)體下所有參數(shù)的提取。
20.根據(jù)權(quán)利要求15所述的應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理系統(tǒng),其特征在于, 該解包后通訊區(qū)生成模塊(34)在參數(shù)數(shù)據(jù)提取模塊(33)已經(jīng)得到參數(shù)的具體數(shù)值后,再 根據(jù)調(diào)用方輸入的結(jié)構(gòu)體、參數(shù)信息生成解包后的通訊區(qū)。
21.根據(jù)權(quán)利要求15所述的應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理系統(tǒng),其特征在于, 該解包返回信息處理模塊(35)設(shè)置解包的返回碼和返回信息。
22.根據(jù)權(quán)利要求1所述的應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理系統(tǒng),其特征在于,該渠道接入終端為終端渠道、自助終端、ATM終端、POS終端、網(wǎng)銀終端和電話銀行終端中的至少一種;該業(yè)務(wù)處理層(5)中的主機(jī)構(gòu)件采用主機(jī)程序傳統(tǒng)的COPYBOOK通訊區(qū)。
23.一種金融報文語言處理裝置,其特征在于,該處理裝置包括并行連接的金融報文語 言組包模塊(20)和金融報文語言解包模塊(30),其中該金融報文語言組包模塊(20)對接收的數(shù)據(jù)進(jìn)行組包處理,生成金融報文語言數(shù)據(jù) 包并輸出;該金融報文語言解包模塊(30)對接收的金融報文語言數(shù)據(jù)包進(jìn)行解包處理,提取出 金融報文語言數(shù)據(jù)包中的數(shù)據(jù)并輸出。
24.根據(jù)權(quán)利要求23所述的金融報文語言處理裝置,其特征在于,該金融報文語言組 包模塊(20)包括依次連接的包頭生成模塊(21)、結(jié)構(gòu)體描述區(qū)生成模塊(23)、參數(shù)描述區(qū) 生成模塊(25)、增加數(shù)據(jù)區(qū)模塊(27)和組包返回信息處理模塊(28),以及與包頭生成模塊 (21)連接的包頭數(shù)據(jù)檢查模塊(22)、與結(jié)構(gòu)體描述區(qū)生成模塊(23)連接的結(jié)構(gòu)體在參數(shù) 區(qū)數(shù)據(jù)區(qū)偏移計算模塊(24)、與參數(shù)描述區(qū)生成模塊(25)連接的參數(shù)在結(jié)構(gòu)體內(nèi)偏移計 算模塊(26),其中該包頭生成模塊(21)讀取金融報文語言組包模塊(20)接收數(shù)據(jù)中的包頭數(shù)據(jù),生成 金融報文語言包頭(100),并加入到金融報文語言組包模塊(20)輸出的金融報文語言數(shù)據(jù) 包中;在生成金融報文語言包頭(100)前,該包頭生成模塊(21)調(diào)用包頭數(shù)據(jù)檢查模塊(22) 對接收數(shù)據(jù)中的包頭數(shù)據(jù)進(jìn)行檢查,包頭數(shù)據(jù)檢查模塊(22)對包頭數(shù)據(jù)進(jìn)行檢查包括以 下3個方面檢查結(jié)構(gòu)體數(shù)是否超限;檢查參數(shù)個數(shù)是否超限;以及檢查數(shù)據(jù)區(qū)長度是否超 限;該結(jié)構(gòu)體描述區(qū)生成模塊(23)循環(huán)讀取金融報文語言組包模塊(20)接收數(shù)據(jù)中的結(jié) 構(gòu)體描述數(shù)據(jù),得到結(jié)構(gòu)體標(biāo)識(201)、記錄數(shù)(202)、結(jié)構(gòu)體的參數(shù)個數(shù)(204)和結(jié)構(gòu)體數(shù) 據(jù)長度(206),并調(diào)用結(jié)構(gòu)體在參數(shù)區(qū)數(shù)據(jù)區(qū)偏移計算模塊(24)得到該結(jié)構(gòu)體在參數(shù)區(qū)內(nèi) 偏移量(203)和該結(jié)構(gòu)體在數(shù)據(jù)區(qū)內(nèi)偏移量(205),生成結(jié)構(gòu)體描述區(qū)(200),并將生成的 結(jié)構(gòu)體描述區(qū)(200)加入到金融報文語言組包模塊(20)輸出的金融報文語言數(shù)據(jù)包中;該結(jié)構(gòu)體在參數(shù)區(qū)數(shù)據(jù)區(qū)偏移計算模塊(24)根據(jù)該結(jié)構(gòu)體的參數(shù)個數(shù)(204)之和計 算出該結(jié)構(gòu)體在參數(shù)區(qū)內(nèi)偏移量(203),根據(jù)該結(jié)構(gòu)體數(shù)據(jù)長度(206)之和計算出該結(jié)構(gòu)體在數(shù)據(jù)區(qū)內(nèi)偏移量(205);該參數(shù)描述區(qū)生成模塊(25)循環(huán)讀取金融報文語言組包模塊(20)接收數(shù)據(jù)中的參 數(shù)描述輸入數(shù)據(jù),得到參數(shù)標(biāo)識(301)、譯碼類型(302)和參數(shù)數(shù)據(jù)長度(304),并調(diào)用參 數(shù)在結(jié)構(gòu)體內(nèi)偏移計算模塊(26),得到該參數(shù)在結(jié)構(gòu)體內(nèi)偏移量(303),生成參數(shù)描述區(qū) (300),并將生成的參數(shù)描述區(qū)(300)加入到金融報文語言組包模塊(20)輸出的金融報文 語言數(shù)據(jù)包中;該參數(shù)在結(jié)構(gòu)體內(nèi)偏移計算模塊(26)根據(jù)結(jié)構(gòu)體內(nèi)之前參數(shù)的參數(shù)數(shù)據(jù)長度(304) 之和,計算出該參數(shù)在結(jié)構(gòu)體內(nèi)偏移量(303);該增加數(shù)據(jù)區(qū)模塊(27)將數(shù)據(jù)區(qū)(400)加入到金融報文語言組包模塊(20)輸出的金 融報文語言數(shù)據(jù)包中;該組包返回信息處理模塊(28)設(shè)置組包的返回碼和返回信息。
25.根據(jù)權(quán)利要求23所述的金融報文語言處理裝置,其特征在于,該金融報文語言解 包模塊(30)包括依次連接的解包輸入數(shù)據(jù)格式化模塊(31)、結(jié)構(gòu)體數(shù)據(jù)提取模塊(32)、參 數(shù)數(shù)據(jù)提取模塊(33)、解包后通訊區(qū)生成模塊(34)和解包返回信息處理模塊(35),其中該解包輸入數(shù)據(jù)格式化模塊(31)對金融報文語言數(shù)據(jù)包的包頭數(shù)據(jù)進(jìn)行檢查,看結(jié) 構(gòu)體數(shù)、參數(shù)個數(shù)、數(shù)據(jù)區(qū)長度是否超限;并用預(yù)先定義好的數(shù)組變量對輸入數(shù)據(jù)進(jìn)行直接 格式化;該輸入數(shù)據(jù)包括金融報文語言報文、調(diào)用方需要提取的結(jié)構(gòu)體描述和調(diào)用方需要提 取的參數(shù)描述,該解包輸入數(shù)據(jù)格式化模塊(31)用預(yù)先定義好的數(shù)組變量對輸入數(shù)據(jù)進(jìn) 行直接格式化是將這三類數(shù)據(jù)直接賦值給到格式化好的數(shù)組變量中;該結(jié)構(gòu)體數(shù)據(jù)提取模塊(32)根據(jù)輸入的結(jié)構(gòu)體名在結(jié)構(gòu)體描述區(qū)中搜索,如果有匹 配到,則調(diào)用參數(shù)數(shù)據(jù)提取模塊(33),如此循環(huán)一次,直到完成所有所有結(jié)構(gòu)體數(shù)據(jù)的提 ??;如果沒有匹配到,則金融報文語言數(shù)據(jù)包中沒有解包方需要的結(jié)構(gòu)體數(shù)據(jù),調(diào)用解包返 回信息處理模塊(35)進(jìn)行錯誤處理退出;該參數(shù)數(shù)據(jù)提取模塊(33)根據(jù)輸入的參數(shù)名在參數(shù)描述區(qū)中搜索,如果有匹配到,則 通過偏移量、數(shù)據(jù)長度直接從數(shù)據(jù)區(qū)提取到數(shù)據(jù);如果沒有匹配到,則金融報文語言數(shù)據(jù)包 中沒有該參數(shù),賦缺省值;如此循環(huán)一次,完成某結(jié)構(gòu)體下所有參數(shù)的提??;該解包后通訊區(qū)生成模塊(34)在參數(shù)數(shù)據(jù)提取模塊(33)已經(jīng)得到參數(shù)的具體數(shù)值 后,再根據(jù)調(diào)用方輸入的結(jié)構(gòu)體、參數(shù)信息生成解包后的通訊區(qū); 該解包返回信息處理模塊(35)設(shè)置解包的返回碼和返回信息。
26.一種應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理方法,應(yīng)用于包含有金融報文語言組包 模塊和金融報文語言解包模塊的金融報文語言處理裝置,其特征在于,該方法包括該金融報文語言組包模塊對接收的數(shù)據(jù)進(jìn)行組包處理,生成金融報文語言數(shù)據(jù)包并輸 出;以及該金融報文語言解包模塊對接收的金融報文語言數(shù)據(jù)包進(jìn)行解包處理,提取出金融報 文語言數(shù)據(jù)包中的數(shù)據(jù)并輸出。
27.根據(jù)權(quán)利要求26所述的應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理方法,其特征在于, 該金融報文語言組包模塊對接收的數(shù)據(jù)進(jìn)行組包處理,生成金融報文語言數(shù)據(jù)包并輸出, 包括步驟600 對輸入的包頭數(shù)據(jù)進(jìn)行檢查;步驟601 創(chuàng)建包頭信息,至少包括結(jié)構(gòu)體個數(shù)、參數(shù)個數(shù)、數(shù)據(jù)區(qū)長度;步驟602 計算結(jié)構(gòu)體所屬的參數(shù)在參數(shù)描述區(qū)中的偏移量和結(jié)構(gòu)體在數(shù)據(jù)區(qū)中的偏移量;步驟603:創(chuàng)建結(jié)構(gòu)體的描述數(shù)據(jù),至少包括結(jié)構(gòu)體標(biāo)識、記錄數(shù)、參數(shù)描述區(qū)中的偏移量、參數(shù)個數(shù)、數(shù)據(jù)區(qū)中的偏移量、結(jié)構(gòu)體數(shù)據(jù)長度;步驟604 重復(fù)步驟602、603,直到完成所有結(jié)構(gòu)體的描述,即完成結(jié)構(gòu)體描述區(qū)的創(chuàng)建;步驟605 計算參數(shù)在結(jié)構(gòu)體中的偏移量;步驟606:創(chuàng)建參數(shù)的描述數(shù)據(jù),至少包括參數(shù)、譯碼類型、結(jié)構(gòu)體中的偏移量、參數(shù)數(shù) 據(jù)長度;步驟607 循環(huán)步驟605、606直到完成所有參數(shù)的處理;步驟608:最后填寫純數(shù)據(jù)區(qū)。
28.根據(jù)權(quán)利要求26所述的應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理方法,其特征在于, 該金融報文語言解包模塊對接收的金融報文語言數(shù)據(jù)包進(jìn)行解包處理,提取出金融報文語 言數(shù)據(jù)包中的數(shù)據(jù)并輸出,包括步驟500 對解包輸入的數(shù)據(jù)進(jìn)行格式化; 步驟501 按結(jié)構(gòu)體名在結(jié)構(gòu)體描述區(qū)進(jìn)行掃描,搜索結(jié)構(gòu)體; 步驟502 對結(jié)構(gòu)體掃描結(jié)果進(jìn)行判斷,如果有匹配到,則執(zhí)行步驟503,進(jìn)行該結(jié)構(gòu)體 中具體參數(shù)掃描;如果沒有匹配到,則通訊區(qū)中沒有需要的結(jié)構(gòu)體數(shù)據(jù),轉(zhuǎn)到步驟508進(jìn)行 錯誤處理,并退出;步驟503 按參數(shù)名在參數(shù)描述區(qū)進(jìn)行掃描,搜索參數(shù);步驟504 對參數(shù)掃描結(jié)果進(jìn)行判斷,如果有匹配到,則通過偏移量、數(shù)據(jù)長度直接從 數(shù)據(jù)區(qū)提取到數(shù)據(jù);如果沒有匹配到,則通訊區(qū)中沒有該參數(shù),轉(zhuǎn)到步驟505賦缺省值; 步驟505 賦缺省值;步驟506 判斷是否完成某個結(jié)構(gòu)體中所有參數(shù)的查找; 步驟507 判斷是否完成所有結(jié)構(gòu)體的處理。
29.根據(jù)權(quán)利要求28所述的應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理方法,其特征在于, 步驟500中所述對解包輸入的數(shù)據(jù)進(jìn)行格式化包括對金融報文語言數(shù)據(jù)包包頭數(shù)據(jù)進(jìn)行檢查,看是否超限,并用內(nèi)存變量賦值的方式直 接對金融報文語言解包模塊的輸入進(jìn)行數(shù)據(jù)提取,將輸入數(shù)據(jù)串存放到格式化好的內(nèi)存變 量中,該輸入包括金融報文語言報文、調(diào)用方需要提取的結(jié)構(gòu)體描述、調(diào)用方需要提取的 參數(shù)描述。
30.根據(jù)權(quán)利要求28所述的應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理方法,其特征在于, 步驟505中所述賦缺省值,是實現(xiàn)開發(fā)規(guī)范中松耦合要求的對非必輸項的賦值。
全文摘要
本發(fā)明公開了一種應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理系統(tǒng),該系統(tǒng)包括依次連接的渠道接入層、網(wǎng)關(guān)、交互控制層和業(yè)務(wù)處理層,在該渠道接入終端服務(wù)器、網(wǎng)關(guān)、應(yīng)用服務(wù)器和主機(jī)構(gòu)件上均配置有金融報文語言處理裝置,該金融報文語言處理裝置對渠道接入終端服務(wù)器與網(wǎng)關(guān)、網(wǎng)關(guān)與應(yīng)用服務(wù)器、應(yīng)用服務(wù)器與主機(jī)構(gòu)件之間的通訊數(shù)據(jù)包進(jìn)行處理和轉(zhuǎn)發(fā),實現(xiàn)金融報文語言的數(shù)據(jù)傳輸。本發(fā)明同時公開了一種應(yīng)用于金融報文語言的數(shù)據(jù)傳輸處理裝置及方法。利用本發(fā)明,克服了現(xiàn)有XML報文語言及其解析器的技術(shù)缺點,具有高效組包解包、低CPU消耗等特點,兼顧了應(yīng)用程序服務(wù)構(gòu)件對接口松耦合和主機(jī)聯(lián)機(jī)核心應(yīng)用程序高性能的要求。
文檔編號H04L29/06GK101848148SQ20101015758
公開日2010年9月29日 申請日期2010年4月21日 優(yōu)先權(quán)日2010年4月21日
發(fā)明者劉映鎮(zhèn), 龐良, 李平, 梁禮方, 金增 申請人:中國工商銀行股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1