A method for managing heterogeneous automation scripts with dynamic environment preparation, and a system.

JP2026529508APending Publication Date: 2026-09-01INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2026501958
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-08-07
Filing Date
2024-07-03
Publication Date
2026-09-01

Smart Images

  • Figure 2026529508000001_ABST
    Figure 2026529508000001_ABST
Patent Text Reader

Abstract

A heterogeneous automation script management method with dynamic environment preparation is provided. When a user uploads a script to a centralized script manager, the uploaded script is analyzed to determine the necessary runtime environment and library resources required for successful execution. The script orchestrator engine resolves the set of dependencies for the script, selects the optimal machine on the centralized server for script automation based on the runtime environment and dependencies, and automatically installs the runtime environment and library resources for the script on the optimal machine.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to management of script execution, and more specifically to an embodiment for managing a plurality of heterogeneous automation scripts with dynamic environment preparation. [Background Art]

[0002] In some companies, it may be common to have a large number of scripts written in various programming languages such as Python, Node, and C#. These scripts perform different functions and can operate in separate environments. However, managing the execution of these scripts across different environments can be a difficult task. The problem can lie in the fact that these scripts use different technologies, each with its own unique requirements. For example, some scripts require a specific runtime or software development kit (SDK), while others may rely on a specific database connection or scheduling software.

[0003] Due to these various technical requirements, the automation and orchestration of script execution can become complicated. Each script requires its own environment setup, which includes installation of necessary runtimes, SDKs, or other dependencies. In addition, coordinating the scheduling and monitoring of these scripts across different environments can be time-consuming and / or error-prone. [Summary of Invention]

[0004] Embodiments of the present invention disclose a method for managing multiple heterogeneous automation scripts with dynamic environment preparation. Specifically, the method involves enabling a user to upload scripts to a centralized script manager. The uploaded scripts are then parsed to determine the necessary runtime environment and library resources required for successful execution. After resolving script dependencies, the optimal machine on the centralized server is selected for automation. The selected machine is equipped with the required runtime environment and library resources, which are automatically installed.

[0005] A first aspect of the present invention provides a method for managing heterogeneous automation scripts, the method comprising: a step of a script orchestrator engine analyzing a script uploaded by a user to a centralized script manager to identify a set of runtime environment and library resources for the script required for the script's successful execution; a step of the script orchestrator engine resolving a set of dependencies for the script based on the analysis step; a step of the script orchestrator engine selecting the optimal machine on a centralized server for automating the script based on the runtime environment and dependencies; and a step of automatically installing the runtime environment and library resources for the script on the optimal machine.

[0006] A second aspect of the present invention provides a computing system for managing heterogeneous automation scripts, the system comprising a processor; a memory device coupled to the processor; and a computer-readable storage device coupled to the processor, the storage device having program code executable by the processor via the memory device, the program code for implementing a method, the method comprising the steps of: a script orchestrator engine analyzing a script uploaded by a user to a centralized script manager to identify a set of runtime environment and library resources for the script required for the script's successful execution; the script orchestrator engine resolving a set of dependencies for the script based on the analysis step; the script orchestrator engine selecting the optimal machine on a centralized server for automating the script based on the runtime environment and dependencies; and automatically installing the runtime environment and library resources for the script on the optimal machine.

[0007] A third aspect of the present invention provides a computer program product for managing heterogeneous automation scripts, the computer program product comprising a computer-readable storage device and program instructions stored on the computer-readable storage device, the program instructions comprising: a script orchestrator engine that analyzes a script uploaded by a user to a centralized script manager to identify a set of runtime environment and library resources for the script required for the script's successful execution; the script orchestrator engine that resolves a set of dependencies for the script based on the analysis; the script orchestrator engine that selects the optimal machine on a centralized server for automating the script based on the runtime environment and dependencies; and the script orchestrator engine that automatically installs the runtime environment and library resources for the script on the optimal machine. [Brief explanation of the drawing]

[0008] [Figure 1] A block diagram is shown illustrating an example of an environment for executing at least a portion of the computer code involved in carrying out the method of the present invention according to embodiments of the present invention.

[0009] [Figure 2] A block diagram of a system architecture involved in carrying out the method of the present invention according to an embodiment of the present invention is shown.

[0010] [Figure 3] This diagram shows a flow diagram for managing multiple heterogeneous automation scripts with dynamic environment preparation according to an embodiment of the present invention.

[0011] [Figure 4] This document shows a high-level flow diagram for managing multiple heterogeneous automation scripts with dynamic environment preparation, according to an embodiment of the present invention. [Modes for carrying out the invention]

