Tuesday, June 21, 2011
Ubiquitous Computing: Anywhere/Anytime Information Access via Collaborative Assistance with Ad-Hoc Systems
Do you like this Article?
The development of computing has recently been dominated by three trends: the emergence of a wide range of embedded systems with diverse architectures and purpose; the rise of relatively high-speed mobile communication devices such as smart phones, personal digital assistants (PDAs), portable media players, ebook readers, etc; and the development of cloud computing, offering virtually unlimited data storage and computing resources, which may extend the capabilities of resource-constrained mobile devices.
As a consequence, these devices and infrastructures have begun to pervade our daily life, creating a new paradigm in the interaction between people and computing environments along the lines of that envisioned back in the day, and thus opening up the potential of many novel applications. For instance, the ubiquitous presence of computers allows people to carry with them only a minimal amount of computing hardware and software, depending on ambient computers to boost performance as needed. A smart phone may not have sufficient computation power to playback a high-definition movie but, rather than running the media playback software on a single device, one could look for available computers nearby and connect them together to constitute an ad-hoc system.
The software can then utilize the resources of all participating devices to accomplish the execution collaboratively. Such a system is unplanned and organized on a temporary basis, usually to execute a specific task. Another possible application is the timely information query. Even with sophisticated search engines available nowadays, the answers to some questions (e.g., “is the department store crowed now?” or “can someone take a snapshot of the car race now?”) are time-sensitive and may become less significant if they cannot be obtained immediately; only people who are currently near the store or the race track can provide the appropriate responses. Similarly, with the ubiquity of mobile network-connected devices, it is highly possible to find such people and thus applications requiring timely information become feasible.
However, the scale of ubiquitous computing is huge, and so is the need to enable interoperability among mobile devices and infrastructures. Thus, realizing a system for ubiquitous applications as described above may face challenges related to Dynamic computing environment which are open and dynamic; i.e., usage is not confined to a fixed location, and people carrying computers may join and leave the environment at will. Thus, the environment may change during the execution of an application, leading to problems such as resource variability, system errors, and changing requirements.
Another challenge is related to ¨Resources and information location¨. Dramatic improvements in the quality of and accessibility to networks makes it increasingly feasible to use collections of networked commodity devices as computational resources. Thus, the widespread use of dynamically-assembled collections of computers, located on local and even wide area networks, as powerful computational resources is becoming possible. For instance, a computational task might be initially mapped to available computers within a workgroup, but then extended or migrated to other resources provided by a commercial computational services provider because of changes in computational characteristics or resource availability. However, locating computational resources or information that are relevant to users’ interests can be challenging for ubiquitous computing since it needs to determine which resource is the best candidate at minimum cost given the heterogeneous, dynamic nature of the resources involved. For example, searching for devices to constitute an ad-hoc system, a good resource discovery mechanism may need to consider many factors including user interfaces, architectures, or physical locations to minimize the costs of interoperability among participants. In addition, it is preferable that all ad-hoc system participants be in geographic proximity to promote ease of interaction. It is also highly likely that people currently close to the store would have an answer to the query, “is the department store crowed now?”. Therefore, a range of physical locations must be incorporated within a resource discovery mechanism; e.g., routing mechanisms using geographic parameters such as Greedy Forwarding (GF) may be used to locate participants and initiate communication among them.
As mentioned earlier, the ubiquity of computers makes it possible to combine several resource-limited devices as an ad-hoc system to complete a complex computing task. Imagine a scenario in which a user watches a movie on his smart phone. Referring to the illustration below, to completely execute on the smart phone, the media player software needs to decoding the multimedia stream, output video and audio, and interact with the user. Due to limited computing capability, the performance or quality of the video and audio may be unacceptably poor. In addition, the small size of the phone may lead to an unpleasant interaction experience.
Alternatively, the user may search ambient devices for their hardware features. For example, he may find a TV for its big LCD display, a Hi-Fi audio system for its stereo sound quality, and a PC for its computing power. He can connect these devices together to form an ad-hoc system as shown in the illustration below. After the media player software is launched, the appropriate part of the code will be distributed to each device, i.e., the code for audio processing to the Hi-Fi audio system, the code for video processing to the TV, and the code for decoding the multimedia stream to the PC. As a consequence, instead of watching the movie on the smart phone, the user may enjoy the smoother movie on the ad-hoc system with a larger image on the TV and better sound from the Hi-Fi audio system. One challenge to realizing ad-hoc systems is the diversity of participating devices. It is impossible to know the performance of components on each device in advance to determine the appropriate component distribution. In the illustration below, before distributing the video processing component to the TV, one must first know if the TV has the appropriate resource for video processing. Such performance information can only be known after the ad-hoc system is formed. Manually probing the performance of each participating device is difficult for the average user, but the adaptive software framework, may provide a better solution to alleviate this configuration problem.
Subscribe via Email
This post was written by: Alex Wanda