By John Purcell, Red Bend Software

"Platformization" of mobile phone software architectures promises to greatly speed the process of designing and decrease the cost of developing wireless devices. By leveraging a common software base, wireless designers and developers are able to more cost effectively build devices that meet manufacturer and operator

click to enlarge

Figure 1. From FOTA to Component Management — The first generation of mobile software management solutions focused on updating the entire image of firmware over-the-air (FOTA). New advancements in the technology allow embedded software components to be updated individually, creating the potential for consumers to personalize the software functionality of their mobile phones to match their unique needs.
requirements for different market segments. In this approach, every phone in a market segment has the same software assets when it ships. However, consumer demand for personalization of mobile phones is taking software customization requirements further. Consumers currently personalize their phones with ringtones, games and wallpapers. As consumers grow more sophisticated in their use of mobile phones, they will want to perform greater personalization by selecting the software features, applications and services that fit their unique lifestyles. Potentially, no two mobile phones will be alike.

Selling new software to consumers post-sale generates new revenue opportunities across the mobile value chain, but it also creates a new set of challenges for the manufacturers of mobile devices and platforms. It is time to rethink the best way to bring to market devices that remain cost-effective but that meet the new software customization requirements that the market is increasingly demanding.

To achieve feature customization of mobile phones, wireless designers and developers must look beyond simply storing programs in a User File System, and instead focus on the embedded software layer — those software elements residing in Read-Only Memory (ROM). To do this, manufacturers will need to reexamine current methods used to build embedded software in order to enable pre- and post-sale software customization down to the individual component level. Enhanced mobile software management capabilities are being developed that promise to help manufacturers maximize the true potential of platformization and meet the growing demand for feature customization of mobile phones beyond applications in read/write user file systems.
Architectural Suitability
There are two primary methods for structuring mobile software in the Read-Only flash memory space: store software in a modular fashion over an “open” operating system such as Symbian or Linux, or store it in a monolithic, statically-linked image, typically over a proprietary RTOS. Each has its advantages in terms of physical and logical architecture, but they pose very different challenges to remote management tasks such as installation, replacement and removal of embedded software.

There are inherent advantages in execution speed and platform security to mobile device software comprised of statically-linked binary objects that form a monolithic image in flash memory. In allowing software code to be executed in-place in NOR flash, these advantages are enhanced further by reducing RAM requirements. However, once the code is compiled, linked and burned to flash, efficient modular management of the embedded software image becomes difficult. The slightest modification of any of its constituent components will affect almost the entire image. Changes to the static references alone make the modular management of individual embedded components impossible. In other words, once the large binary image is created, it must be managed and manipulated as a single component and can not be managed as a collection of individual software elements.

On the other hand, storing embedded software components in a more modular fashion requires an on-device loader mechanism to execute the code. For example, to execute a software element or collection of elements associated with an application, the elements must first be loaded to RAM and have their dependencies and references dynamically resolved before the functionality can be made available to the consumer. This apparently makes the software more suitable for remote management. However, in reality there are inefficiencies associated with modular storage and dynamic linking of software that often offset the advantages inherent in the software modularity. Inevitably, there is a load-time penalty associated with the need to load the software components into RAM, process all their symbolic information and modify their actual content in order to execute them. The resultant delay becomes somewhat of a nuisance especially in today's complex devices.

To solve this side effect of dynamic linking, architects of modular mobile devices often turn to the practice of "prelinking." By resolving all dynamic information at build-time and storing the components in ROM exactly as the on-device loader requires, load efficiencies result at execution time. But "prelinking" the code before it is burned into flash also prevents the software

click to enlarge

Figure 2. Growth of Embedded Software — Mobile phones have become sophisticated computing devices, with advanced features such as music players, digital cameras, and web browsing. The amount of embedded software in mobile phones has grown from just 1 to 2 MB eight years ago to 128 MB today, increasing the need to keep that software up to date to ensure a positive mobile user experience.
elements from easily being replaced in a modular manner, as any changes in component size and location may affect prelinked references in other modules. The result turns the stored firmware in ROM back again to the 'good old' monolithic form. To add to the difficulty, the file system in which most device software files are commonly stored is of a Read-Only type like ROFS (Symbian), cramFS or squashFS (both Linux) as well as other RTOS based ones. These read-only file systems are designed for efficient retrieval and storage, not for updating, deleting or adding individual files. In addition, these file systems allow storing their content in compressed form, which adds yet another complexity layer for on-device updates.

Both methods of software structuring (static and dynamic linking) mean that, once the device has shipped, changing anything in the embedded software has traditionally only been possible using Firmware Over-the-Air (FOTA) updating. This technology uses a known target software version, already fully built and prepared for burning to flash, and computes the differences that exist between it and the source software version that should exist on the device. There are several approaches to FOTA. The computational approach is considered the most practical and is powerful enough to compute the new and potentially shifted references in the device and therefore construct the new software version over the old version. However, FOTA technology updates the entire firmware image as one single component (monolith) and does not support software customization by individually managing software components. A true solution for embedded software management is required that can be scaled across multiple device models, operator variants, components and component versions.
Enabling the Vision
In general terms, managing embedded software involves the ability to install, upgrade, replace and potentially remove software components from the Read-Only memory space. As discussed, these management tasks
A new proposed extension for the standard OMA-DM protocol for managing individual software components in mobile phones is launching a new generation of mobile software management capabilities. The proposed standard, called Software Component Management Object — or SCoMO for short, is being developed through the Open Mobile Alliance Device Management (OMA-DM) Working Group.

