From stationary and mobile sensors, to embedded/real-time devices, to PDAs and laptops, to parallel/cluster systems, to wide-area distributed computing via the Internet, there is a continuum of computing, communication, and interaction capabilities all around us. It is clear that future computing and communication infrastructures should no longer be looked upon simply as standalone vehicles for number crunching, problem solving, or information transfer. Instead, future systems should be constructed with the assumption that they exist in a highly connected and constantly changing world, where machines, devices, and networking technologies work in concert to help the average individual use the underlying hardware/software infrastructure with as little instruction as possible. The application context created by this infrastructure is termed as ubiquitous presence. There are two things simultaneously implied by this term: technology for the creation and processing of and access to information and entertainment is available unobtrusively all around the people; and people can continuously and effortlessly use such technology to assist them in their everyday activities, wherever they want and whenever they want. Specific instances of this application context (telepresence, and aware environments such as offices and home) are to be used as drivers in this research. Such application testbeds (an instrumented classroom and an aware home) are already under development at Georgia Tech.
The proposed research is integrating sensing hardware, embedded processing and distributed system support to build a seamless programming infrastructure for ubiquitous presence applications. Fundamental invention and integration of techniques spanning programming idioms and runtime systems for distributed sensors, and building blocks for embedded processing are expected as the primary intellectual contributions of the proposed research. Interfacing these technologies to emerging applications on the one end and novel off-the-shelf sensors at the other end are secondary goals of the proposed research.
The following specific research topics are to be addressed:
- Distributed Programming Idioms.
- This topic concerns the runtime software infrastructure that enables seamlessly harnessing the hardware continuum ranging from mobile sensors with limited computational capabilities (that may be in wristwatches and clothing for instance), to stationary sensors attached to embedded processors (that may be in walls and ceilings), to powerful backend clusters that may be in machine rooms. Research issues include temporal guarantees for data, resource management, availability in the presence of real failures as well as perceived failures due to poor response times, and performance and scalability of the proposed mechanisms,
- Embedded Processing Architecture.
- It is likely that the embedded processors that serve as data concentrators to a group of sensors may not have all the computational resources (such as power, memory, and network bandwidth) that one might want. At the same time programming these devices should be no different from their resource rich brethren. This research topic concerns the development of software and hardware techniques that allow program development in embedded processors decoupled from any inherent resource limitations.
- Interfacing to Smart Sensors.
- Research in this space focuses on integrating off-the-shelf sensing hardware with the distributed programming infrastructure to accomplish complex tasks such as awareness. Smartness may not necessarily be a property of the sensor but a property of the infrastructure to judiciously distribute the processing and interpretation work dynamically between the sensors and the computational infrastructure. Such distribution may take into account the availability of computational and network resources.
- Interfacing to Emerging Applications.
- Instances of ubiquitous computing applications (such as aware home and offices, and smart classrooms) are under development in the College of Computing at Georgia Tech. Higher level algorithms in such sensing applications rely on processing multiple sensor inputs, and fusing together information from multiple sensors. The distributed computing infrastructure coupled with the embedded systems architecture affords the necessary capabilities for developing such complex sensing applications.
Consult the User's Guide for information on using the wiki software.