Meeting Key Challenges in Developing Software for UMPCs and MIDs

Submit New Article

Last Modified On :   October 15, 2008 5:49 PM PDT
Rate
 



Abstract

While the full capabilities of a Windows* or Linux* operating system in Ultra-Mobile PCs (UMPCs) and Mobile Internet Devices (MIDs) allows the platforms to run general-purpose software applications, this family of devices presents specific opportunities and challenges to the developer. The ability to accept touch-screen input using the highly sensitive stylus, including Ink collection and recognition, opens new usage models. On the other hand, issues such as the small screen area and lack of a traditional keyboard and mouse require some special consideration.

This article describes best practices for designing software that takes good advantage of UMPC and MID capabilities while meeting challenges and avoiding pitfalls. It also introduces concepts associated with creating a single version of software that can run on these small form-factor devices as well as traditional PCs.


Introduction

A new generation of highly capable devices with small form factors presents a growth opportunity for software providers. UMPCs (with screens of about seven diagonal inches) and MIDs (with about five-inch screens) run full versions of Windows and Linux, so software can take advantage of the existing Intel® architecture based software ecosystem of applications, plug-ins, and drivers. That capability helps bring new solutions to market faster, while also providing a larger customer base for software and content providers.

Intel is developing combinations of processors, chipsets, and other components that deliver the next generation of capabilities for these platforms. The platform code-named "Menlow" is based on a new 45nm low-power microarchitecture that will come to market in the first half of 2008. It will power devices that provide an unprecedented level of full-featured Internet access from handheld devices, as well as very high performance and battery life from a single-chip UMPC/MID solution. Key enhancements over existing solutions include the addition of WiMAX wireless broadband, the ability to run Linux, and integrated voice functionality.

The software opportunity associated with these devices spans both the consumer and business sectors. For individual consumers, UMPCs and MIDs are an excellent entertainment and personal computing platform. Their small size and instant-on feature combine with the performance necessary to carry out compute-intensive tasks to offer users an unprecedented convergence of capabilities and convenience. This rich future vision for handheld technology includes everywhere-connectivity for multi-mode communication (phone, IM, Chat, e-mail), on-demand music and video, online gaming, and web browsing. Software makers can also incorporate capabilities like GPS and RFID into their solutions to enable a broad variety of innovative solutions.

Business systems based on UMPCs and MIDs can span well beyond individual productivi ty. These highly mobile devices can help to digitize new areas of the work environment, getting the right data to the right people at the right time and improving productivity. For example, solutions can target areas as diverse as general business travel, sales and service field staff across industries, and industrial processes on the factory or warehouse floor.

While these solutions can all make use of the familiar development environment, libraries, and APIs associated with all Windows and Linux applications, they also bring with them a number of new challenges. Software must be highly optimized for mobility, including power awareness and intelligent connectivity. It must also be able to take advantage of touch-screen capabilities and operate in the absence of a conventional mouse and keyboard. For maximum financial advantage, solutions should also be cross-platform compatible. This article discusses best practices to accommodate these challenges, helping to position software providers for the maximum benefit from UMPC and MID devices.

Open-Source Initiative

The Mobile Internet Linux* Project is an open-source initiative sponsored by Intel to support software development for MIDs and UMPCs and to accelerate the development of cross-platform mobile Linux solutions. The project is incubating a variety of tools and components to advance the ecosystem; for more information, visit moblin.org.


Effective Software Mobility for UMPCs and MIDs

Intel has long espoused attention to four key vectors for the success of mobile solutions: compelling form factors, high performance, intelligent connectivity, and power awareness. These typical mobility considerations are especially important in the context of UMPCs and MIDs because of the enhanced portability of these devices, relative for example to laptop and tablet PCs. In order to accommodate the needs of mobility, Intel provides a number of developer resource kits:

  • Intel® Mobile Platform Software Development Kit (SDK) is an open-source set of libraries and runtime components that allow developers to manage mobility issues such as power and connectivity awareness. The SDK abstracts these considerations away from the developer, leaving them free to focus on adding features to their applications instead. The SDK's programming interface is common across supported platforms and runtimes, maximizing code reuse. It also provides bindings to multiple languages, including Java, C# and C++.
  • Intel® Web 2.0 Technology Development Kit (TDK) is a high-level JavaScript API that enables Web applications to easily get information about battery power states, network connectivity, and processor information, including the number of cores. Using the TDK, applications can gracefully respond to changes in the environment, such as power source, battery level, and connectivity status. This information helps applications intelligently tailor interfaces and functionality to the resources available.
  • Intel® Laptop Gaming TDK facilitates the process of making games mobility-aware with a top-level API that collects information about battery power states, network connectivity, and processor information. It allows the developer to create user-defined callbacks that handle specific platform events, making the game more responsive to the environment. The TDK also provides a threaded event-management system to monitor those system changes with minimal overhead.

