IP Library Granted Patent US 12,487,906
Granted Patent B2
US 12,487,906 · App. 18/086,839 · Granted Dec 2, 2025

Discovery and predictive simulation of software-based processes

Inventors: Jebakumar Mathuram Santhosam Swvigaradoss (Hyderabad, IN); Fabio Casati (Santa Clara, CA); Manjeet Singh (Santa Clara, CA); Daniel Grady (Santa Clara, CA)
Assignee: ServiceNow, Inc.
G06F11/3612G06F11/3692
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 12,487,906
App. No.
18/086,839
Granted
Dec 2, 2025
Kind
B2
Abstract

An embodiment may involve obtaining a log regarding execution of a software application; obtaining indications of availabilities of resources related to the software application; determining, from the log and the indications of availabilities of the resources, a time series of software application activities; and training a prediction engine with the time series of software application activities, wherein the prediction engine as trained is configured to receive an input time series of further software application activities and generate an output time series that predicts additional software application activities. Another embodiment may involve obtaining an input time series of software application activities, wherein the input time series is based on a log regarding execution of a software application and includes indications of availabilities of resources associated with the software applications; and generating, using a prediction engine, an output time series based on the input time series that predicts additional software application activities.

Claims (47)

1 . A method comprising:

obtaining a log regarding execution of a software application on a computing system;

obtaining indications of availabilities of resources related to the software application;

determining, from the log and the indications of availabilities of the resources, a workflow graph representing a workflow of software application activities, wherein the workflow graph includes a plurality of workflow states, transitions between workflow states in the plurality of workflow states, and transition probabilities associated with each of the transitions, wherein each workflow state corresponds to a node of the workflow graph, wherein each transition between workflow states corresponds to an edge of the workflow graph;

determining, from the log, the workflow graph, the transition probabilities, and the indications of availabilities of the resources, a training time series of the software application activities;

training a prediction engine comprising a long short-term memory (LSTM) machine learning model stored in a memory with the training time series of the software application activities using an LSTM trainer, wherein the LSTM trainer produces the LSTM machine learning model with a preconfigured number of cells based on the training time series of the software application activities, wherein the prediction engine as trained is configured to receive an input time series of further software application activities and generate an output time series that predicts additional software application activities;

obtaining an altered input time series of the software application activities, wherein the altered input time series of the software application activities represents an alteration to at least one of the software application activities, the workflow, the transition probabilities, or the resources; and

generating, using the prediction engine, a predicted output time series that predicts additional software application activities based on the altered input time series of the software application activities.

2 . The method of claim 1 , wherein the log includes data representing state changes of the software application and timestamps of when the state changes occurred.

3 . The method of claim 2 , wherein the software application executes the workflow that includes a plurality of states, and wherein the state changes are between pairs of the plurality of states.

4 . The method of claim 3 , wherein the resources are computing hardware, computing software, or human agents assigned to carry out tasks associated with at least some of the plurality of states.

5 . The method of claim 1 , wherein the indications of availabilities of the resources include a schedule of resource availability.

6 . The method of claim 1 , wherein the determining the training time series of software application activities comprises:

decomposing an initially-determined time series into variables representing trends, periodic changes, and aperiodic changes; and

using the variables to extend the initially-determined time series, by way of extrapolation, forward or backward in time.

7 . A non-transitory computer-readable medium storing program instructions that, when executed by one or more processors of a computing system, cause the computing system to perform operations comprising:

obtaining a log regarding execution of a software application;

obtaining indications of availabilities of resources related to the software application;

determining, from the log and the indications of availabilities of the resources, a workflow graph representing a workflow of software application activities, wherein the workflow graph includes a plurality of workflow states, transitions between workflow states in the plurality of workflow states, and transition probabilities associated with each of the transitions, wherein each workflow state corresponds to a node of the workflow graph, wherein each transition between workflow states corresponds to an edge of the workflow graph;

determining, from the log, the workflow graph, the transition probabilities, and the indications of availabilities of the resources, a training time series of the software application activities;

