Posted by: Paul DeBeasi
Thousands of ingenious, and sometimes frivolous, Apple iPhone applications have inspired developers to imagine new enterprise mobile applications. Inspiration is nice. But in this challenging economic environment, enterprises need to ask themselves how deployment of mobile applications will solve practical business problems and how they can maximize the return on investment (ROI) when developing mobile applications.
This post begins a three part series on maximizing ROI for mobile applications. Part 1 explains why mobile application development is so difficult and introduces three common deployment approaches. Part 2 will discuss the challenges and benefits of each approach. Finally, Part 3 will provide specific tips to help enterprises maximize mobile application ROI.
Mobile application deployment challenges
The worn out cliché that we live in a mobile world is nonetheless true. The executive road warrior, multitasking medical doctor, and airport hopping sales executive need continuous access to information. Whereas mobile workers once hoped for ubiquitous information access, they now demand it.
Unfortunately, satisfying these user demands is quite challenging. Mobile workers often need access to applications that require access to diverse back-end database systems and servers. Mobile cellular services have different throughput and latency performance characteristics that vary as the worker roams from place to place. Mobile device security and management capabilities are oftentimes insufficient to satisfy enterprise security policies. And finally, mobile device processors, form factors, graphical interfaces, operating systems, and development environments vary widely.
There are three broadly defined approaches that enterprises commonly use to develop mobile applications. The most straightforward is the thin client approach. The thin client uses a mobile browser to access a server-resident enterprise application. The application relies upon the server’s hardware and software resources (CPU, memory, and operating system etc.). The mobile phone browser simply provides an interface to the application. The thin client requires a continuously active network connection in order to operate.
A related approach is to use a rich Internet application (RIA) framework on the mobile phone such as Java FX, Flash, mobile AJAX or Silverlight. Such frameworks provide an environment on the mobile phone within which developers can deploy more sophisticated applications. This approach blurs the distinction between a simple thin client application and a full-featured thick client application.
The thick client approach is built upon full-featured, smartphone-resident software. The application relies upon the hardware and software resources of the mobile phone. The look and feel of the application is highly dependent upon the mobile device software development kit (SDK). The client uses the network to communicate with remotes servers and databases but it can function without a continuously active network connection using locally stored information. The enterpris must develop server side software that interacts with the smartphone resident thick client.
Enterprises develop thick client applications by using the development environment provided by mobile device manufacturers such as the RIM BlackBerry MDS, the Nokia Symbian OS, and the Apple SDK or by using mobile operating system vendors such as the Microsoft .NET CF for Windows Mobile.
The mobile middleware approach uses an abstraction layer that sits between the native mobile phone hardware/software and the enterprise application. Developers write their application using middleware application programming interfaces (APIs) instead of the native smartphone APIs. This approach improves application portability because the middleware APIs support a broad set of mobile hardware and software environments. The middleware also provides support for diverse back-end servers, databases, and communication systems.
Many of these mobile middleware solutions from companies such as Sybase iAnywhere, Dexterra, and Antenna software provide more than just an abstraction layer. They can also provide cross-platform security and device management features and may also package their own mobile applications (e.g., mobile email and instant messaging).
This post introduced three common approaches to mobile phone development. Each of the three approaches has their challenges and benefits. Part 2 of this series will analyze the challenges and benefits of each approach.