Vector One: Compelling Form Factors (Internet in Your Pocket)

Previous devices have not delivered on the full promise of the handheld Internet. They deliver only a subset of content, providing inadequate performance and substandard compatibility, while their use has typically been inordinately expensive. Current and upcoming generations of UMPCs and MIDs conquer those limitations, making the full Internet available. They also deliver a high level of software compatibility for both the user and developer, as well as a high degree of responsiveness in an always-on, always-connected modality.

UMPCs and MIDs are more portable than laptops, lending themselves to flexible usage scenarios. At the same time, they have substantially higher levels of programming power and storage than legacy personal digital assistants (PDAs), smart phones, and handheld email appliances. For input devices, they incorporate a touch screen/stylus, hardware buttons, and optional add-on keyboard and mouse. Both these device types allow the user to view full-page Web sites, as opposed to the limitations placed by many devices that present only a cropped view.

As development organizations make the transition to accommodating these form factors into their products, they can take advantage of tools that help them identify the issues and opportunities associated with creating software for MID and UMPC devices:

  • UMPC Evaluator Tool helps determine how portable software applications are to various UMPC devices. The tool works by simulating the execution of an application on profiles that represent UMPC devices to check for compatibility. The device profiles can be selected from a pre-set list or custom configured as needed. Results can be viewed in real time, logged to a file, or both.
  • Microsoft UMPC Display Emulator* simulates the 800x480 pixel resolution of a UMPC device and approximates application appearance and screen behavior as if the application were running on a UMPC. This simulation allows the developer to easily check the legibility and usability of the application at a high level without actually running it on a UMPC device.

 

Vector Two: High Performance

With the introduction of the Menlow platform in early 2008, Intel will provide the industry with a new, higher level of power-efficient performance for UMPCs and MIDs. The platform incorporates a processor code-named "Silverthorne" based on a new 45nm Hi-k microarchitecture that delivers extremely high throughput at low power with a smaller package size than has previously been possible. The performance headroom afforded by this processing engine will enable UMPCs and MIDs to handle large, PC-class workloads, as opposed to the scaled-down capabilities of many previous handhelds.

The low-power operation of the Menlow platform will allow these devices to run with a high level of performance while also de livering very long battery life, for a favorable user experience that reflects well on the software solutions running on them. The ability of UMPCs and MIDs to run a full operating system helps software companies support UMPCs and MIDs with a code base shared with the PC platform, assuming that they make appropriate changes to that code to support UMPC/MID operation.

The processor will be complemented by the next-generation chipset, code-named "Poulsbo," to provide a single-chip solution. Both the processor and chipset were designed from the ground up for MID and UMPC platforms. The Menlow platform takes advantage of the Intel research known as Low Power on Intel® Architecture (LPIA) to enable advanced energy efficient performance.

Vector Three: Intelligent Connectivity

UMPCs and MIDs based on the Menlow platform add new modes of connectivity, relative to predecessor platforms. In addition to Wi-Fi and Bluetooth*, offered by current platforms, the new devices will also provide 3G capabilities, WiMAX, voice, and GPS. This expansion enhances the overall flexibility of the hardware platform, which in turn opens the market up to new types of software solutions that take advantage of these new features.

In order to take good advantage of the robust mobile connectivity provided by these devices, software must be able to gracefully handle changes in connectivity in the middle of a session. For example, if the device loses its network connection, applications should continue working without interruption, caching data as necessary for later synchronization. It is also desirable, for example, to monitor the available bandwidth, delaying elective tasks like large data transfers when the connection throughput is low.

As mentioned above, the Intel Mobile Platform SDK provides the means to easily add advanced connectivity-related functionality to applications. The following articles from Intel® Software Network, all of which illustrate their concepts with sample code, discuss a few of these capabilities:

Intel® Mobile Platform SDK: Monitor Connectivity Status demonstrates how to use the Intel Mobile Platform SDK to obtain information concerning a system’s network connectivity status.

Succeed Faster

Accelerate the profitability of solutions for UMPCs and MIDs by joining Intel's Ultra Mobile Market Segments Initiative. Part of the Intel® Software Partner Program, this initiative gives you proven tools for business planning, product development, marketing, and sales that help you bring optimized solutions to market faster and more successfully.