[0012] Various aspects of this disclosure are described by explanatory text, flowcharts, block diagrams of computer systems, and / or block diagrams of machine logic included in embodiments of computer program products (CPPs). With respect to any flowchart, depending on the technology involved, operations may be performed in a different order than those shown in a given flowchart. For example, again, depending on the technology involved, two operations shown in consecutive blocks of a flowchart may be performed in reverse order, as a single integrated step, simultaneously, or with at least partial time overlap.

[0013] Embodiments of a computer program product ("CPP Embodiment" or "CPP") are terms used in this disclosure to describe any set of one or more storage media ("mediums") that are collectively comprised of one or more storage devices that collectively contain machine-readable code corresponding to instructions and / or data for performing computer operations specified in a given CPP claim. "Storage device" is any tangible device capable of holding and storing instructions for use by a computer processor. Computer-readable storage media may, but are not limited to, electronic storage media, magnetic storage media, optical storage media, electromagnetic storage media, semiconductor storage media, mechanical storage media, or any preferred combination thereof. Some known types of storage devices, including these media, include diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), compact disc read-only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, mechanically encoded devices (such as pits / lands formed on the main surface of a punch card or disk), or any suitable combination of those described above. When the term "computer-readable storage medium" is used in this disclosure, it shall not be interpreted as storage in the form of a transient signal itself, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides, optical pulses passing through optical fiber cables, electrical signals communicated through wires, and / or other transmission media.As those skilled in the art will understand, data is typically moved at several intermittent points during the normal operation of a storage device, such as during access, defragmentation, or garbage collection. However, since data is not transient while it is stored, this does not mean that the storage device is transient.

[0014] The computing environment 100 in Figure 1 includes an example of an environment for executing at least a portion of the computer code involved in performing the method of the present invention, such as the management of multiple heterogeneous automation scripts 190 with dynamic environment preparation. In addition to block 190, the computing environment 100 includes, for example, a computer 101, a wide area network (WAN) 102, an end user device (EUD) 103, a remote server 104, a public cloud 105, and a private cloud 106. In this embodiment, the computer 101 has a processor set 110 (including processing circuits 120 and a cache 121), a communication fabric 111, volatile memory 112, persistent storage 113 (including the operating system 122 and block 190 as identified above), a peripheral device set 114 (including a user interface (UI) device set 123, storage 124, and an Internet of Things (IoT) sensor set 125), and a network module 115. The remote server 104 includes a remote database 130. The public cloud 105 includes a gateway 140, a cloud orchestration module 141, a host physical machine set 142, a virtual machine set 143, and a container set 144.

[0015] Computer 101 may take the form of a desktop computer, laptop computer, tablet computer, smartphone, smartwatch, or other wearable computer, mainframe computer, quantum computer, or any other form of computer or mobile device, currently known or to be developed in the future, that can run programs, access networks, or query databases such as remote database 130. As is well understood in the field of computer technology, and depending on the technology, the execution of a computer implementation may be distributed among multiple computers and / or multiple locations. On the other hand, in this presentation of computing environment 100, in order to keep the presentation as simple as possible, the detailed discussion focuses on a single computer, specifically computer 101. Although computer 101 is not shown in the cloud in Figure 1, it may be located in the cloud. On the other hand, computer 101 is not required to be located in the cloud, except to any extent that can be definitively shown.

[0016] The processor set 110 includes one or more computer processors of any type currently known or to be developed in the future. The processing circuitry 120 may be distributed across multiple packages, for example, multiple coordinated integrated circuit chips. The processing circuitry 120 may implement multiple processor threads and / or multiple processor cores. The cache 121 is memory located within the processor chip package and is typically used for data or code that should be available for high-speed access by threads or cores running on the processor set 110. The cache memory is typically organized into multiple levels depending on its relative proximity to the processing circuitry. Alternatively, some or all of the cache for the processor set may be located "off-chip". In some computing environments, the processor set 110 may operate with qubits and be designed to perform quantum computing.

[0017] Computer-readable program instructions are typically loaded onto computer 101, causing the processor set 110 of computer 101 to execute a series of operational steps, thereby enabling the computer implementation method. As a result, the instructions thus executed instantiate the method specified in the flowcharts and / or descriptions of the computer implementation method contained herein (collectively referred to as the "Method of the Invention"). These computer-readable program instructions are stored in various types of computer-readable storage media, such as cache 121 and other storage media discussed below. The program instructions and associated data are accessed by the processor set 110 to control and direct the execution of the Method of the Invention. In computing environment 100, at least some of the instructions for executing the Method of the Invention may be stored in block 190 in persistent storage 113.

[0018] The communication fabric 111 is a signal conduction path that enables various components of the computer 101 to communicate with one another. Typically, this fabric is made up of switches and conductive paths, such as buses, bridges, physical input / output ports, and similar components. Other types of signal communication paths, such as optical fiber communication paths and / or wireless communication paths, may be used.

