We are close to the point where new types of automated routines and software applications could operate independently of direct human control to carry out prescribed tasks. Helping us arrive, researchers have designed a model that supports the development of applications constructed from mobile sentient objects.
Firstly though, developers need to overcome the shortcomings of current architectures and middleware, which are still largely based on sequential programming models. The CORTEX project aimed to overcome such obstacles, and to explore the fundamental theoretical and engineering issues involved in supporting the use of 'sentient objects'.
"On the one hand we have classical control systems that are programmed in a strictly sequential manner to respond to a precisely-defined sequence of events," says project coordinator Paulo Veríssimo of the University of Lisbon. "On the other, we have the outside world where environments interact and little can be predicted with certainty. If we are to construct highly interactive things like mobile robots, wearable devices that can react intelligently to their environment, augmented-reality systems, etc., we need to know how to programme these applications."
The project aimed to design a programming model for applications constructed from mobile sentient objects. The participants have successfully designed a programming model to underpin the development of mobile and self-aware or sentient applications. They produced an open, scalable system architecture that provides mappings for various network types, from controller area networks (CAN) through LANs to WANs, especially those based on wireless communications technologies. They also prototyped the middleware needed to support the model by providing the protocols and services required to support these sentient objects.
The CORTEX participants developed several prototype demonstrators to show off the project results including one that showed how robotic devices could dynamically subscribe and unsubscribe from information resources as either information providers or information users. Generally, individual mobile robots are unable to assess their immediate environmental surroundings just from local sensors - they need to cooperate with others. In the demonstration an external supervisory system monitored their actions and showed how the knowledge-base of each individual robot expanded via this cooperation with others.
The cooperating cars demonstration showed how vehicles could communicate with each other and react to each others' movements to avoid accidents. The participants set up a simulated traffic crossroads with a series of model cars approaching the junction at different speeds. By enabling the models to communicate and interact with each other using wireless links, the cars could cross the junction in a continuous stream yet were always able to avoid a collision, usually by slight adjustments of their speed at the approach to the crossroads. The same techniques can be applied to trains, to aircraft and to other forms of transport, believes Veríssimo.
In order to thoroughly test safety-critical systems, it is usually necessary to deploy and test the actions of the final hardware devices, as well testing the software. However, in many large-scale applications, for example vehicles approaching a road intersection, such testing can not only be prohibitively expensive, it can also become quite dangerous! The project participants therefore developed, and successfully demonstrated, a software framework to emulate real environments for testing safety-critical or safety-related applications. This framework was designed specifically to complement traditional software engineering methodologies, such as formal methods for the specification, development and verification of software and hardware system redundancy.
"We gave these applications context-awareness, enabling them to understand what is going on in their immediate surroundings. For example a robot that could go into a rescue area without prior knowledge of the area and its surroundings," says Veríssimo. "Applications like these are able to cooperate to analyse - autonomously - their environment, and react accordingly."
The project results are being fed into a new initiative, HIDENETS, starting January 2006, which will involve an in-car electronics manufacturer (CARMEQ), industrial giant Fujitsu-Siemens and Telenor, a major Norwegian telecommunications company, in developing resilient end-to-end solutions for distributed applications.