We can describe a pipeline as a sequence of processes tied together by stdout and stdin so that the output of one process becomes the input of the following one. This is a simple form of IPC, commonly known as anonymous pipe, and it is a one-way form of communicating: whatever comes from standard output of the preceding process flows into the standard input of the following one; nothing comes back from the latter to the former.
Let's see an example that will clarify the concept of anonymous pipe, staring with a simple ps command:
zarrelli:~$ ps
PID TTY TIME CMD
1427 pts/0 00:00:00 bash
12112 pts/0 00:00:00 ps
We have a simple listing with some commands: PID, TTY, and CMD. Let's say we want to trim down the output to just PID and CMD. We could alter the output using some ps switches, but who remembers them? It's easier to use something that is capable of mangling...