财务数据交互方法、装置、计算机设备和存储介质与流程

文档序号:16390515发布日期:2018-12-22 11:26阅读:206来源:国知局
财务数据交互方法、装置、计算机设备和存储介质与流程

本申请涉及到计算机领域,特别是涉及到一种财务数据交互方法、装置、计算机设备和存储介质。

背景技术

银企直联是一种新的网上银行系统与企业的财务系统在线直接联接的接入方式。银企直联通过因特网或专线连接方式,实现了银行和企业计算机系统的有机融合和平滑对接。同时,银企直联可以为企业在财务系统中开发和定制个性化功能提供支持,具有信息同步、高效简便、个性服务和安全可靠的鲜明特色。银企直联能够做到与企业计算机系统的对接,方便的完成企业系统的与银行有关的交易。

企业需要到对应的银行开启银企直联账号。当企业通过财务系统与银行进行财务数据交互时,需要在企业设置一个与银行端前置机匹配的企业端前置机,并在该企业端上插入对应的ukey,然后才能与对应的银行端前置机进行交互,这样,如果一个企业与不同的银行建立银企直联,则需要设置多个企业端前置机,与不同的银行进行交互时,选择不同的企业端前置机。即,传统的企业端前置机一个银行只能对接一个前置机,操作完成之后需要另外换一个前置机,并不能同时在一个前置机上对多家银行进行操作。



技术实现要素:

本申请的主要目的为提供一种方便企业与不同的银行进行财务数据交互时,无需转换企业端前置机等操作的财务数据交互方法、装置、计算机设备和存储介质。

为了实现上述发明目的,本申请提出一种财务数据交互方法,利用企业端前置机实现企业端财务系统与银行端的财务数据交互,其中,所述企业端前置机上设置有多个ukey接口,所述企业端前置机对应多个所述ukey接口被配置为可以与多个不同银行种类的银行端前置机完成财务数据交互;所述方法,包括:

监听所述企业端前置机的应用服务器是否发送银企直联任务;

若是,则获取所述银企直联任务的任务id,并将所述任务id放入到对应的缓存队列中;

当所述缓存队列对应的线程池从所述缓存队列获取任务时,根据所述任务id到所述应用服务器获取对应的所述银企直联任务;

解析所述银企直联任务,得到与所述银企直联任务对应的银行端前置机的配置信息;

根据所述配置信息将所述银企直联任务发送给所述银行端前置机;

将所述银行端前置机返回的结果报文发送给所述应用服务器。

进一步地,所述获取所述银企直联任务的任务id,并将所述任务id放入到对应的缓存队列中的步骤,包括:

获取所述银企直联任务的任务id;

判断所述任务id的属性,其中属性包括交易属性、查询属性;

根据判断结果将所述任务id放入到对应属性的缓存队列中。

进一步地,所述监听所述企业端前置机的应用服务器是否发送银企直联任务的步骤之前,包括:

判断所述企业端前置机上是否插入对应各种类银行的ukey设备;

若否,则报警。

进一步地,所述财务数据交互方法还包括:

发送心跳检测包,检测与所述应用服务器的连接状态;

若连接状态为断开,则发出警报信息。

进一步地,所述监听所述企业端前置机的应用服务器是否发送银企直联任务的步骤,包括:

通过长连接的方式监听所述企业端前置机的应用服务器是否发送银企直联任务。

进一步地,所述企业端前置机与所述应用服务器采用bio同步阻塞模式进行长连接。

进一步地,所述企业端前置机与应用服务器相互发送的报文,采用protocolbuffers进行序列化。

本申请还提供一种财务数据交互装置,利用企业端前置机实现企业端财务系统与银行端的财务数据交互,其中,所述企业端前置机上设置有多个ukey接口,所述企业端前置机对应多个所述ukey接口被配置为可以与多个不同银行种类的银行端前置机完成财务数据交互;所述装置,包括:

监听单元,用于监听所述企业端前置机的应用服务器是否发送银企直联任务;