[0019] Volatile memory 112 is any type of volatile memory currently known or to be developed in the future. Examples include dynamic type random access memory (RAM) or static type RAM. Volatile memory typically features random access, but this is not mandatory unless explicitly stated. In computer 101, volatile memory 112 is located in a single package and resides inside computer 101, but alternatively or additionally, volatile memory may be distributed across multiple packages and / or located externally to computer 101.

[0020] The persistent storage 113 is any form of non-volatile storage for a computer, currently known or to be developed in the future. The non-volatility of this storage means that the stored data is maintained regardless of whether power is supplied to the computer 101 and / or directly to the persistent storage 113. The persistent storage 113 may be read-only memory (ROM), but typically at least a portion of the persistent storage allows for writing, deleting, and rewriting of data. Some well-known forms of persistent storage include magnetic disks and solid-state storage devices. The operating system 122 can take multiple forms, such as various known proprietary operating systems or open-source portable operating system interface type operating systems employing a kernel. The code contained in block 190 typically includes at least a portion of computer code involved in performing the method of the present invention.

[0021] The peripheral device set 114 includes a set of peripheral devices for the computer 101. Data communication connections between the computer 101's peripheral devices and other components can be implemented in various ways, including Bluetooth connections, Near-Field Communication (NFC) connections, connections made by cables (such as universal serial bus (USB) type cables), insert-type connections (e.g., secure digital (SD) cards), connections made through local area communication networks, and even connections made through wide area networks such as the internet. In various embodiments, the UI device set 123 may include components such as a display screen, speaker, microphone, wearable devices (such as goggles and smartwatches), keyboard, mouse, printer, touchpad, game controller, and haptic devices. Storage 124 is external storage such as an external hard drive, or insertable storage such as an SD card. Storage 124 may be persistent and / or volatile. In some embodiments, storage 124 may take the form of a quantum computing memory device for storing data in the form of qubits. In embodiments where computer 101 is required to have a large amount of storage (for example, when computer 101 locally stores and manages a large database), this storage may be provided by peripheral storage devices designed to store very large amounts of data, such as a storage area network (SAN) shared by multiple geographically distributed computers. The IoT sensor set 125 consists of sensors that can be used in Internet of Things applications. For example, one sensor may be a thermometer and another a motion sensor.

[0022] The network module 115 is a collection of computer software, hardware, and firmware that enables computer 101 to communicate with other computers via the WAN 102. The network module 115 may include hardware such as a modem or Wi-Fi signal transceiver, software for packetizing and / or depacketizing data for communication network transmission, and / or web browser software for communicating data over the Internet. In some embodiments, the network control and network forwarding functions of the network module 115 are performed on the same physical hardware device. In other embodiments (e.g., embodiments utilizing Software-Defined Networking (SDN)), the control and forwarding functions of the network module 115 are performed on physically separate devices, such that the control function manages multiple different network hardware devices. Computer-readable program instructions for performing the method of the present invention can typically be downloaded to computer 101 from an external computer or external storage device via a network adapter card or network interface included in the network module 115.

[0023] WAN102 is any wide area network (e.g., the Internet) capable of transmitting computer data over non-local distances using any currently known or future-developed technology for transmitting computer data. In some embodiments, the WAN may be replaced and / or supplemented by a local area network (LAN), such as a Wi-Fi network, designed to transmit data between devices located in a local area. The WAN and / or LAN typically include computer hardware such as copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and edge servers.

[0024] An end user device (EUD) 103 is any computer system used and controlled by an end user (for example, an enterprise customer operating a computer 101), and may take any of the forms described above in connection with the computer 101. The EUD 103 normally receives useful and beneficial data from the operation of the computer 101. For example, in the hypothetical case where the computer 101 is designed to provide recommendations to an end user, the recommendation will typically be communicated from the network module 115 of the computer 101 to the EUD 103 through the WAN 102. In this way, the EUD 103 can display or otherwise present the recommendation to the end user. In some embodiments, the EUD 103 may be a client device such as a thin client, a heavy client, a mainframe computer, a desktop computer, and the like.

[0025] A remote server 104 is any computer system that provides at least some data and / or functions to the computer 101. The remote server 104 may be controlled and used by the same entity that operates the computer 101. The remote server 104 represents a machine that collects and stores useful and beneficial data for use by other computers such as the computer 101. For example, in the hypothetical case where the computer 101 is designed and programmed to provide recommendations based on historical data, the historical data may in this case be provided to the computer 101 from a remote database 130 of the remote server 104.