Intel® Mobile Platform SDK: Network Detection shows how developers can use the SDK to enable their applications to retrieve properties of network devices and to monitor network status.

Intel® Mobile Platform SDK: Prioritize and Estimate Bandwidth lets developers provide applications with the ability to estimate and prioritize available bandwidth.

Vector Four: Power Awareness

A key contributor to (or detractor from) user satisfaction with a mobile application is the ability to make the most out of available battery life. In this respect, the Menlow platform gives developers an advantage from the start. Its energy-efficient design enables substantial improvements to the user experience, with no added effort. At the same time, however, there is a great deal that developers can and should do to enhance the capabilities of the hardware to deliver excellent battery life. Because of the importance of this factor to the user experience, good power management can be a competitive advantage within an application's market segment.

One aspect of power awareness that software can take advantage of to deliver better battery life is providing the user with the ability to control power-intensive aspects of the application's operation. For example, CPU-intensive tasks like virus scans should not initiate automatically, especially when the device is on battery power. To extend that idea, if the application can detect the current power source (AC power or battery), as well as the battery power level, the software can make intelligent decisions about which automatic tasks to initiate and which ones to delay. Techniques using the Intel Mobile Platform SDK to accomplish these goals are described in "Intel® Mobile Platform SDK: Access System Power Information."

A more complex but also important set of concerns for the developer with regard to extending battery life is to follow best practices for improving the computational and data-handling efficiency of applications. A detailed discussion of those techniques is beyond the scope of this paper, but an excellent introduction to the topic can be found in the paper, "Creating Energy-Efficient Software”. That paper examines software methodologies, designs, and tools to improve the energy efficiency of software and extend battery life.


Best Practices for Developing Applications for UMPCs and MIDs

A crucial consideration when designing applications for UMPCs and MIDs is to consider usability with a much smaller screen than a conventional PC display. Although these applications may be built using the same development environment as regular applications, they must be built with an added set of considerations in mind. For example, the small screen requires dialog boxes and similar elements to be smaller than usual, making concise text and careful use of space important.

Because users may wish to select screen elements with a fingertip as well as a stylus, making selection target areas large is an advantage, especially for applications that are often used outside of working sessions, such as media players or voice recorders. Likewise, 'mouse-over' or hover events are not typically supported on UMPCs and MIDs, requiring Web developers particularly to re-conceive certain operations. Using hardware buttons or providing on-screen UI-control elements is a good alternative in many cases.

Developers should resist the shortcut of simply requiring the user to scroll around a large interface, only part of which is visible at any given time. Failure to do so makes it difficult for the user to interact with the UI, requiring them to 'hunt' for the elements they want and detracting from the user experience. In situations where scrolling is unavoidable, vertical scrolling is preferable to horizontal, and in any event, requiring both at once is poor practice. Developers should carefully consider the importance of each element on the screen and how it could be presented differently to take up less space, or whether it could be removed entirely.

For further discussion of considerations involved in porting applications to the UMPC and MID, see the following resources:

 

In order to free up developer resources to consider the design issues associated with optimizing applications for UMPCs and MIDs, Intel® Software Development Products provide a cost-effective, efficient way of optimizing applications. This tool set includes compilers, libraries, performance analyzers, and more, all of which are compatible with other popular tools, for an integrated approach to getting high performance and efficiency in software applications. The paper "Using the Intel C++ Compiler with Ultra Mobile Devices" helps developers get started in using Intel tools to optimize software for UMPCs and MIDs.

The resources discussed in this section cover many of the key issues faced by developers as they begin to create or port applications for UMPCs and MIDs. Intel Software Network maintains a Web page that provides a more complete list of technical documents that are helpful in this area.


Cross-Platform Compatibility

Because these devices run full versions of Windows or Linux OSs, general developer knowledge and practices translate directly to the UMPC/MID environment. The familiar tools, libraries, and APIs that are already in the developer's everyday environment apply to these devices, although those who have not developed for touch-screen devices such as tablet PCs will need to learn the technologies associated with collecting handwritten input from a stylus and interpreting it in their applications.

Because of the differences in input devices and screen real estate between these small-scale platforms and convention al PCs, it is necessary in most instances to accommodate multiple device profiles. That is, even though the different types of devices share a common code base, the application nevertheless presents a different interface and feature set to the user, as well as accepting input from a different set of peripheral devices.

In order to support this requirement, it is desirable to scale the interface appropriately for the device on which the application is running, which may require actually creating separate interface presentations for each display size. Of course, it is also necessary to make sure that the code is compatible with the available input devices, which may vary, for example, between keyboard/mouse and touch-screen/hardware buttons.

