A method of managing utilisation of computational resources in a networked computer architecture comprising at least one client device, a plurality of server devices, and a resource controller; the at least one client device being operable to run one or more client applications; and each server device comprising at least one data flow engine; wherein the method comprises: allocating, by said resource controller, a plurality of server devices to a client application for data processing; providing a virtual resource layer (150, 152), comprising an intra-server virtual resource layer and an inter-server virtual resource layer, and operable to allocate the data flow engine of one or more of the plurality of server devices to form one or more virtual processing resources, wherein the intra-server virtual resource layer is operable to allocate the data flow engine of one or more of the plurality of server devices to form one or more server device-specific virtual processing resources and the inter-server virtual resource layer is operable to enable said virtual processing resources to be accessible directly by the one or more client applications; assigning, by said resource controller, control information to said client application, said control information specifying a weighting for each server device, the weighting determining the proportion of a data processing workload to be assigned to each of the server devices allocated to said client application; sending the control information to the client application; sending, directly from said client application to said server devices, said data processing workload, wherein the data processing workload is sent to each server device in accordance with said control information; monitoring, by said resource controller, the relative workload of each of the plurality of server devices allocated to said client application to detect an imbalance in utilisation of resources; and if an imbalance in utilisation of resources is detected, assigning updated control information specifying updated weightings for the server devices to said client application and sending the updated control information to said client application to reallocate workload to under-utilised server devices; wherein monitoring the relative workload of each of the plurality of server devices comprises determining a rate of decrease in a length of a queue assigned to the virtual processing resources. allocating, by said resource controller, a plurality of server devices to a client application for data processing; providing a virtual resource layer (150, 152), comprising an intra-server virtual resource layer and an inter-server virtual resource layer, and operable to allocate the data flow engine of one or more of the plurality of server devices to form one or more virtual processing resources, wherein the intra-server virtual resource layer is operable to allocate the data flow engine of one or more of the plurality of server devices to form one or more server device-specific virtual processing resources and the inter-server virtual resource layer is operable to enable said virtual processing resources to be accessible directly by the one or more client applications; assigning, by said resource controller, control information to said client application, said control information specifying a weighting for each server device, the weighting determining the proportion of a data processing workload to be assigned to each of the server devices allocated to said client application; sending the control information to the client application; sending, directly from said client application to said server devices, said data processing workload, wherein the data processing workload is sent to each server device in accordance with said control information; monitoring, by said resource controller, the relative workload of each of the plurality of server devices allocated to said client application to detect an imbalance in utilisation of resources; and if an imbalance in utilisation of resources is detected, assigning updated control information specifying updated weightings for the server devices to said client application and sending the updated control information to said client application to reallocate workload to under-utilised server devices; wherein monitoring the relative workload of each of the plurality of server devices comprises determining a rate of decrease in a length of a queue assigned to the virtual processing resources.