training a prediction engine comprising a long short-term memory (LSTM) machine learning model stored in a memory with the training time series of the software application activities using an LSTM trainer, wherein the LSTM trainer produces the LSTM machine learning model with a preconfigured number of cells based on the training time series of the software application activities, wherein the prediction engine as trained is configured to receive an input time series of further software application activities and generate an output time series that predicts additional software application activities;

obtaining an altered input time series of the software application activities, wherein the altered input time series of the software application activities represents an alteration to at least one of the software application activities, the workflow, the transition probabilities, or the resources; and

generating, using the prediction engine, a predicted output time series that predicts additional software application activities based on the altered input time series of the software application activities.

8 . The non-transitory computer-readable medium of claim 7 , wherein the log includes data representing state changes of the software application and timestamps of when the state changes occurred.

9 . The non-transitory computer-readable medium of claim 8 , wherein the software application executes the workflow that includes a plurality of states, and wherein the state changes are between pairs of the plurality of states.

10 . The non-transitory computer-readable medium of claim 7 , wherein the indications of availabilities of the resources include a schedule of resource availability.

11 . The non-transitory computer-readable medium of claim 7 , wherein the determining the training time series of software application activities comprises:

decomposing an initially-determined time series into variables representing trends, periodic changes, and aperiodic changes; and

using the variables to extend the initially-determined time series, by way of extrapolation, forward or backward in time.

12 . The non-transitory computer-readable medium of claim 9 , wherein the resources are computing hardware, computing software, or human agents assigned to carry out tasks associated with at least some of the plurality of states.

13 . A system comprising:

one or more processors; and

memory, containing program instructions that, upon execution by the one or more processors, cause the system to perform operations comprising:

obtaining a log regarding execution of a software application;

obtaining indications of availabilities of resources related to the software application;

determining, from the log and the indications of availabilities of the resources, a workflow graph representing a workflow of software application activities, wherein the workflow graph includes a plurality of workflow states, transitions between workflow states in the plurality of workflow states, and transition probabilities associated with each of the transitions, wherein each workflow state corresponds to a node of the workflow graph, wherein each transition between workflow states corresponds to an edge of the workflow graph;

determining, from the log, the workflow graph, the transition probabilities, and the indications of availabilities of the resources, a training time series of the software application activities;

training a prediction engine comprising a long short-term memory (LSTM) machine learning model stored in a memory with the training time series of the software application activities using an LSTM trainer, wherein the LSTM trainer produces the LSTM machine learning model with a preconfigured number of cells based on the training time series of the software application activities, wherein the prediction engine as trained is configured to receive an input time series of further software application activities and generate an output time series that predicts additional software application activities;

obtaining an altered input time series of the software application activities, wherein the altered input time series of the software application activities represents an alteration to at least one of the software application activities, the workflow, the transition probabilities, or the resources; and

generating, using the prediction engine, a predicted output time series that predicts additional software application activities based on the altered input time series of the software application activities.

14 . The system of claim 13 , wherein the log includes data representing state changes of the software application and timestamps of when the state changes occurred.

15 . The system of claim 14 , wherein the software application executes the workflow that includes a plurality of states, and wherein the state changes are between pairs of the plurality of states.

16 . The system of claim 15 , wherein the resources are computing hardware, computing software, or human agents assigned to carry out tasks associated with at least some of the plurality of states.

17 . The system of claim 13 , wherein the indications of availabilities of the resources include a schedule of resource availability.

18 . The system of claim 13 , wherein the determining the training time series of software application activities comprises:

decomposing an initially-determined time series into variables representing trends, periodic changes, and aperiodic changes; and

