Application developers and DBAs face numerous challenges and choices as they design a distributed application. Many, if not most, of these issues are not specific to the particular RDBMS vendor they have selected but are a function of business requirements and other constraints. This chapter takes a step back from Oracle specifics and examines topics common to distributed applications in general, including:
The characteristics of a successful distributed system
The client/server approach
Common solutions to common problems
Before designing a distributed system, you should have a clear understanding of what a distributed system is and what requirements it must meet. In his book An Introduction to Database Systems (Addison-Wesley, 1995), the relational database deity C. J. (Chris) Date states his “fundamental principle of distributed database,” as follows:
To the user, a distributed system should look exactly like a nondistributed system.
Date goes on to enumerate 12 objectives that must be met in order to satisfy this principle, as follows:
No reliance on a single site
Distributed query processing
Distributed transaction management ...