Patent ID: 7957363

Claim:
A method of selecting a preferred pathway, the method comprising: generating a message by an application, the message to be transmitted from a transmitting client, as a source, to a receiving client, as a destination; tagging the message with a tag based on attributes included in the message; automatically determining said destination based on the tag; automatically determining, based on said destination, at least some of a plurality of available pathways whose extent is defined between said transmitting client and said receiving client; evaluating network performance; using the tag and the evaluation of network performance, to select, for said message, said preferred pathway from among said plurality of available pathways, based on a predetermined agreement between the transmitting client and the receiving client, transparently to the application, said plurality of available pathways including an infrastructure messaging pathway through an infrastructure messaging server, and further including a direct messaging pathway that bypasses said server; delivering said message to said destination over said preferred pathway including posting the message to the infrastructure messaging server if the preferred pathway is the infrastructure messaging pathway, such that the message is retrievable by the receiving client at a later time when the receiving client connects to the infrastructure messaging server to retrieve the data, and directly delivering the message to the receiving client via a peer-to-peer connection between the transmitting client and the preferred pathway is the direct messaging pathway, wherein selecting the preferred delivery pathway comprises two or more preferred pathways to deliver the message to the destination; and transmitting the message in parallel over the infrastructure messaging pathway and the direct messaging pathway, by a transmitting communication middleware; distributing the message over the two or more preferred pathways based on the message content; and posting the message on a virtual message board.