转自 http://blog.csdn.net/andyhou/article/details/6888416安全
前言:
写给ATM硬件和软件人员的无言歌。
但愿对工做有所帮助,可以少花些时间在解决相关问题上,多些时间作本身喜欢作的事情。
必定意义上来说,任何ATM从业人员都应该看下这篇文章。
正文:
随着符合WOSA/XFS规范的跨平台ATMC软件日益铺开,确实有不少人须要稍微深刻的知道一些相关概念,但没有这样的文章来介绍,而且可能在很长的时间内,都不会有这种文章,因此就出现了这篇你如今所看到文章。
该如何组织内容,实际上是个比较难办的问题,只能走到哪是哪了,但愿能在文中捡到一些珍珠,若是有的话。
咱们先从WOSA/XFS的历史来简单的看一下,搞清楚WOSA/XFS的历史也有助于理解它。
WOSA/XFS规范目前使用普遍的版本有1.0、1.十一、2.0、3.0、3.0一、3.0二、3.0三、3.10一共8个版本,其中常说谁的SP(Service Provider)符合WOSA/XFS2.0仍是3.0规范,就是指上面提到的WOSA/XFS自己的规范版本。若是你见到某些厂家的SP版本并无上面提到的几个版本,那说明厂家的SP版本是本身厂家内部定的版本号,与WOSA/XFS规范的版本没有必然联系,可是厂家的SP版本必定能够对应到符合上面几个版本中的一个版本。目前最新的是WOSA/XFS 3.10规范。
对于WOSA/XFS,XFS Manager是必定要提到的。咱们简单看看WOSA/XFS的架构,这个你们应该都比较熟悉了。中间是XFS Manager,上面是ATMC,下面是SP,其中XFS Manager对上面有API(Application Programming Interface)接口,对下面有SPI(Service Provider Interface)接口。
XFS Manager是WOSA/XFS规范的核心,它规定了API和SPI接口,从而达到统一上面的ATMC和下面的SP的功能,ATM软件可以实现所谓的跨平台是靠它来主要实现的。
XFS Manager其实是三个DLL组成,在系统目录\Windows\System32下面,分别是MSXFS.DLL(基本的XFS API and SPI函数,在Include目录下的XFSAPI.H和XFSSPI.H中定义)、XFS_SUPP.DLL(一些支持函数,在Include目录下的 XFSADMIN.H中定义)、XFS_CONF.DLL(配置函数,在Include目录下的Xfsconf.h中定义)。
咱们上面提到的7个版本,能够经过找到MSXFS.DLL文件,而后右键查看其文件属性,里面有个版本号,从而就知道某台机器运行的SP符合哪一个版本的WOSA/XFS规范,这是个判断WOSA/XFS版本的一个有效办法。
XFS Manager的这三个DLL是公开无偿使用的,在WOSA/XFS 2.0之前,XFS Manager是由微软公司开发的,从WOSA/XFS 3.0之后转到CEN/XFS来开发,其实是NEXUS公司作为主导在维护开发。若是是CEN/XFS的会员,则能够得到XFS Manager的源代码,目前几大厂商都是会员,因此基本都有XFS Manager的源代码。
咱们老是在说WOSA/XFS,那到底它包含什么内容?
1、 一组文档,能够认为是个软件概要设计说明书,只是设计,没有代码实现
2、 上面提到的XFS Manager的三个DLL
3、 每一个厂商按照文档实现的一组DLL,叫过SP
前两个先无论,咱们看第三个,这个是咱们常见的。WOSA/XFS规定SP必须是基于DLL形式的,无论你作成什么样子,对于XFS Manager向下看,必须是看到导出SPI接口的SP DLL。
下面看看跟WOSA/XFS有关的注册表配置,对于WOSA/XFS2.0,全部的配置在HKEY_CLASSES_ROOT\WOSA/XFS_ROOT,对于WOSA/XFS3.0,配置分到两个地方,HKEY_LOCAL_MACHINE\SOFTWARE\XFS和HKEY_USERS\.DEFAULT\XFS。WOSA/XFS3.0把注册表分为两个部分,是考虑安全性,不一样的登陆用户看到的设备多是不同的。
无论版本的差异,注册表主要的内容有三项,一项是XFS_MANAGER,属于XFS Manager自己的配置项;一项是LOGICAL_SERVICES,是给ATMC应用用的,区别每种设备;一项是SERVICE_PROVIDERS,具体对应到某个硬件设备;另一般有PHYSICAL_SERVICES,存放厂商的硬件配置。对于具体的每一项的说明,请参考文档《cwa14050-01-2000-Nov.pdf》的22页到25页内容。建议看看这份文档,对于从事ATM工做有很大帮助,它的细节能够不用管,只要知道一些大概的概念便可。
通常一个厂家的SP,只须要十几个文件便可,内容比较少,可是象NCR、Diebold等的SP,安装起来会花上一些时间,由于里面包含了硬件诊断工具、配置工具等实际上跟SP没有关系的东西。
由于SP的接口是统一的,因此咱们会看到不少厂家提供的有XFS测试工具,可以测试多个厂家的SP,好比Wincor的WosaTest,Diebold的XTG等,这些工具能够互换使用的,反正接口都是符合一个标准的。
由于不少硬件工程师可能须要用到这些SP测试工具,这里简单说一下怎样使用这些工具,固然,若是想彻底使用该工具的每一个功能,不只仅须要测试工具自己的说明,熟悉WOSA/XFS的规范是必要的,因此基本上能操做便可。
一个完整的SP测试操做以下(下面的操做通常能够在SP测试工具的菜单或者工具栏中直接找到,一些步骤中出现的参数选择,基本能够采用默认的参数便可):
1、 在SP测试工具中调用WFSStartUp, 目的是把整个SP的环境启起来,包括把XFS Manager装载到测试工具的进程空间中。
2、 在SP测试工具中调用WFSOpen,目的是打开某个硬件模块,SP测试工具通常一次只能打开一种类型的硬件设备。其中要注意的是有个参数叫过Logical Name“逻辑名”,这个必定要填对,通常的厂家都有固定的习惯,好比Diebold会叫NT_IDC、NT_CDM等,打开哪一个设备就填上对应的名字。全部可能的名字在上面提到的注册表项LOGICAL_SERVICES下面,若是不清楚,你能够看看哪一个名字象你要测试的设备,填上这个名字通常错不了。
3、 在SP测试工具中调用WFSRegister,目的是注册一下,以便可以接收到SP传上来的事件。
4、 在SP测试工具中调用WFSLock,这步基本能够省略。目的是锁定设备,主要是防止同时还有其余程序在访问该设备,达到独占设备的目的。
5、 而后调用WFSGetInfo来获取设备的信息,至关于Read设备;也能够调用WFSExecute来对设备发命令,至关于Write设备,这两个是一个对应。基本全部的命令都是经过这两个接口来完成的,其余步骤都是准备工做而已。对于WFSGetInfo和WFSExecute是各自包含一组命令,能够选择单独的命令来执行。至于每一个命令的意思,要看WOSA/XFS的那些规范文档了,每一个命令都有详细的描述。
6、 全部测试完成后,调用WFSUnLock,用来解锁,若是第四步有锁定设备。
7、 在SP测试工具中调用WFSUnRegister,目的是反注册一下,代表再也不接收SP传上来的事件了。
8、 在SP测试工具中调用WFSClose,目的是关闭设备,好比关闭串口通信等。
9、 在SP测试工具中调用WFSCleanUp,目的是释放整个SP的运行环境,把使用的相关文件和资源所有恢复。
至此,一个完整的SP测试流程已经完成了,能够通过这几步对设备进行测试,多熟悉下一个SP测试工具,就会明白每一个命令是干什么的了。对于硬件工程师,若是在知道厂商硬件诊断工具以外,再知道怎样操做这个,对于诊断系统的问题也是有很大帮助的,尤为是在运行跨平台软件的机器上。目前最好的SP测试工具应该是Wincor的测试工具,使用的比较普遍,其余厂商的各有特色。
下面讲讲WOSA/XFS规范文档的内容结构。WOSA/XFS3.0规范文档大概分为四十多个pdf文档,均可以避免费下载到,下载地址在本文附录中提到。
其中第一份文档最重要,是讲整个WOSA/XFS的架构、配置信息、API/SPI、内存管理等内容,稍微难懂了些,若是能看看则对整个WOSA/XFS有所了解。介于阅读英文的规范对于中国人比较难,因此会有必定的障碍。
第二份文档讲WOSA/XFS规范都涉及到了哪些模块等信息,对每一个模块进行了简单的综述。
从第三份文档开始,依次介绍每种设备的命令,其实都是在讲WFSGetInfo和WFSExecute,只是参数不一样。每份文档的结构大同小异,先是讲WFSGetInfo的各个命令及其参数、注意事项等;接着讲WFSExecute的各个命令及其参数、注意事项等;接着讲该设备可能发生的Events;最后是C语言的头文件。
从大概第16份文档开始,是讲怎样从WOSA/XFS2.0规范迁移到WOSA/XFS3.0规范,主要是提供给旧版本的SP用的,能够不看它们。
从大概第29份文档开始,是讲关于SNMP监控的,目前能够不看它们。
那么目前只看前十五份文档便可。
WOSA/XFS规范文档目前没有中文的,而且也不要期望CEN/XFS会出中文文档,由于翻译过程当中会丢掉不少重要信息,毕竟是一个严密的规范,不是小说,漏掉点内容问题不大,这个翻译错了,就会有误解。可是,也不是不可能翻译成中文版的,前提是必须很是熟悉WOSA/XFS规范,才能高屋建瓴的来翻译这些文档。国内也有几个厂家翻译过WOSA/XFS规范,只是没有对外公开其翻译的内容。
当你看到了这么多文档后,就会理解为何不一样的厂家对WOSA/XFS规范会有不一样的理解。由于硬件是多样性的,可以在一份规范中把全部硬件都统一进来是很是不容易的事情。可能有些细节是没有考虑到的,可是咱们看到WOSA/XFS规范也是在不断的进步和完善,不断随着市场的变化推出新的规范版本。
WOSA/XFS规范不久会由于微软推出.NET平台受到一些影响,可是其本质上是不会改变的,至可能是XFS Manager和SP的代码会重写,那些关于ATM硬件的命令是暂时不会过期的。架构