Computer-implemented method, system, computer program, and computer-readable recording medium
An AI system identifies critical application modules in edge devices and data centers by analyzing context scenarios and resource needs, ensuring their functionality during resource scarcity by reallocating resources effectively.
Patent Information
- Application Number
- JP2021195201
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-12-02
- Filing Date
- 2021-12-01
- Publication Date
- 2025-08-19
- Estimated Expiration
- 2041-12-01
AI Technical Summary
Computational and power resources are scarce in edge devices and data centers, particularly during high demand scenarios or failures, affecting critical business functionality.
An AI system analyzes application modules based on context scenarios, determining criticality and allocating resources using historical heat generation patterns and workflow analysis to ensure availability.
Ensures critical application modules receive necessary resources, maintaining functionality during resource constraints by reallocating power and computational resources efficiently.
Smart Images

Figure 0007725138000001 
Figure 0007725138000002 
Figure 0007725138000003
Abstract
Description
[Technical Field]
[0001] The present disclosure relates generally to the field of resource allocation, and more particularly to allocating resources for critical application modules based on contextual scenarios. [Background technology]
[0002] Computing in the cloud, on a data center, or on an edge device requires computational resources and power. These resources can be scarce when edge devices, such as mobile phones or Internet of Things-connected devices, or data centers have low power or when the required computational resources are high. In such situations, ameliorative action can be taken. Summary of the Invention [Problem to be solved by the invention]
[0003] Embodiments of the present disclosure aim to provide resource allocation based on context scenarios. [Means for solving the problem]
[0004] The processor may use the AI system to analyze an application, the application including one or more application modules. The processor may use the AI system to determine that the application module is critical based on a context scenario. The AI system may be trained using data regarding heat generation of hardware on which the application module is running. The processor may use the AI system to identify required hardware resources for the application module to function during the context scenario. The processor may allocate the availability of the required resources for the application module.
[0005] The above summary is not intended to describe each illustrated embodiment or every implementation of the present disclosure.
[0006] The drawings included in this disclosure are incorporated in and form part of this specification. The illustrated embodiments of the present disclosure, together with the description, serve to explain the principles of the present disclosure. The drawings are merely examples of some embodiments and are not intended to limit the present disclosure. [Brief explanation of the drawings]
[0007] [Figure 1] 1 is a block diagram of an example system for allocating resources for a critical application module according to an aspect of the present disclosure. [Figure 2] 1 is a flowchart of an exemplary method for allocating resources for a critical application module according to an aspect of the present disclosure. [Figure 3A] FIG. 1 illustrates a cloud computing environment according to an embodiment of the present disclosure. [Figure 3B] FIG. 2 illustrates an abstraction model layer according to an aspect of the present disclosure. [Figure 4]FIG. 1 illustrates a high-level block diagram of an exemplary computer system that may be used in implementing one or more of the methods, tools, modules, and any associated functionality described herein, according to aspects of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION
[0008] While the embodiments described herein are susceptible to various modifications and alternative forms, the details of the embodiments described herein are shown by way of example in the drawings and will not be described in detail. It is to be understood, however, that the particular embodiments described are not to be construed in a limiting sense. On the contrary, it is intended to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the present disclosure.
[0009] Aspects of the present disclosure relate generally to the field of resource allocation, and more particularly to allocating resources for critical application modules based on context scenarios. While the present disclosure is not necessarily limited to such application fields, various aspects of the present disclosure can be appreciated through a discussion of various examples using this context.
[0010] Computing in the cloud, on a data center, or on an edge device requires computational resources and power. These resources can be scarce when edge devices, such as mobile phones and Internet of Things-connected devices, or data centers have low power or require high computational resources. Data centers may host an organization's critical infrastructure. However, data centers can be affected by grid failures, mechanical failures, electrical failures, and the like caused by natural disasters. This disclosure is directed to identifying critical business functionality for different applications and ensuring that functionality is available when power or computational resources are limited.
[0011] In some embodiments, the processor may analyze the application using an artificial intelligence (AI) system. In some embodiments, the application may include one or more application modules. In some embodiments, the processor may determine that an application module is critical based on a context scenario. In some embodiments, the one or more application modules may be components of the application that have outputs and perform functions. In some embodiments, the context scenario may relate to the circumstances of use of the application module and may include date, time, geographic location, tags related to the owner of the application, tags providing specific instructions from the owner or user of the application, etc. In some embodiments, the context scenario may relate to conditions specific to the application and the functions it performs, the manner in which the application is used, the user / enterprise for which the application is run, etc. In some embodiments, the context scenario may relate to circumstances not specific to the application, including, for example, an event at the data center where the application runs (e.g., a power outage), demands from other applications and other users for power or computing resources at the data center where the application runs, a specific event related to the use of the application or resource availability (e.g., the occurrence of a historical event, a natural disaster, or a notable cultural event), etc. In some embodiments, the criticality of the application module is determined based on a usage pattern of the application module. In some embodiments, the criticality of the application module is determined based on input by a user of the application module.
[0012] For example, an AI system may be analyzing one or more application modules of a human resources ("HR") department payroll application used by a business to manage payroll for its employees. As the end of the month approaches, when employees receive their paychecks, the payroll application may be in high volume use. The AI system may determine that during the end-of-month context scenario, an application module related to direct deposit payroll (e.g., affecting many of the employees on the payroll) is a critical application module, while an application module that verifies secondary phone numbers for new employees (e.g., affecting fewer potentially affected employees and less directly related to the end-of-month pay cycle) is not a critical application module.
[0013] In some embodiments, an AI system may be trained using data about the heat generation of the hardware on which the application modules are running. In some embodiments, the AI system may use each application module's historical heat generation patterns to cluster application modules based on identified context scenarios. For example, infrared or temperature sensors may be used to monitor the heat generated by the hardware on which the application modules are running (e.g., a data center rack or a CPU on a laptop computer). Time, date, and other circumstances surrounding use (e.g., information about the context scenario) may also be monitored and utilized during training of the AI system. In some embodiments, the AI system may cluster application modules as critical application modules based on patterns of parallel upkeep and behavior in context situations.
[0014] As an example, sensors installed within a data center can detect heat generated by different units (e.g., data center modules / racks) and correlate the units with duration of use, number of processing units, amount of data movement, number of users performing parallel requests, etc. From this information, an AI system can interpolate how much heat a data center unit is likely generating when a critical application module is operating.
[0015] In some embodiments, an AI system can be trained to identify context scenarios using historical data about various modules (e.g., functions) of different applications within an enterprise, and the historical data can be used to predict the criticality of various modules or functions of the applications to be maintained and running for any identified context situation. Historical data may include traffic pattern trends, daily / hourly data streams (e.g., at the end of the month, the payroll processing module of a Human Resources application needs to be maintained), application usage, departmental usage metrics (e.g., the Human Resources department has data on how frequently a particular application is used and when a particular application is most needed for department operations), different times of day that an application module is used, duration of usage of different modules, number of concurrent users of an application or modules of an application, how an application module is used in the workflow of other modules (e.g., tasks of different application modules may need to be performed in parallel or sequentially without large time gaps), data flow direction from one application module to another, impact of lack of operation of an application module on the enterprise (e.g., business needs, financial repercussions, operational impacts), etc.
[0016] In some embodiments, an AI system may be trained using historical data capturing usage records of each and every module of different applications. In some embodiments, the AI system may be trained to identify critical applications based on usage patterns during context scenarios, based on user feedback, or based on scheduling requirements for the hardware on which the application modules run (e.g., an application module may perform a very computationally intensive task and may run on several servers on a server rack where a company's applications run from 9:00 AM to 5:00 PM, thus making the execution of the computationally intensive application module before 9:00 AM critical).
[0017] In some embodiments, the AI system may be trained using unsupervised learning. In some embodiments, the AI system may be trained using supervised learning. In some embodiments, modules may be tagged to identify the module's function and contextual situations in which the module's function is critical. In some embodiments, the AI system may be trained to predict contextual situations during which an application module may be critical using means-shift clustering techniques. Means-shift clustering techniques may be used to determine when different application modules are used, which data center modules (e.g., data center racks or units) are used for the application modules, the duration of use of different application modules, the number of processing units required for different application modules, etc.
[0018] Continuing with the previous example, using historical data, an AI system may be trained to identify a month-end context scenario in which a paycheck direct deposit application module of an HR department payroll application is critical to the business at that time. The AI system may determine that the paycheck direct deposit application module is critical based at least in part on historical heat patterns of the hardware on which the application module executes, which provides an identification of the application module's usage pattern. The AI system may determine that other application modules of the HR department payroll application are involved in the application's critical functionality at the end of the month based on usage patterns determined at least in part on heat patterns of the hardware on which they execute. In some embodiments, an AI system may be trained to identify a context scenario (e.g., users having specific resource needs under certain circumstances) and determine whether a resource (e.g., hardware such as a server rack in a data center) is predicted to be busy in the future based on expected workloads.
[0019] In some embodiments, the processor may use the AI system to identify required hardware resources for the application module to function during the context scenario. In some embodiments, the required resources may include power required for the application module (e.g., the application module determined to be critical) to operate. In some embodiments, the required resources may include computational resources (e.g., CPU, GPU) required for the application module to operate. In some embodiments, the required resources may include power or computational resources required for other application modules whose functionality (e.g., operability) is related to (e.g., required for) the functionality of the application module determined to be critical.
[0020] In some embodiments, the AI system may analyze historical usage patterns of various application modules and analyze the power requirements to maintain critical application modules and keep them running (e.g., operational). In some embodiments, the predicted power requirements may be based on collected context information (e.g., time, date, and pattern of use). In some embodiments, the AI system may analyze the power requirements to cool the hardware on which the application modules are running and analyze data regarding contextual scenarios related to cooling. In some embodiments, the AI system may be trained using data regarding energy expenditures and energy consumption. In some embodiments, metered usage data may be obtained directly from power appliances and consuming devices.
[0021] In some embodiments, the optimal power needed may be calculated as a minimum baseline level for a function so that additional power can be allocated to all other required elements. In some embodiments, the baseline level may be continuously monitored and adapted based on collected contextual information (e.g., time, date, and pattern of use).
[0022] As an example, an AI system may interpolate the power needed for each module (e.g., server unit or rack) in a data center. The power needed for each data center module may be determined based on duration of execution, number of processing units, raw data provided by the operating system about CPU usage, processing power, API call usage, a breakdown of total power consumption, etc. Data about power requirements may be correlated with information about the context scenario, including time data, data about the function of the data center module, geographic location, and tagged needs (e.g., needs specified by the entity that uses or owns the application).
[0023] In some embodiments, the processor may allocate the availability of required resources for the application modules. In some embodiments, the processor may take remedial action to ensure that the allocated resources are available to the application modules. For example, if a critical application module requires 3 watts of power to operate long enough to complete its function and a non-critical application module requires 2 watts to complete its function when only 4 watts total power is available, the hardware running the non-critical application module may be rendered inoperable (e.g., shut off, placed in sleep mode, receive little to no power). In some embodiments, the processor may send the application module to run on another device (e.g., another server in a data center, a cloud, fog, or edge device) to ensure the availability of required resources for the critical application module.
[0024] For example, a non-critical application module may be running on a first server in a data center with backup power, and the non-critical application module may be pushed to another server to leave enough power for the critical application module running on the first server. As another example, a critical application module may be pushed to the cloud, another data center server, or an edge device. In some embodiments, remedial actions to ensure that the critical application module has the necessary resources may depend on the context scenario and the resources (e.g., power, compute resources) available on the device (e.g., the data center server, the cloud, or the edge device). For example, if it is predicted that the second data center server will fully utilize its power and compute resources due to future work scheduled to be performed on the second data center server, the critical application module may not be pushed from the data center server with limited backup power to the second data center server. In some embodiments, in applications with a microservices architecture, application modules may be streamed, transformed into minimal systems, and combined onto fewer physical devices to reduce power needs.
[0025] In some embodiments, determining that an application module is critical based on the context scenario may include identifying each of one or more application modules accessed during the context scenario. In some embodiments, the processor may identify that the application module was accessed more than an access threshold amount. For example, the context scenario may include the first two hours of a work week for a particular business. The context scenario may be associated with a date, a time, and several applications and application modules labeled as belonging to the particular business. The processor may identify each and every application module of the application modules labeled as belonging to the business accessed by the user during the two-hour period. In some embodiments, the application module may be identified as belonging to the particular business by an AI system. In some embodiments, the application module may be identified as belonging to the particular business based on data provided by the particular business (e.g., the application module may be pre-labeled by the particular business). Continuing with this example, if an application module that allows a user access to email is accessed more than a threshold number of times during a context scenario (e.g., a two-hour period), the processor may determine that the application module is a critical application module.
[0026] In some embodiments, allocating the required resource availability for the application module may include identifying a second critical application module. In some embodiments, the processor may rank the priority of the second critical application module above the priority of the application module. For example, the second critical application module may be identified by the AI system based on the number of times the second critical application module was accessed during the context scenario. For example, the second critical application module may have been accessed more than an access threshold amount. In some embodiments, the priority of the second critical application module may be determined based on the number of times the second critical application module was accessed being greater than the number of times the application module was accessed. In some embodiments, the priority of the second critical application module may be ranked above the priority of the application module based on user feedback (e.g., the priority ranking is provided by tagged input to the AI system).
[0027] In some embodiments, the processor may detect a workflow of the application. In some embodiments, the processor may identify additional application modules in a workflow sequence from detecting the workflow of the application. In some embodiments, the processor may identify required resources for the additional application modules. In some embodiments, the processor may allocate a second availability of required resources for the additional application modules.
[0028] For example, the processor may detect that an additional application module performs tasks that must be completed before the tasks performed by the critical application module can begin within a certain time frame (e.g., by checking API calls, it may be determined that the additional application module has a call to the critical application module, and that the critical application module will then begin executing within minutes). The processor may determine that the additional application module is in the workflow of the critical application module. An AI system may be utilized to determine the required resources for the additional application module (e.g., the power or computational resources the additional application module requires to execute). The processor may allocate a second availability of the required resources for the additional application module. The required resources may be allocated to the additional application module by shutting down other application modules, conserving the required resources in other manners, or pushing the critical application module, the additional application module, or both to a different device (e.g., a data center server, an edge device, or the cloud).
[0029] In some embodiments, the workflow of a critical application may include processes (and their application modules) that execute sequentially (e.g., in close time sequence) or in parallel with the critical application. In some embodiments, the workflow of a critical application module may include processes that are determined to execute with the critical application module based on usage patterns of the critical application (e.g., heat detection by hardware performing the processing or based on clustering of similar processes, or both) that occur within usage patterns associated with the critical application (e.g., running for the same duration, simultaneously, shortly after, etc.).
[0030] In some embodiments, the additional application module may include a specific activity within a workflow. In some embodiments, after a specific activity within a workflow is completed, the additional application module may be shut down. For example, before connecting a device to a business's secure applications, including a secure email account, the additional application may perform a specific activity that checks the security level of the internet connection. In some embodiments, after the security level of the internet connection has been checked, the additional application may be shut down to conserve power or computing resources.
[0031] In some embodiments, the processor may identify that a data center for executing the application module and the additional application module is operating using backup power. In some embodiments, the application module and the additional application module may be processed on modules in the data center. In some embodiments, the modules in the data center may be physically transported closer to one another. For example, when the application module and the additional application module are processed on modules in the data center (e.g., servers on a server rack or units in the data center) and the data center has limited power resources (e.g., due to a power outage), the processor may evaluate how to allocate the data center's limited power resources to the critical application module and the additional application module. If the application module is processed on a data center module different from the data center module on which the additional application module is processed, the different data center modules may be physically transported closer to one another. By physically transporting the data center modules closer to one another, power resources used to cool the data center modules may be utilized more efficiently. In some embodiments, the data center modules may be mobile, either self-mobile or movable by a robotic system.
[0032] In some embodiments, the processor may predict the duration of backup power usage. In some embodiments, the duration of backup power may be predicted using an AI system. In some embodiments, the AI system may be trained utilizing data regarding the reason for the power outage (e.g., mechanical failure, electrical failure, natural disaster, etc.) and data regarding the time for power improvement / restoration. In some embodiments, available backup power may be determined repeatedly, at regular time intervals, or both.
[0033] In some embodiments, the criticality of application modules may be evaluated based on the amount of available backup power. In some embodiments, when the criticality of application modules is compared and prioritized, some critical application modules may be given power before other critical application modules. In some embodiments, the AI system may analyze and determine context scenarios during which resources (e.g., power or processing resources) may be limited. This may be, for example, at the beginning of the month, the end of the month, or during a timeline related to an annual budget. In some embodiments, the AI system may provide predictions regarding usage restrictions (e.g., due to limited resources), and usage needs may be calculated and addressed as needed.
[0034] Referring now to FIG. 1, a block diagram of a system 100 for allocating resources for critical application modules is shown. The system 100 includes an edge device 102 and a cloud computing network 104. The cloud computing network 104 includes a system device 106 on which an AI system 108 operates. The cloud computing network 104 also includes a data center server 110A and a data center server 110B. The edge device 102, the system device 106, the data center server 110A, and the data center server 110B are configured to communicate with each other. The edge device 102 and the system device 106 may be any device including a processor configured to perform one or more of the functions or steps described in this disclosure.
[0035] In some embodiments, a processor of system device 106 analyzes an application running on data center server 110A. In some embodiments, the application includes one or more application modules (first application module 112, second application module 114, and third application module 116). Using AI system 108, the processor determines that an application module (e.g., first application module 112) of the one or more application modules is critical based on a context scenario. The AI system determines that first application module 112 is critical based at least in part on the heat of the hardware on which first application module 112 executes. Sensors (not shown) on data center server 110A, data center server 110B, and edge device 102 provide sensor data to AI system 108 regarding the heat of the hardware on those devices. The processor identifies the hardware resource requirements for first application module 112 to function during the context scenario. The processor allocates the required resource availability to the application modules.
[0036] In some embodiments, the processor may take remedial action to ensure allocated resources are available for the first application module 112. For example, a non-critical application module running on data center server 110A may be shut off. If resources are available for a critical application module on data center server 110B or edge device 102, the first application module 112 may be pushed from data center server 110A to data center server 110B or edge device 102.
[0037] In some embodiments, the processor may determine that the first application module 112 is critical based on the context scenario by identifying each of one or more application modules accessed during the context scenario and identifying application modules accessed more than an access threshold amount. In some embodiments, the processor may utilize the AI system 108 to identify a second critical application module, such as the second application module 114 running on the data center server 110A. In some embodiments, the processor may prioritize the second application module 114 for receiving required resources (e.g., power or computational resources) higher than the priority of the first application module 112.
[0038] In some embodiments, the processor may detect a workflow of the application and identify an additional application module in the workflow, for example, a third application module 116. In some embodiments, the processor may identify required resources for the third application module 116 and allocate a second availability of the required resources for the third application module 116. In some embodiments, the third application module 116 may include a specific activity in the workflow. In some embodiments, the processor may shut down the third application module 116 after the specific activity in the workflow is completed.
[0039] In some embodiments, the processor may identify that the data center server 110A for processing the first application module 112, the second application module 114, and the third application module 116 is operating using backup power. The data center modules (e.g., units or racks) on which the first application module 112, the second application module 114, and the third application module 116 are running may be physically transported to be closer to each other.
[0040] Referring now to FIG. 2 , a flowchart of an exemplary method 200 according to an embodiment of the present disclosure is shown. In some embodiments, a processor of an AI system may perform the operations of method 200. In some embodiments, method 200 begins with operation 202. At operation 202, a processor uses the AI system to analyze an application, the application including one or more application modules. In some embodiments, method 200 proceeds to operation 204, where the processor uses the AI system to determine that the application module is critical based on a context scenario. In some embodiments, the AI system is trained using data related to heat generation of hardware on which the application module is running. In some embodiments, method 200 proceeds to operation 206. At operation 206, the processor uses the AI system to identify required hardware resources for the application module to function during the context scenario. In some embodiments, method 200 proceeds to operation 208. At operation 208, the processor allocates the availability of the required resources for the application module.
[0041] As discussed in more detail herein, it is contemplated that some or all of the operations of method 200 may be performed in an alternate order or not at all, and further, multiple operations may be performed simultaneously or as part of a larger process.
[0042] Although this disclosure includes detailed descriptions of cloud computing, it should be understood that implementation of the teachings described herein is not limited to cloud computing environments. Rather, embodiments of the present disclosure may be implemented in conjunction with any other type of computing environment yet unknown or later developed.
[0043] 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 rapidly provisioned and released with minimal administrative effort or interaction between the provider of the service. This cloud model can include at least five characteristics, at least three service models, and at least four deployment models.
[0044] The features are as follows:
[0045] On-Demand Self-Service: Cloud consumers can unilaterally provision computing capabilities, such as server time and network storage, automatically as needed without the need for human interaction with the provider of the service.
[0046] Broad network access: Capabilities are available over the network and accessed through standard mechanisms that facilitate use by heterogeneous thin or thick client platforms (e.g., cell phones, laptops, and PDAs).
[0047] 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 according to demand. Consumers generally have no control or knowledge of the exact portion of resources provided to them, but there is a sense of portion independence in that they may be able to specify portions at a higher level of abstraction (e.g., country, state, or data center).
[0048] Rapid Elasticity: Features can be provisioned quickly and elastically, in some cases automatically, scaled out quickly, released quickly, and scaled in quickly. To the consumer, the features available for provisioning often appear unlimited, and any quantity can be purchased at any time.
[0049] Measured Service: Cloud systems automatically control and optimize resource usage by leveraging measurement capabilities at a 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, enabling transparency for both providers and consumers of the services being utilized.
[0050] The service model is as follows:
[0051] Software as a Service (SaaS): The functionality offered to the consumer is the use of the provider's applications running on a cloud infrastructure. The applications are accessible from a variety of client devices through thin-client interfaces such as web browsers (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even individual application functions, with the possible exception of limited user-specific application configuration settings.
[0052] Platform as a Service (PaaS): The functionality offered to consumers is the deployment of consumer-created or acquired applications, written using programming languages and tools supported by the provider, onto a cloud infrastructure. The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, or storage, but does have control over the deployed applications and, in some cases, the application hosting environment configuration.
[0053] Infrastructure as a Service (IaaS): The functionality provided to consumers is the provisioning of processing, storage, network, and other basic computing resources onto which they can deploy and run any software, which may include operating systems and applications. Consumers do not manage or control the underlying cloud infrastructure, but they do have control over the operating systems, storage, deployed applications, and sometimes limited control over select networking components (e.g., host firewalls).
[0054] The deployment model is as follows:
[0055] Private Cloud: The cloud infrastructure is operated solely for the organization. The cloud infrastructure can be managed by the organization or a third party and can exist on-premise or off-premise.
[0056] Community Cloud: Cloud infrastructure is shared by several organizations to support a specific community with shared interests (e.g., mission, security requirements, policies, and compliance considerations). The cloud infrastructure may be managed by the organization or a third party and may exist on-premises or off-premises.
[0057] Public cloud: Cloud infrastructure is made available to the general public or large industry groups and is owned by an organization that sells cloud services.
[0058] Hybrid Cloud: A composition of two or more clouds (private, community, or public) where the cloud infrastructure remains a unique entity but is bound together by standardized or proprietary technologies that enable data and application portability (e.g., cloud bursting for load balancing between clouds).
[0059] A cloud computing environment is a service that focuses on statelessness, low coupling, modularity, and semantic interoperability. At the heart of cloud computing is an infrastructure that includes a network of interconnected nodes.
[0060] 3A illustrates a cloud computing environment 310. As illustrated, the cloud computing environment 310 includes one or more cloud computing nodes 300 with which local computing devices used by cloud consumers, such as, for example, a personal digital assistant (PDA) or cellular phone 300A, a desktop computer 300B, a laptop computer 300C, or an automobile computer system 300N, or combinations thereof, may communicate. The nodes 300 may communicate with each other. The cloud computing environment 310 may be physically or virtually grouped into one or more networks (not shown), such as private, community, public, or hybrid clouds, or combinations thereof, as previously described.
[0061] This enables the cloud computing environment 310 to provide infrastructure, platform, and / or software as a service without requiring cloud consumers to maintain resources on their local computing devices. It should be understood that the types of computing devices 300A-N shown in Figure 3A are exemplary only, and that the computing nodes 300 and the cloud computing environment 310 may communicate with any type of computerized device over any type of network and / or network-addressable connection (e.g., using a web browser).
[0062] Figure 3B illustrates a set of functional abstraction layers provided by cloud computing environment 310 (Figure 3A). It should be understood that the components, layers, and functions illustrated in Figure 3B are merely exemplary, and embodiments of the present disclosure are not limited thereto. As shown below, the following layers and corresponding functions are provided:
[0063] Hardware and software layer 315 includes hardware and software components. Examples of hardware components include mainframe 302, RISC (reduced instruction set computer) architecture-based server 304, server 306, blade server 308, storage device 311, and network and networking components 312. In some embodiments, software components include network application server software 314 and database software 316.
[0064] The virtualization layer 320 provides an abstraction layer at which the following examples of virtual entities can be provided: virtual servers 322, virtual storage 324, virtual networks 326 including virtual private networks, virtual applications and operating systems 328, and virtual clients 330.
[0065] By way of example, management layer 340 may provide the functions described below. Resource provisioning 342 enables dynamic acquisition of computing and other resources utilized to perform tasks within the cloud computing environment. Metering and pricing 344 enables cost tracking as resources are utilized within the cloud computing environment and charging or billing for the consumption of such resources. By way of example, such resources may include application software licenses. Security enables identity verification for cloud consumers and tasks, as well as protection for data and other resources. User portal 346 enables access to the cloud computing environment for consumers and system administrators. Service level management 348 enables cloud computing resource allocation and management to ensure required service levels are met. Service level agreement (SLA) planning and fulfillment 350 enables pre-configuration and acquisition of cloud computing resources in anticipation of future requirements according to SLAs.
[0066] Workload layer 360 provides examples of functions for which a cloud computing environment may be utilized. Examples of workloads and functions that may be provided from this layer include mapping and navigation 362, software development and lifecycle management 364, virtual classroom instructional delivery 366, data analytics processing 368, transaction processing 370, and allocating resources for critical application modules based on context scenarios 372.
[0067] 4 illustrates a high-level block diagram of an exemplary computer system 401 that may be used to implement one or more of the methods, tools, modules, and any associated functionality described herein (e.g., using one or more processor circuits or computer processors of a computer) in accordance with embodiments of the present disclosure. In some embodiments, the main components of computer system 401 may include one or more CPUs 402, a memory subsystem 404, a terminal interface 412, a storage interface 416, an I / O (input / output) device interface 414, and a network interface 418, all of which may be communicatively coupled, directly or indirectly, for inter-component communication via a memory bus 403, an I / O bus 408, and an I / O bus interface unit 410.
[0068] Computer system 401 may include one or more general-purpose programmable central processing units (CPUs) 402A, 402B, 402C, and 402D, generally referred to herein as CPUs 402. In some embodiments, computer system 401 may include multiple processors typical of relatively large systems, although in other embodiments, computer system 401 may alternatively be a single CPU system. Each CPU 402 may execute instructions stored in memory subsystem 404 and may include one or more levels of on-board cache.
[0069] System memory 404 may include computer system-readable media in the form of volatile memory, such as random access memory (RAM) 422 or cache memory 424. Computer system 401 may further include other removable / non-removable, volatile / non-volatile computer system storage media. By way of example only, storage system 426 may be provided for reading from and writing to non-removable, non-volatile magnetic media, such as a "hard drive." Although not shown, a magnetic disk drive may be provided for reading from and writing to removable, non-volatile magnetic disks (e.g., "floppy disks"), or an optical disk drive may be provided for reading from and writing to removable, non-volatile optical disks, such as CD-ROMs, DVD-ROMs, or other optical media. Additionally, memory 404 may include flash memory, such as a flash memory stick drive or flash drive. Memory devices may be connected to memory bus 403 by one or more data media interfaces. The memory 404 may include at least one program product having a set (eg, at least one) program module configured to implement the functionality of various embodiments.
[0070] One or more programs / utilities 428, each having at least one set of program modules 430, may be stored in memory 404. The programs / utilities 428 may include a hypervisor (also called a virtual machine monitor), one or more operating systems, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data, or some combination thereof, may include an implementation of a networking environment. The programs 428 and / or program modules 430 generally implement the functions or methods of various embodiments.
[0071] 4 depicts memory bus 403 as a single bus structure providing a direct communication path between CPU 402, memory subsystem 404, and I / O bus interface 410, in some embodiments memory bus 403 may include multiple distinct buses or communication paths, which may be configured in any of a variety of forms, such as point-to-point links in a hierarchical, star, or web configuration, multiple hierarchical buses, parallel and redundant paths, or any other suitable type of configuration. Additionally, while I / O bus interface 410 and I / O bus 408 are depicted as single respective units, in some embodiments computer system 401 may include multiple I / O bus interface units 410, multiple I / O buses 408, or both. Additionally, while multiple I / O interface units are depicted separating I / O bus 408 from the various communication paths extending to the various I / O devices, in other embodiments some or all of the I / O devices may be directly connected to one or more system I / O buses.
[0072] In some embodiments, computer system 401 may be a multi-user mainframe computer system, a single-user system, or a server computer or similar device that has little or no direct user interface but receives requests from other computer systems (clients). Further, in some embodiments, computer system 401 may be implemented as a desktop computer, a portable computer, a laptop or notebook computer, a tablet computer, a pocket computer, a telephone, a smartphone, a network switch or router, or any other suitable type of electronic device.
[0073] It should be noted that Figure 4 is intended to illustrate representative major components of exemplary computer system 401. However, in some embodiments, individual components may have greater or less complexity than those depicted in Figure 4, components other than or in addition to those depicted in Figure 4 may be present, and the number, type, and arrangement of such components may vary.
[0074] As discussed in more detail herein, it is contemplated that some or all of the operations of some of the method embodiments described herein may be performed in an alternate order or not at all, and further, multiple operations may be performed simultaneously or as an internal part of a larger process.
[0075] The present disclosure may be a system, method, or computer program product, or combination thereof, at any possible level of technical detail of integration. The computer program product may include a computer-readable storage medium having computer-readable program instructions thereon for causing a processor to implement aspects of the present disclosure.
[0076] A computer-readable storage medium may be a tangible device that can hold and store instructions for use 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 above. A non-exhaustive list of more specific examples of computer-readable storage media includes: portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory sticks, floppy disks, mechanically encoded devices such as punch cards or ridge structures in grooves with instructions recorded thereon, and any suitable combination of the above. As used herein, computer-readable storage media should not be construed as signals that are transitory in nature, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., light pulses passing through fiber optic cable), or electrical signals transmitted through wires.
[0077] The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to each computing / processing device or to an external computer or storage device via a network, such as the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. The network may include copper transmission cables, optical fiber transmissions, wireless transmissions, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. A network adapter card or network interface within each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium within the respective computing / processing device.
[0078] Computer-readable program instructions for carrying out the operations of the present disclosure may be assembler instructions, instruction set architecture (ISA) instructions, machine language instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, configuration data for integrated circuits, or source 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 the "C" programming language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer, partially on the user's computer as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may 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 the connection may be to an external computer (e.g., through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA) may execute computer-readable program instructions by utilizing state information of the computer-readable program instructions to individualize the electronic circuitry to implement aspects of the present disclosure.
[0079] Aspects of the present disclosure are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present disclosure. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.
[0080] These computer-readable program instructions may be provided to a processor of a computer or other programmable data processing apparatus, such that the instructions, executed by the processor of the computer or other programmable data processing apparatus, produce means for implementing the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams, to create a machine. These computer-readable program instructions may also be stored in a computer-readable storage medium that can direct a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular way, such that the computer-readable storage medium storing the instructions comprises an article of manufacture containing instructions that implement aspects of the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.
[0081] The computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device such that the instructions, which execute on the computer, other programmable apparatus, or other device, implement the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams, causing the computer, other programmable apparatus, or other device to perform a series of operational steps to create a computer-implemented process.
[0082] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of instructions, including one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions described in the blocks may occur in an order other than that described in the figures. For example, two blocks shown in succession may actually be performed as a single step that is performed simultaneously, approximately simultaneously, in a partially or completely overlapping manner, or the blocks may sometimes be performed in the reverse order, depending on the functionality involved. It will also be noted that each block in the block diagrams and / or flowchart diagrams, and combinations of blocks in the block diagrams and / or flowchart diagrams, may be implemented by a dedicated hardware-based system that performs the specified function or operation or a combination of dedicated hardware and computer instructions.
[0083] While the description of various embodiments of the present disclosure has been presented for illustrative purposes, the description is not exhaustive and is not intended to be limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terms used herein are chosen to best explain the principles of the embodiments, practical applications or technical improvements over technology found in the market, or to enable others skilled in the art to understand the embodiments disclosed herein.
[0084] While the present disclosure has been described in terms of particular embodiments, it is anticipated that alternatives and modifications thereof will become apparent to those skilled in the art. It is, therefore, intended that the following claims be interpreted to cover all such alternatives and modifications as fall within the true spirit and scope of the present disclosure. [Explanation of symbols]
[0085] 100 systems 102 Edge Devices 104 Cloud Computing Network 106 System Devices 108 AI Systems 110A Data Center Server 110B Data Center Server 112 First Application Module 114 Second Application Module 116 Third Application Module 300 cloud computing nodes 300A Personal Digital Assistant (PDA) or Cellular Phone, Computing Device 300B Desktop Computer, Computing Device 300C Laptop Computer, Computing Device 300N Automotive Computer Systems, Computing Devices 302 Mainframe 304 RISC (Reduced Instruction Set Computer) Architecture-Based Servers 306 Server 308 Blade Server 310 Cloud Computing Environment 311 Storage Devices 312 Networks and Networking Components 314 Network Application Server Software 315 Hardware and Software Layers 316 Database Software 320 Virtualization Layer 322 Virtual Servers 324 Virtual Storage 326 Virtual Networks 328 Virtual Applications and Operating Systems 330 Virtual Clients 340 Management layer 342 Resource Provisioning 344 Measurement and Pricing 346 User Portal 348 Service Level Management 350 Service Level Agreement (SLA) Planning and Implementation 360 workload tier 362 Mapping and Navigation 364 Software Development and Lifecycle Management 366 Virtual Classroom Education Delivery 368 Data Analysis Processing 370 Transaction Processing 401 Computer Systems 402 CPU 402A General Purpose Programmable Central Processing Unit (CPU) 402B General Purpose Programmable Central Processing Unit (CPU) 402C General-Purpose Programmable Central Processing Unit (CPU) 402D General-Purpose Programmable Central Processing Unit (CPU) 403 Memory Bus 404 Memory Subsystem, System Memory 408 I / O bus 410 I / O Bus Interface Unit 412 Terminal Interface 414 I / O (Input / Output) Device Interface 416 Storage Interface 418 Network Interface 422 Random Access Memory (RAM) 424 Cache Memory 426 Memory System 428 Programs / Utilities 430 program modules
Claims
1. 1. A computer-implemented method comprising: analyzing an application using an AI system, the application including one or more application modules; using the AI system to assess the criticality of an application module based on a context scenario to determine that the application module is critical, wherein the AI system is trained to predict criticality using heat data of hardware on which the application module is running; using the AI system to identify required resources for the hardware for the application module to function during the context scenario; allocating the availability of the required resources for the application modules; 11. A computer-implemented method comprising:
2. determining that the application module is critical based on the context scenario; identifying each of the one or more application modules that is accessed during the context scenario; identifying that the application module has been accessed more than an access threshold amount; The method of claim 1 , comprising:
3. allocating the required resource availability for the application module; identifying a second critical application module; ranking the priority of the second critical application module above the priority of the application module; 3. The method of claim 1 or 2, comprising:
4. Detecting a workflow of the application; identifying additional application modules within the workflow from said detecting; identifying resource requirements for the additional application module; allocating a second availability of required resources for the additional application module; The method of any one of claims 1 to 3, further comprising:
5. the additional application module comprises a specific activity within the workflow; The method comprises: Shutting down the additional application module after the particular activity in the workflow is completed. The method of claim 4 further comprising:
6. identifying a data center for running the application module and the additional application module is operating using backup power; physically transporting modules of the data center into proximity with one another, the application module and the additional application module being processed on the modules of the data center; The method of claim 4 or 5, further comprising:
7. Predicting the duration of use of the backup power. The method of claim 6 further comprising:
8. 1. A system comprising: Memory and a processor in communication with the memory, wherein the system comprises: analyzing an application using an AI system, the application including one or more application modules; using the AI system to assess the criticality of an application module based on a context scenario to determine that the application module is critical, wherein the AI system is trained to predict criticality using heat data of hardware on which the application module is running; using the AI system to identify required resources for the hardware for the application module to function during the context scenario; allocating the availability of the required resources for the application modules; configured to perform operations including A system comprising:
9. determining that the application module is critical based on the context scenario; identifying each of the one or more application modules that is accessed during the context scenario; identifying that the application module has been accessed more than an access threshold amount; The system of claim 8 , comprising:
10. allocating the required resource availability for the application module; identifying a second critical application module; ranking the priority of the second critical application module above the priority of the application module; 10. The system of claim 8 or 9, comprising:
11. the processor: Detecting a workflow of the application; identifying additional application modules within the workflow from said detecting; identifying resource requirements for the additional application module; allocating a second availability of required resources for the additional application module; The system of any one of claims 8 to 10, further configured to perform operations including:
12. the additional application module includes a specific activity within the workflow, and the processor: Shutting down the additional application module after the particular activity in the workflow is completed. The system of claim 11 , further configured to perform operations including:
13. the processor: identifying a data center for running the application module and the additional application module is operating using backup power; physically transporting modules of the data center into proximity with one another, the application module and the additional application module being processed on the modules of the data center; 13. The system of claim 11 or 12, further configured to perform operations including:
14. A computer program for causing a computer to execute the computer-implemented method according to any one of claims 1 to 7.
15. A computer-readable recording medium on which the computer program according to claim 14 is recorded.
Citation Information
Patent Citations
A performance monitoring system for high performance computing applications
CN111813626A
Creating statistical analyses of data for transmission to servers
CN112005207A
Systems and methods for intelligent controls for optimal resource allocation for data center operations
US20170187592A1