The UMPC Evaluator Tool, mentioned previously in this article, can be useful in this effort. Where it is necessary to provide two separate pieces of code for different devices, auto-detecting the type of device, display size, available input devices, etc. can help to streamline the development effort.

Another consideration to preserve cross-compatibility is to employ the Intel Mobile Platform SDK where possible. As discussed earlier in this paper, the SDK promotes code reuse across platforms by providing a common programming interface that applies to various architectures. The SDK provides display detection among its other mobility-enhancing features, facilitating the customization of applications to support multiple devices.

Intel is also contributing to the future of enhanced cross-platform compatibility among mobile devices by means of its sponsorship of an open-source initiative called the Mobile Internet Linux Project. The primary goal of this project is to facilitate the development of a common software-development framework that applies to the full variety of connected small devices, including UMPCs, MIDs, smart phones, etc. For more information, see www.moblin.org.


Special Topics: Enabling Innovation with GPS and RFID

With the proliferation of UMPC and MID devices, the opportunity is ripe for the creation of new types of applications that facilitate new ways to use the hardware. The integration of two forward-looking technologies—Global Positioning System (GPS) and Radio Frequency Identification (RFID)—into the Menlow platform enables that type of innovation.

In addition to conventional navigation programs, GPS is fundamental to location-aware computing, an umbrella term for a variety of emerging capabilities. In simplest terms, the technology is the ability to provide precise location information based on signals received from transmitters on satellites or earth-bound stations. By gathering location information from a GPS device, an application can use that information as the basis for a number of operations, such as identifying the device's present location as part of a roadside assistance call, or accessing real-time advice to avoid traffic delays.

Security applications could transmit the location of a stolen device via WiMAX signal to a service provider, facilitating recovery. Many open-ended uses are possible, such as finding the location of one or more specific people and locating a restaurant that is roughly equidistant between them. Because the integration of GPS-based locatio n information into mobile applications is a relatively new concept, it represents an opportunity for software providers to be first to market with new ideas.

RFID has started to become ubiquitous in the past few years, having been integrated into everything from many of the products we buy to passports. A 'tag' that incorporates a microchip and small wire antenna are the basis of the system, allowing a 'reader' device to gather information from one or more tags, and depending on the capabilities of the system, sometimes write information as well. Increasing proliferation of RFID advances the technologies associated with it, making more sophisticated RFID tags and readers at lower cost, increasing the opportunity in a wide variety of applications.

Because RFID readers can read many tags at once from a distance, they can be used, for example, to inventory a large number of separate items in a warehouse or supply cabinet. Integrating that information with other systems can streamline a wide variety of operations and optimize the supply chain, asset management, and workflows. Many of these possibilities are described in the context of healthcare in the paper "RFID Simplifies Improvements to Hospital Bedside Care."

In order to take advantage of these technologies in UMPC and MID applications, developers can use APIs in the Intel Mobile Platform SDK that are provided specifically for GPS and RFID functionality. Innovations around these technologies set the stage for an emerging generation of applications that take unique advantage of the combination of processing power and portability in UMPC and MIDs.


Conclusion

The opportunity to software providers that is afforded by UMPCs and MIDs covers a number of areas. As these devices become more prevalent, they represent an extension to the current user base for existing applications. That opportunity is enabled in part by the potential for cross-platform compatibility between these devices and conventional PCs. Because of the high degree of parity with standard PCs (including use of the same OSs), the typical developer already has the majority of the tools and expertise needed to take advantage of these new device types. For an overview of development tools, see the companion paper "Resource Guide for the UMPC/MID Software Developer."

Because UMPCs and MIDs are based on standard Intel architecture, they can also draw from the vast ecosystem of existing applications, components, and drivers. New applications based on familiar models, such as media players that specifically target small-footprint devices, are also a potential focus of opportunity. Even more compelling, capabilities like GPS and RFID set the stage for entirely new types of solutions, creating new opportunities for breakthrough software that differentiates itself from its market segment. A new potential has been released for products that feel truly new, and the field is open to see who will benefit.


Additional Resources

The following materials provide a point of departure for further research on this topic:

 


About the Author

Matt Gillespie is an independent technical author and editor working out of the Chicago area and specializing in emerging hardware and software technologies. Before going into business for himself, Matt developed training for software developers at Intel Corporation and worked in Internet Technical Services at California Federal Bank. He spent his early years as a writer and editor in the fields of financial publishing and neuroscience.