[0026] The public cloud 105 is any computer system available for use by multiple entities that provides on-demand availability of computer system resources and / or other computer capabilities, in particular data storage (cloud storage) and computing power, without direct active management by a user. Cloud computing typically leverages resource sharing to achieve coherence and economies of scale. Direct active management of the computing resources of the public cloud 105 is performed by computer hardware and / or software of the cloud orchestration module 141. The computing resources provided by the public cloud 105 are typically implemented by virtual computing environments executed on various computers that constitute the computers of a host physical machine set 142, which is a universe of physical computers located within and / or available to the public cloud 105. A virtual computing environment (VCE) typically takes the form of virtual machines from a virtual machine set 143 and / or containers from a container set 144. It is understood that these VCEs are stored as images and can be transferred among and between various physical machine hosts, either as images or after instantiation of the VCE. The cloud orchestration module 141 manages the transfer and storage of images, deploys new instantiations of VCEs, and manages active instantiations of VCE deployments. The gateway 140 is a collection of computer software, hardware, and firmware that enables the public cloud 105 to communicate through the WAN 102.

[0027] Here, some further explanation of virtualized computing environments (VCEs) is provided. A VCE can be stored as an "image." A new active instance of a VCE can be instantiated from an image. Two well-known types of VCEs are virtual machines and containers. A container is a VCE that uses operating system-level virtualization. This refers to an operating system feature where the kernel allows for the existence of multiple isolated user-space instances called containers. These isolated user-space instances typically behave like actual computers in terms of the programs running within them. Computer programs running on a normal operating system can utilize all of that computer's resources, including connected devices, files and folders, network shares, CPU power, and quantifiable hardware capabilities. However, programs running inside a container can only use the contents of the container and the devices allocated to the container; this feature is known as containerization.

[0028] The private cloud 106 is similar to the public cloud 105, except that its computing resources are available only for use by a single enterprise. While the private cloud 106 is shown communicating with the WAN 102, in other embodiments, the private cloud may be completely isolated from the internet and accessible only through a local / private network. A hybrid cloud is a combination of multiple clouds of different types (e.g., private, community, or public cloud types), often implemented by different vendors. Each of the multiple clouds remains a separate, discrete entity, but the larger hybrid cloud architecture is bound together by standardized or proprietary technologies that enable orchestration, management, and / or data / application portability between the multiple configuration clouds. In this embodiment, both the public cloud 105 and the private cloud 106 are part of a larger hybrid cloud.

[0029] In this disclosure, the terms “a,” “an,” or “the” are intended to include plural forms unless otherwise explicitly indicated in the context. Furthermore, where the terms “includes,” “including,” “comprises,” “comprising,” “have,” or “having” are used in this disclosure, they specify the presence of the described element, but do not preclude the presence or addition of other elements.

[0030] Embodiments of the present invention disclose a method for managing multiple heterogeneous automation scripts with dynamic environment preparation. Specifically, the method involves enabling a user to upload scripts to a centralized script manager. The uploaded scripts are then parsed to determine the necessary runtime environment and library resources required for successful execution. After resolving script dependencies, the optimal machine on the centralized server is selected for automation. The selected machine is equipped with the required runtime environment and library resources, which are automatically installed.

[0031] As used herein, the term “script” refers to a set of instructions or commands written in a programming or scripting language. It is typically used to automate tasks, perform specific actions, or execute a series of predefined actions. Scripts can be written in a variety of languages, including, among others, Python, JavaScript, Shell, and PowerShell. They are commonly used in software development, system administration, data processing, and other fields where the automation of repetitive or complex tasks is required. Scripts are executable by interpreters or runtime environments, which interpret and execute instructions sequentially or as specified.

[0032] The proposed method offers several advantages to developers and organizations seeking to automate tasks and streamline those processes. One key advantage is that it leverages developers' existing knowledge, allowing them to code bots using languages ​​and frameworks they already know. This not only saves time and effort in learning new technologies but can also enable developers to work more efficiently and effectively by utilizing their existing skills.

[0033] Another advantage is the existence of a centralized control room for managing deployments. This eliminates the need to duplicate scripts across multiple machines and duplicate triggers for executing those scripts. Using a centralized control room, administrators can easily manage and monitor script execution, thereby ensuring consistency and avoiding the risk of errors or inconsistencies that can arise from manual duplication.

[0034] Seamless deployment options across multiple environments are another key advantage of this approach. It allows deployment across different operating systems and configurations without the need to replicate or recreate deployment configurations or environments. This flexibility simplifies the process of scaling and adapting automation solutions to different environments, saving developers and administrators time and effort.

[0035] Furthermore, the proposed approach could enable the creation of a marketplace where developers can share and sell new libraries for use, provided they adhere to a pre-established framework. This marketplace can foster collaboration and innovation, allowing developers to share their expertise and provide value-added libraries that can improve the functionality and capabilities of automation scripts. Customers can also add their existing scripts to the system without the hassle of migrating to different technologies or languages, thereby accelerating their return on investment (ROI). The system is designed to run these scripts seamlessly, enabling customers to build upon their existing solutions and leverage their existing investments. This eliminates the need for extensive rework or redevelopment, allowing organizations to quickly deploy the automation framework and begin realizing its benefits.

