CN113973104B - 基于事件的二进制通讯协议的交易系统及方法 - Google Patents

基于事件的二进制通讯协议的交易系统及方法 Download PDF

Info

Publication number
CN113973104B
CN113973104B CN202111088053.XA CN202111088053A CN113973104B CN 113973104 B CN113973104 B CN 113973104B CN 202111088053 A CN202111088053 A CN 202111088053A CN 113973104 B CN113973104 B CN 113973104B
Authority
CN
China
Prior art keywords
message
layer
protocol
header
architecture
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.)
Active
Application number
CN202111088053.XA
Other languages
English (en)
Other versions
CN113973104A (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.)
Shanghai Jinshida Software Technology Co ltd
Original Assignee
Shanghai Jinshida Software Technology Co 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 Shanghai Jinshida Software Technology Co ltd filed Critical Shanghai Jinshida Software Technology Co ltd
Priority to CN202111088053.XA priority Critical patent/CN113973104B/zh
Publication of CN113973104A publication Critical patent/CN113973104A/zh
Application granted granted Critical
Publication of CN113973104B publication Critical patent/CN113973104B/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/03Protocol definition or specification 
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms

Abstract

本发明提供了基于事件的二进制通讯协议的交易系统,用于系统各模块之间进行消息交换所需的通讯协议的架构;该协议包括通讯协议的体系结构、报文格式和运作机制,通过IO操作、socket套接字连接四层架构;所述架构分为四层,每层对应不同的报文结构,分别为通道层、心跳加密层、报文解析层和用户层;依靠低层驱动反应器进行事件驱动,反应器为一个独立的线程,用于处理三种事件:IO输入输出操作、定时器和消息;所述架构用于处理控制消息和应用消息以及容错控制信息。本发明将结构化报文的序列化、反序列化操作,协议连接的心跳保活;通过设计基于事件触发的二进制通讯协议,来高效完成模块、系统间的消息交换,提升系统整体吞吐量并降低延时。

Description

