Workflow management methods, systems, and computer program products using dynamic workflow creation.
The workflow management system addresses workflow errors by dynamically creating and executing workflows based on element configurations, improving efficiency and reducing manual errors across varied environments.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- RAKUTEN MOBILE INC
- Filing Date
- 2022-09-23
- Publication Date
- 2026-06-26
Smart Images

Figure 0007880981000001 
Figure 0007880981000002 
Figure 0007880981000003
Abstract
Description
Technical Field
[0001] This disclosure relates to workflows and workflow management.
Background Art
[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 is easy for humans to follow, while also reducing potential errors such as steps being omitted, executed incorrectly, or executed in the wrong order.
Summary of the Invention
[0003] In some embodiments, a workflow management system includes at least one processor and at least one computer-readable storage medium connected to the at least one processor and configured to store executable instructions. When the executable instructions are executed by the at least one processor, the at least one processor is instructed to load a workflow including a plurality of tasks arranged in order, automatically modify the workflow based on an element configuration of elements for workflow execution to obtain a modified workflow, and execute the modified workflow on the elements.
[0004] In some embodiments, the workflow management method is performed by at least one processor, at least in part. The method includes loading a workflow that includes a plurality of tasks arranged in order. 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 at least one second task to obtain a modified workflow. The method further includes running the modified workflow, in which at least one first task is run on each node in the node group and at least one second task is run on one or more nodes in the node group.
[0005] In some embodiments, the computer program product comprises a non-temporary, tangible, computer-readable storage medium for storing the computer program, and the computer program, 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 elements 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 user input of elements and obtain a modified workflow to be executed on the elements, the number of tasks in 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, in response to a user instruction to execute the visually presented modified workflow, to execute the first set of tasks at each node of the element, and then to execute the second set of tasks at one or more nodes of the element.
[0006] The aspects of this disclosure will be best understood from the following detailed description when read in conjunction with the accompanying drawings. In accordance with industry standards, various features are not drawn to scale. In practice, the dimensions of various features are arbitrarily increased or decreased for the sake of clarity in the description. [Brief explanation of the drawing]
[0007] [Figure 1A] This is a schematic diagram of a workflow management system according to several embodiments.
[0008] [Figure 2A] This is a schematic diagram showing various screens or panels of the user interface in a workflow management system according to several embodiments. [Figure 2B] This is a schematic diagram showing various screens or panels of the user interface in a workflow management system according to several embodiments. [Figure 3A] This is a schematic diagram showing various screens or panels of the user interface in a workflow management system according to several embodiments. [Figure 3B] This is a schematic diagram showing various screens or panels of the user interface in a workflow management system according to several embodiments. [Figure 3C] This is a schematic diagram showing various screens or panels of the user interface in a workflow management system according to several embodiments. [Figure 3D] This is a schematic diagram showing various screens or panels of the user interface in a workflow management system according to several embodiments. [Figure 4] This is a schematic diagram showing various screens or panels of the user interface in a workflow management system according to several embodiments. [Figure 5A] This is a schematic diagram showing various screens or panels of the user interface in a workflow management system according to several embodiments. [Figure 5B]This is a schematic diagram showing various screens or panels of the user interface in a workflow management system according to several embodiments. [Figure 5C] This is a schematic diagram showing various screens or panels of the user interface in a workflow management system according to several embodiments. [Figure 5D] This is a schematic diagram showing various screens or panels of the user interface in a workflow management system according to several embodiments. [Figure 5E] This is a schematic diagram showing various screens or panels of the user interface in a workflow management system according to several embodiments. [Figure 5F] This is a schematic diagram showing various screens or panels of the user interface in a workflow management system according to several embodiments. [Figure 5G] This is a schematic diagram showing various screens or panels of the user interface in a workflow management system according to several embodiments. [Figure 5H] This is a schematic diagram showing various screens or panels of the user interface in a workflow management system according to several embodiments. [Figure 5I] This is a schematic diagram showing various screens or panels of the user interface in a workflow management system according to several embodiments.
[0009] [Figure 6A] These are flowcharts of various processes in a workflow management system according to several embodiments. [Figure 6B] These are flowcharts of various processes in a workflow management system according to several embodiments.
[0010] [Figure 7] This is a schematic block diagram of a computer system according to several embodiments. [Modes for carrying out the invention]
[0011] The following disclosure includes many different embodiments or examples for implementing different features of the subject matter. For the sake of brevity, specific examples of components, values, operations, materials, arrangements, etc. are described below. Naturally, these are merely examples and are not intended to be limiting. Other components, values, operations, materials, arrangements, etc., are possible. For example, the formation of a first feature above or above a second feature in the following description includes embodiments in which the first and second features are formed in direct contact, and also includes embodiments in which an additional feature is formed between the first and second features so that the first and second features do not come into direct contact. In addition, the disclosure repeats reference numbers and / or symbols in various examples. This repetition is for the sake of brevity and clarity and does not in itself determine the relationships between the various embodiments and / or configurations discussed. Furthermore, spatially relative terms such as “directly below,” “below,” “at the bottom,” “on top,” and “above” may be used herein to describe the relationship between one element or feature and another, as shown in the figures, for the sake of clarity. Spatially relative terminology is intended to encompass different orientations of the device during use or operation, in addition to the orientation shown in the figure. The device may be oriented in other directions (rotated by 90 degrees or in other directions), and spatially relative descriptors, which may also be used herein, will be interpreted accordingly.
[0012] A workflow presents a step-by-step process outlining how work should be performed. Examples of processes include, but are not limited to, business and / or technical planning, procedures, and customer support / service. In complex technical situations, i.e., when there are many workflows and / or tasks within them, or when tasks in one or more workflows are performed in one or more locations physically separated from an administrator or supervisor, the ability to remotely monitor and / or control workflow execution becomes a consideration.
[0013] In some embodiments, the workflow management system is configured to create a modified workflow from a workflow that is reusable as a workflow template. In one or more embodiments, the workflow management system is configured to generate different modified workflows from the same workflow depending on the different element configurations of various elements on which the generated workflow is executed. For example, the workflow management system is configured to duplicate at least a portion of the workflow based on the number of nodes within the elements selected for execution of the workflow. As a result, in at least one embodiment, it is possible to quickly scale the same workflow to obtain modified workflows corresponding to various elements of different sizes (e.g., different numbers of nodes). In some embodiments, a user interface (UI) is provided to the user of the workflow management system for creating their own workflows and / or for managing workflows, elements, and / or functions within the workflow management system. The UI is further configured to permit the user to automatically generate a dynamic workflow from an existing workflow as described herein, execute the workflow, and / or monitor the status of the executed workflow. In at least one embodiment, such automatic generation of a dynamic workflow from a workflow that can be used as a template reduces the amount of time and / or effort spent on manual and / or moving for the preparation and / or execution of scripts for performing similar tasks. In one or more embodiments, potentially numerous human errors associated with manual work can also be avoided. Further 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 includes 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 element 160 is 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, or some, or all of the components shown in FIG. 1, such as the dashboard microservice 110, the engine 120, the database 130, the log storage 140, the repository 150, the element 160, and / or their sub-components (e.g., modules 112, 114, 116 and / or engines 122, 124, 126), comprise hardware on which software corresponding to various algorithms and / or operations described herein is executed. One or more hardware configurations of any of the components shown in FIG. 1 include the computer system described with respect to FIG. 7. For example, at least one, or some, or all of the components of the workflow management system 100, the repository 150, the element 160, and / or their sub-components 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 and / or their sub-components within the workflow management system 100 are implemented on / by a cloud platform. Other configurations are within the scope of various embodiments.
[0017] The dashboard microservice 110 includes a plurality of modules configured to provide one or more functions and / or operations described herein. For illustrative purposes, the dashboard microservice 110 in Figure 1 includes modules 112, 114, and 116. However, a number and / or types of modules are within the scope of various embodiments. In at least one embodiment, at least one of modules 112, 114, and 116 includes a set of modules. In at least one embodiment, the exemplary modules 112, 114, and 116 are different from each other or share at least one common module.
[0018] The dashboard microservice 110 includes one or more modules configured to generate a graphical user interface (hereinafter, "UI") for 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 presentation of workflow and / or UI screens include displaying the workflow and / or UI screens on a display such as a monitor or touchscreen. The display may be a display of a computer system implementing one or more components of the workflow management system 100, or it may be a remote display connected to one or more components of the workflow management system 100 via 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 the user can visually perceive, are within the scope of various embodiments. For simplicity, in the following description, “displaying,” “showing,” “indicating,” “presented,” “showing,” or similar expressions may be used to describe exemplary methods for visual presentation of information. Other methods of visual presentation are not excluded in the context of this specification. Users may interact with information displayed by pointing devices (e.g., a mouse), touchscreens, contactless gestures, voice commands, or other visually presented information.
[0019] The dashboard microservice 110 further comprises one or more modules configured, by itself and / or in cooperation with one or more corresponding engines within engine 120, to create, manage, execute, and / or monitor various workflows as described herein. In some embodiments, the dashboard microservice 110 is configured to provide the ability to perform create, read, update, and delete (CRUD) operations on various objects, including but not limited to workflows, tasks, elements, and functions. In some embodiments, the dashboard microservice 110 is configured to perform one or more of the following actions through role-based access control (RBAC): execution, monitoring, debugging, resumption, and reporting of workflows and / or tasks. In some embodiments, the dashboard microservice 110 includes at least one node application. In some embodiments, the dashboard microservice 110 includes at least one web-based application.
[0020] Engine 120 is configured to perform various operations and / or functions, such as those described herein, together with or under the control of the dashboard microservice 110. For illustrative purposes, Engine 120 in Figure 1 includes Engines 122, 124, and 126. However, a number of other engines and / or types of engines are within the scope of various embodiments. In at least one embodiment, at least one of Engines 122, 124, and 126 comprises a set of engines. In at least one embodiment, Engines 122, 124, and 126 are different from each other or share at least one common engine. Examples of Engine 120 include, but are not limited to, operating system (OS) installation, OS upgrade, cluster installation, cluster uninstallation, cluster upgrade, squall in / out, hardware (HW) health check, firmware upgrade, field programmable gate array (FPGA) upgrade, OS / FPGA reporting, authentication, and the like. Engine 120 is configured to interact with the dashboard microservice 110 by application programming interface (API) requests / responses. For the sake of simplicity, in this description, operations and / or functions and / or controls performed by the dashboard microservices 110 and / or engine 120 may also be expressed as being performed by the system or by one or at least one of its processors.
[0021] In the exemplary operation 102, the UI of the dashboard microservice 110 provides user 101 with at least one option for registering an element configuration. For example, user 101 interacts with the UI to provide user input for the element configuration to module 112 of the dashboard microservice 110. Module 112 instructs engine 122 to store the element configuration in database 130.
[0022] An element configuration is the configuration or description of an element. In some embodiments, an element includes one or more sites or devices (e.g., computer systems) on which one or more tasks of a workflow are performed. Examples of elements, as described herein, include, but are not limited to, bare metal, clusters, etc. In some embodiments, bare metal (BM) is a computer system without an OS and installed applications. In at least one embodiment, BM includes computer hardware with firmware or basic input / output system (BIOS) software utilities installed, or with no software installed at all. In some embodiments, BM becomes a server after an OS and one or more required applications are installed. In some embodiments, a node refers to a BM before or after OS installation. A cluster includes a group of nodes that are interconnected and configured to work together. An exemplary cluster is indicated as "RC" in the drawings. Various cluster configurations are within the scope of various embodiments. In some embodiments, to configure a group of 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] Element 160 in Figure 1 includes examples of nodes and clusters. Element 160 includes M clusters, i.e., cluster 1, cluster 2, ... cluster M. Each cluster includes multiple nodes. For example, cluster 1 includes N nodes, i.e., node 1_1, node 1_2, ... node 1_N; cluster 2 includes P nodes, i.e., node 2_1, node 2_2, ... node 2_P; ... cluster M includes Q nodes, i.e., 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 group of nodes 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 not included in a cluster. Specific examples described herein include the execution of a workflow for configuring a group of BMs as a cluster. These examples are 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 concrete example, each cluster is either a data center or constitutes part of a data center.
[0024] In a further example of operation 104, the UI of the dashboard microservice 110 provides user 101 with various options for building, running, debugging, and / or resuming workflows. For example, user 101 interacts with the UI to build a workflow that includes multiple tasks arranged or associated in sequence. In some embodiments, the system, or another component outside the workflow management system 100, provides an environment for the user to build workflows, such as a graphing environment, and is configured to save the workflow configuration of the built workflow as an Extended Markup Language (XML) document executed at runtime by the workflow engine in engine 120. 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 code are within the scope of various embodiments. In some embodiments, the system, or another component outside the workflow management system 100, includes a template repository (or template manager) containing pre-stored and / or pre-designed workflow configurations that can be used as templates to quickly build new workflows. Workflow configurations and / or workflows created or loaded by the workflow management system 100 are stored in the database 130, for example, by the engine 124. The database 130 comprises a single database or a set of databases that store templates, workflow configurations, and element configurations. In some embodiments, the database 130 further stores the generated workflow data while and / or as a result of the workflow engine running one or more workflows.
[0025] The UI of the dashboard microservice 110 further provides the user 101 with various options for executing a built workflow or an existing workflow. For example, the engine 124 receives user input or selection through module 114 about the workflow (used as a template) and the elements 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 configurations and workflow configurations of the workflow from the database 130, and automatically modifies the workflow as needed based on the element configurations to generate a modified workflow that will be executed on the elements. The engine 124 creates one or more worker pods 128, or utilizes one or more existing worker pods 128, and then assigns 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 related to one or more tasks in the modified workflow to be executed. For example, since each task runs in its own worker pod, a worker pod that is the actual instance running the task is required to perform functions related to the task. In some situations, the tasks to be executed are not related to functions within the workflow management system 100, but 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 related to the tasks in the modified workflow to be executed in a specified element (for example, in a cluster or one or more nodes within element 160) according to the sequence of tasks in the workflow.
[0027] When a task (e.g., a function and / or script) is executed, log information about the task and / or 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, and conditions. One or more worker pods 128 redirect the log information to log storage 140 for internal storage.
[0028] Various options for debugging and / or resuming the workflow are also provided to user 101 by the UI. Based on user input or selection of options for debugging or resuming the workflow received through module 114, engine 124 makes appropriate corrections in its instructions to one or more worker pods 128 to execute the modified workflow completely or partially, according to the selected debug or resume option.
[0029] In some embodiments, at least one of the 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 include 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 by other virtual machines.
[0030] In another exemplary operation 106, the UI of the dashboard microservice 110 provides user 101 with at least one option to request real-time log information related to a selected task in a selected workflow. For example, in response to a user request for log information received through the UI, module 116 sends the user request to engine 126. Engine 126 accesses log storage 140 to retrieve log information corresponding to the selected task in the selected workflow identified in the user request, sends the retrieved log information back to the UI through module 116, and displays the log information to the user. In some embodiments, while the user is viewing 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 corrected, located, or bypassed by using debug and / or resume options.
[0031] Figures 2A-2B, 3A-3D, 4, and 5A-5I are schematic diagrams showing various screens or panels of the UI in a workflow management system according to several embodiments. In some embodiments, the UI is provided to the workflow management system 100 and generated by the dashboard microservice 110.
[0032] Figure 2A is a schematic diagram of a UI dashboard screen 200A according to several embodiments. In some embodiments, the dashboard screen 200A is displayed when authentication of a user logging into the workflow management system 100 is successful. The dashboard screen 200A includes an address bar 202, a settings button 204, a location selection menu 206, a date selection menu 208, and a plurality of visualization areas 210, 212, 214, and 216.
[0033] The address bar 202 contains an address for accessing the dashboard screen 200A using a web browser. For simplicity, the details of the address are omitted. As described herein, one or more other screens of the UI also include similar address bars. The address bars of one or more other screens are omitted for simplicity. In at least one embodiment, the web-based UI provides flexibility in that users 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] The settings button 204 is configured to allow access to other screens of the UI. For example, when a user operates the settings button 204, screen 200B in 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] Visualization areas 210, 212, 214, and 216 provide overview information about various items within the workflow management system 100. For example, visualization area 210 provides the number of elements registered for each element type in the workflow management system 100. In the exemplary configuration of Figure 2A, visualization area 210 shows that there are 53 elements, approximately 80% of which are registered as BM type (bare metal) and approximately 20% of which are registered as RC type (cluster).
[0036] Visualization area 212 provides the number of functions registered in the workflow management system 100 and the element types supported by the functions. In some embodiments, one or more functions are associated with tasks in a workflow and will be executed in the corresponding elements when the workflow is executed. In the exemplary configuration of Figure 2A, visualization area 212 shows that there are 111 functions supporting various element types, namely BM, VM (Virtual Machine), RC, and NF (Network Function). The element types listed are non-limiting examples.
[0037] Visualization area 214 provides the number of workflows in the workflow management system 100 and the corresponding types of workflows. In the exemplary configuration of Figure 2A, visualization area 214 shows that there are 83 workflows, of which approximately 80% are dynamic workflows and approximately 20% are static workflows. Dynamic workflows can be dynamically and automatically modified by the system based on at least the element configuration of the elements in which the workflow is selected to run. In some embodiments, this dynamic feature allows dynamic workflows to be automatically reconfigured to run on any of multiple elements. Static workflows are not configured to be dynamically and automatically modified by the system. In some embodiments, static workflows are specifically configured to run on a particular element rather than the multiple elements described with respect to dynamic workflows.
[0038] Visualization region 216 provides the batch size of the workflow and the average execution time. According to some embodiments, one or more of visualization regions 210, 212, 214, and 216 are omitted or configured to show other data.
[0039] The location selection menu 206 and the date selection menu 208 allow the user to view data filtered by the location selected from the location selection menu 206 and / or the date selected from the date selection menu 208 in the visualization areas 210, 212, 214, and 216. In some embodiments, at least one of the location selection menu 206 and the date selection menu 208 is omitted.
[0040] Figure 2B is a schematic diagram of a UI screen 200B according to several embodiments.
[0041] As described herein, screen 200B is displayed in response to user interaction with the settings button 204 on dashboard screen 200A. One or more other screens of the UI as described herein also include screen 200B on the side to help the user navigate through the various screens and / or options within the UI. For simplicity, screen 200B that may appear with one or more screens of the UI as described herein is omitted.
[0042] Screen 200B includes several selectable menu items 230, 232, 234, and 236. Menu item 230 is for accessing dashboard screen 200A. Menu item 232 is for accessing one or more screens for managing elements or element configurations (e.g., register, edit, or delete), as described for example with respect to operation 102 and / or Figures 3A to 3D. Menu item 234 is for accessing one or more screens for managing workflows or workflow configurations (e.g., register, edit, or delete) and / or executing workflows, as described for example with respect to operation 104 and / or Figures 5A to 5I. Menu item 236 is for accessing one or more screens for managing functions or function configurations (e.g., register, edit, or delete), as described for example with respect to Figure 4. The functions relate to one or more tasks within various workflows managed by the workflow management system 100.
[0043] Screen 200B further includes selectable submenu items 242, 244, and 246 under menu item 234. The workflow template submenu item 242 is configured to provide access to a list of workflow templates available for building new workflows, as illustrated, for example, with respect to Figures 5A to 5D.
[0044] The factory submenu item 244 is configured to provide access to the workflow list of workflows managed by the workflow management system 100, as illustrated, for example, with reference to Figures 5E to 5G. The user is provided with various options for running one or more selected workflows from the workflow list, deleting existing workflows from the workflow list, refreshing the workflow list, or filtering the workflow list to create, edit, or delete workflows. The user is also provided with various options for debugging workflows.
[0045] The Workflow Execution submenu item 246 is configured to display a list of executed workflows. An example of such a list is illustrated with reference to Figure 5H. The user is provided with at least one option to request real-time log information related to the selected task. The user is further provided with various options to resume (re-run) the entire or a part of the workflow, as illustrated herein with reference to Figure 5I, for example. Further features include viewing the task configuration, 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 shows the user's current location within the UI. In the exemplary configuration shown in Figure 2B, the navigation indicator 240 "Run Workflow" corresponds to the currently selected Workflow Run submenu item 246.
[0047] Figures 3A to 3D are schematic diagrams showing various screens or panels of a UI for managing elements according to several embodiments. In at least one embodiment, the UI screens or panels described with respect to Figures 3A to 3D are provided by module 112 to allow the user to interact with engine 122 to manage (e.g., register, edit, or delete) elements having corresponding element configurations stored in database 130.
[0048] Figure 3A is a schematic diagram of a UI screen 300A according to several embodiments. In some embodiments, screen 300A is displayed when the user selects an element menu item 232 in screen 200B.
[0049] Screen 300A includes an element list, which contains elements managed by the workflow management system 100 and stored in the database 130. Each element corresponds to a row in the element list. For simplicity, three elements 311, 312, and 313 are specifically shown in Figure 3A. The number of elements displayed on screen 300A and / or the number of elements managed by the workflow management system 100 is not limited to a specific number. Each element in screen 300A includes, accordingly, its corresponding health status, element name, element type, and element-specific identifier (UID) under columns 314-317. Screen 300A further includes a search bar 319 that allows the user to search for a specific 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, the health status (column 314) indicates whether the element is faulty or abnormal, or whether the element is healthy (i.e., free from failures or abnormalities). In the exemplary configuration of Figure 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 name and / or descriptive name assigned to each element when it is created or loaded into the workflow management system 100. The element UID (column 317) is a unique identifier automatically generated by the system for each element. The element type (column 316) indicates the type for each element. Examples of element types include, but are not limited to, BM (Bare Metal) and RC (Cluster), as described herein in relation to some embodiments. Other element types, namely VM (Virtual Machine), NF (Network Function), etc., are within the scope of various embodiments.
[0051] As explained with reference to Figure 3D, the user can view and / or edit the element configuration of each element by selecting the corresponding row in the element list from the element list on screen 300A. The user can also delete elements from the element list by selecting the corresponding row in the element list and operating or selecting the delete button or options (not shown). Operating button 320 refreshes the element list to obtain an updated element list. As explained with reference to Figure 3B, button 321 allows the user to add a new element. Button 322 allows the user to filter the element list based, for example, on health status and / or element type.
[0052] Figure 3B is a schematic diagram of a UI screen 300B according to some embodiments. In some embodiments, screen 300B is displayed when the user operates a button 321 in screen 300A to add a new element.
[0053] Screen 300B includes an input area 330 for receiving user input of the element type of a new element to be created. In the exemplary configuration of Figure 3B, the input area 330 includes several buttons or selectable menu items 331-334, each corresponding to an element type supported or manageable by the 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 and 334 correspond to additional element types other than BM or RC (not shown). In some embodiments, other element types and their corresponding buttons 333 and 334 are omitted. Alternatives to buttons 331-334 include, but are not limited to, radio buttons and menus (e.g., drop-down menus).
[0054] Screen 300B further includes a "Previous" button 335 to return to the previous UI screen, a "Cancel" button 336 to abort the process of adding a new element, and a "Next" button 337 to accept the selected element type and proceed to the next step in the process of adding a new element, as described with respect to Figure 3C.
[0055] Figure 3C is a schematic diagram of a UI screen 300C according to several embodiments. In some embodiments, screen 300C is displayed when the user operates the "Next" button 337 on screen 300B.
[0056] Screen 300C includes an indicator 340 that shows the element type selected on screen 300B. For example, if the user selects button 332 corresponding to the RC element type on screen 300B and then operates the "Next" button 337, the UI proceeds to screen 300C, where the indicator 340 shows "Cluster," corresponding to the element type selected by button 332 on screen 300B. As another example, if the user selects button 331 corresponding to the BM element type on screen 300B and then operates the "Next" button 337, the indicator 340 on screen 300C will show "Bare Metal," etc.
[0057] Screen 300C further includes an input area 341 for receiving user input for the element name of a new element, an input area 342 for receiving user input for the element description of a new element, and an input area 343 for importing the element configuration of a new element. In some embodiments, the element configuration includes a JavaScript Object Notation (JSON) configuration, as described with reference to Figure 3D, for example. Other configurations and / or specifications and / or programming languages or code for describing the element configuration are within the scope of various embodiments. The user is given the option of dragging and dropping a file containing the element configuration of a new element into input area 343, or browsing for such a file, for example, within a computer system and / or database 130. Other methods for loading, inputting, or selecting the element configuration of a new element are within the scope of various embodiments. In some situations, the element configuration imported into input area 343 already includes the element name and / or element description. In such a situation, the element names and / or element descriptions entered in input area 341 and / or input area 342 are ignored and overridden by the element names and / or element descriptions included in the imported element configuration.
[0058] Screen 300C further includes a "Previous" button 345 for returning to the UI screen before Screen 300C, a "Cancel" button 346 for stopping the process of adding a new element, and a "Submit" button 347 for registering a new element having the element type, element name, element description, and element configuration entered and / or imported on Screens 300B and 300C. In some embodiments, when the user operates the "Submit" button 347, the newly registered element is stored in the database 130 and displayed in the updated element list on Screen 300A.
[0059] Figure 3D is a schematic diagram of UI screen 300D according to several embodiments. In some embodiments, screen 300D is displayed when the user selects an element from the element list on screen 300A.
[0060] Screen 300D includes an indicator 350 showing the element name of the selected element (e.g., "dummy04"), and display areas 351-355 that 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 accordingly. For simplicity, detailed information on the element UID and element location is omitted in display areas 351 and 353. In some embodiments, one or more of the displayed information in display areas 351-355 is view-only; that is, the displayed information is not editable, for example, if the user does not have sufficient privileges to edit the information. In some embodiments, one or more of the displayed information in 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 the input area 343 on screen 300C.
[0061] An enlarged view 360 of Figure 3D shows an example of an element configuration displayed in the display area 355. In the configuration example of Figure 3D, the selected element is a cluster or a group of nodes, and the element configuration 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, information 361 indicates that the element has an element "dummy04", an element description "DUMMY_04", and an element type "cluster" (i.e., RC). Information 362 indicates that the first node of the element has a corresponding first name, type "BM", a first UID, first configuration information with corresponding properties, a first description, etc. Information 363 indicates that the second node of the element has a corresponding second name, type "BM", a second UID, second configuration information with corresponding properties, a second description, etc. Other element configurations and / or information included in element configurations are within the scope of various embodiments.
[0062] Figure 4 is a schematic diagram of a UI screen 400 according to several embodiments.
[0063] In some embodiments, when the user selects a function menu item 236 in screen 200B, the UI displays a screen (not shown) similar to screen 300A, showing a function list of the function managed by the workflow management system 100 and stored in the database 130 and / or repository 150. The function list is similar to the element list described with reference to Figure 3A, and for each function, includes details such as the function name, supported element types on which the function can be executed, a function description, a function UID, and an operation mode. The function list displays a button for adding (or registering) a new function, similar to button 321 on screen 300A. When the user operates such a button, screen 400 is displayed.
[0064] Screen 400 features multiple input fields 430-443 corresponding to various details above the new function to be created, including function name, version, function script, operator, supported element types, operation mode, action, fan-out, 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 others require user input.
[0065] For example, the user may enter a feature name in input area 430. Features may be updated, and after a feature update, the user and / or the system can change the version of the feature in input area 431. For feature scripts, the user can select a script file to be executed as at least part of the feature by searching for and selecting the desired script file using the "Browse" button 445. Input area 432 displays the file name of the selected script file. In some embodiments, the desired script file or feature script is selected from multiple script files in repository 150. Examples of feature scripts include Ansible scripts or other types of computer executable code. Input area 433 includes a dropdown menu for the user to select the intended operator. Exemplary operators include, but are not limited to, Shell (the feature script is executed on the worker pod) and SSH (Secure Shell, where the feature script is executed on the target node). Input area 434 includes a dropdown menu for the user to select a supported element type, such as BM, RC, or VM. Input area 435 includes a dropdown menu for the user to select the 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 dropdown 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 elements on which the workflow should 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 (per-element) timeout for the function to terminate in input area 438.The user and / or system can specify the memory size required for the worker pod to perform its function in input area 439. The user and / or system can specify the number of CPUs required for the worker pod to perform its function in input area 440. The user and / or system can specify one or more environment variables for the function in input area 441. The user and / or system can specify the runtime, for example, the executor image (or worker image) that the function will use, in input area 442. The user can enter a function description for the function in input area 443.
[0066] The screen 4000 further includes a "Cancel" button 446 for stopping the process of adding a new function, and an OK button 447 for registering the newly created function. In some embodiments, when the user operates the OK button 447, the newly registered function is stored in the database 130 and displayed in the updated function list. In some embodiments, the dashboard microservice 110 and engine 120 include one or more corresponding modules and engines configured to manage functions in a manner similar to how modules 112 and engine 122 are configured to manage elements, as described herein.
[0067] Figure 5A is a schematic diagram of UI screen 500A according to some embodiments. In some embodiments, screen 500A is displayed when the user selects the workflow template submenu item 242 in screen 200B.
[0068] Screen 500A contains a template list managed by the workflow management system 100, with workflow templates stored in the database 130. Each workflow template corresponds to a row in the template list. For simplicity, three workflow templates 501, 502, and 503 are specifically shown in Figure 5A. The number of workflow templates displayed on screen 500A and / or managed by the workflow management system 100 is not particularly limited. Each workflow template in screen 500A includes, accordingly, a template name, element type, and template description under columns 504-506. Screen 500A further includes a search bar 507 that allows the user to search for a specific workflow template. Screen 500A also includes a button 508 for adding (or registering) a new workflow template and a button 509 for filtering the template list. For each of templates 501-503, the template name (column 504) is a human-readable name and / or descriptive name assigned 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 that can execute the workflow generated from the workflow template, e.g., BM, RC, etc. The template description (column 506) is a human-readable description of one or more functions of the workflow generated from the workflow template, e.g., BM, RC, etc. In some embodiments, each workflow template itself is a workflow that has a workflow configuration and is executable in elements of the corresponding element type. In some embodiments, if the element type of the workflow is BM type, the workflow, or a modified workflow generated from the workflow, is executed on the target node. In some embodiments, if the element type of the workflow is 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 on screen 500A, the user can view the details of a workflow template by selecting the corresponding row in the template list. In some embodiments, the details of a workflow template are displayed on a screen similar to screen 500D as described with respect to Figure 5D. The displayed details are editable, and the user can quickly create a new workflow based on a pre-stored and / or pre-designed workflow template. The user can delete a workflow template from the template list by selecting the corresponding row in the template list and operating or selecting the delete button or an option (not shown). As described with respect to Figures 5B to 5D, button 508 allows the user to add a new workflow without using a workflow template. Button 509 allows the user to filter the template list based, for example, on element type.
[0070] Figure 5B is a schematic diagram of UI screen 500B according to some embodiments. In some embodiments, screen 500B is displayed when the user operates button 508 in screen 500A to add a new workflow.
[0071] Screen 500B includes an input area 510 that receives user input for the workflow name of the new workflow to be created, and an input area 511 that receives user input for the element type of the new workflow. In the exemplary configuration of Figure 5B, the input area 511 includes a dropdown menu that allows the user to select BM element type, RC element type, etc. Other configurations of the 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, as described with respect to Figure 5C, and an OK button 513 for accepting the selected element type and proceeding to the next step, which is the process of adding a new workflow.
[0072] Figure 5C is a schematic diagram of a UI screen 500C according to some embodiments. In some embodiments, screen 500C is displayed when the user operates the OK button 513 on screen 500B.
[0073] Screen 500C includes an indicator 520 that shows the workflow name (e.g., "New Workflow") entered in the input area 510 of Screen 500B, a function list 521, and an input area 522 for constructing a new workflow. The function list 521 is visually presented simultaneously with the input area 522 and comprises several functions commonly designated as 523. The functions 523 in the function list 521 are functions managed by the workflow management system 100 and stored in the database 130, and are functions that support the element types entered or selected for the new workflow in the input area 511 of Screen 500B. Screen 500C further includes a search bar 524 that allows the user to search for a desired function from the function list 521 based on one or more details described with respect to Figure 4, e.g., function name.
[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 contains multiple tasks connected by one or more connections. In workflow 525, tasks are commonly designated as 526 and connections are commonly designated as 527. Screen 500C is configured to allow user operations, such as drag-and-drop operations, 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 Figure 5C. Each function dragged and dropped into the input area 522 becomes the corresponding task 526 in workflow 525. The user can specify (e.g., drag and drop) two or more tasks with the same function in 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 building workflow 525 and operates the "Save" button 529, the workflow configuration corresponding to workflow 525 is stored in database 130.
[0075] Figure 5D is a schematic diagram of UI screen 500D according to several embodiments. In some embodiments, screen 500D is a version of screen 500C and is displayed while workflow 525 is being built. In one or more embodiments, screen 500D is displayed, showing details of the selected workflow template, allowing the user to edit the details, and the edited details are stored in database 130 as a workflow configuration of a new workflow quickly generated based on the workflow template.
[0076] Screen 500D, like screen 500C, includes a function list 521 (not shown in Figure 5D for simplification) that is displayed simultaneously with the input area 522, and various functions from the function list 521 are added to the workflow 525 as tasks 526 associated by association 527. Compared to screen 500C, screen 500D further includes a display area 530 that allows viewing of the details of the selected task in the workflow 525. In the configuration example in Figure 5D, the selected task is the last task 526S of the workflow 525 being built. The selected task 526S is displayed in a visually different format from the format of the other tasks in the workflow 525. For example, the selected task 526S is displayed in a different color than the other tasks in the workflow 525.
[0077] Display area 530 includes a function dropdown 531, an element dropdown 532, and a log dropdown 533. When a function dropdown 531 is selected, it causes display areas 534 and 535 to display details of the function of the selected task 526S. Specifically, display area 534 displays the name of the function of the selected task 526S, "Function 54," and display area 535 displays a description of that function. Display area 534 is configured as a dropdown menu that allows the user to select functions of other tasks in the workflow 525. When another function is selected from the dropdown menu 534, the corresponding function description is displayed in display area 535, so that the corresponding task in the workflow 525 can be visually distinguished from other tasks in the workflow 525. The information of the selected task displayed in display areas 534 and 535 helps the user to verify 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 display areas 534 and 535. When the element dropdown 532 is selected, the UI displays one or more elements or element types related to the selected task and / or workflow 525. When the log dropdown 536 is selected, the UI displays log information related to the selected task and / or workflow 525. In some embodiments, the information in the element dropdown 532 and / or log dropdown 533 is not available until the workflow 525 is executed.
[0078] Figure 5E is a schematic diagram of a UI screen 500E according to some embodiments. In some embodiments, screen 500E is displayed when the user selects a factory submenu item 244 in screen 200B or when the user operates the “Save” button 529 to save a new workflow.
[0079] Screen 500E includes a workflow list, which contains workflows managed by the workflow management system 100 and stored in the database 130. The workflow list includes new workflows generated by editing one or more workflow templates from the template list described with respect to Figure 5A, or newly created as described with respect to Figures 5B-5D. Each workflow corresponds to a row in the workflow list. For simplicity, three workflows 541, 542, and 543 are specifically shown in Figure 5E. The number of workflows displayed on screen 500E and / or managed by the workflow management system 100 is not limited to a specific number. Each workflow in screen 500E includes, accordingly, a workflow name (e.g., "Title"), a workflow type, a workflow UID, and supported element types under columns 544-547. Screen 500E further includes a search bar 540 that allows the user to search for a specific 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 name and / or descriptive name assigned to each workflow when it is created or loaded into the workflow management system 100. The workflow type (column 545) indicates whether the workflow is a dynamic or static workflow. Other workflow types are within the scope of various embodiments. The workflow UID (column 546) is a unique identifier automatically generated by the system for each workflow in the workflow list. The supported element types (column 547) indicate the element types of elements that can execute workflows and modified workflows generated from workflows, e.g., BM, RC, etc.
[0081] From the workflow list on screen 500E, the user can view the details of a workflow by selecting the corresponding row in the workflow list. In some embodiments, the workflow details are displayed on a screen similar to screen 500D as described with respect to Figure 5D. The displayed details are editable, allowing the user to edit the workflow. The user can delete a workflow from the workflow list by selecting the corresponding row in the workflow list and operating or selecting the delete button or an option (not shown). As described with respect to Figures 5F to 5I, the user can select and execute a workflow from the workflow list.
[0082] Figure 5F is a schematic diagram of UI screen 500F according to several embodiments. In some embodiments, when the user selects and executes a workflow from the workflow list on screen 500E, screen 500F is displayed.
[0083] Screen 500F is configured to receive user input or user selection of the elements on which the selected workflow should be executed. Screen 500F includes an input area 550 for the element type of the desired element and an input area 551 for receiving user input for the element name of the element. In the exemplary configuration of Figure 5F, the 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 the input area 550 are within the scope of various embodiments. In some embodiments, the system automatically selects or specifies an element type in the 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 example configuration of Figure 5F, the element type "Cluster" (or RC) is selected or specified in the input area 550.
[0084] An input area 551 contains a dropdown menu that allows the user to select a desired element from a list of elements corresponding to an element type selected or specified in the input area 550, which are managed by the workflow management system 100 and stored in the database 130. The input area 551 is further configured to accept user input of an element name and to search for matching elements when characters of the element name are entered. When a matching element is found, the matching element is displayed, for example, in 552, for the user to select. As described with respect to Figure 5G, screen 500F further includes a "Cancel" button 553 for stopping the execution process of the selected workflow and an OK button 554 for accepting the element selected in the input area 551 and proceeding to the next step in the execution process of the selected workflow.
[0085] Figure 5G is a schematic diagram of a UI screen 500G according to several embodiments. In some embodiments, screen 500G is displayed in response to the user operating the OK button 554 on screen 500F, and confirms the user's selection (in the input area 551) of the elements (selected from the workflow list on screen 500E) on which the selected workflow should be executed. Screen 500G shows a modified workflow 575 that is automatically generated by the system based on the selected workflow 560 and the element configuration of the elements selected for the execution of workflow 560.
[0086] Screen 500G includes an indicator 561 that shows the element name of the selected workflow 560, i.e., “Workflow Name 5”. Workflow 560 includes multiple tasks 562-568 arranged and / or associated together in order, from task 562 to task 568. The multiple tasks 562-568 in workflow 560 include a series or set of first tasks 562, 563 and a subsequent series or set of second tasks 564-568. The first tasks 562, 563 are configured to run on each target node in a group of nodes or clusters, and the second tasks 564-568 are configured to run on one or more nodes in a group of nodes or clusters. The number of first and second tasks in workflow 560 and / or the association sequence of first tasks preceding second tasks is an example. In some embodiments, the selected workflow includes at least one first task and at least one second task associated with at least one first task, 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 selected element from the database 130 to execute workflow 560 and determines that the selected element is a group of nodes or a cluster. In one example, the system determines the number of nodes in the selected element by analyzing or reading the element configuration, as described with respect to Figure 3D. The system further determines that workflow 560 includes a set of first tasks 562, 563 that can be executed on the nodes of the selected element but cannot be executed simultaneously on other nodes of the selected element. The system then automatically modifies workflow 560 so 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 on each node of the element.
[0088] In the configuration example shown in Figure 5G, the selected element includes four nodes. The original first set of tasks 562 and 563 included in workflow 560 are configured to run sequentially at the first node of the selected element, and are designated as tasks 562_1 and 563_1 in Figure 5G. The system automatically generates three replicas 572, 573, and 574 of the original set of first tasks 562 and 563. Replica 572 includes tasks 562_2 and 563_2, which correspond to and match tasks 562_1 and 563_1, are related to each other and to task 564 in the same way as tasks 562_1 and 563_1, and are configured to run sequentially at the second node of the selected element. Replica 573 includes tasks 562_3 and 563_3, which correspond to and match tasks 562_1 and 563_1, are related to each other and to task 564 in the same way as tasks 562_1 and 563_1, and are configured to be executed sequentially at the third node of the selected element. Replica 574 includes tasks 562_4 and 563_4, which correspond to and match tasks 562_1 and 563_1, are related to each other and to task 564 in the same way as tasks 562_1 and 563_1, and are configured to be executed sequentially at the fourth node of the selected element. Thus, the modified workflow 575, which is automatically generated by modifying workflow 560, is obtained and displayed on screen 500G.
[0089] Screen 500G further includes an "Execute" button 576 that receives 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 replicas 572, 573, 574 is configured to execute an OS installation process 569 to install the OS on the corresponding target node. Tasks 562_1 to 562_4 are configured for pre-checks before OS installation, and tasks 563_1 to 563_4 are configured for OS installation. The second tasks 564 to 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 when the OS installation process 569 is complete, i.e., when all four tasks 563_1 to 563_4 have completed successfully. Tasks 564 to 568 are executed sequentially. In one example, task 564, configured to install the primary master (PM), runs on one node of the selected elements; tasks 565-566, configured to install the secondary master (SM), run on at least one node different from the PM node; and task 567, configured to install at least one agent, runs on at least one additional node different from the PM and SM nodes. Task 568, configured for post-checks, is the final task in the modified workflow 575. The specific features described are examples. Other features, such as BIOS upgrades, are within the scope of various embodiments.
[0090] The number of nodes in the selected element and / or the number of replicas of the set of first tasks automatically generated by the system are examples. In some embodiments, the selected element contains N nodes, where N is a natural number greater than 1, and the system automatically generates (N-1) replicas of the set of first tasks, so that each of the N nodes has its own set of first tasks to be executed. The status of the executed modified workflow 575 is included in the UI screen, as described with respect to Figure 5H.
[0091] Figure 5H is a schematic diagram of UI screen 500H according to some embodiments. In some embodiments, screen 500H is displayed when the user commands the execution of a modified workflow 575 and / or when the user selects the workflow execution submenu item 246 on screen 200B.
[0092] Screen 500H contains a list of executed workflows corresponding to the rows in the executed workflow list. Each executed workflow includes its corresponding status (failed, successful, or paused), process ID, workflow ID, workflow name, elements on which the workflow is executed, start time, duration, and progress report, corresponding under columns 581-588. Screen 500H further includes a search bar 589 that allows the user to search for a specific executed workflow. Screen 500H also includes a button 590 that allows the user to run (or rerun) a workflow selected from the executed workflow list, a button 590A for refreshing the executed workflow list, and a button 590B for filtering the executed workflow list based on status and / or start date, etc.
[0093] For each executed workflow, the workflow name (column 584) is a human-readable name and / or descriptive name assigned to the workflow when it is created or loaded into the workflow management system 100. The workflow ID (column 583) is a unique identifier automatically generated by the system for each executed workflow. The element (column 585) is a human-readable name or a unique identifier automatically generated by the system for the element on which the workflow is executed. In at least one embodiment, for example, multiple elements are displayed when a user executes an OS installation (workflow) on multiple clusters (elements). The process ID (column 582) is a unique identifier automatically generated by the system. In the case of batch execution (when a workflow is executed on multiple selected elements), the process ID will be the same for all of the elements. For example, if a user wants to execute one workflow (e.g., OS installation) on multiple clusters, the system automatically creates one process ID for this batch. In some situations, as shown in workflows 592 and 595, the same workflow (workflow ID 2) running on the same element (element 2) but with different start times may result in different process IDs (process ID 2 and process ID 5). In at least one embodiment, the process ID is unique for each instance of the workflow execution.
[0094] Figure 5I is a schematic diagram of UI screen 500I according to several embodiments. In some embodiments, screen 500I is displayed when the user selects a workflow from the executed workflow list on screen 500H.
[0095] Screen 500I provides the user with additional details of the selected, completed workflow, including a step-by-step view of each task in the workflow, the time it will take to complete each task, and the status of each task. Screen 500I also allows the user to re-run the workflow if, for example, the execution of any element of the workflow fails. In the configuration example in Figure 5I, the execution status of the modified workflow 575 is displayed on Screen 500I.
[0096] Screen 500I includes an indicator 561 showing the workflow name of the executed workflow, as well as an indicator 591 showing the status and the time it will take to complete workflow 575. In the exemplary configuration of Figure 5I, all tasks in the modified workflow 575 have been successfully completed. Each task, for example, task 568, is displayed with an icon 592 indicating its "successful" or "completed" status, and an indicator 593 showing the time it will take to complete the task, for example, "17 seconds". Incomplete or failed tasks (not shown) are visually presented in a visually different format from successful tasks. For example, successful tasks are visually presented in green, and other unsuccessful or failed tasks are visually presented in other colors. The specific format described is an example. Other format schemes are within the scope of various embodiments. For example, visually different formats may have different transparency, be animated by blinking or in other ways, have shadows or not, be different font types, font colors and / or font variations (e.g., bold or italic text), have different icons and / or text added, or be different combinations of the above visual effects and / or other effects not specifically described herein. Screen 500I further includes a Rerun button 595 that receives user input to re-run the execution of workflow 575, for example, if there is a failed task. In some embodiments, one or more operations described in relation to Figures 5A to 5I are performed by one or more of the module 114, engine 124, database 130, repository 150, one or more worker pods 128, and element 160 described in relation to Figure 1.
[0097] In some embodiments, the creation and execution of the dynamic workflow described offers one or more advantages compared to other approaches. Specifically, servers are often located in data centers / buildings / sites. According to other methods, a dedicated engineering team travels from site to site to install software, such as an OS, on the data centers / buildings that are to be configured as servers. This is a manual and time-consuming process. Furthermore, after the OS is installed, the engineering team needs to obtain permission to access at the node level. In some situations, obtaining the appropriate Service Level Agreement (SLA) permission can take more than a week. After obtaining the necessary access, the engineering team needs to manually run scripts to install the cluster. This process is repetitive and prone to human error.
[0098] The problems described above with other approaches can be avoided in workflow management systems 100 according to some embodiments. The workflow management system includes a UI configured to enable users 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, depending on the different element configurations of the various elements on which the generated workflow should be executed. For example, the workflow management system is configured to duplicate at least a portion of a workflow based on the number of nodes in the elements selected for 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, users of the workflow management system are provided with a UI for automatically generating dynamic workflows from existing workflows, executing workflows, and / or monitoring the status of 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 movement for preparing and / or executing scripts to perform similar tasks. One or more embodiments offer one or more advantages, including but not limited to reduced manual errors, improved performance, and reduced costs. In terms of performance, it may take engineering teams several days to complete the OS and cluster installation workflow (e.g., workflow 560) following manual processes with other approaches. In contrast, in some embodiments, it is possible to create more than 50 clusters in parallel within two to three hours.
[0099] Figure 6A is a flowchart of process 600A in a workflow management system according to some embodiments. In some embodiments, process 600A is executed by the workflow management system 100 to create a new workflow.
[0100] In operation 602, the element types to be supported by the new workflow to be created are received or specified, for example, as described with respect to Figure 5B.
[0101] In operation 604, the input area for building a new workflow is presented visually and simultaneously with the function list of functions that support the element type. For example, as described with respect to Figure 5C, the input area 522 for building a new workflow is visually present simultaneously with the function list 521 of functions 523 that support the element type received or specified on screen 500B in Figure 5B.
[0102] In operation 606, a new workflow is generated in response to the user interacting with one or more functions from the function list to the input area, as described, for example, with respect to Figures 5C and 5D.
[0103] In operation 608, the newly generated workflow is stored in database 130, for example, as described with respect to Figures 5C and 5D.
[0104] Figure 6B is a flowchart of process 600B in a workflow management system according to some embodiments. In some embodiments, process 600B is executed by the workflow management system 100 for the creation and execution of a dynamic workflow.
[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 the 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 to 5D, the new workflow may be automatically selected for execution, and the corresponding workflow configuration for the new workflow is loaded into the memory and / or processor of the workflow management system.
[0106] In operation 624, for example, elements for executing the workflow are selected or specified, as described with respect to Figure 5F.
[0107] In operation 626, the workflow is automatically modified based on the element configuration and the modified workflow is obtained. For example, as explained with respect to Figure 5G, workflow 560 is automatically modified based on the element configuration and the modified workflow 575 is obtained.
[0108] In operation 628, the modified workflow 575 is presented visually, for example, as described with respect to Figure 5G. In some embodiments, operation 628 is omitted.
[0109] In operation 630, the workflow management system executes the modified workflow in the element, for example, as described with respect to Figure 5G.
[0110] The methods and algorithms described include exemplary operations, but they do not necessarily have to be performed in the order shown. Operations may be added, replaced, reordered, and / or deleted as necessary, in accordance with the spirit and scope of the embodiments of this disclosure. Embodiments combining different features and / or different embodiments are within the scope of this disclosure and will be apparent to those skilled in the art after reviewing this disclosure.
[0111] Figure 7 is a schematic block diagram of a computer system 700 according to several embodiments. Examples of computer systems 700 include, but are not limited to, desktops, laptops, tablets, smartphones, and servers.
[0112] The computer system 700 includes a hardware processor 702 and a non-temporary computer-readable storage medium 704. In particular, the storage medium 704 is encoded, i.e., stored, by computer program code 706, i.e., by a set of executable instructions, such as one or more algorithms, programs, applications, executable instruction sets, etc., for a system, component, and / or module, as described with reference to Figures 1 to 6B. The 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 referred to as the processes and / or methods described above).
[0113] The processor 702 is connected to a non-temporary computer-readable storage medium 704 via a bus 708. The processor 702 is also connected to an I / O interface 710 via 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, thereby enabling the processor 702 and the computer-readable storage medium 704 to connect to external elements or devices via the network 714. The processor 702 is configured to execute computer program code 706 encoded in the computer-readable storage medium 704 in order to make the computer system 700 available 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 appropriate hardware processing units.
[0114] In one or more embodiments, the computer-readable storage medium 704 includes electronic, magnetic, optical, electromagnetic, infrared, and / or semiconductor systems (or apparatus or devices). For example, the computer-readable storage medium 704 includes semiconductor or solid-state memory, magnetic tape, removable computer diskette, random access memory (RAM), read-only memory (ROM), rigid magnetic disk, and / or optical disk. In one or more embodiments using an optical disk, the computer-readable storage medium 704 includes compact disc read-only memory (CD-ROM), compact disc read / write (CD-R / W), and / or digital video disc (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 aforementioned processes and / or methods. In one or more embodiments, the storage medium 704 also stores information or data 707, such as event data, consumer data, corporate data, policies, component configurations, etc., which are used in some or all of the aforementioned processes and / or methods.
[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, touchscreen, and / or cursor directional 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 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 the user interface through the I / O interface 710. The information is stored in a computer-readable storage medium 704 as a user interface (UI) 742.
[0117] The network interface 712 enables 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 wireless network interfaces such as BLUETOOTH®, WIFI, WiMAX, GPRS, LTE, 7G, 6G, WCDMA®, or wired network interfaces such as ETHERNET, USB, IEEE-864. In one or more embodiments, some or all of the processes and / or methods described above are implemented in two or more computer systems 700.
[0118] In some embodiments, some or all of the aforementioned processes and / or methods are implemented as standalone software applications for execution on one or more hardware processors. In some embodiments, some or all of the aforementioned processes and / or methods are implemented as software applications that are part of an additional software application. In some embodiments, some or all of the aforementioned processes and / or methods are implemented as plug-ins to a software application.
[0119] In some embodiments, some or all of the processes and / or methods described above are implemented as functions of a program stored on a non-temporary computer-readable recording medium. The computer-readable recording medium that stores the program internally is a computer program product. Examples of non-temporary computer-readable recording media include, but are not limited to, one or more external / removable and / or internal / built-in storage or memory units, such as optical discs like DVDs, magnetic disks like hard disks, and semiconductor memories such as ROMs, RAMs, and memory cards.
[0120] The above outlines some features of embodiments so that those skilled in the art may better understand aspects of the disclosure. Those skilled in the art should understand that the disclosure will readily be used as a basis for designing or modifying other processes and structures to perform 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 configurations will not depart from the spirit and scope of the disclosure, and that they may be modified, replaced, and altered herein in various ways without departing from the spirit and scope of the disclosure.
Claims
1. A workflow management system, Loading a workflow containing multiple tasks arranged in order, The process involves automatically modifying the workflow based on the components representing the bare metal of the target node for workflow execution, which are the elemental configuration of the elements on which the modified workflow should be executed, and obtaining the modified workflow. To have the aforementioned elements execute the modified workflow and to execute Workflow management system.
2. Visually present the modified workflow obtained by automatically modifying the workflow, In response to a user command to execute the visually presented modified workflow, the element executes the modified workflow. The workflow management system according to claim 1.
3. The plurality of tasks include at least one first task and at least one second task, The workflow is automatically modified by generating at least one replica of the at least one first task based on the aforementioned element configuration. The workflow management system according to claim 1.
4. The plurality of tasks include at least one first task and at least one second task associated with the at least one first task, Based on the above element configuration, generate at least one replica of the at least one first task, In order to obtain the modified workflow, the at least one replica of the at least one first task is associated with the at least one second task, Automatically correct the aforementioned workflow. The workflow management system according to claim 1.
5. The above 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 include at least one first task and at least one second task associated with the at least one first task, To generate (N-1) replicas of the at least one first task, By associating each of the (N-1) replicas of the at least one first task with the at least one second task, and obtaining the modified workflow, Automatically correct the aforementioned workflow. The workflow management system according to claim 1.
6. When executing the modified workflow, Each of the N nodes is to perform the at least one first task, The process involves having one or more of the N nodes perform the at least one second task, and executing The workflow management system according to claim 5.
7. Each of the N nodes is bare metal, The at least one first task includes operating system (OS) installation for installing an OS on each of the bare metals, The at least one second task includes a cluster installation to configure the N nodes into a cluster after the OS installation. The workflow management system according to claim 6.
8. Visually presenting at least one input area for receiving user input of the elements on which the modified workflow should be executed, in response to the user selecting the workflow from a plurality of workflows, In response to the user input of the element, the following are performed: search for the element configuration of the element, automatically modify the workflow based on the element configuration, and obtain the modified workflow to be executed on the element. The workflow management system according to claim 1.
9. The at least one input region is A first input area for receiving the element type of the aforementioned element, It comprises a second input area for receiving the element name of the aforementioned element, The workflow management system according to claim 8.
10. The aforementioned element configuration includes a JavaScript Object Notation (JSON) configuration. The workflow management system according to claim 1.
11. To visually present a first input area for constructing a new workflow, The first input area and the function list of the function are presented visually simultaneously, In response to the user operating one or more functions from the function list to the first input area, To generate one or more tasks corresponding to one or more of the aforementioned functions, To obtain the aforementioned new workflow, one or more of the aforementioned tasks are associated, To remember the new workflow and to execute The workflow management system according to claim 1.
12. Visually presenting a second input area for receiving user input of element types supported by the new workflow, To include in the function list a function corresponding to the element type received through the second input area, and to perform the following: The workflow management system according to claim 11.
13. Visually presenting at least one first input area for receiving user input of a new element, wherein the user input of the new element includes the element type, element name, and element configuration of the new element, or Visually presenting at least one second input area for receiving user input for a new function, wherein the user input for the new function includes a function name, an element type supported by the new function, and a script to be executed as at least part of the new function. Perform at least one of the following: The workflow management system according to claim 1.
14. A workflow management method that is at least partially performed by at least one processor, Loading a workflow that includes a plurality of tasks arranged in order, wherein the plurality of tasks include at least one first task and at least one second task associated with the at least one first task. For the node group, To generate at least one replica of the at least one first task, Associating at least one replica of the at least one first task with the at least one second task to obtain the modified workflow, The process includes executing the modified workflow, In the execution described above, the at least one first task is executed on each node in the node group, and the at least one second task is executed on one or more nodes in the node group. method.
15. In generating at least one replica of the at least one first task, the number of replicas of the at least one first task to be generated is based on the number of nodes in the node group. The method according to claim 14.
16. The aforementioned group of nodes comprises N nodes, where N is a natural number greater than 1. In 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 according to claim 14.
17. The at least one first task includes 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 to configure the group of nodes into a cluster after the OS installation. The method according to claim 14.
18. The process further includes generating the modified workflow obtained by associating the at least one replica of the at least one first task with the at least one second task, and visually presenting the modified workflow obtained by the above process. The execution of the modified workflow is performed in response to a user command to execute the visually presented modified workflow. The method according to claim 14.
19. A computer, Loading a workflow containing multiple tasks arranged in order, The process involves automatically modifying the workflow based on the components representing the bare metal of the target node for workflow execution, which are the elemental configuration of the elements on which the modified workflow should be executed, and obtaining the modified workflow. To cause the aforementioned element to execute the modified workflow, To visually present at least one input area that receives user input for elements of a workflow execution in response to a user selecting a workflow, wherein the workflow includes a first set of tasks followed by a second set of tasks, In response to the user input of the element, modify the workflow and obtain the modified workflow executed in the element, wherein the number of a first set of tasks in the modified workflow is equal to the number of nodes in the element. To visually present the aforementioned revised workflow, In response to a user command to execute the visually presented modified workflow, To cause each of the nodes of the element to execute the first set of tasks, and then, To have one or more of the aforementioned elements execute the second set of tasks, Make it run Computer program.
20. The first set of tasks includes 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 to configure the nodes of the element into a cluster after the OS has been installed. The computer program according to claim 19.