[0036] Figure 2 shows a block diagram of one or more components of a system environment 200 serviced by a script orchestrator engine 250 according to one embodiment of the present disclosure. According to some embodiments, the script orchestrator engine 250 is configured to provide centralized script automation and orchestration with dynamic environment preparation. As shown, the script orchestrator engine 250 includes an installation and configuration module 260, a client installation module 262, a script analysis module 264, an automation behavior module 266, a machine selection module 268, and an agent control module 270.

[0037] As used herein, “engine” may refer to a hardware processing circuit, which may include any or any combination thereof, of a microprocessor, a core of a multicore microprocessor, a microcontroller, a programmable integrated circuit, a programmable gate array, a digital signal processor, or another hardware processing circuit. Alternatively, “engine” may refer to a combination of a hardware processing circuit and machine-readable instructions (software and / or firmware) executable on said hardware processing circuit.

[0038] The functionality of the Script Orchestrator Engine 250 is described below with reference to Figure 3. The Installation and Configuration Module 260 is configured to install and configure a centralized server on-premises. Users may opt in to using the Script Orchestrator Engine 250 by actively indicating their interest or agreement. Opt-in is performed via a user interface, such as a web portal or application, where the user is presented with the option to opt in. The user interface may provide clear information regarding the benefits, functions, and impacts of opting in. It may outline the advantages of using the Script Orchestrator Engine 250, such as improved automation efficiency, enhanced script management, and reduced manual work. Users may be required to read and accept the Terms of Use and / or associated Privacy Policy. Once a user reviews the information and agrees to participate, they may proceed with the formal opt-in procedure in accordance with the provided instructions. This may involve clicking a button or checkbox to indicate consent, or completing a registration process. After opting in, in 302, the user can obtain access to the features and functions of the (web) server and the script orchestrator engine 250.

[0039] When a user opts in, the installation and configuration module 260 is configured to set up the necessary infrastructure. This can begin by installing the required components, including an application programming interface (API), a database, a web client environment, and / or a repository for storing scripts. Depending on the system architecture, these components may be installed as a complete setup or as separate services running within a container, thereby providing flexibility and scalability. During the installation process, the installation and configuration module 260 may ensure that all dependencies and prerequisites are met. To that end, it may verify that the required software versions are compatible and properly installed.

[0040] The installation and configuration module 260 is further configured to perform any necessary configurations, such as setting up network connectivity and security measures. Once the installation is complete, the installation and configuration module 260 can proceed to configure the server. This may involve setting up API endpoints, establishing database connections, and / or configuring the web client environment. It ensures that the server is properly configured to handle incoming requests, store and retrieve data from the database, and provide a user-friendly interface for managing scripts and automations. To that end, it may set up network connectivity, verify internet access, and / or apply necessary security measures such as firewalls and secure communication protocols. In addition, the installation and configuration module 260 may provide options for customizing the server settings based on user preferences. This may include configuring authentication and access control mechanisms, defining resource limits, and / or enabling specific features and integrations.

[0041] The client installation module 262 is configured to install the client on the user's machine. For this purpose, the client installation module 262 may provide a setup interface that presents a user-friendly interface to the user, thereby allowing the user to select the specific runtime required for the user application. The client installation module 262 can ensure that the client has the necessary software tools and libraries essential for the effective execution of tasks. Trigger tools may enable the client to respond to specific events or conditions, while monitoring tools may provide insights and alerts regarding the application's performance and health. Orchestration tools may help the client manage and automate complex workflows and tasks. Based on the user's selections in the setup interface, the module may determine which software tools and libraries to install. For example, if the user selects a runtime for a Python application, the module may infer that trigger, monitoring, and orchestration tools related to Python development are required. An agent is always running on the client machine to ensure uninterrupted and reliable communication between the client and server. This agent acts as an intermediary, facilitating the smooth exchange of data and commands between the client and server. Its primary function is to ensure that clients remain connected and responsive, thereby enabling real-time updates and timely task execution. As used herein, the term “runtime” refers to the execution environment on which a software application or script is run. It provides the resources and services necessary for code execution and enables the smooth execution of the program.

[0042] The script parsing module 264 is configured in 304 and 306 to parse scripts uploaded to the server by the user. The purpose is to investigate the requirements of the script and determine the necessary components and dependencies required to ensure successful execution. To this end, the script parsing module 264 may employ various techniques and algorithms. For example, it may begin by parsing the script to identify any specific language or framework being used. This information can help the module understand the context and requirements of the script. In one embodiment, in 308 and 310, the script parsing module 264 may identify any missing components and install them on the server, thereby satisfying the components required for successful execution.

