Costs can be lowered by sharing the equipment between several institutions but each set may still spend most of its time laying idle. We can illustrate this with the example of programming a robot to drop a block in a bucket. Students will spend the majority of their time developing a program, during which time the robot will be idle. It will only be used when the students run their program to see how well it works. It is therefore desirable to share one set of equipment between several groups, with some kind of scheduling to determine which group has control.
Users submit a request to the server.
Requests are held in a queue or scheduled according to some criteria. The results of the request are sent back to the user some time later. In our previous example of programming a robot the user would send the program to the server. Once they have reached the front of the queue, their job is processed and the results returned. Some systems fulfil requests a long time after they are submitted so they cannot expect the user to wait around.