consider the case where a client application wishes to read a file. normally this would require one message to the kernel to find the file server, then three additional messages to the file server itself - one to resolve the file name into an object id, another to open that id, then finally another to read the file. using vanguard's chaining, a single message could be constructed by the client that contained all of these requests. the message would be sent to the kernel, and then passed off to the file server who would handle all three requests before finally returning data.