A data processing apparatus, comprising: a message dispatcher; a transport adapter for interfacing the message dispatcher to a transport protocol; an interface through which application programs communicate with the message dispatcher; wherein the message dispatcher comprises a plurality of message handlers storing rules instructing the message dispatcher how to handle incoming network messages, the rules including rules instructing the message dispatcher to route a first network message based on a first attribute of said first network message, and route a second network message based on a second attribute, different from said first attribute, of said second network message, wherein the first and second attributes are selected from a set of headers and data contained in each network message and the message dispatcher is configured to route messages using a virtual network protocol above a transport layer protocol of a protocol stack implemented according to the Open Systems Interconnection, OSI, network model; wherein the plurality of message handlers comprises a first message handler which is configured to, upon the occurrence of a predetermined condition, alter a second message handler of the plurality of message handlers, to redirect network messages, that were originally addressed to a first apparatus, to a second apparatus; and wherein the message dispatcher comprises computer executable instructions that, when executed, cause the data processing apparatus to perform the steps of: (i) polling the first apparatus in first predetermined intervals; and (ii) receiving poll responses from the first apparatus; and wherein the predetermined condition comprises the nonoccurrence of step (ii) for a predetermine amount of time. a message dispatcher; a transport adapter for interfacing the message dispatcher to a transport protocol; an interface through which application programs communicate with the message dispatcher; wherein the message dispatcher comprises a plurality of message handlers storing rules instructing the message dispatcher how to handle incoming network messages, the rules including rules instructing the message dispatcher to route a first network message based on a first attribute of said first network message, and route a second network message based on a second attribute, different from said first attribute, of said second network message, wherein the first and second attributes are selected from a set of headers and data contained in each network message and the message dispatcher is configured to route messages using a virtual network protocol above a transport layer protocol of a protocol stack implemented according to the Open Systems Interconnection, OSI, network model; wherein the plurality of message handlers comprises a first message handler which is configured to, upon the occurrence of a predetermined condition, alter a second message handler of the plurality of message handlers, to redirect network messages, that were originally addressed to a first apparatus, to a second apparatus; and wherein the message dispatcher comprises computer executable instructions that, when executed, cause the data processing apparatus to perform the steps of: (i) polling the first apparatus in first predetermined intervals; and (ii) receiving poll responses from the first apparatus; and wherein the predetermined condition comprises the nonoccurrence of step (ii) for a predetermine amount of time. (i) polling the first apparatus in first predetermined intervals; and (ii) receiving poll responses from the first apparatus; and wherein the predetermined condition comprises the nonoccurrence of step (ii) for a predetermine amount of time.