A system for providing a middleware communication space enabling coordination of one or more distributed applications (204, 206) stored on computer readable storage media in a partially connected ad hoc wireless network, the middleware comprising: a proxy component (308, 308) stored on computer readable storage media and configured to receive data from the one or more distributed applications; a protocol agent stored on computer readable storage media and coupled to the proxy component, the protocol agent configured to monitor metadata for transport and to govern asynchronous transport of messages in the partially connected ad hoc network wherein the protocol agent connects to one network at a time; a metadata storage component (312, 312) stored on computer readable storage media and coupled to the proxy component and the protocol agent, the metadata storage component configured to store metadata capable of being transported as a message according to the one or more distributed applications, the middleware communication space providing a an asynchronous bridge between two or more partially-connected networks, the bridge enabling temporary storage of the messages to enable transparent messaging between two or more devices; a discovery component stored on computer readable storage media and coupled to the protocol agent to determine one or more neighbour devices according to a listen and announce protocol; a choosing component stored on computer readable storage media and coupled to the discovery component configured to choose a neighbour device for receipt of one or more messages, the choosing comprising: deriving a stochastic model of the dynamically changing topology; using the stochastic model, evaluating routes for delivering the messages according to the expected path length; determining a shortest expected path route from the evaluated routes; and delivering messages to another device to propagate messages between the networks. a proxy component (308, 308) stored on computer readable storage media and configured to receive data from the one or more distributed applications; a protocol agent stored on computer readable storage media and coupled to the proxy component, the protocol agent configured to monitor metadata for transport and to govern asynchronous transport of messages in the partially connected ad hoc network wherein the protocol agent connects to one network at a time; a metadata storage component (312, 312) stored on computer readable storage media and coupled to the proxy component and the protocol agent, the metadata storage component configured to store metadata capable of being transported as a message according to the one or more distributed applications, the middleware communication space providing a an asynchronous bridge between two or more partially-connected networks, the bridge enabling temporary storage of the messages to enable transparent messaging between two or more devices; a discovery component stored on computer readable storage media and coupled to the protocol agent to determine one or more neighbour devices according to a listen and announce protocol; a choosing component stored on computer readable storage media and coupled to the discovery component configured to choose a neighbour device for receipt of one or more messages, the choosing comprising: deriving a stochastic model of the dynamically changing topology; using the stochastic model, evaluating routes for delivering the messages according to the expected path length; determining a shortest expected path route from the evaluated routes; and delivering messages to another device to propagate messages between the networks. deriving a stochastic model of the dynamically changing topology; using the stochastic model, evaluating routes for delivering the messages according to the expected path length; determining a shortest expected path route from the evaluated routes; and delivering messages to another device to propagate messages between the networks.