Author: Richard Nkrumah, Enough Software
Email: richard d o t nkrumah a t enough d o t de
Date: 31 May 2006
Occasion: Participation in DDWG Workshop on 12,13 July 2006
Position Paper on
Device Description Repositories
This position paper gives an overview about the company Enough Software and some issues we see in the field of device capability repositories. Discussing these issues and working on a standard to overcome some of them is the main motivation to participate in the DDWG workshop on 12-13 July 2006.
Enough Software is a company founded in Bremen, Germany in 2004. It offers mobile solutions and custom application development for mobile devices. The main product is J2ME Polish, an application framework for Java enabled mobile devices. It is published under an open source and a commercial license and is used by major companies like Vodafone, Comverse and Motorola. Some key features are the build framework, the GUI framework and the device database.
The build framework provides techniques to assemble and build an application for several devices. Depending on target devices and available resources the build process can be configured to assemble an application which is optimized for specific mobile devices. The configuration is partly done with preprocessing instructions within the code. In this way the developer may alter the code depending on device information like screensize or known bugs. Depending on the current target device different parts of the code are compiled into the application which reduces the amount of foreign device dependent code within the application itself.
The GUI framework provides the means to fully customize the otherwise dull looking default GUI elements on handhelds. The customization is done with CSS files which truly separates design from application logic.
The device database is the cornerstone of the system as it provides the developer with information to parameterize the build system and the GUI framework. The information covers capabilities of a device like screen size, supported APIs and known bugs. The database features grouping of capabilities for ease of handling and device hierarchies to reduce redundancy in similar device descriptions.
In the near future the device database will be interactive and accessible from the web. Users will be able to manage there own device definitions and contribute them to the device database after an reviewing process verified their soundness. The system will be assisted by an Java application which extracts and submits capabilities of the device it is executed on to increase accuracy and completeness of the database.
As the idea of a general device description repositories is fundamental to our daily work we have a strong interest in all aspects regarding such a topic. From your experience we can tell that there is more to this topic than meets the eye.
Some of the issues we are interesting in are:
Accuracy of capabilities
The capabilities in the database need to be complete and accurate. The vendors do not help much here as their information is often incomplete and do not cover unpleasant information like known bugs. Some information like User-Agent strings also do not comply to a common pattern so that retrieving useful data from them is hard.
Patching of erroneous capabilities
Changing of existing capabilities does occur. They may be faulty or were missing and there need to be a way to update the information after an initial deployment.
Accessing capabilities in a uniform way.
This also includes how to describe advanced queries like “All devices with a screensize greater than 156X160”. Is a device with 150x170 in this set?
Compliance
No new technology is an island. Evaluating the need and use of existing repositories (like JSR 124: J2EE Client Provisioning Specification) is needed to not exclude someone important.
Expressiveness
In defining query formalisms and database structures, the expressiveness of capabilities is at stake. Are capabilities hierarchic? How does a group of capabilities relate to capabilities on the same hierarchical level? How are multi value capabilities represented? Are new values append to the old or do they replace them?
Merging
At least the J2ME Polish device database and the WURFL device database exist. Are they sufficient or do they miss features?