Modular decomposition and combination of container software management clusters in hybrid clouds

By generating and using software operators to analyze and replicate the code and configuration of the control software cluster, the problem of lack of overall disaster recovery solutions in hybrid cloud environments is solved, and efficient replication and management of software clusters in different environments is achieved.

CN119816811APending Publication Date: 2025-04-11INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380043664.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-06-13
Filing Date
2023-06-06
Publication Date
2025-04-11

AI Technical Summary

Technical Problem

The prior art lacks overall disaster recovery solutions when deploying software clusters in hybrid cloud environments, and the migration process requires manual intervention, requires in-depth technology stack knowledge, and lacks modular components with management overhead.

Method used

By generating software operators for modular functions related to the control software cluster, analyzing the code and configuration of the control software cluster, determining software configuration requirements, and creating templates based on these requirements and analysis of the target environment to achieve replication of the software cluster in another computing environment.

Benefits of technology

Provides a unified solution that enables the overall replication of software clusters, simplifies architecture, reduces manual intervention, improves management efficiency, and supports the selection of modular components.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119816811A_ABST
    Figure CN119816811A_ABST
Patent Text Reader

Abstract

Copying a software cluster including control software and containers in another computing environment may include software operators that may be generated in relation to modular functionality of the control software cluster. Software operators are derived by analyzing the control software clusters. The software operators are also exported by analyzing code of a control software cluster including the container and by analyzing a software configuration for the control software cluster. Generation of the software operators may include, at least in part, determining software configuration requirements for controlling the software cluster. The generation of the software operators includes, at least in part, creating a template for controlling the software cluster based on the determined software configuration requirements and an analysis of another software computing environment. All or portion of the software operators that control the software cluster may be replicated in another software computing environment.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] The present disclosure relates to using control software to replicate a software cluster including containers to another computing environment, such as a hybrid cloud computing environment.

[0002] exist In an environment, there are known methods for migration, backup / restore, and cloning using pod instantiation of foreign clusters and peering between clusters through a UI (user interface) level abstraction layer. Problems associated with the above methods may include the lack of an overall disaster recovery solution available in multiple deployment scenarios. In another example, a known solution may require a pre-existing target cluster to be in place. In another example, the execution of the migration may require active manual intervention. Other examples may include requiring deep skill knowledge of the technology stack, and the solution may lack modular components of functionality. In another example, a known solution lacks a way to manage overhead, for example, more components require more management, and to manage resource overhead, for example, more components consume more resources.

[0003] In one example, disaster recovery can use cloud resources. Creating a plan that takes into account a multi-cloud environment can be complex because each cloud platform may have its own unique disaster recovery plan. In one example, a disaster recovery plan can include an on-premises deployment with containers as a service; a public cloud container service; or a container-based platform as a service (PaaS). Some enterprises use more than one type of deployment. Each approach has some container recovery capabilities built in, but no one approach provides a total solution. Management software for deploying containers in disaster recovery (such as ) can include a careful evaluation of various Kubernetes solutions, where different answers to the questions may apply to each cloud environment. Containers can represent a new shared responsibility switch in the public cloud, without always clearly defined boundaries or identified gaps. Orchestrating containers at scale can make things more challenging. Vendors can be responsible for maintaining a control plane that runs across availability zones to achieve resiliency. Additional solutions may be needed to accomplish this, leveraging other services or third-party tools. Disaster recovery. Greater shared responsibility, transparency, and simplicity can help bring clarity to other aspects of cloud strategy. Summary of the invention

[0004] The present disclosure recognizes the shortcomings and problems associated with current techniques for deploying software clusters in hybrid cloud environments.

[0005] According to a preferred embodiment of the present invention, a unified solution for deploying software clusters in a hybrid cloud environment is provided, which can be executed in an integrated manner (e.g., using operators) and provides users with the flexibility to select use cases in a modular manner. Thus, the overall architecture is simplified (e.g., from multiple solutions to one solution for a use case).

[0006] In one aspect of the invention, a computer-implemented method for using control software to copy a software cluster including a container to another computing environment includes using a computer to generate software operators associated with modular functions of the control software cluster. The software operators are derived by analyzing the control software cluster, which includes the container in the software computing environment. The software operators are also derived by analyzing the code of the control software cluster including the container and by analyzing the software configuration for the control software cluster. The generation of the software operators at least in part includes determining software configuration requirements for the control software cluster. The control software cluster includes a container for running the software operator of the control software cluster in another software computing environment. The generation of the software operators at least in part includes analyzing another software computing environment for running the software operator of the control software cluster. The generation of the software operators at least in part includes creating a template for the control software cluster based on the determined software configuration requirements and the analysis of the other software computing environment. The template includes data for custom resource definitions for running the software operator in the other software computing environment. The method includes copying all or part of the software operator of the control software cluster in another software computing environment based on the analysis of the other software computing environment and the software configuration requirements.

[0007] According to one embodiment, the analyzing of the other software computing environment includes comparing the configuration requirements of the control software cluster with the other software computing environment.

[0008] According to one embodiment, the method further comprises receiving, at the computer, from an operator, a selection of components of the software computing environment for generation of the software operator.

[0009] According to one embodiment, the method further includes analyzing the software operators to determine a hierarchy for each of the software operators; and recreating an instance of the control software cluster in another software computing environment based on the hierarchy.

[0010] According to one embodiment, the control software cluster is a running application in a computing environment, wherein the running application includes software code executed by a processor.

[0011] According to one embodiment, the software computing environment and the further software computing environment are different cloud computing environments.

[0012] According to one embodiment, the software operators are created in response to analysis of another software computing environment and creation of a template, and analysis of a container controlling a software cluster is used to determine a tier for each of the software operators.

[0013] According to one embodiment, the method further comprises using a computer to generate a model, the model comprising the following: updating a determination of software configuration requirements for the control software cluster; updating an analysis of another software computing environment for running software operators of the control software cluster; updating the generation of the software operators comprises at least in part updating a template created for the control software cluster based on the determined software configuration requirements and the analysis of the another software computing environment. The method comprises updating a copy of all or part of the software operators of the control software cluster in another software computing environment based on the updated analysis of the another software computing environment and the software configuration requirements.

[0014] According to one embodiment, the method further comprises iteratively generating the model to produce an updated model.

[0015] According to another aspect of the present invention, a system for replicating a software cluster in another computing environment using control software and containers, the system comprising: a computer system, comprising; a computer processor, a computer-readable storage medium, and program instructions stored on the computer-readable storage medium, the program instructions being executable by the processor so that the computer system performs the following functions: using a computer to generate software operators related to modular functions of a control software cluster, the software operators being derived by analyzing the control software cluster, the control software cluster comprising a container in a software computing environment, the software operators also being derived by analyzing a code of the control software cluster comprising the container and by analyzing a software configuration for the control software cluster; generating at least one of the software operators; Partly including determining software configuration requirements for a control software cluster, the control software cluster including a container for running a software operator of the control software cluster in another software computing environment; generation of the software operator at least partially including analyzing another software computing environment for running the software operator of the control software cluster; generation of the software operator at least partially including creating a template for the control software cluster based on the determined software configuration requirements and the analysis of another software computing environment, the template including data of a customized resource definition for running the software operator in another software computing environment; and based on the analysis of another software computing environment and the software configuration requirements, copying all or part of the software operator of the control software cluster in another software computing environment.

[0016] According to one embodiment, the analysis of the other software computing environment includes comparing the configuration requirements of the control software cluster to the other software computing environment.

[0017] According to one embodiment, the system further includes executing functionality for receiving, at the computer, a selection from an operator of a component of a software computing environment for generating a software operator.

[0018] According to one embodiment, the system further includes performing the following functions: analyzing the software operators to determine a hierarchy for each of the software operators; and recreating an instance of the control software cluster in another software computing environment based on the hierarchy.

[0019] According to one embodiment, the control software cluster is a running application in a computing environment, wherein the running application includes software code executed by a processor.

[0020] According to one embodiment, the software computing environment and the further software computing environment are different cloud computing environments.

[0021] According to one embodiment, the software operators are created in response to analysis of another software computing environment and creation of a template, and analysis of a container controlling a software cluster is used to determine a tier for each of the software operators.