[0043] Next, the script analysis module 264 may analyze the script's code structure and syntax to identify any external libraries or modules on which the script relies. It may scan the code and look for import statements, function calls, or any other indicators of external dependencies. Once the script analysis module 264 identifies external dependencies, it may compare them against a predefined database of known libraries and modules. This database may contain information about specific versions, compatibility, and / or installation procedures for each dependency. The script analysis module 264 may then cross-reference the identified dependencies with available resources on the server. It may check whether the required components are already installed and up-to-date. If any dependencies are missing or outdated, the script analysis module 264 may flag them as requirements for the script to run correctly.

[0044] In one embodiment, the script analysis module 264 is further configured to consider any configuration files or metadata associated with the script. The script analysis module 264 may examine these files to gather additional information about the script's requirements, such as database connections, API keys, or specific environment variables. Based on this analysis, the script analysis module 264 may generate a report outlining the necessary components and dependencies required for the script to run successfully. This report may include a list of libraries, specific versions, and installation instructions. The script analysis module 264 may also provide recommendations for resolving any compatibility issues or conflicts between different dependencies. It may suggest alternative libraries or versions that are more compatible with the script's requirements.

[0045] The automation behavior module 266 is configured to allow the user to select behaviors for automation, such as triggers and schedules. These behaviors can determine when and how an automation script should be executed. However, not all behaviors may be suitable for all machines or environments. Therefore, the automation behavior module 266 can analyze combinations of these behaviors and script preconditions and suggest the optimal machine for executing the automation. To this end, the automation behavior module 266 can examine predefined triggers, which are events or conditions that initiate the execution of an automation script. Examples of triggers may include a specific time, the creation or modification of a file, or a change in a database. The automation behavior module 266 can examine the script preconditions and dependencies identified by the script analysis module 264 and ensure that the selected triggers are compatible with the required resources.

[0046] Next, the automation behavior module 266 can evaluate a predefined schedule that determines the frequency and timing of script execution. It may consider factors such as the expected workload, the availability of required resources, and any potential conflicts with other scheduled tasks. By analyzing the script's prerequisites and dependencies, the automation behavior module 266 can ensure that the selected schedule is aligned with optimal machine availability and capacity. The automation behavior module 266 can then combine the selected triggers and schedule to create a comprehensive automation behavior plan. It may evaluate the script's resource requirements, including CPU, memory, storage, and network connectivity. It may also consider any specific software tools or libraries on which the script relies.

[0047] Based on this analysis of the script selected in 314, the automation behavior module 266 may suggest the optimal machine that can meet the requirements of the selected automation behavior and script prerequisites. In other words, it may create a deployment in 312. For that purpose, it may consider the machines available in the environment, their specifications, and their current workload. Creating a deployment refers to the process of setting up and managing a software application or service on a server or cloud infrastructure. It involves configuring and organizing all necessary resources, such as servers, databases, and networking components, to ensure that the application runs smoothly and is accessible to users.

[0048] The automation behavior module 266 may also consider factors such as processing power, memory capacity, and network connectivity to ensure efficient and reliable script execution. In addition, the automation behavior module 266 may provide recommendations or warnings if the selected automation behavior and script prerequisites are incompatible with the available machine. It may suggest alternative behavior or recommend upgrading the machine's resources to ensure optimal execution. By analyzing combinations of automation behavior, script prerequisites, and available resources, the automation behavior module 266 can help users make informed decisions regarding the optimal machine for running their automations. This ensures that the selected behavior is consistent with the machine's capabilities and processing power, resulting in efficient and reliable script execution.

[0049] The machine selection module 268 is configured to present the user with a suggestion for the most suitable machine. Upon receiving this suggestion, the user has the option to accept the suggested machine or select a different machine. If the user agrees to the suggestion, the machine selection module 268 may proceed to verify whether the selected machine meets the prerequisites for the automation script. It may compare the specifications and capabilities of the selected machine to the requirements identified in the script's prerequisites and dependencies. These prerequisites may include factors such as the operating system version, available software tools, required storage capacity, or network connectivity. If the selected machine meets all prerequisites, the machine selection module 268 may proceed to execute the automation script on the selected machine. For example, if a C# script requires the ".NET" runtime, the machine selection module 268 may identify machines that already have it installed and provide the option to deploy the script to those machines, thereby minimizing idle time and reducing dependency duplication.

[0050] However, if the selected machine does not meet the prerequisites, the machine selection module 268 may prompt the user to take appropriate action. It may suggest preparing the environment by installing required software, updating the operating system, or allocating additional resources to the machine. The machine selection module 268 may provide guidance on how to meet the prerequisites to ensure the successful execution of the script. Alternatively, if the user decides to select a different machine, the machine selection module 268 may, in 316, allow the user to browse the available machines in the environment. It may provide information on the specifications, current workload, and availability of each machine. Based on this information, the user can make an informed decision and select a machine that is consistent with the prerequisites of the automation script. Once a new machine is selected, the machine selection module 268 may, in 318, repeat the verification process to ensure that the selected machine meets all prerequisites. If applicable, in 322, the machine selection module 268 may proceed to execute the automation script on the newly selected machine. If not applicable, in 320, it may prompt the user to prepare the environment or select a different machine until a suitable machine is found.

