Summary
In this chapter, we've looked at what issues will affect the process view of the architecture document.
When we use a client-server design, with its centralized data source and business objects to act on the data stored there, we quickly need to find a happy medium between the problem of data corruption by server threads, and unacceptably slow and unscalable server performance.
Specifically we've seen:
-
How multi-tasking operating systems introduce multiple processes, and threads within a process, but can also interrupt program execution at any time. The application developer is responsible for making programs thread-safe
-
The need for atomic operations and synchronization to protect shared resources
-
General locking strategies, and those used in the MFC
-
How to avoid deadlock
-
What it takes to be a transaction — ensuring reliability of operations, especially when execution is distributed across multiple objects, machines and datastores
-
The ACID test
-
What help TP systems provide
-
The use of two-phase commit to control diverse resource managers
-
Message queuing and queued transactions
-
Object pooling for scalability
© 1998 by Wrox Press. All rights reserved.