IT Research BYTE

Glossary (continued) Mobile applications that run software and store data on the device are considered thick clients. A "thick" portion of functions run within the device and Thick Client – In general, a thick most of the server interactions are primarily used for authentication and client is an application (client) in a synchronization. Thick clients implement some form of internal data store through client-server architecture which small-footprint databases (such as SQLite), which allows them to operate with provides rich functionality less need for signal coverage. Furthermore, the local code running on the device independent from the server. A provides thick clients with sophisticated features and excellent usability thick client may use some 3 periodic network connection (i.e. compared to thin clients . to synchronize), but it has the ability to perform a few functions The benefits of using thick client mobile applications include 1) high usability 2) offline. the ability to work offline 3) support for hardware peripherals and 4) flexible security. Unlike thin client mobile applications, building thick clients may constitute higher deployment costs since special skill-sets are required to build them. Targeting a specific platform also limits the range of devices to support.

Analysis The Mobile Landscape

The mobile market is very fragmented, and will continue to become fragmented 4 in the coming years . From discussions with Gartner Research, they describe the mobile space as a ”turbulence", referring to the market's fast-paced divergence and fragmentation. It is important for Ford IT to have a good grasp of the mobile playing field to strategically position itself when the "waves of mobile demand" arrive.

Figure 1 captures the fragmentation of the mobile landscape in terms of devices and operating systems. It also shows a hierarchy of available options for developing thick client mobile applications. As depicted from the figure, the diversity of devices and operating systems makes it impractical to target a single device.

Application Development Options

Packaged Solutions

Costs MEAPs

Customization Native SDK

Target Devices and Operating Systems

BlackBerry

iPhone Android Palm Others

Figure 1 – Mobile Application Development Landscape Source: Author; Data derived from discussions with vendors.

© Copyright Ford Motor Company IT Research BYTE

There are numerous solutions and products in the market for developing thick client applications, but they can be lumped into three different approaches. The benefits and challenges for each approach are discussed in detail in the consequent sections. • Native SDK – this is a development kit for a specific device or , typically provided by the vendor. This solution provides the highest degree of freedom in terms of customization and hardware interaction. • Mobile Enterprise Application Platforms (MEAP) – Gartner uses the term MEAP to describe mobile application platforms from external vendors who provide tools and client/server middleware for mobile and enterprise application development5. These vendors provide multi- platform support, as well as high-level software frameworks for building thick client mobile applications. • Packaged Solutions – these are configurable applications that require little or no writing of code. These applications are hard-coded line of business solutions with usually little opportunity for customization. Main Consideration: Devices and Operating Systems

At the time of writing, there are currently six major mobile operating systems in the market with more and devices capable of running them. The following lists the devices and operating systems from major vendors in the mobile market

Table 1 – Devices and Operating Systems Devices Operating Systems Apple iPhone devices iPhone OS RIM BlackBerry devices BlackBerry OS Palm devices Windows Mobile Nokia devices Android Samsung devices Palm webOS HTC devices Nokia Symbian Motorola Devices Nokia LG Devices Variations of Linux OS Source: Author; Data compiled from publicly-available mobile OS information.

As mentioned earlier, the increasing divergence is the primary cause of the "turbulence" in the mobile space. Therefore, it is very important to understand the trends and innovations in this space because ultimately, the effectiveness of applications is highly constrained by the devices and operating systems to which they are deployed.

© Copyright Ford Motor Company IT Research BYTE

Option #1: Native SDK toolkits provided by the operating system vendors are the most readily available options for developing thick client applications. Native SDKs provide the highest degree of freedom in terms of leveraging the hardware features that are unique to a device. The makers of operating systems provide these SDKs and distribute them for free, or very low cost.

Example 1: In a scenario where an enterprise wants to develop an application and deploy it to single operating system, a typical Native SDK solution is described as follows: 1. A developer writes code using a native SDK 2. The generated code and other changes are compiled and loaded to the target device In order to have the same application running on a different operating system, a developer will need to write the application using a different native SDK.

Table 2 provides an overview of the SDKs available for the most current mobile operating systems:

Table 2 – Native SDKs SDK Operating System Target Device iPhone SDK iPhone OS Apple iPhone BlackBerry MDS Studio BlackBerry RIM Devices Windows.NET Compact Windows Mobile Various devices Framework (CF) Android SDK Google Android Various devices Palm Mojo Software Palm webOS Palm Devices Development Kit

Symbian OS DevKit Nokia Symbian Nokia Devices

Maemo SDK Nokia Maemo Nokia Devices

Source: Author; Data compiled from publicly-available vendor information.

Enterprises that use native SDKs for developing mobile applications benefit from (1) the potential for high customization (2) lower costs relative to packaged solutions (3) applications can be tailored to specific devices and (4) strong developer community. However, this approach requires platform specific skill- sets, and potentially limits the flexibility of deploying to other operating systems.

© Copyright Ford Motor Company

IT Research BYTE

Option #2: Mobile Enterprise Application Platforms (MEAP) When developing thick client mobile applications using a native SDK, deployment is limited to a single platform. Moreover, the programming languages implemented by native SDKs are relatively low-level which means applications require more code to write. Mobile Enterprise Application Platforms (MEAPs) attempts to solve these issues by providing tools and client/server middleware for mobile and enterprise application development. As target devices change, MEAP vendors provide multi-platform support by necessitating only changes to small, isolated components of software. MEAP vendors implement proprietary high-level software platform to abstract low-level native code. Moreover, MEAP vendors also provide client/server middleware to allow seamless flow of data communication and application support. Thick client applications written using third party frameworks are interpreted by a client application that sits on top of the native operating system. The client application is provided by the vendor as part of the framework package. Its main function is to control, execute and render the high-level code written using the framework. This allows the same high-level code to run on multiple devices (as long as the vendor provides a client application for a target device). Figure 2 shows the design differences between applications written using native SDKs versus MEAPs.

Thick Client Application Thick Client Written in a MEAP Application framework Written in Native SDK

MEAP Client App

Operating System Operating System

Device Hardware Device Hardware

Figure 2 – Differences between thick clients written using Native SDK vs. MEAP solutions Source: Author; Data derived from Antenna Software

© Copyright Ford Motor Company

IT Research BYTE

Example 2: In a scenario where an enterprise wants to develop an application and deploy it to multiple operating systems, a typical MEAP solution is described as follows: 1. A client application is installed to a target device 2. A developer writes code using a MEAP proprietary framework 3. The generated code and other changes are sent to a server 4. The server receives the changes and pushes them down as a configuration file to the appropriate device 5. The client application running on the target device receives the configuration file. 6. The client renders, and executes the application based on the configuration file. 7. Clients running on other operating systems will execute the application in the same manner, but the UI is rendered differently for each operating system.

MEAP vendors include Antenna Software, Syclo, Rhomobile, Sybase, Bluedot, Vaultus, and Pyxis Mobile (see Appendix A for list of supported platforms). Antenna Software, for example, offer a SaaS service as well as an on-premise solution6. The benefits of using MEAPs include (1) multi-platform support (2) high-level code for easier development and (3) the ability to centralize application distribution. However, they are more costly compared to native SDKs, would require additional middleware, and may not provide the same level of customization as native SDKs. Option #3: Packaged Solutions Packaged solutions are complete mobile applications suites that target enterprise users involved in task-oriented business processes7, such as field service, logistics, inspections, sales, delivery, and inventory management. Packaged applications are configurable point solutions that require little or no writing of code. These applications are hard-coded line of business solutions with little room for customization.

Example 3: In a scenario where an enterprise wants to develop an application and deploy it to multiple operating systems, a typical Packaged solution is described as follows: 1. Depending on the operating system, a packaged application is selected from a suite of solutions 2. The selected application is configured 3. The application is installed and loaded to the target device

© Copyright Ford Motor Company

IT Research BYTE

ISVs providing packaged solutions include IBM's Maximo Mobile Solution, and SAP's BusinessObjects Mobile.

In addition, some MEAP vendors may have packaged options as well8. For example, SAP has worked closely with Syclo and Sybase to mobilize their CRM and ERP solutions. Other vendors offering packaged solutions include Antenna Software, Spring Wireless, Bluedot, and Pyxis Mobile.