[0022] In another aspect of the present invention, a computer program product for replicating a software cluster in another computing environment using control software and a container includes a computer-readable storage medium containing program instructions. The program instructions are executable by a computer to cause the computer to perform functions through the computer, the functions including: using a computer to generate a software operator related to modular functions of a control software cluster, the software operator being derived by analyzing the control software cluster, the control software cluster including a container in a software computing environment, the software operator also being derived by analyzing the code of the control software cluster including the container and by analyzing the software configuration for the control software cluster; the generation of the software operator at least partially includes determining software configuration requirements for the control software cluster, the control software cluster including a container for running the software operator of the control software cluster in another software computing environment; the generation of the software operator at least partially includes analyzing another software computing environment for running the software operator of the control software cluster; the generation of the software operator at least partially includes creating a template for the control software cluster based on the determined software configuration requirements and the analysis of another software computing environment, the template including data of a customized resource definition for running the software operator in another software computing environment; and based on the analysis of another software computing environment and the software configuration requirements, copying all or part of the software operator of the control software cluster in another software computing environment.

[0023] According to one embodiment, the analysis of the other software computing environment includes comparing the configuration requirements of the control software cluster to the other software computing environment.

[0024] According to one embodiment, the computer program product further comprises functionality for receiving, at the computer, a selection from an operator of components of a software computing environment for generation of a software operator.

[0025] According to one embodiment, the computer program product further comprises the functions of: analyzing the software operators to determine a hierarchy for each of the software operators; and recreating an instance of the control software cluster in another software computing environment based on the hierarchy. BRIEF DESCRIPTION OF THE DRAWINGS

[0026] Preferred embodiments of the present invention will now be described, by way of example only, and with reference to the following inventions:

[0027] Figure 1 is a flow chart illustrating a method for replicating a software cluster including a container to another computing environment according to an embodiment of the present disclosure.

[0028] Figure 2 is a schematic block diagram illustrating an overview of a system, system features or components, and method for replicating a software cluster including a container to another computing environment according to an embodiment of the present invention.

[0029] Figure 3 is a diagram showing the use of an embodiment according to the present invention Figure 2 A flow chart of a method implemented by the illustrated system for replicating a software cluster including containers to another computing environment.

[0030] Figure 4 is a diagram showing a method of performing a Figure 3 The flowchart of is a continuation of another method for replicating a software cluster including a container to another computing environment.

[0031] Figure 5 is a schematic block diagram depicting a computer system that may be incorporated in whole or in part in one or more computers or devices and that cooperates with the systems and methods shown in the figure according to an embodiment of the present invention.

[0032] Figure 6 is a block diagram depicting a cloud computing environment according to an embodiment of the present invention.

[0033] Figure 7 is a block diagram depicting abstract model layers according to an embodiment of the present invention.

[0034] The various features of the drawings are not to scale, as the illustrations are intended to clearly assist those skilled in the art in understanding the present invention in conjunction with the specific embodiments. DETAILED DESCRIPTION

[0035] The following description with reference to the accompanying drawings is provided to assist in a comprehensive understanding of the exemplary embodiments of the present invention as defined by the claims and their equivalents. The description includes various specific details to assist in understanding, but these details are considered to be exemplary only and to help provide clarity and conciseness. Therefore, it will be appreciated by those of ordinary skill in the art that various changes and modifications may be made to the embodiments described herein without departing from the scope and spirit of the present invention. In addition, descriptions of well-known functions and configurations may be omitted.

[0036] The terms and words used in the following description and claims are not limited to the written meanings, but are only used to enable a clear and consistent understanding of the present invention. Therefore, it will be apparent to those skilled in the art that the following description of exemplary embodiments of the present invention is provided for illustrative purposes only and not for the purpose of limiting the present invention as defined by the appended claims and their equivalents.

[0037] It should be understood that the singular forms "a," "an," and "the" include plural referents unless the context clearly dictates otherwise. Thus, for example, reference to a "component surface" includes reference to one or more of such surfaces unless the context clearly dictates otherwise.

[0038] Embodiments and Examples

[0039] The embodiments and drawings of the present disclosure may have the same or similar components as other embodiments. Such drawings and descriptions show and explain other examples and embodiments according to the present disclosure. The embodiments of the present disclosure may include operating actions and / or processes. Methods (such as computer-implemented methods) may include a series of operating blocks for implementing embodiments according to the present disclosure, which may include collaboration with one or more systems shown in the figures. The operating blocks of the methods and systems of the present disclosure may include technology, mechanisms, modules, etc. for implementing functions according to the operations of the present disclosure. Similar components may have the same reference numerals. Components may operate in coordination with computer-implemented methods.

[0040] According to an embodiment of the present disclosure, a method and system may include a management software cluster or container orchestrator (e.g., Clusters). A software cluster may include deployments, pods, routes, secrets, services, configuration maps, software repositories, image locations, daemon sets, replica sets, custom resource definitions (CRDs), namespaces, permanent virtual circuits (PVCs), users, and operators. Methods and systems may include creating operators for encoding desired or required knowledge to run in managing software clusters, such as operators for running software defined network configurations, operators for software deployment service configurations, and operators for user privileges, etc.

[0041] refer to Figure 1 , according to an embodiment of the present invention, a computer-implemented system 100 for replicating a software cluster including control software and containers in another computing environment includes the features described below.

[0042] The system 100 includes decomposing a software cluster into operators using an operator software tool (operator SDK) including a command line tool to create a new template for the operator including a skeleton of a custom resource definition (CRD), as in operation block 104. From this, the system generates an operator template, as shown in block 108.

[0043] The system includes generating CRD (custom resource definition) data as needed to expand the template into more useful content. This is achieved by taking as a basis typical existing files in the programming language used for configuration files and extracting data from the application code and extracting code from the code repository or extracting key information as part of the DevOps tool chain, as shown in box 116.

[0044] Using external probes, the actual configuration is checked by the runtime pod 116 and used as the basis for the CRD as shown in block 120. Cloud resources (e.g., network, nodes, storage, etc.) may also be used, and information may be retrieved based on a cloud service platform (CSP) API (application programming interface).

[0045] The system may complete the template to generate a final operator template 112 with added CRD data 124 validated against the running cluster and packaged for future use.

[0046] Additionally, the system includes analyzing the operators to determine the operator hierarchy. Thus, after decomposing an existing container configuration into multiple operators, the same instance of an existing cluster can then be recreated in another location (such as in a cloud computing environment) by running the decomposed operators. However, the operators cannot just be applied in a random order, but rather the operators require or have parameters that require certain resources or bits of the configuration to be executed before they can run.

[0047] For example, a typical cluster may require the following. Ensure the network is available, and if not, start the network. Start the registry or ensure that the registry can be accessed if it is remote. Start network storage that can be used by the cluster (e.g., typically using a network protocol). In one example, the system may include starting the master node, applying security configuration, starting the worker nodes, and starting the pod. Each operator includes checking that the prerequisites are in place before running. The operator also needs to ensure that for longer running configuration tasks, the status of the configuration activities is tracked to completion and any error conditions are resolved. This can be further plugged into layered services, and the RPO / RTO (Recovery Point Objective / Recovery Time Objective) can be decoded accordingly within the operator. Users can also change the configuration.

[0048] In one example, the modular decomposition may include multiple functions, each of which may represent a specific requirement or object. Each of the multiple modules may represent a specific function. The decomposer may run as a service and run with its controller and be accessed by the user through a secure route. In another example, the target selector lets the user select the target environment and select the correct bootstrap operator and may trigger the execution of the bootstrap operator.

[0049] In another example, a bootstrap process is identified, and when the bootstrap process returns information about the target, a verification step ensures, for example, that the target has enough space / nodes to run the configuration being proposed. If there are not enough resources, the user is notified. At this point, the user can decide to choose another target location, or implement only a subset of operators into this environment so that the subset of configurations will now fit. The hierarchy of operators created is related to the decomposition of the cluster. The order in which the operators should be run on demand to build the cluster. The prerequisites of the operators in terms of resources need to be known in order to run the operators.

