Use of JCP site is subject to the
JCP Terms of Use and the
Oracle Privacy Policy
|
JSRs: Java Specification Requests
JSR 80: JavaTM USB API
JCP version in use: 2.1 Java Specification Participation Agreement version in use: 1.0 Description: This specification provides a JavaTM API for communicating with devices attached via the Universal Serial Bus (USB). It allows Java applications to discover, read, write, and manage USB devices. Please direct comments on this JSR to the Spec Lead(s) Team
Updates to the Java Specification Request (JSR) 13 June 2003: The Expert Group plans to post a draft for Public Review starting 10/01/03. ***** In order to recognize existing contributions, the following changes have been made to the original JSR.
2.4 Why isn't this need met by existing specifications?There is no cross-platform way to access the USB using the current Java libraries and standard APIs. This JSR is to establish a Java standard for this access. There is a project working on access on the Linux platform. (See Contributions.)
2.9 Are there any internationalization or localization issues?No. USB devices have string descriptors that describe what they are/do, like the Manufacturer string, Product string, etc. These strings are in UNICODE, so they can be in any language. We do not expect this to impact the API.
2.10 Are there any existing specifications that might be rendered obsolete, deprecated, or in need of revision as a result of this work?See Contributions.
2.11 Please describe the anticipated schedule for the development of this specification.
3.1 Please list any existing documents, specifications, or implementations that describe the technology. Please include links to the documents if they are publicly available.USB specification:JavaPOS Java Communication API Existing open source development for Linux by David Brownell: Java USB for Linux Original Java Specification Request (JSR)
Identification |
Request |
Contributions |
Additional Information
Original Summary: This specification provides a JavaTM API for communicating with devices that are attached via the USB (Universal Serial Bus). It will allow Java applications to communicate with and manipulate USB devices attached to the bus.
Section 1. Identification
Submitting Member: IBM Name of Contact Person: Boyd Dimmock E-Mail Address: bkd@us.ibm.com Telephone Number: +1-919-301-5713 Fax Number: +1-919-301-5636 Specification Lead: Boyd Dimmock E-Mail Address: bkd@us.ibm.com Telephone Number: +1-919-301-5713 Fax Number: +1-919-301-5636 Initial Expert Group Membership:
IBM, Sun Microsystems Inc., NCR, ICL/Fujitsu, Wincor-Nixdorf
Section 2: Request
This JSR is to develop the Universal Serial Bus (USB) interface for
Java. This interface supports the
USB protocol for I/O devices. It
will create an API that allows full access of the USB and USB devices and
hubs by any Java application or middleware (i.e. drivers). Using this
API a Java application could communicate to any USB devices. Also USB
hardware vendors could provide Java middleware (drivers) that would allow
application writers easier access to their devices in Java. The target platform is the desktop or any system that supports a JVM and
I/O devices that are attached via the USB architecture (i.e. J2SE and J2ME). The Universal Serial Bus (USB) is the latest
technology for peripheral device attachments and is a powerful follow-on to
existing standards such as serial connections (RS 232). Where there is a Java extension (javax.comm)
that provides a standard Java application interface for RS 232, none exists
for USB. The creation of a
javax.usb standard will allow device services for USB to be developed using
Java and therefore enjoy the portability of Java. For instance, the retail industry has a major interest
in the acceptance of USB standards in that there are new hardware solutions
that deliver this technology. This
specification would allow the Java community to build applications that
would be able to access the USB on any Java enabled platforms. For
example, the Point of Sale (POS) community has defined a Java API, known as
JavaPOS, that allows applications to communicate with POS devices (such as
POS Printers, POS Keyboards, ...). With the proposed API, JavaPOS drivers that would be portable
and usable on any Java platform could be developed for USB devices. The same would apply for other industries and the vast number of USB
devices that are coming in the future. There is no way to access the USB using the current Java libraries and
APIs.
The underlying technology is USB or Universal Serial Bus. It is a
dynamic, multiplex, tree-based, powered, configurable communication
protocol for the PC architecture. 2.6 Is there a proposed package name for the API Specification? (i.e., javapi.something, org.something, etc.)javax.usb 2.7 Does the proposed specification have any dependencies on specific operating systems, CPUs, or I/O devices that you know of?No. The specification would depend on the official USB specification version 1.1. Any devices that comply with the USB 1.1 specification would be supported. 2.8 Are there any security issues that cannot be addressed by the current security model?No. 2.9 Are there any internationalization or localization issues?No. (NOTE that this information has been updated since the original.)
2.10 Are there any existing specifications that might be rendered obsolete, deprecated, or in need of revision as a result of this work?No. (NOTE that this information has been updated since the original.)
2.11 Please describe the anticipated schedule for the development of this specification.
Section 3: Contributions
3.1 Please list any existing documents, specifications, or implementations that describe the technology. Please include links to the documents if they are publicly available.USB specification: JavaPOS Java Communication API IBM Java USB API (NOTE that this information has been updated since the original.)
3.2 Explanation of how these items might be used as a starting point for the work.The USB specification is the key document used to create any USB related work. The JavaPOS or Java for Retail Point of Sale as defined a set of standard API to allow access from Java application to POS devices. These JavaPOS services could be written in Java using this specification. Though the JavaPOS cannot be used as a starting point for creating this specification it is certainly a motivation factor for establishing a standard USB API. The Java Communication API is the first API to allow Java application to communicate to attached I/O devices. The Java Communication API is not a good starting point for creating a Java USB API because of the fundamental differences between USB and serial/parallel ports. IBM Retail Store Solutions organization has used the USB 1.1 specification to develop a complete working API to propose as the reference implementation. This specification will be presented to the expert community as the starting point for the standard. |