Patent ID: 8775669

Claim:
A device for sending and receiving data in a system environment, said device comprising: two or more data communication interfaces configured for transmitting and receiving data via two or more data communication methods; one or more hardware processors configured to: transmit data outbound from said device via said data communication interfaces; receive data inbound to said device via said data communication interfaces; execute two or more client applications, wherein each of said client applications are configured to send outbound application data to a middleware communication manager module via an application program interface, said outbound application data comprising a plurality of messages each associated with a priority value indicating a level of priority for transmitting its associated message, and wherein each of said client applications are configured to receive inbound application data from said middleware communication manager module via said application program interface; and execute said middleware communication manager module, said middleware communication manager module configured to: receive said outbound application data from said client applications via said application program interface and receive said inbound application data from said data communication interfaces; for each message in said outbound application data: select at least two preferred data communication methods for transmitting a respective message, wherein said preferred data communication methods are selected from said data communication methods based at least in part on said level of priority associated with the respective message; arrange said preferred data communication methods hierarchically according to relative preference for the respective message; identify those of said preferred data communication methods currently available for transmitting the respective message; and route the respective message to the most-preferred of said available preferred data communication methods according to said hierarchical arrangement of said preferred data communication methods; and for each message in said inbound application data, transmit said inbound application data via said application program interface to said client applications.