基于事件的二进制通讯协议的交易系统及方法
技术领域
本发明属于计算机技术领域,具体涉及基于事件的二进制通讯协议的交易系统及方法。
背景技术
在为金融机构的自营部门开发面向贵金属交易所的交易管理系统时,从整体的系统设计出发,会有通讯服务模块、各类业务服务模块、前置、报盘等程序模块,这些程序模块之间均会发生各类控制、业务类消息数据的高频率交换,因此设计基于事件的二进制通讯协议来高效完成模块间的消息交换。
不同的系统、不同的模块之间,需要进行各类消息交换,比较常见的消息格式XML、JSON等,此类消息格式表达能力强但是报文体积大、解析复杂,在网络带宽有限、系统之间延时要求较低、消息交换高频场景下,此类消息格式表现差强人意。
发明内容
本发明的目的在于基于事件的二进制通讯协议的交易系统及方法,通过设计基于事件触发的二进制通讯协议,来高效完成模块、系统间的消息交换,提升系统整体吞吐量并降低延时。
本发明的技术方案是:
第一方面,本发明提供了基于事件的二进制通讯协议的交易系统,
用于系统各模块之间进行消息交换所需的通讯协议的架构;
该系统包括通讯协议的体系结构、报文格式和运作机制,通过IO操作、socket套接字连接四层架构;
所述架构分为四层,每层对应不同的报文结构,分别为通道层、心跳加密层、报文解析层和用户层;依靠低层驱动反应器进行事件驱动,反应器为一个独立的线程,用于处理三种事件:IO输入输出操作、定时器和消息;
所述架构用于处理控制消息和应用消息以及容错控制信息,
所述控制信息包括4个字节的报头、80个字节的控制头和消息正文,所述消息正文包括数据域头和数据域;
所述应用消息包括4个字节的报头和信息正文,所述信息正文包括80个字节的控制头和二进制数据块。
所述通道层用于底层驱动的通信发送和接收报文,对应的发送和接收报文为CChannelPackage,用于检查接收的报文有效性和增加该层协议信息;
所述心跳加密层将报文处理完以后,将报文推给其上层CFMPProtocol,CFMPProtocol检查心跳和加密,对应的报文为CFMPPackage,同时将所有信息记录在CFMPPackage对应的报头中;
所述报文解析层将报文处理完以后,将报文推送给其上层协议CFTCPProtocol,CFTCPProtocol对应的报文为CFTCPPackage,CFTCPProtocol对最终FTCP报文进行解析、有效性验证,已经提供抽取报文信息可视化后以供用户层进行使用;
CFTCPProtocol报文解析层将报文处理完以后,将报文推送给它的上层协议CFTCPPackageHandler,用户层通过继承该类,获取最终的域数据来处理业务;
所述报文解析层为用户层的应用协议。
第二方面,本发明提供了基于事件的二进制通讯协议的交易系统的方法,具体包括如下步骤:
发送数据过程为用户层接收信息,增加FTCP报头,推送至报文解析层,报文解析层增加FMP报头后,推送至心跳加密层,经心跳加密层增加Channel层报头处理后至通道层,与底层驱动的反应器进行事件驱动;接收数据过程为发送过程反向过程。
第三方面,本发明还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现第二方面所述方法的步骤。
与现有技术的有益效果是将结构化报文的序列化、反序列化操作,协议连接的心跳保活;该协议包括通讯协议的体系结构、报文格式和运作机制,规范了系统各模块之间的通讯,通过设计基于事件触发的二进制通讯协议,来高效完成模块、系统间的消息交换,提升系统整体吞吐量并降低延时。
附图说明
图1为本发明提供的控制信息的格式结构图;
图2为本发明提供的应用信息的格式结构图;
图3为本发明提供的接收数据过程的流程图;
图4为本发明提供的发送数据过程的流程图。
具体实施方式
下面结合实施例对本发明的具体实施方式进行描述,以便更好的理解本发明。
实施例
消息格式定义
系统交换的消息包括控制消息和应用消息,两类消息都包含了一个四字节的报头,表示整个消息报文的长度,在信息正文部分有一个消息控制报头,它描述消息ID和消息路径等控制信息。如图1和图2所示,两类消息的区别是,在消息正文中控制消息包含了可解析的数据域头和数据域,而应用消息的消息正文包含了二进制数据块。
容错控制消息是平台内部的控制消息,主要包含:状态切换控制类、消息同步类、消息订阅类。
如图3-4所示,该系统还包括CChannelProtocol(通道层)、CFMPProtocol(心跳加密层)、CFTCPProtocol(报文解析层)和CFTCPPackageHandler(用户层),通过IO操作、socket套接字连接四层架构。
CChannelProtocol通道层
最底层的协议,负责底层的通信发送和接收报文,对应的发送和接收报文为CChannelPackage,负责检查接收的报文有效性和增加本层协议信息,
本层协议具体步骤如下:
1)CCacheList:发送缓冲区,发送的所有二进制报文都是先放到缓冲区中,CCacheList保存的是一个CCacheNode的链,有很多CCacheNode组成链条,每个CCacheNode可以放很多个报文,一旦CCacheNode放满以后重新创建一个新的CCacheNode放到这个链的后面。
2)CChannelPackage:接收报文,通过接收socket(套接字)数据,每次读取当前头指针-当前尾指针个字符,组装成一个CChannelPackage,再往上次协议推送。
3)HandleInput:负责接收报文,底层Reactor负责检查是否有消息要接收,继承自CProtocol,CProtocol为所有协议的基类。
4)HandleOutput:负责发送报文,,底层Reactor负责检查是否有消息要接收,同样继承自CProtocol。
5)CChannelControl:协议栈容器,继承自CEventHandler,CEventHandler为所有Reactor挂接的事件类的基类,提供了统一的开放接口。CChannelControl协议栈容器中装载了CChannelProtocol协议,为FTCP协议的最底层协议栈容器。
CFMPProtocol心跳加密层
CChannelProtocol层将报文处理完以后,将报文推给它的上层CFMPProtocol,CFMPProtocol主要负责检查心跳和加密,对应的报文为CFMPPackage,该层的所有信息记录在CFMPPackage对应的报头中。
心跳:所有的设备检查与总线之间是否还连接通过心跳检测的方式,通过该层定义的最近发送报文和接收报文时间,来决定发送心跳包,心跳报文有一个专门的标志FMPExtTagKeepAlive,保存在CFMPPackage报文头部,收到心跳报文表示设备正常,丢弃该报文,不向上层推送,如果心跳超时断开连接
数据加密:在广域网中传输数据时需要加密,防止报文被人截取,通过该层将数据加密解密以后进行传送,保证数据的安全性
本层协议具体步骤如下:
1)Pop:接收到从CChannelProtocol上来的报文以后,检查是否为心跳报文,如果是则扔掉,不是则向上层推送报文
2)Push:发送报文,检查是否要加密,如果要加密,则将数据加密后再推给CChannelProtocol去处理。
3)OnTimer:控制心跳发送,如果当前时间–最近发送时间大于设置的时间则向外发送一个心跳报文,检查之间的连接是否正常;如果当前时间–最新读取时间大于设置的时间则认为之间的连接已经断开。
CFTCPProtocol报文解析层
CFMPProtocol层将报文处理完以后,将报文推送给它的上层协议CFTCPProtocol,CFTCPProtocol对应的报文为CFTCPPackage,CFTCPProtocol主要负责对最终FTCP报文进行解析、有效性验证,已经提供抽取报文的一系列工具以供用户层进行使用,这一层也称为报文解析层。
报文解析:从低层一直推送上来的报文,进行验证长度、域的正确性,保证数据正确性。
报文抽取:通过设计模式中的Iterator,对多个域进行数据获取。
本层协议关键实现:
1)CFTCPPackage:由CFMPProtocol推上来的报文,由CFTCPPackage处理,该类主要提供报文有效性检查,包括长度和域的有效性;提供增加域的方法AddField和抽取域的方法GetXXXXField;提供调试报文的方法等。
2)TFTCPHeader:FTCP报头,保存在CFTCPPackage中,主要标示标识该消息在持久流中的编号、标示上层协议的协议ID、FTCP报的tid、FTCP数据报的连续标志、FTCP报的序号、数据域个数和数据域长度。
3)CFTCPControl:协议栈容器,继承自CChannelControl,容纳了前3层协议,CChannelProtocol为最底层,CFMPProtocol为第二层,CFTCPProtocol为第三层,所有的用户层需要继承该协议栈来封装自己的协议栈。
CFTCPPackageHandler用户层
CFTCPProtocol报文解析层将报文处理完以后,将报文推送给它的上层协议CFTCPPackageHandler,该层协议是用户层的应用协议,用户通过继承该类,获取最终的域数据来处理自己的业务,操作的仍然是FTCP层的报文。这一层为用户实现层
本层协议关键实现:
1)Demux:封装了用户需要处理的接口HandlePackage,所有从底层上来的数据报文都是通过该接口使用。
2)SendPackage,PreparePackage:提供发送报文的接口。
底层驱动:该协议依靠低层驱动Reactor(反应器)进行事件驱动,Reactor是一个独立的线程,相当于CPU(中央处理器)中的时间片,它处理三种事件:IO(输入输出)操作、定时器和消息,IO操作:该四层协议结构为IO操作,socket(套接字)连接;定时器:定时处理事件,在指定的时间间隔内执行某些操作;消息:处理消息事件。
关键实现:
1)CEventHandler:为事件handler,所有Reactor处理的都是事件,都是从该类继承,该类提供接口HandleInput为IO输入操作、HandleOutput为IO输出操作、OnTimer为定时器、SendMsg和HandleMessage为消息处理;
2)CReactor:为Reactor封装类,提供了事件注册方法:RegisterIO和RemoveIO为注册IO和取消IO事件、RegisterTimer和RemoveTimer为注册定时器和取消定时器、SendMsg和DispatchMsg为消息发送和处理分发。该类为一个线程,提供了循环处理IO操作、定时器和消息。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

