基于XFS标准的SP实现方法及SP架构
技术领域
本发明涉及自助终端设备,特别是涉及符合XFS标准的金融、电讯和电力等行业自助终端设备的驱动软件。
背景技术
CEN/XFS标准是欧洲标准化委员会针对扩展金融服务行业发布的国际标准,现有的标准与规范文件主要有:CWA 13449 – XFS Release 2.0;CWA 14050 – XFS Release3.03;以及CWA 15748 – XFS Release 3.10。CEN/XFS标准系统框架主要包括应用系统层、服务提供层和硬件层三个大层。就设备管理而言,具体涉及到的自助终端设备包括读卡器、密码键盘、(进)出钞机、凭条打印机、流水打印机、摄像机、传感器、警报器等。按CEN/XFS标准,只规定了服务提供层(SP,Service Provider的简称,是CEN/XFS标准定义的设备服务)对上层应用的实现形式必须是动态库的形式。至于SP如何实现则由各设备提供商自己考虑解决方案。
由于Windows资源,例如:串口资源、USB接口资源等,是由各进程为单位来管理的,且同一时刻资源只能由唯一一个进程所拥有,所以如果服务提供层(SP)以单一动态库来实现的话,那么多应用同时操作设备时,就相当于多个进程同时要求申请拥有某一资源,这在现有的Window模式下是不允许的。
发明内容
本发明要解决的技术问题在于克服上述现有技术的不足,而提出一种基于XFS标准的SP实现方法,能够支持多应用程序同时对设备的操作。
本发明解决上述技术问题采用的技术方案包括,提出一种基于XFS标准的SP实现方法,适用于采用XFS标准的自助终端设备,将SP设计成四层结构,由上往下依次为:
服务提供者代理,对上与XFS标准的应用管理层接口,采用动态库的形式,并采用XFS标准的对上层接口,只负责上层应用操作指令的转发;
服务提供者,采用进程的形式,对同一资源只有这个唯一的进程所拥有和管理;
设备指令协议解析模块,采用动态库的形式,并具有统一的对上层接口;以及
硬件接口协议解析模块,对下与XFS标准的硬件层接口,采用动态库的形式,并具有统一的对上层接口。
使服务提供者代理与服务提供者之间通过Windows消息机制实现进程间的通讯。
使服务提供者代理与服务提供者之间的消息接口包括:启动设备,打开设备,初始化设备,关闭设备,取消设备操作,独立占用设备,解除独立占用设备,退出服务提供者,定时操作,注册信息,解除注册信息,执行设备操作,查询设备信息,同步设备以及存储设备信息。
使服务提供者的内部操作以队列形式执行。
使服务提供者与设备指令协议解析模块之间的接口包括:打开设备,执行设备操作,查询设备功能以及关闭设备。
使设备指令协议解析模块与硬件接口协议解析模块之间的接口包括:打开设备,关闭设备,撤消设备操作,向设备发送数据,接收设备数据以及向设备发送数据同时接收应答数据。
使硬件接口协议解析模块对下层采用Windows API接口;使服务提供者代理对上层接口包括:打开设备,关闭设备,注册信息,解除注册信息,独立占用设备,解除独立占用设备,执行设备操作,获取设备信息,设置设备跟踪操作以及获取设备是否可卸载。
使该服务提供者从服务提供者代理获取命令;并使该服务提供者可将执行命令的结果经由该服务提供者代理或者直接向XFS标准的应用管理层返回。
使采用XFS标准的金融自助配套设备包括:读卡器、密码键盘、进和/或出钞机、凭条打印机、流水打印机、摄像机、传感器以及警报器。
本发明解决上述技术问题采用的技术方案还包括,提出一种基于XFS标准的SP架构,适用于采用XFS标准的自助终端设备,该SP系统为四层结构,由上往下依次为:
服务提供者代理子层,其对上与XFS标准的应用管理层接口,采用动态库的形式,并采用XFS标准的对上层接口,只负责上层应用操作指令的转发;
服务提供者子层,采用进程的形式,对同一资源只有这个唯一的进程所拥有和管理;
设备指令协议解析模块子层,其采用动态库的形式,并具有统一的对上层接口;以及
硬件接口协议解析模块子层,其对下与XFS标准的硬件层接口,采用动态库的形式,并具有统一的对上层接口。
与现有技术相比,本发明的基于XFS标准的SP实现方法及SP架构,通过等级划分的四层结构之间的相互分工与配合,能够实现对多应用程序同时对设备的操作的支持。
附图说明
图1为本发明的基于XFS标准的SP架构示意。
图2为应用本发明的SP架构的例举。
具体实施方式
以下结合附图所示之最佳实施例作进一步详述。
参见图1, XFS标准大致包括三个大层:应用系统层1,SP(服务提供层)2以及硬件层3。其中,应用系统层1大致可以进一步划分为:XFS应用系统31和XFS管理器两个子层。硬件层3包括有硬件设备31。
本发明的基于XFS标准的SP架构为四层结构,由上往下依次为:
服务提供者代理子层21,其对上与XFS标准的应用管理层接口,采用动态库的形式,并采用XFS标准的对上层接口,只负责上层应用操作指令的转发;
服务提供者子层22,采用进程的形式,对同一资源只有这个唯一的进程所拥有和管理;
设备指令协议解析模块子层23,其采用动态库的形式,并具有统一的对上层接口;以及
硬件接口协议解析模块子层24,其对下与XFS标准的硬件层3接口,采用动态库的形式,并具有统一的对上层接口。
其中,该服务提供者子层22从服务提供者代理子层21获取命令;该服务提供者子层22可将执行命令的结果经由该服务提供者代理子层21或者直接向XFS标准的应用管理层3返回。
由于SP实现中的设备指令协议解析模块子层23是具有统一的对上层接口,且针对不同指令协议有不同的实现,在程序中自动识别,所以对SP来说就是统一的而不依赖于指令协议;同理,由于SP实现中的硬件接口协议解析模块子层24是具有统一的对上层接口,且针对不同接口协议有不同的实现,在程序中自动识别,所以对SP来说就是统一的而不依赖于接口协议。因此,同一类型但采用不同的硬件接口的设备可以统一SP实现。
以下,对子层间的接口定义予以详细说明。
一、服务提供者代理子层21的接口:
对上层接口:(采用CEN/XFS标准)
WFPOpen 打开设备
WFPClose 关闭设备
WFPRegister 注册信息
WFPDeregister 解除注册信息
WFPLock 独立占用设备
WFPUnlock 解除独立占用设备
WFPExecute 执行设备操作
WFPGetInfo 获取设备信息
WFPSetTraceLevel 设置设备跟踪操作
WFPUnloadService 获取设备是否可卸载
对下层通过Windows消息机制实现进程间的通讯,消息接口如下:
OnStart 启动设备
OnOpen 打开设备
OnInit 初始化设备
OnClose 关闭设备
OnCancel 取消设备操作
OnLock 独立占用设备
OnUnlock 解除独立占用设备
OnExit 退出服务提供者
OnTimer 定时操作
OnRegister 注册信息
OnDeregister 解除注册信息
OnExecute 执行设备操作
OnGetInfo 查询设备信息
OnSyncHandle 同步设备
OnDoPersist 存储设备信息
二、服务提供者子层22的接口:
对上层通过Windows消息机制实现进程间的通讯,消息接口如下:
OnStart 启动设备
OnOpen 打开设备
OnInit 初始化设备
OnClose 关闭设备
OnCancel 取消设备操作
OnLock 独立占用设备
OnUnlock 解除独立占用设备
OnExit 退出服务提供者
OnTimer 定时操作
OnRegister 注册信息
OnDeregister 解除注册信息
OnExecute 执行设备操作
OnGetInfo 查询设备信息
OnSyncHandle 同步设备
OnDoPersist 存储设备信息
对下层接口如下:
OnOpen 打开设备
OnExecute 执行设备操作
OnGetInfo 查询设备功能
OnClose 关闭设备
三、设备指令协议解析模块子层的接口:
对上层接口如下:
OnOpen 打开设备
OnExecute 执行设备操作
OnGetInfo 查询设备功能
OnClose 关闭设备
对下层接口如下:
Open 打开设备
Close 关闭设备
Cancel 撤消设备操作
Send 向设备发送数据
Receive 接收设备数据
SendAndReceive 向设备发送数据,同时接收应答数据
四、硬件接口协议解析模块子层的接口如下:
对上层接口如下:
Open 打开设备
Close 关闭设备
Cancel 撤消设备操作
Send 向设备发送数据
Receive 接收设备数据
SendAndReceive 向设备发送数据,同时接收应答数据
对下层接口采用Windows API接口。
参见图2,下面将以读卡器设备为例来说明本发明的基于XFS标准的SP架构是如何运作以实现SP的。图2是读卡器设备执行一个读卡操作时的运行时序图,从图中可以看出当读卡器设备执行一个读卡操作过程时SP各模块间如何协作并最终完成一个读卡操作。其中,具体包括以下步骤:
XFS应用系统12调用SP读卡接口;
服务提供者代理21一方面向上提供调用SP接口返回,另一方面向下异步发送消息命令;
服务提供者22接到命令后,向下调用驱动读卡;
设备指令协议解析模块23接到命令后,解析并向下发送读卡指令;
硬件接口协议解析模块24接到指令后,通过串口发送数据给硬件设备31;
以上为命令由上往下的传递的过程,以下为反馈由下往上的传递的过程。
硬件设备31通过串口向硬件接口协议解析模块24返回数据;
硬件接口协议解析模块24向设备指令协议解析模块23解析读卡结果;
设备指令协议解析模块23向服务提供者22返回读卡结果;
服务提供者22异步给XFS应用系统12发送读卡结果消息。
与现有技术相比,采用本发明的基于XFS标准的SP架构,可以解决多应用程序同时对设备的操作的问题,使SP既能符合CEN/XFS的标准,也能满足客户或银行的现实要求;针对同一类型但采用不同指令协议的设备统一SP实现,达到了代码复用且易于维护的目的;针对同一类型但采用不同的硬件接口的设备统一SP实现,达到了代码复用且易于维护的目的。
需要说明的是,本发明所说的自助终端设备可以是广泛应用于金融、电讯和电力等各类行业的自助终端设备,比如:读卡器、密码键盘、进和/或出钞机、凭条打印机、流水打印机、摄像机、传感器以及警报器。
以上,仅为本发明之较佳实施例,意在进一步说明本发明,而非对其进行限定。凡根据上述之文字和附图所公开的内容进行的简单的替换,都在本专利的权利保护范围之列。