Glossary (continued) Thick Client In general, a thick client is an application (client) in a client-server architecture which provides rich functionality independent from the server. A thick client may use some periodic network connection (i.e. to synchronize), but it has the ability to perform a few functions offline. 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 clients 3. 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 years 4. 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 Customization Packaged Solutions MEAPs Native SDK Costs Target Devices and Operating Systems BlackBerry Windows Mobile Symbian iphone Android Palm Others Figure 1 Mobile Application Development Landscape Source: Author; Data derived from discussions with vendors.
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 development 5. These vendors provide multiplatform 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 Google Android Samsung devices Palm webos HTC devices Nokia Symbian Motorola Devices Nokia Maemo 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.
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. 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 skillsets, and potentially limits the flexibility of deploying to other operating systems.
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 Written in Native SDK Thick Client Application Written in a MEAP framework MEAP Client App Operating System Device Hardware Operating System Device Hardware Figure 2 Differences between thick clients written using Native SDK vs. MEAP solutions Source: Author; Data derived from Antenna Software
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 solution 6. 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 processes 7, 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
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 well 8. 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 go 9. 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
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
Appendix A The following table lists the platforms supported by MEAP vendors: Vendor Framework iphone Black Berry Windows Mobile Android Palm Symbian Antenna Software Syclo Rhomobile Bluedot Vaultus Pyxis Mobile Antenna Mobile Platform Agentry Platform Rhodes Framework mnow! Mobile Framework mobiscaler Framework Pyxis Application Studio Source: Author; Data compiled from interviews with vendors.
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 Reviewed by Internal Ford Peer Review