CN107135188A - 金融信息交换fix协议的业务实现方法、装置及系统 - Google Patents

金融信息交换fix协议的业务实现方法、装置及系统 Download PDF

Info

Publication number
CN107135188A
CN107135188A CN201610112705.1A CN201610112705A CN107135188A CN 107135188 A CN107135188 A CN 107135188A CN 201610112705 A CN201610112705 A CN 201610112705A CN 107135188 A CN107135188 A CN 107135188A
Authority
CN
China
Prior art keywords
fix
message
business
service
service logic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610112705.1A
Other languages
English (en)
Other versions
CN107135188B (zh
Inventor
李旭阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201610112705.1A priority Critical patent/CN107135188B/zh
Priority to TW105143948A priority patent/TWI658418B/zh
Priority to JP2018545451A priority patent/JP6861720B2/ja
Priority to PCT/CN2017/073919 priority patent/WO2017148278A1/zh
Priority to EP17759129.4A priority patent/EP3425877A4/en
Priority to AU2017226398A priority patent/AU2017226398B2/en
Priority to KR1020187027850A priority patent/KR102136945B1/ko
Priority to MYPI2018703004A priority patent/MY183050A/en
Priority to SG11201807245WA priority patent/SG11201807245WA/en
Publication of CN107135188A publication Critical patent/CN107135188A/zh
Priority to US16/115,313 priority patent/US10791070B2/en
Priority to PH12018501824A priority patent/PH12018501824A1/en
Application granted granted Critical
Publication of CN107135188B publication Critical patent/CN107135188B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/06Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/06Asset management; Financial planning or analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/12Accounting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/06Message adaptation to terminal or network requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/56Unified messaging, e.g. interactions between e-mail, instant messaging or converged IP messaging [CPM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/327Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the session layer [OSI layer 5]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets

Abstract

本发明公开了一种FIX协议的业务实现方法、装置及系统,涉及互联网技术领域,为解决业务平台侧部署FIX业务环境成本过高的问题而发明。本发明的方法包括:发送端将FIX报文封装为FIX消息并发送给业务平台;业务平台接收发送端发送的FIX消息,FIX消息由不同类型的业务数据组成,业务数据为字符串形式;根据业务数据中的业务类型信息在脚本列表中查找与FIX消息对应的业务脚本,脚本列表中保存有对应不同FIX协议版本的业务脚本,业务脚本包含业务逻辑;执行业务脚本,按照业务逻辑对业务数据进行处理。本发明主要应用于实现FIX协议会话层业务逻辑的过程中。

Description

金融信息交换FIX协议的业务实现方法、装置及系统
技术领域
本发明涉及互联网技术领域,尤其涉及一种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业务环境的部署成本。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图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协议版本的不同业务脚本。实际应用中,为实现业务逻辑的按需定制,业务平台还可以向机构方开放用于开发业务脚本的应用程序接口(ApplicationProgramming 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协议代码中,通过会话层方法执行:
1、重置序号逻辑
现有FIX协议标准中存在序号保护机制,消息发送方会在发送的消息中添加一个会话序号,对于消息接收方而言,如果当前接收消息的序号与前一个接收消息的序号不连续,则说明两消息之间存在漏传的消息,需要触发消息重传机制。而如果序号连续,则发送方再次发送消息时会将上一个消息的序号加1,作为下一个消息的会话序号使用。
由此可见,随着通信过程的不断深入,通信双方使用的会话序号将不断递增,当会话序号的数值超过系统或数据库支持的最大上限时,系统因无法识别该会话序号而容易出现错误重传等问题。为防止会话序号超过系统上限,本实施例给出了一种重置序号的通用业务逻辑并通过会话层方法予以实现。具体的,业务平台根据系统支持的最大上限值设定一个预设的序号最大值,通常该序号最大值小于系统的最大上限值,实际应用中可以将序号最大值设定为系统最大上限值的70%到95%。例如当系统最大上限值为99万时,可以将序号最大值设置为90万。
在执行重置序号逻辑时,业务平台判断当前消息的会话序号是否到达预设的序号最大值。如果到达序号最大值则会话序号重置为0,以使得后续从0开始继续累加;如果未到达序号最大值则不作任何处理。
本实施例中,通过会话层的重置序号逻辑可以防止消息的会话序号超出系统或数据库支持的最大上限,能够有效避免因会话序号溢出导致的系统异常。
2、拒绝交易逻辑
当对会话序号进行重置时,可能因为机构方不受理,或者系统自身的异常原因导致重置失败,此时为避免会话序号超出系统或数据库支持的最大上限值,业务平台可以通过会话层方法实现拒绝交易逻辑,拒绝对当前的FIX消息进行处理,由此消除会话序号进一步累加的可能性。
3、清除队列逻辑
在现有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)

1.一种金融信息交换FIX协议的业务实现方法,其特征在于,所述方法包括:
业务平台接收发送端发送的FIX消息,所述FIX消息由不同类型的业务数据组成,所述业务数据为字符串形式;
根据业务数据中的业务类型信息在脚本列表中查找与所述FIX消息对应的业务脚本,所述脚本列表中保存有对应不同FIX协议版本的业务脚本,所述业务脚本包含业务逻辑;
执行所述业务脚本,按照所述业务逻辑对所述业务数据进行处理。
2.根据权利要求1所述的方法,其特征在于,所述FIX消息为封装成通用类的FIX消息。
3.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
将通用业务逻辑写入业务平台侧的协议代码中,所述通用业务逻辑为适用于任何业务类型的业务逻辑。
4.根据权利要求3所述的方法,其特征在于,在所述接收发送端发送的FIX消息之后,所述方法进一步包括:
根据业务数据中的消息类型信息判断所述FIX消息的消息类型;
若所述消息类型为应用层消息,则调用应用层方法执行应用层的通用业务逻辑;
若所述消息类型为会话层消息,则调用会话层方法执行会话层的通用业务逻辑。
5.根据权利要求4所述的方法,其特征在于,所述调用会话层方法执行会话层的通用业务逻辑,包括:
当所述通用业务逻辑为会话层的重置序号逻辑时,若会话序号到达预设的序号最大值,则将所述会话序号重置为0;或者,
当所述通用业务逻辑为会话层的拒绝交易逻辑时,若会话序号重置失败,则拒绝处理所述FIX消息;或者,
当所述通用业务逻辑为会话层的清除队列逻辑时,若消息队列占用的缓存超过预设的缓存阈值,则清除所述消息队列中缓存的FIX消息。
6.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
当新增FIX业务时,获取包含新增FIX业务逻辑的业务脚本;
将获取的业务脚本添加到所述脚本列表中。
7.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
当接收到非FIX协议报文时,根据非FIX协议报文的封装规则选择报文解析器;
通过所述报文解析器对所述非FIX协议报文的数据流进行解析,获得业务数据。
8.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
将处理后的FIX消息发送给接收端。
9.根据权利要求1至8中任一项所述的方法,其特征在于,所述方法进一步包括:
通过多个计算节点对接收的FIX消息进行分布式处理,其中,每个计算节点处理至少一个会话的FIX消息。
10.一种金融信息交换FIX协议的业务实现方法,其特征在于,所述方法包括:
发送端将FIX报文封装为FIX消息,所述FIX消息由不同类型的业务数据组成,不包含对应具体FIX协议版本的业务逻辑,所述业务数据为字符串形式;
将封装后的FIX消息发送给业务平台,以使得所述业务平台根据包含业务逻辑的业务脚本对所述业务数据进行处理。
11.根据权利要求10所述的方法,其特征在于,所述将FIX报文封装为FIX消息,包括:
将所述FIX报文封装成通用类的FIX消息。
12.根据权利要求11所述的方法,其特征在于,所述将所述FIX报文封装成通用类的FIX消息,包括:
从所述FIX报文的报文头及报文体中提取字符串,组装成通用类的FIX消息。
13.一种金融信息交换FIX协议的业务实现装置,其特征在于,所述装置包括:
接收单元,用于接收发送端发送的FIX消息,所述FIX消息由不同类型的业务数据组成,所述业务数据为字符串形式;
查找单元,用于根据业务数据中的业务类型信息在脚本列表中查找与所述FIX消息对应的业务脚本,所述脚本列表中保存有对应不同FIX协议版本的业务脚本,所述业务脚本包含业务逻辑;
执行单元,用于执行所述业务脚本,按照所述业务逻辑对所述业务数据进行处理。
14.根据权利要求13所述的装置,其特征在于,所述接收单元接收的所述FIX消息为封装成通用类的FIX消息。
15.根据权利要求13所述的装置,其特征在于,所述装置还包括:
写入单元,用于将通用业务逻辑写入业务平台侧的协议代码中,所述通用业务逻辑为适用于任何业务类型的业务逻辑。
16.根据权利要求15所述的装置,其特征在于,所述装置还包括判断单元,用于在接收发送端发送的FIX消息之后,根据业务数据中的消息类型信息判断所述FIX消息的消息类型;
所述执行单元,用于当所述消息类型为应用层消息时,调用应用层方法执行应用层的通用业务逻辑;
所述执行单元还用于当所述消息类型为会话层消息时,调用会话层方法执行会话层的通用业务逻辑。
17.根据权利要求16所述的装置,其特征在于,所述执行单元用于:
当所述通用业务逻辑为会话层的重置序号逻辑时,若会话序号到达预设的序号最大值,则将所述会话序号重置为0;
当所述通用业务逻辑为会话层的拒绝交易逻辑时,若会话序号重置失败,则拒绝处理所述FIX消息;
当所述通用业务逻辑为会话层的清除队列逻辑时,若消息队列占用的缓存超过预设的缓存阈值,则清除所述消息队列中缓存的FIX消息。
18.根据权利要求13所述的装置,其特征在于,所述装置还包括:
获取单元,用于当新增FIX业务时,获取包含新增FIX业务逻辑的业务脚本;
添加单元,用于将获取的业务脚本添加到所述脚本列表中。
19.根据权利要求13所述的装置,其特征在于,所述装置还包括:
选择单元,用于当接收到非FIX协议报文时,根据非FIX协议报文的封装规则选择报文解析器;
解析单元,用于通过所述报文解析器对所述非FIX协议报文的数据流进行解析,获得业务数据。
20.根据权利要求13所述的装置,其特征在于,所述装置还包括:
发送单元,用于将处理后的FIX消息发送给接收端。
21.根据权利要求13至20中任一项所述的装置,其特征在于,所述装置用于通过多个计算节点对接收的FIX消息进行分布式处理,其中,每个计算节点处理至少一个会话的FIX消息。
22.一种金融信息交换FIX协议的业务实现装置,其特征在于,所述装置包括:
处理单元,用于将FIX报文封装为FIX消息,所述FIX消息由不同类型的业务数据组成,不包含对应具体FIX协议版本的业务逻辑,所述业务数据为字符串形式;
发送单元,用于将封装后的FIX消息发送给业务平台,以使得所述业务平台根据包含业务逻辑的业务脚本对所述业务数据进行处理。
23.根据权利要求21所述的装置,其特征在于,所述处理单元用于将所述FIX报文封装成通用类的FIX消息。
24.根据权利要求23所述的装置,其特征在于,所述处理单元用于从所述FIX报文的报文头及报文体中提取字符串,组装成通用类的FIX消息。
25.一种金融信息交换FIX协议的业务实现系统,其特征在于,所述系统包括业务平台及发送端;
所述业务平台包括如权利要求13至权利要求21中任一项所述的装置;
所述发送端包括如权利要求22至权利要求24中任一项所述的装置。
CN201610112705.1A 2016-02-29 2016-02-29 金融信息交换fix协议的业务实现方法、装置及系统 Active CN107135188B (zh)

Priority Applications (11)

Application Number Priority Date Filing Date Title
CN201610112705.1A CN107135188B (zh) 2016-02-29 2016-02-29 金融信息交换fix协议的业务实现方法、装置及系统
TW105143948A TWI658418B (zh) 2016-02-29 2016-12-29 金融資訊交換(fix)協議的業務實現方法、裝置及系統
MYPI2018703004A MY183050A (en) 2016-02-29 2017-02-17 Service implementation method, apparatus, and system based on fix protocol
EP17759129.4A EP3425877A4 (en) 2016-02-29 2017-02-17 SERVICE IMPLEMENTATION PROCESS, DEVICE AND SYSTEM BASED ON A FIRM PROTOCOL
AU2017226398A AU2017226398B2 (en) 2016-02-29 2017-02-17 Service implementation method, apparatus and system based on fix protocol
KR1020187027850A KR102136945B1 (ko) 2016-02-29 2017-02-17 Fix 프로토콜에 기반한 서비스 구현 방법, 장치 및 시스템
JP2018545451A JP6861720B2 (ja) 2016-02-29 2017-02-17 Fixプロトコルに基づくサービス実施方法、装置、及びシステム
SG11201807245WA SG11201807245WA (en) 2016-02-29 2017-02-17 Service implementation method, apparatus, and system based on fix protocol
PCT/CN2017/073919 WO2017148278A1 (zh) 2016-02-29 2017-02-17 Fix协议的业务实现方法、装置及系统
US16/115,313 US10791070B2 (en) 2016-02-29 2018-08-28 Service implementation method, apparatus, and system based on fix protocol
PH12018501824A PH12018501824A1 (en) 2016-02-29 2018-08-28 Service implementation method, apparatus, and system based on fix protocol

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610112705.1A CN107135188B (zh) 2016-02-29 2016-02-29 金融信息交换fix协议的业务实现方法、装置及系统

Publications (2)

Publication Number Publication Date
CN107135188A true CN107135188A (zh) 2017-09-05
CN107135188B CN107135188B (zh) 2020-09-25

Family

ID=59720749

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610112705.1A Active CN107135188B (zh) 2016-02-29 2016-02-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)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108427599A (zh) * 2017-09-30 2018-08-21 平安科技(深圳)有限公司 异步任务统一处理方法、装置及存储介质
CN108833446A (zh) * 2018-08-01 2018-11-16 广发证券股份有限公司 一种基于Fix协议请求包的协议转换方法及装置
CN110473101A (zh) * 2019-08-15 2019-11-19 中国银行股份有限公司 模拟交易所的报文处理方法及装置
CN110659247A (zh) * 2018-06-13 2020-01-07 中国移动通信集团江西有限公司 话单文件连续性检测方法、装置、设备及介质
CN111212056A (zh) * 2019-12-30 2020-05-29 中电工业互联网有限公司 一种基于809协议的数据解析与分发系统及方法
CN111368512A (zh) * 2020-03-04 2020-07-03 北京软通智慧城市科技有限公司 一种业务数据的转换方法、装置、设备及存储介质
CN112134915A (zh) * 2020-06-29 2020-12-25 上海金融期货信息技术有限公司 一种应用层协议解耦合的通用网络处理系统
CN112532619A (zh) * 2020-11-26 2021-03-19 深圳前海景佑科技有限公司 Defix协议的生成、解析方法、客户端、服务器及系统
CN114040008A (zh) * 2021-11-05 2022-02-11 光大科技有限公司 一种报文处理方法及装置
CN115103041A (zh) * 2022-07-18 2022-09-23 深圳市雁联计算系统有限公司 一种基于fix协议实现业务的方法及系统

Citations (9)

* Cited by examiner, † Cited by third party
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
CN101267645A (zh) * 2008-02-29 2008-09-17 中兴通讯股份有限公司 用于w基站业务流程软件开发的自动化测试方法和系统
US20100262604A1 (en) * 2009-04-13 2010-10-14 Fujitsu Limited Database message analysis support technique
US20110010460A1 (en) * 2009-07-09 2011-01-13 Lime Brokerage Holding Llc Brokerage Transaction Server and Method Using Encapsulated Messages
CN102255786A (zh) * 2010-05-20 2011-11-23 中国移动通信集团广西有限公司 业务报文处理方法及装置
CN102546599A (zh) * 2011-12-16 2012-07-04 深圳中兴网信科技有限公司 一种实现不同协议数据等价互转的方法
CN102681854A (zh) * 2012-05-18 2012-09-19 华为技术有限公司 业务执行方法、服务器和计算机系统
CN103020861A (zh) * 2012-11-06 2013-04-03 苏州工业园区凌志软件股份有限公司 用于金融证券行业的中间业务平台系统
CN104506380A (zh) * 2014-12-16 2015-04-08 北京星河亮点技术股份有限公司 基于协议分析仪的移动终端数据业务性能测试方法及系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8473396B2 (en) * 2001-08-14 2013-06-25 Bloomberg L.P. 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
US7840481B2 (en) * 2007-06-07 2010-11-23 Bny Convergex Execution Solutions Llc Aged transactions in a trading system
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
US9426245B2 (en) * 2012-12-31 2016-08-23 Trading Technologies International, Inc. In-line FIX packet translator
CN104239803B (zh) * 2013-06-06 2017-08-25 中国银联股份有限公司 用于电子资源转移的安全性信息交互方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
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
CN101267645A (zh) * 2008-02-29 2008-09-17 中兴通讯股份有限公司 用于w基站业务流程软件开发的自动化测试方法和系统
US20100262604A1 (en) * 2009-04-13 2010-10-14 Fujitsu Limited Database message analysis support technique
US20110010460A1 (en) * 2009-07-09 2011-01-13 Lime Brokerage Holding Llc Brokerage Transaction Server and Method Using Encapsulated Messages
CN102255786A (zh) * 2010-05-20 2011-11-23 中国移动通信集团广西有限公司 业务报文处理方法及装置
CN102546599A (zh) * 2011-12-16 2012-07-04 深圳中兴网信科技有限公司 一种实现不同协议数据等价互转的方法
CN102681854A (zh) * 2012-05-18 2012-09-19 华为技术有限公司 业务执行方法、服务器和计算机系统
CN103020861A (zh) * 2012-11-06 2013-04-03 苏州工业园区凌志软件股份有限公司 用于金融证券行业的中间业务平台系统
CN104506380A (zh) * 2014-12-16 2015-04-08 北京星河亮点技术股份有限公司 基于协议分析仪的移动终端数据业务性能测试方法及系统

Cited By (13)

* Cited by examiner, † Cited by third party
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 北京软通智慧科技有限公司 一种业务数据的转换方法、装置、设备及存储介质
CN111368512A (zh) * 2020-03-04 2020-07-03 北京软通智慧城市科技有限公司 一种业务数据的转换方法、装置、设备及存储介质
CN112134915A (zh) * 2020-06-29 2020-12-25 上海金融期货信息技术有限公司 一种应用层协议解耦合的通用网络处理系统
CN112134915B (zh) * 2020-06-29 2022-10-14 上海金融期货信息技术有限公司 一种应用层协议解耦合的通用网络处理系统
CN112532619B (zh) * 2020-11-26 2022-01-25 深圳前海景佑科技有限公司 Defix协议的生成、解析方法、客户端、服务器及系统
CN112532619A (zh) * 2020-11-26 2021-03-19 深圳前海景佑科技有限公司 Defix协议的生成、解析方法、客户端、服务器及系统
CN114040008A (zh) * 2021-11-05 2022-02-11 光大科技有限公司 一种报文处理方法及装置
CN115103041A (zh) * 2022-07-18 2022-09-23 深圳市雁联计算系统有限公司 一种基于fix协议实现业务的方法及系统

Also Published As

Publication number Publication date
AU2017226398A1 (en) 2018-09-13
US10791070B2 (en) 2020-09-29
AU2017226398B2 (en) 2020-07-16
EP3425877A1 (en) 2019-01-09
KR102136945B1 (ko) 2020-07-23
TW201732704A (zh) 2017-09-16
JP2019512138A (ja) 2019-05-09
PH12018501824B1 (en) 2019-01-28
MY183050A (en) 2021-02-09
JP6861720B2 (ja) 2021-04-21
CN107135188B (zh) 2020-09-25
PH12018501824A1 (en) 2019-01-28
SG11201807245WA (en) 2018-09-27
WO2017148278A1 (zh) 2017-09-08
KR20180118168A (ko) 2018-10-30
TWI658418B (zh) 2019-05-01
EP3425877A4 (en) 2019-11-27
US20180367482A1 (en) 2018-12-20

Similar Documents

Publication Publication Date Title
CN107135188A (zh) 金融信息交换fix协议的业务实现方法、装置及系统
RU2436148C2 (ru) Адаптивный шлюз для переключения транзакций и данных на ненадежных сетях, используя основанные на контексте правила
KR101662685B1 (ko) 심층 패킷 검사 방법 및 기기, 그리고 코프로세서
EP2976709B1 (en) Systems and methods for intercepting, processing, and protecting user data through web application pattern detection
KR101932277B1 (ko) 블록체인 기반의 사용자 정보 공유를 위한 분산 원장 장치 및 분산 원장 방법
US10956596B2 (en) System and method for automatically securing sensitive data in public cloud using a serverless architecture
KR20080048018A (ko) 멀티-포맷 메시지들을 파싱하기 위한 스키머-기반 동적파스/빌드 엔진
CN108196879A (zh) 业务处理方法、装置、设备及计算机可读存储介质
CN108717466A (zh) 征信数据存储方法、装置、计算机设备及存储介质
CN101378396A (zh) 网络钓鱼通知服务
CN108512898A (zh) 文件推送方法、装置、计算机设备和存储介质
US8819135B2 (en) Method of performing data mediation, and an associated computer program product, data mediation device and information system
CN108512889B (zh) 一种基于http的应用响应推送方法及代理服务器
CN115543479A (zh) 一种适用于动态参数的接口调用解析方法及装置
CN115511622A (zh) 一种智能合约的升级方法、装置、设备及存储介质
CN110852744A (zh) 一种切换交易通道的方法、装置、终端设备及介质
CN105160529A (zh) 一种安全支付或购物的方法及终端设备
CN111273897A (zh) 一种区块链资源消耗方法、装置、储存介质及电子设备
KR20190076837A (ko) 블록체인 기반의 사용자 정보 공유를 위한 분산 원장 장치 및 분산 원장 방법
KR20190076812A (ko) 블록체인 기반의 포인트 정보 공유를 위한 분산 원장 장치 및 분산 원장 방법
CN113342275B (zh) 区块链节点存取数据的方法、设备和计算机可读存储介质
US20240104524A1 (en) Methods and systems for pre-verification of cryptocurrency transactions on blockchain networks
JP2007109246A (ja) 分散型タスク実行システム
CN117155985A (zh) 业务处理方法、装置、电子设备及存储介质
US20060184677A1 (en) Interim execution context identifier

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200917

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200917

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: Alibaba Group Holding Ltd.

TR01 Transfer of patent right