Systems and methods that utilize persisted push/pull state to provide reliable message publishing
First Claim
1. A system that facilitates data transfer from a remote component of a servicing device to a storage medium, comprising one or more processors executing the following components:
- a connection management component that generates information for a connection with the remote component;
an information bank that stores the connection information comprising a present state of message conveyance, the message being conveyed and a connection instance ID; and
an interface component that is concurrently employed by a plurality of servicing devices utilizes the stored connection information to lock the connection between the remote component and the storage medium, whereby other servicing devices are prevented from servicing the connection, and facilitate a push/pull data transfer between the remote component and the storage medium, wherein the interface component is configured to provide an acknowledgement (ACK) when the push/pull data transfer succeeds and/or a non-acknowledgement (NAK) when the push/pull data transfer fails such that the ACK and/or NAK can be utilized to determine whether to resubmit a particular data transfer, where to resume data transfer and/or whether transfer is complete, and wherein the interface is configured to dynamically update the connection information stored in the information bank concurrently with the transfer of data to the storage medium, thereby persisting a push/pull data transfer state within the connection information, such that upon determining that the connection has been disconnected or upon determining that the data transfer is to be load balanced between the plurality of servicing devices, the interface component voluntarily releases the lock on the connection and provides access to the connection information to float the connection among the plurality of servicing devices such that the persisted push/pull data transfer state is employed by at least a second servicing device to resume data transfer including the second servicing device locking the connection between the remote component and the storage medium, extracting push/pull data transfer state from the connection information to determine both the message being conveyed and the storage medium to which message conveyance is to be resumed, and continuing message conveyance.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention relates to systems and methods that facilitate pulling and/or receiving data from a client and posting the data for access by subscribing systems. The systems and methods include a message agent that generates a connection instance that can store connection-related information such as data conveyance state, data identification, and connection identification. Access to the connection instance can be provided to a machine, which can utilize the information to lock the connection and connection instance and begin pulling or receiving data from the client. As the machine pulls or receives data, the data can be published and the connection instance can be concurrently updated to reflect the present state of data conveyance. The information within the connection instance can be utilized to re-establish of severed connection, and to dynamically float the connection between machines to dynamically balance load, ensure reliability and recover from errors.
25 Citations
22 Claims
-
1. A system that facilitates data transfer from a remote component of a servicing device to a storage medium, comprising one or more processors executing the following components:
-
a connection management component that generates information for a connection with the remote component; an information bank that stores the connection information comprising a present state of message conveyance, the message being conveyed and a connection instance ID; and an interface component that is concurrently employed by a plurality of servicing devices utilizes the stored connection information to lock the connection between the remote component and the storage medium, whereby other servicing devices are prevented from servicing the connection, and facilitate a push/pull data transfer between the remote component and the storage medium, wherein the interface component is configured to provide an acknowledgement (ACK) when the push/pull data transfer succeeds and/or a non-acknowledgement (NAK) when the push/pull data transfer fails such that the ACK and/or NAK can be utilized to determine whether to resubmit a particular data transfer, where to resume data transfer and/or whether transfer is complete, and wherein the interface is configured to dynamically update the connection information stored in the information bank concurrently with the transfer of data to the storage medium, thereby persisting a push/pull data transfer state within the connection information, such that upon determining that the connection has been disconnected or upon determining that the data transfer is to be load balanced between the plurality of servicing devices, the interface component voluntarily releases the lock on the connection and provides access to the connection information to float the connection among the plurality of servicing devices such that the persisted push/pull data transfer state is employed by at least a second servicing device to resume data transfer including the second servicing device locking the connection between the remote component and the storage medium, extracting push/pull data transfer state from the connection information to determine both the message being conveyed and the storage medium to which message conveyance is to be resumed, and continuing message conveyance. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method that facilitates data transfer from a client to a database, comprising:
-
generating a connection instance for a connection between the client and an adapter associated with the database, the connection instance stores at least information related to the state of the data transfer, one or more message and a connection ID transferring the data;
concurrently receiving data and updating the connection instance with at least a present state of data transfer;persistently storing the state of data transfer in the connection instance; utilizing the persistently stored present state to lock the connection between the client and the adapter, whereby other servicing devices are prevented from servicing the connection, and facilitate a push/pull data transfer between the client and the adapter, wherein the interface component is configured to provide an acknowledgement (ACK) when the push/pull data transfer succeeds and/or a non-acknowledgement (NAK) when the push/pull data transfer fails such that the ACK and/or NAK can be utilized to determine whether to resubmit a particular data transfer, where to resume data transfer and/or whether transfer is complete, and wherein the interface is configured to dynamically update the connection information stored in the information bank concurrently with the transfer of data to the adapter, thereby persisting a push/pull data transfer state within the connection information, such that upon determining that the connection has been disconnected or upon determining that the data transfer is to be load balanced between the plurality of servicing devices, the interface component voluntarily releases the lock on the connection and provides access to the connection information to float the connection among the plurality of servicing devices such that the persisted push/pull data transfer state is employed by at least a second servicing device to resume data transfer including the second servicing device locking the connection between the client and the adapter, extracting push/pull data transfer state from the connection information to determine both the message being conveyed and the adapter to which message conveyance is to be resumed, and continuing message conveyance. - View Dependent Claims (16, 17)
-
-
18. A method that facilitates transferring a message from a client to a database, comprising:
-
invoking a client adapter coupled to the client; providing a machine employing the adapter with a connection instance identification identifying the connection between the client and an adapter associated with the database; employing the connection instance identification to concurrently receive data and update the connection instance with at least a present state of data transfer one or more message and a connection ID transferring the data; persistently storing the present state of data transfer in the connection instance; utilizing the persistently stored information within the connection instance to lock the connection between the client and the adapter, whereby other servicing devices are prevented from servicing the connection, and facilitate a push/pull data transfer between the client and the adapter, wherein the interface component is configured to provide an acknowledgement (ACK) when the push/pull data transfer succeeds and/or a non-acknowledgement (NAK) when the push/pull data transfer fails such that the ACK and/or NAK can be utilized to determine whether to resubmit a particular data transfer, where to resume data transfer and/or whether transfer is complete, and wherein the interface is configured to dynamically update the connection information stored in the information bank concurrently with the transfer of data to the adapter, thereby persisting a push/pull data transfer state within the connection information, such that upon determining that the connection has been disconnected or upon determining that the data transfer is to be load balanced between the plurality of servicing devices, the interface component voluntarily releases the lock on the connection and provides access to the connection information to float the connection among the plurality of servicing devices such that the persisted push/pull data transfer state is employed by at least a second servicing device to resume data transfer including the second servicing device locking the connection between the client and the adapter, extracting push/pull data transfer state from the connection information to determine both the message being conveyed and the adapter to which message conveyance is to be resumed, and continuing message conveyance. - View Dependent Claims (19, 20)
-
-
21. A computer readable medium storing computer executable components to facilitate message conveyance between a client and an adapter, comprising:
-
a connection management component that generates information for a connection with the remote component; an information bank that stores the connection information comprising a present state of message conveyance, the message being conveyed and a connection instance ID; and an interface component that is concurrently employed by a plurality of servicing devices utilizes the stored connection information to lock the connection between the remote component and the storage medium, whereby other servicing devices are prevented from servicing the connection, and facilitate a push/pull data transfer between the remote component and the storage medium, wherein the interface component is configured to provide an acknowledgement (ACK) when the push/pull data transfer succeeds and/or a non-acknowledgement (NAK) when the push/pull data transfer fails such that the ACK and/or NAK can be utilized to determine whether to resubmit a particular data transfer, where to resume data transfer and/or whether transfer is complete, and wherein the interface is configured to dynamically update the connection information stored in the information bank concurrently with the transfer of data to the storage medium, thereby persisting a push/pull data transfer state within the connection information, such that upon determining that the connection has been disconnected or upon determining that the data transfer is to be load balanced between the plurality of servicing devices, the interface component voluntarily releases the lock on the connection and provides access to the connection information to float the connection among the plurality of servicing devices such that the persisted push/pull data transfer state is employed by at least a second servicing device to resume data transfer including the second servicing device locking the connection between the remote component and the storage medium, extracting push/pull data transfer state from the connection information to determine both the message being conveyed and the storage medium to which message conveyance is to be resumed, and continuing message conveyance.
-
-
22. A system that facilitates data transfer from a remote device to a database, comprising:
-
means for identifying a connection between the remote device and an adapter; means for locking the connection between the remote device and the adapter; means for receiving data from the remote device and storing the data in the database; and means for floating the connection between a plurality of machines employing the adapter to provide for at least one of data transfer reliability, error recovery and dynamic load balancing, wherein the floating comprises locking the connection between the client and the adapter, whereby other servicing devices are prevented from servicing the connection, and facilitate a push/pull data transfer between the client and the adapter, wherein the interface component is configured to provide an acknowledgement (ACK) when the push/pull data transfer succeeds and/or a non-acknowledgement (NAK) when the push/pull data transfer fails such that the ACK and/or NAK can be utilized to determine whether to resubmit a particular data transfer, where to resume data transfer and/or whether transfer is complete, and wherein the interface is configured to dynamically update the connection information stored in the information bank concurrently with the transfer of data to the adapter, thereby persisting a push/pull data transfer state within the connection information, such that upon determining that the connection has been disconnected or upon determining that the data transfer is to be load balanced between the plurality of servicing devices, the interface component voluntarily releases the lock on the connection and provides access to the connection information to float the connection among the plurality of servicing devices such that the persisted push/pull data transfer state is employed by at least a second servicing device to resume data transfer including the second servicing device locking the connection between the client and the adapter, extracting push/pull data transfer state from the connection information to determine both the message being conveyed and the adapter to which message conveyance is to be resumed, and continuing message conveyance.
-
Specification