[0050] In one example, the system includes triggering the composition of user-specified targets and execution at the target entity. The bootstrap process operator can start the defined service provisioning. The decomposed operator can extend the container orchestrator software at the target. The dedicated controller for the defined task can look at the defined desired state, compare it to the state of the cluster, and take actions on the resources to make the state a reality in the cluster (e.g., add replicas, add / create deployments). The system builds on these concepts, providing custom controllers that know how to observe specific events, know the internal state within the cluster, and take actions to coordinate through the code we provide in the handler set. Characterization defines information about specific knowledge by extending the orchestrator software called custom resources (which may include APIs (application programming interfaces)). Custom resources (CRs) are defined by custom resource definitions (CRDs), and CRDs are extension points designed and intended in the API. Operators can be built on facilities to take advantage of platform features and abstraction layers.

[0051] In one example, modular functionality may include the following. A component may be decomposed into desired components. A user may select a specific operator for a target composition. A user may use an interface to route functionality for decomposition, bootstrap, target location, etc. A user may specify a time period for decomposition, and a user may specify retention of decomposition operators, and a user may specify a deletion time for a source cluster (e.g., a decomposition cluster).

[0052] Embodiments according to the present disclosure may include dividing a software cluster into two planes (such as a control plane / operator and a data plane), wherein the control plane includes a collection of pods and implements a control loop that repeatedly compares the desired state of the cluster with its actual state and creates a snapshot of the cluster state for disaster recovery. Embodiments may also include creating an operator to deploy and manage multiple instances of a software application using a common resource descriptor (CRD) to recover data / applications from a disaster and migrate workloads to a new infrastructure / cloud / availability zone. Embodiments may include determining the relationship between operators and resources based on feature values ​​of each operator configured for an application system and information obtained about resources belonging to the operator, thereby grasping the state of the resources and facilitating the migration of applications to a container orchestration platform, and enabling a user to select and arrange desired operators in an operator management graphical user interface (GUI) of an application system construction unit to build an application system with a desired configuration. Embodiments can further replicate software clusters or their configurations by analyzing existing configurations, generating a set of operators that can be run to reproduce the configuration in an alternative cloud environment or any target environment or landing zone, with practicality in disaster recovery (DR) and in the migration of systems from one cloud provider to another cloud provider or from local to any cloud provider's platform (and vice versa). Embodiments can also include the use of modular capabilities, enabling users to decompose only the desired components (e.g., existing software cluster configurations) into operators, and only select specific operators or select all of them for target composition. Unique bootstrap programs can be selected for each cloud environment and customized local deployment environment, and zero-touch DR can be implemented with decoded human knowledge and provide users with the flexibility to pick and choose components of DR. Tiered services can be provided for pluggable systems, thereby achieving configurable recovery point objectives (RPO) / recovery time objectives (RTO). Using a maturity-based approach and bootstrap operators that automatically bootstrap operators, a user interface (UI) can be provided for easy user-level consumption, and an abstraction layer can be enabled from all underlying cloud providers for overall DR.

[0053] In another example according to the present disclosure, building operators can be achieved by decomposing the running configuration and automatically building the operators and operator hierarchies required to recreate the cluster. The automatic creation of the created operators eliminates the opportunity for user errors to gradually occur, and significantly speeds up the time spent using the present invention to protect applications and deploy new instances in another location. The hierarchy deploys prerequisites in the correct order, rather than focusing solely on recovering applications. Automatically decomposing the environment into a hierarchy of operators allows the entire cluster to be replicated. This does not require user intervention. Therefore, embodiments of the present disclosure do not require operators to exist in advance, thereby allowing management environments with no existing operators, some existing operators, or all existing required operators. The hierarchy or operators discovered by the present invention allow management of all environments, rather than environments in which everything is predefined. The actual running configuration can be captured instead of the configuration captured via the GUI. Consider the situation where the application has been scaled up and is running more instances. In this case, it can be handled according to embodiments of the present disclosure. Therefore, for example, in the case of migration or disaster, the running application can be deployed to a new instance or to a new location. Operator constructs can be used to capture the configuration of an existing application and, with this captured configuration, (re)deploy it in a different location.

[0054] refer to Figure 2 and Figure 3 In another embodiment according to the present disclosure, a computer-implemented method 300 (referenced to system 200) uses control software 238 and a container for replicating, for example, a control software cluster 236 in a first computing environment 230 in another computing environment (e.g., a second computing environment). The first computing environment includes a computer 231, which includes a processor 232 for executing code. The computer 231 includes a storage medium 234 that can store an application 235 and a software cluster 236. The second computing environment can also include a computer 241. A user or operator 246 can use the computer 231 to initiate and manage operational processes.

[0055] The method 300 includes using a computer to generate a software operator 248 associated with a modular function of a control software cluster. The software operator is derived by analyzing a control software cluster 236 including a container in a first software computing environment. The software operator is also derived by analyzing the code of the control software cluster including the container and by analyzing the software configuration of the control software cluster, as shown in operation block 304.

[0056] The method 300 includes generating a software operator, which includes at least in part determining software configuration requirements for a control software cluster. The control software cluster includes a container for running the software operator of the control software cluster in another or second software computing environment, as shown in block 308. The generation of the software operator includes at least in part analyzing another or second software computing environment, such as the second computing environment 240, for running the software operator of the control software cluster, as shown in block 312.

[0057] In addition, the generation of the software operator includes, at least in part, creating a template for controlling the software cluster based on the determined software configuration requirements and the analysis of the other or second software computing environment. The template includes data for custom resource definitions for running the software operator in the other or second software computing environment, as shown in block 316.

[0058] If the software operators are not acceptable at block 320, the method returns to block 308. If the software operators are acceptable, the method proceeds to block 324. The method includes replicating all or a portion of the software operators of the control software cluster in another software computing environment, such as the second computing environment 240, based on the analysis of the second software computing environment and the software configuration requirements, as shown in block 324.

[0059] In one example, the analysis of the other or second software computing environment includes comparing the configuration requirements of the control software cluster to the other software computing environment.In another example, the method may also include receiving at the computer a selection from an operator of components of the software computing environment for generation of the software operator.

[0060] In one example, the method may further include analyzing the software operators to determine a hierarchy of each software operator, and recreating an instance of the control software cluster in another or second software computing environment based on the hierarchy. In another example, the control software cluster is a running application in the computing environment, and the running application includes software code executed by a processor. In another example, the software computing environment and the another or second software computing environment are different cloud computing environments.

[0061] In another example, the software operators are created in response to analysis of another or second software computing environment and creation of a template, and analysis of the container controlling the software cluster determines the tier of each of the software operators.

[0062] refer to Figure 4, method 400 continues from method 300 at block 324. Method 400 includes using a computer to generate a model, as in block 404, the model including the following operations. The method includes updating a determination of software configuration requirements for a control software cluster, as shown in block 406. The method includes updating an analysis of a second software computing environment for running software operators of the control software cluster, as shown in block 408. The method includes updating generation of software operators, including at least in part creating an update of a template for the control software cluster based on the determined software configuration requirements and the analysis of the second software computing environment. The method includes updating a copy of all or a portion of the software operators of the control software cluster in another or second software computing environment based on the updated analysis and software configuration requirements of the another or second software computing environment, as shown in block 412. In one example, the method may include iteratively generating the model to produce an updated model.

[0063] Additional Examples and Embodiments

[0064] With reference to the accompanying drawings (and for example Figure 2 ), the computer 231 may be integrated with the device or in communication with the device. A computer 290 remote from the computer may be in electronic communication, in whole or in part, with a computer 272 as part of the control system 270. The control system may include a computer 272 having a computer-readable storage medium 273 that may store one or more programs 274, and a processor 275 for executing program instructions. The control system may also include a storage medium that may include registration and / or account data 282 and a profile 283 of a user or entity (such an entity may include a robotic entity) as part of a user account 281. The user account 281 may be stored on a storage medium 280 that is part of the control system 270. The user account 281 may include registration and account data 282 and a user profile 283. The control system may also include a computer 272 having a computer-readable storage medium 273 that may store a program or code embedded on the storage medium. The program code may be executed by the processor 275. The computer 272 may be in communication with a database 276. The control system 270 may also include a database 276 for storing all or part of such data as described above, as well as other data.

