Method, system and computer program product for managing workflow using dynamic workflow creation
The workflow management system addresses errors in complex workflows by automatically modifying and executing workflows based on elemental configurations, enhancing efficiency and reducing manual errors.
Patent Information
- Application Number
- JP2024554881
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2022-09-23
- Publication Date
- 2025-04-16
- Estimated Expiration
- 2042-09-23
AI Technical Summary
Complex workflows in various industries are prone to errors due to intricate internal guidelines and external regulations, leading to issues like omitted steps, mis-execution, or tasks being performed in a different order.
A workflow management system that includes at least one processor and a computer-readable storage medium, capable of loading workflows with multiple tasks, modifying them based on elemental configurations, and executing the modified workflows on elements, thereby reducing human error and improving efficiency.
The system enables the automatic generation of dynamic workflows tailored to different elemental configurations, reducing manual effort and minimizing errors, while allowing for quick scaling of workflows to accommodate various element sizes.
Smart Images

Figure 2025511533000001_ABST
Abstract
Description
[Technical field]
[0001] The present disclosure relates to workflows and workflow management. [Background technology]
[0002] In many industries, services, applications, businesses, etc., procedures are complex and error-prone due to various internal guidelines and / or external regulations. Workflows are developed to present such complex procedures in a way that makes it easy for a human to follow the procedures, while at the same time reducing potential errors such as steps being omitted, performed incorrectly, or performed out of order. Summary of the Invention
[0003] In some embodiments, a workflow management system comprises at least one processor and at least one computer-readable storage medium coupled to the at least one processor and configured to store executable instructions that, when executed by the at least one processor, instruct the at least one processor to load a workflow including a plurality of sequenced tasks, automatically modify the workflow based on an element configuration of the element for workflow execution to obtain a modified workflow, and cause the modified workflow to be executed on the element.
[0004] In some embodiments, a workflow management method is performed at least in part by at least one processor. The method includes loading a workflow including a plurality of tasks in a sequence. The plurality of tasks includes at least one first task and at least one second task associated with the at least one first task. The method further includes generating at least one replica of the at least one first task and associating the at least one replica of the at least one first task with the at least one second task to obtain a modified workflow. The method further includes executing the modified workflow, in which the at least one first task is executed at each node in a group of nodes and the at least one second task is executed at one or more nodes in the group of nodes.
[0005] In some embodiments, a computer program product comprises a non-transitory tangible computer-readable storage medium storing a computer program, which when executed by at least one processor, instructs the at least one processor to visually present at least one input area for receiving user input of an element for workflow execution in response to a user selection of a workflow. The workflow includes a first set of tasks followed by a second set of tasks. The at least one processor is further instructed to modify the workflow in response to the user input of the element to obtain a modified workflow executed at the element, the number of the first set of tasks in the modified workflow being equal to the number of nodes in the element. The at least one processor is further instructed to visually present the modified workflow and to cause execution of the first set of tasks at each node of the element and then the second set of tasks at one or more nodes of the element in response to a user instruction to execute the visually presented modified workflow.
[0006] Aspects of the present disclosure are best understood from the following detailed description when read in conjunction with the accompanying drawings. In accordance with standard industry practice, various features have not been drawn to scale. In fact, dimensions of various features may be arbitrarily increased or decreased for clarity of illustration. [Brief description of the drawings]
[0007] [Figure 1A] FIG. 1 is a schematic diagram of a workflow management system according to some embodiments.
[0008] [Figure 2A] 1 is a schematic diagram illustrating various screens or panels of a user interface in a workflow management system according to some embodiments. [Figure 2B] 1 is a schematic diagram illustrating various screens or panels of a user interface in a workflow management system according to some embodiments. [Figure 3A] 1 is a schematic diagram illustrating various screens or panels of a user interface in a workflow management system according to some embodiments. [Figure 3B] 1 is a schematic diagram illustrating various screens or panels of a user interface in a workflow management system according to some embodiments. [Figure 3C] 1 is a schematic diagram illustrating various screens or panels of a user interface in a workflow management system according to some embodiments. [Figure 3D] 1 is a schematic diagram illustrating various screens or panels of a user interface in a workflow management system according to some embodiments. [Figure 4] 1 is a schematic diagram illustrating various screens or panels of a user interface in a workflow management system according to some embodiments. [Figure 5A] 1 is a schematic diagram illustrating various screens or panels of a user interface in a workflow management system according to some embodiments. [Figure 5B]1 is a schematic diagram illustrating various screens or panels of a user interface in a workflow management system according to some embodiments. [Figure 5C] 1 is a schematic diagram illustrating various screens or panels of a user interface in a workflow management system according to some embodiments. [Figure 5D] 1 is a schematic diagram illustrating various screens or panels of a user interface in a workflow management system according to some embodiments. [Figure 5E] 1 is a schematic diagram illustrating various screens or panels of a user interface in a workflow management system according to some embodiments. [Figure 5F] 1 is a schematic diagram illustrating various screens or panels of a user interface in a workflow management system according to some embodiments. [Figure 5G] 1 is a schematic diagram illustrating various screens or panels of a user interface in a workflow management system according to some embodiments. [Figure 5H] 1 is a schematic diagram illustrating various screens or panels of a user interface in a workflow management system according to some embodiments. [Figure 5I] 1 is a schematic diagram illustrating various screens or panels of a user interface in a workflow management system according to some embodiments.
[0009] [Figure 6A] 1 is a flowchart of various processes in a workflow management system according to some embodiments. [Figure 6B] 1 is a flowchart of various processes in a workflow management system according to some embodiments.
[0010] [Figure 7] 1 is a schematic block diagram of a computer system according to some embodiments. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0011] The following disclosure includes many different embodiments or examples for implementing different features of the subject matter. To simplify the disclosure, specific examples of components, values, operations, materials, arrangements, etc. are described below. Of course, these are merely examples and are not intended to be limiting. Other components, values, operations, materials, arrangements, etc. are contemplated. For example, the formation of a first feature on or above a second feature in the following description includes embodiments in which the first feature and the second feature are formed in direct contact with each other, and also includes embodiments in which an additional feature is formed between the first feature and the second feature such that the first feature and the second feature are not in direct contact with each other. In addition, the disclosure repeats reference numbers and / or signs in various examples. This repetition is for the purposes of brevity and clarity and does not in itself dictate a relationship between the various embodiments and / or configurations discussed. Furthermore, spatially relative terms such as "directly below," "below," "at the bottom," "above," "above," etc. may be used herein to describe a relationship between one element or feature and another element or feature, as shown in the figures, for ease of description. Spatially relative terms are intended to encompass different orientations of the device during use or operation in addition to the orientation shown in the figures: the device may be otherwise oriented (rotated 90 degrees or at other orientations) and the spatially relative descriptors that may also be used herein interpreted accordingly.
[0012] A workflow presents a step-by-step process of how work should be done. Examples of processes include, but are not limited to, business and / or technical plans, procedures, customer support / service, etc. In complex technical situations, i.e., when the number of workflows and / or tasks within the workflows are large, or when one or more workflow tasks are performed at one or more locations physically distant from an administrator or supervisor, the ability to remotely monitor and / or control the execution of the workflows becomes a consideration.
[0013] In some embodiments, the workflow management system is configured to create modified workflows from workflows that can be reused as workflow templates. In one or more embodiments, the workflow management system is configured to generate different modified workflows from the same workflow in response to different element configurations of various elements on which the generated workflow is executed. For example, the workflow management system is configured to replicate at least a portion of the workflow based on the number of nodes in the element selected for execution of the workflow. As a result, in at least one embodiment, the same workflow can be quickly scaled to obtain modified workflows corresponding to various elements of different sizes (e.g., different numbers of nodes). In some embodiments, users of the workflow management system are provided with a user interface (UI) for creating their own workflows and / or managing workflows, elements, and / or functions within the workflow management system. The UI is further configured to allow users to automatically generate dynamic workflows from existing workflows as described herein, execute the workflows, and / or monitor the status of executed workflows. In at least one embodiment, such automatic generation of dynamic workflows from workflows that can be used as templates reduces the amount of time and / or effort spent on manual work and / or travel to prepare and / or execute scripts to perform similar tasks. One or more embodiments may also avoid many of the potential human errors associated with manual operations.Additional features and / or advantages are within the scope of various embodiments.
[0014] FIG. 1 is a schematic diagram of a workflow management system 100 according to some embodiments.
[0015] The workflow management system 100 comprises a dashboard microservice 110, an engine 120, a database 130, and a log storage 140. A repository 150 and one or more elements 160 are also shown in FIG. 1. In at least one embodiment, the repository 150 is part of the workflow management system 100. In some embodiments, the repository 150 is at least partially external to the workflow management system 100. The elements 160 are an example of a location, site, or facility where one or more workflows managed by the workflow management system 100 are executed.
[0016] In some embodiments, at least one, some, or all of the components illustrated in FIG. 1, such as dashboard microservice 110, engine 120, database 130, log storage 140, repository 150, elements 160, and / or subcomponents thereof (e.g., modules 112, 114, 116 and / or engines 122, 124, 126), comprise hardware upon which software corresponding to various algorithms and / or operations described herein is executed. Example hardware configurations of one or more of the components illustrated in FIG. 1 include the computer system described with respect to FIG. 7. For example, at least one, some, or all of the components of workflow management system 100, repository 150, elements 160, and / or subcomponents thereof include executable instructions stored on at least one computer-readable medium and executed by at least one hardware processor. In some embodiments, one or more of the components in workflow management system 100 and / or subcomponents thereof are implemented on / by a cloud platform. Other configurations are within the scope of various embodiments.
[0017] Dashboard microservice 110 includes multiple modules configured to provide one or more functions and / or operations described herein. For purposes of illustration, dashboard microservice 110 of FIG. 1 includes modules 112, 114, 116. However, other numbers and / or types of modules are within the scope of various embodiments. In at least one embodiment, at least one of modules 112, 114, 116 includes a set of modules. In at least one embodiment, example modules 112, 114, 116 are distinct from one another or share at least one common module.
[0018] The dashboard microservice 110 includes one or more modules configured to generate a graphic user interface (hereinafter, "UI") for the user 101. The UI generated by the dashboard microservice 110 is visually presented to the user to help the user create and / or manage various workflows and workflow executions as described herein. In some embodiments, examples of visual presentations of workflow and / or UI screens include displaying the workflow and / or UI screens on a display, such as a monitor or a touch screen. The display may be a display of a computer system implementing one or more components of the workflow management system 100, or may be a remote display connected to one or more components of the workflow management system 100 through a network or communication link. Other methods for visually presenting information, such as projection onto a screen, or three-dimensional (3D) projection using glasses and / or other head-mounted devices, or any other method for presenting information that a user can visually perceive, are within the scope of various embodiments. For simplicity, in the following description, "displaying," "displayed," "showing," "indicated," "showing," or similar expressions may be used as exemplary methods for visually presenting information. As discussed herein, other methods for visual presentation are not excluded: a user can interact with the displayed information by a pointing device (e.g., a mouse), a touch screen, non-touch gestures, voice commands, or other methods of visually presenting information.
[0019] Dashboard microservice 110 further comprises one or more modules configured to create, manage, execute, and / or monitor various workflows as described herein, by itself and / or in cooperation with one or more corresponding engines in engine 120. In some embodiments, dashboard microservice 110 is configured to provide functionality to perform create, read, update, and delete (CRUD) operations on various objects, including but not limited to workflows, tasks, elements, functions, etc. In some embodiments, dashboard microservice 110 is configured to perform one or more of running, monitoring, debugging, resuming, and reporting on workflows and / or tasks through role-based access control (RBAC). In some embodiments, dashboard microservice 110 includes at least one node application. In some embodiments, dashboard microservice 110 includes at least one web-based application.
[0020] The engines 120 are configured to perform various operations and / or functions as described herein in conjunction with or under the control of the dashboard microservice 110. For purposes of illustration, the engines 120 of FIG. 1 include engines 122, 124, 126. However, other numbers and / or types of engines are within the scope of various embodiments. In at least one embodiment, at least one of the engines 122, 124, 126 includes a set of engines. In at least one embodiment, the engines 122, 124, 126 are distinct from one another or share at least one common engine. Examples of the engines 120 include, but are not limited to, operating system (OS) install, OS upgrade, cluster install, cluster uninstall, cluster upgrade, scall in / out, hardware (HW) health check, firmware upgrade, field programmable gate array (FPGA) upgrade, OS / FPGA report, authentication, etc. The engines 120 are configured to interact with the dashboard microservice 110 via application programming interface (API) requests / responses. For simplicity, in the description herein, the operations and / or functions and / or controls performed by dashboard microservice 110 and / or engine 120 may be referred to as being performed by the system or by its / one / at least one processor.
[0021] In an example operation 102, a UI of the dashboard microservice 110 provides at least one option to the user 101 to register an element configuration. For example, the user 101 interacts with the UI to provide a user input of an element configuration to a module 112 of the dashboard microservice 110. The module 112 instructs the engine 122 to store the element configuration in the database 130.
[0022] An element configuration is a configuration or description of an element. In some embodiments, an element includes one or more sites or equipment (e.g., computer systems) where one or more tasks of a workflow are performed. As described herein, examples of elements include, but are not limited to, bare metal, clusters, and the like. In some embodiments, a bare metal (BM) is a computer system without an OS and installed applications. In at least one embodiment, a BM includes computer hardware with firmware, or a basic input / output system (BIOS) software utility installed, or no software installed at all. In some embodiments, a BM becomes a server after installing an OS and one or more required applications. In some embodiments, a node refers to a BM before or after an OS is installed. A cluster includes a group of nodes that are interconnected and configured to work in concert. An exemplary cluster is shown in the drawings as "RC". Various cluster configurations are within the scope of various embodiments. In some embodiments, to configure the nodes as a cluster, a first node in the group is installed or configured as a Primary Master (PM), at least one second node in the group is installed or configured as at least one Secondary Master (SM), and one or more additional nodes in the group are installed or configured as one or more agents. Other examples and / or configurations of nodes and / or clusters are within the scope of various embodiments.
[0023] 1 includes examples of nodes and clusters. Element 160 includes M clusters, namely cluster 1, cluster 2, ... cluster M. Each cluster includes multiple nodes. For example, cluster 1 includes N nodes, namely node 1_1, node 1_2, ... node 1_N, cluster 2 includes P nodes, namely node 2_1, node 2_2, ... node 2_P, ... cluster M includes Q nodes, namely node M_1, node M_2, ... node M_Q, where M, N, P, and Q are natural numbers. In some embodiments, the element includes a cluster or a set of nodes that are installed as a cluster. In at least one embodiment, the element includes at least one node in a cluster or at least one independent node that is not included in a cluster. An example described herein includes the execution of a workflow for configuring a set of BMs as a cluster. This example is not limiting. Other use cases and / or scenarios and / or applications of the workflow management system 100 are within the scope of various embodiments. In a specific example, each cluster is a data center or forms part of a data center.
[0024] In a further example of operation 104, the UI of the dashboard microservice 110 provides the user 101 with various options for building, executing, debugging, and / or resuming a workflow. For example, the user 101 interacts with the UI to build a workflow including multiple tasks arranged or associated in sequence. In some embodiments, the system, or another component external to the workflow management system 100, is configured to provide an environment, e.g., a graphing environment, for the user to build the workflow and to save the workflow configuration of the built workflow as an Extensible Markup Language (XML) document that is executed by the workflow engine in the engine 120 at runtime. In some embodiments, the workflow conforms to the Business Project Management Notation (BPMN) specification. Other workflow configurations and / or specifications and / or programming languages or codes are within the scope of various embodiments. In some embodiments, the system, or another component external to the workflow management system 100, comprises a template repository (or template manager) that includes pre-stored and / or pre-designed workflow configurations that can be used as templates from which new workflows can be quickly built. Workflow configurations and / or workflows created or loaded by the workflow management system 100 are stored in database 130, for example, by engine 124. Database 130 comprises a single database or a set of databases that store templates, workflow configurations, and element configurations. In some embodiments, database 130 further stores workflow data generated during and / or as a result of execution of one or more workflows by the workflow engine.
[0025] The UI of the dashboard microservice 110 further provides the user 101 with various options to execute the constructed workflow or execute an existing workflow. In one example, the engine 124, through the module 114, receives a user input or selection of a workflow (to be used as a template) and an element on which the workflow (or a modified workflow automatically generated from the workflow) should be executed. For example, the engine 124 loads the corresponding element configuration and workflow configuration of the workflow from the database 130, and automatically modifies the workflow as necessary based on the element configuration to generate the modified workflow to be executed on the element. The engine 124 creates one or more worker pods 128 or utilizes one or more existing worker pods 128, and then assigns the one or more worker pods 128 to execute the modified workflow.
[0026] In at least one embodiment, one or more worker pods 128 are created to perform functions associated with one or more tasks of the modified workflow to be executed. For example, each task runs in its own worker pod, so a worker pod that is an actual instance executing the task is required to execute the functions associated with the task. In some situations, the tasks to be executed are not related to functions within the workflow management system 100, but rather to one or more external scripts. In such situations, one or more worker pods 128 load one or more scripts from the repository 150 and cause the functions and / or scripts associated with the tasks in the modified workflow to be executed on the specified element (e.g., on a cluster or one or more nodes in the element 160) according to the sequence of the tasks in the workflow.
[0027] When a task (e.g., a function and / or script) is executed, log information about the task and / or about the node on which the task was executed is generated and sent from the node to one or more worker pods 128. Examples of log information include, but are not limited to, status, parameters, variables, conditions, etc. The one or more worker pods 128 redirect the log information to log storage 140 for storage therein.
[0028] Various options for debugging and / or restarting the workflow are also provided to the user 101 by the UI. Based on user input or selection of an option for debugging or restarting the workflow received through module 114, engine 124 makes appropriate corrections in its instructions to one or more worker pods 128 that cause the modified workflow to be executed fully or partially according to the selected debug or restart option.
[0029] In some embodiments, at least one of log storage 140 or repository 150 comprises a database implemented by one or more computer systems. In at least one embodiment, one or more worker pods 128 comprise deployable units of computing created and managed in Kubernetes. Other worker pod configurations are within the scope of various embodiments. In some embodiments, worker pods are omitted or replaced with other virtual machines.
[0030] In another example operation 106, the UI of the dashboard microservice 110 provides the user 101 with at least one option to request real-time log information related to a selected task of a selected workflow. For example, in response to a user request for log information received through the UI, the module 116 sends the user request to the engine 126. The engine 126 accesses the log storage 140 to retrieve log information corresponding to the selected task of the selected workflow identified in the user request, and sends the retrieved log information back to the UI through the module 116, where the log information is displayed to the user. In some embodiments, while the user is reviewing the log information (e.g., while the log information remains displayed), updated or new log information related to the selected task / workflow is updated in real-time on the UI. In some embodiments, potential errors reflected in the displayed log information are repaired, located, or bypassed by using debug and / or resume options.
[0031] 2A-2B, 3A-3D, 4, and 5A-5I are schematic diagrams illustrating various screens or panels of a UI in a workflow management system, according to some embodiments. In some embodiments, the UI is provided to the workflow management system 100 and generated by the dashboard microservice 110.
[0032] 2A is a schematic diagram of a dashboard screen 200A of the UI, according to some embodiments. In some embodiments, the dashboard screen 200A is displayed upon successful authentication of a user logging into the workflow management system 100. The dashboard screen 200A includes an address bar 202, a settings button 204, a location selection menu 206, a date selection menu 208, and multiple visualization areas 210, 212, 214, 216.
[0033] The address bar 202 includes an address for accessing the dashboard screen 200A using a web browser. Details of the address are omitted for simplicity. One or more other screens of the UI also include similar address bars, as described herein. The address bars of the one or more other screens are omitted for simplicity. In at least one embodiment, the web-based UI provides flexibility in that a user can remotely log in and manage workflows using the workflow management system 100. In at least one embodiment, the UI is not web-based and the address bar is omitted.
[0034] Settings button 204 is configured to allow access to other screens of the UI. For example, when a user activates settings button 204, screen 200B of Figure 2B is displayed in addition to or instead of the current screen. Details of screen 200B are provided herein with respect to Figure 2B.
[0035] The visualization areas 210, 212, 214, 216 provide summary information about various items in the workflow management system 100. For example, the visualization area 210 provides the number of elements registered in each element type in the workflow management system 100. In the exemplary configuration of Figure 2A, the visualization area 210 shows that there are 53 elements, of which approximately 80% are registered as type BM (bare metal) and approximately 20% are registered as type RC (cluster).
[0036] The visualization area 212 provides the number of functions registered with the workflow management system 100 and the element types they support. In some embodiments, one or more functions are associated with a task in a workflow and will be executed on the corresponding element when the workflow is executed. In the exemplary configuration of FIG. 2A, the visualization area 212 shows that there are 111 functions supporting various element types, namely BM, VM (Virtual Machine), RC, and NF (Network Function). The listed element types are non-limiting examples.
[0037] The visualization area 214 provides the number of workflows in the workflow management system 100 and their corresponding workflow types. In the exemplary configuration of FIG. 2A, the visualization area 214 shows that there are 83 workflows, of which approximately 80% are dynamic workflows and approximately 20% are static workflows. Dynamic workflows are dynamically and automatically modifiable by the system based on at least the element configuration of the element on which the workflow is selected to run, as described herein. In some embodiments, this dynamic feature allows dynamic workflows to be automatically reconfigured to run on any of a plurality of elements. Static workflows are not configured to be dynamically and automatically modifiable by the system. In some embodiments, static workflows are specifically configured to run on a particular element, rather than a plurality of elements as described for dynamic workflows.
[0038] The visualization area 216 provides the number of batches and average execution time of the workflow. According to some embodiments, one or more of the visualization areas 210, 212, 214, 216 are omitted or configured to show other data.
[0039] The location selection menu 206 and the date selection menu 208 allow a user to display data in the visualization areas 210, 212, 214, 216 filtered by a location selected from the location selection menu 206 and / or a date selected from the date selection menu 208. In some embodiments, at least one of the location selection menu 206 and the date selection menu 208 are omitted.
[0040] FIG. 2B is a schematic diagram of a screen 200B of a UI, according to some embodiments.
[0041] As described herein, screen 200B is displayed in response to user manipulation of settings button 204 of dashboard screen 200A. One or more other screens of a UI as described herein may also include screen 200B on the side to assist a user in navigating various screens and / or options within the UI. For simplicity, screen 200B, which may appear with one or more screens of a UI as described herein, is omitted.
[0042] Screen 200B includes a number of selectable menu items 230, 232, 234, 236. Menu item 230 is for accessing dashboard screen 200A. Menu item 232 is for accessing one or more screens for managing (e.g., registering, editing, or deleting) elements or element configurations, for example, as described with respect to operation 102 and / or FIGS. 3A-3D. Menu item 234 is for accessing one or more screens for managing (e.g., registering, editing, or deleting) workflows or workflow configurations and / or for executing workflows, for example, as described with respect to operation 104 and / or FIGS. 5A-5I. Menu item 236 is for accessing one or more screens for managing (e.g., registering, editing, or deleting) functions or function configurations, for example, as described with respect to FIG. 4. The functions relate to one or more tasks within various workflows managed by workflow management system 100.
[0043] Screen 200B further includes selectable submenu items 242, 244, 246 under menu item 234. Workflow Templates submenu item 242 is configured to provide access to a template list of workflow templates that can be used to build a new workflow, for example, as described with respect to Figures 5A-5D.
[0044] The Factory submenu item 244 is configured to provide access to a workflow list of workflows managed by the workflow management system 100, for example as described with respect to Figures 5E-5G. The user is provided with various options for running a selected workflow from the workflow list on one or more elements, deleting an existing workflow from the workflow list, refreshing the workflow list, or filtering the workflow list to create, edit, or delete a workflow. The user is further provided with various options for debugging a workflow.
[0045] The Run Workflow submenu item 246 is configured to display a Run Workflows list of workflows that have been executed. An example of such a list is described with reference to FIG. 5H. The user is provided with at least one option to request real-time log information related to a selected task. The user is further provided with various options to resume (rerun) the entire workflow or a portion thereof, for example as described herein with respect to FIG. 5I. Further features include viewing the configuration of a task, refreshing the list of executed workflows, or filtering the list of executed workflows based on status and start date.
[0046] Screen 200B further includes a navigation indicator 240 that indicates the user's current location within the UI. In the exemplary configuration of FIG. 2B, navigation indicator 240 “Run a Workflow” corresponds to the currently selected Run a Workflow submenu item 246.
[0047] 3A-3D are schematic diagrams illustrating various screens or panels of a UI for managing elements, according to some embodiments. In at least one embodiment, the UI screens or panels described with respect to FIGURES 3A-3D are provided by module 112 to allow a user to interact with engine 122 to manage (e.g., add, edit, or delete) elements that have corresponding element configurations stored in database 130.
[0048] 3A is a schematic diagram of a screen 300A of a UI, in accordance with some embodiments, in which screen 300A is displayed upon a user selecting element menu item 232 in screen 200B.
[0049] Screen 300A includes an element list, which includes elements managed by workflow management system 100 and stored in database 130. Each element corresponds to a row in the element list. For simplicity, three elements 311, 312, 313 are specifically shown in FIG. 3A. The number of elements displayed in screen 300A and / or managed by workflow management system 100 is not limited to a particular number. Each element in screen 300A includes corresponding health status, element name, element type, and element unique identification (UID) under columns 314-317 accordingly. Screen 300A further includes a search bar 319 that allows a user to search for a particular element. Screen 300A also includes a button 320 for refreshing the element list, a button 321 for adding (or registering) a new element, and a button 322 for filtering the element list.
[0050] For each element 311-313, a health status (column 314) indicates whether the element has a fault or anomaly or whether the element is healthy (i.e., free of faults or anomalies). In the exemplary configuration of FIG. 3A, the health status for all elements 311-313 is unknown. Other health statuses are within the scope of various embodiments. In some embodiments, the health status (column 314) is omitted. The element name (column 315) is a human-readable and / or descriptive name given to each element when the element is created or loaded into the workflow management system 100. The element UID (column 317) is a unique identification automatically generated by the system for each element. The element type (column 316) indicates the type for each element. As described herein with respect to some embodiments, examples of element types include, but are not limited to, BM (bare metal) and RC (cluster). Other element types, i.e., VM (virtual machine), NF (network function), etc., are within the scope of various embodiments.
[0051] From the element list in screen 300A, a user can view and / or edit the element configuration for each element by selecting the corresponding row in the element list, as described with respect to FIGURE 3D. A user can also remove elements from the element list by selecting the corresponding row in the element list and operating or selecting a delete button or option (not shown). Operating button 320 refreshes the element list to obtain an updated element list. Button 321 allows a user to add a new element, as described with respect to FIGURE 3B. Button 322 allows a user to filter the element list based on, for example, health status and / or element type.
[0052] 3B is a schematic diagram of a screen 300B of the UI, in accordance with some embodiments, in which screen 300B is displayed when a user activates button 321 in screen 300A to add a new element.
[0053] Screen 300B includes an input area 330 for receiving user input of an element type of the new element to be created. In the exemplary configuration of FIG. 3B, input area 330 includes a number of buttons or selectable menu items 331-334, each corresponding to an element type supported or manageable by workflow management system 100. For example, button 331 corresponds to a BM element type, button 332 corresponds to an RC element type, and buttons 333, 334 correspond to additional element types other than BM or RC (not shown). In some embodiments, the other element types and corresponding buttons 333, 334 are omitted. Alternative examples of buttons 331-334 include, but are not limited to, radio buttons, menus (e.g., drop-down menus), and the like.
[0054] Screen 300B further includes a "Previous" button 335 for returning to the UI screen before screen 300B proceeded, a "Cancel" button 336 for aborting the process of adding a new element, and a "Next" button 337 for accepting the selected element type and proceeding to the next step in the process of adding a new element, as described in relation to FIG. 3C.
[0055] 3C is a schematic diagram of a screen 300C of the UI, according to some embodiments. In some embodiments, screen 300C is displayed upon a user actuation of "Next" button 337 in screen 300B.
[0056] Screen 300C includes indicator 340 that indicates the element type selected in screen 300B. For example, in screen 300B, if a user selects button 332 corresponding to the RC element type and then activates "Next" button 337, the UI advances to screen 300C, where indicator 340 indicates "Cluster," which corresponds to the element type selected in button 332 of screen 300B. As another example, in screen 300B, if a user selects button 331 corresponding to the BM element type and then activates "Next" button 337, indicator 340 in screen 300C indicates "Bare Metal," etc.
[0057] Screen 300C further comprises an input area 341 for receiving user input of an element name of the new element, an input area 342 for receiving user input of an element description of the new element, and an input area 343 for importing an element configuration of the new element. In some embodiments, the element configuration comprises a JavaScript Object Notation (JSON) configuration, for example as described with respect to FIG. 3D. Other configurations and / or specifications and / or programming languages or codes for describing element configurations are within the scope of various embodiments. The user is given the option to drag and drop a file containing the element configuration of the new element into input area 343 or browse for such a file, for example in the computer system and / or in database 130. Other methods for loading or entering or selecting the element configuration of the new element are within the scope of various embodiments. In some circumstances, the element configuration imported into input area 343 already includes an element name and / or an element description. In such circumstances, the element name and / or element description entered in input area 341 and / or input area 342 are ignored and overridden by the element name and / or element description included in the imported element configuration.
[0058] Screen 300C further includes a "Previous" button 345 for returning to the UI screen before screen 300C proceeded, a "Cancel" button 346 for aborting the process of adding the new element, and a "Submit" button 347 for registering the new element with the element type, element name, element description, and element configuration entered and / or imported in screens 300B and 300C. In some embodiments, when the user operates "Submit" button 347, the newly registered element is stored in database 130 and displayed in the updated element list of screen 300A.
[0059] 3D is a schematic diagram of a screen 300D of the UI, according to some embodiments, in which screen 300D is displayed when a user selects an element from the element list of screen 300A.
[0060] Screen 300D includes indicator 350 indicating the element name (e.g., "dummy04") of the selected element, and display areas 351-355 that accordingly display the element UID, element type (e.g., "cluster" or RC), location, element description (e.g., "DUMMY_04"), and element configuration of the selected element. For simplicity, detailed information of element UID and element location is omitted in display areas 351, 353. In some embodiments, the displayed information of one or more of display areas 351-355 is viewable only, i.e., the displayed information is not editable, for example, if the user does not have sufficient privileges to edit the information. In some embodiments, the displayed information of one or more of display areas 351-355 is editable, for example, if the user has sufficient privileges. Screen 300D further includes a "Cancel" button 356 for closing screen 300D, and a "Download" button 357 for downloading the element configuration of the selected element. In some embodiments, the downloaded element configuration can be used to create a new element, for example, by importing the downloaded element configuration into input area 343 on screen 300C.
[0061] The enlarged view 360 of FIG. 3D shows an example of an element configuration displayed in the display area 355. In the example configuration of FIG. 3D, the selected element is a cluster or a group of nodes, and the element configuration of the element includes not only information 361 about the element (or group of clusters), but also information 362, 363 about the nodes included in the group of clusters. Specifically, the information 361 indicates that the element has an element "dummy04", an element description "DUMMY_04", and an element type "cluster" (i.e., RC). The information 362 indicates that a first node of the element has a corresponding first name, a type "BM", a first UID, first configuration information with corresponding properties, a first description, etc. The information 363 indicates that a second node of the element has a corresponding second name, a type "BM", a second UID, second configuration information with corresponding properties, a second description, etc. Other element configurations and / or information included in the element configurations are within the scope of various embodiments.
[0062] FIG. 4 is a schematic diagram of a screen 400 of a UI, according to some embodiments.
[0063] In some embodiments, when a user selects function menu item 236 in screen 200B, the UI displays a screen (not shown) similar to screen 300A showing a function list of functions managed by workflow management system 100 and stored in database 130 and / or repository 150. The function list is similar to the element list described with reference to FIG. 3A and includes, for each function, details such as the function name, the supported element types on which the function can be performed, the function description, the function UID, and the operation mode. The function list displays a button for adding (or registering) a new function, similar to button 321 in screen 300A. When a user operates such a button, screen 400 is displayed.
[0064] Screen 400 includes multiple input fields 430-443 corresponding to various details on the new function to be created, such as function name, version, function script, operators, supported element types, operation mode, action, fanout, timeout, memory size, CPU (Central Processing Unit), environment variables, runtime, and function description. Some of the details include default information that does not necessarily require user input, while other details require user input.
[0065] For example, a user may enter a function name in input area 430. A function may be updated, and after updating the function, the user and / or the system may change the version of the function in input area 431. For a function script, the user may select a script file to be executed as at least a part of the function by using the "Browse" button 445 to search for and select the desired script file. Input area 432 displays the file name of the selected script file. In some embodiments, the desired script file or function script is selected from multiple script files in repository 150. Examples of function scripts include Ansible scripts, or other types of computer executable code. Input area 433 includes a drop-down menu for the user to select an intended operator. Exemplary operators include, but are not limited to, Shell (function script is executed on worker pods) and SSH (Secure Shell, function script is executed on target node). Input area 434 includes a drop-down menu for the user to select a supported element type, such as, for example, BM, RC, VM, etc. Input area 435 includes a drop-down menu for the user to select an intended mode. Exemplary modes include, but are not limited to, BATCH (a workflow containing the function as a task is executed on multiple selected elements) and UNIT (a workflow is executed on only one selected element). Input area 436 includes a drop-down menu for the user to select the intended action. Exemplary actions include, but are not limited to, default (a workflow containing the function as a task cannot change the element configuration of the element on which the workflow is to be executed) and mutable (the workflow can change the element configuration). The user and / or system can specify a fan-out factor to be used with the function in input area 437. The user and / or system can specify a timeout (per element) for the function to finish in input area 438.A user and / or system may specify the memory size required for a worker pod to execute the function in input area 439. A user and / or system may specify the number of CPUs required for a worker pod to execute the function in input area 440. A user and / or system may specify one or more environment variables for the function in input area 441. A user and / or system may specify the runtime, e.g., the executor image (or worker image) that the function will use, in input area 442. A user may enter a functional description of the function in input area 443.
[0066] Screen 4000 further includes a "Cancel" button 446 for aborting the process of adding the new feature, and an OK button 447 for registering the created new feature. In some embodiments, when a user operates OK button 447, the newly registered feature is stored in database 130 and displayed in an updated feature list. In some embodiments, dashboard microservice 110 and engine 120 include one or more corresponding modules and engines configured to manage features in a manner similar to the manner in which modules 112 and engine 122 are configured to manage elements, as described herein.
[0067] 5A is a schematic diagram of a screen 500A of a UI, in accordance with some embodiments, in which screen 500A is displayed upon a user selecting the Workflow Templates submenu item 242 in screen 200B.
[0068] The screen 500A includes a template list managed by the workflow management system 100 and stored in the workflow template database 130. Each workflow template corresponds to a row in the template list. For simplicity, three workflow templates 501, 502, 503 are specifically shown in FIG. 5A. The number of workflow templates displayed in the screen 500A and / or managed by the workflow management system 100 is not particularly limited. Each workflow template in the screen 500A includes a template name, element type, and template description under columns 504-506 accordingly. The screen 500A further includes a search bar 507 that allows a user to search for a particular workflow template. The screen 500A includes a button 508 for adding (or registering) a new workflow template and a button 509 for filtering the template list. For each of the templates 501-503, the template name (column 504) is a human-readable and / or descriptive name given to each workflow template when the workflow template is created or loaded into the workflow management system 100. The element type (column 505) indicates the element type of the element capable of executing the workflow generated from the workflow template, e.g., BM, RC, etc. The template description (column 506) is, for example, a human-readable description of one or more functions of the workflow generated from the workflow template. In some embodiments, each workflow template is itself a workflow having a workflow configuration and executable on elements of the corresponding element type. In some embodiments, if the workflow element type is a BM type, the workflow or a modified workflow generated from the workflow template is executed on the target node. In some embodiments, if the workflow element type is an RC type, the workflow or a modified workflow generated from the workflow template is executed on various target nodes in the cluster.
[0069] From the template list of screen 500A, a user can view the details of a workflow template by selecting a corresponding row in the template list. In some embodiments, the workflow template details are displayed in a screen similar to screen 500D described with respect to FIG. 5D. The displayed details are modifiable, allowing a user to quickly create new workflows based on pre-stored and / or pre-designed workflow templates. A user can remove a workflow template from the template list by selecting the corresponding row in the template list and operating or selecting a delete button or option (not shown). Button 508 allows a user to add a new workflow without using a workflow template, as described with respect to FIGS. 5B-5D. Button 509 allows a user to filter the template list, for example, based on element type.
[0070] 5B is a schematic diagram of a screen 500B of the UI, in accordance with some embodiments, in which screen 500B is displayed upon a user actuating button 508 in screen 500A to add a new workflow.
[0071] Screen 500B includes an input area 510 for receiving user input of a workflow name for the new workflow to be created, and an input area 511 for receiving user input of an element type for the new workflow. In the exemplary configuration of FIG. 5B, input area 511 includes a drop-down menu that allows the user to select a BM element type, an RC element type, etc. Other configurations of input area 511 are within the scope of various embodiments. Screen 500B further includes a "Cancel" button 512 for aborting the process of adding a new workflow, and an OK button 513 for accepting the selected element type and proceeding to the next step in the process of adding a new workflow, as described with respect to FIG. 5C.
[0072] 5C is a schematic diagram of a screen 500C of the UI according to some embodiments. In some embodiments, screen 500C is displayed when a user operates OK button 513 in screen 500B.
[0073] Screen 500C includes an indicator 520 indicating the workflow name (e.g., “New Workflow”) entered in input area 510 of screen 500B, a function list 521, and an input area 522 for building a new workflow. Function list 521 is visually presented simultaneously with input area 522 and includes a number of functions commonly designated as 523. Functions 523 in function list 521 are functions managed by workflow management system 100 and stored in database 130, and are functions supporting the element type entered or selected for the new workflow in input area 511 of screen 500B. Screen 500C further includes a search bar 524 that allows a user to search for a desired function from function list 521 based on one or more details, e.g., function name, as described with respect to FIG. 4 .
[0074] The input area 522 is configured to receive user input for constructing a new workflow 525. The new workflow 525 is constructed as a directed acyclic graph (DAG) and includes multiple tasks connected by one or more connections. In the workflow 525, the tasks are commonly designated as 526 and the connections are commonly designated as 527. The screen 500C is configured to enable user manipulation, e.g., drag-and-drop operation, of one or more functions 523 from the function list 521 to the input area 522. An example of a drag-and-drop operation is designated as 528 in FIG. 5C. Each function dragged and dropped into the input area 522 becomes a corresponding task 526 in the workflow 525. The user can designate (e.g., drag-and-drop) the same function as two or more tasks in the workflow 525. The user can further add, delete, modify, and move tasks 526 and / or connections 527 to construct the desired workflow 525. When the user finishes constructing the workflow 525 and operates the “Save” button 529 , the workflow configuration corresponding to the workflow 525 is stored in the database 130 .
[0075] 5D is a schematic diagram of screen 500D of the UI, according to some embodiments. In some embodiments, screen 500D is a version of screen 500C, and is displayed while workflow 525 is being constructed. In one or more embodiments, screen 500D is displayed to show details of the selected workflow template, allow the user to edit the details, and store the edited details in database 130 as a workflow configuration for a new workflow that is rapidly generated based on the workflow template.
[0076] Similar to screen 500C, screen 500D includes a function list 521 (not shown in FIG. 5D for simplicity) displayed simultaneously with input area 522, and various functions from function list 521 are added to workflow 525 as tasks 526 associated by association 527. Compared to screen 500C, screen 500D further includes a display area 530 in which details of a selected task in workflow 525 can be viewed. In the example configuration of FIG. 5D, the selected task is the last task 526S of the workflow 525 being constructed. The selected task 526S is displayed in a format that is visually different from the format of the other tasks of workflow 525. For example, the selected task 526S is displayed in a different color from the other tasks of workflow 525.
[0077] The display area 530 includes a function dropdown 531, an element dropdown 532, and a log dropdown 533. When the function dropdown 531 is selected, the display areas 534 and 535 are displayed to visually present the details of the function of the selected task 526S. Specifically, the display area 534 displays the name of the function of the selected task 526S, “function 54”, and the display area 535 displays a functional description of the function. The display area 534 is configured as a dropdown menu that allows the function of another task in the workflow 525 to be selected. When another function is selected from the dropdown menu 534, the corresponding functional description is displayed in the display area 535, and the corresponding task in the workflow 525 is displayed so as to be visually distinguishable from other tasks in the workflow 525. The information of the selected task displayed in the display areas 534 and 535 helps the user to confirm whether the workflow 525 is correctly constructed. In some embodiments, when either the element dropdown 532 or the log dropdown 533 is selected, the UI stops displaying the display areas 534 and 535. When the elements dropdown 532 is selected, the UI displays one or more elements or element types associated with the selected task and / or workflow 525. When the logs dropdown 536 is selected, the UI shows log information associated with the selected task and / or workflow 525. In some embodiments, the information in the elements dropdown 532 and / or logs dropdown 533 is not available until the workflow 525 is executed.
[0078] 5E is a schematic diagram of a screen 500E of the UI, according to some embodiments, in which screen 500E is displayed upon a user selection of Factory submenu item 244 in screen 200B or upon a user activation of a "Save" button 529 to store a new workflow.
[0079] Screen 500E includes a workflow list, which includes workflows managed by workflow management system 100 and stored in database 130. The workflow list includes new workflows that have been generated by editing one or more workflow templates in the template list described with respect to FIG. 5A or newly created as described with respect to FIGS. 5B-5D. Each workflow corresponds to a row in the workflow list. For simplicity, three workflows 541, 542, 543 are specifically shown in FIG. 5E. The number of workflows displayed in screen 500E and / or managed by workflow management system 100 is not limited to a particular number. Each workflow in screen 500E includes a workflow name (e.g., "title"), workflow type, workflow UID, and supported element types under columns 544-547 accordingly. Screen 500E further includes a search bar 540 that allows a user to search for a particular workflow in the workflow list. Screen 500E also includes a button 548 for refreshing the workflow list and a button 549 for filtering the workflow list.
[0080] For each workflow 541-503, the Workflow Name (column 544) is a human-readable and / or descriptive name given to each workflow when the workflow is created or loaded into the workflow management system 100. The Workflow Type (column 545) indicates whether the workflow is a dynamic workflow or a static workflow. Other workflow types are within the scope of various embodiments. The Workflow UID (column 546) is a unique identification automatically generated by the system for each workflow in the workflow list. The Supported Element Types (column 547) indicate the element types of elements capable of executing the workflow and modified workflows generated from the workflow, e.g., BM, RC, etc.
[0081] From the workflow list of screen 500E, a user can view the details of a workflow by selecting a corresponding row in the workflow list. In some embodiments, the workflow details are displayed in a screen similar to screen 500D described with respect to FIG. 5D. The displayed details are modifiable, allowing the user to edit the workflow. A user can delete a workflow from the workflow list by selecting the corresponding row in the workflow list and operating or selecting a delete button or option (not shown). A user can select a workflow from the workflow list to run, as described with respect to FIGS. 5F-5I.
[0082] 5F is a schematic diagram of a screen 500F of a UI, according to some embodiments, in which screen 500F is displayed when a user selects and runs a workflow from the workflow list of screen 500E.
[0083] Screen 500F is configured to receive user input or selection of an element for which the selected workflow is to be executed. Screen 500F includes an input area 550 for an element type of the desired element, and an input area 551 for receiving user input of an element name of the element. In the exemplary configuration of FIG. 5F, input area 550 includes a drop-down menu that allows the user to select a BM element type, an RC element type, etc. Other configurations of input area 550 are within the scope of various embodiments. In some embodiments, the system automatically selects or specifies an element type in input area 550 based on the corresponding supported element type of the selected workflow shown in the workflow list of screen 500E in column 547. In the exemplary configuration of FIG. 5F, the element type "cluster" (or RC) is selected or specified in input area 550.
[0084] Input area 551 includes a drop-down menu that allows the user to select a desired element from a list of elements managed by workflow management system 100 and stored in database 130, and corresponding to the element type selected or specified in input area 550. Input area 551 is further configured to accept user input of an element name and search for matching elements as characters of the element name are entered. Once a matching element is found, it is displayed, e.g., in 552, for the user to select. As described with respect to FIG. 5G, screen 500F further includes a "Cancel" button 553 for aborting the execution process of the selected workflow, and an OK button 554 for accepting the element selected in input area 551 and proceeding to the next step of the execution process of the selected workflow.
[0085] 5G is a schematic diagram of a screen 500G of the UI, according to some embodiments. In some embodiments, screen 500G is displayed in response to a user actuating OK button 554 of screen 500F to confirm a user selection (in input area 551) of elements for which a selected workflow (selected from the workflow list of screen 500E) is to be executed. Screen 500G shows a modified workflow 575 that is automatically generated by the system based on the selected workflow 560 and based on the element configuration of the elements selected for execution of workflow 560.
[0086] The screen 500G includes an indicator 561 indicating the element name of the selected workflow 560, i.e., "Workflow Name 5". The workflow 560 includes a plurality of tasks 562-568 arranged together and / or associated in sequence, from task 562 to task 568. The plurality of tasks 562-568 in the workflow 560 includes a series or set of first tasks 562, 563 followed by a series or set of second tasks 564-568. The first tasks 562, 563 are configured to be executed at each target node in the group of nodes or clusters, and the second tasks 564-568 are configured to be executed at one or more nodes in the group of nodes or clusters. The number of first and second tasks in the workflow 560 and / or the associated sequence of the first task preceding the second task are examples. In some embodiments, the selected workflow includes at least one first task and at least one second task associated with the at least one first task, and the at least one second task may be before or after the at least one first task.
[0087] In some embodiments, the system retrieves the element configuration of the element selected to execute the workflow 560 from the database 130 and determines that the selected element is a group or cluster of nodes. In one example, the system determines the number of nodes in the selected element by analyzing or retrieving the element configuration as described with respect to FIG. 3D. The system further determines that the workflow 560 includes a set of first tasks 562, 563 that may be executed at the nodes of the selected element but may not be executed simultaneously at other nodes of the selected element. The system then automatically modifies the workflow 560 such that the number of sets of first tasks 562, 563 in the modified workflow is equal to the number of nodes in the selected element. As a result, the same set of first tasks 562, 563 can be executed simultaneously at each node of the element.
[0088] In the example configuration of FIG. 5G, the selected element includes four nodes. An original first set of tasks 562, 563 included in workflow 560 are configured to be executed sequentially at the first node of the selected element, and are designated as tasks 562_1, 563_1 in FIG. 5G. The system automatically generates three replicas 572, 573, 574 of the original set of first tasks 562, 563. Replica 572 includes tasks 562_2, 563_2 that correspond and match tasks 562_1, 563_1, are related to each other and to task 564 in the same manner as tasks 562_1, 563_1, and are configured to be executed sequentially at the second node of the selected element. Replica 573 includes tasks 562_3, 563_3 that correspond to and match tasks 562_1, 563_1, are associated with each other and with task 564 in the same manner as tasks 562_1, 563_1, and are configured to be executed sequentially at a third node of the selected element. Replica 574 includes tasks 562_4, 563_4 that correspond to and match tasks 562_1, 563_1, are associated with each other and with task 564 in the same manner as tasks 562_1, 563_1, and are configured to be executed sequentially at a fourth node of the selected element. Thus, a modified workflow 575 that was automatically generated by modifying workflow 560 is obtained and displayed on screen 500G.
[0089] The screen 500G further comprises a "run" button 576 for receiving a user command to execute the modified workflow 575. In executing the modified workflow 575, each of the original first set of tasks 562, 563 and the replicas 572, 573, 574 is configured to execute an OS installation process 569 to install an OS on a corresponding target node. The tasks 562_1-562_4 are configured for pre-check before OS installation, and the tasks 563_1-563_4 are configured for OS installation. The second tasks 564-568 are configured to execute a cluster installation process 570 to configure the element nodes into a cluster after OS installation. The cluster installation process 570 may be started once the OS installation process 569 is completed, i.e., once all four tasks 563_1-563_4 are successfully completed. The tasks 564-568 are executed sequentially. In one example, task 564 configured to install a primary master (PM) is executed on one node of the selected element, tasks 565-566 configured to install a secondary master (SM) are executed on at least one node different from the PM node, and task 567 configured to install at least one agent is executed on at least one additional node different from the PM and SM nodes. Task 568 configured for a post-mortem check is the last task of modified workflow 575. The specific functions described are examples. Other functions, such as BIOS upgrade, are within the scope of various embodiments.
[0090] The described number of nodes in the selected element and / or the number of replicas of the first set of tasks automatically generated by the system are examples. In some embodiments, the selected element includes N nodes, where N is a natural number greater than 1, and the system automatically generates (N-1) replicas of the first set of tasks, such that each of the N nodes has its own set of the first tasks to be executed. The status of the executed modified workflow 575 is included in a screen of the UI, as described with respect to FIG. 5H.
[0091] 5H is a schematic diagram of a screen 500H of the UI, according to some embodiments, which is displayed when a user commands a modified workflow 575 to be executed and / or when a user selects the execute workflow submenu item 246 of screen 200B.
[0092] Screen 500H includes an executed workflow list of executed workflows corresponding to rows in the executed workflow list. Each executed workflow correspondingly includes a status (failed, successful, or paused), process ID, workflow ID, workflow name, element on which the workflow is executed, start time, duration, and progress report under columns 581-588. Screen 500H further includes a search bar 589 that allows a user to search for a particular executed workflow. Screen 500H also includes buttons 590 that allow a user to execute (or re-execute) a selected workflow from the executed workflow list, buttons 590A for refreshing the executed workflow list, and buttons 590B for filtering the executed workflow list based on status and / or start date, etc.
[0093] For each workflow executed, the Workflow Name (column 584) is a human-readable and / or descriptive name given to the workflow when it is created or loaded into the workflow management system 100. The Workflow ID (column 583) is a unique identification automatically generated by the system for each workflow executed. The Element (column 585) is a human-readable name or a unique identification automatically generated by the system of the element on which the workflow is executed. In at least one embodiment, multiple elements are displayed, for example, when a user executes an OS installation (workflow) on multiple clusters (elements). The Process ID (column 582) is a unique identification automatically generated by the system. In case of a batch execution (where a workflow is executed on multiple selected elements), the Process ID will be the same for all of the multiple elements. For example, if a user wants to execute one workflow (e.g., OS installation) on multiple clusters, one Process ID is automatically created by the system for this batch. In some circumstances, the same workflow (Workflow ID 2) running on the same element (Element 2) but with different start times will result in different process IDs (Process ID 2 and Process ID 5), as shown in workflows 592 and 595. In at least one embodiment, the process ID is unique for each instance of execution of the workflow.
[0094] 5I is a schematic diagram of a screen 500I of a UI, according to some embodiments. In some embodiments, screen 500I is displayed when a user selects a workflow from the executed workflows list of screen 500H.
[0095] Screen 500I gives the user additional details of the selected executed workflow, including a step-by-step view of each task in the workflow, the time it takes to complete the task, the status of the task, etc. Screen 500I also allows the user to re-run the workflow if, for example, the workflow execution of any element fails. In the example configuration of FIG. 5I, the execution status of the modified workflow 575 is displayed in screen 500I.
[0096] Screen 500I includes indicator 561 indicating the workflow name of the executed workflow, as well as indicator 591 indicating the status and time taken to complete workflow 575. In the exemplary configuration of FIG. 5I, all tasks of modified workflow 575 are completed successfully. Each task, e.g., task 568, is displayed with an icon 592 indicating its "successful" or "successful" status and an indicator 593 indicating the time taken to complete the task, e.g., "17 seconds." Incomplete or failed tasks (not shown) are visually presented in a visually different format than successful tasks. For example, successful tasks are visually presented in green and other non-successful or failed tasks are visually presented in other colors. The particular formats described are examples. Other formatting schemes are within the scope of various embodiments. For example, the visually different formatting may be of different transparency, may be blinking or otherwise animated, may have a shadow or not, may have a different font type, font color and / or font variation (e.g., bold or italicized text), may have different icons and / or text added, or may have different combinations of the above visual effects and / or other effects not specifically described herein. Screen 500I further comprises a Rerun button 595 to receive user input to rerun execution of workflow 575, for example, if there is a failed task. In some embodiments, one or more operations described in connection with FIGS. 5A-5I are performed by one or more of modules 114, engine 124, database 130, repository 150, one or more worker pods 128, elements 160, described in connection with FIG. 1.
[0097] In some embodiments, the creation and execution of the described dynamic workflow provides one or more advantages over other approaches. Specifically, servers are often located in data centers / buildings / sites. According to other approaches, a dedicated engineering team travels from site to site to install software, e.g., OS, on the BMs to be configured as servers. This is a manual and time-consuming process. Furthermore, after the OS is installed, the engineering team needs to gain permission to access at the node level. In some situations, it may take more than a week to gain the appropriate service level agreement (SLA) permission. After gaining the required access, the engineering team needs to manually run scripts to install the cluster. This process is a repetitive task that is prone to human error.
[0098] The above problems of other approaches can be avoided with the workflow management system 100 according to some embodiments. The workflow management system comprises a UI configured to enable a user to effectively and intuitively manage elements, functions, and workflows. The workflow management system is further configured to automatically generate different modified workflows from the same existing or newly created workflow according to different element configurations of various elements on which the generated workflow is to be executed. For example, the workflow management system is configured to replicate at least a portion of the workflow based on the number of nodes in the element selected for the execution of the workflow. As a result, in at least one embodiment, it is possible to quickly scale the same workflow to obtain different modified workflows corresponding to various elements of different sizes (e.g., different numbers of nodes). In some embodiments, a user of the workflow management system is provided with a UI to auto-generate dynamic workflows from existing workflows, execute the workflows, and / or monitor the status of the executed workflows. In at least one embodiment, such automatic generation of dynamic workflows from workflows available as templates reduces the amount of time and / or effort spent on manual work and / or travel to prepare and / or execute scripts to perform similar tasks. One or more embodiments provide one or more advantages, including but not limited to reducing manual errors, improving performance, and reducing costs. In terms of performance, it may take an engineering team several days to complete an OS and cluster installation workflow (e.g., workflow 560) following the manual processes of other approaches. In contrast, in some embodiments, it is possible to create over 50 clusters in parallel within 2-3 hours.
[0099] 6A is a flow chart of a process 600A in a workflow management system according to some embodiments. In some embodiments, the process 600A is performed by the workflow management system 100 to create a new workflow.
[0100] In operation 602, element types supported by the new workflow to be created are received or specified, for example as described with respect to FIG. 5B.
[0101] In operation 604, an input area for building a new workflow is presented visually concurrently with a function list of functions that support the element type. For example, as described with respect to Figure 5C, an input area 522 for building a new workflow is visually concurrent with a function list 521 of functions 523 that support the element type received or specified in screen 500B of Figure 5B.
[0102] At operation 606, a new workflow is generated in response to a user actuating one or more functions from a function list into an input area, for example as described with respect to Figures 5C-5D.
[0103] In operation 608, the generated new workflow is stored, for example, in database 130, as described with respect to Figures 5C and 5D.
[0104] 6B is a flow diagram of a process 600B in a workflow management system according to some embodiments. In some embodiments, the process 600B is performed by the workflow management system 100 for dynamic workflow creation and execution.
[0105] In operation 622, the workflow to be executed is loaded by the workflow management system. In one example, the workflow to be executed is selected by a user from a workflow list, as described with respect to FIGURE 5E, and the corresponding workflow configuration is loaded from database 130 into the memory and / or processor of the workflow management system. In another example, when a new workflow is created, for example, as described with respect to FIGURES 5A-5D, the new workflow may be automatically selected for execution, and the corresponding workflow configuration of the new workflow is loaded into the memory and / or processor of the workflow management system.
[0106] In operation 624, an element is selected or designated for execution of the workflow, for example as described with respect to FIG. 5F.
[0107] In operation 626, the workflow is automatically modified based on the element configuration of the elements to obtain a modified workflow. For example, as described with respect to FIGURE 5G, workflow 560 is automatically modified based on the element configuration of the elements to obtain modified workflow 575.
[0108] In operation 628, the modified workflow 575 is visually presented, for example, as described with respect to Figure 5G. In some embodiments, operation 628 is omitted.
[0109] In operation 630, the workflow management system causes the modified workflow to be executed on the element, for example as described with respect to FIG. 5G.
[0110] The described methods and algorithms include example operations, which are not necessarily performed in the order presented. Operations can be added, substituted, reordered, and / or deleted as desired in accordance with the spirit and scope of the embodiments of the present disclosure. Embodiments combining different features and / or different embodiments are within the scope of the present disclosure and will be apparent to one of ordinary skill in the art after reviewing the present disclosure.
[0111] 7 is a schematic block diagram of a computer system 700 according to some embodiments. Examples of computer systems 700 include, but are not limited to, desktops, laptops, tablets, smartphones, servers, etc.
[0112] The computer system 700 includes a hardware processor 702 and a non-transitory computer-readable storage medium 704. Among other things, the storage medium 704 is encoded with, i.e., stores, computer program code 706, i.e., a set of executable instructions, such as, for example, one or more algorithms, programs, applications, executable instruction sets, etc., for systems, components, and / or modules, as described with respect to Figures 1-6B. Execution of the instructions 706 by the hardware processor 702 implements some or all of the methods described herein according to one or more embodiments (hereinafter, the processes and / or methods described above).
[0113] The processor 702 is connected to a non-transitory computer-readable storage medium 704 via a bus 708. The processor 702 is also connected to an I / O interface 710 by the bus 708. A network interface 712 is connected to the processor 702 via the bus 708. The network interface 712 is connected to a network 714, such that the processor 702 and the computer-readable storage medium 704 can be connected to external elements or devices via the network 714. The processor 702 is configured to execute computer program code 706 encoded on the computer-readable storage medium 704 to enable the computer system 700 to perform some or all of the processes and / or methods described above. In one or more embodiments, the processor 702 includes a central processing unit (CPU), a multiprocessor, a distributed processing system, an application specific integrated circuit (ASIC), and / or other suitable hardware processing units.
[0114] In one or more embodiments, computer readable storage medium 704 includes an electronic, magnetic, optical, electromagnetic, infrared, and / or semiconductor system (or apparatus or device). For example, computer readable storage medium 704 includes a semiconductor or solid state memory, a magnetic tape, a removable computer diskette, a random access memory (RAM), a read only memory (ROM), a rigid magnetic disk, and / or an optical disk. In one or more embodiments using an optical disk, computer readable storage medium 704 includes a compact disk read only memory (CD-ROM), a compact disk read / write (CD-R / W), and / or a digital video disk (DVD).
[0115] In one or more embodiments, the storage medium 704 stores computer program code 706 configured to enable the computer system 700 to perform some or all of the processes and / or methods described above. In one or more embodiments, the storage medium 704 also stores information or data 707, such as event data, consumer data, enterprise data, policies, component configurations, etc., used in some or all of the processes and / or methods described above.
[0116] The I / O interface 710 is connected to external circuitry. In one or more embodiments, the I / O interface 710 includes a keyboard, keypad, mouse, trackball, trackpad, touch screen, and / or cursor direction keys for communicating information and commands to the processor 702. The computer system 700 is configured to receive information through the I / O interface 710. The information received through the I / O interface 710 includes one or more of instructions, data, policies, configurations, and / or other parameters for processing by the processor 702. The information is transferred to the processor 702 via the bus 708. The computer system 700 is configured to receive information related to a user interface through the I / O interface 710. The information is stored in the computer-readable storage medium 704 as a user interface (UI) 742.
[0117] The network interface 712 allows the computer system 700 to communicate with a network 714 to which one or more other computer systems are connected. The network interface 712 includes a wireless network interface, such as BLUETOOTH, WIFI, WIMAX, GPRS, LTE, 7G, 6G, WCDMA, etc., or a wired network interface, such as ETHERNET, USB, IEEE-864, etc. In one or more embodiments, some or all of the processes and / or methods described above are implemented in more than one computer system 700.
[0118] In some embodiments, some or all of the aforementioned processes and / or methods are implemented as stand-alone software applications for execution by one or more hardware processors. In some embodiments, some or all of the aforementioned processes and / or methods are implemented as a software application that is part of an additional software application. In some embodiments, some or all of the aforementioned processes and / or methods are implemented as a plug-in to a software application.
[0119] In some embodiments, some or all of the above processes and / or methods are implemented as functions of a program stored in a non-transitory computer-readable recording medium. A computer-readable recording medium having a program stored therein is a computer program product. Examples of non-transitory computer-readable recording media include, but are not limited to, one or more of external / removable and / or internal / built-in storage or memory units, for example, optical disks such as DVDs, magnetic disks such as hard disks, semiconductor memories such as ROMs, RAMs, memory cards, and the like.
[0120] The above outlines features of some embodiments so that those skilled in the art may better understand the aspects of the present disclosure. Those skilled in the art will appreciate that they may readily use this disclosure as a basis for designing or modifying other processes and structures to carry out the same purposes and / or achieve the same advantages of the embodiments introduced herein. Those skilled in the art should also recognize that such equivalent constructions do not depart from the spirit and scope of the present disclosure, and that they may make various changes, substitutions, and alterations herein without departing from the spirit and scope of the present disclosure.
Claims
1. 1. A workflow management system, comprising: At least one processor; and at least one computer-readable storage medium coupled to the at least one processor and configured to store executable instructions that, when executed by the at least one processor, cause the at least one processor to: Loading a workflow including a number of sequenced tasks; automatically modifying the workflow based on an element configuration of elements for workflow execution to obtain a modified workflow; and instructing the component to execute the modified workflow. Workflow management system.
2. The executable instructions, when executed by the at least one processor, cause the at least one processor to: visually presenting the modified workflow obtained by automatically modifying the workflow; and in response to a user command to execute the visually represented modified workflow, causing the component to execute the modified workflow. The workflow management system of claim 1 .
3. the plurality of tasks includes at least one first task and at least one second task; the executable instructions, when executed by the at least one processor, instruct the at least one processor to automatically modify the workflow by generating at least one replica of the at least one first task based on the element configuration. The workflow management system of claim 1 .
4. the plurality of tasks includes at least one first task and at least one second task associated with the at least one first task; The executable instructions, when executed by the at least one processor, cause the at least one processor to: generating at least one replica of the at least one first task based on the component configuration; and automatically modifying the workflow by associating the at least one replica of the at least one first task with the at least one second task to obtain the modified workflow. The workflow management system of claim 1 .
5. the element configuration indicates that the element is a group of N nodes, where N is a natural number greater than 1; the plurality of tasks includes at least one first task and at least one second task associated with the at least one first task; The executable instructions, when executed by the at least one processor, cause the at least one processor to: generating (N-1) replicas of the at least one first task; and automatically modifying the workflow by associating each of the (N-1) replicas of the at least one first task with the at least one second task to obtain the modified workflow. The workflow management system of claim 1 .
6. The executable instructions, when executed by the at least one processor, cause, during the execution of the modified workflow, executing the at least one first task at each of the N nodes; and instructing the at least one processor to execute the at least one second task on one or more of the N nodes. The workflow management system of claim 5 .
7. each of the N nodes is bare metal; the at least one first task includes an operating system (OS) installation for installing an OS on each of the bare metal devices; The at least one second task includes a cluster installation for configuring the N nodes into a cluster after the OS installation. The workflow management system of claim 6.
8. The executable instructions, when executed by the at least one processor, cause the at least one processor to: in response to a user selection of the workflow from a plurality of workflows, visually presenting at least one input area for receiving user input of the element for which the modified workflow is to be executed; in response to the user input for the element, searching the element configuration for the element and automatically modifying the workflow based on the element configuration to obtain the modified workflow to be executed on the element. The workflow management system of claim 1 .
9. The at least one input area: a first input area for receiving an element type of the element; a second input area for receiving an element name of the element; The workflow management system of claim 8.
10. The element configuration comprises a JavaScript Object Notation (JSON) configuration; The workflow management system of claim 1 .
11. The executable instructions, when executed by the at least one processor, cause the at least one processor to: visually presenting a first input area for constructing a new workflow; visually presenting a function list of functions simultaneously with the first input area; in response to a user's manipulation of one or more functions from the function list into the first input area, generating one or more tasks corresponding to the one or more functions; Associating the one or more tasks to obtain the new workflow; and storing the new workflow. The workflow management system of claim 1 .
12. The executable instructions, when executed by the at least one processor, cause the at least one processor to: visually presenting a second input area for receiving user input of an element type supported by the new workflow; and instructing the input device to include in the function list a function corresponding to the element type received through the second input area. The workflow management system of claim 11.
13. The executable instructions, when executed by the at least one processor, cause the at least one processor to: visually presenting at least one first input area for receiving user input of a new element, the user input of the new element including an element type, an element name, and an element configuration of the new element; or visually presenting at least one second input area for receiving user input of a new function, the user input of the new function including a function name, an element type supported by the new function, and a script to be executed as at least a part of the new function; The workflow management system of claim 1 .
14. 1. A method of workflow management executed at least in part by at least one processor, comprising: loading a workflow including a plurality of tasks in sequence, the plurality of tasks including at least one first task and at least one second task associated with the at least one first task; For nodes, generating at least one replica of the at least one first task; associating the at least one replica of the at least one first task with the at least one second task to obtain a modified workflow; and executing the modified workflow; In the executing, the at least one first task is executed on each node in the group of nodes, and the at least one second task is executed on one or more nodes in the group of nodes. method.
15. generating the at least one replica of the at least one first task, a number of replicas of the at least one first task generated based on a number of nodes in the group of nodes. The method of claim 14.
16. the node group comprises N nodes, N being a natural number greater than 1; In the generating the at least one replica of the at least one first task, (N-1) replicas of the at least one first task are generated. The method of claim 14.
17. the at least one first task includes an operating system (OS) installation for installing an OS on each node in the group of nodes; The at least one second task includes a cluster installation for configuring the nodes into a cluster after the OS installation. The method of claim 14.
18. visually presenting the modified workflow obtained by the generating and associating the at least one replica of the at least one first task with the at least one second task; said causing the modified workflow to be executed in response to a user command to execute the visually represented modified workflow. The method of claim 14.
19. 1. A computer program product comprising a non-transitory tangible computer-readable storage medium storing a computer program, the computer program, when executed by at least one processor, causing the at least one processor to: visually presenting at least one input area for receiving user input of elements for workflow execution in response to a user selection of a workflow, the workflow including a first set of tasks followed by a second set of tasks; modifying the workflow in response to the user input of the element to obtain a modified workflow executed at the element, wherein a number of the first set of tasks in the modified workflow is equal to a number of nodes in the element; visually presenting the modified workflow; and in response to a user command to execute the visually represented modified workflow; executing the first set of tasks at each of the nodes of the element; and then and causing execution of the second set of tasks at one or more nodes of the element. Computer program products.
20. the first set of tasks includes an operating system (OS) installation for installing an OS on each of the nodes of the element; the second set of tasks includes a cluster installation for configuring the nodes of the element into a cluster after the OS is installed; 20. A computer program product as claimed in claim 19.
Citation Information
Patent Citations
Business process generation program, and business process generation method
JP2017228257A
Method and system for flexible pipeline generation
JP2021508903A
Automated computer application update analysis
US20150178062A1
Process Visualization Platform
US20170364843A1
Automated intelligent file conversion and execution
US20220156229A1