缓存单元,用于若监听单元监听到所述应用服务器发送的银企直联任务,则获取所述银企直联任务的任务id,并将所述任务id放入到对应的缓存队列中;

获取单元,用于当所述缓存队列对应的线程池从所述缓存队列获取任务时,根据所述任务id到所述应用服务器获取对应的所述银企直联任务;

解析单元,用于解析所述银企直联任务,得到与所述银企直联任务对应的银行端前置机的配置信息;

发送单元,用于根据所述配置信息将所述银企直联任务发送给所述银行端前置机;

转发单元,用于将所述银行端前置机返回的结果报文发送给所述应用服务器。

本申请还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。

本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。

本申请的财务数据交互方法、装置、计算机设备和存储介质,因为在企业端前置机上设置了多个ukey接口,并进行了对应的配置,所以企业端前置机能够与多个不同种类的银行进行银企直联功能,以保证各个银行账户的正常使用。为了保证企业端前置机的运行稳定,以及运行的效率,则将在企业端前置机中设置缓存队列和线程池的配置,以有条不紊地进行各种任务的执行;进一步地,缓存队列中只缓存任务id,当轮到该任务的时候,再根据任务id到应用服务器中调取具体的银企直联任务,以节省缓存空间,进一步地提高企业端前置机的运行速率和运行稳定性。

附图说明

图1为本发明一实施例的财务数据交互方法的流程示意图;

图2为本发明一实施例的财务数据交互方法的步骤s2的具体流程示意图;

图3为本发明一实施例的财务数据交互方法的流程示意图;

图4为本发明一实施例的财务数据交互装置的结构示意框图;

图5为本发明一实施例的缓存单元的结构示意框图;

图6为本发明一实施例的财务数据交互装置的结构示意框图;

图7为本发明一实施例的监听单元的结构示意框图;

图8为本发明一实施例的计算机设备的结构示意框图。

本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

参照图1,本申请实施例提供一种财务数据交互方法,利用企业端前置机实现企业端财务系统与银行端的财务数据交互,其中,所述企业端前置机上设置有多个ukey接口,所述企业端前置机对应多个所述ukey接口被配置为可以与多个不同银行种类的银行端前置机完成财务数据交互。

上述的企业端前置机是指设置在企业端的前置机,是企业端财务系统与银行端进行银企直联时的中间设备。上述企业端前置机被配置为可以与多个不同银行种类的银行端前置机完成数据交互,配置过程为,当企业安装企业端前置机时,企业端前置机有一个管理员界面,在预设的界面内输入指定的配置信息,该配置信息包括企业id、企业端前置机编号、银行服务器ip、银行端口、银行的银企直联编号、银行端前置机的版本号,银行大类等企业财务系统与银行完成银企直联的必要参数,还会配置线程数大小配置等,以实现多线程任务的处理;然后将配置结果发送给企业端前置机对应的应用服务器。也就是,配置申请通过的银企直联的账号及其相关信息,当企业需要登录各银企直联的账户获取在其对应银行的数据时(交易数据、查询数据等),只需要在企业端前置机上插入对应的ukey(一种通过usb直接与计算机相连、具有密码验证功能、可靠高速的小型存储设备)即可,实现一个企业端前置机与多个不同类银行的银行端前置机连接,企业统一集中管理用户的银行ukey,无需做银行的切换操作。通过企业端前置机可以方便地获取企业的每个银企直联账户的账户信息、交易流水信息、余额信息,并且可以进行相关的支付、归集、调拨等相关操作。上述银行大类是指不同的银行,比如工商银行与建设银行属于两个不同的银行大类等,即使用不同前置机的银行被认为是不同的银行大类。

上述财务数据交互方法,包括步骤:

s1、监听所述企业端前置机的应用服务器是否发送银企直联任务;

s2若是,则获取所述银企直联任务的任务id,并将所述任务id放入到对应的缓存队列中;

s3、当所述缓存队列对应的线程池从所述缓存队列获取任务时,根据所述任务id到所述应用服务器获取对应的所述银企直联任务;

