2. The JSR82ext Architecture

JSR82ext is an interface we have developed to extend the standard Java APIs for Bluetooth (JSR82) with ASB and SCO link support.

Our implementation extends the JavaBluetooth JSR82-compliant Bluetooth protocol stack with the BluezTransport low-level driver for frame oriented traffic, which exploits native API provided by BlueZ (the standard Linux Bluetooth protocol stack) in order to allow the usage of JSR82ext with the wide range of Bluetooth adapters supported by BlueZ.

We have also developed from scratch Java-based support for the transmission of data over ASB and SCO links, and designed a new API that supports the creation and the exploitation of logical channels over those links.


          A picture representing the software architecture of the ubiQoS proxy

The software architecture of the ubiQoS proxy

JSR82ext is not the only available JSR82-compliant stack working on top of BlueZ, since the recently released Avetana is a JSR82-compliant Bluetooth protocol stack implemented Java and tightly integrated with the native Linux stack which represents a good choice for the development of production-quality applications and services.

However, since the implementation of BluezTransport is based on the exploitation of native API to access the HCI interface of Bluetooth adapters, and this kind of API are commonly found in most native Bluetooth protocol stacks nowadays, our approach effectively succeeds in providing a good separation between the platform independent components implementing the higher layers of the protocol stack and the native components to access Bluetooth adapters using a native platform dependent API. As a result, our protocol stack is easily portable to other platforms and we are working on other low-level drivers to interface JSR82ext with the Affix protocol stack for Linux and the FreeBT protocol stack for Microsoft Windows.