Abstract:
Ubiquitous augmented reality is an emerging human-computer interaction technology, arising from the convergence of augmented reality and ubiquitous computing. Augmented reality allows interaction with virtual objects spatially registered in the user's real environment, in order to provide information, facilitate collaboration and control machines. As the computing and interaction devices necessary for augmented reality become ubiquitously available, opportunities arise for improved interaction and new applications.
Building ubiquitous augmented reality systems presents three software engineering challenges. First, the system must cope with uncertainty regarding the software components; the users' mobility changes the availability of distributed devices. Second, during development, the system's desired behavior is ill-defined, as appropriate interaction metaphors are still being researched and users' preferences change. Third, the system must maintain near-real-time performance to create a convincing user experience.
This dissertation presents a new architectural style, the adaptive service dependency architecture, to address these challenges.
The architecture deals with component uncertainty, using middleware for decentralized service management to dynamically adapt the system's structure. It builds on existing architectural approaches, such as loosely coupled services, service discovery, reflection, and data flow architectures, but additionally considers the interdependencies between distributed services and uses them for system adaption.
With the development technique of design at run time, users and developers address ill-defined requirements by changing the system's behavior while it is running, facilitating the creation of new applications. This is based on existing agile development methods, but takes additional advantage of the architecture's adaptive and reflective properties.
Distributed middleware maintains the required performance by decoupling multimedia data flow from system reconfiguration. It combines existing communication and service discovery technologies, but additionally deals with the distributed coordination of networks of interdependent services.
Several prototype systems for real-world ubiquitous augmented reality applications have been built using the adaptive service dependency architecture, decentralized middleware, and design at run time. Feedback from users and developers, as well as performance tests, show the concepts' usefulness for building ubiquitous augmented reality systems.