A method of determining a placement of services of a distributed
application onto nodes of a distributed resource infrastructure comprises
first, second, and third steps. The first step forms communication
constraints between node pairs. The communication constraints ensure that
a sum of transport demands between a particular node pair does not exceed
a transport capacity between the particular node pair. Each term of the
sum comprises a product of a first placement variable, a second placement
variable, and the transport demand between the services associated with
the first and second placement variables. The second step forms an
objective. The communication constraints and the objective comprise an
integer program. The third step employs a local search solution to solve
the integer program, which determines the placement of the services onto
the nodes.