s4、解析所述银企直联任务,得到与所述银企直联任务对应的银行端前置机的配置信息;

s5、根据所述配置信息将所述银企直联任务发送给所述银行端前置机;

s6、将所述银行端前置机返回的结果报文发送给所述应用服务器。

如上述步骤s1所述,上述应用服务器是指给企业提供企业端前置机的第三方的应用服务器,其作为企业端前置机的管理后台,企业发布的任务会先进入到上述应用服务器,然后由应用服务器发送给企业端前置机。上述企业发布的任务是企业通过财务系统发出的对银行账户以及资金的管理和调度等各项业务操作的任务。上述的银企直联任务即为企业通过财务系统发起一个请求,该请求发送给上述应用服务器,应用服务器根据这个请求向企业端前置机发起的对应的任务。

如上述步骤s2所述,上述银企直联任务是以报文的形式存在的,上述任务id只是一个标识,并没有任务内容,以防止将银企直联任务的报文直接放到企业端前置机中,占用企业端前置机的运行空间,而降低运行速率。因为上述企业端前置机可以连接多个银行端前置机,所以各种不同的银企直联任务会较多,直接将各种银企直联任务的报文堆积到企业端前置机的缓存中,会大大地降低企业端前置机的运行效率,甚至崩溃。所以,本实施例中只是将任务id放入到企业端前置机的缓存中,大大地降低了企业端前置机对缓存空间的要求,提高运行环境质量。

如上述步骤s3所述,上述线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。如果某个线程在托管代码中空闲(如正在等待某个事件),则线程池将插入另一个辅助线程来使所有处理器保持繁忙。如果所有线程池线程都始终保持繁忙,但队列中包含挂起的工作,则线程池将在一段时间后创建另一个辅助线程,但线程的数目永远不会超过最大值。超过最大值的线程可以排队,但他们要等到其它线程完成后才启动。本申请中,线程池中始终保持指定数量的线程工作,当某个线程空闲时,则从上述缓存队列中获取任务,因为缓存队列中只是任务id,所以会根据任务id到上述应用服务器中调取对应的银企直联任务。上述线程池中的线程数量可以配置企业端前置机的时候配置,如配置5个,10个,20个等,可以根据具体的需求进行配置。

如上述步骤s4和s5所述,因为上述银企直联任务是有针对性的,比如调用a类银行对应的银行账户的流水账单,那么配置信息中会包含有该a类银行对应的银行端前置机的编号、a类银行对应的银行服务器ip等,这些信息都是安装企业端前置机时配置好并发给企业端前置机对应的应用服务器中的信息。所以,上述应用服务器会根据企业的请求,自动将这些信息写入到银企直联任务中,以便于企业端前置机准确地连接对应的银行端前置机。

如上述步骤s6所述,当银行端前置机接收到银企直联任务后,会转发给对应的银行服务器,银行服务器会调取对应的数据生成结果报文,并发送给第一银行前置机,以返回给企业端前置机,企业端前置机在转发给应用服务器,应用服务器将所述结果报文最终反馈给企业的财务软件系统。

参照图2,在一个实施例中,上述获取所述银企直联任务的任务id,并将所述任务id放入到对应的缓存队列中的步骤s2,包括:

s21、获取所述银企直联任务的任务id;

s22、判断所述任务id的属性,其中属性包括交易属性、查询属性;

s23、根据判断结果将所述任务id放入到对应属性的缓存队列中。

如上述步骤s21、s22、s23所述,任务id的属性一般由企业端的财务系统发出的请求而定,具体可包括交易属性、查询属性,查询属性即为查询企业的银行流水、账户余额、支付状态等请求对应的属性,而交易属性即为支付、转账等请求对应的属性。企业端前置机中设置对应交易属性的交易缓存队列,以及对应查询属性的查询缓存队列,同样设置有对应交易缓存队列的交易线程池,对应查询缓存队列的查询线程池。两个缓存队列中的各任务id按预设的优先级进行排序处理,比如,支付的级别高于查询银行流水的级别等。具体地,每个任务会设置有一个类型标识,类型标识可分为1-8个级别,为1的话等级最高,代表紧急任务,优先处理。各种银企直联任务对应不同的类型标识,其对应的任务id则具有同样的类型标识。

