"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
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 SuitabilityThere 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
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 VisionIn 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:
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: www.openmobilealliance.org/tech/wg_committees/dm.html 
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 RealityAchieving 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.