CN114040008A - 一种报文处理方法及装置 - Google Patents
一种报文处理方法及装置 Download PDFInfo
- Publication number
- CN114040008A CN114040008A CN202111308772.8A CN202111308772A CN114040008A CN 114040008 A CN114040008 A CN 114040008A CN 202111308772 A CN202111308772 A CN 202111308772A CN 114040008 A CN114040008 A CN 114040008A
- Authority
- CN
- China
- Prior art keywords
- message
- system platform
- fix
- format message
- format
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 12
- 238000004891 communication Methods 0.000 claims abstract description 40
- 238000000034 method Methods 0.000 claims abstract description 32
- 238000006243 chemical reaction Methods 0.000 claims abstract description 13
- 238000012545 processing Methods 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 18
- 238000012360 testing method Methods 0.000 claims description 18
- 238000004458 analytical method Methods 0.000 claims description 12
- 238000012937 correction Methods 0.000 claims description 8
- 230000002159 abnormal effect Effects 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 6
- 238000011161 development Methods 0.000 abstract description 6
- 238000005516 engineering process Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000035515 penetration Effects 0.000 description 4
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- 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/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种报文处理方法及装置,其中,该方法包括:与***平台建立socket连接,通过该socket连接与该***平台建立通信链路;基于该通信链路,接收该***平台发送的金融信息交换协议FIX格式报文;将该FIX格式报文转换为XML格式报文;对该XML格式报文进行处理,可以解决相关技术中依赖代理服务***实现FIX格式报文转换为银行***识别的XML文件成本高、受框架限制升级困难且实现功能较少,不满足现在的业务发展要求的问题,直接将FIX格式报文,转换为XML格式报文,之后处理报文,简单易用,可扩展性强。
Description
技术领域
本发明涉及数据处理领域,具体而言,涉及一种报文处理方法及装置。
背景技术
FIX报文转换***,主要解决商业银行与路透社等执行金融信息交换协议FIX报文标准的机构进行数据交互时,报文格式不统一,银行***不识别FIX格式报文问题。
目前依赖路透社代理服务***实现FIX格式报文转换为银行***识别的XML文件,有成本高、受框架限制升级困难且实现功能较少,不满足现在的业务发展要求等缺点。
针对相关技术中依赖代理服务***实现FIX格式报文转换为银行***识别的XML文件成本高、受框架限制升级困难且实现功能较少,不满足现在的业务发展要求的问题,尚未提出解决方案。
发明内容
本发明实施例提供了一种报文处理方法及装置,以至少解决相关技术中依赖代理服务***实现FIX格式报文转换为银行***识别的XML文件成本高、受框架限制升级困难且实现功能较少,不满足现在的业务发展要求的问题。
根据本发明的一个实施例,提供了一种报文处理方法,包括:
与***平台建立socket连接,通过所述socket连接与所述***平台建立通信链路;
基于所述通信链路,接收所述***平台发送的金融信息交换协议FIX格式报文;
将所述FIX格式报文转换为XML格式报文;
对所述XML格式报文进行处理。
可选地,与***平台建立socket连接包括:
基于网络层使用的IP协议,根据IP地址和端口号查找目标主机;
为所述目标主机创建Socket实例,根据所述Socket实例与***平台建立所述Socket连接,其中,所述Socket实例唯一代表所述目标主机上一个应用程序的通信链路。
可选地,在基于所述通信链路,接收所述***平台发送的金融信息交换协议FIX格式报文之前,所述方法还包括:
接收所述***平台发送的登录请求,其中,所述登录请求中携带有心跳间隔参数;
对所述登录请求进行认证,得到认证结果;
在所述认证结果为通过之后,向所述***平台返回登录成功的登录响应;
根据所述心跳间隔参数确定所述***平台是否正常。
可选地,根据所述心跳间隔参数确定所述***平台是否正常包括:
向所述***平台发送心跳报文;
若在预设倍数的心跳间隔时间内收到心跳报文,确定所述***平台正常;
若在预设倍数的心跳间隔时间内未收到心跳报文,则向所述***平台发送测试报文;如果未收到测试回复报文,确定所述***平台异常;如果收到测试回复报文,确定所述***平台正常。
可选地,在基于所述通信链路,接收所述***平台发送的金融信息交换协议FIX格式报文之后,所述方法还包括:
获取所述FIX格式报文中的接收序列号;
通过所述序列号与所希望得到的正确序列号检测是否存在消息漏收发;
当所述接收序列号与所希望得到的正确序列号不必配时,确定存在消息漏收发,进行纠错处理。
可选地,在将所述FIX格式报文转换为XML格式报文之前,所述方法还包括:
解析所述FIX格式报文的报文头,校验报文头各字段;
在MsgType被定义的情况下,根据报文头中的MsgType调用对应的报文解析方式解析所述FIX格式报文的报文体;
根据所述报文体确定满足预设的会话层规则。
可选地,将所述FIX格式报文转换为XML格式报文包括:
读取所述FIX格式报文的报文配置;
根据所述报文配置生成报文内容;
将所述报文内容转换为实体类;
通过所述实体类获取报文头信息;
根据所述报文头信息与所述报文体组装所述XML格式报文。
根据本发明的另一个实施例,还提供了一种报文处理装置,包括:
建立连接模块,用于与***平台建立socket连接,通过所述socket连接与所述***平台建立通信链路;
第一接收模块,用于基于所述通信链路,接收所述***平台发送的金融信息交换协议FIX格式报文;
转换模块,用于将所述FIX格式报文转换为XML格式报文;
处理模块,用于对所述XML格式报文进行处理。
可选地,所述建立连接模块包括:
查找子模块,用于基于网络层使用的IP协议,根据IP地址和端口号查找目标主机;
建立子模块,用于为所述目标主机创建Socket实例,根据所述Socket实例与***平台建立所述Socket连接,其中,所述Socket实例唯一代表所述目标主机上一个应用程序的通信链路。
可选地,所述装置还包括:
第二接收模块,用于接收所述***平台发送的登录请求,其中,所述登录请求中携带有心跳间隔参数;
认证模块,用于对所述登录请求进行认证,得到认证结果;
返回模块,用于在所述认证结果为通过之后,向所述***平台返回登录成功的登录响应;
第一确定模块,用于根据所述心跳间隔参数确定所述***平台是否正常。
可选地,所述第一确定模块包括:
发送子模块,用于向所述***平台发送心跳报文;
第一确定子模块,用于若在预设倍数的心跳间隔时间内收到心跳报文,确定所述***平台正常;
第二确定子模块,用于若在所述预设倍数的心跳间隔时间内未收到心跳报文,则向所述***平台发送测试报文;如果未收到测试回复报文,确定所述***平台异常;如果收到测试回复报文,确定所述***平台正常。
可选地,所述装置还包括:
获取模块,用于获取所述FIX格式报文中的接收序列号;
检测模块,用于通过所述序列号与所希望得到的正确序列号检测是否存在消息漏收发;
纠错模块,用于当所述接收序列号与所希望得到的正确序列号不必配时,确定存在消息漏收发,进行纠错处理。
可选地,所述装置还包括:
第一解析模块,用于解析所述FIX格式报文的报文头,校验报文头各字段;
第二解析模块,用于在MsgType被定义的情况下,根据报文头中的MsgType调用对应的报文解析方式解析所述FIX格式报文的报文体;
第二确定模块,用于根据所述报文体确定满足预设的会话层规则。
可选地,所述转换模块包括:
读取子模块,用于读取所述FIX格式报文的报文配置;
生成子模块,用于根据所述报文配置生成报文内容;
转换子模块,用于将所述报文内容转换为实体类;
获取子模块,用于通过所述实体类获取报文头信息;
组装子模块,用于根据所述报文头信息与所述报文体组装所述XML格式报文。
根据本发明的又一个实施例,还提供了一种计算机可读的存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,与***平台建立socket连接,通过所述socket连接与所述***平台建立通信链路;基于所述通信链路,接收所述***平台发送的金融信息交换协议FIX格式报文;将所述FIX格式报文转换为XML格式报文;对所述XML格式报文进行处理,可以解决相关技术中依赖代理服务***实现FIX格式报文转换为银行***识别的XML文件成本高、受框架限制升级困难且实现功能较少,不满足现在的业务发展要求的问题,直接将FIX格式报文,转换为XML格式报文,简单易用,可扩展性强。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的报文处理方法的移动终端的硬件结构框图;
图2是根据本发明实施例的报文处理方法的流程图;
图3是根据本发明实施例的建立会话的流程图;
图4是根据本发明实施例的路透平台登录的流程图;
图5是根据本发明实施例的注销登录的流程图;
图6是根据本发明实施例的心跳保持的流程图;
图7是根据本发明实施例的接收报文的流程图;
图8是根据本发明实施例的解析报文的流程图;
图9是根据本发明实施例的文体的解析配置的流程图;
图10是根据本发明实施例的报文处理装置的框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的报文处理方法的移动终端的硬件结构框图,如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的报文处理方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于上述移动终端或网络架构的报文处理方法,图2是根据本发明实施例的报文处理方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,与***平台建立socket连接,通过所述socket连接与所述***平台建立通信链路;
本发明实施例中,上述步骤S202中,与***平台建立socket连接具体可以包括:基于网络层使用的IP协议,根据IP地址和端口号查找目标主机;为所述目标主机创建Socket实例,根据所述Socket实例与***平台建立所述Socket连接,其中,所述Socket实例唯一代表所述目标主机上一个应用程序的通信链路。
步骤S204,基于所述通信链路,接收所述***平台发送的金融信息交换协议FIX格式报文;
步骤S206,将所述FIX格式报文转换为XML格式报文;
例如,报文配置如下:
其中,message:一个报文,name:一个元素【可以为报文、字段等】名字,msgtype:报文类型,required:表示是否必须。N:否,Y:是,field:表示一个不可再拆分的字段、元素;group:循环域,多次出现,可以包含field,group,component等元素。component:组件,可被多个报文重用的公共组件,可以包含field,group,component等元素。
报文解析、校验通过之后进行报文转换过程,具体包括:
1:根据解析的【报文类型】,在【报文配置库】查找匹配的【配置项】。
2:将message的name值,初始化XML报文的根节点。
3:取出message所含所有节点,依次执行如下转换过程。
【循环执行】开始。
4:如果是field元素,则直接在xml报文增加一个文本节点,xml元素名称为name值,xml元素值为该字段对应的value值。
5:如果是group元素,则在xml报文中增加一个名为name值的父节点,该节点循环出现,循环次数为【FIX报文】中该字段的循环次数。然后再次进入【循环执行】部分,从4步开始执行。
6:如果是component元素,则在xml报文中增加一个名为name值的节点,该节点内含多个【子元素】,子元素可为【field,group,component】中的任一种或多种。取出component的【所有子元素列表】,然后依次进入【循环执行】部分,从4步开始执行。
【循环执行】结束。
7:遍历完所有【配置项】后,XML转换完成。
本发明实施例中,上述步骤S206具体可以包括:读取所述FIX格式报文的报文配置;根据所述报文配置生成报文内容;将所述报文内容转换为实体类;通过所述实体类获取报文头信息;报文体组装所述XML格式报文。
步骤S208,对所述XML格式报文进行处理。
通过上述步骤S202至S208,可以解决相关技术中依赖代理服务***实现FIX格式报文转换为银行***识别的XML文件成本高、受框架限制升级困难且实现功能较少,不满足现在的业务发展要求的问题,直接将FIX格式报文,转换为XML格式报文,简单易用,可扩展性强。
在一可选的实施例中,在上述步骤S204之前,接收所述***平台发送的登录请求,其中,所述登录请求中携带有心跳间隔参数;对所述登录请求进行认证,得到认证结果;在所述认证结果为通过之后,向所述***平台返回登录成功的登录响应;根据所述心跳间隔参数确定所述***平台是否正常,具体的,向所述***平台发送心跳报文;若在预设倍数的心跳间隔时间内收到心跳报文,确定所述***平台正常;若在预设倍数的心跳间隔时间内未收到心跳报文,则向所述***平台发送测试报文;如果未收到测试回复报文,确定所述***平台异常;如果收到测试回复报文,确定所述***平台正常。
在另一可选的实施例中,在上述步骤S204之后,通过所述序列号与所希望得到的正确序列号检测是否存在消息漏收发;当所述接收序列号与所希望得到的正确序列号不必配时,确定存在消息漏收发,进行纠错处理,具体包括:将漏收发的进行补收发。
在另一可选的实施例中,在上述步骤S206之前,所述方法还包括:解析所述FIX格式报文的报文头,校验报文头各字段;在MsgType被定义的情况下,根据报文头中的MsgType调用对应的报文解析方式解析所述FIX格式报文的报文体;根据所述报文体确定满足预设的会话层规则。
下面以***平台为路透平台为例,对本发明实施例进行说明。
图3是根据本发明实施例的建立会话的流程图,如图3所示,FIX与路透平台建立socket连接,建立通信链路:通过网络层使用的IP协议,根据IP地址和端口号找到目标主机;创建Socket实例,这个实例唯一代表一个主机上的一个应用程序的通信链路,建立Socket连接;建立通信链路,会话连接成功。通过端口号直连,会话连接中断,服务端直接关掉会话。FIX通过监控会话连接,实时通知会话异常消息。会话断开的场景具体包括:重复登录/接收报文序号小于预期/超时等。
图4是根据本发明实施例的路透平台登录的流程图,如图4所示,包括:
路透平台发送初始Logon消息(登录请求),FIX接收会话并负责执行第一层次的认证,并通过传输Logon消息确认连接请求被接受。
1)路透发起Logon请求,并且需要在登录消息中设置心跳间隔参数HeartBtInt;
2)FIX***收到Logon请求后,进行消息检查(msgSeqNum、msgType、eartBtInt等),检查通过后发送确认Logon消息;若路透发送的Logon无效,则FIX应用发送注销消息,并注明注销原因,路透接受注销请求。FIX***发送报文后没有响应报文,通过设置的心跳间隔参数HeartBtInt来确认路透***服务是否正常。
3)***启动时,在***内维护sessionID的会话的状态信息,当登录成功后,相应的sessionID的登录状态由未登录变为已登录。
4)***已登录,路透发送logon报文,则双方网络连接断开,此情况是路透方异常情况。
5)路透发送logon报文,FIX***没收到或收到未回复logon,路透重新发送logon。FIX***接收并回复logon,如果路透未收到,此时FIX方已登录路透未登录。FIX处理机制:FIX未收到任何报文会发送心跳报文,1.4倍心跳间隔时间内没有收到心跳报文,则向路透方发送测试报文,如果FIX仍没有收到回复测试回复报文,则双方网络连接断开,此时属于路透***异常。
图5是根据本发明实施例的注销登录的流程图,如图5所示,包括:
路透平台向FIX发起Logout注销请求;
FIX接收到Logout请求后,进行信息检查,检查序列号,若路透和FIX应用序号不一致,发送拒绝注销的消息,路透需要同步序号,重传信息;
当收到的消息序号大于预期序号,将当前接收到的消息压入待处理消息队列,发送重传消息,路透接收到消息后按照重传开始序号和结束序号重新传送;
当收到的消息序号小于预期序号,发送Logout消息,断开连接,路透收到消息后手动处理或者尝试自动登录连接自动增长序列号,直到序列号达到期望值,双方建立会话;
当收到的消息序号等于预期序号,则进行报文处理;
若路透成功发送Logout请求,FIX应用发送登出请求,路透接收注销;
***启动时,在***内维护一份sessionID信息存储,当登出成功后,相应的sessionID的登录状态改为未登录;
未经Logout信息的交换而断开的连接是反常情况,并应按错误来处理。
一方发送logout报文,如果另一方在1.4倍的心跳时间间隔内没有回复logout,则发送方发送测试报文,如果仍未收到对方发送的测试报文,则双方网络连接断开,此情况属于严重异常。成功注销后,双方会话是断开的。
图6是根据本发明实施例的心跳保持的流程图,如图6所示,包括:
1)路透在发起Logon请求中定义心跳间隔参数HeartBtInt,FIX应用通过Logon消息进行确认,同一个HeartBtInt被会话双方——登录的发起者和登录的接受者共同使用。
2)FIX应用程序在消息交互期间周期性产生Heartbeat心跳信息,监控通信链路状态及识别接收序列号间隙。
3)心跳间隔参数HeartBtInt在发送每一个消息后进行复位。发送一个消息后,在间隔给定的时间内无其它消息发送则发送一个Heartbeat心跳消息。
4)当连接的任何一方在"HeartBtInt+合理的传输时间"的时间内仍没有收到Heartbeat心跳信息,那么,可以认为此次连接失败,关闭连接。
5)如果HeartBtInt参数被设置为零,将不会生成定期的心跳信息。
图7是根据本发明实施例的接收报文的流程图,如图7所示,包括:
消息确认,可以通过对比logon消息中的序列号和通信一方的期望收到的消息序列号来检测消息漏收发。FIX协议不支持单个消息的确认。采用的是监控消息时隙的方法来进行消息恢复和验证。所有的FIX消息都由一个唯一的序列号进行标示。每个FIX参与方必须为FIX会话维护两个序列号,一个是接收序列号,一个是发送序列号,两者都在建立FIX会话开始时初始化为1。当接收序列号与所希望得到的的正确序列号不必配时,必须采取纠错处理。
消息同步机制,若收到的消息序列号大于所期望的序列号,这个表明丢失了一些消息。fix给路透发送一个重传消息,并告诉对方应该重新传送消息的开始序列号和结束序列号。并把当前接收到的消息压入待处理消息队列,消息队列暂存标识修改为“Y”。重传报文中有重传标识,Fix按顺序处理重传报文,判断暂存中是否包含此消息序列号+1的消息,如果没有则等待重传消息;如果有则直接处理暂存中消息,暂存中消息被处理后,暂存标志设置为N。若收到的消息序列号小于所期望的序列号,则FIX会发送Logout消息,并断开登录连接,这时对方收到后,要么手动处理,要么自动尝试重新登录连接自动增长序列号,直到和对方期望值一样时候,双方建立会话。一般的FIX引擎在断开的时候,不会增长接收序列号,是为了让对方自动增长序列号,以达到自动重新连接的目的。此时对方增长是否按照顺序+1,如果双方序列号差值较大,是否出现多次尝试连接后才能正常建立连接,Logout消息中能否指定期望接收的消息序列号。
图8是根据本发明实施例的解析报文的流程图,如图8所示,接收报文后先解析报文头,校验报文头各字段,并判断MsgType是否被定义,如果未被定义则驳回;根据报文头中的MsgType调用相应报文解析方法解析报文体,当一个接收消息由于违背会话层规则,不能被正确的处理,应发送驳回消息。例如:当一个接收消息通过效验和检查,及数据体长度检查后没有有效的基础数据(如MsgType=&),将产生一个驳回消息,并监控,驳回时间、报文名、原因记录到日志中,且接收序列号应增加1,继续处理后续报文。
图9是根据本发明实施例的文体的解析配置的流程图,如图9所示,读取报文配置,生成报文字典,根据报文内容转换为实体类,通过尸体了获取报文头信息,具体包括FIX版本,报文序号,报文类型,若干没有设置报文序号,则发送注销报文,并立即关闭连接;如果消息类型为登录,不包含登录字段,则发送注销报文,并立即关闭连接;如果报文版本号不对,则发送注销报文,并立即关闭连接;如果信息未在报文配置中配置或报文解析失败,应发送拒绝报文。驳回消息场景如表1所示。
表1
报文校验,包括:
1、完整性校验,消息数据内容的完整性可以参用两种方式来验证:消息长度和校验和码检查。例8=FIX.4.3^9=65^35=A^34=1^49=BANZAI^52=20130703-15:55:08.609^56=EXEC^98=0^108=30^10=225^;
域的匹配关系,程序通过计算BodyLength域到CheckSum标记(“10=”)分界符的字符数,与BodyLength标示的消息长度进行比较来完成完整性效验。
ChekSum完整性检查,通过计算从域“8=”中“8”开始,包括紧跟在CheckSum标记域的分界符每个字符的2进制和同CheckSum进行比较得到。
2、报文规则校验,解析报文体后,做非空校验以及域的顺序校验和域值的有效性校验。
根据本发明的另一个实施例,还提供了一种报文处理装置,图10是根据本发明实施例的报文处理装置的框图,如图10所示,包括:
建立连接模块102,用于与***平台建立socket连接,通过所述socket连接与所述***平台建立通信链路;
第一接收模块104,用于基于所述通信链路,接收所述***平台发送的金融信息交换协议FIX格式报文;
转换模块106,用于将所述FIX格式报文转换为XML格式报文;
处理模块108,用于对所述XML格式报文进行处理。
可选地,所述建立连接模块102包括:
查找子模块,用于基于网络层使用的IP协议,根据IP地址和端口号查找目标主机;
建立子模块,用于为所述目标主机创建Socket实例,根据所述Socket实例与***平台建立所述Socket连接,其中,所述Socket实例唯一代表所述目标主机上一个应用程序的通信链路。
可选地,所述装置还包括:
第二接收模块,用于接收所述***平台发送的登录请求,其中,所述登录请求中携带有心跳间隔参数;
认证模块,用于对所述登录请求进行认证,得到认证结果;
返回模块,用于在所述认证结果为通过之后,向所述***平台返回登录成功的登录响应;
第一确定模块,用于根据所述心跳间隔参数确定所述***平台是否正常。
可选地,所述第一确定模块包括:
发送子模块,用于向所述***平台发送心跳报文;
第一确定子模块,用于若在预设倍数的心跳间隔时间内收到心跳报文,确定所述***平台正常;
第二确定子模块,用于若在预设倍数的心跳间隔时间内未收到心跳报文,则向所述***平台发送测试报文;如果未收到测试回复报文,确定所述***平台异常;如果收到测试回复报文,确定所述***平台正常。
可选地,所述装置还包括:
获取模块,用于获取所述FIX格式报文中的接收序列号;
检测模块,用于通过所述序列号与所希望得到的正确序列号检测是否存在消息漏收发;
纠错模块,用于当所述接收序列号与所希望得到的正确序列号不必配时,确定存在消息漏收发,进行纠错处理。
可选地,所述装置还包括:
第一解析模块,用于解析所述FIX格式报文的报文头,校验报文头各字段;
第二解析模块,用于在MsgType被定义的情况下,根据报文头中的MsgType调用对应的报文解析方式解析所述FIX格式报文的报文体;
第二确定模块,用于根据所述报文体确定满足预设的会话层规则。
可选地,所述转换模块106包括:
读取子模块,用于读取所述FIX格式报文的报文配置;
生成子模块,用于根据所述报文配置生成报文内容;
转换子模块,用于将所述报文内容转换为实体类;
获取子模块,用于通过所述实体类获取报文头信息;
组装子模块,用于根据所述报文头信息与所述报文体组装所述XML格式报文。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,与***平台建立socket连接,通过所述socket连接与所述***平台建立通信链路;
S2,基于所述通信链路,接收所述***平台发送的金融信息交换协议FIX格式报文;
S3,将所述FIX格式报文转换为XML格式报文;
S4,对所述XML格式报文进行处理。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,与***平台建立socket连接,通过所述socket连接与所述***平台建立通信链路;
S2,基于所述通信链路,接收所述***平台发送的金融信息交换协议FIX格式报文;
S3,将所述FIX格式报文转换为XML格式报文;
S4,对所述XML格式报文进行处理。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种报文处理方法,其特征在于,包括:
与***平台建立socket连接,通过所述socket连接与所述***平台建立通信链路;
基于所述通信链路,接收所述***平台发送的金融信息交换协议FIX格式报文;
将所述FIX格式报文转换为XML格式报文;
对所述XML格式报文进行处理。
2.根据权利要求1所述的方法,其特征在于,与***平台建立socket连接包括:
基于网络层使用的IP协议,根据IP地址和端口号查找目标主机;
为所述目标主机创建Socket实例,根据所述Socket实例与***平台建立所述Socket连接,其中,所述Socket实例唯一代表所述目标主机上一个应用程序的通信链路。
3.根据权利要求1所述的方法,其特征在于,在基于所述通信链路,接收所述***平台发送的金融信息交换协议FIX格式报文之前,所述方法还包括:
接收所述***平台发送的登录请求,其中,所述登录请求中携带有心跳间隔参数;
对所述登录请求进行认证,得到认证结果;
在所述认证结果为通过之后,向所述***平台返回登录成功的登录响应;
根据所述心跳间隔参数确定所述***平台是否正常。
4.根据权利要求3所述的方法,其特征在于,根据所述心跳间隔参数确定所述***平台是否正常包括:
向所述***平台发送心跳报文;
若在预设倍数的心跳间隔时间内收到心跳报文,确定所述***平台正常;
若在所述预设倍数的心跳间隔时间内未收到心跳报文,则向所述***平台发送测试报文;如果未收到测试回复报文,确定所述***平台异常;如果收到测试回复报文,确定所述***平台正常。
5.根据权利要求1所述的方法,其特征在于,在基于所述通信链路,接收所述***平台发送的金融信息交换协议FIX格式报文之后,所述方法还包括:
获取所述FIX格式报文中的接收序列号;
通过所述序列号与所希望得到的正确序列号检测是否存在消息漏收发;
当所述接收序列号与所希望得到的正确序列号不必配时,确定存在消息漏收发,进行纠错处理。
6.根据权利要求1所述的方法,其特征在于,在将所述FIX格式报文转换为XML格式报文之前,所述方法还包括:
解析所述FIX格式报文的报文头,校验报文头各字段;
在MsgType被定义的情况下,根据报文头中的MsgType调用对应的报文解析方式解析所述FIX格式报文的报文体;
根据所述报文体确定满足预设的会话层规则。
7.根据权利要求6所述的方法,其特征在于,将所述FIX格式报文转换为XML格式报文包括:
读取所述FIX格式报文的报文配置;
根据所述报文配置生成报文内容;
将所述报文内容转换为实体类;
通过所述实体类获取报文头信息;
根据所述报文头信息与所述报文体组装所述XML格式报文。
8.一种报文处理装置,其特征在于,包括:
建立连接模块,用于与***平台建立socket连接,通过所述socket连接与所述***平台建立通信链路;
第一接收模块,用于基于所述通信链路,接收所述***平台发送的金融信息交换协议FIX格式报文;
转换模块,用于将所述FIX格式报文转换为XML格式报文;
处理模块,用于对所述XML格式报文进行处理。
9.一种报文处理***,其特征在于,至少包括权利要求8所述的装置。
10.一种计算机可读的存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至7任一项中所述的方法。
11.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111308772.8A CN114040008B (zh) | 2021-11-05 | 一种报文处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111308772.8A CN114040008B (zh) | 2021-11-05 | 一种报文处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114040008A true CN114040008A (zh) | 2022-02-11 |
CN114040008B CN114040008B (zh) | 2024-07-30 |
Family
ID=
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116016725A (zh) * | 2023-03-24 | 2023-04-25 | 深圳开鸿数字产业发展有限公司 | 信息传输方法、计算机设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528823A (zh) * | 2016-11-18 | 2017-03-22 | 中国银行股份有限公司 | 一种报文配置及输出方法及装置 |
US20170103078A1 (en) * | 2015-10-09 | 2017-04-13 | Bank Of America Corporation | System for copybook flat data conversion and inline transformation |
CN107135188A (zh) * | 2016-02-29 | 2017-09-05 | 阿里巴巴集团控股有限公司 | 金融信息交换fix协议的业务实现方法、装置及*** |
CN111447257A (zh) * | 2020-03-09 | 2020-07-24 | 中国建设银行股份有限公司 | 报文转换方法和装置 |
CN112948306A (zh) * | 2021-03-30 | 2021-06-11 | 中国建设银行股份有限公司 | 扩展***接口的方法和装置 |
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170103078A1 (en) * | 2015-10-09 | 2017-04-13 | Bank Of America Corporation | System for copybook flat data conversion and inline transformation |
CN107135188A (zh) * | 2016-02-29 | 2017-09-05 | 阿里巴巴集团控股有限公司 | 金融信息交换fix协议的业务实现方法、装置及*** |
CN106528823A (zh) * | 2016-11-18 | 2017-03-22 | 中国银行股份有限公司 | 一种报文配置及输出方法及装置 |
CN111447257A (zh) * | 2020-03-09 | 2020-07-24 | 中国建设银行股份有限公司 | 报文转换方法和装置 |
CN112948306A (zh) * | 2021-03-30 | 2021-06-11 | 中国建设银行股份有限公司 | 扩展***接口的方法和装置 |
Non-Patent Citations (1)
Title |
---|
QLCVFF42: "金融信息交换协议-FIX_图文", pages 2 - 10, Retrieved from the Internet <URL:https://www.docin.com/p-2020948068.html> * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116016725A (zh) * | 2023-03-24 | 2023-04-25 | 深圳开鸿数字产业发展有限公司 | 信息传输方法、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3013086B1 (en) | Method, apparatus and electronic device for connection management | |
US8341274B2 (en) | Method, terminal, and computer readable media for processing message | |
CN110365741B (zh) | 一种连接建立方法及中转服务器 | |
CN1819593B (zh) | 信息处理器和数据传输***及方法 | |
US20110060902A1 (en) | Vpn connection system and vpn connection method | |
CN109151043A (zh) | 基于云服务的消息传输*** | |
CN111064755B (zh) | 一种数据保护方法、装置、计算机设备和存储介质 | |
CN106330483B (zh) | 信息获取方法、客户端设备和服务端设备 | |
CN110290015A (zh) | 远程部署方法、装置及存储介质 | |
CN110677383A (zh) | 防火墙开墙方法、装置、存储介质及计算机设备 | |
CN103051598A (zh) | 安全接入互联网业务的方法、用户设备和分组接入网关 | |
CN113259918A (zh) | 设备的绑定方法及*** | |
CN114040008B (zh) | 一种报文处理方法及装置 | |
CN114040008A (zh) | 一种报文处理方法及装置 | |
CN111064729B (zh) | 报文的处理方法及装置、存储介质和电子装置 | |
CN109286665B (zh) | 实时移动游戏长链接处理方法及装置 | |
CN114022278B (zh) | 一种模拟交易处理方法及装置 | |
CN104796263B (zh) | 用户身份验证方法和装置 | |
CN114205248B (zh) | 模拟超时响应方法、装置、设备及存储介质 | |
CN103312753A (zh) | 一种物联网通信方法和装置 | |
CN113472810B (zh) | 一种基于tcp/ip协议socket通信的方法及*** | |
CN106304071B (zh) | 一种网络接入认证方法、接入认证设备及*** | |
CN113794620A (zh) | 消息发送方法、装置、设备、***与存储介质 | |
CN113204492A (zh) | 安卓应用的测试方法及装置 | |
CN110851116A (zh) | 一种嵌入式***消息交互中间件 |
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 |