基於業務系統的通信口重定向和通信數據二次處理的方法與流程
2023-07-07 18:55:31 2

本發明涉及金融技術領域,尤其涉及一種通信口重定向和通信數據二次處理的方法。
背景技術:
目前國內各大銀行等金融機構通常採用第三方外圍設備進行日常業務辦理,使用串口、usb接口等常見的通信口進行數據交互。由於銀行業務系統更新迭代速度較慢,部分機構分區自治,第三方廠家切換頻繁,或者產品升級等情況,常常導致以下一些問題發生:
1)廠家切換,指令集不同,無法無縫接入現有業務系統;
2)外圍集成設備由於產品升級或廠家切換,需要切換為幾個獨立設備,原有業務系統的通信口只支持單一配置,無法支持多設備配置;
3)設備升級,由通訊較慢的串口通信轉換為速度較快的usb接口通訊,原有的業務系統只支持串口操作,無法支持usb接口操作;
4)處於安全考慮,在與外圍設備的通信過程需要進行密文通信,原有的業務系統只支持明文操作。
現有技術中公開了「一種串行埠重定向系統」,公開日為:2012.05.30,公開號為:cn202257551u的中國專利,該實用新型提供了一種串行埠重定向系統,包括:終端、網絡路由器/集線器及虛擬桌面,終端經網絡路由器/集線器與虛擬桌面建立數據通信連接;終端包括終端用於掃描、識別並且以文件的方式訪問終端上的串行埠,完成控制信息和數據信息的發送、接收和處理的串口控制器;虛擬桌面包括用於創建創建虛擬串口和相應的設備節點,建立終端到虛擬桌面的串行埠映射;截取應用程式和用戶對串口設備的i/o請求和操作,並重定向到終端處理,將終端返回的結果進行分析和處理的虛擬串口控制器。該發明在埠類型上有一定的局限性,且該發明所解決的問題與本專利申請並不相同,所採用的技術方案也不同。
技術實現要素:
本發明要解決的技術問題,在於提供一種基於業務系統的通信口重定向和通信數據二次處理的方法,解決了在業務應用軟體不升級時,通信口升級後(如串口向usb接口升級)或者集成設備向多個獨立設備切換後的設備訪問問題;通過數據的二次處理,解決了在引入新廠家外圍設備時,新廠家設備指令集與原有廠家不一致導致的業務應用軟體無法正常進行設備交互的問題;解決了在外設通訊安全要求升級時,數據的加解密問題。
本發明是這樣實現的:一種基於業務系統的通信口重定向和通信數據二次處理的方法,所述方法為:攔截業務系統對通信口的相關操作,所述相關操作包括打開通信埠、向通信埠寫入數據、從通信埠讀取數據、以及關閉通信口操作;在打開通信埠時,對通信口進行重定向,映射到其他通信埠;在向通信埠寫入數據時,對數據進行二次處理,即舊指令解析,並用新的的指令格式進行封裝,或者對數據進行加密然後下發;在向通信埠讀取數據時,同寫入數據一樣,進行二次處理,即指令拆解封裝,或者對數據進行解密;在關閉通信口操作時,對重定向的通信口佔用進行釋放。
進一步的,所述方法進一步具體為:將一插件注入到業務系統中,為後續的功能實現提供支持;
在插件中註冊全局鉤子,這樣在業務系統進程啟動時,會加載註冊全局鉤子的該插件,實現注入;
根據模塊名及函數名查找當前通信口打開、讀取、寫入、關閉操作的api在業務系統進程中的地址;
用插件中自定義的通信口新api地址替換系統進程模塊中原有的通信口api地址,並保留原有的通信口api地址信息,這樣當系統進程調用通信口相關api時,調用的是通信口新api。
進一步的,所述通信口進行重定向具體為:業務系統調用通信口新api進行打開通信口;
若通信方式不變,只是通信口變動,則在通信口新api實現裡只需修改通信口參數,並使用原有的通信口api進行調用,返回信息通過通信口新api返回;後續讀寫關閉操作均使用原有的通信口api操作即可;
若通信方式變化,則在通信口新api裡進行新通信方式打開,並將操作結果及返回信息通過通信口新api返回;後續讀寫關閉操作需進行同樣處理,即使用通信口新api進行操作。
進一步的,所述二次處理具體為:業務系統調用通信口新api進行數據寫入和讀取;
若進行指令轉義,則在數據寫入時,先將寫入數據進行舊指令解析,並用新指令進行封裝,再調用原有的通信口api進行寫入,並將操作結果及返回信息,通過通信口新api返回;
在數據讀取時,先通過調用原有的通信口api讀取,獲取的數據用新指令進行解析,並用舊指令進行封裝,將操作結果及返回信息,通過通信口新api返回;
若進行數據密文交互,則在數據寫入時,先將寫入數據進行加密,再調用原有的通信口api進行寫入,並將操作結果及返回信息,通過通信口新api返回;在數據讀取時,先通過調用原有的通信口api讀取,對獲取的數據進行解密,將操作結果及返回信息,通過通信口新api返回。
本發明具有如下優點:本發明基於通過通信口重定向,解決了在業務應用軟體不升級時,通信口升級後(如串口向u口升級)或者集成設備向多個獨立設備切換後的設備訪問問題;通過數據的二次處理,解決了在引入新廠家外圍設備時,新廠家設備指令集與原有廠家不一致導致的業務應用軟體無法正常進行設備交互的問題;解決了在外設通訊安全要求升級時,數據的加解密問題。
附圖說明
下面參照附圖結合實施例對本發明作進一步的說明。
圖1為本發明中插件注入的流程示意圖。
圖2為本發明通信口進行重定向的流程示意圖。
圖3為本發明向通信埠寫入數據的流程示意圖。
圖4為本發明通信埠讀取數據的流程示意圖。
具體實施方式
請參閱圖1至圖4所示,一種基於業務系統的通信口重定向和通信數據二次處理的方法,其特徵在於:所述方法為:攔截業務系統對通信口的相關操作,所述相關操作包括打開通信埠、向通信埠寫入數據、從通信埠讀取數據、以及關閉通信口操作;在打開通信埠時,對通信口進行重定向,映射到其他通信埠;在向通信埠寫入數據時,對數據進行二次處理,即舊指令解析,並用新的的指令格式進行封裝,或者對數據進行加密然後下發;在向通信埠讀取數據時,同寫入數據一樣,進行二次處理,即指令拆解封裝,或者對數據進行解密;在關閉通信口操作時,對重定向的通信口佔用進行釋放。
所述方法進一步具體為:將一插件注入到業務系統中,為後續的功能實現提供支持;
在插件中註冊全局鉤子,這樣在業務系統進程啟動時,會加載註冊全局鉤子的該插件,實現注入;
根據模塊名及函數名查找當前通信口打開、讀取、寫入、關閉操作的api在業務系統進程中的地址;
用插件中自定義的通信口新api(簡稱新api)地址替換系統進程模塊中原有的通信口api地址(簡稱舊api),並保留原有的通信口api地址信息,這樣當系統進程調用通信口相關api時,調用的是通信口新api。
所述通信口進行重定向具體為:業務系統調用通信口新api進行打開通信口;
若通信方式不變,只是通信口變動(如由串口2映射到串口3),則在通信口新api實現裡只需修改通信口參數,並使用原有的通信口api進行調用,返回信息通過通信口新api返回;後續讀寫關閉操作均使用原有的通信口api操作即可;
若通信方式變化(如由串口通信向hid通信變動),則在通信口新api裡進行新通信方式打開,並將操作結果及返回信息通過通信口新api返回;後續讀寫關閉操作需進行同樣處理,即使用通信口新api進行操作。
所述二次處理具體為:業務系統調用通信口新api進行數據寫入和讀取;
若進行指令轉義,則在數據寫入時,先將寫入數據進行舊指令解析,並用新指令進行封裝,再調用原有的通信口api進行寫入,並將操作結果及返回信息,通過通信口新api返回;
在數據讀取時,先通過調用原有的通信口api讀取,獲取的數據用新指令進行解析,並用舊指令進行封裝,將操作結果及返回信息,通過通信口新api返回;
若進行數據密文交互,則在數據寫入時,先將寫入數據進行加密,再調用原有的通信口api進行寫入,並將操作結果及返回信息,通過通信口新api返回;在數據讀取時,先通過調用原有的通信口api讀取,對獲取的數據進行解密,將操作結果及返回信息,通過通信口新api返回。
雖然以上描述了本發明的具體實施方式,但是熟悉本技術領域的技術人員應當理解,我們所描述的具體的實施例只是說明性的,而不是用於對本發明的範圍的限定,熟悉本領域的技術人員在依照本發明的精神所作的等效的修飾以及變化,都應當涵蓋在本發明的權利要求所保護的範圍內。