技术领域
[0001] 本发明涉及计算机技术领域,尤其涉及一种自助终端架构。
相关背景技术
[0002] 目前各类的自助终端在应用架构上只笼统的分为了客户端及服务端。在单核CPU下,这种方法能够快速的进行开发和应用。但是,在多核CPU下,如何更好的利用CPU的多核运算特性,进一步提升自助终端的计算能力及运行速度,显然,单核时代自助终端的客户端/服务端这种粗暴的构建方法已不能满足需求。
具体实施方式
[0063] 为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。
[0064] 目前各类的自助终端在应用架构上只笼统的分为了客户端及服务端。在单核CPU下,这种方法能够快速的进行开发和应用。但是,在多核CPU下,如何更好的利用CPU的多核运算特性,进一步提升自助终端的计算能力及运行速度,显然,单核时代自助终端的客户端/服务端这种粗暴的构建方法已不能满足需求。
[0065] 为了更好的利用CPU的多核运算特性,本发明提供一种自助终端架构,通过业务功能层、终端驱动层、系统监控层、自动更新层和策略控制层的自助终端架构可以更好的利用CPU的多核运算特性,实现自助终端系统分层治理,提升自助终端的运行效率在,同时,减少终端各个部件之间的依赖,达到终端功能间互不干扰,实现了自助终端的部件通信解耦。
[0066] 本实施例提供的自助终端架构如图1所示,包括:业务功能层(1)、终端驱动层(2)、系统监控层(3)、自动更新层(4)和策略控制层(5)。
[0067] 业务功能层(1):主要用于自助终端上搭载的终端功能的展现。其中,功能展现是通过业务功能线程完成,该展现操作主要是由策略控制层进行触发,业务功能层进行响应。同时业务功能层(1)也可以通过系统监控线程主动向策略控制层(5)发出事件请求,如该层需要访问终端驱动层,不能直接调用该层提供的接口,而是通过触发事件通知到策略控制层的终端控制策略线程,由终端策略控制线程对终端驱动层进行访问。
[0068] 终端驱动层(2):该层的作用是封装了终端集成的硬件设备如打印机、身份证读卡器、POS机等设备驱动,并且提供统一标准的API供相应的硬件事件调用。
[0069] 系统监控层(3):主要是监试及控制操作系统及自助终端的健康情况的具体操作。并且接收和处理系统监控子系统的相关事件。
[0070] 自动更新层(4):主要是触发自助终端操作系统及软件的功能更新事件的具体操作。并且接受和处理来自自动更新子系统的相关事件。
[0071] 策略控制层(5):主要是控制自助终端各层的事件通信的分发及事件处理的反馈。并且接收和处理来自策略控制子系统的相关事件。
[0072] 其中,业务功能层(1)包括终端业务功能线程(1.1)和业务功能子系统(1.2)。
[0073] 终端驱动层(2)包括终端驱动线程(2.1)和终端驱动子系统(2.2)。
[0074] 系统监控层(3)包括系统监控线程(3.1)和系统监控子系统(3.2)。
[0075] 自动更新层(4)包括自动更新线程(4.1)和自动更新子系统(4.2)。
[0076] 策略控制层(5)包括终端策略控制线程(5.1)和终端策略控制子系统(5.2)。
[0077] 其中,
[0078] 1、终端业务功能线程(1.1)、终端驱动线程(2.1)、系统监控线程(3.1)、自动更新线程(4.1)和终端策略控制线程(5.1)位于终端操作系统中。
[0079] 2、业务功能子系统(1.2)、终端驱动子系统(2.2)、系统监控子系统(3.2)、自动更新子系统(4.2)和终端策略控制子系统(5.2)单独位于服务器中间件中。
[0080] 3、终端业务功能线程(1.1)通过请求事件与业务功能子系统(1.2)通信,业务功能子系统(1.2)通过返回事件与终端业务功能线程(1.1)通信。
[0081] 4、终端驱动线程(2.1)通过请求事件与终端驱动子系统(2.2)通信,终端驱动子系统(2.2)通过返回事件与终端驱动线程(2.1)通信。
[0082] 5、系统监控线程(3.1)通过请求事件与系统监控子系统(3.2)通信,系统监控子系统(3.2)通过返回事件与系统监控线程(3.1)通信。
[0083] 6、自动更新线程(4.1)通过请求事件与自动更新子系统(4.2)通信,自动更新子系统(4.2)通过返回事件与自动更新线程(4.1)通信。
[0084] 7、终端策略控制线程(5.1)通过请求事件与终端策略控制子系统(5.2)通信,终端策略控制子系统(5.2)通过返回事件与终端策略控制线程(5.1)通信。
[0085] 8、终端策略控制线程(5.1)可分别与终端业务功能线程(1.1)、终端驱动线程(2.1)、系统监控线程(3.1)和自动更新线程(4.1)通信。
[0086] 9、终端策略控制子系统(5.2)可分别与业务功能子系统(1.2)、终端驱动子系统(2.2)、系统监控子系统(3.2)和自动更新子系统(4.2)通信。
[0087] 通过上述架构可实现多核CPU下的自助终端,通过终端策略控制为核心的事件驱动型多线程终端构建模式,将自助终端进行分层构建,以达到自助终端系统分层治理,提升自助终端的运行效率。同时,通过该架构可减少终端各个部件之间的依赖,达到终端功能间互不干扰,实现了自助终端的部件通信解耦的目的。
[0088] 图1所示的自助终端架构的事件分发过程,如图2所示。
[0089] 1、业务功能层(1)
[0090] 1)终端业务功能线程(1.1)通过业务请求与业务功能子系统(1.2)通信。
[0091] 2)业务功能子系统(1.2)通过对该业务请求的返回与终端业务功能线程(1.1)通信。
[0092] 3)终端业务功能线程(1.1)包括:封装浏览器的内核(1.1.1),Web容器进程(1.1.2)和第一策略事件进程(1.1.3)。
[0093] 4)Web容器进程(1.1.2)通过业务请求与业务功能子系统(1.2)通信,业务功能子系统(1.2)通过对该业务请求的返回与Web容器进程(1.1.2)通信。
[0094] 5)Web容器进程(1.1.2)对html和JavaScript进行原生渲染,并通过Resful接口集成或界面集成的方式获取业务功能子系统对业务请求的返回。
[0095] 6)第一策略事件进程(1.1.3)与终端策略控制线程(5.1)通信。
[0096] 7)第一策略事件进程(1.1.3)用于触发终端策略控制线程(5.1)中发送的事件动作,并且通过异步的方式获取事件动作的结果。
[0097] 8)业务功能子系统(1.2)用于通过与终端策略控制子系统(5.2)的通信管理终端业务功能的上架和下架。
[0098] 终端策略控制子系统(5.2)可生成功能上架、下架事件,执行结果可通过事件配置的策略进行下一步的事件冒泡操作。
[0099] 2、终端驱动层(2)
[0100] 1)终端驱动线程(2.1)通过业务请求与终端驱动子系统(2.2)通信。
[0101] 2)终端驱动子系统(2.2)通过对该业务请求的返回与终端驱动线程(2.1)通信。
[0102] 3)终端驱动线程(2.1)包括硬件驱动进程(2.1.1)和第二策略事件进程(2.1.2)。
[0103] 4)硬件驱动进程(2.1.1)通过业务请求与终端驱动子系统(2.2)通信,终端驱动子系统(2.2)通过对该业务请求的返回与硬件驱动进程(2.1.1)通信。
[0104] 5)第二策略事件进程(2.1.2)与终端策略控制线程(5.1)通信。
[0105] 6)硬件驱动进程(2.1.1)用于通过终端驱动子系统(2.2)获取终端策略控制子系统(5.2)分发的驱动调用事件,用过驱动调用事件执行相应的硬件操作。
[0106] 7)第二策略事件进程(2.1.2)用于触发终端策略控制线程(5.1)中发送的事件动作,并且通过异步的方式获取事件动作的结果。
[0107] 8)终端驱动子系统(2.2)用于管理终端硬件驱动所需的初始化配置及打印模板的配置。
[0108] 9)终端驱动线程(2.1)在初始化时,通过终端驱动子系统(2.2)获取硬件驱动初始化配置。
[0109] 本发明中的硬件驱动进程(2.1.1)并非通过业务功能线程直接调用相关的硬件驱动,而是通过终端策略控制子系统(5.2)分发的驱动调用事件执行相应的硬件操作,达到将业务功能子进程与软件驱动子进程进行解耦的目的。
[0110] 3、系统监控层(3)
[0111] 1)系统监控线程(3.1)通过业务请求与系统监控子系统(3.2)通信。
[0112] 2)系统监控子系统(3.2)通过对该业务请求的返回与系统监控线程(3.1)通信。
[0113] 3)系统监控线程(3.1)包括第一系统命令控制进程(3.1.1)和第三策略事件进程(3.1.2)。
[0114] 4)第一系统命令控制进程(3.1.1)通过业务请求与系统监控子系统(3.2)通信,系统监控子系统(3.2)通过对该业务请求的返回与第一系统命令控制进程(3.1.1)通信。
[0115] 5)第三策略事件进程(3.1.2)与终端策略控制线程(5.1)通信。
[0116] 6)第一系统命令控制进程(3.1.1)用于控制终端重启、系统重启。
[0117] 7)系统监控子系统(3.2)用于对线程初始化配置进行管理。
[0118] 其中,对线程初始化配置进行管理包括:对终端硬件设备及软件功能的列表、终端监控的时长的线程初始化配置进行管理。
[0119] 8)系统监控线程(3.1)通过与系统监控子系统(3.2)进行同步通信获得配置信息,通过终端策略控制子系统(5.2)获取子系统的配置信息,并将配置信息的变化通知至策略监控子线程。
[0120] 4、自动更新层(4)
[0121] 1)自动更新线程(4.1)通过业务请求与自动更新子系统(4.2)通信。
[0122] 2)自动更新子系统(4.2)通过对该业务请求的返回与自动更新线程(4.1)通信。
[0123] 3)自动更新线程(4.1)包括自动更新执行进程(4.1.1)和第二系统命令控制进程(4.1.2)。
[0124] 4)自动更新执行进程(4.1.1)通过业务请求与自动更新子系统(4.2)通信,自动更新子系统(4.2)通过对该业务请求的返回与自动更新执行进程(4.1.1)通信。
[0125] 5)第二系统命令控制进程(4.1.2)与终端策略控制线程(5.1)通信。
[0126] 6)自动更新执行进程(4.1.1)通过策略监控子线程获取需要更新的线程及更新后的事件处理,根据预设的事件响应策略响应事件。
[0127] 其中,事件响应策略,包括:
[0128] 若更新操作为更新操作系统事件,则响应策略为:触发操作系统的重启操作系统事件,触发自动更新的关闭线程事件,触发业务功能的关闭线程事件,触发终端监控的关闭线程事件,触发终端硬件设备的关闭线程事件,触发策略控制的关闭线程事件。
[0129] 若更新操作为更新自动更新线程事件,则响应策略为:触发自动更新的重启操作系统事件,触发策略控制的重启操作系统事件。
[0130] 若更新操作为更新业务功能线程事件,则响应策略为:触发业务功能的重启线程事件,触发策略控制的重启操作系统事件。
[0131] 若更新操作为更新终端监控线程事件,则响应策略为:触发终端监控的重启线程事件,触发策略控制的重启线程事件。
[0132] 若更新操作为更新终端硬件设备线程事件,则响应策略为:触发终端硬件设备的重启线程事件,触发策略控制的重启线程事件。
[0133] 若更新操作为更新策略控制,则响应策略为:触发策略控制的重启线程事件。
[0134] 详情可见表1。
[0135] 表1
[0136]
[0137]
[0138] 从表1中可以看出,通过改用事件驱动模式,在单纯更新每个线程的事件上看,除了操作系统更新及业务功能线程更新外,其余线程的更新均不会影响业务功能线程的正常运行。
[0139] 7)自动更新子系统(4.2)用于对操作系统进行补丁、对终端的各子线程及版本进行配置和管理、添加配置信息。
[0140] 5、策略控制层(5)
[0141] 1)终端策略控制线程(5.1)通过事件触发控制终端业务功能线程(1.1)、终端驱动线程(2.1)、系统监控线程(3.1)和自动更新线程(4.1)。
[0142] 2)终端策略控制线程(5.1)通过事件获取与终端策略控制子系统(5.2)通信。
[0143] 3)业务功能子系统(1.2)、终端驱动子系统(2.2)、系统监控子系统(3.2)和自动更新子系统(4.2)通过事件触发与终端策略控制子系统(5.2)通信。
[0144] 4)终端策略控制子系统(5.2)通过事件注册与终端策略控制线程(5.1)通信。
[0145] 5)终端策略控制子系统(5.2)用于成功能上架、下架事件,执行结果可通过事件配置的策略进行下一步的事件冒泡操作。
[0146] 6)终端策略控制子系统(5.2)用于对配置信息添加后的触发事件进行管理。
[0147] 7)终端策略控制线程(5.1)用于终端其他子线程的事件注册及事件分发。
[0148] 8)终端策略控制子系统(5.2)用于配置子系统内的策略事件及终端的策略线程事件,将策略同步到终端策略控制线程(5.1)。
[0149] 9)终端策略控制线程(5.1)用于对终端进行策略控制。
[0150] 终端的策略控制线程(5.1)是整个自助终端架构的核心,它承担了终端其他子线程事件的事件注册及事件分发。终端策略控制线程(5.1)将所有的请求和异步操作都放到一个事件队列中,由于在终端上,各个子线程都是单例的,不存在并发互斥的问题。故能在多核CPU下并行计算发挥相当大的作用。同时,真正的事件触发是在每个子线程运行的,也不会出现策略控制器线程和其他终端线程存在业务死锁的问题。
[0151] 本实施例提供的方法,通过业务功能层、终端驱动层、系统监控层、自动更新层和策略控制层的自助终端架构可以更好的利用CPU的多核运算特性,实现自助终端系统分层治理,提升自助终端的运行效率在,同时,减少终端各个部件之间的依赖,达到终端功能间互不干扰,实现了自助终端的部件通信解耦。