Tilt Techniques: Investigating the Dexterity of Wrist-based Input [PDF] [Video]

  • Programming Environment: C#

Most studies on tilt based interaction can be classified as point-designs that demonstrate the utility of wrist-tilt as an input medium; tilt parameters are tailored to suit the specific interaction at hand. In this project, we systematically analyze the design space of wrist-based interactions and focus on the level of control possible with the wrist. In a first study, we investigate the various factors that can influence tilt control, separately along the three axes of wrist movement: flexion/extension, pronation/supination, and ulnar/radial deviation. Results show that users can control comfortably at least 16 levels on the pronation/supination axis and that using a quadratic mapping function for discretization of tilt space significantly improves user performance across all tilt axes. We discuss the findings of our results in the context of several interaction techniques and identify several general design recommendations.

Chucking: A One-handed Document Sharing Technique [PDF] [Video]

  • Programming Environment: C#

Usage patterns of private mobile devices are constantly evolving. For example, researchers have recently found that mobile users prefer using their devices with only one hand. Furthermore, current hardware in these devices reduces the need for a stylus and instead relies on finger input. However, current interactive techniques, such as those used for sharing documents between private and public devices have not taken advantage of these recent developments. We present the various design parameters that make Chucking an effective document sharing technique. In a document positioning task, we evaluated Chucking against Flicking. Our results show that under certain contexts users were more accurate and effective with Chucking. In a document positioning task, we evaluated Chucking against Flicking.

Hybrid Resource Provisioning for Clouds [PDF]

  • Programming Environment: Java

Flexible resource provisioning, the assignment of virtual machines (VMs) to physical machine, is a key requirement for cloud computing. To achieve “provisioning elasticity”, the cloud needs to manage its available resources on demand. A-priori, static, VM provisioning introduces no runtime overhead but fails to deal with unanticipated changes in resource demands. Dynamic provisioning addresses this problem but introduces runtime overhead. To reduce VM management overhead so more useful work can be done and to also avoid sub-optimal provisioning we propose a hybrid approach that combines static and dynamic provisioning. The idea is to adapt a good initial static placement of VMs in response to evolving load characteristics, using live migration, as long as the overhead of doing so is low and the effectiveness is high. When this is no longer so, we trigger a revised static placement. (Thus, we are essentially applying local multi-objective optimization to tune a global optimization with reduced overhead.) This approach requires a complicated migration decision algorithm based on current and predicted:future workloads, power consumptions and memory usage in the host machines as well as network burst characteristics for the various possible VM multiplexings (combinations of VMs on a host). A further challenge is to identify those characteristics of the dynamic provisioning that should trigger static re-provisioning.

Differential time-shared virtual machine multiplexing for handling QoS variation in clouds [PDF]

  • Programming Environment: Java

Multi-media applications (including those arising in E-health scenarios) can cause temporally varying resource demands in cloud environments. As a result, flexible resource provisioning becomes a key requirement. Cloud computing achieves "provisioning elasticity" by using virtual machine (VM) based resource provisioning. Normal, static VM provisioning has no runtime overhead but fails to deal with unanticipated changes in resource demands. Dynamic provisioning overcomes this problem using live migration of VMs but introduces runtime overhead. To reduce unnecessary VM migration, we propose Differential Time shared VM Multiplexing (DTVM) to help support load adaptability while ensuring efficient resource utilization in cloud datacenters. DTVM looks at possible local (i.e. in the same physical machine) solutions to limit VM migration by providing more resources to high demand VMs obtained from low demand VMs. DTVM effectively allows cloud providers to prioritize among the end-users (i.e. virtual machines). DTVM also allows the end-users to prioritize their tasks in their VMs to finish important tasks at the earliest time. In this work, we introduce DTVM for cloud environments and assess its potential benefits using CloudSim. The results obtained from our simulation experiments suggest that this approach is both feasible and would be effective for interactive multi-media workloads in cloud environments.

Fully Automated Quality of Service (QoS) Aware Service Composition [PDF]

  • Programming Environment: Java, C#

Service composition provides the ability to combine existing services to produce new, value-added composite services that can be offered to end users. In general, when the type of the output data produced by one service matches the type of the input data needed by another service, then a composite service can be produced. Such Input/Output (IO) compatibility plays a major role in identifying potential composite services. We extend the existing composition system using properties to describe non-functional (i.e., QoS) constraints on services. We build a prototype adding support for Quality of Service (QoS) to the composition process and extending the compositions outside of a single pervasive environment (e.g., home) to include offerings from third-party service providers (e.g. those provided via available Internet or 3G network access). We also introduce a means of describing services provided externally by service providers as software stubs installed automatically on a local gateway device. The ultimate goal is to offer only the most useful services to users thereby reducing their involvement in the composition process.

Procare: A Smartphone based Attendance Management System

  • Programming Environment: Java, C#

Procare is an attendance management system to help professors to manage class attendance with a smartphone. Procare creates, edits, and deletes courses, student lists, etc. Procare maintains attendance information of classes, seminars very easily and it can export those information into an Excel spreadsheet.