IP Library Granted Patent US 11,716,380
Granted Patent B2
US 11,716,380 · App. 17/160,478 · Granted Aug 1, 2023

Secure self-contained mechanism for managing interactions between distributed computing components

Inventors: Shrikant Thakare (Burlington, MA); Shivakarthik Subramanyam (Dublin, CA)
Assignee: Salesforce, Inc.
H04L67/1065G06F16/9024G06F16/9566H04L9/085H04L9/3242H04L63/12
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,716,380
App. No.
17/160,478
Granted
Aug 1, 2023
Kind
B2
Abstract

Methods, computer readable media, and devices for securely managing interactions between distributed components are provided. One method may include generating a first interaction identifier based on a first component identifier and data to be shared with a second component, storing the first interaction identifier in an interaction data store of the first component, sending a request to the second component including the first component identifier, the first interaction identifier, and the data to be shared with the second component, creating a graph node in an interaction relationship data store based on the first interaction identifier, receiving a response from the second component including a second component identifier, a second interaction identifier, and response data, and adding a relationship edge in the interaction relationship data store connecting the graph node based on the first interaction identifier with a graph node based on the second interaction identifier.

Claims (56)

1. A computer-implemented method comprising:

generating, by a first component in a distributed system, a first interaction identifier based on:

a component identifier of the first component; and

data to be shared with a second component;

storing the first interaction identifier in an interaction data store of the first component;

sending a request to the second component, the request including the component identifier of the first component, the first interaction identifier, and the data to be shared with the second component;

creating a graph node in an interaction relationship data store based on the first interaction identifier, the interaction relationship data store being accessible by components in the distributed system;

receiving a response from the second component, the response including a component identifier of the second component, a second interaction identifier, and response data;

adding a relationship edge in the interaction relationship data store, the relationship edge connecting the graph node based on the first interaction identifier with a graph node based on the second interaction identifier;

subsequently retrieving the response data from the second component by:

requesting an interaction identifier discovery uniform resource locator (URL) corresponding to the second component from a component registry;

requesting a shared secret corresponding to the second component from a trust store;

requesting the response data from the second component by submitting the second interaction identifier via the interaction identifier discovery URL corresponding to the second component;

generating a reference interaction identifier based on the response data received from the second component; and

comparing the reference interaction identifier and the second interaction identifier to determine an integrity of the received response data.

2. The computer-implemented method of claim 1 , wherein generating a first interaction identifier comprises generating a keyed cryptographic hash of the data to be shared with the second component, the keyed cryptographic hash being based on a shared secret shared between the first and second components.

3. The computer-implemented method of claim 1 , further comprising registering the first component in a component registry by providing the component identifier of the first component, a component name of the first component, an interaction identifier discovery universal resource location (URL) of the first component, and an interaction identifier response type.

4. The computer-implemented method of claim 1 , further comprising creating an entry corresponding to the first component in a trust store accessible by components in the distributed system, the entry including the component identifier of the first component, a shared secret, and one or more peer component identifiers, each peer component identifier being a component authorized to interact with the first component.

5. A non-transitory machine-readable storage medium that provides instructions that, if executed by a processor, are configurable to cause the processor to perform operations comprising:

generating, by a first component in a distributed system, a first interaction identifier based on:

a component identifier of the first component; and

data to be shared with a second component;

storing the first interaction identifier in an interaction data store of the first component;

sending a request to the second component, the request including the component identifier of the first component, the first interaction identifier, and the data to be shared with the second component;

creating a graph node in an interaction relationship data store based on the first interaction identifier, the interaction relationship data store being accessible by components in the distributed system;

receiving a response from the second component, the response including a component identifier of the second component, a second interaction identifier, and response data;

adding a relationship edge in the interaction relationship data store, the relationship edge connecting the graph node based on the first interaction identifier with a graph node based on the second interaction identifier;

subsequently retrieving the response data from the second component by:

requesting an interaction identifier discovery uniform resource locator (URL) corresponding to the second component from a component registry;

requesting a shared secret corresponding to the second component from a trust store;

requesting the response data from the second component by submitting the second interaction identifier via the interaction identifier discovery URL corresponding to the second component;

generating a reference interaction identifier based on the response data received from the second component; and

comparing the reference interaction identifier and the second interaction identifier to determine an integrity of the received response data.

6. The non-transitory machine-readable storage medium of claim 5 , wherein generating a first interaction identifier comprises generating a keyed cryptographic hash of the data to be shared with the second component, the keyed cryptographic hash being based on a shared secret shared between the first and second components.

7. The non-transitory machine-readable storage medium of claim 5 , wherein the instructions are further configurable to cause the processor to perform further operations comprising registering the first component in a component registry by providing the component identifier of the first component, a component name of the first component, an interaction identifier discovery universal resource location (URL) of the first component, and an interaction identifier response type.

8. The non-transitory machine-readable storage medium of claim 5 , wherein the instructions are further configurable to cause the processor to perform further operations comprising creating an entry corresponding to the first component in a trust store accessible by components in the distributed system, the entry including the component identifier of the first component, a shared secret, and one or more peer component identifiers, each peer component identifier being a component authorized to interact with the first component.

9. An apparatus comprising:

a processor; and

a non-transitory machine-readable storage medium that provides instructions that, if executed by the processor, are configurable to cause the apparatus to perform operations comprising:

generating, by a first component in a distributed system, a first interaction identifier based on:

a component identifier of the first component; and

data to be shared with a second component;

storing the first interaction identifier in an interaction data store of the first component;

sending a request to the second component, the request including the component identifier of the first component, the first interaction identifier, and the data to be shared with the second component;

creating a graph node in an interaction relationship data store based on the first interaction identifier, the interaction relationship data store being accessible by components in the distributed system;

receiving a response from the second component, the response including a component identifier of the second component, a second interaction identifier, and response data;

adding a relationship edge in the interaction relationship data store, the relationship edge connecting the graph node based on the first interaction identifier with a graph node based on the second interaction identifier;

subsequently retrieving the response data from the second component by:

requesting an interaction identifier discovery uniform resource locator (URL) corresponding to the second component from a component registry;

requesting a shared secret corresponding to the second component from a trust store;

requesting the response data from the second component by submitting the second interaction identifier via the interaction identifier discovery URL corresponding to the second component;

generating a reference interaction identifier based on the response data received from the second component; and

comparing the reference interaction identifier and the second interaction identifier to determine an integrity of the received response data.

10. The apparatus of claim 9 , wherein generating a first interaction identifier comprises generating a keyed cryptographic hash of the data to be shared with the second component, the keyed cryptographic hash being based on a shared secret shared between the first and second components.

11. The apparatus of claim 9 , wherein the instructions are further configurable to cause the processor to perform further operations comprising registering the first component in a component registry by providing the component identifier of the first component, a component name of the first component, an interaction identifier discovery universal resource location (URL) of the first component, and an interaction identifier response type.

12. The apparatus of claim 9 , wherein the instructions are further configurable to cause the processor to perform further operations comprising creating an entry corresponding to the first component in a trust store accessible by components in the distributed system, the entry including the component identifier of the first component, a shared secret, and one or more peer component identifiers, each peer component identifier being a component authorized to interact with the first component.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0512 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 28, 2021
From: THAKARE, SHRIKANT; SUBRAMANYAM, SHIVAKARTHIK
To: SALESFORCE.COM, INC.
Reel/Frame 055057/0018 →
Continuity (1)
Related Publication 20220239732A1 · Jul 28, 2022