using the variables to extend the initially-determined time series, by way of extrapolation, forward or backward in time.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2023
From: SWVIGARADOSS, JEBAKUMAR MATHURAM SANTHOSAM
To: SERVICENOW, INC.
Reel/Frame 063046/0897 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 22, 2022
From: SWVIGARADOSS, JEBAKUMAR MATHURAM SANTHOSAM; CASATI, FABIO; SINGH, MANJEET; GRADY, DANIEL
To: SERVICENOW, INC.
Reel/Frame 062181/0214 →
Continuity (1)
Related Publication 20240211373A1 · Jun 27, 2024
References Cited (152)
US 4941084A · Terada et al. · 1990 [cited by applicant]
US 5185860A · Wu · 1993 [cited by applicant]
US 5237518A · Sztipanovits et al. · 1993 [cited by applicant]
US 5261097A · Saxon · 1993 [cited by applicant]
US 5265252A · Rawson, III et al. · 1993 [cited by applicant]
US 5367685A · Gosling · 1994 [cited by applicant]
US 5390297A · Barber et al. · 1995 [cited by applicant]
US 5442791A · Wrabetz et al. · 1995 [cited by applicant]
US 5452415A · Hotka · 1995 [cited by applicant]
US 5522042A · Fee et al. · 1996 [cited by applicant]
US 5533116A · Vesterinen · 1996 [cited by applicant]
US 5655081A · Bonnell et al. · 1997 [cited by applicant]
US 5659736A · Hasegawa et al. · 1997 [cited by applicant]
US 5671412A · Christiano · 1997 [cited by applicant]
US 5696701A · Burgess et al. · 1997 [cited by applicant]
US 5715463A · Merkin · 1998 [cited by applicant]
US 5745879A · Wyman · 1998 [cited by applicant]
US 5761502A · Jacobs · 1998 [cited by applicant]
US 5764913A · Jancke et al. · 1998 [cited by applicant]
US 5887139A · Madison, Jr. et al. · 1999 [cited by applicant]
US 5909217A · Bereiter · 1999 [cited by applicant]
US 5937165A · Schwaller et al. · 1999 [cited by applicant]
US 5949976A · Chappelle · 1999 [cited by applicant]
US 5978594A · Bonnell et al. · 1999 [cited by applicant]
US 6021437A · Chen et al. · 2000 [cited by applicant]
US 6041347A · Harsham et al. · 2000 [cited by applicant]
US 6088717A · Reed et al. · 2000 [cited by applicant]
US 6101500A · Lau · 2000 [cited by applicant]
US 6128016A · Coelho et al. · 2000 [cited by applicant]
US 6131118A · Stupek, Jr. et al. · 2000 [cited by applicant]
US 6134581A · Ismael et al. · 2000 [cited by applicant]
US 6138122A · Smith et al. · 2000 [cited by applicant]
US 6148335A · Haggard et al. · 2000 [cited by applicant]
US 6166732A · Mitchell et al. · 2000 [cited by applicant]
US 6167448A · Hemphill et al. · 2000 [cited by applicant]
US 6175866B1 · Holloway et al. · 2001 [cited by applicant]
US 6175878B1 · Seaman et al. · 2001 [cited by applicant]
US 6260050B1 · Yost et al. · 2001 [cited by applicant]
US 6263457B1 · Anderson et al. · 2001 [cited by applicant]
US 6272150B1 · Hrastar et al. · 2001 [cited by applicant]
US 6336138B1 · Caswell et al. · 2002 [cited by applicant]
US 6363421B2 · Barker et al. · 2002 [cited by applicant]
US 6393386B1 · Zager et al. · 2002 [cited by applicant]
US 6397245B1 · Johnson, II et al. · 2002 [cited by applicant]
US 6434626B1 · Prakash et al. · 2002 [cited by applicant]
US 6438592B1 · Killian · 2002 [cited by applicant]
US 6456306B1 · Chin et al. · 2002 [cited by applicant]
US 6466932B1 · Dennis et al. · 2002 [cited by applicant]
US 6487590B1 · Foley et al. · 2002 [cited by applicant]
US 6505248B1 · Casper et al. · 2003 [cited by applicant]
US 6526442B1 · Stupek, Jr. et al. · 2003 [cited by applicant]
US 6621823B1 · Mellquist et al. · 2003 [cited by applicant]
US 6707795B1 · Noorhosseini et al. · 2004 [cited by applicant]
US 6742015B1 · Bowman-Amuah · 2004 [cited by applicant]
US 6763380B1 · Mayton et al. · 2004 [cited by applicant]
US 6816898B1 · Scarpelli et al. · 2004 [cited by applicant]
US 6895586B1 · Brasher et al. · 2005 [cited by applicant]
US 6948175B1 · Fong et al. · 2005 [cited by applicant]
US 6985901B1 · Sachse et al. · 2006 [cited by applicant]
US 7003564B2 · Greuel et al. · 2006 [cited by applicant]
US 7028228B1 · Lovy et al. · 2006 [cited by applicant]
US 7043537B1 · Pratt · 2006 [cited by applicant]
US 7043661B2 · Valadarsky et al. · 2006 [cited by applicant]
US 7062683B2 · Warpenburg et al. · 2006 [cited by applicant]
US 7096459B2 · Keller et al. · 2006 [cited by applicant]
US 7146574B2 · Goldthwaite et al. · 2006 [cited by applicant]
US 7197466B1 · Peterson et al. · 2007 [cited by applicant]
US 7215360B2 · Gupta · 2007 [cited by applicant]
US 7216304B1 · Gourdol et al. · 2007 [cited by applicant]
US 7222147B1 · Black et al. · 2007 [cited by applicant]
US 7281170B2 · Taylor et al. · 2007 [cited by applicant]
US 7412502B2 · Fearn et al. · 2008 [cited by applicant]
US 7505872B2 · Keller et al. · 2009 [cited by applicant]
US 7593013B2 · Agutter et al. · 2009 [cited by applicant]
US 7596716B2 · Frost et al. · 2009 [cited by applicant]
US 7617073B2 · Trinon et al. · 2009 [cited by applicant]
US 7660731B2 · Chaddha et al. · 2010 [cited by applicant]
US 7676294B2 · Baier et al. · 2010 [cited by applicant]
US 7676437B2 · Satkunanathan et al. · 2010 [cited by applicant]
US 7840490B1 · Sellers et al. · 2010 [cited by applicant]
US 7877783B1 · Cline et al. · 2011 [cited by applicant]
US 7890869B1 · Mayer et al. · 2011 [cited by applicant]
US 7966398B2 · Wiles, Jr. · 2011 [cited by applicant]
US 8060396B1 · Bessler et al. · 2011 [cited by applicant]
US 8196210B2 · Sterin · 2012 [cited by applicant]
US 8321948B2 · Robinson et al. · 2012 [cited by applicant]
US 8407669B2 · Yee et al. · 2013 [cited by applicant]
US 8554750B2 · Rangarajan et al. · 2013 [cited by applicant]
US 8595647B2 · Sabin et al. · 2013 [cited by applicant]
US 8620818B2 · Hughes et al. · 2013 [cited by applicant]
US 8646093B2 · Myers et al. · 2014 [cited by applicant]
US 8674992B2 · Poston et al. · 2014 [cited by applicant]
US 8725647B2 · Disciascio et al. · 2014 [cited by applicant]
US 9053460B2 · Gilbert et al. · 2015 [cited by applicant]
US 10673963B1 · Feiguine et al. · 2020 [cited by applicant]
US 10699237B2 · Singh et al. · 2020 [cited by applicant]
US 10749943B1 · Feiguine et al. · 2020 [cited by applicant]
US 10771344B2 · Bitterfeld et al. · 2020 [cited by applicant]
US 10819587B2 · Singh · 2020 [cited by applicant]
US 10824650B2 · Bar Oz et al. · 2020 [cited by applicant]
US 10944654B2 · Rimar et al. · 2021 [cited by applicant]
US 11089115B2 · Garty et al. · 2021 [cited by applicant]
US 11095506B1 · Erblat et al. · 2021 [cited by applicant]
US 11115432B2 · Singh · 2021 [cited by applicant]
US 11222290B2 · Singh et al. · 2022 [cited by applicant]
US 20020116340A1 · Hellberg et al. · 2002 [cited by applicant]
US 20020133584A1 · Greuel et al. · 2002 [cited by applicant]
US 20020158969A1 · Gupta · 2002 [cited by applicant]
US 20030118087A1 · Goldthwaite et al. · 2003 [cited by applicant]
US 20030200293A1 · Fearn et al. · 2003 [cited by applicant]
US 20050015217A1 · Weidl et al. · 2005 [cited by applicant]
US 20050091356A1 · Izzo · 2005 [cited by applicant]
US 20060026453A1 · Frost et al. · 2006 [cited by applicant]
US 20060095461A1 · Raymond · 2006 [cited by applicant]
US 20060179058A1 · Bram et al. · 2006 [cited by applicant]
US 20060293942A1 · Chaddha et al. · 2006 [cited by applicant]
US 20070033279A1 · Battat et al. · 2007 [cited by applicant]
US 20070188494A1 · Agutter et al. · 2007 [cited by applicant]
US 20070288389A1 · Vaughan et al. · 2007 [cited by applicant]
US 20080133289A1 · Armour et al. · 2008 [cited by applicant]
US 20080148253A1 · Badwe et al. · 2008 [cited by applicant]
US 20080319779A1 · Hughes et al. · 2008 [cited by applicant]
US 20090088875A1 · Baier et al. · 2009 [cited by applicant]
US 20090228984A1 · Sterin · 2009 [cited by applicant]
US 20100110932A1 · Doran et al. · 2010 [cited by applicant]
US 20170185902A1 · Kumar · 2017 [cited by examiner]
US 20170255945A1 · McCord · 2017 [cited by examiner]
US 20180123940A1 · Rimar et al. · 2018 [cited by applicant]
US 20190104398A1 · Owen et al. · 2019 [cited by applicant]
US 20200050689A1 · Tal et al. · 2020 [cited by applicant]
US 20200204443A1 · Bar Oz et al. · 2020 [cited by applicant]
US 20200265944A1 · Jagannatha · 2020 [cited by examiner]
US 20200341830A1 · Bangad · 2020 [cited by examiner]
US 20200379803A1 · Saillet · 2020 [cited by examiner]
US 20200394462A1 · Hild · 2020 [cited by examiner]
US 20220308981A1 · Zeigen · 2022 [cited by examiner]
US 20220327397A1 · Braviner · 2022 [cited by examiner]
US 20230117731A1 · Mv · 2023 [cited by examiner]
US 20240012875A1 · Pal · 2024 [cited by examiner]
US 20240045726A1 · Leach · 2024 [cited by examiner]
EP 0433979 · 1991 [cited by applicant]
EP 1607824 · 2005 [cited by applicant]
WO WO9934285 · 1999 [cited by applicant]
WO WO0052559 · 2000 [cited by applicant]
WO WO0179970 · 2001 [cited by applicant]
Jitendra Kumar et al., “Long Short Term Memory Recurrent Neural Network (LSTM-RNN) Based Workload Forecasting Model For Cloud Datacenters,” 2018 [retrieved on Nov. 2, 2024], Procedia Computer Science, vol. 25, 2018, pp.… [cited by examiner]
Ansuman Banerjee et al., “A Framework for Speculative Scheduling and Device Selection for Task Execution on a Mobile Cloud,” 2014 [retrieved Apr. 15, 2025], downloaded from <url>:https://link.springer.com/chapter/10.100… [cited by examiner]
Alok Singh et al., “A Machine Learning Approach for Modular Workflow Performance Prediction,” 2017 [retrieved Jul. 17, 2025], Proceedings of the 12th Workshop on Workflows in Support of Large-Scale Science, Article No. … [cited by examiner]
U.S. Appl. No. 17/521,474, filed Nov. 8, 2021. [cited by applicant]
U.S. Appl. No. 17/837,706, filed Jun. 10, 2022. [cited by applicant]
Bring Your Digital Twin to Work, Aug. 10, 2021. [cited by applicant]
How Digital Twins are Changing Work, May 24, 2019. [cited by applicant]