Application partitioning refers to deploying different components of an application at various locations. For example, an order entry application may consist of:
Data entry screens on order entry clerks’ PCs
Bar code scanners collecting shipping information at the fulfillment center
A web server hosting management reporting
Business rule enforcement via stored procedures in the database
The order entry application is the sum of all of these parts. The components of a partitioned, or tiered, application always fall into one of three broad categories: user interface, business logic, or data access logic.
As you design a distributed database, you must make decisions about where to locate different types of processing. Some of the choices are obvious: bar code data collection has to occur where the bar codes are. But in other cases, the decision is not so obvious. Where should we enforce the requirement that customers cannot place new orders if their accounts are more than 90 days in arrears? What factors should you consider when you make these choices?
Actually, application partitioning entails both a hardware level and a software (or logical) level. At the hardware level, we decide what equipment is best suited for various portions of the application. And at the logical level, we decide where business rules will be enforced, how the user interface will work, and what data access methods we will provide. The logical application partitioning always precedes ...