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. In a general sense, a controller can be thought of as something or someone that interfaces between two systems and manages communications between them.
Here are a few examples of controllers:
A graphics card is an integrated circuit card in a computer or, in some cases, a monitor that provides digital-to-analog conversion, video RAM, and a video controller so that data can be sent to a computer's display.
A game controller is an input device for playing games.
A network interface card (NIC) is a computer circuit board or card that is installed in a computer so that it can be connected to a network.
A WAN interface card (WIC) is a specialized network interface card that allows devices to connect to a wide area network.
An application delivery controller is a data center network device that helps manage client connections to complex Web and enterprise applications.
A baseboard management controller (BMC) is a specialized service processor that monitors the physical state of a computer, network server or other hardware device using sensors and communicating with the system administrator through an independent connection.
A session border controller (SBC) is a device or application that governs the manner in which calls, also called sessions, are initiated, conducted and terminated in a VoIP (Voice over Internet Protocol) network.
Primary domain controller (PDC) and backup domain controller (BDC) are roles that can be assigned to a server to manage access to a set of network resources (applications, printers, and so forth) for a group of users.