Patent Document ID: 9818078
Application ID: 13796240
Patent Flag: 1

Claim One:
1. A non-transitory computer-readable storage medium having computer-executable instructions stored thereupon which, when executed by a computer, cause the computer to: access a plurality of event records generated by a plurality of event sources in a non-workflow program during execution of the non-workflow program on a computing device, the event records comprising log data describing different types of processing performed during execution of the non-workflow program, the event sources comprising one or more of a program, a module, a thread, a function, an application, a software component, or a hardware component utilized to implement the non-workflow program, the log data comprising one or more of an access log, an error log, a service call record, or an event trace; store the plurality of event records within a memory; cluster the stored plurality of event records into a plurality of event clusters; generate one or more candidate workflow networks from the plurality of event clusters; determine a difference between a sequence of at least a portion of the plurality of event records and at least one of the one or more candidate workflow networks; generate one or more scores, based at least in part on the difference, for the one or more candidate workflow networks; mutate one or more of the candidate workflow networks selected based at least in part upon the scores to generate one or more new candidate workflow networks; generate one or more scores for the one or more new candidate workflow networks; select one of the one or more new candidate workflow networks based at least in part upon the one or more scores generated for the one or more new candidate workflow networks; programmatically generate the workflow description corresponding to the non-workflow program based at least in part upon the selected new candidate workflow network, wherein the workflow description comprises one or more program code templates; store program code corresponding to the non-workflow program into the one or more program code templates, the program code configured to implement one or more functions associated with the non-workflow program; and execute, by the computer, the workflow description by executing the program code stored in the one or more program code templates instead of executing the non-workflow program.