[0065] The control system may also communicate with a computer system 290, which may include a learning engine / module 292 and a knowledge corpus or database 296. The computer system 290 may also communicate with the computer 231 and may be remote from the computer. In another example, the computer system 290 may be all or part of the control system, or all or part of the device. The depiction of the computer system 290 and other components of the system 200 is shown as an example according to the present disclosure. One or more computer systems may communicate with a communication network 260 (e.g., the Internet). For example, the computer 290 and the control system 270 may communicate with the communication network 260, and the computer 231 may communicate with a local communication network, which may communicate with the communication network 260.

[0066] In one example, a new or different AI (artificial intelligence) ecosystem or technology / communication or IT (information technology) ecosystem may include a local communication network that may communicate with the communication network 260. The system 200 may include a learning engine / module 292 that may be at least part of or in communication with the control system for generating a model or learning a model.

[0067] In another example, computer 231 can be part of a device. A computer can include a processor and a computer-readable storage medium that can store an application 235, which in one example can embody all or part of the method of the present disclosure. An application program can include all or part of instructions that implement the method of the present disclosure, which are embodied in code and stored on a computer-readable storage medium. In one example, a device can include a display. The device can operate in conjunction with a remote server in whole or in part via a communication network (e.g., the Internet).

[0068] The method may include an analysis of the received data to generate a model. The model may also be generated at least in part by an AI system. In one example, the AI ​​system may generate the model using an AI system analysis using machine learning.

[0069] In other embodiments and examples of the present disclosure shown in the accompanying drawings, the computer can be part of a remote computer or a remote server (e.g., a remote server). In another example, the computer can be part of a control system and provide the execution of the functions of the present disclosure. In another embodiment, the computer can be part of a mobile device and provide the execution of the functions of the present disclosure. In yet another embodiment, part of the execution of the functions of the present disclosure can be shared between a control system computer and a mobile device computer, for example, the control system is used as the back end of one or more programs embodying the present disclosure, and the mobile device computer is used as the front end of one or more programs. The device (e.g., a mobile device or a mobile phone) can belong to one or more users and can communicate with the control system via a communication network.

[0070] The computer can be part of a mobile device, or a remote computer that communicates with the mobile device. In another example, the mobile device and the remote computer can work in combination to use stored program code or instructions to perform the features of the method described herein to implement the method of the present disclosure. In one example, the device may include a computer with a processor and a storage medium storing an application, and the computer includes a display. The application may include program instructions for using a processor to perform the features of the present disclosure. In another example, a mobile device application or computer software may have a front-end executable program instruction of a software application, and the software application includes the features of the method of the present disclosure in the program instruction, and one or more back-end programs of the software application stored on the computer of the control system communicate with the mobile device computer and execute other features of the method. The control system and the device (e.g., mobile device or computer) can communicate using a communication network (e.g., the Internet).

[0071] Thus, in one example, the control system may communicate with a computer or device, and the computer may include an application or software. The computer in the computer or mobile device may communicate with the control system using a communication network. In another example, the control system may have a front-end computer belonging to one or more users, and a back-end computer embodied as the control system.

[0072] The method and system according to the embodiment of the present disclosure can be incorporated into one or more computer programs or applications stored on an electronic storage medium, and can be executed by a processor as part of a computer on a mobile device. For example, a mobile device can communicate with a control system, and in another example, a device such as a video feed device can communicate directly with the control system. Other users (not shown) may have similar mobile devices that similarly communicate with the control system. The application program can be stored in whole or in part on a computer in a computer or mobile device and at a control system that communicates with the mobile device, for example, using a communication network (such as the Internet). It is envisioned that the application can access all or part of the program instructions to implement the method of the present disclosure. The program or application can communicate and access data with a remote computer system via a communication network (e.g., the Internet), and collaborate with a program stored on a remote computer system. Such interactions and mechanisms are further described in detail herein, and are mentioned with respect to components of a computer system (such as a computer-readable storage medium), which are shown in one or more embodiments herein and are described in more detail with respect to one or more computers and systems described herein with reference thereto.

[0073] In addition, with reference to the accompanying drawings, the device may include a computer, a computer-readable storage medium and an operating system, and / or a program, and / or a software application, which may include program instructions executable using a processor. Embodiments of these features are shown in the accompanying drawings herein. The method according to the present disclosure may include a computer for implementing the features of the method according to the present disclosure as part of a control system. In another example, the computer as part of the control system may work in conjunction with a mobile device computer, and the mobile device computer and the communication system are used in conjunction to implement the features of the method according to the present disclosure. In another example, the computer for implementing the features of the method may be part of a mobile device, and the method is therefore implemented locally.

[0074] The control system may include a storage medium for maintaining a registration of users and their devices for analyzing audio input. Such a registration may include a user profile, which may include user data provided by the user regarding registration and setting up an account. In an embodiment, the methods and systems in conjunction with the present disclosure include a control system (commonly referred to as a back end) combined and coordinated with a front end (which may be an application) of the methods and systems. In one example, the application is stored on a device (e.g., a computer or field device) and can access data and additional programs at the back end of the application (e.g., a control system).

[0075] The control system may also be part of a software application implementation, and / or represent a software application having a front-end user portion and a back-end portion that provides functionality. In one embodiment, the methods and systems incorporating the present disclosure include a control system (which may generally be referred to as a back-end of a software application that is a part of the methods and systems of embodiments of the present application) that is combined and collaborated with the front-end of a software application that is another part of the methods and systems of the present application incorporated at a device. The application is stored on a device or computer and can access data and additional programs of the application back-end (e.g., stored in (one or more) programs in the control system).

[0076] (One or more) programs may include, in whole or in part, a series of executable steps for implementing the method of the present disclosure. The program in conjunction with the present method may be stored in whole or in part in a computer-readable storage medium on a control system, or in whole or in part on a computer or device. It is contemplated that the control system may not only store the user's profile, but in one embodiment, may interact with a website to be viewed on a display of a device such as a mobile device, or in another example, may interact with the Internet, and receive user input related to the method and system of the present disclosure. It should be understood that the embodiments shown in the accompanying drawings depict one or more profiles, however, the method may include multiple profiles, users, registrations, etc. It is contemplated that multiple users or a group of users may register and provide profiles using a control system used according to the method and system of the present disclosure.

[0077] In one example, as part of the analysis of received data including data in a knowledge corpus and a historical database, the knowledge corpus and the historical database may be populated with historical data collected, for example, from sensors, robotic devices, or other machines or devices.

