In a general sense, a controller can be thought of as something or someone that interfaces between two systems and manages communications between them.
A controller, in a computing context, is a hardware device or a software program that manages or directs the flow of data between two entities.
In computing, controllers may be cards, microchips or separate hardware devices for the control of a peripheral device.