報文的轉換方法和報文的轉換裝置與流程
2023-05-02 16:08:28 2
1.本發明涉及數據處理領域,尤其涉及一種報文的轉換方法和報文的轉換裝置。
背景技術:
2.在金融系統中,使用報文的形式進行交互,被各金融系統廣泛使用的報文一般是基於銀行間市場業務數據交換(inter-bank market information exchange,imix)協議(以下有時簡稱為「imix協議」)的報文和基於金融信息交換(financial information exchange,fix)協議(以下有時簡稱為「fix協議」)的報文。
3.在接收到來自其他金融系統的報文時,如果該報文的協議與本金融系統的協議不匹配,通常需要對報文進行轉換才能查看。例如,將imix報文轉換為fix報文。
4.這種轉化工作通常是由人工完成,但是在轉換工作中,重複性地工作量較大,耗時較長,速度慢,並且,兩種報文的映射關係不直觀,並且由於兩種協議的欄位並非一一對應,導致有許多非對應的欄位存儲在通用欄位中,此外,不同機構發送的報文內的通用欄位存儲類型沒有標準,無法統一,復用率低,可維護性差。
5.本部分旨在為權利要求書中陳述的本發明實施例提供背景或上下文。此處的描述不因為包括在本部分中就承認是現有技術。
技術實現要素:
6.本發明實施例提供一種報文的轉換方法,通過將報文的欄位結構和報文之間的映射關係預先存儲起來,能夠提高轉換效率,並且提高維護性。所述轉換方法包括:根據第一報文協議的欄位結構提取接收到的第一報文的預定欄位的欄位值,所述第一報文遵循所述第一報文協議;根據第一報文協議的欄位結構到第二報文協議的欄位結構的映射關係,將所述第一報文的所述預定欄位映射到第二報文協議的欄位結構中的對應欄位;根據所述預定欄位的欄位值和所述預定欄位與所述第二報文協議的欄位結構中的欄位的對應關係生成第二報文,所述第二報文遵循所述第二報文協議。
7.本發明實施例提供一種報文的轉換裝置,通過將報文的欄位結構和報文之間的映射關係預先存儲起來,能夠提高轉換效率,並且提高維護性。所述轉換裝置包括:提取模塊,其根據第一報文協議的欄位結構提取接收到的第一報文的預定欄位的欄位值,所述第一報文遵循所述第一報文協議;映射模塊,其根據第一報文協議的欄位結構到第二報文協議的欄位結構的映射關係,將所述第一報文的所述預定欄位映射到第二報文協議的欄位結構中的對應欄位;生成模塊,其根據所述預定欄位的欄位值和所述預定欄位與所述第二報文協議的欄位結構中的欄位的對應關係生成第二報文,所述第二報文遵循所述第二報文協議。
8.本發明實施例還提供一種計算機設備,包括存儲器、處理器及存儲在存儲器上並可在處理器上運行的電腦程式,所述處理器執行所述電腦程式時實現上述轉換方法。
9.本發明實施例還提供一種計算機可讀存儲介質,所述計算機可讀存儲介質存儲有電腦程式,所述電腦程式被處理器執行時實現上述轉換方法。
10.本發明實施例還提供一種電腦程式產品,所述電腦程式產品包括電腦程式,所述電腦程式被處理器執行時實現上述轉換方法。
11.本發明實施例中,通過將報文的欄位結構和報文之間的映射關係預先存儲起來,能夠提高轉換效率,並且提高維護性。
附圖說明
12.為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。在附圖中:
13.圖1是本發明實施例的報文的轉換方法的一個示意圖。
14.圖2是本發明實施例的報文的轉換方法的另一個示意圖。
15.圖3是本發明實施例的報文的轉換方法的另一個示意圖。
16.圖4是本發明實施例的報文的轉換裝置的一個示意圖。
17.圖5是本發明實施例的計算機設備的一個示意圖。
具體實施方式
18.為使本發明實施例的目的、技術方案和優點更加清楚明白,下面結合附圖對本發明實施例做進一步詳細說明。在此,本發明的示意性實施例及其說明用於解釋本發明,但並不作為對本發明的限定。
19.本發明實施例提供一種報文的轉換方法,圖1是本發明實施例的報文的轉換方法的一個示意圖。如圖1所示,轉換方法100包括:
20.步驟101:根據第一報文協議的欄位結構提取接收到的第一報文的預定欄位的欄位值,所述第一報文遵循所述第一報文協議;
21.步驟103:根據第一報文協議的欄位結構到第二報文協議的欄位結構的映射關係,將所述第一報文的所述預定欄位映射到第二報文協議的欄位結構中的對應欄位;
22.步驟105:根據所述預定欄位的欄位值和所述預定欄位與所述第二報文協議的欄位結構中的欄位的對應關係生成第二報文,所述第二報文遵循所述第二報文協議。
23.由此,通過將報文的欄位結構和報文之間的映射關係預先存儲起來,能夠提高轉換效率,並且提高維護性。
24.在至少一個實施例中,所述第一報文協議的欄位結構、所述第二報文協議的欄位結構和所述映射關係預先配置為excel的配置文件。例如,利用excel模板對第一報文協議的欄位結構、第二報文協議的欄位結構和映射關係進行定義。
25.由此,通過excel直觀地配置映射結構並保留映射關係。
26.圖2是本發明實施例的報文的轉換方法的另一個示意圖。
27.在至少一個實施例中,如圖2所示,轉換方法200包括:
28.步驟201:讀取所述excel的配置文件。
29.例如,在步驟101之前,讀取配置有第一報文協議的欄位結構、第二報文協議的欄位結構和映射關係的excel配置文件,獲得第一報文協議的欄位結構、第二報文協議的欄位
結構和第一報文到第二報文的映射關係。
30.由此,能夠減少重複工作量,提高效率,並且通過excel保留了映射關係,便於後續維護,另外,能夠統一映射開發標準,減少標準不統一帶來的風險。
31.在至少一個實施例中,例如,所述第一報文協議為imix協議,所述第二報文協議為fix協議。
32.imix協議定義的標準的imix報文包括報文頭(header)、報文尾(trailer)和報文正文(body),其中,報文頭指明協議版本、報文類型、報文體長度、發送目的地、報文序號、發送起始點和發送時間等基礎信息;報文尾包含3位數的校驗和值並以此終止一條報文。報文頭和報文尾通常用於數據傳輸,不直接描述業務內容;報文正文由一系列域組成,用於描述特定業務內容。
33.fix協議對報文處理過程中的所有信息進行欄位定義,包括序號、欄位名、數據類型等,例如金融機構名稱的欄位定義為:序號31,欄位名sendercompid,數據類型string。fix報文分為報文頭和報文體,通過欄位名與欄位值一一對應的方式對報文頭和報文體進行解析。用於確定金融機構名稱的欄位為sendercompid和sendersubid,sendercompid的不同欄位值代表著不同的機構名稱,sendersub id的不同欄位值代表著不同的交易員,通過sendercompid和sendersubid這兩個欄位的欄位值,可以確定機構名稱。用於確定報文類型的欄位為msgtype,msgtype的不同欄位值都代表著不同的報文類型,通過msgtype的欄位值,可以確定報文類型,例如msgtype=1表示測試請求,msgtype=2表示重新發送請求等。
34.在至少一個實施例中,例如,在excel模板中列出標準的imix報文的所有欄位結構和fix報文的所有欄位結構,並且,按照fix報文的所有欄位結構從標準的imix報文的欄位結構中尋找對應的預定欄位,並將該對應關係存儲在excel中作為映射關係。
35.另外,第一報文協議和第二報文協議還可以是其他協議,例如,chix、webservice、socket等,本發明實施例對此不作限制。
36.在至少一個實施例中,如圖2所示,轉換方法200還可以包括:
37.步驟203:列印輸出生成的所述第二報文。例如,列印輸出完整的第二報文的映射代碼。
38.圖3是本發明實施例的報文的轉換方法的另一個示意圖。
39.在至少一個實施例中,如圖3所示,轉換方法300還可以包括:
40.步驟301:驗證提取出的所述第一報文的預定欄位是否能夠與所述第二報文協議的欄位結構中的欄位對應;
41.步驟303:在驗證結果為存在不能對應的欄位的情況下,輸出異常提示。
42.由此,能夠避免欄位對應錯誤導致輸出的映射代碼報錯。
43.在至少一個實施例中,如圖3所示,轉換方法300還可以包括:
44.步驟305:進行異常處理。例如,重新提取接收到的報文中的各欄位並再次進行映射,或者也可以將出現異常的報文列表輸出,從而方便操作人員單獨處理。
45.通過本發明實施例,通過將報文的欄位結構和報文之間的映射關係預先存儲起來,能夠提高轉換效率,並且提高維護性。
46.本發明實施例提供一種報文的轉換裝置,本發明實施例的轉換裝置解決問題的原理與上述轉換方法相似,因此該轉換裝置的實施可以參見上述轉換方法的實施,重複之處
不再贅述。
47.圖4是本發明實施例的報文的轉換裝置的一個示意圖。
48.如圖4所示,轉換裝置400包括提取模塊401、映射模塊402和生成模塊403。提取模塊401根據第一報文協議的欄位結構提取接收到的第一報文的預定欄位的欄位值,所述第一報文遵循所述第一報文協議;映射模塊402根據第一報文協議的欄位結構到第二報文協議的欄位結構的映射關係,將所述第一報文的所述預定欄位映射到第二報文協議的欄位結構中的對應欄位;生成模塊403根據所述預定欄位的欄位值和所述預定欄位與所述第二報文協議的欄位結構中的欄位的對應關係生成第二報文,所述第二報文遵循所述第二報文協議。
49.由此,通過將報文的欄位結構和報文之間的映射關係預先存儲起來,能夠提高轉換效率,並且提高維護性。
50.另外,生成模塊403可以通過調用各類代碼生成方法,將輸入的映射結構翻譯成具體的映射代碼。本發明實施例對代碼生成方法不作限制,可以根據實際需要進行選擇。
51.在至少一個實施例中,如圖4所示,轉換裝置400還可以包括列印模塊404,列印模塊404列印輸出生成的所述第二報文。
52.在至少一個實施例中,如圖4所示,轉換裝置還可以包括驗證模塊405和異常處理模塊406。驗證模塊405驗證提取出的所述第一報文的預定欄位是否能夠與所述第二報文協議的欄位結構中的欄位對應;異常處理模塊406在驗證結果為存在不能對應的欄位的情況下,輸出異常提示。
53.另外,異常處理模塊406還可以處理其他異常情況。本發明實施例對具體的處理方式不作限制,可以根據實際情況進行設置。例如,異常處理模塊406重新提取接收到的報文中的各欄位並再次進行映射,或者也可以將出現異常的報文列表輸出,從而方便操作人員單獨處理。
54.在至少一個實施例中,所述第一報文協議的欄位結構、所述第二報文協議的欄位結構和所述映射關係預先配置為excel的配置文件。
55.在至少一個實施例中,如圖4所示,轉換裝置400還可以包括讀取模塊407,讀取模塊407讀取所述excel的配置文件。例如,讀取模塊407負責從excel中提取報文映射結構並傳給提取模塊401、映射模塊402、生成模塊403等模塊。
56.在至少一個實施例中,所述第一報文協議為銀行間市場業務數據交換協議,所述第二報文協議為金融信息交換協議。
57.通過本發明實施例,通過將報文的欄位結構和報文之間的映射關係預先存儲起來,能夠提高轉換效率,並且提高維護性。
58.本發明實施例還提供一種計算機設備,圖5是本發明實施例的計算機設備的一個示意圖。如圖5所示,計算機設備500包括存儲器501和處理器502,存儲器501和處理器502相互耦合。存儲器501中存儲有可在處理器502上運行的電腦程式,處理器502執行所述電腦程式時實現上述轉換方法100、200、300。
59.本發明實施例還提供一種計算機可讀存儲介質,所述計算機可讀存儲介質存儲有電腦程式,所述電腦程式被處理器執行時實現上述轉換方法。
60.本發明實施例還提供一種電腦程式產品,所述電腦程式產品包括計算機程
序,所述電腦程式被處理器執行時實現上述轉換方法。
61.本發明實施例中,通過將報文的欄位結構和報文之間的映射關係預先存儲起來,能夠提高轉換效率,並且提高維護性。
62.本領域內的技術人員應明白,本發明的實施例可提供為方法、裝置、系統、或電腦程式產品。因此,本發明可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。而且,本發明可採用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限於磁碟存儲器、cd-rom、光學存儲器等)上實施的電腦程式產品的形式。
63.本發明是參照根據本發明實施例的方法、裝置、系統、和電腦程式產品的示意圖和/或流程圖和/或方框圖來描述的。應理解可由電腦程式指令實現示意圖和/或流程圖和/或方框圖中的每一步驟和/或操作和/或流程和/或方框、以及示意圖和/或流程圖和/或方框圖中的步驟和/或操作和/或流程和/或方框的結合。可提供這些電腦程式指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執行的指令產生用於實現在示意圖一個步驟或多個步驟和/或流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
64.這些電腦程式指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的製造品,該指令裝置實現在示意圖一個步驟或多個步驟和/或流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
65.這些電腦程式指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執行的指令提供用於實現在示意圖一個步驟或多個步驟和/或流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
66.以上所述的具體實施例,對本發明的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發明的具體實施例而已,並不用於限定本發明的保護範圍,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。