Resilient messaging infrastructure
First Claim
1. A method, comprising:
- receiving, at a first message resilience client device from a second message resilience client device, a message and a request to deliver the message on behalf of a remote client/server-based client application that originated the message to a client/server-based server application that is executed by a server device and that provides outgoing client/server messaging services to the remote client/server-based client application that originated the message;
storing, in response to determining that delivery of the message as requested on behalf of the remote client/server-based client application to the server device that executes the client/server-based server application is not currently possible via any available connection, the message locally for one of later delivery to the client/server-based server application and propagation of the message with the request to deliver the message to at least one other message resilience client device on behalf of the remote client/server-based client application;
detecting that a local client/server-based client application has originated a local message to send to a locally-targeted client/server-based server application that is executed by a locally-targeted server device and that provides outgoing client/server messaging services to the local client/server-based client application that originated the local message;
determining that a connection to the locally-targeted server device that executes the locally-targeted client/server-based server application is not currently available;
determining that a connection to the at least one other message resilience client device is available;
sending, to the at least one other message resilience client device, the local message and a request to deliver the local message on behalf of the local client/server-based client application to the locally-targeted client/server-based server application that provides the outgoing client/server messaging services to the local client/server-based client application that originated the local message;
determining whether message presence information that identifies the local message exists within a message presence database and indicates whether the local message has already been delivered to the locally-targeted client/server-based server application;
in response to determining that the local message has already been delivered;
notifying the local client/server-based client application that the local message has been successfully delivered; and
one of;
deleting the message presence information that identifies the local message from the message presence database; and
updating the message presence information to indicate a time duration for storage of the message presence information by the message presence database; and
in response to determining that the local message has not already been delivered;
sending, in response to determining that a connection to the locally-targeted server device that executes the locally-targeted client/server-based server application is currently available, the local message to the locally-targeted client/server-based server application that provides the outgoing client/server messaging services to the local client/server-based client application; and
creating the message presence information that identifies the local message within the message presence database, that indicates that the local message has been delivered to the locally-targeted client/server-based server application, and that indicates the time duration for storage of the message presence information by the message presence database.
1 Assignment
0 Petitions
Accused Products
Abstract
A first message resilience client device receives a message and a request to deliver the message, on behalf of a remote client/server-based client application that originated the message, to a client/server-based server application that provides outgoing client/server messaging services to the remote client/server-based client application that originated the message. In response to determining that the connection to the server device that executes the client/server-based server application is not currently possible with any available connection, the message is stored locally for one of later delivery to the client/server-based server application and propagation of the message to another message resilience client device on behalf of the remote client/server-based client application.
4 Citations
15 Claims
-
1. A method, comprising:
-
receiving, at a first message resilience client device from a second message resilience client device, a message and a request to deliver the message on behalf of a remote client/server-based client application that originated the message to a client/server-based server application that is executed by a server device and that provides outgoing client/server messaging services to the remote client/server-based client application that originated the message; storing, in response to determining that delivery of the message as requested on behalf of the remote client/server-based client application to the server device that executes the client/server-based server application is not currently possible via any available connection, the message locally for one of later delivery to the client/server-based server application and propagation of the message with the request to deliver the message to at least one other message resilience client device on behalf of the remote client/server-based client application; detecting that a local client/server-based client application has originated a local message to send to a locally-targeted client/server-based server application that is executed by a locally-targeted server device and that provides outgoing client/server messaging services to the local client/server-based client application that originated the local message; determining that a connection to the locally-targeted server device that executes the locally-targeted client/server-based server application is not currently available; determining that a connection to the at least one other message resilience client device is available; sending, to the at least one other message resilience client device, the local message and a request to deliver the local message on behalf of the local client/server-based client application to the locally-targeted client/server-based server application that provides the outgoing client/server messaging services to the local client/server-based client application that originated the local message; determining whether message presence information that identifies the local message exists within a message presence database and indicates whether the local message has already been delivered to the locally-targeted client/server-based server application; in response to determining that the local message has already been delivered; notifying the local client/server-based client application that the local message has been successfully delivered; and one of; deleting the message presence information that identifies the local message from the message presence database; and updating the message presence information to indicate a time duration for storage of the message presence information by the message presence database; and in response to determining that the local message has not already been delivered; sending, in response to determining that a connection to the locally-targeted server device that executes the locally-targeted client/server-based server application is currently available, the local message to the locally-targeted client/server-based server application that provides the outgoing client/server messaging services to the local client/server-based client application; and creating the message presence information that identifies the local message within the message presence database, that indicates that the local message has been delivered to the locally-targeted client/server-based server application, and that indicates the time duration for storage of the message presence information by the message presence database. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A system, comprising:
-
a memory; and a processor programmed to; receive, at a first message resilience client device from a second message resilience client device, a message and a request to deliver the message on behalf of a remote client/server-based client application that originated the message to a client/server-based server application that is executed by a server device and that provides outgoing client/server messaging services to the remote client/server-based client application that originated the message; store, in response to determining that delivery of the message as requested on behalf of the remote client/server-based client application to the server device that executes the client/server-based server application is not currently possible via any available connection, the message locally in the memory for one of later delivery to the client/server-based server application and propagation of the message with the request to deliver the message to at least one other message resilience client device on behalf of the remote client/server-based client application; detect that a local client/server-based client application has originated a local message to send to a locally-targeted client/server-based server application that is executed by a locally-targeted server device and that provides outgoing client/server messaging services to the local client/server-based client application that originated the local message; determine that a connection to the locally-targeted server device that executes the locally-targeted client/server-based server application is not currently available; determine that a connection to the at least one other message resilience client device is available; send, to the at least one other message resilience client device, the local message and a request to deliver the local message on behalf of the local client/server-based client application to the locally-targeted client/server-based server application that provides the outgoing client/server messaging services to the local client/server-based client application that originated the local message; determine whether message presence information that identifies the local message exists within a message presence database and indicates whether the local message has already been delivered to the locally-targeted client/server-based server application; in response to determining that the local message has already been delivered; notify the local client/server-based client application that the local message has been successfully delivered; and one of; delete the message presence information that identifies the local message from the message presence database; and update the message presence information to indicate a time duration for storage of the message presence information by the message presence database; and in response to determining that the local message has not already been delivered; send, in response to determining that a connection to the locally-targeted server device that executes the locally-targeted client/server-based server application is currently available, the local message to the locally-targeted client/server-based server application that provides the outgoing client/server messaging services to the local client/server-based client application; and create the message presence information that identifies the local message within the message presence database, that indicates that the local message has been delivered to the locally-targeted client/server-based server application, and that indicates the time duration for storage of the message presence information by the message presence database. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A computer program product, comprising:
a non-transitory computer readable storage medium having computer readable program code embodied therewith, where the computer readable program code when executed on a computer causes the computer to; receive, at a first message resilience client device from a second message resilience client device, a message and a request to deliver the message on behalf of a remote client/server-based client application that originated the message to a client/server-based server application that is executed by a server device and that provides outgoing client/server messaging services to the remote client/server-based client application that originated the message; store, in response to determining that delivery of the message as requested on behalf of the remote client/server-based client application to the server device that executes the client/server-based server application is not currently possible via any available connection, the message locally for one of later delivery to the client/server-based server application and propagation of the message with the request to deliver the message to at least one other message resilience client device on behalf of the remote client/server-based client application; detect that a local client/server-based client application has originated a local message to send to a locally-targeted client/server-based server application that is executed by a locally-targeted server device and that provides outgoing client/server messaging services to the local client/server-based client application that originated the local message; determine that a connection to the locally-targeted server device that executes the locally-targeted client/server-based server application is not currently available; determine that a connection to the at least one other message resilience client device is available; send, to the at least one other message resilience client device, the local message and a request to deliver the local message on behalf of the local client/server-based client application to the locally-targeted client/server-based server application that provides the outgoing client/server messaging services to the local client/server-based client application that originated the local message; determine whether message presence information that identifies the local message exists within a message presence database and indicates whether the local message has already been delivered to the locally-targeted client/server-based server application; in response to determining that the local message has already been delivered; notify the local client/server-based client application that the local message has been successfully delivered; and one of; delete the message presence information that identifies the local message from the message presence database; and update the message presence information to indicate a time duration for storage of the message presence information by the message presence database; and in response to determining that the local message has not already been delivered; send, in response to determining that a connection to the locally-targeted server device that executes the locally-targeted client/server-based server application is currently available, the local message to the locally-targeted client/server-based server application that provides the outgoing client/server messaging services to the local client/server-based client application; and create the message presence information that identifies the local message within the message presence database, that indicates that the local message has been delivered to the locally-targeted client/server-based server application, and that indicates the time duration for storage of the message presence information by the message presence database. - View Dependent Claims (12, 13, 14, 15)
Specification