What is a server?


I was recently asked by someone who's involved in an implementation of a database application what people mean when they talk about a 'server'?


Obviously, this is an SME learning to speak Geek :)

Here's how I explained it ...

First, the term may be context - sensitive. The speaker may be referring to a computer or to a software program.

Most of the time the reference is to software - a program (also called an "application")  that runs on a computer; the program provides some service that a client has requested.

There are several main types of servers. Or, to be more precise, server applications. You're using one of the most familiar right now - a web server ( software such as Apache, JBoss, Resin, Tomcat, among others). Web browsers are clients of a web server - when you click a link, the web browser finds the web server that has that page, and the web server 'serves' the page to the browser.

Some other types of servers are file servers and database servers.  These are programs which handle client requests for files or database operations.

It's a little confusing, but a single request from a client may result in more than one server getting involved. For example, often when you use your browser to look up some information online, your browser connects to a web server, which in turn becomes a client of one or more database servers which look up the data, give it to the web server, which in turn returns it to you.

In fact - that's what happened when you requested this page. The text of this page actually resides in a database and was retrieved by a request from this site's web server.

When the context implies we're talking about a computer, the simplest way to think about it is as 'the computer on which the server software runs'. And, bear in mind that a single computer can run more than one program at a time. So, a single computer may be running several servers ( in fact, mine is running a web server and a database server as you read this). Sometimes for performance or management convenience a server(computer) is configured to run only one server(program). In that case, the program has all the computing, network and storage of the 'dedicated server' all to itself.

 
Copyright © 2009 Adaptive Technology, LLC. All Rights Reserved.