All Topics  
Client-server

 

   Email Print
   Bookmark   Link






 

Client-server



 
 
The client-server software architecture
Software architecture

The software architecture of a program or computing system is the structure or structures of the software system, which comprise software components, the externally visible properties of those components, and the relationships between them....
 model distinguishes client
Client (computing)

A client is an Application software or system that accesses a remote service on another computer system, known as a Server , by way of a Computer network....
 systems from server
Server (computing)

A server is a computer program that provides services to other computer programs , in the same or other computer. The physical computer that runs a server program is also often referred to as server....
 systems, which communicate over a computer network
Computer network

A computer network is a group of interconnected computers. Networks may be classified according to a wide variety of characteristics. This article provides a general overview of some types and categories and also presents the basic components of a network....
. A client-server application is a distributed system comprising both client and server software. A client software process may initiate a communication session, while the server waits for requests from any client.

nt-server describes the relationship between two computer programs in which one program, the client program, makes a service request to another, the server program.






Discussion
Ask a question about 'Client-server'
Start a new discussion about 'Client-server'
Answer questions from other users
Full Discussion Forum



Encyclopedia


The client-server software architecture
Software architecture

The software architecture of a program or computing system is the structure or structures of the software system, which comprise software components, the externally visible properties of those components, and the relationships between them....
 model distinguishes client
Client (computing)

A client is an Application software or system that accesses a remote service on another computer system, known as a Server , by way of a Computer network....
 systems from server
Server (computing)

A server is a computer program that provides services to other computer programs , in the same or other computer. The physical computer that runs a server program is also often referred to as server....
 systems, which communicate over a computer network
Computer network

A computer network is a group of interconnected computers. Networks may be classified according to a wide variety of characteristics. This article provides a general overview of some types and categories and also presents the basic components of a network....
. A client-server application is a distributed system comprising both client and server software. A client software process may initiate a communication session, while the server waits for requests from any client.

Description

Client-server describes the relationship between two computer programs in which one program, the client program, makes a service request to another, the server program. Standard networked functions such as email exchange, web access and database access, are based on the client-server model. For example, a web browser
Web browser

A Web browser is a application software which enables a user to display and interact with text, images, videos, music, games and other information typically located on a Web page at a website on the World Wide Web or a local area network....
 is a client program at the user computer that may access information at any web server in the world. To check your bank account from your computer, a web browser client program in your computer forwards your request to a web server program at the bank. That program may in turn forward the request to its own database client program that sends a request to a database server at another bank computer to retrieve your account balance. The balance is returned to the bank database client, which in turn serves it back to the web browser client in your personal computer, which displays the information for you.

The client-server model has become one of the central ideas of network computing
Network computing

Network computing refers to computers working together over a computer network as opposed to stand alone computers like laptops and home computers....
. Most business applications being written today use the client-server model. So do the Internet's main application protocols, such as HTTP, SMTP, Telnet
TELNET

Telnet is a network protocol used on the Internet or Local Area Network connections. It was developed in 1969 beginning with RFC 15 and standardized as Internet Engineering Task Force STD 8, one of the first Internet standards....
, DNS
Domain name system

The Domain Name System is a hierarchical naming system for computers, services, or any resource participating in the Internet. It associates various information with domain names assigned to such participants....
, etc. In marketing, the term has been used to distinguish distributed computing by smaller dispersed computers from the "monolithic" centralized computing of mainframe computers. But this distinction has largely disappeared as mainframes and their applications have also turned to the client-server model and become part of network computing.

Each instance of the client software can send data request
Request

selfref|For Wikipedia related requests, see...
s to one or more connected servers. In turn, the servers can accept these requests, process them, and return the requested information to the client. Although this concept can be applied for a variety of reasons to many different kinds of applications
Application software

Application software is any tool that functions and is operated by means of a computer, with the purpose of supporting or improving the software user 's work....
, the architecture remains fundamentally the same.

The most basic type of client-server architecture
Software architecture

