the implementation of an output stream and an input stream.
All data written through the outputstream is buffered until it is
read again from the input stream. Often two different threads access
input and outputstream.
With the pipe-service, an outputstream can be converted into an
input stream at the cost of an additional buffer.