As the name implies, clients and servers are two separate logical entities that work together over a network to accomplish a task. All c...
As the name implies, clients and servers are two separate logical entities that work together over a network to accomplish a task.
All client server systems have the following characteristics:
Service: Client/Server is primarily a relationship between processes running on separate machines. The server process is a producer of services and the client is a consumer of services. Client/server provides a clean separation of function based on the idea of service.
Shared Resources: A server can service many clients at the same time and regulate their access to shared resources.
Asymmetrical Protocols: There is a many-to-one relationship between clients and server. Clients always initiate the dialog by requesting a service. Servers are passively awaiting requests from the clients.
Transparency of Location: The server is a process that can reside on the same machine as the client or on a different machine across a network. Client/server software usually hides the location of the server from the client by redirecting the server calls when needed. A program can be a client, a server or both.
Mix and match: An ideal client/server software is independent of hardware or operating system software platforms.
Message based exchanges: Clients and servers are loosely coupled systems that interact through a message passing mechanism. The message is the delivery mechanism for the service request and replies.
Encapsulation of services: The server is a ‘specialist’. A message tells the server, what service is requested? It is then up to the server to determine how to get the job done. Servers can be upgraded without affecting the clients as long as the published message interface is not changed.
Scalability: Client/server systems 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 multiservers.
Integrity: The server code and server data is centrally managed, which results in cheaper maintenance and guarding of shared data integrity. At the same time, the clients remain personal and independent
All client server systems have the following characteristics:
Service: Client/Server is primarily a relationship between processes running on separate machines. The server process is a producer of services and the client is a consumer of services. Client/server provides a clean separation of function based on the idea of service.
Shared Resources: A server can service many clients at the same time and regulate their access to shared resources.
Asymmetrical Protocols: There is a many-to-one relationship between clients and server. Clients always initiate the dialog by requesting a service. Servers are passively awaiting requests from the clients.
Transparency of Location: The server is a process that can reside on the same machine as the client or on a different machine across a network. Client/server software usually hides the location of the server from the client by redirecting the server calls when needed. A program can be a client, a server or both.
Mix and match: An ideal client/server software is independent of hardware or operating system software platforms.
Message based exchanges: Clients and servers are loosely coupled systems that interact through a message passing mechanism. The message is the delivery mechanism for the service request and replies.
Encapsulation of services: The server is a ‘specialist’. A message tells the server, what service is requested? It is then up to the server to determine how to get the job done. Servers can be upgraded without affecting the clients as long as the published message interface is not changed.
Scalability: Client/server systems 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 multiservers.
Integrity: The server code and server data is centrally managed, which results in cheaper maintenance and guarding of shared data integrity. At the same time, the clients remain personal and independent