The software architecture of a program or computing system is the structure or structures of the software system, which comprise software components, the externally visible properties of those components, and the relationships between them....
 employs only two types of hosts: clients and servers. This type of architecture is sometimes referred to as two-tier. It allows devices to share files and resources. The two tier architecture means that the client acts as one tier and application in combination with server acts as another tier.

These days, clients are most often web browser
Web browser

A Web browser is a application software which enables a user to display and interact with text, images, videos, music, games and other information typically located on a Web page at a website on the World Wide Web or a local area network....
s, although that has not always been the case. Servers typically include web server
Web server

The term web server can mean one of two things:# A computer program that is responsible for accepting Hypertext Transfer Protocol requests from clients , and Server them HTTP responses along with optional data contents, which usually are web pages such as Hypertext Markup Language documents and linked objects ....
s, database server
Database server

A database server is a computer program that provides database services to other computer programs or computers, as defined by the client-server software modeling....
s and mail servers. Online gaming is usually client-server too. In the specific case of MMORPG
MMORPG

A massively multiplayer online role-playing game is a genre of computer role-playing games in which a large number of player interact with one another in a virtual world....
, the servers are typically operated by the company selling the game; for other games one of the players will act as the host by setting his game in server mode.

The interaction between client and server is often described using sequence diagram
Sequence diagram

A sequence diagram in Unified Modelling Language is a kind of interaction diagram that shows how processes operate with one another and in what order....
s. Sequence diagrams are standardized in the Unified Modeling Language
Unified Modeling Language

Unified Modeling Language is a standardized general-purpose modeling language in the field of software engineering.UML includes a set of graphical notation techniques to create abstract models of specific systems....
.

When both the client- and server-software are running on the same computer, this is called a single seat setup.

Specific types of clients include web browser
Web browser

A Web browser is a application software which enables a user to display and interact with text, images, videos, music, games and other information typically located on a Web page at a website on the World Wide Web or a local area network....
s, email clients, and online chat
Online chat

Online chat can refer to any kind of communication over the Internet, but is primarily meant to refer to direct one-on-one chat or text-based chat room , using tools such as instant messengers, Internet Relay Chat, talkers and possibly MUDs....
 clients.

Specific types of servers include web server
Web server

The term web server can mean one of two things:# A computer program that is responsible for accepting Hypertext Transfer Protocol requests from clients , and Server them HTTP responses along with optional data contents, which usually are web pages such as Hypertext Markup Language documents and linked objects ....
s, ftp servers, application server
Application server

An application server, in an Multitier architecture, is a server that hosts an Application programming interface to expose business logic and business processes for use by third-party Business software....
s, database server
Database server

A database server is a computer program that provides database services to other computer programs or computers, as defined by the client-server software modeling....
s, mail servers, file server
File server

In computing, a file server is a computer attached to a network that has the primary purpose of providing a location for the shared storage of computer files that can be accessed by the workstations that are attached to the computer network....
s, print server
Print server

A print server, or printer server, is a computer or device that is connected to one or more Computer printer and to Client s over a Computer network, and can accept print jobs from the computers and send the jobs to the appropriate printers....
s, and terminal server
Terminal server

A terminal server is a specialized computer which aggregates multiple communication channels together. Because these channels are bidirectional, two models emerge: Multiple entities connecting to a single resource, and a single entity connecting to multiple resources....
s. Most web service
Web service

A Web service is defined by the W3C as "a software system designed to support interoperability Machine to Machine interaction over a computer network"....
s are also types of servers.

Comparison to Peer-to-Peer architecture

Another type of network architecture is known as peer-to-peer
Peer-to-peer

A peer-to-peer computer network uses diverse connectivity between participants in a network and the cumulative bandwidth of network participants rather than conventional centralized resources where a relatively low number of Server s provide the core value to a service or application....
, because each host or instance of the program can simultaneously act as both a client and a server, and because each has equivalent responsibilities and status. Peer-to-peer architectures are often abbreviated using the acronym P2P.

