1. A distributed computing architecture, comprising: a plurality of node modules in which agent programs can run, each node module comprising: a discovery module that detects other node modules within the distributed computing architecture; and an interaction module through which each node module communicates with other node modules, wherein each node module is capable of introducing an agent program that can be sent to one or more other node modules, via the interaction module, and run in the one or more other node modules.