SCoMO defines new management functionality to be performed by DM systems and mobile phones. The result will provide device manufacturers and mobile operators with greater flexibility and control over managing a device's software throughout its lifecycle. With this new management capability, DM systems will be able to:
  • Deliver and install new software components on the device
  • Update existing software components
  • Remove existing software components
  • Query the inventory of software components, and
  • Activate or deactivate software components

    The standardization of SCoMO, expected by the end of 2007, is part of several significant advancements in mobile software management that will address the growing need to manage all of a device's software after the phone has shipped. For most mobile phones, it is not possible to update or change individual embedded software components post-sale, unless performed as part of a complete firmware update, known as FOTA (Firmware Over-the-Air). The technology to manage embedded software components on the devices combined with server-client interaction standardization provided by OMA-DM and SCoMO will open up the entire device assets for individual customization and management.

    This next-generation of comprehensive mobile software management solutions creates new revenue opportunities for operators and manufacturers. For example, if a specific device technology is required in order to support a new mobile service (such as a new audio codec to support higher quality music files), operators could deliver this individual software component over-the-air to all the mobile phones in its network, versus requiring whole firmware updates of each device. This not only enables faster time-to-market for new mobile software and services, it allows consumers to get instant access to new features and applications, greatly enhancing the mobile user experience.

    For more information on SCoMO and other device and software management capabilities, visit the OMA DM web site:
  • depend on the ability to deduce, maintain and reconstruct the linkage between software components. In software that is completely statically linked and even in software with more dynamic capabilities, these management tasks are simply impossible to enable. Design choices focused on efficiencies in program execution and ease of re-use have ultimately resulted in sets of embedded software components that simply cannot be managed or customized on an individual basis once devices are shipped. This limits the effectiveness of platformization efforts to device creation, without extending it to device updates. That is, until now.

    FOTA vendors are developing the next generation of mobile software management technology that will enable platform providers and device manufacturers to achieve this level of embedded software control. This technology, focused on extending management capability down to the individual embedded software component level, promises to equip manufacturers with management flexibility both for devices that store embedded statically-linked software and devices that employ a more modular and dynamic architecture.

    This new breed of comprehensive mobile software management solutions works by finding the software component targeted for management, deducing the relevant static and symbolic information, performing the desired management task and guaranteeing correct, valid on-device software in a fault-tolerant, secure and fast way. They are designed to have minimal impact on existing software architecture. In many cases, the best solutions have no impact whatsoever and, by making some clever build-time decisions, enable truly granular software management no matter the device architecture.
    Becoming A Reality
    Achieving embedded feature customization of mobile phones through mobile software management is becoming a reality, due in part to the efforts of the Open Mobile Alliance Device Management (OMA-DM) Working Group. This industry group has been working to define a new management enabler — called Software Component Managed Object (SCoMO) — for individually managing mobile phone software components. SCoMO is an exciting new development in the evolution of mobile software management capabilities (see sidebar), and is a key component to the next generation of FOTA solutions.

    Red Bend Software has been a strong supporter of SCoMO, and is the first FOTA vendor to bring to market a comprehensive solution for managing both embedded and non-embedded software components on mobile phones. Called vRapid™ Mobile, this new mobile software management solution enables a scaleable approach to feature customization across the entire device image. Utilizing SCoMO and other management enablers and standards, vRapid Mobile allows any application on statically or dynamically linked devices to be updated, added, replaced and removed at any time during the lifetime of the device.

    Red Bend proved the feasibility of embedded software component management in a recent mobile operator-sanctioned trial. As part of the trial, Red Bend integrated its vRapid Mobile client software with a commercially available mobile phone from a leading device manufacture that uses statically-linked software architecture. The solution allowed two embedded software applications to be individually added, upgraded, downgraded and removed using targeted component updates rather than updates for the entire firmware of the device.

    The next generation of comprehensive mobile software management solutions enables everyone in the mobile value chain to have more flexibility and control over a phone's software assets. It offers mobile phone developers significant design advantages in execution speed and security by providing unprecedented access to areas of the device embedded in ROM. Manufacturers and operators can generate revenue and increase ARPU by delivering new features, services and their technology enablers to mobile phones at the point of sale or post-sale, while allowing consumers to personalize the core functions of their phones to match their individual needs. Best of all for wireless designers and developers, it maximizes their platformization efforts while ensuring their devices remain cost-effective and competitive in the increasingly sophisticated and demanding mobile phone market.

    About the Author
    John Purcell is director of terminals and platforms for Red Bend Software, where he works with leading mobile manufacturers and platform providers to accelerate their mobile software management capabilities.