Architecture, Design, and Technology Selection for Mobile Applications
Reza B'Far, Roy T. Fielding · Cambridge University Press eBooks · 2004
We're gonna be rich! Jos Bergmans (in 1999 while holding shares of AdForce, in which he would not be vested until after the company's demise during the post-Internet boom) INTRODUCTION Much of what we have discussed in this text has been focused on design problems and high-level approaches to building mobile applications. We have intentionally stayed away from a more syntactical-driven approach because languages and tools are evolving rapidly in the space of mobile applications. We have looked at a variety of design patterns and architectural solutions that address the problems associated with mobile applications. In this chapter, we are going to take a step back, look at some very high level architectures, and discuss how we should use them in building our mobile applications. In an abstract manner, a software system is to the domain problem it solves what the solution may be to a math problem. Through the years, mathematicians have refined “canonical” solutions to a wide variety of mathematical problems. “Canonical,” as defined by the Webster dictionary, is an adjective for something “conforming to a general rule or acceptable procedure.” Much of the purpose of various fields of engineering is to define these canonical “best practices and ways” of doing things for given problems. A large part of the field of software engineering involves defining canonical solutions for developing software applications so that every problem in building a software application does not have to be solved from scratch.