参照图3,在一个实施例中,所上述监听所述企业端前置机的应用服务器是否发送银企直联任务的步骤s1之前,包括:

s101、判断所述企业端前置机上是否插入对应各种类银行的ukey设备;

s102、若否,则报警。

如上述步骤s101、s102所述,采集各ukey接口插入的ukey设备的对应其银行种类的标识,然后将所述标识与配置企业端前置机时配置的代表各类银行的标识进行比对,如果采集到的各标识全面覆盖配置企业端前置机时配置的代表各类银行的标识时,则判定企业端前置机上插入对应各种类银行的ukey设备,可以执行后续如步骤s1等步骤,否者,将未被覆盖的标识对应的银行种类提取出来,并发送给企业的相关人员以报警,此时企业的相关人员可以进行相应的处理,将忘记插入的ukey设备或插入处松动而导致ukey设备接触不良的重新插入等,以保证企业与各银行之间的交互。在另一实施例中,还可以判断获取到的ukey设备的标识与配置企业端前置机时配置的代表各类银行的标识(不重复)的数量是否相同,因为一个银行只会发一个ukey给企业,所以当数量相同时候,基本可以判定企业端前置机上插入对应各种类银行的ukey设备,此种判断方法虽然存在缺陷,但是判断速度会更快。

在一个实施例中,上述财务数据交互方法还包括:发送心跳检测包,检测与所述应用服务器的连接状态;若连接状态为断开,则发出警报信息。

理论上,企业端前置机和应用服务器应该长期在线,但是因为是电子产品,难免会出现故障或者升级等处理,此时企业端前置机与应用服务器可能断掉连接,那么通过心跳检测的方式检测企业端前置机和应用服务器的连接状态,当两者连接失败,则需要发出警报信息。发出警报信息包括两种,第一种,发送邮件等信息给企业的相关人员,和/或发送给提供企业端前置机的第三方的相关人员;第二种,发送指定的信息给与其连接的银行端前置机,并由银行端前置机发送给银行的相关管理系统,以告知银行端的工作人员,银行端的工作人员可以人工告知企业端相应人员发生了断连接的故障等。上述发送心跳检测包,可以保障企业端的财务人了解企业端前置机和应用服务器是否断开连接,从而及时处理原本需要银企直联完成的事物。

在一个实施例中,上述监听所述企业端前置机的应用服务器是否发送银企直联任务的步骤s1,包括:

s11、通过长连接的方式监听所述企业端前置机的应用服务器是否发送银企直联任务。

如上述步骤s11所述,因为企业端前置机接收到的银企直联任务可能是连续的,所以使用长连接的方式监听服务,使每个操作完后都不断开,下次处理时直接发送数据包就可以,不用建立tcp(transmissioncontrolprotocol传输控制协议)连接,以保持处理任务的效率。本实施例中,企业端前置机与应用服务器采用bio(blockinputoutput)同步阻塞模式进行长连接。不同的银企直联任务不能够同时进行,所以需要按照指令顺序进行,一个指令执行完才能执行下一个指令,不能异步执行,所以本申请中企业端前置机采用bio同步阻塞模式与应用服务器进行长连接。

在一个实施例,上述企业端前置机与应用服务器相互发送的报文,采用protocolbuffers进行序列化。

protocolbuffers是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或rpc数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式,简单说来protobuf的主要优点就是:简单,快。本申请采用google(谷歌)的protocolbuffers进行序列化,可以提高报文封装和发送的效率。

本申请实施例的财务数据交互方法,因为在企业端前置机上设置了多个ukey接口,并进行了对应的配置,所以企业端前置机能够与多个不同种类的银行进行银企直联功能,以保证各个银行账户的正常使用。为了保证企业端前置机的运行稳定,以及运行的效率,则将在企业端前置机中设置缓存队列和线程池的配置,以有条不紊地进行各种任务的执行;进一步地,缓存队列中只缓存任务id,当轮到该任务的时候,再根据任务id到应用服务器中调取具体的银企直联任务,以节省缓存空间,进一步地提高企业端前置机的运行速率和运行稳定性。

