发明内容
基于此,有必要针对上述技术问题,提供一种交易数据处理方法、装置、计算机设备和存储介质。
一种交易数据处理方法,交易网关组件、交易引擎组件和系统报盘服务组件位于同一服务器中,所述方法包括:
所述交易网关组件接收交易委托请求;
所述交易网关组件根据所述交易委托请求生成交易指令;
所述交易网关组件通过所述服务器的共享内存向所述交易引擎组件发送所述交易指令;
所述交易引擎组件通过所述服务器的共享内存向所述系统报盘服务组件发送所述交易指令;
所述系统报盘服务组件根据所述交易指令生成报盘请求;
所述系统报盘服务组件基于所述报盘请求进行报盘处理。
一种交易数据处理装置,交易网关组件模块、交易引擎组件模块和系统报盘服务组件模块位于同一服务器中;包括:
所述交易网关组件模块,用于接收交易委托请求;
所述交易网关组件模块,还用于根据所述交易委托请求生成交易指令;
所述交易网关组件模块,还用于通过所述服务器的共享内存向所述交易引擎组件模块发送所述交易指令;
所述交易引擎组件模块,用于通过所述服务器的共享内存向所述系统报盘服务组件发送所述交易指令;
所述系统报盘服务组件模块,用于根据所述交易指令生成报盘请求;
所述系统报盘服务组件模块,还用于基于所述报盘请求进行报盘处理。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
所述交易网关组件接收交易委托请求;
所述交易网关组件根据所述交易委托请求生成交易指令;
所述交易网关组件通过所述服务器的共享内存向所述交易引擎组件发送所述交易指令;
所述交易引擎组件通过所述服务器的共享内存向所述系统报盘服务组件发送所述交易指令;
所述系统报盘服务组件根据所述交易指令生成报盘请求;
所述系统报盘服务组件基于所述报盘请求进行报盘处理。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
所述交易网关组件接收交易委托请求;
所述交易网关组件根据所述交易委托请求生成交易指令;
所述交易网关组件通过所述服务器的共享内存向所述交易引擎组件发送所述交易指令;
所述交易引擎组件通过所述服务器的共享内存向所述系统报盘服务组件发送所述交易指令;
所述系统报盘服务组件根据所述交易指令生成报盘请求;
所述系统报盘服务组件基于所述报盘请求进行报盘处理。
上述交易数据处理方法、装置、计算机设备和存储介质,交易网关根据交易委托请求生成交易指令,并通过服务器的共享内存向交易引擎组件发送交易指令,根据交易指令生成报盘请求以完成报盘处理,组件间的传输无同步损耗,能够减小系统组件的传输时延以及避免网络传输开销。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的交易数据处理方法,可以应用于如图1所示的应用环境中。图1包括终端110和服务器120。终端110和服务器120通过网络进行信息传输。终端110中安装有客户端,客户端可以是订单管理系统的客户端。服务器120以用独立的服务器或者是多个服务器组成的服务器集群来实现。服务器120中包括交易网关组件1202、交易引擎组件1204和系统报盘服务组件1206。交易网关组件1202、交易引擎组件1204和系统报盘组件1206两两之间可通过服务器的共享内存进行数据传输。交易网关组件1202接收交易委托请求,交易网关组件1202根据交易委托请求生成交易指令;交易网关组件1202通过服务器的共享内存以及交易引擎组件1204向系统报盘服务组件1206发送交易指令;系统报盘服务组件1206根据交易指令生成报盘请求;系统报盘服务组件1206基于报盘请求进行报盘处理。可以理解的是,本申请各个实施例中的方案可仅应用于服务器120中。
在一个实施例中,如图2所示,提供了一种交易数据处理方法,以该方法应用于图1中的服务器为例进行说明,服务器中包括交易网关组件、交易引擎组件和系统报盘服务组件,包括以下步骤:
步骤202,交易网关组件接收交易委托请求。
其中,交易委托请求是订单管理系统发起的基于外部协议生成的外部请求。交易委托请求用于通过服务器完成交易。交易委托请求的请求内容主要是订单系统所关注的字段。交易委托请求交易委托请求中包括但不限于以下数据:业务类型、账户编号、市场编号、证券编码、买卖方向、数量、价格、市价类型。交易网关组件(GateWay,GW)用于与客户端进行信息交互。
具体地,用户在订单管理系统发起交易委托请求,并向交易网关组件发送该交易委托请求。交易网关组件接收该交易委托请求。
步骤204,交易网关组件根据交易委托请求生成交易指令。
其中,交易指令是交易网关组件收到交易委托请求后转换而成的内部消息,除了交易委托请求会包含的内容之外,也会再多包含一些仅交易引擎组件才会使用的字段,比如订单序号、交易单元等。
具体地,交易网关组件将交易委托请求转换为适配于服务器的消息协议的交易委托请求,并在交易委托请求中增加交易引擎所使用的字段,从而获得交易指令。
步骤206,交易网关组件通过服务器的共享内存向交易引擎组件发送交易指令。
其中,共享内存(Shared Memory)是允许两个不相关的进程访问同一个逻辑内存。共享内存是两个正在运行的进程之间共享和传递数据的一种非常有效的方式。
具体地,交易网关组件、交易引擎组件和系统报盘服务组件通过服务器的共享内存进行通信。(怎么进行通信的)交易网关组件通过服务器的共享内存向交易引擎组件发送交易指令。
步骤208,交易引擎组件通过服务器的共享内存向系统报盘服务组件发送交易指令。
具体地,系统报盘服务组件(Order Routing Service,ORS)用于对接交易所网关,以及将内部的交易指令生成交易所所支持的报盘请求,以完成与交易所之间的交易。并且,系统服务组件还接收交易所所返回的数据。
步骤210,系统报盘服务组件根据交易指令生成报盘请求。
其中,报盘请求是指交易所网关接收的消息,是由交易所所公开的协议所生成的。
具体地,系统报盘服务组件将由服务器内部消息协议生成的交易指令转换为交易所所支持的报盘请求。
步骤212,系统报盘组件基于报盘请求进行报盘处理。
具体地,系统报盘服务组件向交易所发送该报盘请求,使得交易所网关基于该报盘请求进行交易,以完成交易。
本实施例中的交易数据处理方法,交易网关根据交易委托请求生成交易指令,并通过服务器的共享内存向交易引擎组件发送交易指令,根据交易指令生成报盘请求以完成报盘处理,组件间的传输无同步损耗,能够减小系统组件的传输时延以及避免网络传输开销。
在一个实施例中,交易网关组件根据交易委托请求生成交易指令,包括:交易网关组件将交易委托请求转换为适配于服务器的消息协议的交易委托请求;交易网关组件在交易委托请求中增加交易引擎所需的管理字段,获得交易指令。
具体地,交易网关组件将从订单管理系统接收的交易委托请求转换为适配于该服务器的消息协议的交易委托请求。交易网关组件在交易委托请求中增加交易引擎所需要的一些管理字段。管理字段例如可以是订单序号、交易单元等。
本实施例中的交易数据处理方法,交易网关组件将交易委托请求转换为适配于服务器的消息协议的交易委托请求,并在交易委托请求中增加交易引擎所需的管理字段,获得交易指令,能够使得交易引擎记录本次交易,并且易于管理,在出现问题时可以迅速查找到对应的交易。
在一个实施例中,系统报盘服务组件根据交易指令生成报盘请求,包括:系统报盘服务组件按照交易所所支持的报盘协议格式将交易指令转化为报盘请求。
具体地,交易所是面对各个交易系统所设置的通用报盘协议。而交易指令是适配于该服务器的传输协议。
本实施例中交易数据处理方法,系统报盘服务组件按照交易所所支持的报盘协议格式将交易指令转化为报盘请求,能够使得服务器完成报盘请求,从而完成交易流程。
在一个实施例中,交易引擎组件通过服务器的共享内存向系统报盘服务组件发送交易指令,包括:
交易引擎组件基于交易指令进行合规检验以及资产检验,获得检验结果;
当检验结果为合格结果时,交易引擎组件通过服务器的共享内存向系统报盘服务组件发送交易指令。
其中,合规检验包括但不限于权限校验、字段合法性校验、指标校验。并且,权限校验、字段合法性校验和指标校验这三种校验方式的顺序不限。权限校验用于对交易指令中携带的用户信息进行权限相关校验。例如,用户A是否有权限创建交易指令。字段合法性校验用于对交易指令中用户所填写的字段是否合法进行校验。例如用户选择的交易资产是否在用户账户中存在。指标校验用于对交易指令中携带的交易数据是否满足券商规定的数据控制指标进行校验。例如,用户交易资源为1001份,而数据控制指标中只允许1000份的交易,那么该交易数据不满足数据控制指标所设置的条件。合格结果是指通过合规检验以及资产检验。
具体地,交易引擎组件基于交易指令进行合规检验以及资产检验,获得检验结果;当检验结果为合格结果时,交易引擎组件通过服务器的共享内存向系统报盘服务组件发送交易指令。
交易引擎组件基于交易指令进行合规检验,包括:交易引擎组件对交易指令中携带的用户信息进行权限校验;当确定该用户信息具有用户权限时,交易引擎组件基于交易指令中的字段进行字段合法性校验;当交易指令中的字段合法时,交易引擎组件基于交易指令中的交易数据以及预设交易指标进行指标校验;当指标校验通过时,确定交易指令符合交易规定。
资产校验包括但不限于资产量是否足够。交易引擎组件基于交易指令进行资产校验,包括:交易引擎组件基于交易指令中的交易数据以及交易指令中用户账号所对应的资产总值进行校验;当交易数据小于或等于资产总值时,确定该交易指令通过资产校验。
本实施例中的交易数据处理方法,交易引擎组件基于交易指令进行合规检验以及资产检验,获得检验结果;当检验结果为合格结果时,交易引擎组件通过服务器的共享内存向系统报盘服务组件发送交易指令,能够提高交易的成功性。
在一个实施例中,交易网关组件获取交易委托请求,包括:
交易网关组件接收订单管理系统发送的交易委托请求。
在系统报盘服务组件基于报盘请求进行报盘处理之后,该交易数据处理方法还包括:系统报盘服务组件通过服务器的共享内存向交易引擎返回报盘处理所获得的交易结果;交易引擎组件通过交易网关组件将交易结果返回至订单管理系统。
其中,订单管理系统所在服务器与交易网关组件不在同一服务器中。且订单管理系统可运行于终端上,用户通过订单管理系统可以提交交易委托请求。订单管理系统用于直接与用户进行交互。交易结果包括交易成功、交易失败、扣款成功、扣款失败等。
具体地,交易网关逐渐接收订单管理系统发送的交易委托请求。在系统报盘服务组件基于报盘请求进行报盘处理之后,系统报盘服务组件通过服务器的共享内存向交易引擎返回报盘处理所获得的交易结果。交易引擎组件将交易结果发送至交易网关组件。交易网关组件将交易结果返回至订单管理系统。
本实施例中,如图3所示,为另一个实施例中交易数据处理方法的流程示意图。图中包括订单管理系统,订单管理系统应用于终端。交易网关组件、交易引擎组件和系统报盘服务组件位于同一服务器中。交易所与包含交易网关组件、交易引擎组件和系统报盘服务组件的服务器不是同一服务器。
1、订单管理系统向交易网关组件发送交易委托请求。
2、交易网关组件根据交易委托请求生成交易指令,并向交易引擎组件发送该交易指令。
3、交易引擎组件向系统报盘服务组件发送该交易指令。
4、系统报盘服务组件根据交易指令生成报盘请求,并向交易所发送该报盘请求,以完成报盘处理。
5、交易所向系统报盘服务组件返回交易结果。
6、系统报盘服务组件向交易引擎组件返回该交易结果。
7、交易引擎组件根据交易结果更新交易指令所对应的交易数据,获得更新后的交易数据,向交易网关组件发送该更新后的交易数据。
8、交易网关组件向订单管理系统发送该更新后的交易数据。
本实施例中的交易数据处理方法,由于交易结果中包含了一些交易数据,并且交易网关组件是直接与订单管理系统直接进行对接的组件,那么当系统报盘服务组件获取到交易结果时,需要经过交易引擎,并通过交易网关组件将交易结果返回订单管理系统,使得流程更加完整,并且各组件之间分工明确。
在一个实施例中,交易引擎组件通过交易网关组件将交易结果返回至订单管理系统,包括:交易引擎组件根据交易结果更新交易指令所对应的交易数据,获得更新后的交易数据;交易引擎组件将更新后的交易数据通过交易网关组件返回至订单管理系统。
其中,交易结果中包含资产数值、指标数据等。交易引擎组件是控制核心交易数据的组件,所有的状态变化,需要优先在这里处理。
具体地,交易引擎组件根据交易结果更新交易指令所对应的交易数据,获得更新后的交易数据。例如,若交易所拒绝了,那冻结的资产需要解冻,累计的指标数据需要减掉等;若交易所成交了,那冻结的资产需要扣减等。交易引擎组件存储该更新后的交易数据。交易引擎组件通过交易网关组件将更新后的交易数据返回至交易网关组件。
本实施例中的交易数据处理方法,由于交易引擎组件是交易系统的核心组件,因此各种数据需要通过交易引擎组件进行处理,交易引擎组件根据交易结果更新交易指令所对应的交易数据,从而获得更新后的交易数据,交易引擎组件将更新后的交易数据通过交易网关组件返回至订单管理系统,那么交易引擎组件可以获得交易的各个状态,从而保证交易系统的正常运行。
在一个实施例中,该交易数据处理方法还包括:该服务器从指定服务器中拷贝交易网关组件的安装包、交易引擎组件的安装包和系统报盘组件的安装包;将交易网关组件的安装包、交易引擎组件的安装包和系统报盘组件的安装包部署在该服务器中。
其中,目标通信地址所对应的服务器是指包含该交易网关组件的安装包、交易引擎组件的安装包以及系统报盘组件的安装包的服务器。目标通信地址可以是指IP(Internet Protocol,互联网协议)地址。目标通信地址可以在该服务器中设定。并且目标通信地址所对应的服务器,可以与部署了交易网关组件、交易引擎组件和系统报盘组件的服务器是同一服务器。
具体地,该服务区从目标通信地址所对应的服务器中拷贝交易网关组件的安装包、交易引擎组件的安装包以及系统报盘组件的安装包,该将交易网关组件的安装包、交易引擎组件的安装包和系统报盘组件的安装包部署在自身的服务器中。
本实施例中,将不同组件部署到同一台机器上的实现方式如下:每个组件的部署会根据指定机器的IP去拷贝组件的安装包,部署到同一台机器就是指定同一个IP去拷贝,将所拷贝的组件安装包配置到同一个IP中。
本实施例中的交易数据处理方法,从目标通信地址所对应的服务器中拷贝交易网关组件的安装包、交易引擎组件的安装包和系统报盘组件的安装包,将网关组件的安装包、交易引擎组件的安装包和系统报盘组件的安装包部署在服务器中,能够使得交易网关组件、交易引擎组件和系统报盘服务组件位于同一服务器中,相对于网络传输,通过共享内存的方式能够提高数据传输效率。
在一个实施例中,组件未合并前,组件间的通信,即机器与机器间的通信,一般是网络通信,时间开销受限于网络通信的链路情况;组件合并后,组件间的通信,既可以是网络通信,也可以是华锐总线支持的共享内存通信。组件的合并部署使得组件与组件之间的通信成本降低,如不同主机上网络消耗与同一主机上的网络消耗,相对于分开组件部署,合并部署可以将消息通信路径减少,组件的通信因采用华锐的消息总线,在合并部署的情况下,可以由网络通信变更为共享内存通信,可极大得降低通信的时延开销。基于此,使用华锐消息总线(即在同一服务器中通过共享内存的方式进行数据传输)实现降低通信时延,在业务组件内部通过高效算法、内存计算等方式降低处理时延。
应该理解的是,虽然图2和3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2和3中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图4所示,提供了一种交易数据处理装置,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:交易网关组件模块402、交易引擎组件模块404和系统报盘服务组件406模块,交易网关组件模块402、交易引擎组件模块404和系统报盘服务组件406模块位于同一服务器中,其中:
交易网关组件模块402,用于接收交易委托请求;
交易网关组件模块402,还用于根据交易委托请求生成交易指令;
交易网关组件模块402,还用于通过服务器的共享内存向交易引擎组件模块404发送交易指令;
交易引擎组件模块404,用于通过服务器的共享内存向系统报盘服务组件406发送交易指令;
系统报盘服务组件406模块,用于根据交易指令生成报盘请求;
系统报盘服务组件406模块,还用于基于报盘请求进行报盘处理。
本实施例中的交易数据处理装置,交易网关根据交易委托请求生成交易指令,并通过服务器的共享内存向交易引擎组件发送交易指令,根据交易指令生成报盘请求以完成报盘处理,组件间的传输无同步损耗,能够减小系统组件的传输时延以及避免网络传输开销。
在一个实施例中,交易网关组件模块402用于将交易委托请求转换为适配于服务器的消息协议的交易委托请求;交易网关组件模块402还用于在交易委托请求中增加交易引擎所需的管理字段,获得交易指令。
本实施例中的交易数据处理装置,交易网关组件将交易委托请求转换为适配于服务器的消息协议的交易委托请求,并在交易委托请求中增加交易引擎所需的管理字段,获得交易指令,能够使得交易引擎记录本次交易,并且易于管理,在出现问题时可以迅速查找到对应的交易。
在一个实施例中,系统报盘服务组件406模块用于按照交易所所支持的报盘协议格式将交易指令转化为报盘请求。
本实施例中交易数据处理装置,系统报盘服务组件406按照交易所所支持的报盘协议格式将交易指令转化为报盘请求,能够使得服务器完成报盘请求,从而完成交易流程。
在一个实施例中,交易引擎组件模块404还用于:基于交易指令进行合规检验以及资产检验,获得检验结果;当检验结果为合格结果时,交易引擎组件通过服务器的共享内存向系统报盘服务组件406发送交易指令。
本实施例中的交易数据处理装置,交易引擎组件基于交易指令进行合规检验以及资产检验,获得检验结果;当检验结果为合格结果时,交易引擎组件通过服务器的共享内存向系统报盘服务组件406发送交易指令,能够提高交易的成功性。
在一个实施例中,交易网关组件模块402还用于接收订单管理系统发送的交易委托请求。系统报盘服务组件406模块还用于通过服务器的共享内存向交易引擎返回报盘处理所获得的交易结果。交易引擎组件模块404还用于通过交易网关组件将交易结果返回至订单管理系统。
本实施例中的交易数据处理装置,由于交易结果中包含了一些交易数据,并且交易网关组件是直接与订单管理系统直接进行对接的组件,那么当系统报盘服务组件406获取到交易结果时,需要经过交易引擎,并通过交易网关组件将交易结果返回订单管理系统,使得流程更加完整,并且各组件之间分工明确。
在一个实施例中,交易引擎组件模块404还用于根据交易结果更新交易指令所对应的交易数据,获得更新后的交易数据;交易引擎组件模块404还用于将更新后的交易数据通过交易网关组件返回至订单管理系统。
本实施例中的交易数据处理装置,由于交易引擎组件是交易系统的核心组件,因此各种数据需要通过交易引擎组件进行处理,交易引擎组件根据交易结果更新交易指令所对应的交易数据,从而获得更新后的交易数据,交易引擎组件将更新后的交易数据通过交易网关组件返回至订单管理系统,那么交易引擎组件可以获得交易的各个状态,从而保证交易系统的正常运行。
在一个实施例中,该服务器用于从指定服务器中拷贝交易网关组件的安装包、交易引擎组件的安装包和系统报盘组件的安装包;该服务器还用于将交易网关组件的安装包、交易引擎组件的安装包和系统报盘组件的安装包部署在该服务器中。
本实施例中的交易数据处理装置,从目标通信地址所对应的服务器中拷贝交易网关组件的安装包、交易引擎组件的安装包和系统报盘组件的安装包,将网关组件的安装包、交易引擎组件的安装包和系统报盘组件的安装包部署在服务器中,能够使得交易网关组件、交易引擎组件和系统报盘服务组件406位于同一服务器中,相对于网络传输,通过共享内存的方式能够提高数据传输效率。
关于交易数据处理装置的具体限定可以参见上文中对于交易数据处理方法的限定,在此不再赘述。上述交易数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储交易数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种交易数据处理方法。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。