[0078] With reference to one or more embodiments in the accompanying drawings, a computer or device (which may also be referred to as a user device or an administrator's device) includes a computer having a processor and a storage medium that can store an application. The application can embody the features of the method of the present disclosure as instructions. A user can use the device to connect to a learning engine. The device includes a computer and a display or monitor. The application can embody the method of the present disclosure and can be stored on a computer-readable storage medium. The device may also include a processor for executing the application / software. The device can communicate with a communication network (e.g., the Internet).

[0079] It should be understood that the user device is representative of similar devices that may be used by other users, which may include mobile devices, smart devices, laptop computers, etc. as representatives of such devices.

[0080] In one example, the system of the present disclosure may include a control system that communicates with a user device via a communication network. The control system may include all or part of an application or software for implementing the method of the present disclosure. The control system may include a computer-readable storage medium in which account data and / or registration data may be stored. A user profile may be part of the account data and stored on the storage medium. The control system may include a computer having a computer-readable storage medium and a software program stored therein. A processor may be used to execute or implement instructions of the software program. The control system may also include a database.

[0081] In another example and embodiment, profiles can be saved for entities such as users, participants, operators, human operators, or robotic devices. Such profiles can provide data about users and delivery history for analysis. In one example, a user can register or create an account using a control system, and the control system can include one or more profiles as part of the registration and / or account data. Registration can include a profile for each user with personalized data. For example, a user can register using a website via their computer and a GUI (graphical user interface) interface. Registration or account data can include a profile for each user's account. Such an account can be stored on the control system, which can also use a database for data storage. Users and related accounts can refer to, for example, individuals, or entities, or corporate entities, or corporate departments, or another machine, such as entities for automation, such as systems that use artificial intelligence in whole or in part.

[0082] In addition, the method and system according to the embodiment of the present disclosure can be discussed with respect to (one or more) functional systems depicted by functional block diagrams. The method and system may include components and operations for the embodiment of the present disclosure, and are used for reference in this article when describing the operating steps of the method and system of the present disclosure. In addition, the functional system according to the embodiment of the present disclosure depicts the functional operations indicating the embodiment discussed herein.

[0083] More Examples and Embodiments

[0084] The methods and systems of the present disclosure may include a series of operation blocks for implementing one or more embodiments according to the present disclosure. The method shown in the accompanying drawings may be another example embodiment, which may include aspects / operations shown in another figure and previously discussed, but may be reintroduced in another example. Therefore, the operation blocks and system components shown in one or more figures may be similar to the operation blocks and system components in other figures. The diversity of operation blocks and system components depicts example embodiments and aspects according to the present disclosure. For example, the method shown is intended to be an example embodiment, which may include aspects / operations previously shown and discussed in the present disclosure, and in one example, continue from a previous method shown in another flow chart.

[0085] It should be understood that the features shown in some figures (eg, block diagrams) are functional representations of features of the present disclosure. For illustrative purposes, such features are shown in the embodiments of the systems and methods of the present disclosure to clarify the functions of the features of the present disclosure.

[0086] Further Discussion of Examples and Embodiments

[0087] It should be understood that a set or group is a collection of different objects or elements. The objects or elements that make up a set or group can be anything, for example, numbers, letters of the alphabet, other sets, multiple people or users, etc. It is further understood that a set or group can be an element, for example, a thing or number, in other words, a collection of elements, for example, one or more users or people or participants. It should also be understood that machines and devices are used interchangeably herein to refer to machines or devices in one or more ecosystems or environments, which may include, for example, an artificial intelligence (AI) environment.

[0088] Other embodiments and examples

[0089] The computer-implemented method as disclosed herein may include modeling using a computer. The model may be generated using a learning engine or modeling module of a computer system, which may be all or part of an artificial intelligence (AI) system that communicates with a computer and / or a control system. Such a computer system may include or communicate with a knowledge corpus or historical database. In one example, an acceptable model may include a model that satisfies specified parameters. In another example, an acceptable model may be a model that has undergone several modeling iterations. When the model is unacceptable, the method may return to the previous operation or proceed as indicated, for example, as represented by an operation box in a flow chart.

[0090] In one example according to the present disclosure, the method may use a computer generated model, which may include a series of operations. The model may be generated using a learning engine or modeling module of a computer system, which may be all or part of an artificial intelligence (AI) system that communicates with a computer and / or control system. Such a computer system may include or communicate with a knowledge corpus or historical database.

[0091] The model may be generated using a learning engine or modeling module of a computer system, which may be all or part of an artificial intelligence (AI) system in communication with a computer and / or control system. Such a computer system may include or communicate with a knowledge corpus or historical database. The model may also be generated by an AI system, such as the output of an AI system analysis using, at least in part, machine learning.

[0092] Additional Embodiments and Examples

[0093] Account data (e.g., including profile data associated with the user) and any personal or other data may be collected and stored, for example, in a control system. It should be understood that such data collection is done with the user's knowledge and consent and is stored to protect privacy, as will be discussed in more detail below. Such data may include personal data and data about personal items.

[0094] In one example, a user may register an account with a user profile on the control system. For example, data may be collected using the techniques described above (e.g., using a camera), and the data may be uploaded by the user to the user profile. The user may include, for example, a corporate entity, or a department of an enterprise, or a homeowner, or any end user, human operator, or robotic device, or other personnel of an enterprise.

[0095] With regard to data collection related to the present disclosure, such uploading or generation of profiles is voluntary by one or more users, and is therefore initiated by the user and with the approval of the user. Therefore, a user can choose to join to establish an account with a profile according to the present disclosure. Similarly, the data received by the system or the data input or received as input is voluntary by one or more users, and is therefore initiated by the user and with the approval of the user. Therefore, according to the present disclosure, a user can choose to join to enter data. Such user approval also includes the option of the user canceling such a profile or account, and / or the input of data, and thus opting out of capturing communications and data at the user's discretion. In addition, any data stored or collected is understood to be intended to be stored securely and not available without user authorization, and is not available to the public and / or unauthorized users. The data stored in this way is understood to be deleted at the request of the user and deleted in a secure manner. In addition, according to the present disclosure, any use of such stored data is understood to be only with the authorization and consent of the user.

[0096] In one or more embodiments of the present invention, (one or more) users can choose to join the control system or register with the control system, voluntarily provide data and / or information in the process with the user's consent and authorization, wherein the data is stored and used in one or more methods of the present disclosure. In addition, the user can register one or more user electronic devices for use with one or more methods and systems according to the present disclosure. As part of the registration, the user can also identify and authorize access to one or more activities or other systems (e.g., audio and / or video systems). This opt-in and authorization data collection and / or storage of the registration is voluntary, and the user can request to delete data (including profiles and / or profile data), cancel registration and / or opt out of any registration. It should be understood that this opt-out includes disposing of all data in a safe manner. The user interface can also allow a user or individual to remove all of its historical data.

[0097] Other Additional Embodiments and Examples

[0098] In one example, artificial intelligence (AI) can be used in whole or in part to generate a model or learning model as discussed herein in the embodiments of the present disclosure. Artificial intelligence (AI) systems may include machines, computers, and computer programs designed to be intelligent or mirrored intelligence. Such systems may include computers that execute algorithms. AI may include machine learning and deep learning. For example, deep learning may include neural networks. The AI ​​system may be cloud-based, i.e., using a cloud-based computing environment with computing resources. In another example, a control system may be all or part of an artificial intelligence (AI) system. For example, a control system may be one or more components of an AI system.

[0099] It should also be understood that the methods and systems according to the embodiments of the present disclosure may be incorporated into (artificial intelligence) AI devices, components or may be part of an AI system, which may communicate with corresponding AI systems and components and corresponding AI system platforms. Therefore, as described above, such a program or application containing the method of the present disclosure may be part of an AI system. In one embodiment according to the present invention, it is envisioned that the control system may communicate with the AI ​​system, or may be part of the AI ​​system in another example. The control system may also represent a software application having a front-end user portion and a back-end portion that provides functionality, which in one or more examples may interact with, contain or be part of a large system (such as an AI system). In one example, an AI device may be associated with and remote from an AI system, which may be a control system and / or a content delivery system in whole or in part. Such an AI system may be represented by one or more servers storing programs on a computer-readable medium, which may communicate with one or more AI devices. The AI ​​system may communicate with the control system, and in one or more embodiments, the control system may be all or part of the AI ​​system, and vice versa.

[0100] It should be understood that, as discussed herein, downloads or downloadable data may be initiated using voice commands or using a mouse, touch screen, etc. In such examples, the mobile device may be user initiated, or the AI ​​device may be used with the user's consent and permission. Other examples of AI devices include devices that include a microphone, a speaker, and access to a cellular or mobile network, a communications network, or the Internet, for example, a vehicle with a computer and with cellular or satellite communications, or in another example, an IoT (Internet of Things) device, such as an appliance with cellular network or Internet access.

[0101] Descriptions of various embodiments of the present invention have been presented for illustrative purposes, but are not intended to be exhaustive or limited to the disclosed embodiments. Similarly, the features of the embodiments of the present invention described herein or functional examples (whether used in the description of a particular embodiment or listed as an example) are not intended to limit the embodiments of the present invention described herein, or to limit the present invention to the examples described herein. Such examples are intended to be exemplary or exemplary, rather than exhaustive. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terms used herein are selected to best explain the principles of the embodiments, practical applications, or technical improvements to the technology found in the market, or to enable those of ordinary skill in the art to understand the embodiments disclosed herein.

[0102] Other Additional Examples and Embodiments

[0103] refer to Figure 5 , an embodiment of a system or computer environment 1000 according to the present disclosure includes a computer system 1010 shown in the form of a general-purpose computing device. For example, the method 100 can be embodied in a program 1060, which includes program instructions embodied on a computer-readable storage device or computer-readable storage medium (e.g., generally referred to as computer memory 1030, and more specifically, computer-readable storage medium 1050). Such memory and / or computer-readable storage medium includes non-volatile storage or non-volatile storage, also referred to and referred to as non-transient computer-readable storage medium or non-temporary computer-readable storage medium. For example, such non-volatile memory can also be a disk storage device, including one or more hard drives. For example, the memory 1030 can include a storage medium 1034 (such as RAM (random access memory) or ROM (read-only memory)) and a cache memory 1038. The program 1060 can be executed by the processor 1020 of the computer system 1010 (to execute program steps, codes, or program codes). Additional data storage may also be embodied as a database 1110 including data 1114. Computer system 1010 and program 1060 are general representations of computers and programs that may be local to a user or provided as a remote service (e.g., as a cloud-based service), and may be provided using a website (e.g., interacting with a network, the Internet, or a cloud service) that can be accessed using a communication network 1200 in another example. It should be understood that computer system 1010 also generally represents a computer device or a computer (such as a laptop or desktop computer, etc.) included in a device or one or more servers alone or as part of a data center in this document. The computer system may include a network adapter / interface 1026 and an input / output (I / O) interface 1022. The I / O interface 1022 allows data to be input and output using an external device 1074 that may be connected to the computer system. The network adapter / interface 1026 may provide communication between the computer system and a network that is generally shown as a communication network 1200.

[0104] Computer 1010 can be described in the general context of computer system executable instructions (such as program modules) executed by the computer system. In general, program modules can include routines, programs, objects, components, logic, data structures, etc. that perform specific tasks or implement specific abstract data types. Method steps and system components and techniques can be embodied in modules of program 1060 for performing the tasks of each step of the method and system. Modules are generally represented in the figure as program modules 1064. Program 1060 and program modules 1064 can perform specific steps, routines, subroutines, instructions or codes of the program.

[0105] The methods of the present disclosure may be run locally on a device such as a mobile device, or may be run as a service, for example, on a server 1100, which may be remote and accessible using a communication network 1200. Programs or executable instructions may also be provided as a service by a provider. The computer 1010 may be practiced in a distributed cloud computing environment, where tasks are performed by remote processing devices linked through a communication network 1200. In a distributed cloud computing environment, program modules may be located in both local and remote computer system storage media, including memory storage devices.

[0106] More specifically, system or computer environment 1000 includes a computer system 1010, which is shown in the form of a general-purpose computing device with illustrative peripherals. Components of computer system 1010 may include, but are not limited to, one or more processors or processing units 1020, a system memory 1030, and a bus 1014 that couples various system components including system memory 1030 to processor 1020.

[0107] Bus 1014 represents any one or more of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example and not limitation, such architectures include an Industry Standard Architecture (ISA) bus, a Micro Channel Architecture (MCA) bus, an Enhanced ISA (EISA) bus, a Video Electronics Standards Association (VESA) local bus, and a Peripheral Component Interconnect (PCI) bus.

[0108] The computer 1010 may include various computer-readable media. Such media may be any available media accessible by the computer 1010 (e.g., a computer system or server), and may include volatile and non-volatile media, as well as removable and non-removable media. The computer memory 1030 may include additional computer-readable media in the form of volatile memory, such as random access memory (RAM) 1034 and / or cache memory 1038. The computer 1010 may also include other removable / non-removable, volatile / non-volatile computer storage media, in one example, a portable computer-readable storage medium 1072. In one embodiment, a computer-readable storage medium 1050 may be provided for reading and writing from a non-removable, non-volatile magnetic medium. The computer-readable storage medium 1050 may be embodied as, for example, a hard drive. Additional memory and data storage may be provided, for example, as a storage system 1110 (e.g., a database) for storing data 1114 and communicating with the processing unit 1020. The database may be stored on the server 1100 or be part of the server 1100. Although not shown, a magnetic disk drive for reading and writing from a removable non-volatile magnetic disk (e.g., a "floppy disk"), and an optical disk drive for reading or writing from a removable non-volatile optical disk (e.g., a CD-ROM, DVD-ROM, or other optical media) may be provided. In this case, each may be connected to the bus 1014 via one or more data media interfaces. As will be further depicted and described below, the memory 1030 may include at least one program product, which may include one or more program modules configured to perform the functions of embodiments of the present invention.

[0109] For example, the methods described in the present disclosure may be embodied in one or more computer programs, generally referred to as programs 1060, and may be stored in memory 1030 in computer-readable storage medium 1050. Program 1060 may include program modules 1064. Program modules 1064 may generally perform the functions and / or methods of embodiments of the present invention as described herein. One or more programs 1060 are stored in memory 1030 and may be executed by processing unit 1020. As an example, memory 1030 may store an operating system 1052, one or more application programs 1054, other program modules, and program data on computer-readable storage medium 1050. It should be understood that program 1060 stored on computer-readable storage medium 1050, as well as operating system 1052 and application programs 1054, may be similarly executed by processing unit 1020. It should also be understood that the application 1054 and the program 1060 are shown generally and may include all or part of one or more applications and programs discussed in the present disclosure, and vice versa, that is, the application 1054 and the program 1060 may be all or part of one or more applications or programs discussed in the present disclosure. It should also be understood that the control system 1007 in communication with the computer system may include all or part of the computer system 1010 and its components, and / or the control system may communicate with all or part of the computer system 1010 and its components as a remote computer system to implement the control system functions described in the present disclosure. The control system functions may include, for example, storing, processing, and executing software instructions to perform the functions of the present disclosure. It should also be understood that one or more computers or computer systems shown in other figures may include all or part of the computer system 1010 and its components, and / or one or more computers may communicate with all or part of the computer system 1010 and its components as a remote computer system to implement the computer functions described in the present disclosure. For example, the control system 1007 may be a full or partial representation of the control system depicted in other figures herein.

[0110] In an embodiment according to the present disclosure, one or more programs may be stored in one or more computer-readable storage media, so that the program is embodied and / or encoded in the computer-readable storage medium. In one example, the stored program may include program instructions for execution by a processor or a computer system having a processor to perform a method or cause the computer system to perform one or more functions. For example, in one embodiment according to the present disclosure, the program embodying the method is embodied or encoded in a computer-readable storage medium, and the computer-readable storage medium includes and is defined as a non-transient or non-temporary computer-readable storage medium. Therefore, an embodiment or example of a computer-readable storage medium according to the present disclosure does not include a signal, and an embodiment may include one or more non-transient or non-temporary computer-readable storage media. Therefore, in one example, a program may be recorded on a computer-readable storage medium and structurally and functionally associated with the medium.

[0111] The computer 1010 may also communicate with the following devices: one or more external devices 1074, such as a keyboard, a pointing device, a display 1080, etc.; one or more devices that enable a user to interact with the computer 1010; and / or any device that enables the computer 1010 to communicate with one or more other computing devices (e.g., a network card, a modem, etc.). Such communication may occur via an input / output (I / O) interface 1022. A power supply 1090 may also be connected to the computer using a power interface (not shown). In addition, the computer 1010 may also communicate with one or more networks 1200, such as a local area network (LAN), a general wide area network (WAN), and / or a public network (e.g., the Internet), via a network adapter / interface 1026. As depicted, the network adapter 1026 communicates with other components of the computer 1010 via the bus 1014. It should be understood that, although not shown, other hardware and / or software components may be used in conjunction with the computer 1010. Examples include, but are not limited to, microcode, device drivers 1024, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archival storage systems, among others.

[0112] It should be understood that a computer or a program running on computer 1010 can communicate with a server embodied as server 1100 via one or more communication networks embodied as communication network 1200. Communication network 1200 may include transmission media and network links, including, for example, wireless, wired or optical fiber, as well as routers, firewalls, switches, and gateway computers. A communication network may include connections, such as wired, wireless communication links, or optical fiber cables. A communication network may represent a worldwide collection of networks and gateways that communicate with each other using various protocols, such as the Internet, such as Lightweight Directory Access Protocol (LDAP), Transmission Control Protocol / Internet Protocol (TCP / IP), Hypertext Transfer Protocol (HTTP), Wireless Application Protocol (WAP), etc. A network may also include many different types of networks, such as, for example, an intranet, a local area network (LAN), or a wide area network (WAN).

[0113] In one example, a computer can use a network that can use the Internet to access websites on the Web (World Wide Web). In one embodiment, a computer 1010 including a mobile device can use a communication system or network 1200, which can include the Internet or a public switched telephone network (PSTN), such as a cellular network. The PSTN can include telephone lines, fiber optic cables, microwave transmission links, cellular networks, and communication satellites. The Internet can facilitate many search and text sending technologies, for example, using a cell phone or laptop computer to send a query to a search engine via a text message (SMS), a multimedia messaging service (MMS) (related to SMS), an email, or a web browser. The search engine can retrieve search results, i.e., links to websites, documents, or other downloadable data corresponding to the query, and similarly, the search results are provided to the user as a web page of, for example, search results via a device.

[0114] Other aspects and examples

[0115] The present invention may be a system, method and / or computer program product at any possible level of technical detail integration. The computer program product may include a computer-readable storage medium (or medium) having computer-readable program instructions thereon for causing a processor to perform various aspects of the present invention.

[0116] A computer-readable storage medium may be a tangible device that can retain and store instructions used by an instruction execution device. A computer-readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disk read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanical encoding device (such as a punched card or a raised structure in a groove on which instructions are recorded), and any suitable combination of the foregoing. As used herein, a computer-readable storage medium should not be interpreted as a temporary signal itself, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagated through a waveguide or other transmission medium (e.g., a light pulse through a fiber optic cable), or an electrical signal transmitted through a wire.

[0117] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a corresponding computing / processing device, or downloaded to an external computer or external storage device via a network (e.g., the Internet, a local area network, a wide area network, and / or a wireless network). The network may include copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions to be stored in a computer-readable storage medium in the corresponding computing / processing device.

[0118] The computer-readable program instructions for performing the operation of the present invention can be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-related instructions, microcode, firmware instructions, state setting data, configuration data for integrated circuits, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Smalltalk, C++, and procedural programming languages ​​such as "C" programming language or similar programming languages. The computer-readable program instructions can be executed completely on the user's computer, partially on the user's computer, as an independent software package, partially on the user's computer and partially on a remote computer, or completely on a remote computer or server. In the latter case, the remote computer can be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or can be connected to an external computer (for example, by using the Internet of an Internet service provider). In some embodiments, the electronic circuit including, for example, a programmable logic circuit, a field programmable gate array (FPGA) or a programmable logic array (PLA) can execute the computer-readable program instructions to personalize the electronic circuit by utilizing the state information of the computer-readable program instructions, so as to perform various aspects of the present invention.

[0119] Here, various aspects of the present invention are described with reference to the flow chart and / or block diagram of the method, device (system) and computer program product according to the embodiment of the present invention. It should be understood that each frame of the flow chart and / or block diagram and the combination of frames in the flow chart and / or block diagram can be implemented by computer-readable program instructions.

[0120] These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device create components for implementing the functions / actions specified in one or more boxes of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium, which can instruct a computer, a programmable data processing device, and / or other equipment to function in a specific manner, so that the computer-readable storage medium having the instructions stored therein includes an article of manufacture, which includes instructions for implementing various aspects of the functions / actions specified in one or more boxes of the flowchart and / or block diagram.

[0121] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device, so that a series of operational steps are performed on the computer, other programmable apparatus, or other device to produce a computer-implemented process, so that the instructions executed on the computer, other programmable apparatus, or other device implement the functions / actions specified in one or more boxes of the flowchart and / or block diagram.

[0122] The flowcharts and block diagrams in the accompanying drawings of the present disclosure illustrate the possible architectures, functions and operations of the systems, methods and computer program products according to various embodiments of the present invention. In this regard, each box in the flowchart or block diagram may represent a module, segment or part of an instruction, which includes one or more executable instructions for realizing a specified logical function. In some alternative embodiments, the functions marked in the box may not occur in the order marked in the figure. For example, the two boxes shown in succession can actually be completed as a step, executed simultaneously, substantially simultaneously, in a partially or completely time-overlapping manner, or these boxes can sometimes be executed in reverse order, depending on the functions involved. It will also be noted that each box illustrated in the block diagram and / or flowchart and the combination of boxes in the block diagram and / or flowchart can be implemented by a system based on dedicated hardware that performs a specified function or action or performs a combination of dedicated hardware and computer instructions.

[0123] Additional aspects and examples

[0124] It should be understood that although the present disclosure includes detailed descriptions about cloud computing, the implementation of the teachings recorded herein is not limited to cloud computing environments. Instead, embodiments of the present invention can be implemented in conjunction with any other type of computing environment now known or later developed.

[0125] Cloud computing is a service delivery model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be quickly provisioned and released with minimal management effort or interaction with the service provider. A cloud model can include at least five characteristics, at least three service models, and at least four deployment models.

[0126] Features are as follows:

[0127] On-demand self-service: Cloud consumers can automatically and unilaterally provision computing capabilities, such as server time and network storage, as needed, without requiring human interaction with the service provider.

[0128] Broad Network Access: Capabilities are available over the network and accessed through standard mechanisms that facilitate the use of heterogeneous thin-client platforms or thick-client platforms (e.g., mobile phones, laptops, and PDAs).

[0129] Resource pooling: A provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, where different physical and virtual resources are dynamically allocated and reallocated based on demand. There is a sense of location independence, as consumers generally have no control or knowledge of the exact location of the resources provided, but may be able to specify a location at a higher level of abstraction (e.g., country, state, or data center).

[0130] Rapid elasticity: Capacity can be provisioned quickly and elastically, in some cases automatically, to scale out quickly and released quickly to scale in quickly. To the consumer, the capacity available for provisioning often appears to be unlimited and can be purchased in any quantity at any time.

[0131] Metered Services: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency to both providers and consumers of the utilized services.

[0132] The service model is as follows:

[0133] Software as a Service (SaaS): The capability provided to consumers is to use the provider's applications running on a cloud infrastructure. Applications can be accessed from a variety of client devices through a thin client interface such as a web browser (e.g., web-based email). Consumers do not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.

[0134] Platform as a Service (PaaS): The capability provided to consumers is to deploy applications created or acquired by consumers onto the cloud infrastructure. Applications created or acquired by consumers are created using programming languages ​​and tools supported by the provider. Consumers do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but have control over deployed applications and possibly the configuration of the application hosting environment.

[0135] Infrastructure as a Service (IaaS): The capability provided to consumers is the provisioning of processing, storage, networking, and other basic computing resources, where consumers can deploy and run arbitrary software, which may include operating systems and applications. Consumers do not manage or control the underlying cloud infrastructure, but have control over the operating system, storage, deployed applications, and may have limited control over select networking components (e.g., host firewalls).

[0136] The deployment model is as follows:

[0137] Private Cloud: Cloud infrastructure is operated only for the organization. It can be managed by the organization or a third party and can exist on-premises or off-premises.

[0138] Community cloud: The cloud infrastructure is shared by several organizations and supports a specific community with common concerns (e.g., mission, security requirements, policies, and compliance considerations). It can be managed by the organization or a third party and can exist on-premises or off-premises.

[0139] Public cloud: Cloud infrastructure is available to the general public or large industry groups and is owned by an organization that sells cloud services.

[0140] Hybrid cloud: A cloud infrastructure is a combination of two or more clouds (private, community, or public) that remain distinct entities but are bound together by standardized or proprietary technologies that enable data and application portability (e.g., cloud bursting for load balancing between clouds).

[0141] The cloud computing environment is service-oriented, with characteristics centered on statelessness, low coupling, modularity, and semantic interoperability. The core of cloud computing is the infrastructure consisting of a network of interconnected nodes.

[0142] Reference now Figure 6 , depicts an illustrative cloud computing environment 2050. As shown, cloud computing environment 2050 includes one or more cloud computing nodes 2010 with which local computing devices used by cloud consumers can communicate, such as personal digital assistants (PDAs) or cellular phones 2054A, desktop computers 2054B, laptop computers 2054C, and / or automotive computer systems 2054N. Nodes 2010 can communicate with each other. They can be physically or virtually grouped in one or more networks (not shown), such as private clouds, community clouds, public clouds, or hybrid clouds as described above, or a combination thereof. This allows cloud computing environment 2050 to provide infrastructure, platform, and / or software as a service that cloud consumers do not need to maintain resources on local computing devices. It should be understood that Figure 6 The types of computing devices 2054A-N shown in are intended to be illustrative only, and computing node 2010 and cloud computing environment 2050 may communicate with any type of computerized device over any type of network and / or network addressable connection (eg, using a web browser).

[0143] Reference now Figure 7 , showing the cloud computing environment 2050 ( Figure 6 ) provides a set of functional abstraction layers. First of all, it should be understood that Figure 7 The components, layers and functions shown in are intended to be illustrative only, and embodiments of the present invention are not limited thereto. As shown, the following layers and corresponding functions are provided:

[0144] The hardware and software layer 2060 includes hardware and software components. Examples of hardware components include: host 2061; server 2062 based on RISC (Reduced Instruction Set Computer) architecture; server 2063; blade server 2064; storage device 2065; and network and networking components 2066. In some embodiments, software components include network application server software 2067 and database software 2068.

[0145] The virtualization layer 2070 provides an abstraction layer from which the following examples of virtual entities can be provided: virtual servers 2071 ; virtual storage 2072 ; virtual networks 2073 , including virtual private networks; virtual applications and operating systems 2074 ; and virtual clients 2075 .

[0146] In one example, the management layer 2080 may provide the functionality described below. Resource provisioning 2081 provides dynamic acquisition of computing resources and other resources for performing tasks within a cloud computing environment. Metering and pricing 2082 provides cost tracking when utilizing resources within a cloud computing environment, as well as billing or invoicing for the consumption of these resources. In one example, these resources may include application software licenses. Security provides authentication for cloud consumers and tasks, as well as protection for data and other resources. User portal 2083 provides access to the cloud computing environment for consumers and system administrators. Service level management 2084 provides cloud computing resource allocation and management so that the required service levels are met. Service level agreement (SLA) planning and fulfillment 2085 provides pre-arrangement and procurement of cloud computing resources, anticipating future demand for cloud computing resources based on the SLA.

[0147] Workload 2090 provides examples of functionality that can take advantage of a cloud computing environment. Examples of workloads and functionality that can be provided from the layer include: mapping and navigation 2091; software development and lifecycle management 2092; virtual classroom education delivery 2093; data analytics processing 2094; transaction processing 2095; and software replication in a noisy environment 2096, for example, using control software.

Claims

1. A computer-implemented method for replicating a software cluster including a container to another computing environment using control software, comprising: generating, using a computer, software operators associated with modular functions of a control software cluster, the software operators being derived by analyzing the control software cluster, the control software cluster comprising a container in a software computing environment, the software operators being further derived by analyzing code of the control software cluster including the container and by analyzing a software configuration for the control software cluster; The generating of the software operator comprises, at least in part, determining software configuration requirements for the control software cluster, the control software cluster comprising the container for running the software operator of the control software cluster in another software computing environment; The generating of the software operator comprises, at least in part, analyzing the other software computing environment for running the software operator of the control software cluster; The generating of the software operator includes, at least in part, creating a template for the control software cluster based on the determined software configuration requirements and the analyzing of the other software computing environment, the template including data for a customized resource definition for running the software operator in the other software computing environment; as well as Based on the analysis of the other software computing environment and the software configuration requirements, all or part of the software operators of the control software cluster are replicated in the other software computing environment. 2 . The method of claim 1 , wherein the analyzing of the another software computing environment comprises comparing configuration requirements of the control software cluster with the another software computing environment.

3. The method according to claim 1 or 2, further comprising: A selection of components of the generated software computing environment for the software operator is received at the computer from an operator.

4. The method according to any preceding claim, further comprising: analyzing the software operators to determine a hierarchy for each of the software operators; as well as Based on the hierarchy, an instance of the control software cluster is recreated in the other software computing environment.

5. A method according to any preceding claim, wherein the control software cluster is a running application in the computing environment, wherein the running application comprises software code executed by a processor.

6. A method according to any preceding claim, wherein the software computing environment and the further software computing environment are different cloud computing environments.

7. A method according to any preceding claim, wherein the software operators are created in response to the analysis of the other software computing environment and the creation of the template, the analysis of the containers of the control software cluster being used to determine the hierarchy of each of the software operators.

8. The method according to any preceding claim, further comprising: Using the computer generated model; the model includes the following; updating said determination of said software configuration requirements for said control software cluster; updating said analysis of said another software computing environment for running said software operator of said control software cluster; updating said generation of said software operator comprises, at least in part, said updating of said template created for said control software cluster based on said determined software configuration requirements and said analysis of said another software computing environment; as well as Based on the analysis of the updates to the other software computing environment and the software configuration requirements, the replication of all or part of the software operators of the control software cluster in the other software computing environment is updated.

9. The method according to claim 8, further comprising: The model is iteratively generated to produce an updated model.

10. A system for replicating a software cluster including a container to another computing environment using control software, the system comprising: A computer system, comprising: a computer processor, a computer-readable storage medium, and program instructions stored on the computer-readable storage medium, wherein the program instructions can be executed by the processor to enable the computer system to perform the following functions; generating, using a computer, software operators associated with modular functions of a control software cluster, the software operators being derived by analyzing the control software cluster, the control software cluster comprising a container in a software computing environment, the software operators being further derived by analyzing code of the control software cluster including the container and by analyzing a software configuration for the control software cluster; The generating of the software operator comprises, at least in part, determining software configuration requirements for the control software cluster, the control software cluster comprising the container for running the software operator of the control software cluster in another software computing environment; The generating of the software operator comprises, at least in part, analyzing the other software computing environment for running the software operator of the control software cluster; The generating of the software operator includes, at least in part, creating a template for the control software cluster based on the determined software configuration requirements and the analyzing of the other software computing environment, the template including data for a customized resource definition for running the software operator in the other software computing environment; and Based on the analysis of the other software computing environment and the software configuration requirements, all or part of the software operators of the control software cluster are replicated in the other software computing environment.

11. The system of claim 10, wherein the analyzing of the another software computing environment comprises comparing configuration requirements of the control software cluster with the another software computing environment.

12. The system according to claim 10 or 11, further comprising the following functions: A selection of components of the generated software computing environment for the software operator is received at the computer from an operator.

13. The system according to any one of claims 10 to 12, further comprising: analyzing the software operators to determine a hierarchy for each of the software operators; as well as Based on the hierarchy, an instance of the control software cluster is recreated in the other software computing environment.

14. The system of any one of claims 10 to 13, wherein the control software cluster is a running application in the computing environment, wherein the running application comprises software code executed by a processor.

15. The system of any one of claims 10 to 14, wherein the software computing environment and the another software computing environment are different cloud computing environments.

16. A system according to any one of claims 10 to 14, wherein the software operators are created in response to the analysis of the other software computing environment and the creation of the template, and the analysis of the container of the control software cluster is used to determine the level of each of the software operators.

17. A computer program product for replicating a software cluster including a container to another computing environment using control software, the computer program product comprising a computer-readable storage medium containing program instructions, the program instructions being executable by a computer to cause the computer to perform functions, the functions comprising functions for: generating, using a computer, software operators associated with modular functions of a control software cluster, the software operators being derived by analyzing the control software cluster, the control software cluster comprising a container in a software computing environment, the software operators being further derived by analyzing code of the control software cluster including the container and by analyzing a software configuration for the control software cluster; The generating of the software operator comprises, at least in part, determining software configuration requirements for the control software cluster, the control software cluster comprising the container for running the software operator of the control software cluster in another software computing environment; The generating of the software operator comprises, at least in part, analyzing the other software computing environment for running the software operator of the control software cluster; The generating of the software operator includes, at least in part, creating a template for the control software cluster based on the determined software configuration requirements and the analyzing of the other software computing environment, the template including data for a customized resource definition for running the software operator in the other software computing environment; and Based on the analysis of the other software computing environment and the software configuration requirements, all or part of the software operators of the control software cluster are replicated in the other software computing environment.

18. The computer program product of claim 17, wherein the analyzing of the another software computing environment comprises comparing configuration requirements of the control software cluster to the another software computing environment.

19. The computer program product according to claim 17 or 18, further comprising: A selection of components of the generated software computing environment for the software operator is received at the computer from an operator.

20. The computer program product of claim 17, 18 or 19, further comprising: analyzing the software operators to determine a hierarchy for each of the software operators; as well as Based on the hierarchy, an instance of the control software cluster is recreated in the other software computing environment.

21. A computer program comprising program code means adapted to perform the method according to any one of claims 1 to 9 when said program is run on a computer.