参照图4,本申请实施例提供一种财务数据交互装置,利用企业端前置机实现企业端财务系统与银行端的财务数据交互,其中,所述企业端前置机上设置有多个ukey接口,所述企业端前置机对应多个所述ukey接口被配置为可以与多个不同银行种类的银行端前置机完成财务数据交互。

上述的企业端前置机是指设置在企业端的前置机,是企业端财务系统与银行端进行银企直联时的中间设备。上述企业端前置机被配置为可以与多个不同银行种类的银行端前置机完成数据交互,配置过程为,当企业安装企业端前置机时,企业端前置机有一个管理员界面,在预设的界面内输入指定的配置信息,该配置信息包括企业id、企业端前置机编号、银行服务器ip、银行端口、银行的银企直联编号、银行端前置机的版本号,银行大类等企业财务系统与银行完成银企直联的必要参数,还会配置线程数大小配置等,以实现多线程任务的处理;然后将配置结果发送给企业端前置机对应的应用服务器。也就是,配置申请通过的银企直联的账号及其相关信息,当企业需要登录各银企直联的账户获取在其对应银行的数据时(交易数据、查询数据等),只需要在企业端前置机上插入对应的ukey即可,实现一个企业端前置机与多个不同类银行的银行端前置机连接,企业统一集中管理用户的银行ukey,无需做银行的切换操作。通过企业端前置机可以方便地获取企业的每个银企直联账户的账户信息、交易流水信息、余额信息,并且可以进行相关的支付、归集、调拨等相关操作。上述银行大类是指不同的银行,比如工商银行与建设银行属于两个不同的银行大类等,即使用不同前置机的银行被认为是不同的银行大类。

上述财务数据交互装置,包括步骤:

监听单元10,用于监听所述企业端前置机的应用服务器是否发送银企直联任务;

缓存单元20,用于若监听单元监听到所述应用服务器发送的银企直联任务,则获取所述银企直联任务的任务id,并将所述任务id放入到对应的缓存队列中;

获取单元30,用于当所述缓存队列对应的线程池从所述缓存队列获取任务时,根据所述任务id到所述应用服务器获取对应的所述银企直联任务;

解析单元40,用于解析所述银企直联任务,得到与所述银企直联任务对应的银行端前置机的配置信息;

发送单元50,用于根据所述配置信息将所述银企直联任务发送给所述银行端前置机;

转发单元60,用于将所述银行端前置机返回的结果报文发送给所述应用服务器。

在上述监听单元10中,上述应用服务器是指给企业提供企业端前置机的第三方的应用服务器,其作为企业端前置机的管理后台,企业发布的任务会先进入到上述应用服务器,然后由应用服务器发送给企业端前置机。上述企业发布的任务是企业通过财务系统发出的对银行账户以及资金的管理和调度等各项业务操作的任务。上述的银企直联任务即为企业通过财务系统发起一个请求,该请求发送给上述应用服务器,应用服务器根据这个请求向企业端前置机发起的对应的任务。

在上述缓存单元20中,上述银企直联任务是以报文的形式存在的,上述任务id只是一个标识,并没有任务内容,以防止将银企直联任务的报文直接放到企业端前置机中,占用企业端前置机的运行空间,而降低运行速率。因为上述企业端前置机可以连接多个银行端前置机,所以各种不同的银企直联任务会较多,直接将各种银企直联任务的报文堆积到企业端前置机的缓存中,会大大地降低企业端前置机的运行效率,甚至崩溃。所以,本实施例中只是将任务id放入到企业端前置机的缓存中,大大地降低了企业端前置机对缓存空间的要求,提高运行环境质量。

