In Computer science client-server is a software architecture model consisting of two parts, client systems and server systems, both communicate over computer network or on the same computer. A client-server application is a distributed system consisting of both client and server software. The clientèles always initiates a connection to the server, while the server process always waits for requests from any client. When both the client process and server process are running on the same computer, this is called a single seat setup.
Another type of related software architecture is known as peer-to-peer, because each host or application instance can simultaneously act as both a client and a server (unlike centralized servers of the client-server model) and because each has equivalent responsibilities and status. Peer-to-peer architectures are often abbreviated using the acronym POP. The client-server relationship describes the relation between the client and how it makes a service request from the server, and how the server can accept these requests, process them, and return the requested information to the linen.
The interaction between client and server is often described consequence diagrams. Sequence diagrams are standardized in the Unified Modeling Language. Both client-server and POP architectures are in wide usage today. The basic type of client-server architecture employs only two types of hosts: clients and servers. This type of architecture is sometimes referred to stow-tier. The two-tier architecture meaner that the client acts as one tier and server process acts as the other tier. The client-server architecture has become one of the basic models of network imputing.
Many types of applications have being written using the client- server model. Standard networked functions such as E-mail exchange, web access and database access, are based on the client-server model. For example, a web browser is a client program at the user computer that may access information at any web server in the world. Contents [hide] * 1 Clients characteristics * 2 Server characteristics * 3 Advantages * 4 Disadvantages * 5 Examples * 6 Other pages Clients characteristics[change] * Always initiates requests to servers. Waits for replies. * Receives replies. * Usually connects too small number of servers at one time. Usually interacts directly with end-users using any user interface such as graphical user interface. Server characteristics[change] * Always wait for a request from one of the clients. * Serve clients requests then replies with requested data to the clients. * A server may communicate with other servers in order to serve a client request. Advantages[change] * In most cases, a client-server architecture enables the roles and responsibilities f a computing system to be distributed among several independent computers that are known to each other only through a network, so one of advantages of this model is greater ease of maintenance.
For example, it is possible to replace, repair, upgrade, or even relocate a server while its clients remain both unaware and unaffected by that change. This independence from change is also referred to as encapsulation. * All the data is stored on the servers, which generally have better security controls than most clients. Servers can better control access and resources, to guarantee that only those clients with the appropriate permissions may access and change data. Since data storage is centralized, updates to that data are much easier to administrators than what would be possible under a POP architecture. Under a POP architecture, data updates may need to be distributed and applied to each “peer” in the network, which is both time-consuming and error-prone, as there can be thousands or even millions of peers. * Many advanced client- server technologies are already available which were designed to ensure security, user friendly interfaces, and ease of use.