这篇文章取的名字很不好意思,见笑。针对本文有以下声明:
1、本文中使用的图片来自WOSA/XFS的规范文档,我只是汉化了一下而已。
2、本文原文发表于2006年7月的《银行卡与受理市场》。谢绝任何转载。
XFS(Extensions for Financial Services),扩展金融服务。这几年在国内各商业银行及金融设备供应商之间开始变得热门起来。本文的内容来自笔者在学习XFS时的一些笔记,有一些理解不太透彻或正确的地方,还望各位专家批评指正。
要了解XFS,就不能不提WOSA(Windows Open System Architecture)和CEN(European Committee for Standardization)。
WOSA,Windows开放式系统架构,是微软公司提出的一种在Windows操作系统下的软件架构。WOSA是一种使基于 Windows 的桌面应用程序不需为每个平台重写应用程序就能连接到多计算环境的接口,允许基于 Windows 的应用程序连接到多种计算环境,而不用为每个平台重写应用程序。像我们经常用到的ODBC之类的都是WOSA的一部分,而XFS就是其中用于金融扩展服务的那部分,是微软公司针对金融行业提出的一种软件架构。最初是由微软、几家大的金融设备厂商和银行一起制定的一套技术规范。
CEN,欧洲标准协会(欧洲标准化委员会)。在这个委员会中,有CEN XFS Workshop这么一个工作组,是BSVC(Banking Solution Vendors Council,这是由超过20家金融设备厂商组成的一个委员会)的附加部分。现在,正是位于比利时的这个小组在管理和维护着这套规范。
前面讲的都是XFS的一些背景,那么XFS到底什么呢?一套基于C的WIN32 API。这是一套为了既方便应用开发者,又方便服务提供者的技术规范,定义了各类金融外围设备的驱动接口。采用这个接口的应用,都可以运行在任何能够提供符合这个规范的接口的金融设备上,而不论是哪家厂商。

上图就是XFS的体系结构图,我们可以看到,XFS实际上就是由API、SPI两套接口和一个管理器组成,这套规范主要就是API和相应的SPI这两套分别针对应用和底层服务开发的接口定义,另外还有一些其他的支持服务。习惯上,我们把应用叫做AP,把XFS Manager叫做管理器,而把底层的用来驱动硬件设备的那层叫做SP(即Service Providers)。
在这个架构中,应用调用API来操作设备,而API则是由管理器提供的。也就是说,应用所有的操作都需要通过管理器才能实现。管理器匹配API和相应的SPI,然后发送请求到相应的SP,这些SP可能是不同的厂商提供的。SP则提供SPI,SP是设备的管理者,向管理器和AP提供设备的操作和状态信息等,并通过Windows消息向管理器和AP提供这些信息。
管理器由3个DLL(动态链接库)组成,3个DLL分别提供不同功能。
名称
|
描述
|
安装路径
|
MSXFS.DLL
|
提供基本的API和调用SPI函数
|
系统目录,如c:/winnt/system32
|
XFS_SUPP.DLL
|
提供一些支持函数,比如内存分配之类
|
系统目录,如c:/winnt/system32
|
XFS_CONF.DLL
|
提供配置函数,比如读写配置信息
|
系统目录,如c:/winnt/system32
|
这3个DLL是随XFS的规范一起发布的,当然,也有一些软件厂商自行编写。
API有下面3种
–
基本功能:诸如 StartUp/CleanUp、Open/Close、Lock/Unlock和Execute,这些都是所有的XFS设备和服务类都支持的。
–
管理功能:诸如设备初始化、复位、挂起和恢复,用来管理设备和服务。
–
特定指令:用来查询设备或服务的信息、执行设备的特殊功能,它们被作为GetInfo/ Execute的参数送给设备。这些特定的指令有一套单独的规范,每类服务(或设备)一套。
SPI,基本和API相似,除了一些由管理器处理的指令。
在XFS中,我们可以从函数名称上也可以看出哪些是API,哪些是SPI,函数命名规则如下:
函数类型
|
函数调用者
|
函数提供者
|
API 函数
WFS…
|