在上述获取单元30中,上述线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。如果某个线程在托管代码中空闲(如正在等待某个事件),则线程池将插入另一个辅助线程来使所有处理器保持繁忙。如果所有线程池线程都始终保持繁忙,但队列中包含挂起的工作,则线程池将在一段时间后创建另一个辅助线程,但线程的数目永远不会超过最大值。超过最大值的线程可以排队,但他们要等到其它线程完成后才启动。本申请中,线程池中始终保持指定数量的线程工作,当某个线程空闲时,则从上述缓存队列中获取任务,因为缓存队列中只是任务id,所以会根据任务id到上述应用服务器中调取对应的银企直联任务。上述线程池中的线程数量可以配置企业端前置机的时候配置,如配置5个,10个,20个等,可以根据具体的需求进行配置。

在上述解析单元40和发送单元50中,因为上述银企直联任务是有针对性的,比如调用a类银行对应的银行账户的流水账单,那么配置信息中会包含有该a类银行对应的银行端前置机的编号、a类银行对应的银行服务器ip等,这些信息都是安装企业端前置机时配置好并发给企业端前置机对应的应用服务器中的信息。所以,上述应用服务器会根据企业的请求,自动将这些信息写入到银企直联任务中,以便于企业端前置机准确地连接对应的银行端前置机。

在上述转发单元60中,当银行端前置机接收到银企直联任务后,会转发给对应的银行服务器,银行服务器会调取对应的数据生成结果报文,并发送给第一银行前置机,以返回给企业端前置机,企业端前置机在转发给应用服务器,应用服务器将所述结果报文最终反馈给企业的财务软件系统。

参照图5,在一个实施例中,上述缓存单元20中,包括:

获取模块21、用于获取所述银企直联任务的任务id;

判断模块22、用于判断所述任务id的属性,其中属性包括交易属性、查询属性;

缓存模块23、用于根据判断结果将所述任务id放入到对应属性的缓存队列中。

在上述获取模块21、判断模块22、缓存模块23中,任务id的属性一般由企业端的财务系统发出的请求而定,具体可包括交易属性、查询属性,查询属性即为查询企业的银行流水、账户余额、支付状态等请求对应的属性,而交易属性即为支付、转账等请求对应的属性。企业端前置机中设置对应交易属性的交易缓存队列,以及对应查询属性的查询缓存队列,同样设置有对应交易缓存队列的交易线程池,对应查询缓存队列的查询线程池。两个缓存队列中的各任务id按预设的优先级进行排序处理,比如,支付的级别高于查询银行流水的级别等。具体地,每个任务会设置有一个类型标识,类型标识可分为1-8个级别,为1的话等级最高,代表紧急任务,优先处理。各种银企直联任务对应不同的类型标识,其对应的任务id则具有同样的类型标识。

参照图6,在一个实施例中,上述财务数据交互装置,还包括:

判断单元101、用于判断所述企业端前置机上是否插入对应各种类银行的ukey设备;

第一报警单元102、用于若判定所述企业端前置机上未插入对应各种类银行的ukey设备,则报警。

在上述判断单元101、报警单元102中,采集各ukey接口插入的ukey设备的对应其银行种类的标识,然后将所述标识与配置企业端前置机时配置的代表各类银行的标识进行比对,如果采集到的各标识全面覆盖配置企业端前置机时配置的代表各类银行的标识时,则判定企业端前置机上插入对应各种类银行的ukey设备,否者,将未被覆盖的标识对应的银行种类提取出来,并发送给企业的相关人员以报警,此时企业的相关人员可以进行相应的处理,将忘记插入的ukey设备或插入处松动而导致ukey设备接触不良的重新插入等,以保证企业与各银行之间的交互。在另一实施例中,还可以判断获取到的ukey设备的标识与配置企业端前置机时配置的代表各类银行的标识(不重复)的数量是否相同,因为一个银行只会发一个ukey给企业,所以当数量相同时候,基本可以判定企业端前置机上插入对应各种类银行的ukey设备,此种判断方法虽然存在缺陷,但是判断速度会更快。

在一个实施例中,上述财务数据交互装置还包括:

