1. A method comprising: receiving a first request from a client computing system to run an identified legacy application task; causing a first host session to be allocated on the host computing system; assigning a task identifier to the allocated first host session and associating the task identifier with the legacy application task identified in the first request; causing the legacy application task identified in the first request to be executed in the allocated first host session on the host computing device; forwarding to the client computing system the task identifier assigned to the legacy application task identified in the first request; receiving a second request from a client computing system to run an identified legacy application task; determining whether a host session has already been allocated on the host computing system for executing the legacy application task identified in the second request; and returning to the client computing system an output data stream from the legacy application task executing in the allocated first host session to fulfill the second request.