Claims (4)

1.基于事件的二进制通讯协议的交易系统,其特征在于:
该系统包括通讯协议的体系结构、报文格式和运作机制,通过IO操作、socket套接字连接四层架构;
所述架构分为四层,每层对应不同的报文结构,分别为CChannelProtocol通道层、CFMPProtocol心跳加密层、CFTCPProtocol报文解析层和CFTCPPackageHandler用户层;依靠低层驱动反应器进行事件驱动,反应器为一个独立的线程,用于处理三种事件:IO输入输出操作、定时器和消息;
其中,CChannelProtocol层负责底层的发送和接收报文;CFMPProtocol层负责检查心跳和加密;CFTCPProtocol层负责对报文进行解析和有效性验证;CFTCPPackageHandler层的协议为用户层的应用协议;
所述架构用于处理控制消息和应用消息以及容错控制信息,所述控制信息包括4个字节的报头、80个字节的控制头和消息正文,所述消息正文包括数据域头和数据域;所述应用消息包括4个字节的报头和信息正文,所述信息正文包括80个字节的控制头和二进制数据块。
2.根据权利要求1所述的基于事件的二进制通讯协议的交易系统的方法,其特征在于:
所述通道层用于底层驱动的发送和接收报文,对应的发送和接收报文为CChannelPackage,用于检查接收的报文有效性和增加该层协议信息;
CChannelProtocol层将报文处理完以后,将报文推给其上层CFMPProtocol,CFMPProtocol检查心跳和加密,对应的报文为CFMPPackage,同时将所有信息记录在CFMPPackage对应的报头中;
CFMPProtocol层将报文处理完以后,将报文推送给其上层协议CFTCPProtocol,CFTCPProtocol对应的报文为CFTCPPackage,CFTCPProtocol对最终FTCP报文进行解析、有效性验证,提供抽取报文信息可视化后以供用户层进行使用;CFTCPProtocol报文解析层将报文处理完以后,将报文推送给它的上层协议CFTCPPackageHandler,用户层获取最终的域数据来处理业务;
所述报文解析层为用户层的应用协议。
3.根据权利要求1所述的基于事件的二进制通讯协议的交易系统的方法,其特征在于,具体包括如下步骤:
发送数据过程为用户层接收信息,增加FTCP报头,推送至报文解析层,报文解析层增加FMP报头后,推送至心跳加密层,经心跳加密层增加Channel层报头处理后至通道层,与底层驱动的反应器进行事件驱动;接收数据过程为发送过程反向过程。
4.一种计算机存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求2-3所述方法的步骤。
CN202111088053.XA 2021-09-16 2021-09-16 基于事件的二进制通讯协议的交易系统及方法 Active CN113973104B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111088053.XA CN113973104B (zh) 2021-09-16 2021-09-16 基于事件的二进制通讯协议的交易系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111088053.XA CN113973104B (zh) 2021-09-16 2021-09-16 基于事件的二进制通讯协议的交易系统及方法