[0051] The agent control module 270 is configured to control all communication between the runtime and the server. Acting as an intermediary, the agent control module 270 can provide the tools and functions necessary for the runtime to securely access data, parameters, and authentication information. The agent control module 270 can enable the runtime to securely access data and parameters requested for automation scripts. It can ensure that the runtime has appropriate permissions and authentication to access sensitive information. To this end, the agent control module 270 can implement encryption protocols and authentication mechanisms to establish a secure connection between the runtime and the server and protect data in transmission.

[0052] In one embodiment, once a computer is selected, the agent control module 270 may, in 324, present the user with an option to select an execution method. This step allows the user to determine how they want the desired script to run on the selected computer. The execution method may vary depending on the user's preferences and the specific requirements of the script. After selecting the execution method, the next step, in 326, may involve installing any necessary client-side components on the selected computer. These components are essential for the script to function properly and may allow the user to interact with and utilize its features. The installation process may typically involve downloading the necessary files and configuring them to work seamlessly with the computer's operating system. Once the client-side components are successfully installed, the selected computer is ready to run the script at this point.

[0053] In addition, the agent control module 270 can manage the storage and retrieval of authentication information. It can securely store and manage authentication information such as usernames, passwords, and API keys, ensuring that they are accessible at runtime when needed. By centralizing the storage of authentication information, the module enhances security and simplifies the authentication process for runtime. The agent control module 270 can also handle different triggers for automation scripts, such as new emails, incoming HTTP requests, or changes in file state. It can monitor these triggers at 328 and continuously check for any events that should trigger the execution of the script. When a trigger event occurs, at 330, the agent control module 270 notifies the appropriate runtime, thereby ensuring that the components are configured to execute the script and that the script is executed quickly in response to the trigger at 332 and 334. The system then returns to a waiting state at 336, ready to respond to future triggers.

[0054] The disclosed method may provide a framework that enables users to create new libraries. Users can download blueprints from the framework and extend them to develop their own libraries. For example, if a user has written image processing code that extracts information from a driver's license using a photograph, the user can use the framework blueprint to build a library using this code. This eliminates the need to duplicate code in all scripts, ensuring an efficient and streamlined development process. Once created, the library can be consumed by clients as an API and used in different programming languages.

[0055] Furthermore, the server can be configured to monitor all script activity. This monitoring function involves tracking various parameters such as execution time, errors, and output. The collected data is then stored in a centralized database, making it easily accessible and analyzable. Users can leverage this data to identify and address problems, optimize script performance, and gain valuable insights. In addition, the server can generate reports and notifications based on the recorded data, providing users with real-time updates on the status and progress of scripts. This centralized monitoring and recording system improves the overall efficiency, reliability, and continuous improvement of the system.

[0056] Figure 4 shows a flowchart diagram 400 for managing multiple heterogeneous automation scripts with dynamic environment preparation. At 402, the installation and configuration module 260 installs and configures the centralized server on-premises. This step sets up the infrastructure for the automation system. At 404, the client installation module 262 installs the client on the user's machine. This step allows the user to interact with the automation system from their own machine. At 406, the script analysis module 264 analyzes the scripts uploaded to the server by the user. This step examines the scripts provided by the user that will be used for automation. At 408, the automation behavior module 266 allows the user to select behaviors for automation. This step allows the user to customize the actions and behaviors of the automation system according to the user's requirements. At 410, the machine selection module 268 presents the user with suggestions regarding the optimal machine. This step recommends the machine best suited for running the automation scripts, taking into account factors such as performance and availability.

[0057] The steps shown in Figures 3 and 4 are not necessarily performed in the order shown, and some steps may be performed simultaneously or in a different order than shown. The flowchart diagrams are intended to illustrate, and not limit, the general flow of the method. Additional steps may be added or some steps may be omitted without departing from the scope of the invention. The steps may be performed by a computer program or by a combination of hardware and software. The flowchart diagrams may be implemented using any preferred programming language or tool.

[0058] The descriptions of various embodiments of the present invention have been presented for illustrative purposes only and are not intended to be exhaustive or limit the scope to the disclosed embodiments. Many modifications and variations will become apparent to those skilled in the art without departing from the scope of the described embodiments. The terminology used herein has been selected to best describe the principles of the embodiments, their practical applications, or technical improvements to the art found in the market, or to enable other those skilled in the art to understand the embodiments disclosed herein.

Claims

