TWI658418B - 金融資訊交換(fix)協議的業務實現方法、裝置及系統 - Google Patents
金融資訊交換(fix)協議的業務實現方法、裝置及系統 Download PDFInfo
- Publication number
- TWI658418B TWI658418B TW105143948A TW105143948A TWI658418B TW I658418 B TWI658418 B TW I658418B TW 105143948 A TW105143948 A TW 105143948A TW 105143948 A TW105143948 A TW 105143948A TW I658418 B TWI658418 B TW I658418B
- Authority
- TW
- Taiwan
- Prior art keywords
- message
- fix
- business
- logic
- service
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 127
- 238000013515 script Methods 0.000 claims abstract description 109
- 230000008569 process Effects 0.000 claims abstract description 40
- 238000012545 processing Methods 0.000 claims abstract description 21
- 238000005538 encapsulation Methods 0.000 claims description 10
- 238000004806 packaging method and process Methods 0.000 claims 1
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000012795 verification Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000006854 communication Effects 0.000 description 4
- 239000000203 mixture Substances 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/06—Asset management; Financial planning or analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/12—Accounting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/06—Message adaptation to terminal or network requirements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/56—Unified messaging, e.g. interactions between e-mail, instant messaging or converged IP messaging [CPM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/327—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the session layer [OSI layer 5]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2212/00—Encapsulation of packets
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Development Economics (AREA)
- Economics (AREA)
- General Business, Economics & Management (AREA)
- Technology Law (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Game Theory and Decision Science (AREA)
- Human Resources & Organizations (AREA)
- Operations Research (AREA)
- Multimedia (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本發明公開了一種FIX(金融資訊交換)協議的業務實現方法、裝置及系統,關於互聯網技術領域,為解決業務平臺側部署FIX業務環境成本過高的問題而發明。本發明的方法包括:發送端將FIX報文封裝為FIX消息併發送給業務平臺;業務平臺接收發送端發送的FIX消息,FIX消息由不同類型的業務資料組成,業務資料為字符串形式;根據業務資料中的業務類型資訊在腳本列表中查找與FIX消息對應的業務腳本,腳本列表中保存有對應不同FIX協議版本的業務腳本,業務腳本包含業務邏輯;執行業務腳本,按照業務邏輯對業務資料進行處理。本發明主要應用於實現FIX協議會話層業務邏輯的過程中。
Description
本發明關於互聯網技術領域,尤其關於一種FIX協議的業務實現方法、裝置及系統。
金融資訊交換(Financial Information eXchange,簡稱FIX)協議是一種不受單一實體控制的開放消息標準,能夠被調整組建適應任何一個企業的商務需求,用於促進與安全交易相關的資訊交換。FIX協議最早用於支持美國國內的委託人間基於直接資訊流轉的證券交易,隨著時代的發展,FIX協議還進一步增加了衍生工具及其它產品的業務領域,包括集成投資、金融衍生產品及外匯交易等。
基於FIX協議標準,交易雙方可以直接進行交易,也可以通過第三方搭建的金融業務平臺(後續簡稱為業務平臺)進行交易。隨著金融市場的不斷開放,大量的小微機構不斷湧現,基於業務平臺的交易方式越來越受到這些機構的關注和青睞。
對於基於業務平臺的交易方式,機構方與業務平臺應當使用相同版本的FIX協議。目前,FIX協議版本已經從
FIX 1.0發展到FIX 5.0,其中,FIX 5.0版本協議又將早先版本中的會話層協議從應用層協議中分離出來,進一步產生了FIXT X.Y及FIX X.Y兩個協議版本。現有技術中,業務平臺無法要求或限制機構方使用的協議版本,為保證FIX協議的版本兼容,業務平臺就需要搭建所有協議版本的業務環境,並針對不同的協議版本單獨開發交易的業務邏輯。隨著FIX協議版本的不斷升級以及業務種類的持續增長,業務平臺側的環境部署成本將會越來越高。
本發明提供了一種FIX協議的業務實現方法、裝置及系統,能夠解決業務平臺側部署FIX業務環境成本過高的問題。
為解決上述問題,第一方面,本發明提供了一種FIX協議的業務實現方法,該方法包括:業務平臺接收發送端發送的FIX消息,FIX消息由不同類型的業務資料組成,業務資料為字符串形式;根據業務資料中的業務類型資訊在腳本列表中查找與FIX消息對應的業務腳本,腳本列表中保存有對應不同FIX協議版本的業務腳本,業務腳本包含業務邏輯;執行業務腳本,按照業務邏輯對業務資料進行處理。
第二方面,本發明還提供了一種FIX協議的業務實現方法,該方法包括:發送端將FIX報文封裝為FIX消息,FIX消息由不同
類型的業務資料組成,不包含對應具體FIX協議版本的業務邏輯,業務資料為字符串形式;將封裝後的FIX消息發送給業務平臺,以使得業務平臺根據包含業務邏輯的業務腳本對業務資料進行處理。
第三方面,本發明還提供了一種FIX協議的業務實現裝置,該裝置包括:接收單元,用於接收發送端發送的FIX消息,FIX消息由不同類型的業務資料組成,業務資料為字符串形式;查找單元,用於根據業務資料中的業務類型資訊在腳本列表中查找與FIX消息對應的業務腳本,腳本列表中保存有對應不同FIX協議版本的業務腳本,業務腳本包含業務邏輯;執行單元,用於執行業務腳本,按照業務邏輯對業務資料進行處理。
第四方面,本發明還提供了一種FIX協議的業務實現裝置,該裝置包括:處理單元,用於將FIX報文封裝為FIX消息,FIX消息由不同類型的業務資料組成,不包含對應具體FIX協議版本的業務邏輯,業務資料為字符串形式;發送單元,用於將封裝後的FIX消息發送給業務平臺,以使得業務平臺根據包含業務邏輯的業務腳本對業務資料進行處理。
第五方面,本發明還提供了一種FIX協議的業務實現系統,該系統包括業務平臺及發送端;
業務平臺包括上述第三方面的裝置;發送端包括上述第四方面的裝置。
借由上述方案,本發明提供的FIX協議的業務實現方法、裝置及系統,能夠對FIX報文進行上層抽象封裝,獲得僅保留業務資料但不包含具體業務邏輯的通用類FIX消息。通過從FIX報文中“剔除”具體業務邏輯的方式,弱化了FIX報文中業務的強類型特點,使得FIX消息能夠通用於任何一種版本的FIX協議。而對於業務邏輯而言,則採用業務腳本的形式獨立於FIX協議代碼進行配置,針對不同的FIX協議版本開發不同的業務腳本,利用腳本語言“動態配置”、“動態加載”的特點對FIX交易業務予以實現。與現有技術相比,本發明實現了業務邏輯與FIX協議代碼之間的徹底解耦,使得業務邏輯的實現不再依賴於協議代碼本身,因此業務平臺僅部署一種版本的FIX協議就可以實現所有FIX協議版本的交易業務,能夠大大降低FIX業務環境的部署成本。
上述說明僅是本發明技術特徵的概述,為了能夠更清楚瞭解本發明的技術手段,而可依照說明書的內容予以實施,並且為了讓本發明的上述和其它目的、特徵和優點能夠更明顯易懂,以下特舉本發明的具體實施方式。
71‧‧‧接收單元
72‧‧‧查找單元
73‧‧‧執行單元
74‧‧‧寫入單元
75‧‧‧判斷單元
76‧‧‧獲取單元
77‧‧‧添加單元
78‧‧‧選擇單元
79‧‧‧解析單元
710‧‧‧發送單元
91‧‧‧處理單元
92‧‧‧發送單元
101‧‧‧業務平臺
102‧‧‧發送端
通過閱讀下文優選實施方式的詳細描述,各種其他的優點和益處對於所屬技術領域中具有通常知識者將變得清
楚明瞭。圖式僅用於示出優選實施方式的目的,而並不認為是對本發明的限制。而且在整個圖式中,用相同的參考符號表示相同的部件。在圖式中:圖1示出了本發明實施例提供的第一種FIX協議的業務實現方法的流程圖;圖2示出了本發明實施例提供的第二種FIX協議的業務實現方法的流程圖;圖3示出了本發明實施例提供的第三種FIX協議的業務實現方法的流程圖;圖4示出了本發明實施例提供的對非標準FIX協議進行解析的方法流程圖;圖5示出了本發明實施例提供的第一種處理FIX消息的交互圖;圖6示出了本發明實施例提供的第二種處理FIX消息的交互圖;圖7示出了本發明實施例提供的第一種FIX協議的業務實現裝置的組成方塊圖;圖8示出了本發明實施例提供的第二種FIX協議的業務實現裝置的組成方塊圖;圖9示出了本發明實施例提供的第三種FIX協議的業務實現裝置的組成方塊圖;圖10示出了本發明實施例提供的FIX協議的業務實現系統的示意圖。
下面將參照圖式更詳細地描述本公開的示例性實施例。雖然圖式中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現本公開而不應被這裡闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,並且能夠將本公開的範圍完整的傳達給所屬技術領域中具有通常知識者。
本發明實施例公開了一種FIX協議的業務實現方法,如圖1所示,該方法包括:101、業務平臺接收發送端發送的FIX消息。
發送端一般為機構方,例如證券交易所、期貨交易所的客戶端等,發送端向業務平臺發送封裝好的FIX消息,該FIX消息的內容為字符串形式,關於不同類型的業務資料,例如交易金額、交易時間、買賣雙方ID、業務類型、消息長度等。實際應用中,現有FIX協議中的所有資料域(或稱為字段)均可作為本實施例中的業務資料使用,並且,在現有FIX協議允許的範圍內,交易雙方自定義的資料域也可以作為該業務資料使用,本實施例不對業務資料的種類和數量進行限制。
本步驟中接收的FIX消息是經過發送端進行上層抽象封裝後的消息,與現有實現方式不同的是,現有FIX報文中除了攜帶有各種資料域之外,還會攜帶有針對具體交易業務的業務邏輯,這些業務邏輯本質上是對各種資料域的約束控制資訊。例如對於業務“買進股票”而言,其具體
的約束控制資訊至少包括:確定買入對象(哪支股票)、判斷股票價格是否達到預設價位、買入幾手股票、如何發起買進操作等。由於FIX報文中的業務邏輯涵蓋了實現交易業務的具體約束控制條件,因此現有技術中的FIX報文被稱為是一種強類型的報文。與此同時,正是由於FIX報文中存在具體的業務邏輯,而受FIX協議版本差異影響,即使是同一個交易業務,不同FIX協議版本對應的業務邏輯也會有所不同,因此現有技術需要針對不同FIX協議版本單獨開發業務邏輯。而在本實施例中,業務邏輯被從FIX報文中解耦出去,以腳本語言的形式單獨配置在業務平臺側。對於FIX報文而言,發送端將其中的資料域(業務資料)抽象成一個通用的類,獲得字符串形式的業務資料。這種通用類型的業務資料可以適用於任何FIX協議版本。
102、業務平臺根據業務資料中的業務類型資訊在腳本列表中查找與FIX消息對應的業務腳本。
每一個業務腳本都記錄有一個對應具體FIX版本的具體業務邏輯,腳本列表是一種用於查找業務腳本的索引性文件,其中記錄有業務類型與業務腳本之間的映射關係。當接收到FIX消息後,業務平臺根據其中的業務類型資訊在腳本列表中查找對應的業務腳本,以實現相應的業務邏輯。
進一步的,考慮到同一個業務邏輯會存在對應不同FIX協議版本的業務腳本,為進行精確查找,業務平臺還
可以從業務資料中提取協議版本資訊,將協議版本資訊與業務類型資訊相結合查找業務腳本。與此對應的,腳本列表中應當增加一個維度資訊,即協議版本資訊,從而記錄業務類型、協議版本以及業務腳本三者之間的映射關係。
本實施例中,需要開發人員預先編寫各種業務腳本,業務平臺可以允許開發人員針對某個版本的FIX協議開發對應各種業務邏輯的不同業務腳本,也可以允許開發人員針對某個具體的業務邏輯開發對應各個FIX協議版本的不同業務腳本。實際應用中,為實現業務邏輯的按需定制,業務平臺還可以向機構方開放用於開發業務腳本的應用應用程式介面(Application Programming Interface,簡稱API),以接收機構方開發的業務腳本。
需要說明的是,腳本語言是一種輕量化的動態語言,開發腳本語言所消耗的時間成本及電腦資源遠遠小於在FIX協議代碼中開發業務邏輯的消耗。因此相對現有技術而言,本實施例除了可以減少部署協議版本數量以外,還能夠通過配置腳本語言的方式進一步降低FIX協議的部署成本。
103、業務平臺執行業務腳本,按照業務邏輯對業務資料進行處理。
通常情況下,業務腳本可以保存在資料庫服務器中,當在資料庫中查找到需要的業務腳本後,業務平臺將其放入到快取中,通過刷新快取的方式對業務腳本進行動態加載。
通常,業務邏輯的實現會使用到不同的業務資料,例如在商品交易過程中,至少需要買賣方ID、商品ID、商品價格等業務資料。選擇何種業務資料做何種方式的處理,這是由業務腳本中的業務邏輯決定,或者說是由業務邏輯中的約束控制資訊決定,本實施例不對執行業務腳本使用的業務資料的種類和數量進行限制。
實際應用中,某些交易業務是在業務平臺側完成的,而有些交易業務則需要通過業務平臺傳遞給作為接收端的機構方進行實現(例如議價)。對於後者情況,業務平臺在執行完步驟103之後還需要將處理後的FIX消息發送給接收端。
進一步的,本發明實施例還公開了一種FIX協議的業務實現方法,如圖2所示,該方法包括:201、發送端將FIX報文封裝為FIX消息。
圖2所示方法主要應用於發送端一側,將傳統的FIX報文進行上層抽象封裝,獲得一個通用類的FIX消息。由於FIX消息中只包含字符串形式的業務資料,而不包含對應具體FIX協議版本的業務邏輯,因此該FIX消息可以通用於任何版本的FIX協議。
同時,業務邏輯被寫入到提前開發的業務腳本中,並配置到業務平臺側,以使得業務平臺根據包含業務邏輯的業務腳本對業務資料進行處理。
202、發送端將封裝後的FIX消息發送給業務平臺。
本發明實施例提供的方法,能夠將FIX報文中的業務
邏輯解耦到業務平臺側的業務腳本中實現。由於業務邏輯中的約束控制資訊在形式和內容上,因FIX協議版本的不同而有所差異,因此當FIX消息中剩餘有通用類型的業務資料而不再包含具體的業務邏輯時,FIX消息就不會再受FIX協議版本的限制,可以適用於任何版本的FIX協議中。相對現有技術而言,本實施例能夠提高FIX協議版本的兼容性減少部署的FIX協議版本數量,並由此降低FIX業務環境的部署成本。
進一步的,作為對上述圖1和圖2所示方法的細化,本發明實施例還提供了一種FIX協議的業務實現方法,如圖3所示,該方法包括:
301、發送端將FIX報文封裝為FIX消息。
發送端將FIX報文封裝成通用類的FIX消息。具體的,發送端從FIX報文的報文頭及報文體中提取字符串,組裝成通用類的FIX消息。發送端根據預設的報文頭長度截取報文頭,然後根據報文頭內容解析出報文體長度,並根據報文體長度截取報文體的字符串,最後將截取的字符串組裝成FIX消息。
實際應用中,發送端可以但不限於將FIX報文封裝為Message類FIX消息。
302、發送端將封裝後的FIX消息發送給業務平臺。
根據現有的FIX協議規定,FIX報文的收發雙方應當在一個會話(Session)中進行通訊。在建立好會話後,發送端調用已有的發送方法將FIX消息發送給業務平臺,例
如使用靜態方法sendToTarget進行發送。
303、業務平臺根據業務資料中的業務類型資訊在腳本列表中查找與FIX消息對應的業務腳本。
如前所述,消息收發雙方需要基於同一個會話進行通訊。發送端在發送FIX消息的同時還會將本次會話的會話ID一同進行發送,由業務平臺根據該會話ID在會話列表中找出對應的會話,然後在該會話中進行後續流程。
現有技術中FIX報文中的業務資料是以資料域的形式存在的,即以鍵值對的形式存在。本實施例中的業務資料同樣是以鍵值對的形式存在,下表示出了FIX協議規定的部分鍵值對(Tag-Value):
發送端在對FIX消息進行解析後,獲得其攜帶的業務資料。其中,一個鍵值對對應一個類型的業務資料。
在解析出鍵值對後,業務平臺查找業務類型的鍵值對,從中獲取交易業務的業務類型資訊,然後根據該業務類型資訊在腳本列表中查找與FIX消息對應的業務腳本。
進一步的,由於業務平臺關於交易業務眾多,為避免重複或混淆,業務平臺還可以結合發送者ID、消息類型(應用層消息或會話層消息)甚至會話ID一同查找業務腳本。
304、業務平臺執行業務腳本,按照業務邏輯對業務資料進行處理。
業務平臺將查找到的業務腳本放入快取,通過刷新快取的方式加載業務腳本,實現相應的業務邏輯。
實際應用中,FIX協議關於的業務邏輯可以分為兩大類:一類是針對具體交易對象/具體交易場景的特定業務邏輯,這類業務邏輯在不同交易對象或不同交易場景中的通用性較差,需要針對具體情況單獨開發,包括但不限於是報文內容解析(關於不同的解析規則)、報文字段校驗(是否非空、金額格式、金額大小等)、報文字段轉換(日期格式轉換、金額格式轉換、幣種標識轉換等)、簽名驗簽、返回碼轉換、冪等控制、流量控制等。
另一類是所有機構方均可以使用的業務邏輯,這一類業務邏輯主要用於建立、保障、註銷通訊雙方之間的底層通訊過程,當然也包括較為通用的交易業務的業務邏輯,
其適用於任何業務類型的業務邏輯。較為典型的業務邏輯包括會話層的心跳管理、網路測試、消息重傳、消息駁回、序號複位、註銷、登錄驗證等,以及應用層的撤單請求、駁回撤單、執行報告、狀態請求、狀態檢查、下新單等。
對於特定的業務邏輯,將其以業務腳本的形式配置到業務平臺,通過執行步驟304予以實現。而對於通用的業務邏輯而言,則無需針對不同的機構方重複配置業務腳本,在開發FIX業務環境時,直接將通用業務邏輯寫入業務平臺側的協議代碼中。通過後續步驟305至步驟307進行實現。由於通用業務邏輯適用於所有的業務類型,使用過程中無需修改,因此不會增加FIX業務環境的維護成本。
305、業務平臺根據業務資料中的消息類型資訊判斷FIX消息的消息類型。
業務平臺根據Key為“MsgType”的鍵值對獲得FIX消息的消息類型,該消息類型包括“應用層消息”及“會話層消息”兩種。針對不同的消息類型,業務平臺選擇執行後續步驟306或步驟307。
306、若消息類型為應用層消息,則業務平台調用應用層方法執行應用層的通用業務邏輯。
業務平台調用Application類中的toApp方法或fromApp方法執行應用層的通用業務邏輯。toApp方法或fromApp方法的區別在於,如果是對待發送給接收端的
FIX消息進行處理,則調用toApp方法,如果是對接收到的FIX消息進行處理,則調用fromApp方法。
307、若消息類型為會話層消息,則業務平台調用會話層方法執行會話層的通用業務邏輯。
業務平台調用Application類中的toAdmin方法或fromAdmin方法執行應用層的通用業務邏輯。toAdmin方法或fromAdmin方法的區別在於,如果是對待發送給接收端的FIX消息進行處理,則調用toAdmin方法,如果是對接收到的FIX消息進行處理,則調用fromAdmin方法。
實際應用中,發送和接收FIX消息的會話序號是各自分別維護的,管理待發送和已接收消息的消息隊列也是相互獨立的,因此業務平臺可以根據FIX消息的會話序號選擇調用toApp/toAdmin還是fromApp/fromAdmin。
本實施例將步驟305至步驟307置於步驟304之後僅為便於表述,實際應用中業務平臺在接收到FIX消息後,也可以首先執行步驟305至步驟307然後再執行步驟303至步驟304,或者,同時執行步驟305至步驟307以及步驟303至步驟304。
在本實施例的一種實現方式中,可以將字段校驗、基於會話序號的漏傳校驗等通用的校驗業務寫入到FIX協議代碼中,通過會話層方法的調用予以實現。
進一步的,業務平臺還可以將下述幾種新的通用業務邏輯寫入到FIX協議代碼中,通過會話層方法執行:
現有FIX協議標準中存在序號保護機制,消息發送方會在發送的消息中添加一個會話序號,對於消息接收方而言,如果當前接收消息的序號與前一個接收消息的序號不連續,則說明兩消息之間存在漏傳的消息,需要觸發消息重傳機制。而如果序號連續,則發送方再次發送消息時會將上一個消息的序號加1,作為下一個消息的會話序號使用。
由此可見,隨著通訊過程的不斷深入,通訊雙方使用的會話序號將不斷遞增,當會話序號的數值超過系統或資料庫支持的最大上限時,系統因無法識別該會話序號而容易出現錯誤重傳等問題。為防止會話序號超過系統上限,本實施例給出了一種重置序號的通用業務邏輯並通過會話層方法予以實現。具體的,業務平臺根據系統支持的最大上限值設定一個預設的序號最大值,通常該序號最大值小於系統的最大上限值,實際應用中可以將序號最大值設定為系統最大上限值的70%到95%。例如當系統最大上限值為99萬時,可以將序號最大值設置為90萬。
在執行重置序號邏輯時,業務平臺判斷當前消息的會話序號是否到達預設的序號最大值。如果到達序號最大值則會話序號重置為0,以使得後續從0開始繼續累加;如果未到達序號最大值則不作任何處理。
本實施例中,通過會話層的重置序號邏輯可以防止消息的會話序號超出系統或資料庫支持的最大上限,能夠有
效避免因會話序號溢出導致的系統異常。
當對會話序號進行重置時,可能因為機構方不受理,或者系統自身的異常原因導致重置失敗,此時為避免會話序號超出系統或資料庫支持的最大上限值,業務平臺可以通過會話層方法實現拒絕交易邏輯,拒絕對當前的FIX消息進行處理,由此消除會話序號進一步累加的可能性。
在現有FIX協議的重傳機制中,如果會話序號不連續,則會將當前消息放在一個消息隊列中進行快取,並通知發送端重新發送漏傳序號對應的消息。此時發送端後續發送的當前消息之後的所有消息都需要快取在消息隊列中,因此消息隊列存在記憶體溢出風險。本實施例中,業務平臺可以通過清除隊列邏輯對消息隊列的大小進行監控,若消息隊列佔用的快取超過預設的快取閾值,則清除消息隊列中快取的FIX消息,以保證系統的穩定高可用。實際應用中,快取閾值可以根據系統的記憶體大小按照比例設置,本實施例對其具體數值不作限制。
進一步的,在本實施例中,當機構方新增FIX業務時,業務平臺還可以獲取包含新增FIX業務邏輯的業務腳本,並將獲取的業務腳本添加到腳本列表中,由此完成新增業務邏輯的添加。本實施例將業務邏輯以腳本語言的形
式配置在業務平臺側,當需要新增業務邏輯時,只需要將新開發的業務腳本配置在業務平臺側即可,無需對FIX協議代碼進行修改。與現有技術相比,大大提高了增加業務邏輯的靈活性和便捷性,更加便於機構方自定義個性化的交易業務。
與此類似的,當需要從業務平臺中刪除某些業務邏輯時,只需要更加業務類型查找到對應的業務腳本,然後將該業務腳本從腳本列表中刪除即可,同樣無需改動FIX協議代碼,使用起來方便靈活。
進一步的,考慮到實際應用中,部分機構方因不願頻繁重置會話序號等原因並未使用標準的FIX協議報文進行通訊。對於使用非標準FIX協議報文的機構方,為保證其交易業務的實現,本實施例中業務平臺還可以針對不同非FIX協議報文的封裝規則預先開發不同的報文解析器,當接收到非FIX協議報文時,業務平臺根據其封裝規則選擇對應的報文解析器,並通過報文解析器對非FIX協議報文的資料流進行解析,獲得業務資料。
實際應用中,證券公司的資產查詢交易就是使用非標準FIX協議報文實現的,採用非標準FIX協議主要是考慮到降低序號的增長速度,因為使用者查詢資產的頻率會明顯高於交易的頻率,因此資產查詢必然會導致會話序號的快速增長,從而導致頻繁重置的情況發生。對於非標準FIX協議報文,由於其封裝規則與通用類FIX消息的封裝規則不同,因此使用通用的解析手段並不能將底層的二進
制資料流解析正確解析為字符串形式的資料。本實施例中,通過定制開發的報文解析器可以實現非標準FIX協議報文的正確解析,從而保證業務邏輯的實現。具體的,通過報文解析器解析非標準FIX協議報文的流程如圖4所示:
401、按照約定好的報文頭長度截取報文頭。
業務平臺按照封裝規則中規定的報文頭長度,從非標準FIX協議報文的資料流中截取報文頭。該報文頭長度可以由業務平臺預先與機構方(發送端)約定獲得。
402、根據報文頭獲得報文類型以及報文體長度資訊。
獲得報文頭後,就可以從中獲得報文類型、報文體長度等字段資訊。業務平臺根據報文體長度資訊執行步驟403,截取報文體。
403、根據報文體長度截取報文體。
在截取報文體的過程中,業務平臺需要多次判斷截取的報文體是否足夠長,即截取的報文體是否達到報文體長度。如果達到該長度則停止截取,否則繼續讀取資料流直至達到報文體長度或資料流讀取完畢。
404、組裝報文頭及報文體,以字符串形式返回給上層。
在對對應報文頭、報文體的資料流進行截取後,將資料流組裝成字符串形式的資料,並返回給上層。由上層將字符串拆分成一個個鍵值對,在進行字段校驗後完成業務
資料的提取。
進一步的,在本實施例的另一種實現方式中,業務平臺在對接收的FIX消息進行處理後,還可以將處理後的FIX消息發送給接收端。通常,除了能夠在業務平臺側實現的交易業務外,還有一部分交易業務需要基於機構雙方共同完成,例如價格詢盤/還盤等。這種情況下,業務平臺需要將一方機構(發送端)發送的FIX消息進行處理後,發送給另一方機構(接收端)。本發明實施例後續將分別針對平臺接收消息及發送消息兩個過程,對FIX業務的實現過程進行介紹。
進一步的,在本實施例的最後一種實現方式中,業務平臺還可以採用分布式網絡架構,通過多個計算節點對接收的FIX消息進行分布式處理,其中,每個計算節點處理至少一個會話的FIX消息。在會話初始階段,可以以會話ID為依據,通過哈希算法對會話進行負載均衡,以使得每個計算節點負責數量相同或近似相同的會話。當新增會話時,可以選擇會話數量最少的計算節點進行分配,也可以在會話數量相同的情況下,為最近進行過會話註銷的計算節點分配新增會話,本實施例不對分布式結構中的計算節點數量、會話分配方式以及節點上負載的會話數量進行具體限制。
在上述實現方式中,採用分布式網絡結構除了可以提高計算效率、減輕單台計算節點負荷之外,還可以使每個計算節點獨立管理各自的會話序號,從而支持會話序號的
橫向擴展,由此解決序號順序發送帶來的性能瓶頸。
下面給出本發明實施例的兩種應用場景:
第一,業務平臺向外部發送FIX消息
本場景中,業務平臺接收發送端發送的FIX消息,對FIX消息進行處理後發送給接收端。具體的,如圖5所示,該場景流程包括:
1、發送端封裝FIX消息,並調用靜態方法SendToTarget將FIX消息發送給業務平臺。
2、業務平臺根據消息中攜帶的會話ID查找對應的會話。
3、業務平臺根據消息中攜帶的業務類型資訊查找並執行對應的groovy腳本。
通過groovy腳本對FIX消息進行處理,實現腳本中的業務邏輯。
4、業務平臺根據消息中攜帶的消息類型資訊判斷FIX消息的類型。
若為會話層消息,則調用會話層的toAdmin方法對FIX協議進行處理,實現會話層的通用業務邏輯;
若為應用層消息,則調用應用層的toApp方法對FIX協議進行處理,實現應用層的通用業務邏輯。
5、業務平台調用對象IoSessionResponder將處理後的FIX消息發送給接收端。
對象IoSessionResponder對象是由InitiatorIOHandler初始化得到的。
6、業務平臺與發送端將自身保存的會話序號加1。
第二,業務平臺接收外部發送的FIX消息
本場景中,業務平臺接收發送端發送的FIX消息,並對FIX消息進行處理。具體的,如圖6所示,該場景流程包括:
1、業務平臺通過對象InitiatorIoHandler對發送端的socket套接字進行異步非阻塞式監聽。
2、當接收到發送端發送的FIX消息時,業務平台調用類EventHandlingStrategy將消息加入到消息隊列blockingQueue中。
3、業務平台調用類EventHandlingStrategy重複性的從blockingQueue中讀取FIX消息。
4、業務平臺根據消息中攜帶的會話ID查找對應的會話。
5、業務平臺檢查會話序號是否連續。
如果會話序號連續則執行後續步驟,否則要求發送端重新發送正常序號範圍內的FIX消息。
6、業務平臺根據消息中攜帶的業務類型資訊查找並執行對應的groovy腳本。
通過groovy腳本對FIX消息進行處理,實現腳本中的業務邏輯。
7、業務平臺根據消息中攜帶的消息類型資訊判斷FIX消息的類型。
若為會話層消息,則調用會話層的fromAdmin方法對
FIX協議進行處理,實現會話層的通用業務邏輯;若為應用層消息,則調用應用層的fromApp方法對FIX協議進行處理,實現應用層的通用業務邏輯。
8、業務平臺與發送端將自身保存的會話序號加1。
在上述場景中,業務腳本採用groovy語言開發。
groovy是一種基於Java虛擬機的敏捷動態語言,可以無縫集成所有已經存在的Java對象和類庫,採用groovy語言結合java環境進行開發更為方便。實際應用中,業務腳本還可以但不限於使用JPython、JRuby等同樣基於Java虛擬機的語言進行實現,本實施例對此不作限制。
進一步的,作為對上述圖1及圖3所示方法的實現,本發明實施例還提供了一種FIX協議的業務實現裝置。該裝置主要位於業務平臺側,如圖7所示,該裝置包括:接收單元71、查找單元72以及執行單元73;其中,接收單元71,用於接收發送端發送的FIX消息,FIX消息由不同類型的業務資料組成,業務資料為字符串形式;查找單元72,用於根據業務資料中的業務類型資訊在腳本列表中查找與FIX消息對應的業務腳本,腳本列表中保存有對應不同FIX協議版本的業務腳本,業務腳本包含業務邏輯;執行單元73,用於執行業務腳本,按照業務邏輯對業務資料進行處理。
進一步的,接收單元71接收的FIX消息為封裝成通
用類的FIX消息。
進一步的,如圖8所示,該裝置還包括:寫入單元74,用於將通用業務邏輯寫入業務平臺側的協議代碼中,通用業務邏輯為適用於任何業務類型的業務邏輯。
進一步的,如圖8所示,該裝置還包括判斷單元75,用於在接收發送端發送的FIX消息之後,根據業務資料中的消息類型資訊判斷FIX消息的消息類型;執行單元73,用於當消息類型為應用層消息時,調用應用層方法執行應用層的通用業務邏輯;執行單元73還用於當消息類型為會話層消息時,調用會話層方法執行會話層的通用業務邏輯。
進一步的,執行單元73用於:當通用業務邏輯為會話層的重置序號邏輯時,若會話序號到達預設的序號最大值,則將會話序號重置為0;當通用業務邏輯為會話層的拒絕交易邏輯時,若會話序號重置失敗,則拒絕處理FIX消息;當通用業務邏輯為會話層的清除隊列邏輯時,若消息隊列佔用的快取超過預設的快取閾值,則清除消息隊列中快取的FIX消息。
進一步的,如圖8所示,該裝置還包括:獲取單元76,用於當新增FIX業務時,獲取包含新增FIX業務邏輯的業務腳本;添加單元77,用於將獲取的業務腳本添加到腳本列
表中。
進一步的,如圖8所示,該裝置還包括:選擇單元78,用於當接收到非FIX協議報文時,根據非FIX協議報文的封裝規則選擇報文解析器;解析單元79,用於通過報文解析器對非FIX協議報文的資料流進行解析,獲得業務資料。
進一步的,如圖8所示,該裝置還包括:發送單元710,用於將處理後的FIX消息發送給接收端。
進一步的,該裝置用於通過多個計算節點對接收的FIX消息進行分布式處理,其中,每個計算節點處理至少一個會話的FIX消息。
進一步的,作為對上述圖2及圖3所示方法的實現,本發明實施例還提供了一種FIX協議的業務實現裝置。該裝置主要位於發送端側,如圖9所示,該裝置包括:處理單元91及發送單元92;其中,處理單元91,用於將FIX報文封裝為FIX消息,FIX消息由不同類型的業務資料組成,不包含對應具體FIX協議版本的業務邏輯,業務資料為字符串形式;發送單元92,用於將封裝後的FIX消息發送給業務平臺,以使得業務平臺根據包含業務邏輯的業務腳本對業務資料進行處理。
進一步的,處理單元91用於將FIX報文封裝成通用類的FIX消息。
進一步的,處理單元91用於從FIX報文的報文頭及報文體中提取字符串,組裝成通用類的FIX消息。
進一步的,作為對上述圖3所示方法的實現,本發明實施例還提供了一種FIX協議的業務實現系統。如圖10所示,該系統包括業務平臺101及發送端102,其中:業務平臺101包括如圖7或圖8所示的裝置;發送端102包括如圖9所示的裝置。
本發明實施例提供的FIX協議的業務實現裝置及系統,能夠對FIX報文進行上層抽象封裝,獲得僅保留業務資料但不包含具體業務邏輯的通用類FIX消息。通過從FIX報文中“剔除”具體業務邏輯的方式,弱化了FIX報文中業務的強類型特點,使得FIX消息能夠通用於任何一種版本的FIX協議。而對於業務邏輯而言,則採用業務腳本的形式獨立於FIX協議代碼進行配置,針對不同的FIX協議版本開發不同的業務腳本,利用腳本語言“動態配置”、“動態加載”的特點對FIX交易業務予以實現。與現有技術相比,本發明實施例實現了業務邏輯與FIX協議代碼之間的徹底解耦,使得業務邏輯的實現不再依賴於協議代碼本身,因此業務平臺僅部署一種版本的FIX協議就可以實現所有FIX協議版本的交易業務,能夠大大降低FIX業務環境的部署成本。
在上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關描述。
可以理解的是,上述方法及裝置中的相關特徵可以相互參考。另外,上述實施例中的“第一”、“第二”等是用於區分各實施例,而並不代表各實施例的優劣。
所屬技術領域中具有通常知識者可以清楚地瞭解到,為描述的方便和簡潔,上述描述的系統,裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
在此提供的算法和顯示不與任何特定電腦、虛擬系統或者其它設備固有相關。各種通用系統也可以與基於在此的示教一起使用。根據上面的描述,構造這類系統所要求的結構是顯而易見的。此外,本發明也不針對任何特定程式語言。應當明白,可以利用各種程式語言實現在此描述的本發明的內容,並且上面對特定語言所做的描述是為了披露本發明的最佳實施方式。
在此處所提供的說明書中,說明了大量具體細節。然而,能夠理解,本發明的實施例可以在沒有這些具體細節的情況下實踐。在一些實例中,並未詳細示出公知的方法、結構和技術,以便不模糊對本說明書的理解。
類似地,應當理解,為了精簡本公開並幫助理解各個發明方面中的一個或多個,在上面對本發明的示例性實施例的描述中,本發明的各個特徵有時被一起分組到單個實施例、圖、或者對其的描述中。然而,並不應將該公開的方法解釋成反映如下意圖:即所要求保護的本發明要求比在每個請求項中所明確記載的特徵更多的特徵。更確切地
說,如下面的請求項書所反映的那樣,發明方面在於少於前面公開的單個實施例的所有特徵。因此,遵循具體實施方式的請求項書由此明確地併入該具體實施方式,其中每個請求項本身都作為本發明的單獨實施例。
所屬技術領域中具有通常知識者可以理解,可以對實施例中的設備中的模塊進行自適應性地改變並且把它們設置在與該實施例不同的一個或多個設備中。可以把實施例中的模塊或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特徵和/或過程或者單元中的至少一些是相互排斥之外,可以採用任何組合對本說明書(包括伴隨的請求項、摘要和圖式)中公開的所有特徵以及如此公開的任何方法或者設備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的申請專利範圍、摘要和圖式)中公開的每個特徵可以由提供相同、等同或相似目的的替代特徵來代替。
此外,所屬技術領域中具有通常知識者能夠理解,儘管在此所述的一些實施例包括其它實施例中所包括的某些特徵而不是其它特徵,但是不同實施例的特徵的組合意味著處於本發明的範圍之內並且形成不同的實施例。例如,在下面的請求項書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
本發明的各個部件實施例可以以硬體實現,或者以在一個或者多個處理器上運行的軟體模塊實現,或者以它們
的組合實現。所屬技術領域中具有通常知識者應當理解,可以在實踐中使用微處理器或者數位訊號處理器(DSP)來實現根據本發明實施例的發明名稱(如確定網站內鏈接等級的裝置)中的一些或者全部部件的一些或者全部功能。本發明還可以實現為用於執行這裡所描述的方法的一部分或者全部的設備或者裝置程式(例如,電腦程式和電腦程式產品)。這樣的實現本發明的程式可以儲存在電腦可讀媒介上,或者可以具有一個或者多個訊號的形式。這樣的訊號可以從網際網路網站上下載得到,或者在載體訊號上提供,或者以任何其他形式提供。
應該注意的是上述實施例對本發明進行說明而不是對本發明進行限制,並且所屬技術領域中具有通常知識者在不脫離所附請求項的範圍的情況下可設計出替換實施例。在請求項中,不應將位於括號之間的任何參考符號構造成對請求項的限制。單詞“包含”不排除存在未列在請求項中的元件或步驟。位於元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發明可以借助於包括有若干不同元件的硬體以及借助於適當程式設計的電腦來實現。在列舉了若干裝置的單元請求項中,這些裝置中的若干個可以是通過同一個硬體項來具體體現。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。
Claims (25)
- 一種金融資訊交換(FIX)協議的業務實現方法,其特徵在於,該方法包括:業務平臺接收發送端發送的FIX消息,該FIX消息由不同類型的業務資料組成,該業務資料為字符串形式;根據業務資料中的業務類型資訊在腳本列表中查找與該FIX消息對應的業務腳本,該腳本列表中保存有對應不同FIX協議版本的業務腳本,該業務腳本包含業務邏輯;執行該業務腳本,按照該業務邏輯對該業務資料進行處理。
- 根據請求項1所述的方法,其中,該FIX消息為封裝成通用類的FIX消息。
- 根據請求項1所述的方法,其中,該方法進一步包括:將通用業務邏輯寫入業務平臺側的協議代碼中,該通用業務邏輯為適用於任何業務類型的業務邏輯。
- 根據請求項3所述的方法,其中,在該接收發送端發送的FIX消息之後,該方法進一步包括:根據業務資料中的消息類型資訊判斷該FIX消息的消息類型;若該消息類型為應用層消息,則調用應用層方法執行應用層的通用業務邏輯;若該消息類型為會話層消息,則調用會話層方法執行會話層的通用業務邏輯。
- 根據請求項4所述的方法,其中,該調用會話層方法執行會話層的通用業務邏輯,包括:當該通用業務邏輯為會話層的重置序號邏輯時,若會話序號到達預設的序號最大值,則將該會話序號重置為0;或者,當該通用業務邏輯為會話層的拒絕交易邏輯時,若會話序號重置失敗,則拒絕處理該FIX消息;或者,當該通用業務邏輯為會話層的清除隊列邏輯時,若消息隊列佔用的快取超過預設的快取閾值,則清除該消息隊列中快取的FIX消息。
- 根據請求項1所述的方法,其中,該方法進一步包括:當新增FIX業務時,獲取包含新增FIX業務邏輯的業務腳本;將獲取的業務腳本添加到該腳本列表中。
- 根據請求項1所述的方法,其中,該方法進一步包括:當接收到非FIX協議報文時,根據非FIX協議報文的封裝規則選擇報文解析器;通過該報文解析器對該非FIX協議報文的資料流進行解析,獲得業務資料。
- 根據請求項1所述的方法,其中,該方法進一步包括:將處理後的FIX消息發送給接收端。
- 根據請求項1至8中任一項所述的方法,其中,該方法進一步包括:通過多個計算節點對接收的FIX消息進行分布式處理,其中,每個計算節點處理至少一個會話的FIX消息。
- 一種金融資訊交換FIX協議的業務實現方法,其特徵在於,該方法包括:發送端將FIX報文封裝為FIX消息,該FIX消息由不同類型的業務資料組成,不包含對應具體FIX協議版本的業務邏輯,該業務資料為字符串形式;將封裝後的FIX消息發送給業務平臺,以使得該業務平臺根據包含業務邏輯的業務腳本對該業務資料進行處理。
- 根據請求項10所述的方法,其中,該將FIX報文封裝為FIX消息,包括:將該FIX報文封裝成通用類的FIX消息。
- 根據請求項11所述的方法,其中,該將該FIX報文封裝成通用類的FIX消息,包括:從該FIX報文的報文頭及報文體中提取字符串,組裝成通用類的FIX消息。
- 一種金融資訊交換FIX協議的業務實現裝置,其特徵在於,該裝置包括:接收單元,用於接收發送端發送的FIX消息,該FIX消息由不同類型的業務資料組成,該業務資料為字符串形式;查找單元,用於根據業務資料中的業務類型資訊在腳本列表中查找與該FIX消息對應的業務腳本,該腳本列表中保存有對應不同FIX協議版本的業務腳本,該業務腳本包含業務邏輯;執行單元,用於執行該業務腳本,按照該業務邏輯對該業務資料進行處理。
- 根據請求項13所述的裝置,其中,該接收單元接收的該FIX消息為封裝成通用類的FIX消息。
- 根據請求項13所述的裝置,其中,該裝置還包括:寫入單元,用於將通用業務邏輯寫入業務平臺側的協議代碼中,該通用業務邏輯為適用於任何業務類型的業務邏輯。
- 根據請求項15所述的裝置,其中,該裝置還包括判斷單元,用於在接收發送端發送的FIX消息之後,根據業務資料中的消息類型資訊判斷該FIX消息的消息類型;該執行單元,用於當該消息類型為應用層消息時,調用應用層方法執行應用層的通用業務邏輯;該執行單元還用於當該消息類型為會話層消息時,調用會話層方法執行會話層的通用業務邏輯。
- 根據請求項16所述的裝置,其中,該執行單元用於:當該通用業務邏輯為會話層的重置序號邏輯時,若會話序號到達預設的序號最大值,則將該會話序號重置為0;當該通用業務邏輯為會話層的拒絕交易邏輯時,若會話序號重置失敗,則拒絕處理該FIX消息;當該通用業務邏輯為會話層的清除隊列邏輯時,若消息隊列佔用的快取超過預設的快取閾值,則清除該消息隊列中快取的FIX消息。
- 根據請求項13所述的裝置,其中,該裝置還包括:獲取單元,用於當新增FIX業務時,獲取包含新增FIX業務邏輯的業務腳本;添加單元,用於將獲取的業務腳本添加到該腳本列表中。
- 根據請求項13所述的裝置,其中,該裝置還包括:選擇單元,用於當接收到非FIX協議報文時,根據非FIX協議報文的封裝規則選擇報文解析器;解析單元,用於通過該報文解析器對該非FIX協議報文的資料流進行解析,獲得業務資料。
- 根據請求項13所述的裝置,其中,該裝置還包括:發送單元,用於將處理後的FIX消息發送給接收端。
- 根據請求項13至20中任一項所述的裝置,其中,該裝置用於通過多個計算節點對接收的FIX消息進行分布式處理,其中,每個計算節點處理至少一個會話的FIX消息。
- 一種金融資訊交換FIX協議的業務實現裝置,其特徵在於,該裝置包括:處理單元,用於將FIX報文封裝為FIX消息,該FIX消息由不同類型的業務資料組成,不包含對應具體FIX協議版本的業務邏輯,該業務資料為字符串形式;發送單元,用於將封裝後的FIX消息發送給業務平臺,以使得該業務平臺根據包含業務邏輯的業務腳本對該業務資料進行處理。
- 根據請求項21所述的裝置,其中,該處理單元用於將該FIX報文封裝成通用類的FIX消息。
- 根據請求項23所述的裝置,其中,該處理單元用於從該FIX報文的報文頭及報文體中提取字符串,組裝成通用類的FIX消息。
- 一種金融資訊交換FIX協議的業務實現系統,其特徵在於,該系統包括業務平臺及發送端;該業務平臺包括如請求項13至21中任一項所述的裝置;該發送端包括如請求項22至24中任一項所述的裝置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
??201610112705.1 | 2016-02-29 | ||
CN201610112705.1A CN107135188B (zh) | 2016-02-29 | 2016-02-29 | 金融信息交换fix协议的业务实现方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201732704A TW201732704A (zh) | 2017-09-16 |
TWI658418B true TWI658418B (zh) | 2019-05-01 |
Family
ID=59720749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105143948A TWI658418B (zh) | 2016-02-29 | 2016-12-29 | 金融資訊交換(fix)協議的業務實現方法、裝置及系統 |
Country Status (11)
Country | Link |
---|---|
US (1) | US10791070B2 (zh) |
EP (1) | EP3425877A4 (zh) |
JP (1) | JP6861720B2 (zh) |
KR (1) | KR102136945B1 (zh) |
CN (1) | CN107135188B (zh) |
AU (1) | AU2017226398B2 (zh) |
MY (1) | MY183050A (zh) |
PH (1) | PH12018501824A1 (zh) |
SG (1) | SG11201807245WA (zh) |
TW (1) | TWI658418B (zh) |
WO (1) | WO2017148278A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108427599A (zh) * | 2017-09-30 | 2018-08-21 | 平安科技(深圳)有限公司 | 异步任务统一处理方法、装置及存储介质 |
CN110659247A (zh) * | 2018-06-13 | 2020-01-07 | 中国移动通信集团江西有限公司 | 话单文件连续性检测方法、装置、设备及介质 |
CN108833446A (zh) * | 2018-08-01 | 2018-11-16 | 广发证券股份有限公司 | 一种基于Fix协议请求包的协议转换方法及装置 |
CN110473101A (zh) * | 2019-08-15 | 2019-11-19 | 中国银行股份有限公司 | 模拟交易所的报文处理方法及装置 |
CN111212056A (zh) * | 2019-12-30 | 2020-05-29 | 中电工业互联网有限公司 | 一种基于809协议的数据解析与分发系统及方法 |
CN111368512B (zh) * | 2020-03-04 | 2023-08-22 | 北京软通智慧科技有限公司 | 一种业务数据的转换方法、装置、设备及存储介质 |
CN112134915B (zh) * | 2020-06-29 | 2022-10-14 | 上海金融期货信息技术有限公司 | 一种应用层协议解耦合的通用网络处理系统 |
CN112532619B (zh) * | 2020-11-26 | 2022-01-25 | 深圳前海景佑科技有限公司 | Defix协议的生成、解析方法、客户端、服务器及系统 |
CN114040008B (zh) * | 2021-11-05 | 2024-07-30 | 光大科技有限公司 | 一种报文处理方法及装置 |
CN115103041B (zh) * | 2022-07-18 | 2024-07-12 | 深圳市雁联计算系统有限公司 | 一种基于fix协议实现业务的方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102681854A (zh) * | 2012-05-18 | 2012-09-19 | 华为技术有限公司 | 业务执行方法、服务器和计算机系统 |
CN103020861A (zh) * | 2012-11-06 | 2013-04-03 | 苏州工业园区凌志软件股份有限公司 | 用于金融证券行业的中间业务平台系统 |
US20140189161A1 (en) * | 2012-12-31 | 2014-07-03 | Trading Technologies International, Inc. | In-Line FIX Packet Translator |
TW201514751A (zh) * | 2013-06-06 | 2015-04-16 | China Unionpay Co Ltd | 用於電子資源轉移的安全性資訊交換方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020083213A1 (en) * | 2000-09-18 | 2002-06-27 | Oberstein Brien M. | Method and system for simulating and certifying complex business applications |
WO2003017175A1 (en) * | 2001-08-14 | 2003-02-27 | Bloomberg Lp | Distribution and mapping of financial records from data stream |
EP1606755A4 (en) * | 2003-03-25 | 2007-01-03 | Tradeweb Group L L C | METHOD AND SYSTEM FOR IMPLEMENTING DIRECT PROCESSING OF TRADE OF DIFFERENT FINANCIAL INSTRUMENTS |
EP2235876A2 (en) * | 2007-04-20 | 2010-10-06 | Tekelec | Systems, methods, and computer program products for providing service interaction and mediation in a communications network |
US7840481B2 (en) * | 2007-06-07 | 2010-11-23 | Bny Convergex Execution Solutions Llc | Aged transactions in a trading system |
CN101267645B (zh) * | 2008-02-29 | 2011-03-02 | 中兴通讯股份有限公司 | 用于w基站业务流程软件开发的自动化测试方法和系统 |
JP4722195B2 (ja) * | 2009-04-13 | 2011-07-13 | 富士通株式会社 | データベース・メッセージ分析支援プログラム、方法及び装置 |
US9009351B2 (en) * | 2009-07-09 | 2015-04-14 | Lime Brokerage Llc | Brokerage transaction server and method using encapsulated messages |
CN102255786A (zh) * | 2010-05-20 | 2011-11-23 | 中国移动通信集团广西有限公司 | 业务报文处理方法及装置 |
JP5533536B2 (ja) * | 2010-10-08 | 2014-06-25 | 富士通株式会社 | 情報処理プログラム、装置及び方法 |
US8719795B2 (en) * | 2011-04-12 | 2014-05-06 | Miami International Security Exchange, Llc | System and method for automating testing of computers |
CN102546599A (zh) * | 2011-12-16 | 2012-07-04 | 深圳中兴网信科技有限公司 | 一种实现不同协议数据等价互转的方法 |
US9076182B2 (en) * | 2013-03-11 | 2015-07-07 | Yodlee, Inc. | Automated financial data aggregation |
CN104506380B (zh) * | 2014-12-16 | 2018-07-13 | 北京星河亮点技术股份有限公司 | 基于协议分析仪的移动终端数据业务性能测试方法及系统 |
-
2016
- 2016-02-29 CN CN201610112705.1A patent/CN107135188B/zh active Active
- 2016-12-29 TW TW105143948A patent/TWI658418B/zh active
-
2017
- 2017-02-17 MY MYPI2018703004A patent/MY183050A/en unknown
- 2017-02-17 JP JP2018545451A patent/JP6861720B2/ja active Active
- 2017-02-17 KR KR1020187027850A patent/KR102136945B1/ko active IP Right Grant
- 2017-02-17 EP EP17759129.4A patent/EP3425877A4/en active Pending
- 2017-02-17 SG SG11201807245WA patent/SG11201807245WA/en unknown
- 2017-02-17 AU AU2017226398A patent/AU2017226398B2/en active Active
- 2017-02-17 WO PCT/CN2017/073919 patent/WO2017148278A1/zh active Application Filing
-
2018
- 2018-08-28 US US16/115,313 patent/US10791070B2/en active Active
- 2018-08-28 PH PH12018501824A patent/PH12018501824A1/en unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102681854A (zh) * | 2012-05-18 | 2012-09-19 | 华为技术有限公司 | 业务执行方法、服务器和计算机系统 |
CN103020861A (zh) * | 2012-11-06 | 2013-04-03 | 苏州工业园区凌志软件股份有限公司 | 用于金融证券行业的中间业务平台系统 |
US20140189161A1 (en) * | 2012-12-31 | 2014-07-03 | Trading Technologies International, Inc. | In-Line FIX Packet Translator |
TW201514751A (zh) * | 2013-06-06 | 2015-04-16 | China Unionpay Co Ltd | 用於電子資源轉移的安全性資訊交換方法 |
Also Published As
Publication number | Publication date |
---|---|
MY183050A (en) | 2021-02-09 |
PH12018501824B1 (en) | 2019-01-28 |
AU2017226398A1 (en) | 2018-09-13 |
KR20180118168A (ko) | 2018-10-30 |
PH12018501824A1 (en) | 2019-01-28 |
CN107135188B (zh) | 2020-09-25 |
US10791070B2 (en) | 2020-09-29 |
SG11201807245WA (en) | 2018-09-27 |
WO2017148278A1 (zh) | 2017-09-08 |
CN107135188A (zh) | 2017-09-05 |
KR102136945B1 (ko) | 2020-07-23 |
US20180367482A1 (en) | 2018-12-20 |
JP2019512138A (ja) | 2019-05-09 |
TW201732704A (zh) | 2017-09-16 |
AU2017226398B2 (en) | 2020-07-16 |
EP3425877A4 (en) | 2019-11-27 |
EP3425877A1 (en) | 2019-01-09 |
JP6861720B2 (ja) | 2021-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI658418B (zh) | 金融資訊交換(fix)協議的業務實現方法、裝置及系統 | |
WO2021109735A1 (zh) | 一种基于跨链网络的资源处理方法及装置 | |
US20190108140A1 (en) | Smart contract creation and monitoring for event identification in a blockchain | |
US20200177572A1 (en) | Sending cross-chain authenticatable messages | |
US11068384B2 (en) | Systems and methods for testing software applications | |
CN105389488B (zh) | 身份认证方法及装置 | |
CN103248670B (zh) | 计算机网络环境下的连接管理服务器和连接管理方法 | |
US10452522B1 (en) | Synthetic data generation from a service description language model | |
WO2020000720A1 (zh) | 服务器、报文处理方法、程序和计算机可读存储介质 | |
CN109635019A (zh) | 请求处理方法、装置、设备及存储介质 | |
US11650900B2 (en) | Tracking data flow through data services using a processing request identifier in callstack data | |
Garcia Bringas et al. | BlockChain platforms in financial services: current perspective | |
WO2023040496A1 (zh) | 基于区块链的虚拟资源分配 | |
US9503351B1 (en) | Deployment feedback for system updates to resources in private networks | |
CN112181628B (zh) | 资源转移方法、装置、系统和电子设备 | |
CN116560712A (zh) | 微服务构建方法、装置、设备以及计算机存储介质 | |
CN114666418B (zh) | 业务系统衔接方法、装置及存储介质 | |
CN113095824B (zh) | 基于区块链的资产管理方法、装置及电子设备 | |
CN113077241B (zh) | 审批处理方法、装置、设备及存储介质 | |
US9479599B2 (en) | Reroute of a web service in a web based application | |
CN113608995A (zh) | 一种造数方法、装置、计算机设备及存储介质 | |
CN114428723A (zh) | 测试系统、系统测试方法、相关设备及存储介质 | |
US20200167788A1 (en) | Fraudulent request identification from behavioral data | |
US12099998B2 (en) | Configurable, reactive architecture framework for data stream manipulation at scale | |
US20240104558A1 (en) | Blockchain transaction execution method and apparatus, program product, device, and medium |