Welcome!

SOA & WOA Authors: Frank Huerta, Gary Kaiser, Dana Gardner, Elizabeth White, Michael Thompson

Related Topics: Java, Wireless, SOA & WOA, AJAX & REA

Java: Article

Patterns of Enterprise Mobility

Enterprises must decide the appropriate pattern for mobile application development

With the onslaught of mobile devices and platforms from multiple vendors, the current technology underpinnings of mobility solutions are in a state of flux. With the hype surrounding the hardware and software offerings across the mobility solutions, it's a challenge for enterprises to differentiate between the offerings and also to plan for enterprise mobility strategies.

Across the solutions, however, there are four distinct patterns that have emerged, which are fundamental to the underlying architecture of various mobility solutions. Each of these patterns solves a broad use case and has their own advantages and disadvantages.

Understanding these patterns enables enterprises to evaluate multiple solution offerings, compare the pros and cons and also determine a mix of technologies that they can adopt for strategic mobile offerings.

This article presents multiple broad patterns that emerge from the various offerings currently in the market and compares and contrasts the advantages they offer and areas in which they lack.

Web 2.0-Based Applications
These applications are deployed on the server side, like the traditional JEE and .NET applications, except that the delivery channel is a mobile with limited screen space. Such applications need to take care of different resolutions of various mobile clients, but are otherwise "independent" of the final mobile device. The challenge here is to fit the content on the various screen sizes and allow for a reflow of elements should the size be different from the planned resolution.

The downside to a web application is that they would not be able to utilize the platform-specific features like accelerometer or interaction with a camera and other advanced hardware of the underlying hardware. This limitation is partially removed if HTML5 is used for mobile application development.

Native Applications
Native applications are separately installed on the mobile device. They are specifically created using the SDK of the target platform. Various examples are:

  • iPhone: This uses iPhone OS SDK
  • Android: Spawned by Google, this is a Java library to develop widget and applications for android phones
  • BlackBerry SDK: This is used to create applications for BlackBerry
  • Samsung Bada, Nokia/Intel Maemo are other OSes that are in the market

Native applications provide the maximum performance for an application, but have to be created individually for different platforms.

Web Standards-Based Native Applications
This has been pioneered by Web OS, whereby the application is developed using web standards of JavaScript, CSS, HTML 4 & 5. The application is then compiled into the native application. These have the benefit of reusing the existing standards as well as creating high performing native applications that can take advantage of the hardware-specific features. Windows, 8 for example, will utilize the same model to create desktop-based applications using HTML5.

These applications provide performance, which is midway between the web and native applications.

Cross-Platform Applications
These applications are developed using technologies such as Java or Flash. The code is compiled into byte code that runs in its own virtual machine. For example, the Java code runs in a Java Virtual Machine, while the Flash Code runs in an ActionScript Virtual Machine.

These virtual machines are created for all platforms, making the applications truly cross platform.

There are challenges in this approach due to conflicting commercial interests. Apple, for example, has banned Flash applications to be run on its platform.

These applications would need the appropriate underlying hardware to run the respective virtual machines.

Conclusion
Enterprises must decide the appropriate pattern for mobile application development as part of a strategic alliance with any mobile partner. This should also be aligned with the long-term vision of the enterprise and the underlying mobile platforms it needs to support.

More Stories By Mahesh K Punjabi

Mahesh K Punjabi is a senior technology architect with Infosys Technologies Ltd. He has extensive experience designing enterprise applications using Java and multitude of RIA technologies including Flex and GWT. His other passions include photography and speaking with Toastmasters' clubs.