IP Library Granted Patent US 11,768,722
Granted Patent B2
US 11,768,722 · App. 17/703,423 · Granted Sep 26, 2023

Method for inter-process communication between at least two processes

Inventor: Thomas Goncalves (Forges-les-bains, FR)
Assignee: BULL SAS
G06F9/546G06Q10/06315
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,768,722
App. No.
17/703,423
Granted
Sep 26, 2023
Kind
B2
Abstract

An inter-process communication method for remote processes. The method implements a resource allocation mechanism via a token system that allows a communication operation to be performed only when the target process of the operation has available resources. Each operation costs one token. Tokens are consumed locally and obtained by remote request. This maximizes chances of successful operations and minimizes the bandwidth used to manage these operations.

Claims (77)

1. A method for inter-process communication between at least two processes, each process of said at least two processes being hosted by a node on a communication network, the node further hosting a further process including a resource manager, wherein the resource manager includes at least one resource counter for a target process of a communication, the method comprising:

emission by a first process of a first node, to a resource manager of the first node, a business request for a second process of a second node;

verification by the resource manager of the first node, that there is locally at least one token associated with the second process:

if there is a local token then:

the business request is transmitted to the second process;

a number of local tokens associated with the second process is decreased by one by the resource manager of the first node;

a number of remote tokens associated with the second process is increased by one by a resource manager of the second node;

if there is no local token:

emission by the resource manager of the first node, to the resource manager of the second node, a first allocation request for tokens associated with the second process, the first allocation request including a parameter N representing a number of tokens requested;

reception by the resource manager of the first node a response to the first allocation request, the response including a parameter M representing a number of remote tokens associated with the second process prior to receiving the first allocation request;

evaluating a value of M−N:

if the value of M−N is greater than or equal to a predetermined threshold then the resource manager of the first node increases the number of local tokens associated with the second process by N and returns to the verification;

if the value of M−N is less than the predetermined threshold then the value of M is evaluated:

 if the value of M is greater than the predetermined threshold then the resource manager of the first node transmits a second allocation request with a parameter having a value of M−N, increases the number of local tokens by M, returns to the verification;

 if the value of M is less than or equal to the predetermined threshold then, the resource manager of the first node:

  emits, to the resource manager of the second node, a third allocation request for the second process with a parameter having a value of −N,

  emits, to the resource manager of the second node, a notification that it is waiting for N tokens for the second process;

  places itself in a state of waiting for a response to the notification;

  when it receives a response to the notification, the notification includes a parameter N′ representing the number of tokens allocated, the resource manager of the first node increases the number of local tokens associated with the second process by N′ and returns to the verification.

2. The method for inter-process communication according to claim 1 , wherein an update of the number of local tokens is carried out only if the business request is successfully processed.

3. The method for inter-process communication according to claim 1 , wherein the predetermined threshold is zero.

4. The method for inter-process communication method according to claim 1 , wherein the value of the parameter N of the first allocation request is a parameter of the node.

5. The method for inter-process communication method according to claim 1 , wherein the business request is a read request.

6. The method for inter-process communication according to claim 1 , wherein the business request is a write request.

7. The method for inter-process communication according to claim 1 , wherein upon receiving the first allocation request emitted by the resource manager of the first node, the resource manager of the second node decreases the number of local tokens by the value of the parameter included in the first allocation request for the first process designated by the first allocation request.

8. The method for inter-process communication according to claim 1 , wherein the resource manager of the second node waits for notification, wherein

if no notification is received then the resource manager of the second node continues waiting;

if a notification is received then for the second process designated by the notification, the resource manager of the second node

reads a number m of tokens, m being the number of tokens available for the second process designated as a remote process;

evaluates m, wherein

if m is less than or equal to the predetermined threshold then processing of the notification is repeated;

if m is strictly greater than the predetermined threshold then, reducing the number of tokens associated with the second process designated by the notification by a value N, N being the number of tokens requested by the notification,

evaluates m−N, wherein

if m−N is strictly greater than the predetermined threshold then the resource manager of the second node

 emits a response to the notification with the value N as a parameter;

if m−N is less than or equal to the predetermined threshold then the resource manager of the second node

 emits a response to the notification with value N′=m as a parameter;

 increases the number of tokens associated with the second process designated as a remote process by N−m.

9. The method for inter-process communication according to claim 8 , further comprising carrying out a timeout before repeating processing of the notification.

