ADUS is a system that explores advanced topics in Human Computer Interaction and Software Mobility. The original idea was to create a multi-platform user interface engine that would adapt user interface on the "fly" to meet capabilities of various user devices. After experimenting with various abstract user interface definition languages and mobile agents, the first prototype was created. The very first prototype used eXtendible User Interface language (XUL) and specialised mobile agents. It was able to adapt user interface to three "basic" platforms: Swing, HTML and WML.
From that point, focus was shifted towards achieving better plasticity and usability of various user interfaces. We have implemented modified n-th order LRS algorithm and created a prototype of a user interface that tries to predict next most probable action to be taken by the user and modifies itself on the fly to accommodate this action.
In early 2004 the decision was made to integrate ADUS with ANTARCTICA system and as a result of this change we came up with the concept of "indirect generation" of user interfaces.
Currently we are developing a prototype that would be integrated in ANTARCTICA system. We are now focusing only on AWT and Swing interfaces that adapt using modified n-th order LRS algorithm.
Currently the project is in the beta phase.
Indirect User Interface Generation
ANTARCTICA system introduces a majordomo software agent called Alfred. This agent is responsible for all agents, their contexts, security, etc.
The idea is that every agent that arrives at one place (e.g. workstation, server, mobile phone) gives certain elements of control to Alfred. Alfred frequently acts as an intermediary and intercepts agent's messages in order to apply the contextual information or user's preferences.
Figure1. ADUS Architecture.
Indirect User Interface generation utilises Alfred as a proxy for user interface definition. When a visitor agent arrives at place it has certain user interface definition with it. In order to display (generate) this user interface it must be passed through Alfred agent. (Figure 1, step 2). Alfred applies changes to the user interface definition according to the device's context, user's context and preferences. Modified definition is then passed to ADUS agent which renders the display (Figure 1, steps 3 and 4). User's interaction with the user interface is passed to both Alfred and visiting agent (step 4 and 6). This is to ensure that all events are processed correctly. This enables Alfred to collect usage data and modify user interface accordingly, and visitor agent to process user's information correctly. This model also resolves several security issues.
For more details, please refer to the "other issues" section of this page.
Figure 2. One of the applications that run with the first prototype -- Currency converter, Swing mode
Figure 3. Currency converter, HTML mode
Figure 4. Currency converter, WML mode