J/Extensions For Financial Services (J/XFS) For The Java Platform
J/Extensions For Financial Services (J/XFS) For The Java Platform
What is an FAQ?
An FAQ is a list of frequently asked questions. In addition to supplying
background material, this document will provide answers for the most
frequently asked questions about J/XFS.
What is J/XFS?
J/XFS is the registered trademark for the ”J/eXtensions for Financial Services
for the Java platform” standard. Putting it another way, J/XFS is a platform-
independent Java language standard, used to communicate with and control
financial devices.
Essentially, it was recognized early on that the emergence of the Java language
on the computing scene offered several advantages to the developer of
financial applications.
The J/XFS standards was invented by a group of leading system suppliers
(De La Rue, IBM, NCR,Wincor Nixdorf and Sun Microsystems), to examine
the ways in which these Java advantages could best be exploited in the financial
environment. The committee has worked on producing a J/XFS standard to define
the interface between a 100% pure Java application and a wide range of financial
devices.
Publically available since March 1999, the work on the J/XFS standard has been
transferred in May 1999 to the European Committee for Standardization (CEN)
and its Information Society Standardization System (ISSS) in Brussels, where a
workshop has been established with additional companies and interested parties
joining the work on the J/XFS standard (more information can be obtained by
visiting the web at http://www.cenorm.be/isss/Workshop/J-XFS/default.htm ).
Since the standard will be based upon the Java platform, J/XFS-compliant
financial solutions will be capable of being hosted on a variety of operating
systems and hardware offerings, including both thick and thin client
configurations.
Java also includes a powerful multithreading capability built directly into the
language. On large server systems, each application thread might be
running under control of a separate CPU, thereby optimizing performance
without requiring a change to the program code.
Device Independence
The J/XFS standard abstracts the vendor-specific data sequences used to
control financial devices, into a set of properties, methods and events
(PME) unique to each device type (Card Reader, Pin Pad, etc.). By
conforming to these PME models, J/XFS-compliant financial applications
essentially become independent of the underlying device hardware which
they access. This in turn allows such hardware to be upgraded or replaced
entirely, without affecting the application layer.
Location Independence
The Communication layer of the J/XFS standard ensures identical
application access to financial devices, whether local or remote. This
enables multiple teller stations to share centralized resources such as
passbook printers and document scanners. These devices continue to
operate correctly no matter how and where they are physically deployed.
This device sharing is transparently provided by a J/XFS implementation,
so neither the banking application nor a J/XFS Device Service need to take
care of this functionality.
Platform Independence
The J/XFS standard utilizes the JVM as its financial platform, whether
present in a browser, an operating system, or directly embedded within the
microcode of a specialized computer chip. This language-centric platform
is decoupled from any hardware or operating system specifics. Therefore
any J/XFS-compliant financial application will run equally well on a thick
client system or on a thin client system. Furthermore, financial Independent
Hardware Vendors (IHVs) can write a J/XFS-compliant device driver once,
and have it identically access their hardware device whenever the driver is
installed on Windows or any other J/XFS compliant O/S. The only
remaining proprietary element in such a financial application is then the
application code itself, or: ”Write a J/XFS-compliant application once, run it
anywhereTM”
Since many financial application developers already have experience using the
WOSA/XFS APIs, this approach should reduce the learning curve for the very
audience that J/XFS is targeted at.
J/XFS also provides the added benefit that conforming financial applications
will be independent of the proprietary details of BOTH the peripheral devices
they access AND the O/S and machine hardware on which they run. For
example, the J/XFS standard eliminates the dependency on the NT Registry.
Through their combination of mobility and security, smart cards are playing an
increasingly important role in the rapidly developing areas of electronic commerce
and online information services. The OpenCard Framework is based on a network-
centric view of computing where resources are located throughout the network and
access to them is ubiquitous. Authenticated access and secure transactions are
indispensable prerequisites for the secure functioning and continued growth of the
information economy. Smart card aware applications and services will be the
means by which this will be achieved. The OCF Card Services provides high level
APIs to read and write data from and to card files, generate key pairs, import keys,
sign data.
OCF may run on top of J/XFS, using J/XFS Device Controls for access to card
readers and communication with smart cards. But also J/XFS can take advantage
from OCF implementations, because a J/XFS Device Service may be programmed
using an existing OCF CardTerminal implementation to access the smart card
device.
http://www.java.sun.com/products/OV_jdkProduct.html
http://www.ibm.com/java/jdk/download
The J/XFS standards committee was chartered with producing the following
set of deliverables, which can be downloaded from the J/XFS website at the
following URL: http://www.jxfs.com/documentation.html
x Pin Pads
x Alarms
x Text I/O
x Depository Units
x Cameras
Specifications for Sorters and Counters as well as other banking devices will be
covered in subsequent versions of the specifications, based on industry and
customer requirements.
Thick Client
Financial applications running on a thick client can operate somewhat
independently of the in-bank server because of information stored on local
disks. This might include the financial application itself, account information,
device drivers and peripheral configuration data.
The in-bank server would be accessed primarily to post transactions, and for
retrieval of the global information necessary to support such features as
interest calculation.
This relative independence comes at the cost of increased administrative
overhead. This is due to the need to keep the local persistent information (both
applications and data) current. Typically this requires some level of manual
system maintenance to be performed directly upon each such client system in
the bank.
Thin Client
Financial applications running on thin clients generally get all the information
they require to perform their functions at boot time. This means that all data
updates are made once to the in-bank server (ex: interest rate change), and
automatically reflected in each client the next time it is booted.
However once the boot process is completed, there is no reason that a thin
client application need be any less robust than its thick client equivalent.
Necessary information can be stored dynamically in flash memory or in a local
caching disk. The same transaction buffering capability typically provided by
financial application software works identically on both thick and thin clients.
The J/XFS thin client advantage is that it eliminates the need to consistently
perform disk backup and restore or disk upgrade administrative tasks on a
thick client financial terminal.
Application compliance
Application compliance means, that a Java based banking application can
make a J/XFS API call to a specific banking device and the J/XFS
implementation as well as the appropriate J/XFS Device Service (normally
provided by the manufacturer) will understand the call correctly and all
defined functions as defined in the J/XFS specifications are supported.
Note that specific functions, which are generally not supported by that
particular device, will generate a „Function not supported“ error message.
The banking application itself must not care about the real hardware
access, the transparency is achieved by the J/XFS implementation in
conjunction with the J/XFS Device Service.
Device compliance
Device compliance means, that a J/XFS Device Service written in Java is
able to understand the appropriate J/XFS API calls for that particular device
(i.e. a statement printer) correctly and to support all functions as defined in
the J/XFS specifications (as long as these functions are supported by the
device itself). The J/XFS Device Service itself will handle the real hardware
access in a transparent manner to the J/XFS implementation and the
banking application making the JXFS API call, regardless of the specific
operating system platform the JVM runs on.
The above compliance definitions has been approved by the CEN/ISSS J/XFS
Workshop in December 1999.
What is the relationship between the CEN workshop and the J/XFS
Forum ?
There is a clear distinction between the CEN/ISSS J/XFS Workshop and the J/XFS
Forum:
J/XFS Forum
Despite this, an appropriate J/XFS compliant Device Service (aka device driver) for
the specific banking device must be available, e.g. from the manufacturer or other
service providers. Obviously, the banking applications itself (e.g. self-service or
teller application) must use J/XFS API calls for accessing banking peripherals.
Both, application developers as well as banking hardware manufacturers are
encouraged to endorse the J/XFS standard by using its API in Java banking
applications as well developing J/XFS compliant device driver.
The J/XFS Server has a server-based repository, where configuration data can be
stored. As administration component it will provide a Basic Configuration Tool
(BCT).
The complete J/XFS Kernel is developed in 100 % pure Java and, by doing this,
this implementation of J/XFS provides full platform independence. Nevertheless,
the primary target operating system platforms are Windows NT, OS/2 and Linux
and their Java Virtual Machine implementations. On these platforms extensive
testing has been done.
The supported scenarios cover the environments we find in todays bank branches
as well as new hardware supporting the 'thin client' model.
• Asynchronous operation
• Event driven architecture
• DeviceControls as Java Beans
• Access to devices locally attached to other
• client machines (remote device access).
• Central configuration database
• Flexible Logging Concept
• Exchangeable communication layer