Publications (2)

Publication Number Publication Date
CN113973104A CN113973104A (zh) 2022-01-25
CN113973104B true CN113973104B (zh) 2024-03-15

Family

ID=79586631

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111088053.XA Active CN113973104B (zh) 2021-09-16 2021-09-16 基于事件的二进制通讯协议的交易系统及方法

Country Status (1)

Country Link
CN (1) CN113973104B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08195783A (ja) * 1995-01-13 1996-07-30 Nippon Telegr & Teleph Corp <Ntt> マルチレイヤプロトコル処理方法及びその装置
US8176145B1 (en) * 2000-05-19 2012-05-08 The Travelers Indemnity Company System and method for providing insurance data processing services via a user interface
CN103036917A (zh) * 2011-09-29 2013-04-10 北京神州泰岳软件股份有限公司 客户端平台的实现方法及客户端平台
CN105162858A (zh) * 2015-08-20 2015-12-16 中国人民解放军国防科学技术大学 针对corba中间件的通用传输协议框架、通信系统及方法
CN105993155A (zh) * 2013-11-25 2016-10-05 微软技术许可有限责任公司 通信系统架构
CN109588059A (zh) * 2016-05-13 2019-04-05 瑞典爱立信有限公司 用于无线通信网络的网络架构、方法和设备
CN110809008A (zh) * 2019-11-21 2020-02-18 深圳赛动生物自动化有限公司 基于工业互联网协议架构的报文通信方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8842657B2 (en) * 2003-10-15 2014-09-23 Qualcomm Incorporated High speed media access control with legacy system interoperability
US7600010B2 (en) * 2004-10-12 2009-10-06 Eaton Corporation Method of managing communication buffers employing an application framework for a plurality of communication layers and node employing the same
US8631425B2 (en) * 2007-05-16 2014-01-14 Sap Ag Method for processing of application transaction in a web services framework

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08195783A (ja) * 1995-01-13 1996-07-30 Nippon Telegr & Teleph Corp <Ntt> マルチレイヤプロトコル処理方法及びその装置
US8176145B1 (en) * 2000-05-19 2012-05-08 The Travelers Indemnity Company System and method for providing insurance data processing services via a user interface
CN103036917A (zh) * 2011-09-29 2013-04-10 北京神州泰岳软件股份有限公司 客户端平台的实现方法及客户端平台
CN105993155A (zh) * 2013-11-25 2016-10-05 微软技术许可有限责任公司 通信系统架构
CN105162858A (zh) * 2015-08-20 2015-12-16 中国人民解放军国防科学技术大学 针对corba中间件的通用传输协议框架、通信系统及方法
CN109588059A (zh) * 2016-05-13 2019-04-05 瑞典爱立信有限公司 用于无线通信网络的网络架构、方法和设备
CN110809008A (zh) * 2019-11-21 2020-02-18 深圳赛动生物自动化有限公司 基于工业互联网协议架构的报文通信方法及装置

