Servers

In computing, a server can be any device or program that provides information to another device or program (known as a "client"). The term is often used specifically to refer to specialized hardware computers and operating systems that serve a specific function, such as hosting website data or shared files, although virtual servers also exist. The client-server model is a key feature of many computer networks, including the internet.

Overview

ARPANET, the first network of time-sharing computers, was connected in 1969. In subsequent decades, technology developments and the increasing benefits of distributed, shared access spurred network growth, ultimately resulting in the internet and World Wide Web. Most local, national, and global networks rely on servers, which manage network resources for client computers that are connected to it. A server may be a physical computer, a program, or a combination of hardware and software.

In some cases, a system is a dedicated server. In other cases, software servers operate on multipurpose systems. A distributed server is a scalable grouping in which several computers act as one entity and share the work. In general, a network server manages overall network traffic, while specialty servers handle other tasks. CERN httpd (or W3C httpd), which debuted in 1990, is considered to be the first Web server. It was developed by scientists Tim Berners-Lee, Ari Luotonen, and Henrik Frystyk Nielsen at the European Organization for Nuclear Research (CERN). Servers and clients use communication protocols to exchange information to carry out tasks. There are server-to-server and client-server variations.

Some of the many types of servers include:

  • Application servers
  • Computing servers
  • Database servers
  • Domain Name Service (DNS) servers
  • File servers
  • Game servers
  • Mail servers
  • Print servers
  • Proxy servers
  • Web servers
94982046-91580.jpg

Function

The term “server” does not describe a specific type of computer in the same sense that “desktop” or “Windows machine” does. When used in reference to hardware, a server is any computer running a server program, which can—and in practice does—include all configurations and operating systems. Since the 1990s and the increased demand for internet services, there have been more and more computers that have been designed specifically to be used as internet servers. Because they need to run for long periods of time without interruption, they must be durable, reliable, and have uninterruptible power supplies. Typically, hardware redundancy is incorporated, so that if a hard drive fails, another one is automatically put on line—a feature rarely found in personal computers.

There is also a great deal of server-specific hardware, such as water cooling systems, which help reduce heat, and Error-Correcting Code (ECC) memory, which corrects memory errors as they happen, preventing data corruption. Many components are designed to be hot-swappable, meaning that they can be replaced while the server runs—without needing to power it down. Furthermore, ordinary server operations including turning the power on or off can often be conducted remotely; for example, from a home computer. Some system operators maintain watch over multiple servers in multiple locations and physically visit the site only when necessary because of a crisis.

Communication

Sockets are the primary means by which network computers in a network communicate. They are the endpoints of the flow of interprocess communication (IPC) and provide application services. They are also the place where many security breaches take place. Mathematicians and computer scientists study the different socket types and their states to understand how they work and to improve function and security. Servers create sockets on start-up that are in listening state, waiting for contact to be made by client programs. For instance, a Web browser is a client program used to access content from Web servers. Most servers connected to the internet use a protocol known as Transmission Control Protocol (TCP), developed by computer scientists Vinton Cerf and Robert Kahn for ARPANET. An internet socket is referred to by its socket number, a unique integer that includes Internet Protocol (IP) address and socket number. Listening sockets using TCP are usually assigned the remote address 0.0.0.0 and the remote port number 0. TCP servers can serve multiple concurrent clients by creating what is called a “child process” associated with each client and establishing TCP connections between child processes and clients. Each connection uses a unique dedicated socket. Two communicating sockets—the local socket created by the server and the remote socket of the client—are called a “socket pair,” and their activity is referred to as a “TCP session.”

A common feature of Web servers is server-side scripting, which allows Web pages to be created in response to client activity. For instance, a search for a book on Amazon.com results in a unique search results page. Without this capacity, every possible search would need to be conducted in anticipation of client needs.

Bibliography

Chevance, Rene. Server Architectures: Multiprocessors, Clusters, Parallel Systems, Web Servers, and Storage Solutions. Elsevier, 2005.

Dshalalow, Jewgeni H. Frontiers in Queueing Models and Applications in Science and Engineering. CRC Press, 1997.

Gray, Neil A. B. Web Server Programming. Wiley, 2003.

Kirvan, Paul, and Brien Posey. "What Is a Server?" TechTarget, www.techtarget.com/whatis/definition/server. Accessed 3 Dec. 2024.

Motiso, Desmond. "What Is the Client-Server Model? (Components and Benefits)." Indeed, 15 Aug. 2024, www.indeed.com/career-advice/career-development/what-is-client-server-model. Accessed 3 Dec. 2024.