We are familiar with ways to get information in the non-network world. We can go to a library, or buy a book in a bookshop. We can telephone companies or individuals by looking up their names in a phonebook. We can sit around and watch TV or listen to the radio.
In the networked world, there are a number of ways of carrying out the same kinds of activities, using programs that run on a PC or workstation to access information servers in the network that hopefully hold the knowledge we seek.
Information on the net used to be about as hard to retrieve as computers were to use. Nowadays it is usually pretty easy if you can find the information. First you have to know what kind of server holds it (its a bit like knowing whether a written item is in a reference book, a novel, a magazine, newspaper or shopping list). We illustrate the array of available information servers as seen from a very high level view of layered services in figure 2.1.
Different kinds of information services have different models of use and different ways they hold information. Almost all fit into the ``Client/Server'' model that has become widespread in distributed computing.
Client/Server communication is quite easy to understand in terms of roles, and is very closely analogous to what happens in a shopping situation. An assistant in a shop awaits a customer. The assistant doesn't know in advance which customer might arrive (or even how many - the store manager is supposed to make sure that enough assistants are employed to just about cope with the maximum number of shoppers arriving at any one time). A server on the network is typically a dedicated computer that runs a program called the server. This awaits requests from the network, according to some specified protocol, and servers them, one or more at a time, without regard for who they come from.
There are a variety of refinements of this model, such as requiring authentication or registration with the server before other kinds of transactions can be undertaken, but almost all the basic systems on the Internet work like this for now.
We can categorise information servers along a number of different axes:
Synchronous servers respond as you type/click at your computer. Asynchronous ones save up their answers and return them sometime later. Sometimes, your system will actually not even send the request for information to the server until you have finished composing the whole thing, or even later, to save time (and possibly money, since night-time network access may be cheaper and or faster).
Some servers allow you to move from one piece of information to another. Typically, the managers/keepers have structured the information with links, or else the information is hierarchical (like most large organisations' job structures or payrolls). Other servers allow you to search for particular items by giving keywords. Usually, this means that the managers of the information have created indexes, although sometimes, it just means that the server is running on a very fast computer that can search all through the data. This latter approach is becoming increasing impossible as the quantity of information kept online grows to massive proportions.
Some information servers hold only the information entered at their site, and maybe have links for the user to follow to other servers at other sites. Other systems copy the information around at quiet times, so that all servers are replicas of each other. This means that it doesn't matter which server you access in the latter case, so you might as well go for the nearest or cheapest (likely to be both).