This message is a request for service. The sender is the client and the receiver is the server. The receiver will fulfill the service request and perhaps return information to the sender. Often the server must rely on other objects to help it fulfill the service request. It then itself acts as a client to these other objects which act as servers for it.
Control returns to the message sender even if no information is returned.
In the figure on this page each oval represents an object. The arrows represent communication paths. If an object is shown in black it is executing currently. If bullets move along an arrow in the direction of an arrow, the executing object is communicating with another object, which will then become the active object. When that object completes the request, control returns to the original object as indicated by bullets moving along the arrows in the direction opposite the way the arrow is pointing.