
1.本发明属于金融终端设备控制系统,尤其涉及自助终端控制系统的流程引擎设计、通信方式。
背景技术:2.自助终端控制系统atmc(atm control)是终端交易渠道最底层的自助终端控制系统,运行于终端设备,主要用于向持卡人和atm设备管理员提供各种交易和管理的交互界面,并与atmp(atmp:auto matic teller preconsole前置通信软件)通过报文交互实现特定的功能。
3.传统c/s架构的atmc,引擎、外壳程序、配置数据开发和打包在都一起,形成一个很大的可运行文件,然后安装在设备上。一些数据往往也存放在设备上,会有数据不够安全的问题;软件包很大造成升级可能不成功;业务流程升级慢;运维不方便;非跨平台等特点。
4.在现有c/s架构atmc应用服务下,当需要部署一台金融设备时,工程师需要将全部应用版本、运行参数、菜单数据、流程配置数据等全部安装部署到金融设备上,并且可能由于金融设备的操作系统版本等问题,导致服务无法正常部署;运行过程中,运行产生的数据都为本地保存,存在数据泄露风险,当设备异常停止运行时,可能存在数据丢失风险;运行过程中由于运行基础环境差异性,可能会出现运行结果不一致情况;版本升级可以有两种方式一种是由工程师去终端设备安装,此种升级方式对人力物力的消耗极大,另一种是通过监控平台下发版本包,此种方式的缺点是由于终端系统的差异性多样性,不能保证版本100%升级成功。
5.很显然在当前这种设计模式下,金融设备的atmc服务的运行,升级,数据安全性都会存在不同程度的不足,影响系统使用效果。因此本系统的发明人对系统架构进行了重新设计,整个atmc服务采用b/s架构。
技术实现要素:6.本发明的目的是针对现有技术中存在的技术缺陷,而提供一种基于b/s构架下自助终端控制系统的流程引擎设计,首次对基于b/s架构 atmc服务流程引擎进行设计,使金融终端应用系统中的流程具有b/s架构流程引擎的特性。
7.为实现本发明的目的所采用的技术方案是:自助终端控制系统的流程引擎设计,其特征在于,流程引擎基于b/s架构设计,实现前后端架构分离;终端服务程序预装在自助终端上,引擎服务、管理服务和接口服务部署于服务器上;所述终端服务程序设内置浏览器,流程引擎由终端服务程序从服务器加载到内置浏览器运行,达到跨平台运行。
8.作为优选的,流程引擎全部所需运行参数均由服务器上的接口服务统一维护管
理,流程引擎运行过程中产生全部日志数据均由服务器上的接口服务统一存储管理。
9.自助终端控制系统的流程引擎通讯方式,流程引擎基于事件驱动,通过执行任务接口接收运行序列并执行业务流程工作,根据业务流程工作的运行情况生成发送触发事件,从而使业务流程工作能够按照规定的运行序列自动化的运行。
10.作为优选的,流程引擎的通信接口被定义为基于事件驱动的接口,流程引擎的基础运行单元为业务流程节点,由一组业务流程节点组成的序列即为一个业务流程接口。
11.作为优选的,业务流程由一个或多个子业务流程组成,每个子业务流程由一个或多个业务流程节点组成,每个业务流程节点都包含一个入口事件、一个指定动作、一个或多个出口事件。
12.作为优选的,业务流程节点通过入口事件被触发后开始执行指定动作,指定动作分为跳转网页、执行脚本、发送报文、硬件交互四类。
13.作为优选的,指定动作执行完成后根据执行返回数据映射生成出口事件,出口事件发送到流程引擎后,流程引擎将其映射为入口事件并找到对应的业务流程节点执行。
14.作为优选的,流程引擎可以通过同步本地函数调用、wifi通讯、蓝牙通讯三种方式中的任意一种,调用外设硬件驱动,完成流程引擎与硬件交互。
15.自助终端控制系统的流程引擎工作方法,包括如下步骤:(1)终端服务程序启动时,进行预检查,包括但不限于硬件模块状态预检查、网络状态预检查、运行数据预检查;(2)终端服务程序预检查完成后,打开内置浏览器,启动流程引擎服务;(3)终端服务程序访问指定服务器地址将流程引擎加载到自助终端上,同时从服务器签到获取运行数据;(4)流程引擎启动后从服务器加载主页面并根据自助终端差异化获取业务菜单;(5)在服务器的管理服务上将业务菜单与业务流程配置进行关联;(6)客户业务办理过程中根据客户点击菜单调用起对应流程,从服务器加载流程配置并按照业务运行过程中各种事件驱动业务流程运行。
16.作为优选的,步骤(1)中终端服务程序进行运行数据预检查时,终端服务程序与服务器上的运行数据不一致时,启动数据同步接口,从服务器加载运行数据到终端服务程序。
17.本发明的有益效果在于:1.跨平台:流程引擎的运行只依赖浏览器,系统与后台交互全部采用通用tcp接口,而不依赖操作系统或其他程序。
18.2.统一部署:自助终端控制系统服务中只终端服务程序需要预装在金融终端上,其他应用服务都部署在服务器,运行数据也全部在服务器存储;流程引擎的升级,运行数据的修改都只需在服务器进行修改升级即可,避免c/s模式升级部署的复杂操作。
19.3.统一存储:流程引擎一起围绕流程引擎运行的其他程序的状态和日志都统一存储在服务器,有效保证数据安全性。
20.4.在线可视化配置:流程配置数据,运行参数信息,终端菜单信息,多语言映射信息,打印模板信息等数据都提供可视化配置页面在线配置,实时下发生效,大大降低业务流程设计及其软件设计的复杂程度,减少业务软件运维成本和技术门槛,有效降低基于流程的系统的设计难度。
附图说明
21.图1是根据本发明的整体服务部署架构及运行加载的流程图。
22.图2是根据本发明的实施一的运行流程的实施图。
具体实施方式
23.以下,将参照附图来详细描述本发明的实施例。然而,可以以许多不同的形式来实施本发明,并且本发明不应该被解释为限制于这里阐述的具体实施例。相反,提供这些实施例是为了解释本发明的原理及其实际应用,从而使本领域的其他技术人员能够理解本发明的各种实施例和适合于特定预期应用的各种修改。
24.符合跨平台、统一部署、统一存储、在线可视化配置等特征的设计即为基于b/s架构atmc应用服务流程引擎设计,对于具体如何实现基于b/s架构 atmc服务流程引擎,业内并没有统一的规则和方法,并且在不同的系统由于标准和通信协议的不同,如何实现更是要根据不同的系统针对性的进行设计。在金融终端应用系统的领域,在金融终端应用系统的工作任务越来越复杂的情况下,采用基于b/s架构 atmc服务流程引擎可以大大降低系统的开发,运维难度,有效保障数据安全性,并能通过数据的统一存储,为数据的进一步深加工打下基础。
25.因此,本申请的发明人首次对基于b/s架构 atmc服务流程引擎进行设计,使金融终端应用系统中的流程具有上述b/s架构流程引擎的特性,自助终端控制系统的流程引擎设计,其特征在于:流程引擎基于b/s架构设计,实现前后端架构分离;终端服务程序预装在自助终端上,引擎服务、管理服务和接口服务部署于服务器上;服务升级等在机房的服务器上操作完成而无需对每台自助终端执行服务升级;引擎服务中包含流程引擎和前端页面,引擎服务、管理服务和接口服务均是程序。
26.所述终端服务程序设内置浏览器,流程引擎由终端服务程序从服务器加载到内置浏览器运行,不依赖终端操作系统或其他终端程序,达到跨平台运行,可以应对现下linux,win10,win7,android,国产化系统等种类繁多的操作系统而无需特殊适配开发。
27.作为优选的,流程引擎全部所需运行参数均由服务器上的接口服务统一维护管理,运行时从服务器实时加载,避免由于程序数据不同步导致运行异常问题,流程引擎运行过程中产生全部日志数据均由服务器上的接口服务统一存储管理,避免由于自助终端运行异常导致数据丢失。
28.作为优选的,流程引擎会定时收集外设状态、日志数据,定时上送到服务器的接口服务统一存储管理,避免由于自助终端运行导致数据丢失。
29.作为优选的,流程引擎的运行介质由在线可视化开发平台开发发布,经图形化设计后自动生成对应流程的运行介质,大大降低业务流程设计及其软件设计的复杂程度,减少业务软件运维成本和技术门槛,有效降低基于流程的系统的设计难度。
30.下面对自助终端控制系统的流程引擎通讯方式进行详细说明,流程引擎基于事件驱动,通过执行任务接口接收运行序列并执行业务流程工作,根据业务流程工作的运行情况生成发送触发事件,从而使业务流程工作能够按照规定的运行序列自动化的运行。
31.流程引擎的通信接口被定义为基于事件驱动的接口,流程引擎的基础运行单元为
业务流程节点,由一组业务流程节点组成的序列即为一个业务流程接口。业务流程由一个或多个子业务流程组成,每个子业务流程由一个或多个业务流程节点组成,每个业务流程节点都包含一个入口事件、一个指定动作、一个或多个出口事件。
32.每个业务流程需定义一个开始节点,开始节点可以由菜单触发或者由其他业务流程派发的事件触发。业务流程节点通过入口事件被触发后开始执行指定动作,指定动作分为跳转网页、执行脚本、发送报文、硬件交互四类。流程引擎会将配置的指定动作转换为程序语言,将流程引擎缓存数据作为传入参数,指定动作执行完成后,会得到一个返回结果,根据执行返回数据映射生成出口事件,出口事件发送到流程引擎后,流程引擎将其映射为入口事件并找到对应的业务流程节点执行,然后重复以上动作直到整个流程执行完成。
33.作为优选的,流程引擎可以通过同步本地函数调用、wifi通讯、蓝牙通讯三种方式中的任意一种,调用外设硬件驱动,完成流程引擎与硬件交互。
34.自助终端控制系统的流程引擎工作方法,包括如下步骤:(1)终端服务程序启动时,进行预检查,包括但不限于硬件模块状态预检查、网络状态预检查、运行数据预检查;(2)终端服务程序预检查完成后,打开内置浏览器,启动流程引擎服务;(3)终端服务程序访问指定服务器地址将流程引擎加载到自助终端上,同时从服务器签到获取运行数据;(4)流程引擎启动后从服务器加载主页面并根据自助终端差异化获取业务菜单;(5)在服务器的管理服务上将业务菜单与业务流程配置进行关联;(6)客户业务办理过程中根据客户点击菜单调用起对应流程,从服务器加载流程配置并按照业务运行过程中各种事件驱动业务流程运行。
35.步骤(1)中终端服务程序进行运行数据预检查时,终端服务程序与服务器上的运行数据不一致时,启动数据同步接口,从服务器加载运行数据到终端服务程序。
36.以下将进行详细说明:实施例一本发明的实施例一公开了一种银行业务流程,以该查询余额业务流程为例阐述本设计的工作原理。
37.具体地,b/s 架构atmc以本地预装agent(终端服务程序)为启动入口,通过加载远程服务器部署的程序(页面引擎服务、管理服务和接口服务)和远程服务器存储的运行参数、流程配置数据、卡表数据、h5网页、多语言数据、表单模板数据完成业务流程运行,运行过程中与本地(自助终端)硬件模块的交互通过封装的通讯模块(同步本地函数调用、wifi通讯、蓝牙通讯三种方式中的任意一种)调用硬件驱动来完成。
38.通过本地预装agent(终端服务程序)服务启动,通过预设流程引擎服务url(url:服务器请求地址)从服务器加载引擎服务启动流程引擎,加载流程引擎主页面并从服务器请求菜单数据。
39.业务流程发起:通过自助终端主页面选择查询菜单进入查询流程。
40.流程引擎根据菜单配置流程id,从服务器获取查询业务流程配置数据,初始化加载到流程引擎中。
41.根据流程配置进入插卡提示节点,执行指定动作:(跳转网页)跳转到插卡提示网
页。
42.跳转完成后进入读卡节点,执行指定动作:(硬件交互)通过银行网点wifi与读卡器设备建立通讯连接,读取银行卡信息;该节点存在两个出口事件:银行卡信息读取成功、银行卡信息读取失败。
43.读取失败将触发流程引擎调起读卡失败公共处理节点,从而进入退卡子流程。
44.读取成功将触发流程引擎调起输入密码节点,节点执行指定动作:(硬件交互)通过银行网点wifi与密码键盘设备建立通讯连接,读取密码键盘输入信息并加密为密文返回。
45.密码输入完成后进入验密子流程,进入子流程会将主流程挂起,当子流程执行完成后返回到挂起主流程的指定节点。
46.主流程进入获取密码校验结果节点,执行指定动作:(执行脚本)解析验密结果;该节点存在两个出口事件:验密成功,验密失败。
47.验密失败将触发公共流程节点:报文响应错误节点,执行指定动作:(调整网页)调整到提示报文错误返回信息网页。
48.验密成功将触发获取账户余额节点,执行指定动作:(发送报文)发送账户余额查询报文到服务器,该节点有两个出口事件:通讯失败,通讯成功。
49.通讯失败将触发公共流程节点:通讯失败,执行指定动作:(跳转网页)跳转提示通讯失败网页。
50.通讯成功将触发账户余额查询返回报文解析节点,执行指定动作:(执行脚本)解析账户余额查询返回报文,该节点有两个出口事件:查询成功、查询失败。
51.查询失败将触发公共流程节点:报文响应错误节点,执行指定动作:(调整网页)调整到提示报文错误返回信息网页。
52.查询成功将触发账户余额展示节点,执行指定动作:(跳转网页)跳转展示账户余额网页。
53.交易完成触发流水上传节点,执行指定动作:(发送报文)上传交易过程产生流水日志到服务器。
54.整个业务流程结束。
55.上述为一个查询流程,创造性在于1:流程运行是基于浏览器的,所以在一开始有agent调起内置浏览器然后加载流程配置数据的操作,2:流程执行的最后一步,运行数据是存储在服务器的,保证了数据的一致性和安全性。
56.实施例二本发明的实施例二公开了一种流程节点,节点被设定为事件触发模式,工作包括触发事件入口和执行指定动作。
57.具体地,流程节点用于通过其触发事件入库接收其他流程节点发送的触发事件,根据接收的触发事件产生控制业务流程运行的运行序列以控制其他流程节点执行业务流程工作。例如负责控制读卡器读卡操作工作流程的流程节点接收到其它流程节点触发的进行读卡的触发事件之后,生成控制读卡器进行读卡操作的运行序列以控制负责控制读卡器进行读卡的流程节点执行读卡的工作。
58.流程节点还用于根据动作执行结果,生成新的出口事件,将出口事件发送回流程
引擎代管,流程引擎接受到出口事件后寻找与该出口事件对应的下个一个业务流程节点,例如:读卡流程节点指定动作完成后可能存在两种出口事件:读卡成功,读卡失败,读卡成功将会触发到退卡流程,而读卡成功则会进入到配置触发事件入口等于读卡成功的流程节点。
59.流程节点指定动作类型分为四大类:跳转网页,执行脚本,硬件交互,发送报文。
60.下面结合具体的实施方式对各种不同类型的流程节点进行说明。
61.实施例三本发明的实施例三公开一种硬件交互类流程节点,具体的为控制读卡器读取卡片信息流程节点。
62.cardreader中间件读取卡片信息通过调用waitacceptcard接口。能够读取金融ic卡、磁条卡中的个性化卡数据,并能指定读卡超时时间及读取数据类型。
63.触发事件存在以下5种:1.mediainserted事件状态事件对应规则:cardreader中间件通过调用waitacceptcard接口进行ic卡读取。读卡器通过检测到卡片插入后产生mediainserted事件。
64.事件原型:mediainserted()。
65.2.mediaaccepted事件状态事件对应规则:cardreader中间件通过调用waitacceptcard接口进行ic卡读取。读卡器通过检测到卡片插入到正确的位置后产生mediaaccepted事件。
66.事件原型:mediaaccepted(code,data)事件参数code:返回码data:返回数据,包括track1(磁道1)、track2(磁道2)、 track3(磁道3)、atr(复位数据)。
67.3.timeout事件状态事件对应规则:cardreader中间件在指定时间内没有检测到卡片,产生timeout事件。
68.事件原型timeout()。
69.4.mediainvalid事件状态事件对应规则:cardreader中间件通过调用waitacceptcard接口进行ic卡读取。读卡器通过检测到无效的介质被插入到读卡器中产生mediainvalid事件。
70.事件原型mediainvalid()。
71.5.deviceerror事件状态事件对应规则:cardreader中间件通过调用waitacceptcard接口时由于设备故障导致deviceerror事件。
72.事件原型deviceerror(errormsg)事件参数errormsg: 错误信息。
73.实施例四本发明的实施例四公开一种发送报文类流程节点,具体的为发送账户余额查询报文流程节点。
74.流程节点通过调用公共组包中间件,将内存中对象数据与规范化配置映射关系进行打包,生成服务端程序可识别报文,其中规范化配置映射关系由服务器配置生成,流程初始化时统一从服务器加载。jsonmessage中间件提供pack函数调用,将key/value 对象组织映射成功json对象。
75.函数原型:pack(messagerequest, keyvalue)函数参数:messagerequest:请求报文模板 ;keyvalue:key/value数据对象。
76.实施例五本发明的实施例五公开一种执行脚本类流程节点,具体的为解析账户余额查询返回报文流程节点。
77.流程节点通过公共解析接口,将数据包与一种配置映射规则进行匹配解析。将结果存储于内部临时存储空间中,提供给业务系统使用。节点通过预配置报文解析模板,以及json形式存储的对象进行匹配,对数据进行解析后以key、value格式进行存储。
78.脚本执行将文件对象与流程配置组件名称一一对应。通过继承实现基类componentbase接口exec供流程引擎调用。流程引擎将不同的脚本文件的流程串联组成业务处理流程。
79.实施例六本发明的实施例六公开一种跳转网页类流程节点,具体的为反显账户余额信息流程节点。
80.节点提供一个可根据流程配置的方式,通过配置节点的页面数据,控制页面的切换。内部实现当前页面与引擎的绑定关系,实现页面与引擎的相互调用。
81.页面事件onsystemmessage事件接口。
82.(1)状态事件对应规则:page_wait:页面等待事件,脚本引擎通过调用firesystemmessage接口将page_wait作为事件参数触发page_wait事件。
83.page_wait_complete:页面等待完成事件,脚本引擎通过调用firesystemmessage接口将page_wait_complete作为事件参数触发page_wait_complete事件。
84.page_load:页面通过绑定后通过firesystemmessage接口触发页面 page_load事件。
85.device_event:引擎监听到金融硬件设备所产生的硬件事件后通过firesystemmessage接口触发页面 device_event事件。
86.message_event: 引擎通过执行脚本中自产生的事件通过firesystemmessage接口触发页面 message_event事件。
87.ondata_event:个性化定义数据事件,通过firesystemmessage接口触发页面 ondata_event事件component_exit_event: 组件返回时通过firesystemmessage接口触发页面 component_exit_event事件。
88.(2)函数原型onsystemmessage(systemmessageargs: systemmessageargs)。
89.(3)事件参数systemmessageargs:事件对象其中包括事件名称及事件附带数据。
90.实施例七本发明的实施例七公开一种硬件交互通讯封装层。
91.由于网点环境的复杂性,以及终端类型的多样性,b/s架构atmc服务封装了硬件交互通讯层,在通讯层中封装了三种通讯方式:本地接口调用:此接口适用于流程引擎与硬件模块工作于同一个物理设备上,流程引擎以本地方法调用的方式调用硬件驱动完成与硬件交互,交互接口根据操作系统不同,对不同操作系统进行兼容。
92.wifi通讯:此接口适用于硬件模块存在wifi模块,流程引擎通过wifi网络发送socket请求与硬件模块通讯,完成硬件驱动调用。
93.蓝牙通讯:此接口需要硬件模块与流程引擎运行系统都安装蓝牙模块,完成蓝牙匹配后通过蓝牙调用硬件驱动,完成硬件驱动调用。
94.实施例八本发明的实施例八公开一种在线配置开发运维辅助平台。此处的辅助平台即管理服务。
95.由于b/s架构特性:运行过程中所有运行数据皆来源于服务器,所有产生运行日志数据皆存储于服务器。此特性让在线配置、开发、运维成为可能,基于此特性,本系统建设了一个在线运维开发平台辅助系统运行。
96.①
:在线菜单配置在线配置终端展示业务菜单,支持不同终端差异化配置,菜单配置完成后重新加载流程引擎生效。
97.②
:在线流程开发配置在线通过可视化“拖拉拽”的方式开发业务流程,开发完成后按终端下发后业务流程立即生效。
98.③
:在线运行参数配置在线配置终端运行所需各类参数,参数由终端agent启动时从服务器加载,支持终
端差异化配置。
99.④
:在线打印模板开发配置在线配置开发终端业务运行过程中所需打印各类凭条,发票等各类模板,开发完成后分配给指定设备后实时生效。
100.⑤
:在线多语言数据配置在线配置多语言数据,终端h5页面可根据配置信息以及终端选定语言版本,展示为不同语言版本网页。
101.⑥
:在线卡宾数据配置在线配置卡宾数据,用于终端卡类型判断依据,卡宾数据实时下发生效。
102.⑦
:在线h5网页配置发布终端展示h5页面可以通过运维平台实时上传发布升级,升级后刷新终端浏览器生效。
103.⑧
:交易日志查询统计交易日志实时记录到服务器数据库,运维平台可以对交易日志数据进行查询统计工作。
104.⑨
:交易对账运维平台可以跟据交易日志,完成与后台系统交易对账,确保资金安全。
105.⑩
:终端运行日志集中存储,统计,分析终端定时上传运行日志到服务器进行集中化存储,保障数据安全,服务器对终端日志进行统计分析可以为设备性能,设备交易吞吐量,设备维护效率等各项考核指标提供参考依据。
106.以上所述仅是本发明的优选实施方式,应当指出的是,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。