1. A method for managing heterogeneous automation scripts, The script orchestrator engine analyzes the scripts uploaded by the user to the centralized script manager to identify the set of runtime environment and library resources required for the scripts to run correctly; The script orchestrator engine, based on the analysis step, resolves a set of dependencies on the script; The steps include: the script orchestrator engine selecting the optimal machine on the centralized server for automating the script based on the runtime environment and dependencies; and The step of automatically installing the runtime environment and library resources for the script onto the optimal machine. A computer implementation method comprising the following:

2. The stage of presenting a proposal for the optimal machine; and The script orchestrator engine receives a response indicating acceptance of the proposal. The method according to claim 1, further comprising:

3. The method according to claim 2, further comprising the step of establishing a process for executing the script on the optimal machine based on the response.

4. The method according to any one of the above claims, further comprising the step of the script orchestrator engine employing an application programming interface (API) to manage a set of agents that execute multiple automation scripts on client machines.

5. The method according to any one of the preceding claims, further comprising the step of the script orchestrator engine providing a downloadable framework that enables a user to create a new library.

6. The method according to any one of the preceding claims, wherein the step of parsing the script is performed by the script orchestrator engine based on the file extension and library import of the script, and dependencies on the script are automatically resolved.

7. The script orchestrator engine employs an API to manage a set of agents that execute multiple automation scripts on client machines; and The step in which one of the agents in the set of agents executes the script based on predefined conditions. The method according to any one of the preceding claims, further comprising:

8. A computing system for managing heterogeneous automation scripts, Processor; A memory device coupled to the aforementioned processor; and Computer-readable storage device coupled to the aforementioned processor The storage device comprises, the memory device having program code executable by the processor via the memory device, the program code for implementing the method, and the method is The script orchestrator engine analyzes the scripts uploaded by the user to the centralized script manager to identify the set of runtime environment and library resources required for the scripts to run correctly; The script orchestrator engine, based on the analysis step, resolves a set of dependencies on the script; The steps include: the script orchestrator engine selecting the optimal machine on the centralized server for automating the script based on the runtime environment and dependencies; and The step of automatically installing the runtime environment and library resources for the script onto the optimal machine. A computing system that includes this.

9. The aforementioned method, The stage of presenting a proposal for the optimal machine; and The script orchestrator engine receives a response indicating acceptance of the proposal. The computing system according to claim 8, further comprising:

10. The computing system according to claim 9, further comprising the step of the script orchestrator engine initiating a process for executing the script on the optimal machine based on the response.

11. The computing system according to claim 10, wherein the method further includes the step of the script orchestrator engine employing an API to manage a set of agents that execute a plurality of automation scripts on client machines.

12. The computing system according to any one of claims 8 to 11, further comprising the step of the script orchestrator engine providing a downloadable framework that enables a user to create a new library.

13. The computing system according to any one of claims 8 to 12, wherein the step of analyzing the script is performed by the script orchestrator engine based on the file extension and library import of the script, and dependencies on the script are automatically resolved.

14. The aforementioned method, The script orchestrator engine employs an API to manage a set of agents that execute multiple automation scripts on client machines; and The step in which one of the agents in the set of agents executes the script based on predefined conditions. A computing system according to any one of claims 8 to 13, further comprising:

15. A computer program product for managing heterogeneous automation scripts, comprising a computer-readable storage device and program instructions stored on the computer-readable storage device, wherein the program instructions are The script orchestrator engine analyzes scripts uploaded by users to a centralized script manager to identify the set of runtime environment and library resources required for the scripts to run correctly; The script orchestrator engine resolves the set of dependencies on the script based on the analysis performed; The script orchestrator engine selects the optimal machine on the centralized server for automating the script based on the runtime environment and dependencies; and The runtime environment and library resources for the script are automatically installed on the optimal machine. A computer program product intended for a specific purpose.

16. The system further comprises program instructions stored on the computer-readable storage device, and the program instructions are: We present a proposal for the optimal machine; and The script orchestrator engine receives a response indicating acceptance of the proposal. A computer program product according to claim 15, which is intended for the purpose of...

17. The computer program product according to claim 16, further comprising program instructions stored on the computer-readable storage device, wherein the program instructions are for the script orchestrator engine to initiate a process for executing the script on the optimal machine based on the response.

18. The computer program product according to any one of claims 15 to 17, further comprising program instructions stored on the computer-readable storage device, wherein the program instructions are for the script orchestrator engine to employ an API to manage a set of agents that execute a plurality of automation scripts on client machines.

19. The computer program product according to any one of claims 15 to 18, further comprising program instructions stored on the computer-readable storage device, wherein the program instructions are for providing a downloadable framework that enables the script orchestrator engine to create new libraries.

20. The computer program product according to any one of claims 15 to 19, wherein the procedure for analyzing the script is performed by the script orchestrator engine based on the file extension and library import of the script, and dependencies on the script are automatically resolved.