Jump to content

Server (computing): Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
SUN -> Sun
Line 88: Line 88:
<!-- READ THIS FIRST: Do not add commercial links here. They will be removed. -->
<!-- READ THIS FIRST: Do not add commercial links here. They will be removed. -->


*[http://sun.com/ Sun Microsystems]
*[http://www.cs.rice.edu/CS/Systems/ScalaServer/ System support for scalable network servers]
*[http://www.cs.rice.edu/CS/Systems/ScalaServer/ System support for scalable network servers]
*[http://www.kegel.com/c10k.html The C10K problem]
*[http://www.kegel.com/c10k.html The C10K problem]

Revision as of 16:02, 12 September 2006

In information technology, a server is a computer system that provides services to other computing systems—called clients—over a network. The term server can refer to hardware (such as a Sun computer system) or software (such as an RDBMS server).

Description

Servers occupy a place in computing similar to that occupied by minicomputers in the past, which they have largely replaced. The typical server is a computer system that operates continuously on a network and waits for requests for services from other computers on the network. Many servers are dedicated to this role, but some may also be used simultaneously for other purposes, particularly when the demands placed upon them as servers are modest. For example, in a small office, a large desktop computer may act as both a desktop workstation for one person in the office and as a server for all the other computers in the office.

Servers today are physically similar to most other general-purpose computers, although their hardware configurations may be particularly optimized to fit their server roles, if they are dedicated to that role. Many use hardware identical or nearly identical to that found in standard desktop PCs. However, servers run software that is often very different from that used on desktop computers and workstations.

Servers should not be confused with mainframes, which are very large computers that centralize certain information-processing activities in large organizations and may or may not act as servers in addition to their other activities. Many large organizations have both mainframes and servers, although servers usually are smaller and much more numerous and decentralized than mainframes.

Servers frequently host hardware resources that they make available on a controlled and shared basis to client computers, such as printers (print servers) and file systems (file servers). This sharing permits better access control (and thus better security) and can reduce costs by reducing duplication of hardware.

History

Servers have come into being in parallel with computer networks. Networks allow computers to communicate with each other, and an outgrowth of this was the tendency to dedicate some computers to a serving role while other computers (those that interact directly with human users) assume a client role. Server computers and their associated software evolved to fill the server role.

As networks have grown and developed, so have servers; and minicomputers—small computers larger than a desktop computer but more modest than a mainframe—have been largely driven out of existence in consequence, their niche partially disappearing and partially being absorbed into that of servers.

The rise of corporate computer networks and the Internet among ordinary home and office users have provided a very powerful impetus to the development of servers.

Server hardware

Although servers can be built from commodity computer components—particularly for low-load and/or non-critical applications—dedicated, high-load, mission-critical servers use specialized hardware that is optimized for the needs of servers.

For example, servers may incorporate “industrial-strength” mechanical components such as disk drives and fans that provide very high reliability and performance at a correspondingly high price. Aesthetic considerations are ignored, since most servers operate in unattended computer rooms and are only visited for maintenance or repair purposes.

The Wikimedia servers

Because many server tasks are I/O-bound, much of the cost of a server comes from the cost of high-performance disk drives and I/O interfaces. For example, SCSI disk drives configured in RAID arrays to improve performance and reliability are popular in servers despite their high cost; these same configurations would seem prohibitively expensive and complex to most desktop computer users. Although servers usually require large amounts of disk space, smaller disk drives may still be used in a trade-off of capacity vs. reliability.

CPU speeds are far less critical for many servers than they are for many desktops. Not only are typical server tasks likely to be delayed more by I/O requests than processor requirements, but the lack of any graphic user interface in many servers frees up very large amounts of processing power for other tasks, making the overall processor power requirement lower. If a great deal of processing power is required in a server, there is a tendency to add more CPUs rather than increase the speed of a single CPU, again for reasons of reliability and redundancy.

The lack of a GUI in a server (or the rare need to use it) makes it unnecessary to install expensive video adapters. Similarly, elaborate audio interfaces, joystick connections, USB peripherals, and the like are usually unnecessary.

Because servers must operate continuously and reliably, noisy but efficient and trustworthy fans may be used for ventilation instead of inexpensive and quiet fans; and in some cases, centralized air-conditioning may be used to keep servers cool, instead of or in addition to fans. Special uninterruptable power supplies may be used to ensure that the servers continue to run in the event of a power failure.

All servers include heavy-duty network connections in order to allow them to handle the large amounts of traffic that they typically receive and generate as they receive and reply to client requests.

Server software

The major difference between servers and desktop computers is not in the hardware but in the software. Servers often run operating systems that are designed specifically for use in servers. They also run special applications that are designed specifically to carry out server tasks.

Operating systems

The Microsoft Windows operating system is predominant among desktop computers, but in the world of servers, the most popular operating systems—such as FreeBSD, Solaris, and Linux—are derived from or similar to the UNIX operating system. UNIX was originally a minicomputer operating system, and as servers gradually replaced traditional minicomputers, UNIX was a logical and efficient choice of operating system for the servers.

Server-oriented operating systems tend to have certain features in common that make them more suitable for the server environment, such as the absence of a GUI (or an optional GUI); the ability to be reconfigured (in both hardware and software) to at least some extent without stopping the system; advanced backup facilities to permit online backups of critical data at regular and frequent intervals; facilities to enable the movement of data between different volumes or devices in such a way that is transparent to the end user; flexible and advanced networking capabilities; features (such as daemons in UNIX or services in Windows) that make unattended execution of programs more reliable; tight system security, with advanced user, resource, data, and memory protection, and so on. Server-oriented operating systems in many cases can interact with hardware sensors to detect conditions such as overheating, processor and disk failure, and either alert an operator, take remedial action, or both, depending on the configuration.

Because the requirements of servers are in some cases almost diametrically opposed to those of desktop computers, it is extremely difficult to design an operating system that handles both environments well; thus, operating systems that are well suited to the desktop may not be ideal for servers and vice versa. Nevertheless, certain versions of Windows are also used on a minority of servers as are recent versions of the popular Mac OS X (which is Unix-based, and gives users complete access to the Unix operating system) family of desktop operating systems and even some proprietary mainframe operating systems (such as z/OS); but the dominant operating systems among servers continues to be UNIX versions or clones. Even in the case of Linux, a popular UNIX-like operating system frequently used on servers, configurations that are ideal for servers may be unsatisfactory for desktop use, and configurations that perform well on the desktop may leave much to be desired on servers.

The rise of the microprocessor-based server was facilitated by the development of several versions of the Unix operating system to run on the Intel x86 microprocessor architecture, including Solaris, Linux and FreeBSD. The Microsoft Windows family of operating systems also runs on Intel hardware, and versions beginning with Windows NT have incorporated features making them suitable for use on servers.

Whilst the role of server and desktop operating systems remains distinct, improvements in both hardware performance and reliability and operating system reliability have blurred the distinction between these two classes of system, which at one point remained largely separate in terms of code base, hardware and vendor providers. Today, many desktop and server operating systems share the same code base, and differ chiefly in terms of configuration. Furthermore, the rationalisation of many corporate applications towards web-based and middleware platforms has lessened the demand for specialist application servers.

Server applications

Server applications are tailored to the tasks performed by servers, just as desktop or mainframe applications are tailored to their own respective environments.

Most server applications are distinguished by the fact that they are completely non-interactive on the local server itself; that is, they do not display information on a screen and do not expect user input. Instead, they run unobtrusively within the server and interact only with client computers on the network to which the server is attached. Applications of this kind are called daemons in UNIX terminology, and services in Windows terminology.

Server applications are typically started once when the server is booted, and thereafter run continuously until the server is stopped. A given server usually runs the same set of applications at all times, since there is no way for the server to predict when a given service might be requested of it by a client computer. Some server applications in some server systems are automatically started when a request from a client is received, and are then stopped when request has been satisfied.

Servers on the Internet

Almost the entire structure of the Internet is based upon a client-server model. Many millions of servers are connected to the Internet and run continuously throughout the world.

Among the many services provided by Internet servers are: the Web; the Domain Name System; electronic mail; file transfer; instant messaging; streaming audio and video, online gaming, and countless others. Virtually every action taken by an ordinary Internet user requires one or more interactions with one or more servers.

See also