心跳发送单元,用于发送心跳检测包,检测与所述应用服务器的连接状态;

第二报警单元,用于若连接状态为断开,则发出警报信息。

理论上,企业端前置机和应用服务器应该长期在线,但是因为是电子产品,难免会出现故障或者升级等处理,此时企业端前置机与应用服务器可能断掉连接,那么通过心跳检测的方式检测企业端前置机和应用服务器的连接状态,当两者连接失败,则需要发出警报信息。发出警报信息包括两种,第一种,发送邮件等信息给企业的相关人员,和/或发送给提供企业端前置机的第三方的相关人员;第二种,发送指定的信息给与其连接的银行端前置机,并由银行端前置机发送给银行的相关管理系统,以告知银行端的工作人员,银行端的工作人员可以人工告知企业端相应人员发生了断连接的故障等。上述发送心跳检测包,可以保障企业端的财务人了解企业端前置机和应用服务器是否断开连接,从而及时处理原本需要银企直联完成的事物。

参照图7,在一个实施例中,上述监听单元10,包括:

长连接监听模块11、通过长连接的方式监听所述企业端前置机的应用服务器是否发送银企直联任务。

在上述长连接监听模块11中,因为企业端前置机接收到的银企直联任务可能是连续的,所以使用长连接的方式监听服务,使每个操作完后都不断开,下次处理时直接发送数据包就可以,不用建立tcp连接,以保持处理任务的效率。本实施例中,企业端前置机与应用服务器采用bio同步阻塞模式进行长连接。不同的银企直联任务不能够同时进行,所以需要按照指令顺序进行,一个指令执行完才能执行下一个指令,不能异步执行,所以本申请中企业端前置机采用bio同步阻塞模式与应用服务器进行长连接。

在一个实施例,上述财务数据交互装置,还包括:

序列化单元,用于将上述企业端前置机与应用服务器相互发送的报文,采用protocolbuffers进行序列化。

protocolbuffers是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或rpc数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式,简单说来protobuf的主要优点就是:简单,快。本申请采用google的protocolbuffers进行序列化,可以提高报文封装和发送的效率。

本申请实施例的财务数据交互装置,因为在企业端前置机上设置了多个ukey接口,并进行了对应的配置,所以企业端前置机能够与多个不同种类的银行进行银企直联功能,以保证各个银行账户的正常使用。为了保证企业端前置机的运行稳定,以及运行的效率,则将在企业端前置机中设置缓存队列和线程池的配置,以有条不紊地进行各种任务的执行;进一步地,缓存队列中只缓存任务id,当轮到该任务的时候,再根据任务id到应用服务器中调取具体的银企直联任务,以节省缓存空间,进一步地提高企业端前置机的运行速率和运行稳定性。

参照图8,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储财务数据交互方法程序等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种财务数据交互方法。

上述处理器执行上述财务数据交互方法,利用企业端前置机实现企业端财务系统与银行端的财务数据交互,其中,所述企业端前置机上设置有多个ukey接口,所述企业端前置机对应多个所述ukey接口被配置为可以与多个不同银行种类的银行端前置机完成财务数据交互,所述方法的步骤为:监听所述企业端前置机的应用服务器是否发送银企直联任务;若是,则获取所述银企直联任务的任务id,并将所述任务id放入到对应的缓存队列中;当所述缓存队列对应的线程池从所述缓存队列获取任务时,根据所述任务id到所述应用服务器获取对应的所述银企直联任务;解析所述银企直联任务,得到与所述银企直联任务对应的银行端前置机的配置信息;根据所述配置信息将所述银企直联任务发送给所述银行端前置机;将所述银行端前置机返回的结果报文发送给所述应用服务器。

在一个实施例中,上述获取所述银企直联任务的任务id,并将所述任务id放入到对应的缓存队列中的步骤,包括:获取所述银企直联任务的任务id;判断所述任务id的属性,其中属性包括交易属性、查询属性;根据判断结果将所述任务id放入到对应属性的缓存队列中。

