Dynamic Composable Computing (DCC)

In the last 10 years, personal computing has evolved from being primarily a desktop activity to a highly mobile one: the laptop computer, despite its large size and significant weight, has been the most popular mobile platform to date. While smart phones and MIDs (Mobile Internet Devices) have made in-roads into general computing applications, their use is limited to a few key tasks (e.g., calendar, rolodex, mp3 player) that are suited to the small size of their keypad and screen. However, given ever increasing processing and storage capabilities, the potential of these devices far exceeds the computational needs of these applications, and a significant problem facing the mobile industry is how to give users access to a full personal computing experience with the mobility afforded by a smart phone or MID.

At HotMobile’08, held in Napa California on Feb 25th, my research group presented a paper that proposes a solution to this problem called Dynamic Composable Computing (DCC), which enables the impromptu assembly of a logical computer from the best set of wireless component parts available nearby. Consider the following example which illustrates the goals and flexibility we are trying to achieve with DCC:

Fred and Sally are visiting their friend Joe’s house when the topic of Sally’s recent vacation comes up. Instead of just showing them pictures on her mobile device, Sally displays a collection of her favorite pictures on Joe’s wall-mounted flat-screen TV, using her mobile to advance the slides. Meanwhile, Fred takes a moment to browse through Joe’s music collection on his MID until he finds an appropriate album, which he then triggers to play on Joe’s stereo system.

In practice, a mobile device will always be designed based on a compromise that trades-off size, weight, processing power, storage, sensing, communication bandwidth, and battery lifetime. DCC aims to overcome these basic design limitations by enabling a platform that is more than the sum of its components: allowing users to easily and seamlessly extend the capabilities of their mobile device with the nearby resources in their environment, and further allow its resources to augment other devices in the locality.

There are three emerging technology pillars that support Dynamic Composable Computing: high-bandwidth wireless communication, effective processing, and platform sensing.

First, wireless standards provide the ease of creating dynamic connections without requiring a user to physically plug mobile and infrastructural components together. Towards this end, two wireless standards, Ultra-Wideband (UWB) and WiFi-n are now commercially available and enable data transfers up to 480Mbps and 540Mbps, respectively. This improves the throughput of the wireless peripherals making them available at speeds comparable to a wired computer-bus: For the first time we can consider connecting the major system components of a computer architecture using wireless links.

Second, continuing trends in processor technology are enabling new levels of interoperability between mobile devices and desktop processing ecosystems. Existing low-power processors are improving and even now are powerful enough to effectively run an embedded Linux operating system in a handset; however, they fall short when tasked to run a full desktop suite of applications, including animations, memory-intensive operations, and security protection. Furthermore, the general operating environment for mobile devices is different and impoverished when compared with a desktop system, preventing many internet features and plug-ins from operating correctly in a small environment. Solving this problem, a new breed of Intel low-power desktop-compatible processors are entering the market, targeted at MIDs, and expected to bridge the performance gap at low-power, while fully supporting legacy applications.

Lastly, mobile devices are beginning to encompass local sensing to support many alternative forms of interactions. For composition, these sensors are useful for informing a device about the services that are available nearby, e.g. through proximity or physical contact. In addition, sensors are being added to mobile devices to augment user-control, e.g. accelerometers to determine orientation and tilt, in order to provide intuitive control of the user interface by simply moving the device around.

It should be noted that wireless computers do not inherently have a link-layer connection with each other and therefore need to explicitly establish a layer-2 connection to use the higher layer-3 protocols commonly employed for service discovery by computers that use wired networks: for example, Universal Plug-n-Play (UPnP). Building ad hoc wireless systems requires discovery of computers and their services through layer-2 discovery (beacons or probes) prior to making connections at layer-2 and layer-3. In general, multiple wireless devices increase the number of options for users to establish ad-hoc, peer-to-peer connections with the devices in the vicinity. However, this flexibility brings with it cognitive complexity in understanding and keeping track of all the invisible connections between these devices, and this problem needs to be overcome to provide the maximum value for users.

Our experimental DCC system solves this problem using a component we call the Composition Manager (CM) and provides the user with a representation of the computers discovered through layer-2 discovery, and their resources available for composition, along with any existing connections that are in place. One of the main functions of this component is to provide a composition editing capability, and allow manual connections to be made between clients and servers through a consistent user controlled mechanism. This is also where a user is prompted to provide security credentials for connections when necessary.

Our prototype Composition Manager user-interface uses a “join-the-dots” metaphor to create logical computer systems. A circle graphic is use to represent each discovered computer, while a set of linked surrounding circles represent services that each computer can export. In order to effect a composition, the user can simply draw a line from a service to the desired destination device: active connections are represented by a permanent link between the nodes. This system both allows the user to graphically see what devices and services are available for composition, and also provide an intuitive mechanism to form multi-device compositions, while displaying the entire state of the system.

In summary, we believe dynamic service composition based on wireless platforms can be a valuable technique to overcome the constrained resources of small computers. While composition can be a complicated process without the proper systems support, we have demonstrated how system composition can be made intuitive, and presented to users with reduced complexity if the appropriate technologies and standards are carefully woven together. Our initial experiences with composition have yielded encouraging results, highlighting specific techniques to reduce composition complexity.

Please visit the ACM HotMobile’08 website for more details about our paper and the HotMobile conference, a venue to find out about many exciting innovations in the mobile platform space. Our accompanying video summarizes the goals of DCC and shows another example of composition; a PC wirelessly sharing the tilt-sensing capabilities of accelerometers installed on two nearby MIDs, and allowing them to become immersive game controllers for a multi-user tank game running on the PC.

4 Responses to Dynamic Composable Computing (DCC)

  1. Spyros Lalis says:

    Sounds great!
    There seem to be similarities to a prototype system developed some time ago (2003) in the 2WEAR project, funded by the EU.

  2. James says:

    After nearly a decade of stagnation, it’s great to see mobile devices break a GHz, but I’m concerned about cache geometry. The ARM/Xscale series were initially cache-constrained because of battery concerns, but with smaller fabrication widths this is presumably less of a concern. How do you see the L1 cache roadmap on mobile CPUs?