Flow control protocol
First Claim
Patent Images
1. A computer-implemented method comprising:
- maintaining, by a receiver computing device that is one of a plurality of members of a communications group, a message credit account for each member of the communications group that can send messages to the receiver computing device, wherein each message credit account tracks the number of messages sent between the receiver computing device and a member of the communications group;
receiving messages from a plurality of senders that are members of the communications group, wherein the receiving messages comprise receiving packets from the plurality of senders with a transport protocol stack;
forming a channel for each sender; and
processing messages from each sender in parallel with the corresponding channel, wherein the processing further comprises;
debiting, by the receiver computing device, a first message credit account associated with the sender when the received message is processed by the receiver computing device, wherein the sender maintains a second message credit account associated with the receiver computing device, and wherein the sender does not send messages to any member of the communications group when a balance of the second message credit account is less than or equal to zero;
sending, by the receiver computing device, a replenishment message to the sender in response to a balance of the first message credit account falling below a threshold, the replenishment message to increase credits in the second message credit account of the sender so that the sender can at least one of continue or resume sending messages to members of the communications group; and
sending the packets marked as Out of Band to an Out of Band thread pool.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for processing message is described. In one embodiment, an application programming interface is configured for receiving and sending messages. A message credit account of a sender is maintained. The message credit account of the sender is debited when a message is received from the sender to a receiver. The message credit account of the sender is credited when a replenishment message is sent to the sender in response to the receiver processing the received message. The sender is prevented from sending any messages to the receiver when a balance in the message credit account of the sender becomes negative.
-
Citations
24 Claims
-
1. A computer-implemented method comprising:
-
maintaining, by a receiver computing device that is one of a plurality of members of a communications group, a message credit account for each member of the communications group that can send messages to the receiver computing device, wherein each message credit account tracks the number of messages sent between the receiver computing device and a member of the communications group; receiving messages from a plurality of senders that are members of the communications group, wherein the receiving messages comprise receiving packets from the plurality of senders with a transport protocol stack; forming a channel for each sender; and processing messages from each sender in parallel with the corresponding channel, wherein the processing further comprises; debiting, by the receiver computing device, a first message credit account associated with the sender when the received message is processed by the receiver computing device, wherein the sender maintains a second message credit account associated with the receiver computing device, and wherein the sender does not send messages to any member of the communications group when a balance of the second message credit account is less than or equal to zero; sending, by the receiver computing device, a replenishment message to the sender in response to a balance of the first message credit account falling below a threshold, the replenishment message to increase credits in the second message credit account of the sender so that the sender can at least one of continue or resume sending messages to members of the communications group; and sending the packets marked as Out of Band to an Out of Band thread pool. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer-implemented method comprising:
-
maintaining, by a sender computing device that is one of plurality of members of a communications group, a message credit account for each member of the communications group that the sender computing device can send a message, wherein each message credit account tracks the number of messages sent between the sender computing device and the member of the communications group associated with the message credit account; receiving messages from a plurality of senders that are members of the communications group, wherein the receiving message comprises receiving packets from the plurality of senders with a transport protocol stack; forming a channel for each sender; and processing messages from each sender in parallel with the corresponding channel, wherein the processing further comprises; sending a message to a receiver that is a member of the communications group; debiting a first message credit account associated with the receiver upon sending the message to the receiver, wherein the receiver maintains a second message credit account associated with the sender computing device; blocking, by the sender computing device, sending messages to any member of the communications group when a balance of the first message credit account is less than or equal to zero; receiving a replenishment message from the receiver, when a balance of the second message credit account falls below a threshold, wherein the replenishment message to increase credits in the first message credit account; resuming sending messages to any member of the communications group when the balance of the first message credit account is greater than zero; and sending the packets marked as Out of Band to an Out of Band thread pool. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory machine-accessible storage medium including data that, when accessed by a machine, causes the machine to perform operations comprising:
-
maintaining, by a receiver computing device that is one of a plurality of members of a communications group, a message credit account for each member of the communications group that can send messages to the receiver computing device, wherein each message credit account tracks the number of messages sent between the receiver computing device and a member of the communications group; receiving messages from a plurality of senders that are members of the communications group, wherein the receiving messages comprise receiving packets from the plurality of senders with a transport protocol stack; forming a channel for each sender; and processing messages from each sender in parallel with the corresponding channel, wherein the processing further comprises; receiving a message from a sender that is a member of the communications group; debiting a first message credit account associated with the sender when the received message is processed by the receiver computing device, wherein the sender maintains a second message credit account associated with the receiver computing device, and wherein the sender does not send messages to any member of the communications group when a credit balance of the second message credit account is less than or equal to zero; sending a replenishment message to the sender in response to the message credit account associated with the sender falling below a threshold, the replenishment message to increase credits in the second message credit account of the sender so that the sender can at least one of continue or resume sending messages to members of the communications group; and sending the packets marked as Out of Band to an Out of Band thread pool. - View Dependent Claims (16, 17)
-
-
18. A non-transitory machine-accessible storage medium including data that, when accessed by a machine, cause the machine to perform operations comprising:
-
maintaining, by a sender computing device that is one of plurality of members of a communications group, a message credit account for each member of the communications group that the sender computing device can send a message, wherein each message credit account tracks the number of messages sent between the sender computing device and the member of the communications group associated with the message credit account; receiving messages from a plurality of senders that are members of the communications group, wherein the receiving messages comprise receiving packets from the plurality of senders with a transport protocol stack; forming a channel for each sender; and processing messages from each sender in parallel with the corresponding channel, wherein the processing further comprises; sending a message to a receiver that is a member of the communications group; debiting a first message credit account associated with the receiver upon sending the message to the receiver, wherein the receiver maintains a second message credit account associated with the sender computing device; blocking, by the sender computing device, sending messages to any member of the communications group when a balance of the first message credit account is less than or equal to zero; receiving a replenishment message from the receiver, when a balance of the second message credit account falls below a threshold, wherein the replenishment message to increase credits in the first message credit account; resuming sending messages to any member of the communications group when the balance of the first message credit account is greater than zero; and sending the packets marked as Out of Band to an Out of Band thread pool. - View Dependent Claims (19, 20)
-
-
21. An apparatus for processing messages comprising:
-
a memory; a processing device communicably coupled to the memory; an application programming interface (API) executed from the memory by the processing device, the API to receive and send message; a message credit account manager executable from the memory by the processing device, the message credit account manager to; maintain a plurality of message credit accounts that are each associated with a member of a communications group that the apparatus can send a message, each message credit account tracks the number of messages sent between the apparatus and the member of the communications group associated with that message credit account; receive messages from a plurality of senders that are members of the communications group, wherein the receiving messages comprise receiving packets from the plurality of senders with a transport protocol stack; form a channel for each sender; and process messages from each sender in parallel with the corresponding channel, wherein processing the messages further comprises the message credit account manager to; when a message is sent via the API to a receiver that is a member of the communications group, debit the message credit account associated with the receiver of the message wherein the receiver maintains a second message credit account associated with the sender computing device; prevent the sender from sending a message to any members of the communications group when a balance in any of the message credit accounts maintained by the sender becomes negative; credit the message credit account of the sender when a replenishment message is sent to the sender in response to the receiver processing the received message; resume sending messages to any member of the communications group when the replenishment message is received from the receiver; and send the packets marked as Out of Band to an Out of Band thread pool. - View Dependent Claims (22, 23, 24)
-
Specification