CEN/XFS 的架构

Architecture of CEN/XFS

使用 XFS 接口的好处是我可以只编写一次与设备(密码键盘、读卡器)互操作的程序,我大体上是正确的吗?结果(理想情况下)是我可以更改设备并且不需要对我的软件进行任何更改。这是可能的,因为使用了通用的 XFS 接口。我说得对吗?

所以我写了一个程序来实现一些业务逻辑,它调用 XFS 接口的操作,XFS 库找到(顺便说一句?)一个服务提供者库,它理解来自 XFS 的查询和命令并且该库直接与设备一起使用。我说得对吗?

例如,我有一个文档和一个 DLL(来自设备供应商)供设备使用。如何理解它是否可以与 XFS 基础结构一起使用?我刚刚在文档中看到此 dll 公开了 C 函数以与设备一起使用。

关于你问题的第一部分。是的你是对的。在理想情况下,XFS 让您独立于应用程序中的设备实现。您可以使用相同的命令和查询来处理不同的设备型号。

关于XFS如何找到特定的设备库。要执行任何 XFS 命令或查询,您必须打开 "Logical service",这是服务的符号名称。任何逻辑服务都绑定到特定的服务提供者。 所有绑定 "logical service" <-> "service provider" 都存储在 windows 注册表中。 提供的任何服务都是具有特定接口的 windows dll。 Dll 必须导出一组名为 WFPxxx 的函数,其中 xxx 是 XFS 方法名称。您可以在 XFS 文档中找到更多详细信息。 因此,并非所有供应商 dll 都是 XFS 服务提供商库。可以看dll的导出函数来判断,就是XFS服务提供者dll。

CEN/XFS 的主要目的是让银行系统(运行 在 ATM、Kioskys 等)可以抽象硬件复杂性(例如:每个制造商都有自己的解决方案分配器必须行为)。事实上,这个目标并不总是完全实现,因为标准 XFS 对不同的解释非常开放。正因为如此,银行(银行等)创建自己对 XFS 的解释并要求其供应商遵循的情况非常普遍。当我们谈论大型银行(例如巴西的 Bradesco)时,这是可能的。但对于不购买大量 ATM 和其他终端的小型银行实体,另一种替代方案是可行的,例如在其系统内部的 XFS 层之上添加一个抽象层,以便该层处理制造商对标准 XFS 的解释。

我还建议您阅读以下文章:

  1. XFS Overview
  2. XFS Some detail

您打算开发 WOSA/XFS 应用程序。然后你必须制作一个开发环境,其中包括:a)如果你正在为已经在 FI 市场上使用的机器开发软件(例如品牌 ATM 或自助服务亭型号),则从硬件制造商安装 XFS b) 或者,如果您正在制作自己的硬件,其中在配置中包含一些 XFS 设备(例如卡 reader、条形码 reader 等),这将更加复杂且难以实现,因为您必须实现您自己的 CEN XFS standard 端口,其中包括为您自己的 XFS 管理器和所有设备 SPI(服务提供商接口)构建所有必要的代码(dll、库和头文件),包括 API SPI负责一般的 XFS 功能。如果您的新硬件 FI 单元不能大量销售,至少数百甚至数千,这将不是一个非常合理的时间和金钱投资。但是,您可以从各种供应商(NCR、Wincor、Diebold、Glory Solutions 等)购买现成的 XFS 安装。

这将是第一步,为您的开发和测试环境提供适当的 XFS 安装(开发机器的开发版本,测试机器的运行时版本)。其次,为了应用开发的需要,您可以在开发机器上安装您喜欢的C++环境,在测试硬件上安装调试环境。

完成设置后,您只需在代码中包含头文件,并在构建可执行文件时将头文件包含在 link 库中,以便为您的 cash/credit 卡片机制作合适的软件。

你说得对,XFS更像Java "write once, run everywhere"所以以后换了软件就不需要维护和采用了,比如停产的卡-reader 或另一个甚至来自不同供应商的现金存款单位。