1.4 Communicating devices
We would like you now to think about a simple IT process you are already familiar with – the process that starts when you click the Print icon on your computer's word-processor screen. For now, imagine that there is simply a point-to-point connection between your computer and the printer (as indeed there may well be) and that the printer is not being shared with other computers. So here there are two devices – your computer and your printer – each communicating with the other. The printer itself is controlled by a processor and it has memory, so you can think of it as an additional computing element. In order to 'talk' to each other, your computer and printer need some kind of communication link between them. They need protocols (rules) to establish a common language and to control the exchange of data (what to say and when to 'speak'). At a more sophisticated level they might also need some way of storing data (for example, what is known as a 'print queue') and some way of recognising and coping with errors.
Figure 1 shows a block diagram representing the computer/printer system. The communication link is point-to-point so there is no requirement for network routing, or for storing or manipulating the data as it travels through the communication link. The computer receives the print command from the user and sends data over the communication link to the printer. The paper copy produced by the printer is an output to the user.
It's likely that the data will need to be held in a buffer – a dedicated portion of the printer's memory – before being processed. Notice how all but one of the arrows between the elements in Figure 1 are shown in two directions. This indicates a communication path from the printer to the computer as well as from the computer to the printer. For example, at some point the buffer may become full and the printer will need to signal to the computer to stop sending data for a while. The final output from the printer is in one direction only.
Figure 2 expands the arrangement of Figure 1 to show a representation of a network where two computers share the services of a printer. Notice how there may now be a need for routing, storing and manipulating data as it travels through the communication links. (This is indicated by the lighter-shaded text in the network box.)
Activity 6: exploratory
Think about the additional complications of receiving and sending the necessary data between the three devices shown in Figure 2. What is needed to avoid confusion?
In order for two computers to share one printer, it is important to be able to identify each device so that data can be correctly directed to the intended destination. Protocols are needed to establish how the printer will be shared so that one user doesn't 'hog' the resource, and to establish some way of sharing the communication link (the network) so that data from different devices doesn't become jumbled.
Now imagine that, instead of just two computers trying to share the printer, there are ten, and they are in a busy sales office. The office might use a dedicated computer (a print server) to handle the data flows between the printer and the users' computers. What happens when the printer or print server breaks down, when the network breaks down or becomes so congested that it can no longer cope with the volume of data being transmitted? Perhaps we need two or more printers, a standby server and an alternative way of routing data to the printers? So there are issues to think about like reliability, cost, capacity and speed.
Maybe you hadn't really thought of the example of computers sending data to printers as a system where devices speak to each other without human intervention. After all, it was a human who initiated the exchange by clicking on the Print icon. It also probably seems quite a long way away from the sort of systems being discussed in the extract you read at the beginning of this section. But examining and identifying the building blocks of some simple systems in this way can provide us with tools and a framework to examine more complex systems of the kind hinted at in the article.
In the next few sections you'll be looking at some of these building blocks. We shall also identify some of the human issues that can arise. For example, how does a system of devices sending data to each other affect the way we live? Is it empowering or disempowering? Does it favour some people above others? Does it threaten or enhance our rights and privacy?
Activity 7: self-assessment
Write down two reasons why networked devices need protocols when communicating with each other.
Networked devices need protocols when communicating with each other to:
establish a common language;
control use of the communication link.