US20210406798A1 - Business process decomposition and modular reusable process automation system - Google Patents
Business process decomposition and modular reusable process automation system Download PDFInfo
- Publication number
- US20210406798A1 US20210406798A1 US17/474,634 US202117474634A US2021406798A1 US 20210406798 A1 US20210406798 A1 US 20210406798A1 US 202117474634 A US202117474634 A US 202117474634A US 2021406798 A1 US2021406798 A1 US 2021406798A1
- Authority
- US
- United States
- Prior art keywords
- microbots
- business process
- microbot
- business
- execution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000000034 method Methods 0.000 title claims abstract description 367
- 230000008569 process Effects 0.000 title claims abstract description 332
- 238000004801 process automation Methods 0.000 title claims abstract description 34
- 238000000354 decomposition reaction Methods 0.000 title description 3
- 230000000977 initiatory effect Effects 0.000 claims description 7
- 230000007704 transition Effects 0.000 claims 2
- 238000012545 processing Methods 0.000 description 36
- 238000003860 storage Methods 0.000 description 21
- 238000007726 management method Methods 0.000 description 17
- 238000004891 communication Methods 0.000 description 16
- 230000008520 organization Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 8
- 230000009471 action Effects 0.000 description 7
- 238000013523 data management Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000013515 script Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 235000019580 granularity Nutrition 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000007639 printing Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000003292 glue Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000012358 sourcing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06315—Needs-based resource requirements planning or analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0633—Workflow analysis
Definitions
- automation approaches typically are constructed such that scripts or other code can be used to replace human operation of various subprocesses, and to guide an overall business process.
- automation systems may be used to process data across multiple business applications, manipulate a graphical user interface to perform specific functions, or initiate physical processes.
- automation approaches consider the overall process as a whole, and are used to “glue together” use of different applications in situations where processes are high volume and/or repeatable.
- one method can include defining a business process in metadata, and, based on that metadata, selecting microbots to perform micro-operations included in the business process.
- An event engine initiates execution of the business process using the microbots.
- Each of the plurality of microbots includes microbot metadata defining a micro-operation performed by the microbot and data dependencies of that microbot, and execution of each of the plurality of microbots is initiated independently of the others of the plurality of microbots.
- a business process automation system includes a business process execution platform executable on a computing system.
- the business process execution platform includes a process management engine, a microbot engine, and an event engine.
- the process management engine is configured to define each of a plurality of different business processes, the plurality of different business processes comprising processes including a plurality of operations executed on a plurality of different computing systems and software applications.
- the microbot management engine is configured to manage definitions of a plurality of microbots, the plurality of microbots including one or more microbots configured to interface with one or more of the plurality of different computing systems and software applications to perform at least a portion of the physical task.
- the event engine is configured to initiate execution of a business process defined in the process management engine by calling a selected plurality of the microbots to perform the business process, the microbots each performing a portion of the business process independently from other microbots.
- the event engine manages data dependencies within the business process and initiating use of each of the selected plurality of microbots based on the data dependencies.
- a method of automating business processes including one or more physical processes includes defining a business process in process metadata, the business process being a process that is executed repeatedly by an organization and including one or more inputs, one or more outputs, and a plurality of task-based operations, at least one of the task-based operations including a physical task to be performed on an object.
- the method further includes, based on the process metadata, selecting a plurality of microbots to perform micro-operations included in the business process, the plurality of microbots including a microbot configured to perform at least a portion of the physical task.
- the method also includes initiating execution of the business process from an event engine, the event engine managing execution of the plurality of microbots.
- Each of the plurality of microbots comprises microbot metadata defining a micro-operation performed by the microbot and data dependencies of that microbot. Additionally, execution of each of the plurality of microbots is initiated independently of the others of the plurality of microbots.
- a system in a third aspect, includes a programmable circuit and a memory operatively connected to the programmable circuit.
- the memory stores a definition of a business process in process metadata, the business process being a process that is executed repeatedly by an organization and including one or more inputs, one or more outputs, and a plurality of task-based operations, at least one of the task-based operations including a physical task to be performed on an object.
- the memory further stores instructions that, when executed by the programmable circuit, cause the system to: based on the process metadata, select a plurality of microbots to perform micro-operations included in the business process, the plurality of microbots including a microbot configured to perform at least a portion of the physical task; and initiate execution of the business process from an event engine, the event engine managing execution of the plurality of microbots.
- Each of the plurality of microbots comprises microbot metadata defining a micro-operation performed by the microbot and data dependencies of that microbot. Execution of each of the plurality of microbots is initiated independently of the others of the plurality of microbots.
- FIG. 1 illustrates an environment in which the methods and systems of the present disclosure can be implemented
- FIG. 2 illustrates an example business process, and a traditional methodology for conceptualizing and automating such a business process
- FIG. 3 illustrates a possible example decomposition of a business process and use of microbots for performance of the business process, according to an example implementation
- FIG. 4 illustrates a business process automation system, according to an example embodiment
- FIG. 5 illustrates a business process automation environment in which the business process automation system of FIG. 4 can be implemented
- FIGS. 6A-6C illustrate example microbots useable within the business process automation system of FIGS. 3-5 ;
- FIG. 7 illustrates an example sequence of microbot calls from an event engine to perform a plurality of business processes, according to example embodiments
- FIG. 8 illustrates a method of automating business processes including one or more physical processes, according to an example embodiment
- FIG. 9 illustrates a computing system with which aspects of the present disclosure can be implemented.
- embodiments of the present disclosure are directed to a system for process automation in which an overall process is decomposed into atomic actions each performed by an automation component called a “bot”, which can be a software-based component, or mixed software and physical device-based component that is capable of accomplishing an atomic action within a process to be automated.
- a bot can be a software-based component, or mixed software and physical device-based component that is capable of accomplishing an atomic action within a process to be automated.
- embodiments of the present disclosure also provide for a framework, or platform, within which such bots can be executed, which allows for use of customized and reusable bots in combination to execute an overall business process.
- a business process can be decomposed to a set of discrete actions, each performed by a bot. Because, in the context of the present disclosure, each business process is divided into a variety of different process steps, interfaces, user inputs, and other operations, each associated with a bot, in some instances, and as further described herein, the bots as implemented in the present disclosure can be referred to as “microbots”, meaning bots that perform (relatively) small segments of an overall business process.
- microbots are also limited in “size” in this matter, because they are typically associated with or interface with a single application or perform a single type of action. Because microbots are limited in “size”, they are generally considered to be stateless, in that they perform atomic tasks rather than overall processes.
- code segments that automate portions of an overall business process for example by providing an automated interface to different software applications, physical subprocesses, or which themselves perform a physical portion of a previously-manual business process can be referred to herein as being constructed from a plurality of microbots logically interrelated to one another, although specific microbots may be more or fewer functions depending upon the requirements of any given business process and its current state of automation.
- each microbot may have a function that can be called by an event engine to coordinate operation.
- Each microbot can execute in parallel or series, but is also aware of its metadata and data dependencies, in case such dependencies occur across microbot execution.
- the platform can prioritize microbot operations, and manage security in data access by the various microbots.
- Example microbots include self-learning capabilities, can parse and analyze text, and may have adapters for specific types of files (e.g., PDF, DOC, images, etc.). In some instances, microbots perform at least some physical processes (rather than simply data manipulation). Additionally, in some aspects, the microbots include assignable security levels and defined data interfaces.
- Such coordination of discrete bots that perform portions of an overall process has a number of advantages over existing systems. For example, if one application used in a business process that requires multiple applications is changed, only a single microbot need be modified (or a new microbot created) for interacting with that application. Furthermore, the overall framework can monitor execution of the microbots which allows for microbots to be halted and/or restarted if they are unsuccessful in execution, and furthermore long-running bots can be replicated such that multiple executions of the same business process do not need to wait for the single microbot to finish the lengthy task before proceeding with a new record or portion of the process.
- each microbot is independently executable and does not itself maintain data or process status, each microbot can easily be discarded and replaced “on the fly” such that the overall system can maintain proper operation through many types of errors that might occur over the course of execution of various business processes.
- microbots are easily scalable to meet throughput needs of particular business processes.
- microbots can be reused in different business processes, thereby simplifying automation of new business processes. In such cases, only the unique or custom operations included in a business process would need to be newly-automated.
- a microbot-based process to assist in execution of such high-frequency business processes provides substantial flexibility in defining the business process and enables a user to adapt a definition of a business process to cover any specific use cases which may arise that are not well-handled by an automation process.
- a large organization may process over 100,000 invoices from vendors each week.
- Each of these invoices may or may not match to products received on shipping receipts; still further, what constitutes a “match” may be made more difficult because the item description on the invoice (or shipping receipt) is not standardized and may change over time. Therefore, determining a “match” may be an inexact process, since slight differences in color, sourcing, etc. may not matter to the organization, but may matter in other contexts.
- an invoice mismatching a shipping receipt due to an order of shirts being wrong sizes may be unacceptable, whereas a mismatch between shirts having slightly different color may be acceptable.
- This may be the result of a number of microbot operations, including at least a scanning operation and a matching operation.
- the microbot-based process automation system described herein may allow a user to initially construct a business process in which both physical documents (invoice and shipping receipt) are scanned and compared, and an exact match is required; any non-identical descriptions or items may require user intervention or supervision.
- a new matching microbot can be developed and inserted into the business process to improve operation and reduce the number of instances where user intervention is required.
- the environment 100 represents a business process automation environment in which a plurality of business systems 102 a - n are hosted by an organization.
- the plurality of business systems can take a wide number of forms.
- business system 102 a may be one or more computing systems hosting online transaction processing software that is used in the context of a billing and invoicing operation
- business system 102 b may be a financial subsystem used to issue payments
- Business subsystem 102 c may be a financial document processing back-end subsystem used to digitize physical documents, such as checks, purchase orders, invoices, receipts, etc., for routing to other users or systems within the organization.
- subsystem 102 c may often perform processes that are typically at least partially performed with human input.
- Other business systems hosting other business processes e.g., other online transaction processing applications, inter- or intra-business communication modules
- may be included as well e.g., as shown to be in business systems 102 a - n.
- the business processes are networked to a computing system 105 via a network 104 .
- the network 104 can be, for example, a secured business intranet on which automation instructions can be securely transmitted to the various business processes 102 a - n.
- This can include wired and/or wireless networks, and a variety of various types of security mechanisms included therein.
- the computing system 105 hosts a business process automation platform, as will be discussed in further detail below.
- the computing system 105 although illustrated for simplicity as a single computing device, can include a plurality of computing devices.
- the computing system 105 is accessible by a process manager, who can be, for example, a designer of a business process, who may be responsible for using the business process automation platform to define a process, automate that process by selecting one or more microbots for execution of the process and resources to be used by those microbots (e.g., workers, as discussed below) and to establish settings in the platform associated with, for example, security or administration of the process.
- the process manager can also determine a schedule for the process to be performed using the business process automation platform.
- the process manager may be local to or remote from the computing system 105 , but generally has access to the computing system 105 via a user interface presented within the business process automation platform.
- a realtime operator 106 may be one or more person(s) who traditionally have access via the network 104 to the various business systems 102 a - n.
- the realtime operator 106 may be a group of individuals responsible for executing various business processes using the business systems.
- a realtime operator may be a group of individuals responsible for receiving goods and generating receipts for goods or services, receiving invoices, and processing payments associated with those invoices.
- the realtime operator may be required to match various goods from a single receipt to many invoices (or vice versa) and accurately track and process the payments made to ensure correspondence across the various steps of an inventory intake process. This process can be very time or labor intensive, and is repeatable, rendering it a possible candidate for automation.
- a business process 200 may include a plurality of discrete steps, or sub-processes.
- the business process 200 may have a plurality of inputs to the process initially, or at some later time during the overall process.
- Each subprocess is usually considered sequentially, with one or more subprocesses requiring human input to manage that subprocess.
- the subprocesses may be computing manipulations, other subprocesses, such as document scanning, printing, or other physical operations may be performed as part of a subprocess as well.
- FIG. 1 the subprocesses may be computing manipulations, other subprocesses, such as document scanning, printing, or other physical operations may be performed as part of a subprocess as well.
- the business process is generally considered to be a series of interconnected steps in which a first step in the business process (as the process would be executed by a human) would be performed, and its data provided to a second step, and so on, until the business process is completed.
- automation code can be provided that accompanies the business process, for example in the form of a script.
- the script may execute on one or more computing systems and can call the various applications to be executed; however some of the subprocesses may be performed on a different computer, or may be physical processes that are not necessarily amenable to script-based execution.
- a relatively slow subprocess or a subprocess that requires user input, is included in the overall business process 200 , that business process can only be executed as fast as that slow-executing subprocess. This results in reserving resources for portions of the process that would otherwise be able to complete earlier, but for the fact that those process portions are waiting for slow-executing subprocesses in order to continue execution.
- an overall scripting solution to automation would fail if any of the subprocesses were to fail, e.g., due to abnormal data encountered, or due to a change in the application to which the automation is directed.
- a business process execution platform 300 hosts a plurality of bots that can be used to execute specific portions of an overall process. These bots, or microbots (as explained above) can execute specific portions of the overall process. It is noted that the microbots do not necessarily correspond to the subprocesses described in connection with FIG. 2 ; rather, the microbots are defined according to discrete tasks that can be performed on a, preferably, reusable basis, such that each microbot can be stored in a library and reused for other business processes.
- each microbot is defined to be stateless, in that each has a defined input interface and output interface (e.g., defining a structure of data or objects on which the microbot will operate), but does not define conditions under which that microbot will execute; rather, supporting infrastructure will selectively call microbots for execution.
- a defined input interface and output interface e.g., defining a structure of data or objects on which the microbot will operate
- microbots may be associated with more granular or re-usable tasks or portions of a process, such as providing a data interface to a particular accounting application, performing a specific GUI manipulation, applying security to data retrieved from an application, performing a mathematical operation on data, or initiating a physical process based on that data.
- Each microbot will generally not have knowledge of the overall process, but merely will have a set of expected inputs, a defined output, and a defined process to be performed, as described further below in connection with FIGS. 5A-5C .
- a process may be decomposed into portions that can be accomplished using, e.g., Bot 1 302 , a data item 304 , PDT 306 , Bot 2 308 , Bot 3 310 , Bot 4 312 , and so on.
- the business process execution platform 300 can initiate execution of each of the microbots in whatever order desired, so long as the business process execution platform 300 manages data dependencies among those microbots.
- the business process execution platform 300 can instantiate multiple instances of that microbot to improve throughput.
- Bot 1 302 there may be some data dependencies among Bot 1 302 , data item 304 , PDT 306 , and Bot 2 308 .
- Bot 1 302 multiple instances are called by the business process execution platform 300 , to ensure throughput at that portion of an overall business process.
- Bot 3 310 and Bot 4 312 may not have input data dependencies (e.g., each may perform separate calculations or manipulations from different applications based on the output of Bot 2 308 that are later merged), both of those bots 310 , 312 can be called simultaneously, thereby further improving throughput and performance of the overall process.
- each bot or microbot
- process failures can be handled more readily. Because each microbot will pass processed data back to the business process execution platform 300 , the platform can use data received from a previously-executing microbot and restart a bot in case of failure. Furthermore, if microbot failure is due to a changed interface within an underlying application to be automated, that microbot can be replaced within the overall system without recreating the entire business process automation.
- each microbot can have customized security features associated therewith, such that each microbot associated with a particular application can gave adequate access rights to the data associated with that application, but the microbot can secure (or remove sensitive data) prior to passing that data back to the business process execution platform 300 so sensitive data is not shared across applications (which would also traditionally not be possible with business automation systems, which operate as a whole automating entity).
- a business process automation system 400 including a business process execution platform on which such a system can be implemented.
- the business process execution platform 300 is implemented on one or more computing systems, such as the system 105 of FIG. 1 , as implemented on the computing device of FIG. 8 .
- the business process execution platform 300 interfaces to a plurality of enterprise systems 450 , for example business systems 102 a - n as discussed above in connection with FIG. 1 .
- the business process execution platform 300 referred to also herein simply as platform 300 , can be used to host a plurality of different automations for business processes and concurrently manage execution of those processes at different priorities, security levels, and complexities.
- the business process execution platform 300 includes, in the embodiment shown, an administration module 402 , a users module 404 , a platform core 406 , a security module 408 , a user management module 410 , a data management layer 412 , and a worker farm 414 .
- Other modules or components of the business process execution platform 300 could be used as well, and different organizations of modules and/or data could also be utilized.
- the administration module 402 allows an administrator of the business process execution platform 300 to view and adjust execution of the platform itself, for example to manage system resources, assess operation of automated tasks, etc.
- the users module 404 presents a user interface at which a user can for example, define processes, microbots, interfaces to external applications, etc., which will be modified in the platform core 406 .
- the platform core 406 manages calling and execution of various microbots based on a definition of which microbots are to be involved in performing a particular business process.
- the business process execution platform 300 includes a process management module 420 , a bot registry 422 , a worker farm management module 424 , a conversational bot 426 , a programmable bot engine 428 , an event engine 430 , a workload management engine 432 , one or more adapters 434 , and a self-learning bot 436 . Details regarding each of these components of the platform core 406 are provided below.
- the security module 408 manages data security within the business process execution platform 300 .
- the security module 408 will manage data access rights for each of the microbots and workers included in the platform, to ensure that correct microbots and/or workers can access business systems as required to automate desired business processes.
- the security module 408 can, for example, be configured to ensure compliance with applicable data security laws and regulations, for example by removing personally-identifying information from data ingested by the platform 300 via the microbots.
- the security module 408 can also set separate security levels for various microbots' access to data retrieved from different business systems.
- the user management module 410 manages access to the business process execution platform 300 , for example by one or more process managers as illustrated in FIG. 1 .
- the administration module 402 can manage permissions for each process manager to view, create, modify, or remove definitions of processes, microbots, and interfaces to external applications, data, or systems.
- the data management layer 412 manages data provided to the platform 300 by the various microbots included in the platform core 406 .
- the data management layer 412 can store data at various stages through a business process, thereby allowing failed microbots to restart using the same data, and to store overall results of a business process.
- the worker farm 414 represents a set of computing and/or physical resources that can be used by the microbots to achieve tasks included in a business process.
- the worker farm 414 can include one or more computing systems.
- the worker farm 414 can also include electromechanical systems and special-purpose computing systems that are specifically configured for robotic, physical operations (e.g., document processing operations).
- the worker farm can include computing systems having different capabilities (e.g., different applications and/or operating systems) so that they can be used for different purposes.
- the process management module 420 coordinates among the bot registry, workload management engine, and event engine to ensure coordination of microbots to accomplish business processes.
- the process management module 420 can receive definitions of processes (e.g., via the user interface) and store those process definitions in metadata, such that each process can be triggered (e.g., by the event engine 430 ) to initiate use of microbots to perform a specific process.
- the bot registry 422 stores a description of each of the microbots managed in the platform 300 , so that each of the microbots can be selected for execution as part of execution of a business process.
- the bot registry acts as a centralized organization location for all microbots, so users can select appropriate microbots for use in automating business processes. It is noted that in many cases, the microbots can be general-purpose microbots; however, some special-purpose microbots
- the worker farm management module 424 tracks the available resources in the worker farm 414 , and allocates workers from the worker farm to assist in execution of business processes. For example, a worker from the worker farm may have installed on it an application for data processing based on data stored in a database within one of the enterprise systems 450 ; in such an instance, a microbot may be called to initiate execution of the worker, with another microbot acting as an interface (e.g., an adapter, as discussed below) to retrieve data for processing.
- an interface e.g., an adapter, as discussed below
- the conversational bot 426 is a particular microbot type that can be used for conversational processes.
- the conversational bot 426 can prompt communication with a third party user, for example to obtain information that is to be included in a report generated by a business process, or to obtain direction as to how to complete a business process.
- Output from the conversational bot 426 , as well as other microbots, can be sent to and managed by the data management layer 412 to further inform how to continue automated execution of a business process.
- the programmable bot engine 428 calls various microbots for execution according to the metadata used to define each business process.
- the programmable bot engine 428 coordinates with the event engine 430 , which manages the state of execution of a process via events that occur within the platform 300 , which are updated as microbots are called for execution.
- the workload management engine 432 supervises execution of business processes (via the programmable bot engine 428 and event engine 430 ) to determine workloads and process issues, and manages throughput issues accordingly. For example, the workload management engine 432 may elect to assign additional workers to a particular process given the likelihood that the process will require substantial resources, or may elect to instantiate multiple versions of a microbot to improve throughput of a particular portion of a process. In example embodiments, the workload management engine 432 manages a queue of work to be performed by the platform 300 to determine the resources to be assigned.
- the one or more adapters 434 correspond to types of microbots that connect to remote systems or enterprise systems 450 , for example to integrate functions external to the business process execution platform 300 .
- Adapters can also correspond to interfaces to specific types of files (e.g., PDF, DOC, images, etc.).
- the self-learning bot 436 generally corresponds to a bot type that can learn from human interaction and adjust/update processing according to observed human behavior. This can, for example, be implemented using neural networks or other learning models, and can track a current state, human input, intended output state, and confirming input from the user (e.g., approval or validation).
- the self-learning bot 436 can also generate one or more recommendations based on the current state of the overall platform 300 , for example to provide recommendations for candidate processes for automation given the current collection of microbots available for use in automation. This can include generating recommendations for automating parts of processes, to reduce an extent of user activity in performing such fully- or partially-automated processes.
- This may allow a user to develop an improved microbot that makes decisions based on such a learning model, which may have the effect of reducing the amount of user interaction within a business process that is required (i.e., reducing the number of instances of the business process that are unable to be handled by a microbot and therefore require user review/action).
- FIG. 5 additional details regarding a business process automation environment 500 in which the business process automation system of FIG. 4 can be implemented.
- the environment 500 allows microbots to be developed and deployed within a business process execution platform 300 as discussed in FIG. 4 ; however, where FIG. 4 illustrates functional operation of such a system, the environment 500 depicts physical layout details.
- a developer 501 can interact with a microbot development platform 502 .
- the microbot development platform will store definitions of microbots in a database 503 , and can retrieve such microbots using a graphical user interface to develop master images 504 and containers 505 for those images.
- the containers 505 can be used for development of images built using a graphical tool, which are then stored back into the database 503 as complete.
- database 503 may be a local database or a remote, cloud-based database configured to securely store definitions of microbots for retrieval to be used in business processes on an as-needed basis.
- the business process execution platform includes a dashboard 510 and reporting interface 512 interfaced to a load balancer 514 .
- the dashboard 510 allows a user to monitor the microbots available and to define processes that can be performed using microbots.
- the dashboard 510 further allows a user to view executing processes (e.g., processes being executed in a microbot hosting cluster 550 ), and can include scheduling facilities for scheduling execution of business processes, and start/stop microbots on a per-bot basis within a process (e.g., for troubleshooting or other purposes).
- the reporting interface 512 provides operational information to the user as well, including a number of microbots being used to perform a process, number of processes completed, a completion rate, a rate at which a process fails, or a rate at which user input is required into the process to complete the process.
- the reporting interface 512 may include one or more bot analytics tools, e.g., to detect bottlenecks in defined business processes, critical points at which specific microbots fail and reasons for such failure, and automated identification of specific areas of improvement of such bots (e.g., including through use of artificial intelligence/learning models to improve microbot decisionmaking). Other types of reporting tools may be included as well.
- user access to the dashboard 510 and/or reporting interface 512 may be controlled based on user roles. For example, certain developer users may be allowed to develop microbots and add those microbots to a pool of available microbots; other users may be allowed to access microbots and define usage within a business process. Still further, other users may be allowed to initiate execution of business processes, but may not have access to edit the process or microbots included therein. Still further, some users may have access only to the reporting interface 512 for certain business processes, allowing the user to view statistics regarding execution of those specific business processes (e.g., % executed successfully, elapsed time, etc.).
- the load balancer 514 manages execution of business processes defined using the dashboard 510 , e.g. by calling one or more handlers 520 .
- Each handler 520 includes a cluster manager 522 that manages execution of a cluster 540 , which hosts microbots during execution.
- the load balancer 514 may assess, based on service discovery system 516 , what resources are available at the business process execution platform 300 , and instantiate a handler 520 .
- one handler is depicted in FIG. 5 , it is noted that multiple handlers may be included in the platform 300 , e.g., based on a number of clusters 540 that are to be managed by the platform 300 .
- each handler 520 includes a data services module 522 that provides definition of specific data connections for databases containing data to be operated on to a data management layer 412 (e.g., corresponding to an instance of the data management layer 412 of FIG. 4 ).
- a microbot catalog 524 and scheduler 526 define the available microbots for use in the process to be executed via the handler 520 , as well as a scheduled timing for execution of that process.
- the scheduler 526 can be used to trigger operation of a particular business process in a cluster 540 , via communication to the cluster 540 via a cluster manager 528 .
- the handler 520 includes a queue manager 530 and a secret manager 532 .
- the queue manager 530 manages a queue of processes to be performed and/or resources (e.g., microbots, etc.) that are awaiting operation, while the secret manager 532 controls information to be used in the business process execution.
- the handler 520 and particularly cluster manager 528 , is associated with a cluster 540 .
- Each cluster has a corresponding framework 542 , which hosts a scheduler 544 useable to initiate execution of a business process by triggering execution of one or more task execution components.
- the scheduler 544 initiates communication with a master task execution component 546 , which is allocated from a master task execution components that are managed by a zookeeper 548 .
- the zookeeper 548 manages free/used status of task execution components, and can allocate free task execution components to business processes on an as-available basis.
- a master task execution component 546 is linked to one or more slave task execution components 550 .
- Each of the task execution components includes one or more executors 552 , with each executor capable of hosting execution of one or a plurality of tasks 554 .
- the tasks are performed within executors 552 by retrieving microbot images 560 , e.g., from database 503 , in response to selection from microbot catalog 524 . Accordingly, selected microbots can be sequenced by a scheduler 544 and executed in a sequence defined in the platform 300 and enforced by the scheduler and relationships among the execution components 546 , 550 .
- each cluster may be instantiated as a cloud-based set of computing resources useable to perform any required business processes.
- FIG. 6A illustrates a first possible microbot 600 that includes a platform interface 602 , an output interface 604 , and external application interface transform code 606 .
- the platform interface 602 and output interface 604 generally correspond to a set of preconditions to execution of the microbot and postconditions following execution of the microbot; these can include a particular state of data or state of an application on which the microbot may operate.
- the event engine can determine when appropriate preconditions are present to call a particular microbot, and can also determine when appropriate postconditions are present following operation of the microbot, to assess whether the microbot performed its task within the overall business process appropriately.
- the microbot 600 is configured to perform a transform on external application data; as such the microbot 600 has a platform interface that defines the data format it expects as input, and an output interface that is configured to either (1) output processed data, or (2) interface with an external data storage system or application to direct processing of that data with the application to which the microbot 600 is interfaced.
- the microbot 600 is constructed using computer executable code, for example using JavaScript Object Notation (JSON) code for simple creation and deployment for execution; however, other languages can be used for rapid creation and deployment.
- JSON JavaScript Object Notation
- each microbot's preconditions and postconditions, and optionally its function can be defined in metadata as well such that the event engine can readily access these conditions for each microbot to assess whether execution of the microbot can be initiated, based on the state of execution of the process.
- the implementation code for the microbot e.g., external application interface transform code 606 , in the case of microbot 600
- the security level for each microbot can be based, for example, on the type of data to be handled by the microbot, access rights to specific applications that would be required of the microbot, and network requirements within an organization.
- FIG. 6B illustrates a second microbot 610 ; in this case, microbot 610 also has a platform interface 602 and an output interface 604 , which are specific to the data types of expected inputs and outputs from that microbot 610 .
- the microbot 610 includes a user interface manipulation component 616 . Accordingly, the microbot 610 can be used to manipulate a user interface of a particular application in a specific manner; for example, to operate a user-facing application to perform one or more specified functions.
- the user interface manipulation component 616 can output instructions to operating system via external interface to mimic user operation by selecting one or more options that are displayed on a user interface of a network system, based on specific data received at the platform interface (e.g., types and values of information to be provided via the user interface).
- the second microbot 610 can partially replace a human for purposes of automation.
- the microbot 610 can perform one or more steps in terms of graphical interface manipulation, but due to variability in the process or other factors, one or more steps may preferably be performed by a human.
- a wait state may be performed by the microbot 610 , for example to approve, check, or validate action of the microbot before proceeding, either with further operation by microbot 610 or by other microbots used in an overall process.
- FIG. 6C illustrates a third microbot 620 configured for data processing; in this case, microbot 620 includes a platform interface 602 , output interface 604 , and a data processing component 626 .
- the third microbot 620 is configured to process data passed to it by the platform 300 , so it
- the data processing component 626 may perform one or more operations on data received at that microbot from a specific application, for example one or more mathematical calculations, reformatting of data records, securing or redacting of records for compliance with privacy laws, or other operations.
- the microbot 620 can be configured to perform image character recognition on image data that is captured (e.g., by a prior portion of a business process guided by a different microbot). This could allow for verification or processing of handwritten text.
- Other types of microbot functions such as parsing and analysis of text based on a machine-learning model, could be implemented within data processing component 626 as well.
- each of the microbots has a definition of input data expected and output data to be delivered, but does not include dependencies on other microbots; rather, when and whether a microbot is called is left to the platform 300 overall. This allows each microbot to be integrated into a plurality of different business process flows without having to modify those microbots to define dependencies in each microbot; rather, those would be defined in the process and event metadata as defined in the platform 300 itself.
- microbots are not self-executing, but rather rely on the platform 300 to call each microbot for execution and for providing underlying resources for execution (e.g., access to relevant platforms and/or workers to perform specific tasks). Microbots merely represent a definition of granularity for a process.
- FIG. 7 illustrates an example sequence 600 of microbot calls from an event engine to perform a plurality of business processes, according to an example implementation.
- a business process may be performed by the platform 300 (e.g., by programmable bot engine 428 and event engine 430 ) calling a specific sequence of microbots to perform a business process.
- the sequence as illustrated includes a call to microbot 600 , for example to provide an interface for access to data within a specific application on a platform requiring access as part of a business process.
- the platform may then have access to the application, and can call microbot 610 to perform a graphical user interface manipulation to select specific data within the application, and microbot 620 to perform one or more data operations on that data.
- the platform 300 may elect to call multiple versions of microbot 620 and pass different portions of the data selected using microbot 610 . Once all microbots 620 have completed execution, the platform 300 may call microbot 600 to provide an interface back to the application, e.g., for providing an interface to a different application to allow for further execution within that application.
- microbots are relatively simplistic examples of utilization of microbots, since the above discussion relates to a single data access and processing sequence for obtaining data from one application, transforming the data, and providing the transformed data to a second application; typical microbots may be far more complex, and interrelationships among them may be more complex as well. Accordingly, the use of microbots within platform 300 is widely scalable such that any number or complexity of microbots can be used for a business process, and can be assigned to that business process dynamically.
- the platform 300 may manage a vendor payment process within an organization, since such a process is typically performed frequently and involves many steps that might be automated.
- an organization will typically have multiple vendors.
- the business may send purchase orders to multiple vendors, and will receive a shipment in response to each, that includes a receipt. It is noted that each purchase order can be fulfilled by one or multiple shipments, and therefore there may be multiple receipts per purchase order.
- a vendor may aggregate goods from multiple purchase orders into a single shipment, and therefore there may be fewer receipts per purchase order.
- the vendor will also issue an invoice with each shipment.
- a business process must compare the invoices against the correct purchase order and the received items on the receipt to ensure the invoice is correct prior to payment.
- descriptions of goods may differ between a purchase order and receipt or invoice, and various goods or services may be received with mismatched receipts, etc. Accordingly, automation of even this process may be complex.
- a designer may look at the overall process in terms of what a human would do, in a step-by-step manner—e.g., purchase order matching to receipt and invoice, one or more reconciliation operations, etc., and determine that there are, overall 10-15 steps in the overall process. Furthermore, some of those steps may include a physical step of printing a check, scanning a document, or otherwise verifying the physical presence of received goods. Additionally, with respect to automation of such a process, not only is the matching of goods to receipts to invoices difficult due to possible mismatch, even matched goods or services may not be described similarly, as noted above.
- a purchase order matching operation that is performed by a custom microbot may compare a receipt to a purchase order to find matches, but may include some textual analysis or fuzzy logic to ensure that less-than-perfect matches in description of goods and services can be considered a match. The same is true between invoices and purchase orders.
- Other microbots could be implemented for each step of the above process, as well as for various other operations, such as privacy law compliance, vendor payments, etc.
- a replenishment and inventory allocation process could be performed using a plurality of microbots.
- a first microbot could queue all incoming inventory to be received within the next predetermined number of days.
- the first microbot could scan orders and expected arrival dates, and build a schedule accordingly.
- a second microbot could check demand, for example by assessing demand directly as feedback from stores, or based on a demand forecast driven by an assortment plan or other demand forecasting tool.
- the second microbot could therefore represent an interface to such a tool that is configured to automatically retrieve demand, for example on a per-store or per-region basis.
- a third microbot would match inventory demand against the expected incoming supply, and apply a plurality of rules to spread the expected inventory out to the stores at which demand exists, or is the highest.
- a fourth microbot could look at all partially allocated inventory receipts, and adjust the inventory levels (either requested inventory, or amount of inventory allocated to each store or distribution center) based on the demand and inventory levels.
- the microbot performs a discrete task, with operational flow among the microbots managed by the platform with which they are hosted.
- types of tasks performed by discrete microbots can include, for example: reading data from a document; navigating a user interface to select one or more options presented within the user interface; creating an update or notification message; performing a user action; reading EDI documents; interfacing with an email server or application; interfacing with a third-party software system (e.g., PeopleSoft, etc.), robotic document processing, or customized, process specific microbots.
- a microbot can be created that is designed to receive a dataset and perform a PCI compliance check on that dataset.
- the PCI compliance can be split into sub-processes, with separate microbots for assessment of data structures, Sarbanes-Oxley compliance, or other data assessments, each performed independently and in parallel on the dataset. Other possibilities exist as well.
- a method 800 of automating business processes including one or more physical processes is shown, according to an example embodiment.
- the method 800 can be accomplished using the microbots and platform discussed above in connection with FIGS. 1-7 , and is generally used when seeking to automate processes with improved efficiency as in the present disclosure.
- the method 800 includes defining the business process in process metadata (step 802 ).
- the process metadata can be captured, for example, in the process management module 420 of the platform core.
- the business process that is the subject of automation can be any of a variety of types of business processes.
- the business process to be automated is a process that is executed repeatedly by an organization and including one or more inputs, one or more outputs, and a plurality of task-based operations.
- the task-based operations can include a physical task to be performed on an object.
- the business process is decomposed into the tasks (step 804 ) and, from the set of tasks, and based on the process metadata, a plurality of microbots can be selected (step 806 ), to perform micro-operations included in the business process.
- the plurality of microbots that are selected can include, among others, one or more microbots that perform at least a portion of physical tasks that are included in a business process, such as in the example order fulfillment process described above.
- the platform 300 can initiate execution of the business process (step 808 ). More specifically, an event engine within the platform 300 can initiate execution of the business process, and can call various microbots for execution based on monitored preconditions and postconditions of the various microbots included in the process being satisfied.
- the method 800 can further optionally include adjusting usage (step 810 ) of the microbots in case of mismatch between expected input and output in terms of pre- and post-conditions for various microbots, or for performance reasons.
- adjustment of the overall microbot-based execution can include substitution of one microbot for another in case of a failure in execution by that microbot. This may be the case, for example, where an underlying application has changed, and therefore the microbot's interactions with the application become unexpectedly interrupted. Other adjustments to the overall usage and process could be made as well.
- the computing device 900 can represent, for example, a computing system within which one or more of servers or computing systems, such as computing system 105 , can be implemented.
- the computing device 900 represents the physical construct of an example computing system at which an endpoint or server could be established.
- the computing device 900 includes a memory 902 , a processing system 904 , a secondary storage device 906 , a network interface card 908 , a video interface 910 , a display unit 912 , an external component interface 914 , and a communication medium 916 .
- the memory 902 includes one or more computer storage media capable of storing data and/or instructions.
- the memory 902 is implemented in different ways.
- the memory 902 can be implemented using various types of computer storage media.
- the processing system 904 includes one or more processing units.
- a processing unit is a physical device or article of manufacture comprising one or more integrated circuits that selectively execute software instructions.
- the processing system 904 is implemented in various ways.
- the processing system 904 can be implemented as one or more physical or logical processing cores.
- the processing system 904 can include one or more separate microprocessors.
- the processing system 904 can include an application-specific integrated circuit (ASIC) that provides specific functionality.
- ASIC application-specific integrated circuit
- the processing system 904 provides specific functionality by using an ASIC and by executing computer-executable instructions.
- the secondary storage device 906 includes one or more computer storage media.
- the secondary storage device 906 stores data and software instructions not directly accessible by the processing system 904 .
- the processing system 904 performs an I/O operation to retrieve data and/or software instructions from the secondary storage device 906 .
- the secondary storage device 906 includes various types of computer storage media.
- the secondary storage device 906 can include one or more magnetic disks, magnetic tape drives, optical discs, solid state memory devices, and/or other types of computer storage media.
- the network interface card 908 enables the computing device 900 to send data to and receive data from a communication network.
- the network interface card 908 is implemented in different ways.
- the network interface card 908 can be implemented as an Ethernet interface, a token-ring network interface, a fiber optic network interface, a wireless network interface (e.g., WiFi, WiMax, etc.), or another type of network interface.
- the video interface 910 enables the computing device 900 to output video information to the display unit 912 .
- the display unit 912 can be various types of devices for displaying video information, such as an LCD display panel, a plasma screen display panel, a touch-sensitive display panel, an LED screen, a cathode-ray tube display, or a projector.
- the video interface 910 can communicate with the display unit 912 in various ways, such as via a Universal Serial Bus (USB) connector, a VGA connector, a digital visual interface (DVI) connector, an S-Video connector, a High-Definition Multimedia Interface (HDMI) interface, or a DisplayPort connector.
- USB Universal Serial Bus
- VGA VGA
- DVI digital visual interface
- S-Video S-Video connector
- HDMI High-Definition Multimedia Interface
- the external component interface 914 enables the computing device 900 to communicate with external devices.
- the external component interface 914 can be a USB interface, a FireWire interface, a serial port interface, a parallel port interface, a PS/2 interface, and/or another type of interface that enables the computing device 900 to communicate with external devices.
- the external component interface 914 enables the computing device 900 to communicate with various external components, such as external storage devices, input devices, speakers, modems, media player docks, other computing devices, scanners, digital cameras, and fingerprint readers.
- the communication medium 916 facilitates communication among the hardware components of the computing device 900 .
- the communications medium 916 facilitates communication among the memory 902 , the processing system 904 , the secondary storage device 906 , the network interface card 908 , the video interface 910 , and the external component interface 914 .
- the communications medium 916 can be implemented in various ways.
- the communications medium 916 can include a PCI bus, a PCI Express bus, an accelerated graphics port (AGP) bus, a serial Advanced Technology Attachment (ATA) interconnect, a parallel ATA interconnect, a Fiber Channel interconnect, a USB bus, a Small Computing system Interface (SCSI) interface, or another type of communications medium.
- the memory 902 stores various types of data and/or software instructions.
- the memory 902 stores a Basic Input/Output System (BIOS) 918 and an operating system 920 .
- BIOS 918 includes a set of computer-executable instructions that, when executed by the processing system 904 , cause the computing device 900 to boot up.
- the operating system 920 includes a set of computer-executable instructions that, when executed by the processing system 904 , cause the computing device 900 to provide an operating system that coordinates the activities and sharing of resources of the computing device 900 .
- the memory 902 stores application software 922 .
- the application software 922 includes computer-executable instructions, that when executed by the processing system 904 , cause the computing device 900 to provide one or more applications.
- the memory 902 also stores program data 924 .
- the program data 924 is data used by programs that execute on the computing device 900 .
- computer readable media may include computer storage media and communication media.
- a computer storage medium is a device or article of manufacture that stores data and/or computer-executable instructions.
- Computer storage media may include volatile and nonvolatile, removable and non-removable devices or articles of manufacture implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data.
- computer storage media may include dynamic random access memory (DRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), reduced latency DRAM, DDR2 SDRAM, DDR3 SDRAM, solid state memory, read-only memory (ROM), electrically-erasable programmable ROM, optical discs (e.g., CD-ROMs, DVDs, etc.), magnetic disks (e.g., hard disks, floppy disks, etc.), magnetic tapes, and other types of devices and/or articles of manufacture that store data.
- Computer storage media does not include a carrier wave or other propagated or modulated data signal.
- the computer storage media includes at least some tangible features; in many embodiments, the computer storage media includes entirely non-transitory components.
- Communication media may be embodied by computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and includes any information delivery media.
- modulated data signal may describe a signal that has one or more characteristics set or changed in such a manner as to encode information in the signal.
- communication media may include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), infrared, and other wireless media.
- RF radio frequency
- the methods and systems described herein have a number of advantages over existing systems. For example, maintainability is improved, because although the frequency of updates may remain the same (due to changes in process) the extent of maintenance required will be reduced, because it will typically be contained to one or more microbots, and less than the entire process would need to be addressed.
- the microbots can include adapters that provide a layer of abstraction from underlying enterprise systems, these interfaces can readily be switched as underlying enterprise applications change with little to no effect on the existing automated process.
- throughput issues are more easily addressed by allowing microbots to execute independently based solely on preconditions managed by the platform, rather than requiring sequential execution. This enables parallel execution of tasks within the platform, where appropriate. Still other advantages are present within the platform, methods and systems, as are apparent from the present disclosure.
- Embodiments of the present disclosure are described above with reference to block diagrams and/or operational illustrations of methods, systems, and computer program products according to embodiments of the invention.
- the functions/acts noted in the blocks may occur out of the order as shown in any flowchart.
- two blocks shown in succession may in fact be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending upon the functionality/acts involved.
Landscapes
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Operations Research (AREA)
- Game Theory and Decision Science (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Educational Administration (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Stored Programmes (AREA)
Abstract
A process automation platform and method for automating business processes are disclosed. The method can include defining a business process in metadata, and, based on that metadata, selecting microbots to perform micro-operations included in the business process. An event engine initiates execution of the business process using the microbots and manages data dependencies of the microbots within the process. Each of the plurality of microbots includes microbot metadata defining a micro-operation performed by the microbot, and execution of each of the plurality of microbots is initiated independently of the others of the plurality of microbots.
Description
- This application is a divisional of U.S. application Ser. No. 16/111,928 filed Aug. 24, 2018 which claims priority from U.S. Provisional Patent Application No. 62/550,062, filed on Aug. 25, 2017, the disclosure of which are hereby incorporated by reference in their entirety.
- There have been substantial efforts in the area of process automation, and in particular use of computing systems to automate data processing and/or hybrid physical/data systems. These efforts have typically been organized around analysis of a particular business process, and determining a way in which that process can be automated, if executed in exactly the same manner as if that process were performed manually.
- An automation approach that is a true replica of human interaction does not truly leverage the compute capabilities of such automation systems, hence limiting the advantages from automation. For example, automation approaches typically are constructed such that scripts or other code can be used to replace human operation of various subprocesses, and to guide an overall business process. For example, automation systems may be used to process data across multiple business applications, manipulate a graphical user interface to perform specific functions, or initiate physical processes. However, such automation approaches consider the overall process as a whole, and are used to “glue together” use of different applications in situations where processes are high volume and/or repeatable.
- Such traditional approaches to process automation have drawbacks. For example, in some situations, one underlying application whose use is automated may change in some manner, such that the automation applied using that application is no longer compatible with the application. In such an event, the entire automation will be “broken” and would fail due to the error at one part of the process. The automation code would need to be corrected or recreated. Furthermore, execution of the automation typically occurs sequentially throughout the entire process, such that if a particular portion of the process requires substantial processing time, the throughput of the overall process is limited. Additionally, to the extent an overall process does fail, there are limited capabilities built into existing automation systems that provide for resuming a process after it fails.
- Accordingly, for these and other reasons, improvements in the area of process automation are desirable.
- In summary, the present disclosure relates to a process automation platform and method for automating business processes. According to various aspects, one method can include defining a business process in metadata, and, based on that metadata, selecting microbots to perform micro-operations included in the business process. An event engine initiates execution of the business process using the microbots. Each of the plurality of microbots includes microbot metadata defining a micro-operation performed by the microbot and data dependencies of that microbot, and execution of each of the plurality of microbots is initiated independently of the others of the plurality of microbots.
- In a first aspect, a business process automation system is disclosed. The business process automation system includes a business process execution platform executable on a computing system. The business process execution platform includes a process management engine, a microbot engine, and an event engine. The process management engine is configured to define each of a plurality of different business processes, the plurality of different business processes comprising processes including a plurality of operations executed on a plurality of different computing systems and software applications. The microbot management engine is configured to manage definitions of a plurality of microbots, the plurality of microbots including one or more microbots configured to interface with one or more of the plurality of different computing systems and software applications to perform at least a portion of the physical task. The event engine is configured to initiate execution of a business process defined in the process management engine by calling a selected plurality of the microbots to perform the business process, the microbots each performing a portion of the business process independently from other microbots. The event engine manages data dependencies within the business process and initiating use of each of the selected plurality of microbots based on the data dependencies.
- In a second aspect, a method of automating business processes including one or more physical processes is disclosed. The method includes defining a business process in process metadata, the business process being a process that is executed repeatedly by an organization and including one or more inputs, one or more outputs, and a plurality of task-based operations, at least one of the task-based operations including a physical task to be performed on an object. The method further includes, based on the process metadata, selecting a plurality of microbots to perform micro-operations included in the business process, the plurality of microbots including a microbot configured to perform at least a portion of the physical task. The method also includes initiating execution of the business process from an event engine, the event engine managing execution of the plurality of microbots. Each of the plurality of microbots comprises microbot metadata defining a micro-operation performed by the microbot and data dependencies of that microbot. Additionally, execution of each of the plurality of microbots is initiated independently of the others of the plurality of microbots.
- In a third aspect, a system includes a programmable circuit and a memory operatively connected to the programmable circuit. The memory stores a definition of a business process in process metadata, the business process being a process that is executed repeatedly by an organization and including one or more inputs, one or more outputs, and a plurality of task-based operations, at least one of the task-based operations including a physical task to be performed on an object. The memory further stores instructions that, when executed by the programmable circuit, cause the system to: based on the process metadata, select a plurality of microbots to perform micro-operations included in the business process, the plurality of microbots including a microbot configured to perform at least a portion of the physical task; and initiate execution of the business process from an event engine, the event engine managing execution of the plurality of microbots. Each of the plurality of microbots comprises microbot metadata defining a micro-operation performed by the microbot and data dependencies of that microbot. Execution of each of the plurality of microbots is initiated independently of the others of the plurality of microbots.
- This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
-
FIG. 1 illustrates an environment in which the methods and systems of the present disclosure can be implemented; -
FIG. 2 illustrates an example business process, and a traditional methodology for conceptualizing and automating such a business process; -
FIG. 3 illustrates a possible example decomposition of a business process and use of microbots for performance of the business process, according to an example implementation; -
FIG. 4 illustrates a business process automation system, according to an example embodiment; -
FIG. 5 illustrates a business process automation environment in which the business process automation system ofFIG. 4 can be implemented; -
FIGS. 6A-6C illustrate example microbots useable within the business process automation system ofFIGS. 3-5 ; -
FIG. 7 illustrates an example sequence of microbot calls from an event engine to perform a plurality of business processes, according to example embodiments; -
FIG. 8 illustrates a method of automating business processes including one or more physical processes, according to an example embodiment; and -
FIG. 9 illustrates a computing system with which aspects of the present disclosure can be implemented. - Various embodiments will be described in detail with reference to the drawings, wherein like reference numerals represent like parts and assemblies throughout the several views. Reference to various embodiments does not limit the scope of the claims attached hereto. Additionally, any examples set forth in this specification are not intended to be limiting and merely set forth some of the many possible embodiments for the appended claims.
- As briefly described above, embodiments of the present disclosure are directed to a system for process automation in which an overall process is decomposed into atomic actions each performed by an automation component called a “bot”, which can be a software-based component, or mixed software and physical device-based component that is capable of accomplishing an atomic action within a process to be automated. Embodiments of the present disclosure also provide for a framework, or platform, within which such bots can be executed, which allows for use of customized and reusable bots in combination to execute an overall business process.
- High-frequency business processes are often automated, but this is performed by considering the overall business process as it would be performed by a human, and those human steps are replaced by an automated process. However, as proposed here, a business process can be decomposed to a set of discrete actions, each performed by a bot. Because, in the context of the present disclosure, each business process is divided into a variety of different process steps, interfaces, user inputs, and other operations, each associated with a bot, in some instances, and as further described herein, the bots as implemented in the present disclosure can be referred to as “microbots”, meaning bots that perform (relatively) small segments of an overall business process. Furthermore, rather than traditional automation processes in which automation modules span across applications and/or tasks used in a process, the microbots are also limited in “size” in this matter, because they are typically associated with or interface with a single application or perform a single type of action. Because microbots are limited in “size”, they are generally considered to be stateless, in that they perform atomic tasks rather than overall processes. Accordingly, code segments that automate portions of an overall business process, for example by providing an automated interface to different software applications, physical subprocesses, or which themselves perform a physical portion of a previously-manual business process can be referred to herein as being constructed from a plurality of microbots logically interrelated to one another, although specific microbots may be more or fewer functions depending upon the requirements of any given business process and its current state of automation.
- In example implementations, each microbot may have a function that can be called by an event engine to coordinate operation. Each microbot can execute in parallel or series, but is also aware of its metadata and data dependencies, in case such dependencies occur across microbot execution. The platform can prioritize microbot operations, and manage security in data access by the various microbots. Example microbots include self-learning capabilities, can parse and analyze text, and may have adapters for specific types of files (e.g., PDF, DOC, images, etc.). In some instances, microbots perform at least some physical processes (rather than simply data manipulation). Additionally, in some aspects, the microbots include assignable security levels and defined data interfaces.
- Such coordination of discrete bots that perform portions of an overall process has a number of advantages over existing systems. For example, if one application used in a business process that requires multiple applications is changed, only a single microbot need be modified (or a new microbot created) for interacting with that application. Furthermore, the overall framework can monitor execution of the microbots which allows for microbots to be halted and/or restarted if they are unsuccessful in execution, and furthermore long-running bots can be replicated such that multiple executions of the same business process do not need to wait for the single microbot to finish the lengthy task before proceeding with a new record or portion of the process. Furthermore, because each microbot is independently executable and does not itself maintain data or process status, each microbot can easily be discarded and replaced “on the fly” such that the overall system can maintain proper operation through many types of errors that might occur over the course of execution of various business processes. Finally, microbots are easily scalable to meet throughput needs of particular business processes.
- Furthermore, because many microbot operations are performed in many business processes (e.g., graphical manipulations, interfaces with particular applications, specific types of data analyses, etc.), microbots can be reused in different business processes, thereby simplifying automation of new business processes. In such cases, only the unique or custom operations included in a business process would need to be newly-automated.
- Use of a microbot-based process to assist in execution of such high-frequency business processes provides substantial flexibility in defining the business process and enables a user to adapt a definition of a business process to cover any specific use cases which may arise that are not well-handled by an automation process. For example, in the area of invoice processing, a large organization may process over 100,000 invoices from vendors each week. Each of these invoices may or may not match to products received on shipping receipts; still further, what constitutes a “match” may be made more difficult because the item description on the invoice (or shipping receipt) is not standardized and may change over time. Therefore, determining a “match” may be an inexact process, since slight differences in color, sourcing, etc. may not matter to the organization, but may matter in other contexts. For example, an invoice mismatching a shipping receipt due to an order of shirts being wrong sizes may be unacceptable, whereas a mismatch between shirts having slightly different color may be acceptable. This may be the result of a number of microbot operations, including at least a scanning operation and a matching operation. The microbot-based process automation system described herein may allow a user to initially construct a business process in which both physical documents (invoice and shipping receipt) are scanned and compared, and an exact match is required; any non-identical descriptions or items may require user intervention or supervision. Over time, and based on either user refinement of the microbot performing the matching operation or artificial intelligence developing a decisioning model based on observation of the manual (user) matching process, a new matching microbot can be developed and inserted into the business process to improve operation and reduce the number of instances where user intervention is required.
- Referring now to
FIG. 1 , anenvironment 100 is illustrated in which methods and systems described herein can be implemented. In general, theenvironment 100 represents a business process automation environment in which a plurality of business systems 102 a-n are hosted by an organization. The plurality of business systems can take a wide number of forms. For example,business system 102 a may be one or more computing systems hosting online transaction processing software that is used in the context of a billing and invoicing operation, while business system 102 b may be a financial subsystem used to issue payments. Business subsystem 102 c may be a financial document processing back-end subsystem used to digitize physical documents, such as checks, purchase orders, invoices, receipts, etc., for routing to other users or systems within the organization. Accordingly, subsystem 102 c may often perform processes that are typically at least partially performed with human input. Other business systems hosting other business processes (e.g., other online transaction processing applications, inter- or intra-business communication modules) may be included as well (e.g., as shown to be in business systems 102 a-n. - In the embodiment shown, the business processes are networked to a
computing system 105 via anetwork 104. Thenetwork 104 can be, for example, a secured business intranet on which automation instructions can be securely transmitted to the various business processes 102 a-n. This can include wired and/or wireless networks, and a variety of various types of security mechanisms included therein. - The
computing system 105, in the embodiment shown, hosts a business process automation platform, as will be discussed in further detail below. Thecomputing system 105, although illustrated for simplicity as a single computing device, can include a plurality of computing devices. Thecomputing system 105 is accessible by a process manager, who can be, for example, a designer of a business process, who may be responsible for using the business process automation platform to define a process, automate that process by selecting one or more microbots for execution of the process and resources to be used by those microbots (e.g., workers, as discussed below) and to establish settings in the platform associated with, for example, security or administration of the process. The process manager can also determine a schedule for the process to be performed using the business process automation platform. In various embodiments, the process manager may be local to or remote from thecomputing system 105, but generally has access to thecomputing system 105 via a user interface presented within the business process automation platform. - By way of contrast to the process manager, a
realtime operator 106 may be one or more person(s) who traditionally have access via thenetwork 104 to the various business systems 102 a-n. Therealtime operator 106 may be a group of individuals responsible for executing various business processes using the business systems. For example, a realtime operator may be a group of individuals responsible for receiving goods and generating receipts for goods or services, receiving invoices, and processing payments associated with those invoices. The realtime operator may be required to match various goods from a single receipt to many invoices (or vice versa) and accurately track and process the payments made to ensure correspondence across the various steps of an inventory intake process. This process can be very time or labor intensive, and is repeatable, rendering it a possible candidate for automation. Other business processes, such as reporting across a plurality of online transaction processing (OLTP) systems for purposes of generating financial statements, or performing logistics operations regarding moving goods/services among locations within a company, also are possible business processes that are executed with high frequency, have a plurality of steps to be performed across different applications, and therefore could benefit from improved automation techniques. - Referring now to
FIG. 2 , anexample business process 200 and traditional methodology for automation of such a business process are discussed, in a general case. As noted above, and as illustrated in that Figure, abusiness process 200 may include a plurality of discrete steps, or sub-processes. Thebusiness process 200 may have a plurality of inputs to the process initially, or at some later time during the overall process. Each subprocess is usually considered sequentially, with one or more subprocesses requiring human input to manage that subprocess. Although the subprocesses may be computing manipulations, other subprocesses, such as document scanning, printing, or other physical operations may be performed as part of a subprocess as well. However, as noted inFIG. 2 , the business process is generally considered to be a series of interconnected steps in which a first step in the business process (as the process would be executed by a human) would be performed, and its data provided to a second step, and so on, until the business process is completed. To automate such abusiness process 200, automation code can be provided that accompanies the business process, for example in the form of a script. The script may execute on one or more computing systems and can call the various applications to be executed; however some of the subprocesses may be performed on a different computer, or may be physical processes that are not necessarily amenable to script-based execution. Furthermore, if a relatively slow subprocess, or a subprocess that requires user input, is included in theoverall business process 200, that business process can only be executed as fast as that slow-executing subprocess. This results in reserving resources for portions of the process that would otherwise be able to complete earlier, but for the fact that those process portions are waiting for slow-executing subprocesses in order to continue execution. Furthermore, an overall scripting solution to automation would fail if any of the subprocesses were to fail, e.g., due to abnormal data encountered, or due to a change in the application to which the automation is directed. - Referring now to
FIG. 3 , a possible example decomposition of a business process is shown using microbots for performance of the business process, according to an example implementation. As illustrated, a business process execution platform 300 hosts a plurality of bots that can be used to execute specific portions of an overall process. These bots, or microbots (as explained above) can execute specific portions of the overall process. It is noted that the microbots do not necessarily correspond to the subprocesses described in connection withFIG. 2 ; rather, the microbots are defined according to discrete tasks that can be performed on a, preferably, reusable basis, such that each microbot can be stored in a library and reused for other business processes. Still further, each microbot is defined to be stateless, in that each has a defined input interface and output interface (e.g., defining a structure of data or objects on which the microbot will operate), but does not define conditions under which that microbot will execute; rather, supporting infrastructure will selectively call microbots for execution. Accordingly, where subprocesses may, for example, relate to calculating a specific figure in a finance application, transferring data to a separate application or platform, and issuing a check or funds transfer from that separate application, microbots may be associated with more granular or re-usable tasks or portions of a process, such as providing a data interface to a particular accounting application, performing a specific GUI manipulation, applying security to data retrieved from an application, performing a mathematical operation on data, or initiating a physical process based on that data. Each microbot will generally not have knowledge of the overall process, but merely will have a set of expected inputs, a defined output, and a defined process to be performed, as described further below in connection withFIGS. 5A-5C . - In the specific example shown, a process may be decomposed into portions that can be accomplished using, e.g.,
Bot 1 302, adata item 304,PDT 306,Bot 2 308,Bot 3 310,Bot 4 312, and so on. As illustrated, the business process execution platform 300 can initiate execution of each of the microbots in whatever order desired, so long as the business process execution platform 300 manages data dependencies among those microbots. Furthermore, to the extent a particular microbot must perform a large number of operations, or may take a long time to execute, the business process execution platform 300 can instantiate multiple instances of that microbot to improve throughput. Accordingly, in the example shown, there may be some data dependencies amongBot 1 302,data item 304,PDT 306, andBot 2 308. However, atBot 1 302, multiple instances are called by the business process execution platform 300, to ensure throughput at that portion of an overall business process. Furthermore, becauseBot 3 310 andBot 4 312 may not have input data dependencies (e.g., each may perform separate calculations or manipulations from different applications based on the output ofBot 2 308 that are later merged), both of thosebots - As briefly noted above, because each bot, or microbot, is associated with a small portion of the process, process failures can be handled more readily. Because each microbot will pass processed data back to the business process execution platform 300, the platform can use data received from a previously-executing microbot and restart a bot in case of failure. Furthermore, if microbot failure is due to a changed interface within an underlying application to be automated, that microbot can be replaced within the overall system without recreating the entire business process automation. Furthermore, each microbot can have customized security features associated therewith, such that each microbot associated with a particular application can gave adequate access rights to the data associated with that application, but the microbot can secure (or remove sensitive data) prior to passing that data back to the business process execution platform 300 so sensitive data is not shared across applications (which would also traditionally not be possible with business automation systems, which operate as a whole automating entity).
- Referring now to
FIG. 4 , details regarding a businessprocess automation system 400 are shown, including a business process execution platform on which such a system can be implemented. In the example embodiment as illustrated, the business process execution platform 300 is implemented on one or more computing systems, such as thesystem 105 ofFIG. 1 , as implemented on the computing device ofFIG. 8 . The business process execution platform 300 interfaces to a plurality ofenterprise systems 450, for example business systems 102 a-n as discussed above in connection withFIG. 1 . The business process execution platform 300, referred to also herein simply as platform 300, can be used to host a plurality of different automations for business processes and concurrently manage execution of those processes at different priorities, security levels, and complexities. - The business process execution platform 300 includes, in the embodiment shown, an
administration module 402, a users module 404, aplatform core 406, asecurity module 408, a user management module 410, adata management layer 412, and aworker farm 414. Other modules or components of the business process execution platform 300 could be used as well, and different organizations of modules and/or data could also be utilized. - The
administration module 402 allows an administrator of the business process execution platform 300 to view and adjust execution of the platform itself, for example to manage system resources, assess operation of automated tasks, etc. The users module 404 presents a user interface at which a user can for example, define processes, microbots, interfaces to external applications, etc., which will be modified in theplatform core 406. - The
platform core 406 manages calling and execution of various microbots based on a definition of which microbots are to be involved in performing a particular business process. Within the platform core, the business process execution platform 300 includes aprocess management module 420, abot registry 422, a workerfarm management module 424, aconversational bot 426, aprogrammable bot engine 428, anevent engine 430, aworkload management engine 432, one ormore adapters 434, and a self-learningbot 436. Details regarding each of these components of theplatform core 406 are provided below. - The
security module 408 manages data security within the business process execution platform 300. In particular, thesecurity module 408 will manage data access rights for each of the microbots and workers included in the platform, to ensure that correct microbots and/or workers can access business systems as required to automate desired business processes. Thesecurity module 408 can, for example, be configured to ensure compliance with applicable data security laws and regulations, for example by removing personally-identifying information from data ingested by the platform 300 via the microbots. Thesecurity module 408 can also set separate security levels for various microbots' access to data retrieved from different business systems. - The user management module 410 manages access to the business process execution platform 300, for example by one or more process managers as illustrated in
FIG. 1 . Theadministration module 402 can manage permissions for each process manager to view, create, modify, or remove definitions of processes, microbots, and interfaces to external applications, data, or systems. - The
data management layer 412 manages data provided to the platform 300 by the various microbots included in theplatform core 406. For example, thedata management layer 412 can store data at various stages through a business process, thereby allowing failed microbots to restart using the same data, and to store overall results of a business process. - The
worker farm 414 represents a set of computing and/or physical resources that can be used by the microbots to achieve tasks included in a business process. In some cases, theworker farm 414 can include one or more computing systems. In other cases, theworker farm 414 can also include electromechanical systems and special-purpose computing systems that are specifically configured for robotic, physical operations (e.g., document processing operations). In still further example cases, the worker farm can include computing systems having different capabilities (e.g., different applications and/or operating systems) so that they can be used for different purposes. - Within the
platform core 406, theprocess management module 420 coordinates among the bot registry, workload management engine, and event engine to ensure coordination of microbots to accomplish business processes. Theprocess management module 420 can receive definitions of processes (e.g., via the user interface) and store those process definitions in metadata, such that each process can be triggered (e.g., by the event engine 430) to initiate use of microbots to perform a specific process. - The
bot registry 422 stores a description of each of the microbots managed in the platform 300, so that each of the microbots can be selected for execution as part of execution of a business process. The bot registry acts as a centralized organization location for all microbots, so users can select appropriate microbots for use in automating business processes. It is noted that in many cases, the microbots can be general-purpose microbots; however, some special-purpose microbots - The worker
farm management module 424 tracks the available resources in theworker farm 414, and allocates workers from the worker farm to assist in execution of business processes. For example, a worker from the worker farm may have installed on it an application for data processing based on data stored in a database within one of theenterprise systems 450; in such an instance, a microbot may be called to initiate execution of the worker, with another microbot acting as an interface (e.g., an adapter, as discussed below) to retrieve data for processing. - The
conversational bot 426 is a particular microbot type that can be used for conversational processes. For example, theconversational bot 426 can prompt communication with a third party user, for example to obtain information that is to be included in a report generated by a business process, or to obtain direction as to how to complete a business process. Output from theconversational bot 426, as well as other microbots, can be sent to and managed by thedata management layer 412 to further inform how to continue automated execution of a business process. - The
programmable bot engine 428 calls various microbots for execution according to the metadata used to define each business process. Theprogrammable bot engine 428 coordinates with theevent engine 430, which manages the state of execution of a process via events that occur within the platform 300, which are updated as microbots are called for execution. - The
workload management engine 432 supervises execution of business processes (via theprogrammable bot engine 428 and event engine 430) to determine workloads and process issues, and manages throughput issues accordingly. For example, theworkload management engine 432 may elect to assign additional workers to a particular process given the likelihood that the process will require substantial resources, or may elect to instantiate multiple versions of a microbot to improve throughput of a particular portion of a process. In example embodiments, theworkload management engine 432 manages a queue of work to be performed by the platform 300 to determine the resources to be assigned. - The one or
more adapters 434 correspond to types of microbots that connect to remote systems orenterprise systems 450, for example to integrate functions external to the business process execution platform 300. Adapters can also correspond to interfaces to specific types of files (e.g., PDF, DOC, images, etc.). - The self-learning
bot 436 generally corresponds to a bot type that can learn from human interaction and adjust/update processing according to observed human behavior. This can, for example, be implemented using neural networks or other learning models, and can track a current state, human input, intended output state, and confirming input from the user (e.g., approval or validation). The self-learningbot 436 can also generate one or more recommendations based on the current state of the overall platform 300, for example to provide recommendations for candidate processes for automation given the current collection of microbots available for use in automation. This can include generating recommendations for automating parts of processes, to reduce an extent of user activity in performing such fully- or partially-automated processes. This may allow a user to develop an improved microbot that makes decisions based on such a learning model, which may have the effect of reducing the amount of user interaction within a business process that is required (i.e., reducing the number of instances of the business process that are unable to be handled by a microbot and therefore require user review/action). - Referring to
FIG. 4 generally, it is noted that not all business processes will utilize all portions of theplatform core 406; rather, the specific engines used, like the specific microbots used, will vary depending on the number of business processes, and the number of instances of each business process, that are being performed at a particular time. - Referring to
FIG. 5 , additional details regarding a businessprocess automation environment 500 in which the business process automation system ofFIG. 4 can be implemented. Theenvironment 500 allows microbots to be developed and deployed within a business process execution platform 300 as discussed inFIG. 4 ; however, whereFIG. 4 illustrates functional operation of such a system, theenvironment 500 depicts physical layout details. - In the example shown, a developer 501 can interact with a microbot development platform 502. The microbot development platform will store definitions of microbots in a
database 503, and can retrieve such microbots using a graphical user interface to developmaster images 504 andcontainers 505 for those images. Thecontainers 505 can be used for development of images built using a graphical tool, which are then stored back into thedatabase 503 as complete. - In example embodiments,
database 503 may be a local database or a remote, cloud-based database configured to securely store definitions of microbots for retrieval to be used in business processes on an as-needed basis. - When microbots are complete and available for use, they can be published to the business process execution platform 300. The business process execution platform includes a
dashboard 510 andreporting interface 512 interfaced to aload balancer 514. Thedashboard 510 allows a user to monitor the microbots available and to define processes that can be performed using microbots. Thedashboard 510 further allows a user to view executing processes (e.g., processes being executed in a microbot hosting cluster 550), and can include scheduling facilities for scheduling execution of business processes, and start/stop microbots on a per-bot basis within a process (e.g., for troubleshooting or other purposes). The reportinginterface 512 provides operational information to the user as well, including a number of microbots being used to perform a process, number of processes completed, a completion rate, a rate at which a process fails, or a rate at which user input is required into the process to complete the process. In addition, the reportinginterface 512 may include one or more bot analytics tools, e.g., to detect bottlenecks in defined business processes, critical points at which specific microbots fail and reasons for such failure, and automated identification of specific areas of improvement of such bots (e.g., including through use of artificial intelligence/learning models to improve microbot decisionmaking). Other types of reporting tools may be included as well. - In example implementations, user access to the
dashboard 510 and/orreporting interface 512 may be controlled based on user roles. For example, certain developer users may be allowed to develop microbots and add those microbots to a pool of available microbots; other users may be allowed to access microbots and define usage within a business process. Still further, other users may be allowed to initiate execution of business processes, but may not have access to edit the process or microbots included therein. Still further, some users may have access only to thereporting interface 512 for certain business processes, allowing the user to view statistics regarding execution of those specific business processes (e.g., % executed successfully, elapsed time, etc.). - In the example shown, the
load balancer 514 manages execution of business processes defined using thedashboard 510, e.g. by calling one ormore handlers 520. Eachhandler 520 includes acluster manager 522 that manages execution of a cluster 540, which hosts microbots during execution. Theload balancer 514 may assess, based onservice discovery system 516, what resources are available at the business process execution platform 300, and instantiate ahandler 520. Although one handler is depicted inFIG. 5 , it is noted that multiple handlers may be included in the platform 300, e.g., based on a number of clusters 540 that are to be managed by the platform 300. - In the embodiment shown, each
handler 520 includes adata services module 522 that provides definition of specific data connections for databases containing data to be operated on to a data management layer 412 (e.g., corresponding to an instance of thedata management layer 412 ofFIG. 4 ). In addition, amicrobot catalog 524 andscheduler 526 define the available microbots for use in the process to be executed via thehandler 520, as well as a scheduled timing for execution of that process. Thescheduler 526 can be used to trigger operation of a particular business process in a cluster 540, via communication to the cluster 540 via acluster manager 528. - In addition, the
handler 520 includes aqueue manager 530 and asecret manager 532. Thequeue manager 530 manages a queue of processes to be performed and/or resources (e.g., microbots, etc.) that are awaiting operation, while thesecret manager 532 controls information to be used in the business process execution. - Overall, the
handler 520, and particularlycluster manager 528, is associated with a cluster 540. Each cluster has acorresponding framework 542, which hosts ascheduler 544 useable to initiate execution of a business process by triggering execution of one or more task execution components. In the example shown, thescheduler 544 initiates communication with a mastertask execution component 546, which is allocated from a master task execution components that are managed by azookeeper 548. Thezookeeper 548 manages free/used status of task execution components, and can allocate free task execution components to business processes on an as-available basis. - In the embodiment shown, a master
task execution component 546 is linked to one or more slavetask execution components 550. Each of the task execution components includes one ormore executors 552, with each executor capable of hosting execution of one or a plurality oftasks 554. The tasks are performed withinexecutors 552 by retrievingmicrobot images 560, e.g., fromdatabase 503, in response to selection frommicrobot catalog 524. Accordingly, selected microbots can be sequenced by ascheduler 544 and executed in a sequence defined in the platform 300 and enforced by the scheduler and relationships among theexecution components - In example embodiments, while the
handler 520 and platform 300 overall may be managed within an organization, it is noted that each cluster may be instantiated as a cloud-based set of computing resources useable to perform any required business processes. The - Referring now to
FIGS. 6A-6C , example illustrations of microbots useable within the platform 300 ofFIGS. 3-5 are provided.FIG. 6A illustrates a firstpossible microbot 600 that includes aplatform interface 602, anoutput interface 604, and external application interface transform code 606. Theplatform interface 602 andoutput interface 604 generally correspond to a set of preconditions to execution of the microbot and postconditions following execution of the microbot; these can include a particular state of data or state of an application on which the microbot may operate. The event engine can determine when appropriate preconditions are present to call a particular microbot, and can also determine when appropriate postconditions are present following operation of the microbot, to assess whether the microbot performed its task within the overall business process appropriately. - In the example shown, the
microbot 600 is configured to perform a transform on external application data; as such themicrobot 600 has a platform interface that defines the data format it expects as input, and an output interface that is configured to either (1) output processed data, or (2) interface with an external data storage system or application to direct processing of that data with the application to which themicrobot 600 is interfaced. - In an example implementation, the
microbot 600 is constructed using computer executable code, for example using JavaScript Object Notation (JSON) code for simple creation and deployment for execution; however, other languages can be used for rapid creation and deployment. In general, each microbot's preconditions and postconditions, and optionally its function, can be defined in metadata as well such that the event engine can readily access these conditions for each microbot to assess whether execution of the microbot can be initiated, based on the state of execution of the process. The implementation code for the microbot (e.g., external application interface transform code 606, in the case of microbot 600) can be constructed to have a security level that is specific to that microbot, such that each microbot has its own assignable security level. The security level for each microbot can be based, for example, on the type of data to be handled by the microbot, access rights to specific applications that would be required of the microbot, and network requirements within an organization. -
FIG. 6B illustrates asecond microbot 610; in this case, microbot 610 also has aplatform interface 602 and anoutput interface 604, which are specific to the data types of expected inputs and outputs from thatmicrobot 610. In this example, themicrobot 610 includes a user interface manipulation component 616. Accordingly, themicrobot 610 can be used to manipulate a user interface of a particular application in a specific manner; for example, to operate a user-facing application to perform one or more specified functions. The user interface manipulation component 616 can output instructions to operating system via external interface to mimic user operation by selecting one or more options that are displayed on a user interface of a network system, based on specific data received at the platform interface (e.g., types and values of information to be provided via the user interface). - In some examples, the
second microbot 610 can partially replace a human for purposes of automation. In such examples, themicrobot 610 can perform one or more steps in terms of graphical interface manipulation, but due to variability in the process or other factors, one or more steps may preferably be performed by a human. In such cases, a wait state may be performed by themicrobot 610, for example to approve, check, or validate action of the microbot before proceeding, either with further operation bymicrobot 610 or by other microbots used in an overall process. -
FIG. 6C illustrates athird microbot 620 configured for data processing; in this case,microbot 620 includes aplatform interface 602,output interface 604, and adata processing component 626. Thethird microbot 620 is configured to process data passed to it by the platform 300, so it Thedata processing component 626 may perform one or more operations on data received at that microbot from a specific application, for example one or more mathematical calculations, reformatting of data records, securing or redacting of records for compliance with privacy laws, or other operations. In a possible example, themicrobot 620 can be configured to perform image character recognition on image data that is captured (e.g., by a prior portion of a business process guided by a different microbot). This could allow for verification or processing of handwritten text. Other types of microbot functions, such as parsing and analysis of text based on a machine-learning model, could be implemented withindata processing component 626 as well. - It is noted that the microbot types of
FIGS. 6A-6C are merely examples and that numerous other types of microbots or granularities in which business processes could be subdivided are possible as well. Furthermore, as illustrated in the above example microbots, each of the microbots has a definition of input data expected and output data to be delivered, but does not include dependencies on other microbots; rather, when and whether a microbot is called is left to the platform 300 overall. This allows each microbot to be integrated into a plurality of different business process flows without having to modify those microbots to define dependencies in each microbot; rather, those would be defined in the process and event metadata as defined in the platform 300 itself. Further, microbots are not self-executing, but rather rely on the platform 300 to call each microbot for execution and for providing underlying resources for execution (e.g., access to relevant platforms and/or workers to perform specific tasks). Microbots merely represent a definition of granularity for a process. -
FIG. 7 illustrates anexample sequence 600 of microbot calls from an event engine to perform a plurality of business processes, according to an example implementation. In this example, a business process may be performed by the platform 300 (e.g., byprogrammable bot engine 428 and event engine 430) calling a specific sequence of microbots to perform a business process. The sequence as illustrated includes a call to microbot 600, for example to provide an interface for access to data within a specific application on a platform requiring access as part of a business process. When microbot 600 completes execution, the platform may then have access to the application, and can call microbot 610 to perform a graphical user interface manipulation to select specific data within the application, and microbot 620 to perform one or more data operations on that data. Because data selected usingmicrobot 610 may require substantial processing time, the platform 300 may elect to call multiple versions ofmicrobot 620 and pass different portions of the data selected usingmicrobot 610. Once allmicrobots 620 have completed execution, the platform 300 may call microbot 600 to provide an interface back to the application, e.g., for providing an interface to a different application to allow for further execution within that application. - It is recognized that the above is a relatively simplistic example of utilization of microbots, since the above discussion relates to a single data access and processing sequence for obtaining data from one application, transforming the data, and providing the transformed data to a second application; typical microbots may be far more complex, and interrelationships among them may be more complex as well. Accordingly, the use of microbots within platform 300 is widely scalable such that any number or complexity of microbots can be used for a business process, and can be assigned to that business process dynamically.
- Furthermore, although in the above-referenced example some data and operational dependencies exist among the microbots enforcing a particular order, that is not necessarily the case for all business processes. For example, in one possible use of the platform 300 is to manage a vendor payment process within an organization, since such a process is typically performed frequently and involves many steps that might be automated. In such a process, an organization will typically have multiple vendors. The business may send purchase orders to multiple vendors, and will receive a shipment in response to each, that includes a receipt. It is noted that each purchase order can be fulfilled by one or multiple shipments, and therefore there may be multiple receipts per purchase order. Or, if multiple purchase orders are issued to the same vendor, that vendor may aggregate goods from multiple purchase orders into a single shipment, and therefore there may be fewer receipts per purchase order. The vendor will also issue an invoice with each shipment. To ensure correct payment of the invoice, a business process must compare the invoices against the correct purchase order and the received items on the receipt to ensure the invoice is correct prior to payment. Still further, descriptions of goods may differ between a purchase order and receipt or invoice, and various goods or services may be received with mismatched receipts, etc. Accordingly, automation of even this process may be complex.
- In traditional execution of the above process (and traditional automation attempts), a designer may look at the overall process in terms of what a human would do, in a step-by-step manner—e.g., purchase order matching to receipt and invoice, one or more reconciliation operations, etc., and determine that there are, overall 10-15 steps in the overall process. Furthermore, some of those steps may include a physical step of printing a check, scanning a document, or otherwise verifying the physical presence of received goods. Additionally, with respect to automation of such a process, not only is the matching of goods to receipts to invoices difficult due to possible mismatch, even matched goods or services may not be described similarly, as noted above. To address this issue, a purchase order matching operation that is performed by a custom microbot may compare a receipt to a purchase order to find matches, but may include some textual analysis or fuzzy logic to ensure that less-than-perfect matches in description of goods and services can be considered a match. The same is true between invoices and purchase orders. Other microbots could be implemented for each step of the above process, as well as for various other operations, such as privacy law compliance, vendor payments, etc.
- By way of a further example, a replenishment and inventory allocation process could be performed using a plurality of microbots. A first microbot could queue all incoming inventory to be received within the next predetermined number of days. The first microbot could scan orders and expected arrival dates, and build a schedule accordingly. A second microbot could check demand, for example by assessing demand directly as feedback from stores, or based on a demand forecast driven by an assortment plan or other demand forecasting tool. The second microbot could therefore represent an interface to such a tool that is configured to automatically retrieve demand, for example on a per-store or per-region basis. A third microbot would match inventory demand against the expected incoming supply, and apply a plurality of rules to spread the expected inventory out to the stores at which demand exists, or is the highest. A fourth microbot could look at all partially allocated inventory receipts, and adjust the inventory levels (either requested inventory, or amount of inventory allocated to each store or distribution center) based on the demand and inventory levels. In each instance, the microbot performs a discrete task, with operational flow among the microbots managed by the platform with which they are hosted.
- In some examples, types of tasks performed by discrete microbots can include, for example: reading data from a document; navigating a user interface to select one or more options presented within the user interface; creating an update or notification message; performing a user action; reading EDI documents; interfacing with an email server or application; interfacing with a third-party software system (e.g., PeopleSoft, etc.), robotic document processing, or customized, process specific microbots. In a further possible example, a microbot can be created that is designed to receive a dataset and perform a PCI compliance check on that dataset. Or, as a further level of granularity, the PCI compliance can be split into sub-processes, with separate microbots for assessment of data structures, Sarbanes-Oxley compliance, or other data assessments, each performed independently and in parallel on the dataset. Other possibilities exist as well.
- Referring now to
FIG. 8 , amethod 800 of automating business processes including one or more physical processes is shown, according to an example embodiment. Themethod 800 can be accomplished using the microbots and platform discussed above in connection withFIGS. 1-7 , and is generally used when seeking to automate processes with improved efficiency as in the present disclosure. For any given business process, themethod 800 includes defining the business process in process metadata (step 802). The process metadata can be captured, for example, in theprocess management module 420 of the platform core. - As noted above, the business process that is the subject of automation can be any of a variety of types of business processes. Typically, the business process to be automated is a process that is executed repeatedly by an organization and including one or more inputs, one or more outputs, and a plurality of task-based operations. The task-based operations can include a physical task to be performed on an object. To implement such a business process using the platform and systems described herein, the business process is decomposed into the tasks (step 804) and, from the set of tasks, and based on the process metadata, a plurality of microbots can be selected (step 806), to perform micro-operations included in the business process. The plurality of microbots that are selected can include, among others, one or more microbots that perform at least a portion of physical tasks that are included in a business process, such as in the example order fulfillment process described above. Once the overall business process is defined, at an appropriate time (either as triggered by a particular event or user), the platform 300 can initiate execution of the business process (step 808). More specifically, an event engine within the platform 300 can initiate execution of the business process, and can call various microbots for execution based on monitored preconditions and postconditions of the various microbots included in the process being satisfied.
- As noted above, the
method 800 can further optionally include adjusting usage (step 810) of the microbots in case of mismatch between expected input and output in terms of pre- and post-conditions for various microbots, or for performance reasons. For example, adjustment of the overall microbot-based execution can include substitution of one microbot for another in case of a failure in execution by that microbot. This may be the case, for example, where an underlying application has changed, and therefore the microbot's interactions with the application become unexpectedly interrupted. Other adjustments to the overall usage and process could be made as well. - Referring now to
FIG. 9 , a schematic illustration of anexample computing system 900 in which aspects of the present disclosure can be implemented. Thecomputing device 900 can represent, for example, a computing system within which one or more of servers or computing systems, such ascomputing system 105, can be implemented. In particular, thecomputing device 900 represents the physical construct of an example computing system at which an endpoint or server could be established. - In the example of
FIG. 9 , thecomputing device 900 includes amemory 902, aprocessing system 904, asecondary storage device 906, anetwork interface card 908, avideo interface 910, adisplay unit 912, anexternal component interface 914, and acommunication medium 916. Thememory 902 includes one or more computer storage media capable of storing data and/or instructions. In different embodiments, thememory 902 is implemented in different ways. For example, thememory 902 can be implemented using various types of computer storage media. - The
processing system 904 includes one or more processing units. A processing unit is a physical device or article of manufacture comprising one or more integrated circuits that selectively execute software instructions. In various embodiments, theprocessing system 904 is implemented in various ways. For example, theprocessing system 904 can be implemented as one or more physical or logical processing cores. In another example, theprocessing system 904 can include one or more separate microprocessors. In yet another example embodiment, theprocessing system 904 can include an application-specific integrated circuit (ASIC) that provides specific functionality. In yet another example, theprocessing system 904 provides specific functionality by using an ASIC and by executing computer-executable instructions. - The
secondary storage device 906 includes one or more computer storage media. Thesecondary storage device 906 stores data and software instructions not directly accessible by theprocessing system 904. In other words, theprocessing system 904 performs an I/O operation to retrieve data and/or software instructions from thesecondary storage device 906. In various embodiments, thesecondary storage device 906 includes various types of computer storage media. For example, thesecondary storage device 906 can include one or more magnetic disks, magnetic tape drives, optical discs, solid state memory devices, and/or other types of computer storage media. - The
network interface card 908 enables thecomputing device 900 to send data to and receive data from a communication network. In different embodiments, thenetwork interface card 908 is implemented in different ways. For example, thenetwork interface card 908 can be implemented as an Ethernet interface, a token-ring network interface, a fiber optic network interface, a wireless network interface (e.g., WiFi, WiMax, etc.), or another type of network interface. - The
video interface 910 enables thecomputing device 900 to output video information to thedisplay unit 912. Thedisplay unit 912 can be various types of devices for displaying video information, such as an LCD display panel, a plasma screen display panel, a touch-sensitive display panel, an LED screen, a cathode-ray tube display, or a projector. Thevideo interface 910 can communicate with thedisplay unit 912 in various ways, such as via a Universal Serial Bus (USB) connector, a VGA connector, a digital visual interface (DVI) connector, an S-Video connector, a High-Definition Multimedia Interface (HDMI) interface, or a DisplayPort connector. - The
external component interface 914 enables thecomputing device 900 to communicate with external devices. For example, theexternal component interface 914 can be a USB interface, a FireWire interface, a serial port interface, a parallel port interface, a PS/2 interface, and/or another type of interface that enables thecomputing device 900 to communicate with external devices. In various embodiments, theexternal component interface 914 enables thecomputing device 900 to communicate with various external components, such as external storage devices, input devices, speakers, modems, media player docks, other computing devices, scanners, digital cameras, and fingerprint readers. - The
communication medium 916 facilitates communication among the hardware components of thecomputing device 900. In the example ofFIG. 9 , thecommunications medium 916 facilitates communication among thememory 902, theprocessing system 904, thesecondary storage device 906, thenetwork interface card 908, thevideo interface 910, and theexternal component interface 914. Thecommunications medium 916 can be implemented in various ways. For example, thecommunications medium 916 can include a PCI bus, a PCI Express bus, an accelerated graphics port (AGP) bus, a serial Advanced Technology Attachment (ATA) interconnect, a parallel ATA interconnect, a Fiber Channel interconnect, a USB bus, a Small Computing system Interface (SCSI) interface, or another type of communications medium. - The
memory 902 stores various types of data and/or software instructions. For instance, in the example ofFIG. 9 , thememory 902 stores a Basic Input/Output System (BIOS) 918 and anoperating system 920. TheBIOS 918 includes a set of computer-executable instructions that, when executed by theprocessing system 904, cause thecomputing device 900 to boot up. Theoperating system 920 includes a set of computer-executable instructions that, when executed by theprocessing system 904, cause thecomputing device 900 to provide an operating system that coordinates the activities and sharing of resources of thecomputing device 900. Furthermore, thememory 902stores application software 922. Theapplication software 922 includes computer-executable instructions, that when executed by theprocessing system 904, cause thecomputing device 900 to provide one or more applications. Thememory 902 also storesprogram data 924. Theprogram data 924 is data used by programs that execute on thecomputing device 900. - Although particular features are discussed herein as included within a
computing device 900, it is recognized that in certain embodiments not all such components or features may be included within a computing device executing according to the methods and systems of the present disclosure. Furthermore, different types of hardware and/or software systems could be incorporated into such an electronic computing device. - In accordance with the present disclosure, the term computer readable media as used herein may include computer storage media and communication media. As used in this document, a computer storage medium is a device or article of manufacture that stores data and/or computer-executable instructions. Computer storage media may include volatile and nonvolatile, removable and non-removable devices or articles of manufacture implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. By way of example, and not limitation, computer storage media may include dynamic random access memory (DRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), reduced latency DRAM, DDR2 SDRAM, DDR3 SDRAM, solid state memory, read-only memory (ROM), electrically-erasable programmable ROM, optical discs (e.g., CD-ROMs, DVDs, etc.), magnetic disks (e.g., hard disks, floppy disks, etc.), magnetic tapes, and other types of devices and/or articles of manufacture that store data. Computer storage media does not include a carrier wave or other propagated or modulated data signal. In some embodiments, the computer storage media includes at least some tangible features; in many embodiments, the computer storage media includes entirely non-transitory components.
- Communication media may be embodied by computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and includes any information delivery media. The term “modulated data signal” may describe a signal that has one or more characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media may include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), infrared, and other wireless media.
- Referring to
FIGS. 1-9 generally, it is noted that the methods and systems described herein have a number of advantages over existing systems. For example, maintainability is improved, because although the frequency of updates may remain the same (due to changes in process) the extent of maintenance required will be reduced, because it will typically be contained to one or more microbots, and less than the entire process would need to be addressed. Furthermore, because the microbots can include adapters that provide a layer of abstraction from underlying enterprise systems, these interfaces can readily be switched as underlying enterprise applications change with little to no effect on the existing automated process. Furthermore, throughput issues are more easily addressed by allowing microbots to execute independently based solely on preconditions managed by the platform, rather than requiring sequential execution. This enables parallel execution of tasks within the platform, where appropriate. Still other advantages are present within the platform, methods and systems, as are apparent from the present disclosure. - Embodiments of the present disclosure, for example, are described above with reference to block diagrams and/or operational illustrations of methods, systems, and computer program products according to embodiments of the invention. The functions/acts noted in the blocks may occur out of the order as shown in any flowchart. For example, two blocks shown in succession may in fact be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending upon the functionality/acts involved.
- The description and illustration of one or more embodiments provided in this application are not intended to limit or restrict the scope of the invention as claimed in any way. The embodiments, examples, and details provided in this application are considered sufficient to convey possession and enable others to make and use the best mode of claimed invention. The claimed invention should not be construed as being limited to any embodiment, example, or detail provided in this application. Regardless of whether shown and described in combination or separately, the various features (both structural and methodological) are intended to be selectively included or omitted to produce an embodiment with a particular set of features. Having been provided with the description and illustration of the present application, one skilled in the art may envision variations, modifications, and alternate embodiments falling within the spirit of the broader aspects of the general inventive concept embodied in this application that do not depart from the broader scope of the claimed invention.
Claims (20)
1. A business process automation system comprising:
a business process execution platform executable on a computing system, the business process execution platform including:
a process management engine operable to define a plurality of different business processes, the plurality of different business processes comprising processes including a plurality of operations executed on a plurality of different computing systems and software applications;
a microbot management engine operable to manage definitions of a plurality of microbots, the plurality of microbots including:
a first microbot operable to interface with one or more of the plurality of different computing systems and software applications to perform at least a portion of a physical task; and
a second microbot operable to generate one or more recommendations for automating at least a portion of the business process based on availability of the plurality of microbots; and
an event engine operable to initiate execution of a business process defined in the process management engine by calling a selected plurality of the microbots in a predefined order to perform the business process, the microbots each performing a portion of the business process independently from other microbots, the event engine managing data dependencies within the business process and initiating use of each of the selected plurality of microbots based on the data dependencies.
2. The business process automation system of claim 1 , further comprising a user console presenting a user interface operable to:
receive a definition of a microbot to be added to the definitions of the plurality of microbots at the microbot management engine; and
receive a definition of a business process at the process management engine, the definition comprising process metadata.
3. The business process automation system of claim 2 , wherein each of the plurality of microbots comprises microbot metadata defining a micro-operation performed by the microbot and data dependencies of that microbot.
4. The business process automation system of claim 3 , wherein execution of each of the plurality of microbots is initiated independently of others of the plurality of microbots.
5. The business process automation system of claim 3 , wherein each of the plurality of microbots is stateless, wherein any state transitions or data dependencies required in definition of a business process are managed by the event engine.
6. The business process automation system of claim 1 , further comprising a security subsystem configured to manage data security within the business process execution platform.
7. The business process automation system of claim 1 , wherein one or more of the plurality of microbots is operable to utilize one or more worker systems to perform a portion of the business process, wherein the workers are included in a worker farm.
8. The business process automation system of claim 1 , wherein at least one of the plurality of microbots comprises an adapter configured to interface with a software application within the enterprise.
9. The business process automation system of claim 1 , wherein the computing system comprises a plurality of communicatively interconnected computing devices.
10. A computer implemented method of automating business processes, the method comprising:
defining each of a plurality of different business processes, the plurality of different business processes comprising processes including a plurality of operations executed on a plurality of different computing systems and software applications;
managing definitions of a plurality of microbots, the plurality of microbots including:
a first microbot configured to interface with one or more of the plurality of different computing systems and software applications to perform at least a portion of a physical task; and
a second microbot configured to generate one or more recommendations for automating at least a portion of the business process based on the availability of the plurality of microbots; and
initiating execution of a business process from an event engine by calling a selected plurality of the microbots to perform the business process, the microbots each performing a portion of the business process independently from other microbots, the event engine managing data dependencies within the business process and initiating use of each of the selected plurality of microbots based on the data dependencies.
11. The computer implemented method of claim 10 , further comprising:
presenting, on a user console, a user interface configured to:
receive a definition of a microbot to be added to the definitions associated with the plurality of microbots; and
receive a definition of a business process, the definition comprising process metadata.
12. The computer implemented method of claim 11 , wherein each of the plurality of microbots comprises microbot metadata defining an atomic operation performed by the microbot and data dependencies of that microbot.
13. The computer implemented method of claim 12 , wherein execution of each of the plurality of microbots is initiated independently of the others of the plurality of microbots.
14. The computer implemented method of claim 12 , wherein each of the plurality of microbots is stateless, wherein any state transitions or data dependencies required in definition of a business process are managed by the event engine.
15. The computer implemented method of claim 10 , wherein one or more of the plurality of microbots is configured to utilize one or more worker systems to perform a portion of the business process, wherein the workers are included in a worker farm.
16. The computer implemented method of claim 10 , wherein at least one of the plurality of microbots comprises an adapter configured to interface with a software application within the enterprise.
17. The computer implemented method of claim 10 , wherein the plurality of microbots includes one or more generic microbots reusable in a plurality of different business processes, and one or more custom microbots customized to the business process.
18. A system comprising:
a programmable circuit; and
a memory operatively connected to the programmable circuit, the memory storing:
definitions of a plurality of different business processes, the plurality of different business processes each including a plurality of operations executed on a plurality of different computing systems and software applications; and
instructions that, when executed by the programmable circuit, cause the system to:
manage definitions of a plurality of microbots, the plurality of microbots including:
at least one microbot operable to generate one or more recommendations for automating at least a portion of the business process based on the availability of the plurality of microbots; and
initiate execution of a business process by calling a selected plurality of the microbots to perform the business process, the microbots each performing a portion of the business process independently from other microbots, the event engine managing data dependencies within the business process and initiating use of each of the selected plurality of microbots based on the data dependencies.
19. The system of claim 18 , wherein the processor and memory are included in a process automation platform, the system further comprising a plurality of worker systems having a plurality of different capabilities, and wherein one or more of the plurality of microbots is operable to interface with a worker system from among the plurality of worker systems to perform one or more of the plurality of operations.
20. The system of claim 19 , further comprising a plurality of enterprise systems communicatively connected to the process automation platform, the plurality of enterprise systems hosting one or more of the plurality of business processes.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/474,634 US20210406798A1 (en) | 2017-08-25 | 2021-09-14 | Business process decomposition and modular reusable process automation system |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762550062P | 2017-08-25 | 2017-08-25 | |
US16/111,928 US11138539B2 (en) | 2017-08-25 | 2018-08-24 | Robtic business process automation system utilizing reusable task-based microbots |
US17/474,634 US20210406798A1 (en) | 2017-08-25 | 2021-09-14 | Business process decomposition and modular reusable process automation system |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/111,928 Division US11138539B2 (en) | 2017-08-25 | 2018-08-24 | Robtic business process automation system utilizing reusable task-based microbots |
Publications (1)
Publication Number | Publication Date |
---|---|
US20210406798A1 true US20210406798A1 (en) | 2021-12-30 |
Family
ID=65435348
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/111,928 Active 2039-08-09 US11138539B2 (en) | 2017-08-25 | 2018-08-24 | Robtic business process automation system utilizing reusable task-based microbots |
US17/474,634 Abandoned US20210406798A1 (en) | 2017-08-25 | 2021-09-14 | Business process decomposition and modular reusable process automation system |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/111,928 Active 2039-08-09 US11138539B2 (en) | 2017-08-25 | 2018-08-24 | Robtic business process automation system utilizing reusable task-based microbots |
Country Status (1)
Country | Link |
---|---|
US (2) | US11138539B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230385730A1 (en) * | 2022-05-24 | 2023-11-30 | Red Hat, Inc. | Segmenting processes into stand-alone services |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11138539B2 (en) * | 2017-08-25 | 2021-10-05 | Target Brands, Inc. | Robtic business process automation system utilizing reusable task-based microbots |
US11301349B2 (en) * | 2018-08-07 | 2022-04-12 | Rolls-Royce Corporation | Method and process of cyber security via software imaging |
EP3857354A4 (en) * | 2018-09-28 | 2021-11-24 | Element AI Inc. | Context-based recommendations for robotic process automation design |
US11429433B2 (en) * | 2019-01-16 | 2022-08-30 | Epiance Software Pvt. Ltd. | Process discovery and automatic robotic scripts generation for distributed computing resources |
US11803355B2 (en) * | 2019-01-29 | 2023-10-31 | American Express Travel Related Services Company, Inc. | Bot factory environment |
US11507677B2 (en) * | 2019-02-15 | 2022-11-22 | Microsoft Technology Licensing, Llc | Image classification modeling while maintaining data privacy compliance |
US10735522B1 (en) * | 2019-08-14 | 2020-08-04 | ProKarma Inc. | System and method for operation management and monitoring of bots |
US20210133680A1 (en) * | 2019-10-31 | 2021-05-06 | UiPath, Inc. | User portal for robotic process automation background |
US11233861B2 (en) * | 2020-02-18 | 2022-01-25 | UiPath, Inc. | Inter-session automation for robotic process automation (RPA) robots |
CN111709701A (en) * | 2020-05-29 | 2020-09-25 | 北京艾陌时信息技术有限公司 | Robot office system |
US11360792B2 (en) | 2020-06-17 | 2022-06-14 | Wipro Limited | Method and system for automatic selection of process automation RPA tool and BOT |
US20220004944A1 (en) | 2020-07-06 | 2022-01-06 | Grokit Data, Inc. | Automation system and method |
US11983654B2 (en) * | 2020-12-30 | 2024-05-14 | Coupa Software Incorporated | Method of observing and evaluating processes and user action efficiency with recommendations on change |
JP7130802B1 (en) * | 2021-03-17 | 2022-09-05 | 三菱電機Itソリューションズ株式会社 | Dynamic construction execution device, dynamic construction execution method, and dynamic construction execution program |
US11726902B1 (en) * | 2021-07-09 | 2023-08-15 | NTT DATA Services, LLC | System and method for automated bot testing scenario simulations |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5960404A (en) * | 1997-08-28 | 1999-09-28 | International Business Machines Corp. | Mechanism for heterogeneous, peer-to-peer, and disconnected workflow operation |
US6144954A (en) * | 1998-01-27 | 2000-11-07 | Li; Chou H. | Automatic development of computer software |
US20090138425A1 (en) * | 2008-01-31 | 2009-05-28 | Computer Associates Think, Inc. | Business optimization engine |
US20090198533A1 (en) * | 2008-01-31 | 2009-08-06 | Computer Associates Think, Inc. | Business process extractor |
US7949619B2 (en) * | 2008-01-31 | 2011-05-24 | Computer Associates Think, Inc. | Business process analyzer that serializes obtained business process data and identifies patterns in serialized business processs data |
US8296117B2 (en) * | 2008-01-31 | 2012-10-23 | Ca, Inc. | Business process optimizer |
US20170228119A1 (en) * | 2016-02-09 | 2017-08-10 | Wipro Limited | System and methods for creating on-demand robotic process automation |
US20180054491A1 (en) * | 2016-08-19 | 2018-02-22 | Ca, Inc. | Maintaining distributed state among stateless service clients |
US20180370029A1 (en) * | 2017-06-23 | 2018-12-27 | Accenture Global Solutions Limited | Self-learning robotic process automation |
US20180370033A1 (en) * | 2017-06-21 | 2018-12-27 | Nice Ltd | System and method for detecting and fixing robotic process automation failures |
US20190005012A1 (en) * | 2017-06-30 | 2019-01-03 | Accenture Global Solutions Limited | Document processing |
US10354225B2 (en) * | 2015-08-19 | 2019-07-16 | Tata Consultancy Services Limited | Method and system for process automation in computing |
US10839404B2 (en) * | 2016-06-06 | 2020-11-17 | Epiance Software Pvt. Ltd. | Intelligent, interactive, and self-learning robotic process automation system |
US11138539B2 (en) * | 2017-08-25 | 2021-10-05 | Target Brands, Inc. | Robtic business process automation system utilizing reusable task-based microbots |
US11513886B2 (en) * | 2021-03-11 | 2022-11-29 | UiPath, Inc. | System and computer-implemented method for managing robotic process automation (RPA) robots |
Family Cites Families (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5774661A (en) * | 1995-04-18 | 1998-06-30 | Network Imaging Corporation | Rule engine interface for a visual workflow builder |
US6662355B1 (en) * | 1999-08-11 | 2003-12-09 | International Business Machines Corporation | Method and system for specifying and implementing automation of business processes |
US6874008B1 (en) * | 1999-10-11 | 2005-03-29 | I2 Technologies Us, Inc. | Workflow encapsulation in stateless environments |
US7861252B2 (en) * | 2001-03-21 | 2010-12-28 | Andrzej Uszok | Intelligent software agent system architecture |
US7249195B2 (en) | 2001-03-30 | 2007-07-24 | Minor Ventures, Llc | Apparatus and methods for correlating messages sent between services |
US7120896B2 (en) | 2001-10-31 | 2006-10-10 | Vitria Technology, Inc. | Integrated business process modeling environment and models created thereby |
US7316000B2 (en) | 2001-08-27 | 2008-01-01 | International Business Machines Corporation | Interactive agent for a topological multi-tier business application composer |
US7562339B2 (en) | 2002-01-15 | 2009-07-14 | Bea Systems, Inc. | System architecture for business process development and execution with introspection and generic components |
US7424717B2 (en) * | 2002-05-01 | 2008-09-09 | Bea Systems, Inc. | Systems and methods for business process plug-in development |
US7350188B2 (en) * | 2002-07-31 | 2008-03-25 | Sap Aktiengesellschaft | Aggregation of private and shared workflows |
US7653562B2 (en) * | 2002-07-31 | 2010-01-26 | Sap Aktiengesellschaft | Workflow management architecture |
US8015541B1 (en) | 2002-10-24 | 2011-09-06 | Rage Frameworks, Inc. | Business process technology for the enterprise |
US7689443B2 (en) * | 2002-12-31 | 2010-03-30 | Employers Reinsurance Corporation | Methods and structure for insurance industry workflow processing |
US7577934B2 (en) | 2003-03-12 | 2009-08-18 | Microsoft Corporation | Framework for modeling and providing runtime behavior for business software applications |
US7826101B2 (en) * | 2003-06-25 | 2010-11-02 | Ricoh Company, Ltd. | Document management method, document management program, recording medium, and document management apparatus |
US7653592B1 (en) * | 2003-12-01 | 2010-01-26 | Fannie Mae | System and method for processing a loan |
US20050165822A1 (en) | 2004-01-22 | 2005-07-28 | Logic Sight, Inc. | Systems and methods for business process automation, analysis, and optimization |
US7451432B2 (en) * | 2004-10-01 | 2008-11-11 | Microsoft Corporation | Transformation of componentized and extensible workflow to a declarative format |
CA2628099C (en) * | 2005-10-31 | 2012-07-17 | Captaris, Inc. | Queue processor for document servers |
US20070177195A1 (en) * | 2005-10-31 | 2007-08-02 | Treber Rebert | Queue processor for document servers |
US8095923B2 (en) * | 2006-06-29 | 2012-01-10 | Augusta Systems, Inc. | System and method for deploying and managing intelligent nodes in a distributed network |
US7757178B2 (en) * | 2006-08-10 | 2010-07-13 | Kabushiki Kaisha Toshiba | System and method for generating a customized workflow user interface |
US7979840B2 (en) * | 2006-10-31 | 2011-07-12 | International Business Machines Corporation | Method and apparatus for service-oriented architecture process decomposition and service modeling |
JP5167662B2 (en) * | 2007-03-19 | 2013-03-21 | 株式会社リコー | Workflow management system |
US20080247004A1 (en) * | 2007-04-03 | 2008-10-09 | Michael Yeung | System and method for workflow control of scanned document input |
US20080288621A1 (en) * | 2007-05-18 | 2008-11-20 | Snell Dustin M | Agent workflow system and method |
US8386996B2 (en) * | 2007-06-29 | 2013-02-26 | Sap Ag | Process extension wizard for coherent multi-dimensional business process models |
US9613324B2 (en) * | 2008-03-28 | 2017-04-04 | International Business Machines Corporation | Apparatus and methods for decomposing service processes and for identifying alternate service elements in service provider environments |
US20100131916A1 (en) * | 2008-11-21 | 2010-05-27 | Uta Prigge | Software for modeling business tasks |
CA2787185A1 (en) * | 2010-01-19 | 2011-07-28 | Whatsnexx Marketing Automation Inc. | System and method for designing and executing subject-state engine workflows |
US8810829B2 (en) * | 2010-03-10 | 2014-08-19 | Ricoh Co., Ltd. | Method and apparatus for a print driver to control document and workflow transfer |
US9954819B2 (en) | 2010-05-26 | 2018-04-24 | Automation Anywhere, Inc. | System and method for compliance based automation |
US9262228B2 (en) * | 2010-09-23 | 2016-02-16 | Microsoft Technology Licensing, Llc | Distributed workflow in loosely coupled computing |
US9026577B1 (en) * | 2012-02-22 | 2015-05-05 | Amazon Technologies, Inc. | Distributed workflow management system |
US10360565B2 (en) * | 2012-05-18 | 2019-07-23 | Kofax, Inc. | System and method for providing a universal endpoint address schema to route documents and manage document workflows |
US9852220B1 (en) * | 2012-10-08 | 2017-12-26 | Amazon Technologies, Inc. | Distributed workflow management system |
JP6146132B2 (en) * | 2013-05-23 | 2017-06-14 | 株式会社リコー | Information processing apparatus, information processing method, and computer program |
US9229795B2 (en) * | 2013-12-09 | 2016-01-05 | Hewlett Packard Enterprise Development Lp | Execution of end-to-end processes across applications |
US10198490B2 (en) * | 2014-01-06 | 2019-02-05 | Salesforce.Com, Inc. | Systems and methods for interactively configuring multiple conditions and multiple actions in a workflow application |
US20160012366A1 (en) | 2014-07-14 | 2016-01-14 | Wipro Limited | System and method for optimizing project operations, resources and associated processes of an organization |
US20160019484A1 (en) | 2014-07-18 | 2016-01-21 | Wipro Limited. | System and method for managing resources of a project |
US10372508B2 (en) * | 2016-03-17 | 2019-08-06 | Wipro Limited | Method and system for dynamically integrating bots |
US11295228B2 (en) * | 2016-03-21 | 2022-04-05 | Wipro Limited | Methods for creating automated dynamic workflows of interoperable bots and devices thereof |
US10855625B1 (en) * | 2016-05-11 | 2020-12-01 | Workato, Inc. | Intelligent, adaptable, and trainable bot that orchestrates automation and workflows across multiple applications |
EP3437038A4 (en) * | 2016-07-20 | 2019-08-28 | Hewlett-Packard Development Company, L.P. | Creating digital workers in organizations |
US10025567B2 (en) * | 2016-10-14 | 2018-07-17 | Microsoft Technology Licensing, Llc | Bot creation with workflow development system |
US11157855B2 (en) * | 2017-01-09 | 2021-10-26 | Sutherland Global Services Inc. | Robotics process automation platform |
US10311360B1 (en) * | 2017-03-21 | 2019-06-04 | Jean-Michel Raymond Ares | System and method for building and using robotic managers |
US10802453B2 (en) * | 2017-06-02 | 2020-10-13 | Bank Of America Corporation | Robotics process automation macro bot |
US10449670B2 (en) * | 2017-07-17 | 2019-10-22 | Bank Of America Corporation | Event processing using robotic entities |
US12085901B2 (en) * | 2017-11-21 | 2024-09-10 | Accenture Global Solutions Limited | Bot management framework for robotic process automation systems |
US10606687B2 (en) * | 2017-12-04 | 2020-03-31 | Bank Of America Corporation | Process automation action repository and assembler |
US10452674B2 (en) * | 2017-12-07 | 2019-10-22 | Accenture Global Solutions Limited | Artificial intelligence and robotic process automation for automated data management |
US10733329B1 (en) * | 2018-04-20 | 2020-08-04 | Automation Anywhere, Inc. | Robotic process automation system and method with secure credential vault |
US10802872B2 (en) * | 2018-09-12 | 2020-10-13 | At&T Intellectual Property I, L.P. | Task delegation and cooperation for automated assistants |
US10860905B1 (en) * | 2019-10-16 | 2020-12-08 | UiPath, Inc. | Long running workflows for document processing using robotic process automation |
US10654166B1 (en) * | 2020-02-18 | 2020-05-19 | UiPath, Inc. | Automation windows for robotic process automation |
-
2018
- 2018-08-24 US US16/111,928 patent/US11138539B2/en active Active
-
2021
- 2021-09-14 US US17/474,634 patent/US20210406798A1/en not_active Abandoned
Patent Citations (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5960404A (en) * | 1997-08-28 | 1999-09-28 | International Business Machines Corp. | Mechanism for heterogeneous, peer-to-peer, and disconnected workflow operation |
US6144954A (en) * | 1998-01-27 | 2000-11-07 | Li; Chou H. | Automatic development of computer software |
US20090138425A1 (en) * | 2008-01-31 | 2009-05-28 | Computer Associates Think, Inc. | Business optimization engine |
US20090198533A1 (en) * | 2008-01-31 | 2009-08-06 | Computer Associates Think, Inc. | Business process extractor |
US7949619B2 (en) * | 2008-01-31 | 2011-05-24 | Computer Associates Think, Inc. | Business process analyzer that serializes obtained business process data and identifies patterns in serialized business processs data |
US8175991B2 (en) * | 2008-01-31 | 2012-05-08 | Ca, Inc. | Business optimization engine that extracts process life cycle information in real time by inserting stubs into business applications |
US8296117B2 (en) * | 2008-01-31 | 2012-10-23 | Ca, Inc. | Business process optimizer |
US10354225B2 (en) * | 2015-08-19 | 2019-07-16 | Tata Consultancy Services Limited | Method and system for process automation in computing |
US20170228119A1 (en) * | 2016-02-09 | 2017-08-10 | Wipro Limited | System and methods for creating on-demand robotic process automation |
US10365799B2 (en) * | 2016-02-09 | 2019-07-30 | Wipro Limited | System and methods for creating on-demand robotic process automation |
US10839404B2 (en) * | 2016-06-06 | 2020-11-17 | Epiance Software Pvt. Ltd. | Intelligent, interactive, and self-learning robotic process automation system |
US20180054491A1 (en) * | 2016-08-19 | 2018-02-22 | Ca, Inc. | Maintaining distributed state among stateless service clients |
US11504852B2 (en) * | 2017-06-21 | 2022-11-22 | Nice Ltd | System and method for detecting and fixing robotic process automation failures |
US20210023709A1 (en) * | 2017-06-21 | 2021-01-28 | Nice Ltd | System and method for detecting and fixing robotic process automation failures |
US11642788B2 (en) * | 2017-06-21 | 2023-05-09 | Nice Ltd. | System and method for detecting and fixing robotic process automation failures |
US20230024387A1 (en) * | 2017-06-21 | 2023-01-26 | Nice Ltd | System and method for detecting and fixing robotic process automation failures |
US10682761B2 (en) * | 2017-06-21 | 2020-06-16 | Nice Ltd | System and method for detecting and fixing robotic process automation failures |
US20200262075A1 (en) * | 2017-06-21 | 2020-08-20 | Nice Ltd | System and method for detecting and fixing robotic process automation failures |
US20180370033A1 (en) * | 2017-06-21 | 2018-12-27 | Nice Ltd | System and method for detecting and fixing robotic process automation failures |
US10843342B2 (en) * | 2017-06-21 | 2020-11-24 | Nice Ltd | System and method for detecting and fixing robotic process automation failures |
US10235192B2 (en) * | 2017-06-23 | 2019-03-19 | Accenture Global Solutions Limited | Self-learning robotic process automation |
US10970090B2 (en) * | 2017-06-23 | 2021-04-06 | Accenture Global Solutions Limited | Self-learning robotic process automation |
US20190265990A1 (en) * | 2017-06-23 | 2019-08-29 | Accenture Global Solutions Limited | Self-learning robotic process automation |
US20180370029A1 (en) * | 2017-06-23 | 2018-12-27 | Accenture Global Solutions Limited | Self-learning robotic process automation |
US20190005012A1 (en) * | 2017-06-30 | 2019-01-03 | Accenture Global Solutions Limited | Document processing |
US11138539B2 (en) * | 2017-08-25 | 2021-10-05 | Target Brands, Inc. | Robtic business process automation system utilizing reusable task-based microbots |
US11513886B2 (en) * | 2021-03-11 | 2022-11-29 | UiPath, Inc. | System and computer-implemented method for managing robotic process automation (RPA) robots |
Non-Patent Citations (4)
Title |
---|
Automation Anywhere Enterprise - Development Client - User Guide Automation Anywhere, Inc., 2017 (Year: 2017) * |
Blueprism tutorial TutorialsPoint.com, 2019 (Year: 2019) * |
Chappell, David, Introducing Blue Prism - Robotic Process Automation for the Enterprise Chappell & Associates, 2017 (Year: 2017) * |
Chappell, David, Understanding Enterprise RPA Chappell & Associates, 2017 (Year: 2016) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230385730A1 (en) * | 2022-05-24 | 2023-11-30 | Red Hat, Inc. | Segmenting processes into stand-alone services |
Also Published As
Publication number | Publication date |
---|---|
US11138539B2 (en) | 2021-10-05 |
US20190066018A1 (en) | 2019-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210406798A1 (en) | Business process decomposition and modular reusable process automation system | |
EP3340034B1 (en) | Application lifecycle management system | |
US11061718B2 (en) | Pattern-based artificial intelligence planner for computer environment migration | |
US10824948B2 (en) | Decision tables and flow engine for building automated flows within a cloud based development platform | |
US9753826B2 (en) | Providing fault injection to cloud-provisioned machines | |
KR20210045299A (en) | Long running workflows for document processing using robotic process automation | |
US11966984B2 (en) | Systems and method for combined account reconciliation and variance/flux analysis | |
US11573974B2 (en) | System and method for automatic correction/rejection in an analysis applications environment | |
EP2667301B1 (en) | Decision service manager | |
US8856155B2 (en) | Management of configuration data structures in multi-layer data models | |
CN114170015A (en) | Information processing method, system, device and medium | |
US11924029B2 (en) | System for scoring data center application program interfaces | |
US20230222510A1 (en) | System for Automatically Generating Customer Specific Data Center Application Program Interface Documentation | |
US20200341742A1 (en) | Method and apparatus for continuous delivery of permissioned blockchain application | |
WO2021073096A1 (en) | Resource data transfer method and device, and blockchain system | |
US20210286785A1 (en) | Graph-based application performance optimization platform for cloud computing environment | |
CN112183982A (en) | Workflow creating method and device, computer equipment and storage medium | |
US11842179B2 (en) | System for automatically generating customer specific data center application program interfaces | |
US11113105B1 (en) | Computer implemented system and method for generating platform agnostic digital worker | |
US9405636B2 (en) | Recovering step and batch-based processes | |
US20240248821A1 (en) | Data Center Environment Architecture Including System Under Test Component Analysis For Use When Performing Test Automation Orchestration | |
US20240248834A1 (en) | Data Center Environment Architecture Including a Continuous Scheduler for Generating a Continuous Execution Plan When Performing Test Automation Orchestration | |
US20240248835A1 (en) | Data Center Environment Architecture for Providing Autonomous Data Center Test Automation Orchestration | |
US11650858B2 (en) | Maintaining stream processing resource type versions in stream processing | |
US20230409386A1 (en) | Automatically orchestrating a computerized workflow |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |