IT Research BYTE
© Copyright Ford Motor Company
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 most of the server interactions are primarily used for authentication and synchronization. Thick clients implement some form of internal data store through small-footprint databases (such as SQLite), which allows them to operate with less need for signal coverage. Furthermore, the local code running on the device provides thick clients with sophisticated features and excellent usability compared to thin clients3.
The benefits of using thick client mobile applications include 1) high usability 2) 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 in the coming years4. 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.
Figure 1 – Mobile Application Development Landscape Source: Author; Data derived from discussions with vendors.
Native SDK
MEAPs
Packaged Solutions
Target Devices and Operating Systems
iPhone
BlackBerry Windows Mobile
Android Palm
Symbian Others
Application Development Options
Cu
s
to
m
iz
a
ti
o
n
Co
s
ts
Glossary (continued)Thick Client – In general, a thick
IT Research BYTE
© Copyright Ford Motor Company
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 free software development kit for a specific device or operating system, 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
RIM BlackBerry devices Palm devices Nokia devices Samsung devices HTC devices Motorola Devices LG Devices iPhone OS BlackBerry OS Windows Mobile Google Android Palm webOS Nokia Symbian Nokia Maemo Variations of Linux OS
Source: Author; Data compiled from publicly-available mobile OS information.
IT Research BYTE
© Copyright Ford Motor Company
Option #1: Native SDK
Software development 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
Framework (CF) Windows Mobile Various devices Android SDK Google Android Various devices Palm Mojo Software
Development Kit Palm webOS Palm Devices Symbian OS DevKit Nokia Symbian Nokia Devices Maemo SDK Nokia Maemo Nokia Devices
Source: Author; Data compiled from publicly-available vendor information.
IT Research BYTE
© Copyright Ford Motor Company
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.
Figure 2 – Differences between thick clients written using Native SDK vs. MEAP solutions Source: Author; Data derived from Antenna Software
Device Hardware Operating System
IT Research BYTE
© Copyright Ford Motor Company
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
IT Research BYTE
© Copyright Ford Motor Company
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 Java 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
IT Research BYTE
© Copyright Ford Motor Company
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
IT Research BYTE
© Copyright Ford Motor Company
Appendix A
The following table lists the platforms supported by MEAP vendors:
Vendor Framework iPhone Black Berry Windows Mobile Android Palm Symbian
Antenna Software Antenna Mobile Platform Syclo Agentry Platform Rhomobile Rhodes Framework Bluedot mNow! Mobile Framework Vaultus mobiScaler Framework Pyxis Mobile Pyxis Application Studio
IT Research BYTE
© Copyright Ford Motor Company
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, <http://www.antennasoftware.com/mobile-platform/amp> 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