Charlie engine communicates with client in a standard way (HTTP) transparent way to run application logic on: client (engine installed on client) intermediate layer (engine installed on proxy server) server (engine installed on server)