8.11 The ClientServer Paradigm

8.11 The Client/Server Paradigm

The terms "client" and "server" are applied in many ways to many different kinds of software applications. The client/server paradigm divides a patten of work between two parties represented by either processes or threads. One party, the client, makes requests for data or for action. The other party, the server, fulfills the requests. The roles of requester and request satisfier are common themes found in many different software applications. The terms client/server are used at the operating-system level to describe many producer “consumer relationships that can occur between processes. For instance, when a fifo is used to connect two processes, one of the processes takes on the role of server and the other of client. Sometimes a client can take on the role of server when it receives requests. Similarly, a server may take on the role of client when it needs to make requests of another program. The client/server configuration is the most fundamental architecture for distributed programming. The type of server involved usually characterizes the entire application. Table 8-6 shows the most commonly found types of software servers.

Blackboards and multiagent systems are the two primary architectures that we use in this book to support parallel and distributed programming. We place special emphasis on the logic server defined in Table 8-6. The logic server is a special type of an application server, and is used to perform problem solving that requires intense symbolic and possibly parallel computation. The process of inference and deduction is often processor intensive and can benefit from parallel processors. Usually the more processors available to logic servers, the better. The Agent and Blackboard architectures that we discuss in Chapter 12 and 13 rely on the notion of distributed logic servers that can cooperatively solve problems over a network, an intranet, or the Internet. Although the Blackboard and Agents form more of a peer-to-peer architecture, they are clients to the logic servers that they access. Distributed objects are used to implement all of the components involved. CORBA is used to facilitate the network programming.



Parallel and Distributed Programming Using C++
Parallel and Distributed Programming Using C++
ISBN: 0131013769
EAN: 2147483647
Year: 2002
Pages: 133

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net