Who opens pipes in USB communication?
This is all in the USB spec, of course.

In USB, pipes aren't really "opened".  During configuration, the device tells the host what endpoints it can talk what protocol over.  Then host then sends data to or request data from endpoints as it sees fit.

For details, read the USB spec.