1. A method for configuring a data processing system for hosting at least one software application comprising a set of first modules of a first type and a set of second modules of a second type, the first modules requiring a first required processing power and a first required working memory, and the second modules requiring a second required processing power and a second required working memory, comprising: providing an indication of a cost, an available processing power, and an available memory of each one of a plurality of available data processing entities to define available configurations of the system, each configuration comprising a corresponding set of the entities; defining a target function indicative of a target cost of the system, the target cost being defined according to a total cost of each configuration based on the costs of the corresponding entities, wherein the target function is constrained by a set of constraints for the available processing power and the available memory of each entity based on the first required processing power, the first required memory, the second required processing power and the second required memory, the constraints being simplified by setting the available memory of each entity as a predefined function of the corresponding available processing power; selecting one of the configurations optimizing the target function; and configuring the system according to the selected configuration.