Search code examples
cen-xfs

Architecture of CEN/XFS


Am I generally right that the benefit of using the XFS interface is that I can write a program which interoperates with devices (pin-pads, card-readers) only once? The result (ideally) is that I can change devices and I don't need any changes in my software. And this is possible because of using a universal XFS interface. Am I right?

So I write a program which implements some business logic, it invokes operations of the XFS-interface, XFS-library finds (how by the way?) a service-provider library which understands the queries and commands from the XFS and that library works with the device directly. Am I right about that?

For example, I have a documentation and a DLL (from the device-vendor) for a device to work with. How can understand if it can be used with XFS infrastructure? I just see in the documentation that this dll exposes C-functions to work with the device.


Solution

  • About first part of your question. Yes, you are right. In ideal case XFS give you independence from device implementation in your application. You can use same commands and queries to work with different device models.

    About how XFS find specific device library. To execute any XFS command or query you must open "Logical service", which is symbolic name for service. Any logical service is binded to specific service provider. All binding "logical service" <-> "service provider" is stored at windows registry. Any service provide is windows dll with specific interface. Dll must export set of functions named like WFPxxx, where xxx is XFS method name. More details you can find at XFS documentation. Thus of above, not all vendor dll is XFS service provider library. You can see exported function of dll to determine, that is XFS service provider dll.