JXFS Service

The Bank Transformation Toolkit provides the JXFS Service to support J/eXtensions for Financial Services (J/XFS) compliant devices. The J/eXtensions for Financial Services (J/XFS) is a set of standard Java™ interfaces to support input and output devices used by various access channels such as Branch Teller in the financial  industry. The J/XFS standard provides device independence by abstracting vendor-specific data sequences used to control financial devices into a set of properties, methods, and events (PME) unique to each device type (such as a card reader and PIN keypad). By conforming to these PME models, J/XFS-compliant financial applications become independent of the device hardware that they access. This allows upgrades or replacement of hardware to occur without affecting the application layer. For additional information about J/XFS, see the J/XFS Programmer's Reference.

The JXFS Service uses the typical interface between applications and J/XFS devices: Device Control (DC) and Device Manager (DM). Device Control objects access the Device Manager to get access to an associated Device Service. It is the Device Service object that accesses the actual device. To use the interface, the JXFS Service provides the following functionality:

  1. Access a new Device Control by calling the getDevice() method of the JxfsDeviceManager.
  2. Send open() calls to the Device Control. The first open() received by a Device Service physically connects to the device.
  3. Register as a listener of the OperationCompleteEvent, StatusEvent, and IntermediateEvent.
  4. Control the device through the device-specific functions including exclusive use the device through claim() and release() methods.
  5. Close the device.

  Diagram showing how Device Control and Device Manager are used to access J/XFS devices.

The normal procedure (modified for use with Bank Transformation Toolkit services) for accessing a J/XFS device from an application is the following:

  1. The client application creates a new JxfsDeviceManager object.
  2. The JxfsDeviceManager object initializes the J/XFS subsystem by first querying the configuration repository for the subsystem's configuration data.
  3. The JxfsDeviceManager instantiates all the DeviceService objects for the locally connected devices.
  4. If configured for remote access, the objects that are responsible for enabling this remote connection are also generated by the JxfsDeviceManager, and are connected to their DeviceService.
  5. The available Device Services are registered by the J/XFS Device Manager at a central directory (J/XFS Server) where other J/XFS clients can query for accessible devices.
  6. The client application asks the J/XFS Device Manager for the device via the getDevice() method.
  7. The J/XFS Device Manager creates a J/XFS Device Control, locates the J/XFS Device Service, and connects it to the J/XFS Device Control. It then returns the J/XFS Device Control object to the application.
  8. The Device Control object is ready to be used by the application.

The JXFS Service handles the first seven steps of the procedure and may be configured to open the device.