Both client-server and P2P architectures are in wide usage today. You can find more details in [ftp://ftp.tik.ee.ethz.ch/pub/students/2002-2003-Wi/SA-2003-16.pdf Comparison of Centralized (Client-Server) and Decentralized (Peer-to-Peer) Networking]. both client server and a2dp will work on windows and linex

Comparison to Client-Queue-Client architecture

While classic Client-Server architecture requires one of the communication endpoints to act as a server, which is much harder to implement, Client-Queue-Client
Client-Queue-Client

Client-Queue-Client software architecture, also known as Passive Queue architecture, consists of two or more clients , and one or more server , which acts as the passive queue....
 allows all endpoints to be simple clients, while the server consists of some external software, which also acts as passive queue (one software instance passes its query to another instance to queue, e.g. database, and then this other instance pulls it from database, makes a response, passes it to database etc.). This architecture allows greatly simplified software implementation. Peer-to-Peer architecture was originally based on Client-Queue-Client concept.

Advantages

  • In most cases, a client-server architecture enables the roles and responsibilities of a computing system to be distributed among several independent computers that are known to each other only through a network. This creates an additional advantage to this architecture: 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
    Information hiding

    Information hiding in computer science is the principle of hiding of design decisions in a computer program that are most likely to change, thus protecting other parts of the program from change if the design decision is changed....
    .
  • All the data is stored on the servers, which generally have far greater 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 far easier to administer than what would be possible under a P2P paradigm. Under a P2P 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 mature client-server technologies are already available which were designed to ensure security, 'friendliness' of the user interface, and ease of use.
  • It functions with multiple different clients of different capabilities.
  • People in the field of information system can use client/server computing to make their jobs easier.
  • Reduces the total cost of ownership.
  • Increases Productivity
  • End User Productivity
  • Developer Productivity


Disadvantages

  • Traffic congestion on the network has been an issue since the inception of the client-server paradigm. As the number of simultaneous client requests to a given server increases, the server can become severely overloaded. Contrast that to a P2P network, where its bandwidth actually increases as more nodes are added, since the P2P network's overall bandwidth can be roughly computed as the sum of the bandwidths of every node in that network.
  • The client-server paradigm lacks the robustness of a good P2P network. Under client-server, should a critical server fail, clients’ requests cannot be fulfilled. In P2P networks, resources are usually distributed among many nodes. Even if one or more nodes depart and abandon a downloading file, for example, the remaining nodes should still have the data needed to complete the download


See also

  • Hybrid client
  • Inter-server
    Inter-server

    In computing, inter-server is a technical term used in network protocol design to refer to the extension of the client-server model by having parts of a protocol which are only exchanged between the Server s....
  • Mainframe computer
    Mainframe computer

    Mainframes are computers used mainly by large organizations for critical applications, typically bulk data processing such as census, industry and consumer statistics, Enterprise Resource Planning, and financial transaction processing....
  • Mobile software
    Mobile software

    Mobile software is designed to run on handheld computers, personal digital assistants , enterprise digital assistants , smartphones and cellphones....
  • Name server
    Name server

    In computing, a name server consists of a program or computer Server that implements a name-service protocol . It will normally associative array a human-recognisable identifier of a Hostname to its computer-recognisable identifier , and vice versa....
  • Push technology
    Push technology

    Push technology, or server push, describes a style of Internet-based communication where the request for a given transaction originates with the publisher or central server ....
  • Pull technology
    Pull technology

    Pull technology or client pull is a style of network communication where the initial request for data originates from the client, and then is responded to by the server....
  • Servent
    Servent

    In general a servent is a peer-to-peer Computer networking Node , which has the functionalities of both a Server and a client . This is a portmanteau derived from the terms Server and client ....
  • Standalone server
    Standalone server

    Standalone servers are compilations of programs that run on a single PC, but emulates what the same set of programs will do when run on a Server over the Internet....
  • Thin client
    Thin client

    A thin client is a client computer or client software in client-server architecture networks which depends primarily on the central Server for processing activities, and mainly focuses on conveying input and output between the user and the remote server....