1. A method of creating an application for executing on at least one machine having a memory, the method comprising: creating a definition of at least one node and a specification, which are both held in at least one machine readable data file and written in a markup language; the specification being arranged to be processed by a run time environment and the specification defining: i: how the at least one node interacts with other nodes during the processing of the specification; ii: resources useable by the at least one node during the processing of the specification; iii: at least one set of predetermined rules used by the at least one node during the processing of the specification; and iv: a set of messages which are arranged to be passed between nodes during the processing of the specification; causing the run time environment to process the specification held in the machine readable data file such that the at least one node, as defined therein, is implemented within the memory of the machine thereby becoming a memory resident node; the at least one memory resident node being arranged to: i. receive messages as defined within the specification; ii. process, according to rules defined in the specification for that node, data provided to the at least one memory resident node by messages such that rules are triggered if predetermined data is present within a message; and iii. output further messages dependent upon triggering of rules within the node; and creating the application by processing of the specification, in the run time environment, such that at least one memory resident node is interconnected according to at least one of the specification and data input, wherein data input to the application is processed by the at least one memory resident node and, if further processing is required, forwarded to other nodes via links for that processing and links between nodes are dynamically configured responsive to amendments to the specification during processing thereof by the run time environment.