There are many software architectures that support concurrency. The correct architecture needs to be matched with the WBS (Work Breakdown Structure) of a piece of software. Not all parallel and distributed architectures are created equal. While some distributed architectures would work fine in a Web environment, they would fail immediately in a real-time environment. For instance, distributed architectures that support long latency times that would be acceptable in a Web environment are unacceptable for many real-time environments. Compare the distributed processing in a Webbased e-mail system to the distributed processing that takes place with banking ATMs (automated teller machines). Latency that is present in many e-mail systems would simply be unacceptable in real-time systems such as ATMs. Certain distributed architectures (some asynchronous models) manage latency times better than others. Care must also be taken to select the proper parallel processing architectures. For instance, vector processing techniques may work well for certain mathematical and simulation problems, but are ineffective when applied to multiagent planning algorithms. Table 2-2 shows commonly found software architectures that support parallel and distributed programming. The four basic models listed in Table 2-2 and their variations provide the basic foundations for all the concurrency architectures (i.e., agent, blackboard, object-oriented) that we discuss in this book. It is necessary to become familiar with each of these models and their applications to parallel and distributed programming. We provide an introduction to these models and the bibliography contains material that covers more advanced treatment of each of these models. It is best to find the natural or inherent parallelism in the work being done or in the solution to a problem. The architecture chosen should match this natural or inherent parallelism as closely as possible. For instance, the parallelism in a solution may be better described using a peer-to-peer model, where all workers are considered equal, as opposed to a boss worker model, where there is a master process managing all the other processes as subordinates . Table 2-2. Commonly Found Software Architectures that Support Parallel and Distributed Programming
|