Chapter 5. Designing a Distributed System
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
Data partitioning
Application partitioning
The client/server approach
Common solutions to common problems
We introduced some of these topics in Chapter 1. Chapter 6, discusses these issues in greater detail in the context of the Oracle RDBMS.
Characteristics of a Distributed System
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:
Local autonomy
No reliance on a single site
Continuous operation
Location transparency
Fragmentation independence
Replication independence
Distributed query processing
Distributed transaction management ...
Get Oracle Distributed Systems now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.