Also Published As

Publication number Publication date
CN113973104A (zh) 2022-01-25

Similar Documents

Publication Publication Date Title
EP2011013B1 (en) Merging multi-line log entries
EP0928090A2 (en) System and method for communicating data
US20050273391A1 (en) Method and system for more efficiently managing complex payloads in a point of sale system
US8423792B2 (en) Apparatus, system, and method for communication between a driver and an encryption source
CN106961430B (zh) 一种基于二维码的物理隔离传输方法及物理隔离传输装置
TW533718B (en) Internal communication protocol for data switching equipment
CN112714047A (zh) 基于工控协议流量的测试方法、装置、设备及存储介质
CN114500690A (zh) 接口数据处理方法、装置、电子设备及存储介质
EP3014817B1 (en) Hardware management communication protocol
CN112614331B (zh) 抄读电能表事件的方法与电能表抄读事件系统
CN113973104B (zh) 基于事件的二进制通讯协议的交易系统及方法
CN108881124B (zh) 在模块间实现高性能通信的方法、系统、存储介质及设备
CN101212480B (zh) 在usb主机和usb装置之间通信的方法和设备
CN113852610B (zh) 报文处理方法、装置、计算机设备和存储介质
CN115913473A (zh) 一种数据选择性重传方法及其系统、存储介质、电子设备
CN112948093B (zh) 一种卫星重构系统及其数据处理方法、星地链路通信系统
CN114979307A (zh) 通信协议的解析方法、智能终端及存储介质
CN107592294A (zh) 数据上报方法及装置
US8331788B2 (en) Encapsulation scheme for optical over Ethernet
CN117411929B (zh) 业务流程监控方法、装置、设备及存储介质
CN113094762B (zh) 一种数据处理方法、装置及签名验签服务器
CN109005174A (zh) 数据通信方法、装置、计算机存储介质及设备
CN114374812B (zh) Dp接口辅助通道的通信信息监测设备、方法及系统
CN116155562A (zh) 一种基于sas协议解析的服务器数据加密保护方法及装置
US20050066334A1 (en) Method and system for monitoring communication and monitoring protocol

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
CB02 Change of applicant information

Country or region after: China

Address after: 210 Liangjing Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 201203

Applicant after: Shanghai Jinshida Software Technology Co.,Ltd.

Address before: 210 Liangjing Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 201203

Applicant before: Shanghai Kingstar Software Technology Co.,Ltd.

Country or region before: China

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant