Patent ID: 7756925

Claim:
A non-transitory memory medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus of a computer system to perform operations controlling a publish-subscribe messaging system, where the publish-subscribe messaging system comprises publishing clients, subscribing clients, and a plurality of broker machines, the plurality of broker machines comprising an overlay network that accepts input message streams from publishing clients, transforms input message streams into output message streams according to pre-determined message transformation criteria, where the criteria are contained in message transforms implemented as software modules, the software modules being distributed among the broker machines, and then delivers the output message streams to the subscribing clients, the operations comprising: selecting at least one performance parameter corresponding to a performance measure of the publish-subscribe messaging system; monitoring a level of resource utilization of the overlay network; making a provisional assignment of message transforms among the broker machines; performing calculations to determine a value of the at least one performance parameter of the publish-subscribe messaging system in accordance with the provisional assignment of message transforms and the level of resource utilization of the overlay network; and determining that the provisional assignment of the message transforms among the broker machines results in an acceptable value of the at least one performance parameter and, assigning the message transforms among the broker machines in accordance with the provisional assignment; wherein at least some of the message transforms comprise relational expressions for relating multiple ones of the input message streams, where the message transforms operate in a stateful manner such that the output message stream contains information derived from at least two messages culled from the multiple ones of the input message streams.