Skip to content
Denis Kuniss edited this page Mar 20, 2019 · 3 revisions

JavaPOS

JavaPOS is the Java platform mapping of the UnifiedPOS standard specification described in its appendix B.

UnifiedPOS defines the syntax and semantic of a platform agnostic library interface for defining the access to Point of Service (POS) peripheral devices. The supported device types are organized and described in device categories, e.g. barcode scanner, receipt printer or line display. The architecture of UnifiedPOS is intended to allow an application to abstract from a specific device hardware allowing to quickly change the underlying hardware device and driver through an run-time configuration change. UnifiedPOS and its mapping makes an retail application independent of specific POS device vendors. Typically, a POS device vendor provides an implementation for accessing the devices provided by him for a particular UnifiedPOS platform.

Beside JavaPOS, there exists mappings to the OLE platform (OPOS) and to the .NET platform (POS for .NET). An application as well as a device access implementation is bound to a particular platform. So, it is valid naming them e.g. 'JavaPOS application' respectively 'JavaPOS device'.

History

The UnifiedPOS standard was originally created by ARTS, the standardization division of the National Retail Federation (NRF) probably in 1996. In 2016 the standards maintained by ARTS have been moved to the Object Management Group (OMG) and are now maintained by their Retail Domain Task Force (RDTF).

JavaPOS Architecture

The JavaPOS architecture follows the UnifiedPOS' architectural concepts in general, however, renames some concept names. A JavaPOS application abstracts from specific device implementations by accessing them through Device Controls. There is one Device Control implementation per UnifiedPOS device category. They are bound at compile time to the particular JavaPOS application. A device implementation is provided by a device vendor as Device Service. A Device Service is bound by configuration at application run-time to a particular Device Control instance. Such a configuration is associated by Logical Name.

JavaPOS Implementation

The JavaPOS implementation in this project is the reference implementation of JavaPOS for the Java platform made by standardization committee members.

It provides the following components:

  • Device Control library with one implementation class per device category defined in UnifiedPOS
  • Device Service interfaces for each device category in UnifiedPOS
  • Configuration Loader library for loading persisted device configurations bound to a particular Logical Name