by Reza Razavi
A key enabling technology for Ambient Intelligence (AmI) is Wireless Sensor Networks (WSNs). Macroprogramming WSNs by non-programmer end-users is being studied as a step towards an omnipresent World Wide Web interface for the provision of personalised ambient services.
A key enabling technology for AmI is networks of large numbers of wirelessly-connected small, low-powered computers. Such a system is called a Wireless Sensor Network (WSN) and each node, a mote. WSNs can serve as an infrastructure for the provision of personalised ambient services. However, WSNs face very limited processing, memory, sensing, actuation and communication ability of their motes. Programming such networks means those limitations need to be addressed.
Unfortunately, current methods for WSN programming have led developers to mix serious concerns, such as quality of service requirements, with low-level concerns like resource management, synchronisation and routing. This makes developing software for WSNs a costly and error-prone endeavour, even for expert programmers.
Macroprogramming is a new technique which is being developed with the aim of allowing programmers to capture the operation of the sensor network as a whole.
In this research, we focus on simplifying sensor network programming by developing a platform which supports macroprogramming by non-professional programmers. Our aim is to minimise the required programming knowledge, empowering ordinary users to interact with the network so that they can intuitively formulate the expected services. Our architecture also supports an open, concurrent system requests may come in asynchronously from uncoordinated end-users. They are formulated using an intuitive and omnipresent World Wide Web interface. They are served ubiquitously and in parallel.
Architecture of the Ambiance Platform
To achieve the above goals, we are working on extending the Adaptive Object-Model (AOM) architectural style with Actor-based concurrent computation, communication, sensing and actuating. The resulting platform, called Ambiance, provides a meta-level architecture to automatically translate high-level specifications of global behaviour by end-users into both meta-objects and meta-actors. These control and customise the runtime behaviour of passive and active application objects.
The meta-objects are dynamic. They have the capability to observe the application objects and the environment (introspection) and to customise their own behaviour by analysing these observations (intercession). Behaviour models and requested services are specified by end-users, in their own terms, using a sophisticated interface provided by Ambiance. Our architecture also allows meta-objects to modify their behaviour in more fundamental ways if, for example, the meta-objects are endowed with learning mechanisms.
The architecture of the Ambiance platform comprises four subsystems (see figure, from left to right):
Presentation subsystem (APE): the system's front-end. It is a web-enabled application which is responsible for the presentation and interaction with end-users.
Representation subsystem (ARE): offers to ordinary end-users an intuitive, spreadsheet-like task-specific language for commanding the system. Web pages sent to the APE are dynamically generated by ARE, in HTML, thanks to the Seaside framework and Squeak. ARE exports service models in XML to the Transformation subsystem (see below). It also sends execution requests to the Deployment subsystem and receives from it the execution result. On reception, the latter is communicated to the APE (for formatting and presentation to the end-users).
Transformation subsystem (ATE): implemented in VisualWorks Smalltalk, is responsible for model transformation and verification. It allows service requests to be deployed on different runtime environments.
Deployment subsystem (ADE): is responsible for executing models in an adaptive, distributed, and concurrent environment.
For implementing this architecture we reuse the Dart meta-level object-oriented framework for task-specific, artifact and activity-driven behaviour modeling. This framework offers the reifications needed for (1) explicitly representing the ambient services and (2) automating the selection and deployment of an appropriate execution strategy, according to the service's resource consumptions and the actual execution environment (Context-aware Computing). Each specification is translated into a group of meta-actors which implement protocols to meet it.
These meta-actors control the concurrent and distributed collection of data by actors in the nodes of a sensor network and analyse the data. Note that the analysis may trigger further data collection, or reuse already collected data. The system being developed also provides a type system for a partial semantic check, to ensure that queries are well-formed, so that for example, a query does not result in a graph of node invocations which is cyclic.
This research is conducted within the framework of the Åmbiance project, funded by the University of Luxembourg, in collaboration with the Open Systems Laboratory (OSL) and the Software Architecture Group (SAG) at the University of Illinois at Urbana Champaign (UIUC-USA), as well as the Computer Science Laboratory (LIP6) of the Pierre and Marie Curie University (Paris).
It draws on our previous realisations Dart, AmItalk, and ActorNet. A first running prototype is implemented and we are finalising the systematic transformation of end-user queries to produce meta-actors and to dynamically manage their life-cycle. Such a lifecycle involves activation and registration, request management, application logic and result dissemination. A type system for Dart is being written in Maude (http://maude.cs. uiuc.edu). Once the core system is in place, we will work with experts in domains to which sensor networks are applicable, such as civil engineering, cooperative target identification and tracking, environment monitoring and security, to experimentally assess and refine the Ambiance architecture.
Reza Razavi, University of Luxembourg / FNR, Luxembourg