Models in distributed Systems

The basic models for distributed system are Message Passing and Client/Server. Message Passing is the basic Distributed System paradigm for building distributed systems and refers to the communication methods between processes located on different hosts. For their communication, a specific protocol is need. The steps in this communication are that the sender process sends a request and the receiving process answers to it. An example of such communication type is Socket technology of communication between points.
Another model is the Client/Server which is based on communication between two major parts: the client that requests something (ex. Information) and the server that answers it, respective to the request. Generally, this model is an asymmetric one, as number of clients can be diverse. Client/server computing is a result of trends in the 1980s to populate desktops with powerful computers that were connected via LANs to back-end database servers or application servers. It was a model designed to replace the mainframe computing model in which all the processing was done by a centralized system.
Thus, the client processes are the ones who sends request to the server, needing access to resources managed by the server processes. They can be thin or fat clients, which does primarily or only display functions, respective, run some or all of the application logic The Server processes, which have access to the data required by the client (ex: information from the data base), retrieve the answer to the request to the client, managing a set of resources that includes communication. Server programs execute common or complex business logic and it can sore persistent data and provide processing. The steps for performing the retrieving of the answers are:

1. Get the client request, check validity of the request;
2. Process the request;
3. Return the reply to the request, depending on the availability of the requested resource. This is also called the request/reply protocol.
The advantages of the client/server model are:
o Centralization-data access and security are controlled through the server
o Components of the Distributed System are inherent heterogeneous
o Multiple point of failure -any component can fail but the others are still go on
o Scalability- the system can grow in its demands a requests; the system can be scaled horizontally or vertically. Horizontal scaling means adding or removing client workstations with only a slight performance impact. Vertical scaling means migrating to a larger and faster server machine or multi-servers.
o Interoperability- all the network components (clients, servers, network) function together
Also, one should note the disadvantages that this model brings:
o Dependability to the server- if the server stoops functioning, the clients can not access the service unless the application is replicated to other back-up servers
o Expense - for having a dedicated server (file server, application server) one requires initial investment
o Maintenance - large networks can require specialized staff to ensure efficient operation and management over the system
For example, a client can provide a form on which a user (a person working at a data entry terminal, for example) can enter orders for a product. The client sends this order information to the server, which checks the product database and performs tasks needed for billing and shipping. A single server is typically used by multiple clients; for example, hundreds of clients can interact with a few servers that control database access.

Fig.1 Client/Server model of interaction (asymmetric relation)

Another type of network architecture is known as a peer-to-peer architecture because each node (computer in a network) has equivalent responsibilities. Both client/server and peer-to-peer architectures are widely used, and each has unique advantages and disadvantages.