| Network Servers |
|
A computer, or a software package, that provides a specific kind of service to client software running on other computers. The term can refer to a particular piece of software, such as a WWW server, or to the machine on which the software is running, e.g. "Our mail server is down today, that's why e-mail isn't getting out."
A single server machine can (and often does) have several different server software packages running on it, thus providing many different servers to clients on the network.
It's somehow difficult to give a proper definition of "server", due to the confusion created in the time so far by the different meanings that term had, facing the different evolution of the technologies. The term "server" is commonly used with at least three different meanings:
While we can clearly see the difference between the first definition of "server" (computer) and the other two (applications), it's hard to see the difference between the second definition ("server" as a multi-protocol handler) and the third ("server" as a single protocol handler). Since it's crucial for all developers involved in the Avalon project to share the same common idea of "server", I would like to define a server as a protocol handler. We would, then, have HTTP servers, SMTP servers or POP3 servers, but we cannot use the term MAIL server. What we called the mail server is in fact the union of two (or more) different "server"s (in our example the union of a SMTP and a POP3 server). We can clearly see, anyway, that a POP3 and an SMTP servers will have to share most resources and code to build up a complete mailing system, like, for example, a central repository where messages could be stored. We would then define the union of the SMTP server, the POP3 server and the central messages repository (we could call it Mail Engine) as a Mail "service". |