Smarter Client Architecture for Mobile Apps

Considering the growing importance of cellphones in our lives and the need to access enterprise data via these devices, this article by Martyn Mallick makes interesting reading. The focus is on a “mobile database component” and synchronisation.

There are three characteristics of wireless Internet applications that are not present in smart client architectures:

1) Immediate deployment of applications. Wireless Internet applications reside on a server and, as long as the user knows the URL of the application, he can access it immediately. The drawback, of course, is that network connectivity is required to access the server-based content. The introduction of mobile application deployment and management software has made deploying smart client applications much easier, so companies rarely decide to create Internet applications for this reason alone.

2) Simplified enterprise integration. If you have existing Web applications that need to be taken mobile, moving to a smart client architecture can be more challenging than using a Web model. A wireless Web application would be able to reuse the majority of the existing application, including Web servers, business logic and enterprise integration, whereas a smart client application may require components to be rewritten since a Web component is not required. For this reason, the ideal fit is often an offline Web application. This solution provides the best of both worlds in that it still takes advantage of existing Web technology while providing offline access to your Web content. In this type of solution, the Web content is still deployed on the Web infrastructure, but is then synchronized to the local device where it can be viewed even after the network is disconnected.

3) Real-time data access. There are situations where the data used by a mobile worker has to be 100 percent up to date at all times. These applications are few and far between, but when they do occur, a smart client solution will not offer the ‘data freshness’ that you require. Areas where real-time data access may be required include securities trading, information services such as sports scores or weather information, and m-commerce applications.

One way to mitigate this for corporate applications is by using server-initiated synchronization. Essentially, this means that any change to specified data in your enterprise database will initiate a synchronization of the local database on all mobile clients. With poorly designed database schema and synchronization logic, this may result in an uncontrollable number of synchronizations. Take time to properly partition your data to avoid such issues.

Published by

Rajesh Jain

An Entrepreneur based in Mumbai, India.