Controllers are used as server communication layer for a screen to fetch data from a remote server.
Controllers map a mashup layer on the server to a screen on the web layer. Controllers also map the screen namespaces on a client to a mashup layer input and output on a server. Controllers have both server side and client side components. A server side component of the controller is an XML file with mashup reference definition. Whereas, a client side controller component provides a logic to process the output from a server.