IP Library Granted Patent US 11,640,369
Granted Patent B2
US 11,640,369 · App. 17/383,763 · Granted May 2, 2023

Cross-platform communication for facilitation of data sharing

Inventors: Deepti Bhogle (San Diego, CA); Joshua Timothy Nerius (Chicago, IL); Pierce Edward Courtney (San Diego, CA); Denis George Angleton (La Mesa, CA); Jacob Samuel Burman (Carlsbad, CA)
Assignee: ServiceNow, Inc.
G06F16/116G06F16/182G06F18/2113
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,640,369
App. No.
17/383,763
Granted
May 2, 2023
Kind
B2
Abstract

Persistent storage may contain: (i) a database table containing entries, (ii) a definition of a communication endpoint of a remote system, and (iii) outbound flow processing. One or more processors may be configured to: detect a state change associated with a local entry in the database table; read, from the database table, a set of data representing the local entry; transform, using the outbound flow processing, the set of data into a format receivable by the remote system; create, for the set of data, a correlation record that contains a local correlation identifier, wherein the correlation record specifies the local entry; transmit, to the remote system, the set of data as transformed and the local correlation identifier; receive, from the remote system and for the set of data, a remote correlation identifier; add, to the correlation record, the remote correlation identifier; and write, to a correlation table, the correlation record.

Claims (78)

1. A system comprising:

persistent storage containing: (i) a database table containing entries, (ii) a definition of a communication endpoint of a remote system, and (iii) outbound flow processing through which the entries can be synchronized with the remote system; and

one or more processors configured to:

detect a state change associated with a local entry in the database table;

read, from the database table, a set of data representing the local entry;

transform, using the outbound flow processing, the set of data into a format receivable by the remote system;

create, for the set of data, a correlation record that contains a local correlation identifier assigned by the system, wherein the correlation record specifies the local entry;

transmit, to the remote system, the set of data as transformed and the local correlation identifier;

receive, from the remote system and for the set of data, a remote correlation identifier assigned by the remote system;

add, to the correlation record, the remote correlation identifier; and

write, to a correlation table, the correlation record.

2. The system of claim 1 , wherein reading the set of data representing the local entry comprises placing the set of data read from the database table into an outbound queue, wherein transforming the set of data comprises the outbound flow processing reading the set of data from the outbound queue, wherein the outbound queue operates in a first-in-first-out manner, and wherein a scheduled job processes contents of the outbound queue with a duty cycle of m seconds every m+n seconds.

3. The system of claim 1 , wherein the one or more processors are further configured to:

detect a further state change associated with the local entry in the database table;

read, from the database table, a further set of data representing the local entry;

transform the further set of data into the format receivable by the remote system;

read, from the correlation table, the correlation record; and

based on the correlation record, transmit, to the remote system, the further set of data as transformed with at least one of the local correlation identifier or the remote correlation identifier.

4. The system of claim 3 , wherein the one or more processors are further configured to:

receive, from the remote system, a second remote correlation identifier for the further set of data; and

write, to the correlation table, a second correlation record containing the local correlation identifier and the second remote correlation identifier.

5. The system of claim 1 , wherein the persistent storage also contains definitions of an inbound application programming interface (API) and inbound flow processing through which the entries can be synchronized with the remote system, and wherein the one or more processors are further configured to:

receive, from the remote system and by way of the inbound API, an additional set of data with an additional remote correlation identifier assigned by the remote system;

transform, using the inbound flow processing, the additional set of data into a format storable by the system;

create, for the additional set of data, an additional correlation record that contains an additional local correlation identifier assigned by the system and the additional remote correlation identifier, wherein the additional correlation record specifies an additional local entry in the database table;

write, to the correlation table, the additional correlation record; and

write, to the database table and as the additional local entry, the additional set of data as transformed.

6. The system of claim 5 , wherein the one or more processors are further configured to:

receive, from the remote system and by way of the inbound API, a second additional set of data with the additional remote correlation identifier;

transform, using the inbound flow processing, the second additional set of data into the format storable by the system;

read, from the correlation table, the additional correlation record; and

based on the additional correlation record, write, to the database table and as the additional local entry, the second additional set of data.

7. The system of claim 5 , wherein receiving the additional set of data comprises placing the additional set of data into an inbound queue, wherein transforming the additional set of data comprises the inbound flow processing reading the additional set of data from the inbound queue, wherein the inbound queue operates in a first-in-first-out manner, and wherein a scheduled job processes contents of the inbound queue with a duty cycle of m seconds every m+n seconds.

8. The system of claim 1 , wherein the local entry is associated with an attachment stored as a file within the system, and wherein the one or more processors are further configured to:

based on the local entry being associated with the attachment, transmit, to the remote system, metadata for the attachment, wherein the metadata includes at least a filename of the attachment and a key;

receive, from the remote system, a request for the attachment and the key; and

based on receiving the request for the attachment and the key, transmit, to the remote system, the attachment.

9. The system of claim 1 , wherein the definition of the communication endpoint of the remote system includes one or more of: an Internet Protocol (IP) address of the remote system, a domain name of the remote system, a representational state transfer (REST) interface of the remote system, or an inbound application programming interface (API) user of the remote system.