10. A non-transitory computer program for performing inter-process communications configured to implement an inter-process communication method between at least two processes, each process of said at least two processes being hosted by a node on a communication network, the node further hosting a further process including a resource manager, wherein the resource manager includes at least one resource counter for a target process of a communication, the inter-process communication method comprising:

emission by a first process of a first node, to a resource manager of the first node, a business request for a second process of a second node;

verification by the resource manager of the first node, that there is locally at least one token associated with the second process:

if there is a local token then:

the business request is transmitted to the second process;

a number of local tokens associated with the second process is decreased by one by the resource manager of the first node;

a number of remote tokens associated with the second process is increased by one by a resource manager of the second node;

if there is no local token:

emission by the resource manager of the first node, to the resource manager of the second node, a first allocation request for tokens associated with the second process, the first allocation request including a parameter N representing a number of tokens requested;

reception by the resource manager of the first node a response to the first allocation request, the response including a parameter M representing a number of remote tokens associated with the second process prior to receiving the first allocation request;

evaluating a value of M−N:

if the value of M−N is greater than or equal to a predetermined threshold then the resource manager of the first node increases the number of local tokens associated with the second process by N and returns to the verification;

if the value of M−N is less than the predetermined threshold then the value of M is evaluated:

 if the value of M is greater than the predetermined threshold then the resource manager of the first node transmits a second allocation request with a parameter having a value of M −N, increases the number of local tokens by M, returns to the verification;

 if the value of M is less than or equal to the predetermined threshold then, the resource manager of the first node:

  emits, to the resource manager of the second node, a third allocation request for the second process with a parameter having a value of −N,

  emits, to the resource manager of the second node, a notification that it is waiting for N tokens for the second process;

  places itself in a state of waiting for a response to the notification;

  when it receives a response to the notification, the notification includes a parameter N′ representing the number of tokens allocated, the resource manager of the first node increases the number of local tokens associated with the second process by N′ and returns to the verification.

11. A non-transitory recording medium on which a non-transitory computer program is recorded for performing inter-process communications configured to implement an inter-process communication method between at least two processes, each process of said at least two processes being hosted by a node on a communication network, the node further hosting a further process including a resource manager, wherein the resource manager includes at least one resource counter for a target process of a communication, the inter-process communication method comprising:

emission by a first process of a first node, to a resource manager of the first node, a business request for a second process of a second node;

verification by the resource manager of the first node, that there is locally at least one token associated with the second process:

if there is a local token then:

the business request is transmitted to the second process;

a number of local tokens associated with the second process is decreased by one by the resource manager of the first node;

a number of remote tokens associated with the second process is increased by one by a resource manager of the second node;

if there is no local token:

emission by the resource manager of the first node, to the resource manager of the second node, a first allocation request for tokens associated with the second process, the first allocation request including a parameter N representing a number of tokens requested;

reception by the resource manager of the first node a response to the first allocation request, the response including a parameter M representing a number of remote tokens associated with the second process prior to receiving the first allocation request;

evaluating a value of M−N:

if the value of M−N is greater than or equal to a predetermined threshold then the resource manager of the first node increases the number of local tokens associated with the second process by N and returns to the verification;

if the value of M−N is less than the predetermined threshold then the value of M is evaluated:

if the value of M is greater than the predetermined threshold then the resource manager of the first node transmits a second allocation request with a parameter having a value of M −N, increases the number of local tokens by M, returns to the verification;

if the value of M is less than or equal to the predetermined threshold then, the resource manager of the first node:

 emits, to the resource manager of the second node, a third allocation request for the second process with a parameter having a value of −N,

 emits, to the resource manager of the second node, a notification that it is waiting for N tokens for the second process;

 places itself in a state of waiting for a response to the notification;

when it receives a response to the notification, the notification includes a parameter N′ representing the number of tokens allocated, the resource manager of the first node increases the number of local tokens associated with the second process by N′ and returns to the verification.

Assignments (2)
PARTIAL ASSIGNMENT AGREEMENT Recorded Nov 20, 2023
From: BULL SAS
To: LE COMMISSARIAT À L'ÉNERGIE ATOMIQUE ET AUX ÉNERGIES ALTERNATIVES
Reel/Frame 065629/0404 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 24, 2022
From: GONCALVES, THOMAS
To: BULL SAS
Reel/Frame 059391/0958 →
Priority Claims (1)
EP 21305370 · Mar 24, 2021 · regional
Continuity (1)
Related Publication 20220308948A1 · Sep 29, 2022