1. A method of creating an application comprising; providing a set of predetermined rules for processing data; creating at least one node, each created node being capable of receiving data and further being capable of processing that data within the node according to the set of predetermined rules and making an output; creating a specification that defines how the or each node interacts with other nodes and defines resources useable by the nodes; and providing a run time environment that interconnects the or each node according to the specification such that data input to the application is processed by at least one of the nodes and, if further processing is required, forwarded to other nodes for that further processing.