10. The system of claim 9 , wherein transmitting the set of data as transformed and the local correlation identifier comprises transmitting the set of data and credentials of the inbound API user.

11. The system of claim 1 , wherein the local entry is associated with a domain configured on the system, wherein the outbound flow processing is configured to operate on the entries associated with the domain, and wherein transmitting the set of data as transformed comprises transmitting an indication of the domain with the set of data as transformed.

12. The system of claim 1 , wherein errors due to transforming the set of data into the format receivable by the remote system are flagged for manual review, and wherein errors due to transmitting the set of data are flagged for one or more automatic retries.

13. The system of claim 1 , wherein the state change is a change to the local entry.

14. A computer-implemented method comprising:

detecting a state change associated with a local entry in a database table, wherein persistent storage contains: (i) the database table, (ii) a definition of a communication endpoint of a remote system, and (iii) outbound flow processing through which entries of the database table can be synchronized with the remote system;

reading, from the database table, a set of data representing the local entry;

transforming, using the outbound flow processing, the set of data into a format receivable by the remote system;

creating, for the set of data, a correlation record that contains a local correlation identifier, wherein the correlation record specifies the local entry;

transmitting, to the remote system, the set of data as transformed and the local correlation identifier;

receiving, from the remote system and for the set of data, a remote correlation identifier assigned by the remote system;

adding, to the correlation record, the remote correlation identifier; and

writing, to a correlation table, the correlation record.

15. The computer-implemented method of claim 14 , wherein reading the set of data representing the local entry comprises placing the set of data read from the database table into an outbound queue, wherein transforming the set of data comprises the outbound flow processing reading the set of data from the outbound queue, wherein the outbound queue operates in a first-in-first-out manner, and wherein a scheduled job processes contents of the outbound queue with a duty cycle of m seconds every m+n seconds.

16. The computer-implemented method of claim 14 , further comprising:

detecting a further state change associated with the local entry in the database table;

reading, from the database table, a further set of data representing the local entry;

transforming the further set of data into the format receivable by the remote system;

reading, from the correlation table, the correlation record; and

based on the correlation record, transmitting, to the remote system, the further set of data as transformed with at least one of the local correlation identifier or the remote correlation identifier.

17. The computer-implemented method of claim 14 , wherein the persistent storage also contains definitions of an inbound application programming interface (API) and inbound flow processing through which the entries can be synchronized with the remote system, the computer-implemented method further comprising:

receiving, from the remote system and by way of the inbound API, an additional set of data with an additional remote correlation identifier assigned by the remote system;

transforming, using the inbound flow processing, the additional set of data into a format storable in the database table;

creating, for the additional set of data, an additional correlation record that contains an additional local correlation identifier and the additional remote correlation identifier, wherein the additional correlation record specifies an additional local entry in the database table;

writing, to the correlation table, the additional correlation record; and

writing, to the database table and as the additional local entry, the additional set of data as transformed.

18. The computer-implemented method of claim 14 , wherein the local entry is associated with an attachment stored as a file, the computer-implemented method further comprising:

based on the local entry being associated with the attachment, transmitting, to the remote system, metadata for the attachment, wherein the metadata includes at least a filename of the attachment and a key;

receiving, from the remote system, a request for the attachment and the key; and

based on receiving the request for the attachment and the key, transmitting, to the remote system, the attachment.

19. The computer-implemented method of claim 14 , wherein errors due to transforming the set of data into the format receivable by the remote system are flagged for manual review, and wherein errors due to transmitting the set of data are flagged for one or more automatic retries.

20. An article of manufacture including a non-transitory computer-readable medium, having stored thereon program instructions that, upon execution by a computing system, cause the computing system to perform operations comprising:

detecting a state change associated with a local entry in a database table, wherein persistent storage contains: (i) the database table, (ii) a definition of a communication endpoint of a remote system, and (iii) outbound flow processing through which entries of the database table can be synchronized with the remote system;

reading, from the database table, a set of data representing the local entry;

transforming, using the outbound flow processing, the set of data into a format receivable by the remote system;

creating, for the set of data, a correlation record that contains a local correlation identifier, wherein the correlation record specifies the local entry;

transmitting, to the remote system, the set of data as transformed and the local correlation identifier;

receiving, from the remote system and for the set of data, a remote correlation identifier assigned by the remote system;

adding, to the correlation record, the remote correlation identifier; and

writing, to a correlation table, the correlation record.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2021
From: BHOGLE, DEEPTI; NERIUS, JOSHUA TIMOTHY; COURTNEY, PIERCE EDWARD; ANGLETON, DENIS GEORGE; BURMAN, JACOB SAMUEL
To: SERVICENOW, INC.
Reel/Frame 056964/0069 →
Continuity (2)
Provisional Application 63184307 · May 5, 2021
Related Publication 20220358083A1 · Nov 10, 2022
Cited By (21)
US 12,248,361 US 12,254,014 US 12,259,998 US 12,271,719 US 12,271,739 US 12,282,385 US 12,309,235 US 12,362,995 US 12,399,712 US 12,425,195 US 12,438,790 US 12,499,016 US 12,554,380 US 12,563,115 US 12,587,432 US 12,603,823 US 12,613,990 US 12,619,350 US 12,619,402 US 12,664,002 US 12,683,852