3.7 Good Architectural Design Tenets
In the following sections, we describe some of the tenets of good architectural design. In practice, it may not be possible to achieve all of the tenets. Nonetheless, you will find that many of the best mobile application architectures meet many of these tenets.
The architectural design must address the business, functional, and user requirements. Without conforming to the requirements, you will not be able to satisfy financial, functional, or usability success criteria.
3.7.2 Technology Independence
In an ideal world, you should develop mobile applications that are as device and platform-independent as possible. This is not always easy or possible, but good applications tend to be written so that they can run on many devices and platforms.
In practice, however, most applications will probably fall short of these paradigms. In all likelihood, you will need to select a preferred device and platform and write your application accordingly. Thus, you will almost certainly have to choose a mobile device such as the HP iPAQ, which uses Microsoft Windows Mobile 2003, or an HP Tablet PC running Microsoft Windows XP Tablet Edition. Alternatively, you may choose a Palm Pilot running Palm OS. Each device and platform has different characteristics that your application must take into account.
3.7.3 High Performance and Availability
The architecture must typically have excellent performance during normal and spike periods in resource demand. For example, for an e-business brokerage trading site, this might be on a heavy stock trading day. If people can be expected to use the site at any given time, the architecture must also be highly available.
The architecture must be scalable to accommodate possibly large increases in the number of users, applications, and functionality. The architecture must typically be designed to easily allow for both horizontal (adding more servers) and vertical (adding faster servers) scaling without adversely affecting any existing applications.
3.7.5 User System Requirements
The architecture should typically handle the widest range and number of users possible. For example, a web application with large graphics to be displayed on a Pocket PC may look beautiful, but if users only possess low-speed modem lines, the performance may not be satisfactory. Thus, the full range of users must be kept in mind, including those with high and low performance systems.