The benefits of using packaged solutions include 1) shorter deployment cycles 2) little or no writing of code and 3) multi-platform support. However, packaged solutions incur higher costs compared to self-built solutions and provide little room for customization.

A Word about for Mobile Devices The different options for developing thick client mobile applications pose some challenges for Ford IT especially with the technical skills and backend infrastructure required to support them. Using Java to write thick clients might seem like the path of least resistance, but it may not be the way to go9. Thick client mobile applications can be written in Java using J2ME (Java 2 Platform, Micro Edition). Java applications can run on multiple platforms, if a Java Virtual Machine (JVM) is provided. Most devices, including BlackBerry and Windows Mobile devices have built-in Java support, however some devices do not support Java at all (e.g. iPhone). Therefore, a careful evaluation is needed if Java is considered as a potential avenue for developing thick client applications because its performance may be inconsistent across different platforms.

Recommendations Mobile applications are becoming more important in the enterprise in three ways: • They improve efficiency and effectiveness of knowledge workers by providing new or improved accessibility to collaboration applications, such as e-mail, voice and video. • They optimize line-of-business processes, such as sales force support, field service, manufacturing, operations, and logistics. • They reach out broadly to consumers, business partners, and business customers.

An effective strategy for supporting thick client mobile applications should: 1) Identify the mobility needs 2) Decide which platforms to deploy in order to support the needs 3) Identify the tooling and infrastructure to meet the needs

© Copyright Ford Motor Company

IT Research BYTE

A Proof of Concept (PoC) to identify and become familiar with the tooling and backend support to implement the different options for developing thick client mobile applications is a recommended next step. A clear view of today and the future of the mobile landscape should be placed in the forefront ---the mobile landscape is very fragmented and will continue to diverge with greater intensity. With the immense fragmentation of mobile devices and operating systems, a focus on multi-platform deployment is crucial in order to maximize the business value of these applications moving forward. It is obvious that the waves of mobile demand are fast approaching. The main question that Ford IT needs to tackle is when and how to prepare itself when the tsunami of mobile demand come crashing its shores.

Bottom Line The primary benefits of thick client mobile applications such as improved usability and performance, coupled with the ability to work offline make them a very attractive choice for user-friendly and data-centric applications. With the immense fragmentation of mobile devices and operating systems, a focus on multi-platform deployment is critical in order to maximize the business value of these applications moving forward.

Where to Learn More

• Internal Ford Document • Internal Ford Document • Internal Ford Document

© Copyright Ford Motor Company

IT Research BYTE

Appendix A The following table lists the platforms supported by MEAP vendors:

Black Windows Vendor Framework iPhone Android Palm Symbian Berry Mobile

Antenna Antenna Mobile Software Platform Agentry Syclo Platform Rhodes Rhomobile Framework mNow! Bluedot Mobile Framework mobiScaler Vaultus Framework Pyxis Pyxis Application Mobile Studio

Source: Author; Data compiled from interviews with vendors.

© Copyright Ford Motor Company

IT Research BYTE

End Notes

1 Ford Internal Document

2 Nick Jones, "Management Update: Guide to Choosing Architectures for B2C Mobile Applications," Gartner Research. 2008

3 William Clark, Michael King, "Mobile Application Development and Architecture," Wireless and Mobile Summit, Gartner Research. 2008

4 Shiv Bakshi, Ramon Llamas, Sean Ryan, Stephen Drake, "Worldwide Mobile OS 2008-2012 Forecast and Analysis," IDC. 2008

5 William Clark, Michael King, " Magic Quadrant for Mobile Enterprise Application Platforms," Gartner Research. 2008

6 Antenna Mobility Platform Overview, Antenna Software,

7 Michael King, William Clark, "MarketScope for Packaged Mobile Application Platforms," Gartner Research. 2009

8 This information was gathered from interviews with Syclo, Sybase, Antenna Software, Spring Wireless, Bluedot, and Pyxis Mobile.

9 Richard Monson-Haefel, " Using Java ME for Developing Rich Mobile Applications," Burton Group. 2008

Reviewed by Internal Ford Peer Review

© Copyright Ford Motor Company