在一个实施例中,上述监听所述企业端前置机的应用服务器是否发送银企直联任务的步骤之前,包括:判断所述企业端前置机上是否插入对应各种类银行的ukey设备;若否,则报警。

在一个实施例中,上述财务数据交互方法还包括:发送心跳检测包,检测与所述应用服务器的连接状态;若连接状态为断开,则发出警报信息。

在一个实施例中,上述监听所述企业端前置机的应用服务器是否发送银企直联任务的步骤,包括:通过长连接的方式监听所述企业端前置机的应用服务器是否发送银企直联任务。

在一个实施例中,上述企业端前置机与所述应用服务器采用bio同步阻塞模式进行长连接。

在一个实施例中,上述企业端前置机与应用服务器相互发送的报文,采用protocolbuffers进行序列化。

本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。

本申请实施例的计算机设备,因为在企业端前置机上设置了多个ukey接口,并进行了对应的配置,所以企业端前置机能够与多个不同种类的银行进行银企直联功能,以保证各个银行账户的正常使用。为了保证企业端前置机的运行稳定,以及运行的效率,则将在企业端前置机中设置缓存队列和线程池的配置,以有条不紊地进行各种任务的执行;进一步地,缓存队列中只缓存任务id,当轮到该任务的时候,再根据任务id到应用服务器中调取具体的银企直联任务,以节省缓存空间,进一步地提高企业端前置机的运行速率和运行稳定性。

本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种财务数据交互方法,利用企业端前置机实现企业端财务系统与银行端的财务数据交互,其中,所述企业端前置机上设置有多个ukey接口,所述企业端前置机对应多个所述ukey接口被配置为可以与多个不同银行种类的银行端前置机完成财务数据交互;所述方法,包括:监听所述企业端前置机的应用服务器是否发送银企直联任务;若是,则获取所述银企直联任务的任务id,并将所述任务id放入到对应的缓存队列中;当所述缓存队列对应的线程池从所述缓存队列获取任务时,根据所述任务id到所述应用服务器获取对应的所述银企直联任务;解析所述银企直联任务,得到与所述银企直联任务对应的银行端前置机的配置信息;根据所述配置信息将所述银企直联任务发送给所述银行端前置机;将所述银行端前置机返回的结果报文发送给所述应用服务器。

上述财务数据交互方法,因为在企业端前置机上设置了多个ukey接口,并进行了对应的配置,所以企业端前置机能够与多个不同种类的银行进行银企直联功能,以保证各个银行账户的正常使用。为了保证企业端前置机的运行稳定,以及运行的效率,则将在企业端前置机中设置缓存队列和线程池的配置,以有条不紊地进行各种任务的执行;进一步地,缓存队列中只缓存任务id,当轮到该任务的时候,再根据任务id到应用服务器中调取具体的银企直联任务,以节省缓存空间,进一步地提高企业端前置机的运行速率和运行稳定性。

在一个实施例中,上述处理器获取所述银企直联任务的任务id,并将所述任务id放入到对应的缓存队列中的步骤,包括:获取所述银企直联任务的任务id;判断所述任务id的属性,其中属性包括交易属性、查询属性;根据判断结果将所述任务id放入到对应属性的缓存队列中。

在一个实施例中,上述处理器监听所述企业端前置机的应用服务器是否发送银企直联任务的步骤之前,包括:判断所述企业端前置机上是否插入对应各种类银行的ukey设备;若否,则报警。

在一个实施例中,上述处理器还控制企业端前置机发送心跳检测包,检测与所述应用服务器的连接状态;若连接状态为断开,则发出警报信息。

在一个实施例中,上述处理器监听所述企业端前置机的应用服务器是否发送银企直联任务的步骤,包括:通过长连接的方式监听所述企业端前置机的应用服务器是否发送银企直联任务。

在一个实施例中,上述处理器控制企业端前置机与所述应用服务器采用bio同步阻塞模式进行长连接。

在一个实施例中,上述处理器控制企业端前置机与应用服务器相互发送的报文,采用protocolbuffers进行序列化。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双速据率sdram(ssrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1