Computer-Implemented Method, Computer System, and Computer Program Product (Fault Management in Edge Computing Environments)

The method and system dynamically manage edge device failures by using a task wrapper, checker, and canceller modules to reassign tasks and verify results, addressing the challenges of unstable connections and ensuring high availability and resource efficiency in edge computing environments.

JP7725135B2Active Publication Date: 2025-08-19INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2021172268
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-10-25
Filing Date
2021-10-21
Publication Date
2025-08-19
Estimated Expiration
2041-10-21

AI Technical Summary

Technical Problem

Existing edge computing environments face challenges in managing frequent failures of edge devices due to unstable connections, leading to task execution failures and resource wastage.

Method used

A computer-implemented method and system that includes a task wrapper module, task checker module, and task canceller module to manage failures by suspending the defined process, reassigning tasks to alternate devices, and verifying task results, ensuring high availability and resource efficiency.

Benefits of technology

The solution effectively manages failures in edge computing environments by ensuring high availability and resource efficiency, even in the presence of unstable connections and device failures.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007725135000002
    Figure 0007725135000002
  • Figure 0007725135000003
    Figure 0007725135000003
  • Figure 0007725135000004
    Figure 0007725135000004
Patent Text Reader

Abstract

To dynamically manage failures in edge computing environments.SOLUTION: A computer implementation method for dynamically managing failures in edge computing environments, a computer system, and a computer program product are provided. According to the method, in accordance with a defined process that is used to schedule tasks to be executed on edge devices, a request for executing the task can be transmitted to a first edge device. If the first edge device fails in executing the task, the defined process can be suspended. Then, the request for executing the task can be transmitted to a second edge device. A task result that is received first can be taken as the task result for the task, where the task is either from the first edge device or the second edge device. Then, remaining portions of the defined process can be continued.SELECTED DRAWING: Figure 9
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates generally to computer technology, and more particularly to methods, systems, and computer program products for dynamically managing failures in edge computing environments. [Background technology]

[0002] With the development of cloud computing and Internet of Things (IoT) technologies, edge computing is gaining attention as a new direction for achieving more powerful computing capabilities. In the IoT field, "edge" refers to computing infrastructure located close to the source of data, such as industrial machines, industrial controllers, industrial sensors, and mobile devices. The machine / device that generates the data is sometimes called an edge device. Edge devices are typically located far from the centralized computing resources available in the cloud. Edge computing allows information technology (IT) administrators to reduce the amount of data traffic to cloud data centers by moving some applications, data processing, and models from central cloud data centers to the edge, closer to the edge devices. Summary of the Invention [Problem to be solved by the invention]

[0003] The present disclosure aims to provide a method, system, and computer program product for dynamically managing failures that occur in edge devices in an edge computing environment. [Means for solving the problem]

[0004] According to one embodiment of the present disclosure, a computer-implemented method for dynamically managing failures in an edge computing environment is provided. The computer-implemented method can send a request to execute a task to a first edge device according to a defined process used to schedule tasks to be executed on the edge devices. If the first edge device fails to execute the task, the defined process is suspended. Then, the request to execute the task is sent to a second edge device. A task result received first from either the first edge device or the second edge device can be the task result for the task. The method further includes continuing with the remainder of the defined process.

[0005] According to another embodiment of the present disclosure, there is provided a computer system for dynamically managing failures in an edge computing environment, the computer system including one or more processors and a computer-readable memory coupled to the one or more processors, the computer-readable memory including instructions that, when executed by the one or more processors, perform the operations of the method described above.

[0006] According to yet another embodiment of the present disclosure, there is provided a computer program product for dynamically managing failures in an edge computing environment, the computer program product including a computer-readable storage medium having program instructions embodied therein, the program instructions being executable by a processor to cause the processor to perform the operations of the method described above. [Brief explanation of the drawings]

[0007] In order to make the above and other objects, features, and advantages of the present disclosure more apparent, several embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Similar elements in the embodiments of the present disclosure will essentially be designated by the same reference numerals.

[0008] [Figure 1]FIG. 1 is a schematic diagram illustrating an example computer system / server according to an embodiment of the present disclosure. [Figure 2] FIG. 2 is a diagram illustrating a cloud computing environment in accordance with an embodiment of the present disclosure. [Figure 3] FIG. 3 is a diagram illustrating abstraction model layers according to an embodiment of the present disclosure. [Figure 4] FIG. 4 illustrates an example of an edge computing environment, according to some embodiments of the present disclosure. [Figure 5] FIG. 5 illustrates an example of an edge computing environment, according to some embodiments of the present disclosure. [Figure 6] FIG. 6 is a diagram illustrating an example of a fault management system according to some embodiments of the present disclosure. [Figure 7A] FIG. 7A illustrates an example scenario of a fault management process, according to some embodiments of the present disclosure. [Figure 7B] FIG. 7B illustrates another example scenario of a fault management process, according to some embodiments of the present disclosure. [Figure 7C] FIG. 7C illustrates yet another example scenario of a fault management process, according to some embodiments of the present disclosure. [Figure 8] FIG. 8 is a flowchart illustrating an example method for dynamically managing tasks in an edge computing environment, according to some embodiments of the present disclosure. [Figure 9] FIG. 9 is a flowchart illustrating another example method for dynamically managing tasks in an edge computing environment, according to some embodiments of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION

[0009] Some embodiments of the present disclosure will now be described in more detail with reference to the accompanying drawings, which illustrate some embodiments of the present disclosure, but which should not be construed as being limited to the disclosed embodiments, as the present disclosure may be embodied in various forms.

[0010] Although this disclosure includes detailed descriptions of cloud computing, implementation of the teachings described herein is not limited to cloud computing environments. Rather, embodiments of the invention can be practiced in conjunction with any other type of computing environment now known or later developed.

[0011] 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 management effort or interaction with the service provider. This cloud model may include at least five characteristics, at least three service models, and at least four implementation models.

[0012] The characteristics are as follows: On-Demand Self-Service: Cloud consumers can unilaterally provision computing capacity, such as server time or network storage, automatically as needed, without the need for human interaction with the service provider. Broad network access: Computing power is available over the network and can be accessed through standard mechanisms, facilitating use by heterogeneous thin or thick client platforms (e.g., cell phones, laptops, PDAs). Resource Pooling: Computing resources from a provider are pooled and offered to multiple consumers using a multi-tenant model. Various physical and virtual resources are dynamically allocated and reallocated based on demand. Consumers generally have no control or knowledge of the exact location of the resources they are offered, so there is a sense of location independence. However, consumers may be able to identify their location at a higher level of abstraction (e.g., country, state, data center). Rapid Elasticity: Computing capacity can be provisioned quickly and elastically, sometimes automatically, to instantly scale out and quickly released to instantly scale in. To the consumer, the computing capacity available for provisioning often appears unlimited, and can be purchased at any time and in any quantity. Metered Services: Cloud systems leverage measurement capabilities at a level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, active user accounts) to automatically control and optimize resource usage. Resource usage can be monitored, controlled, and reported to provide transparency to both providers and consumers of utilized services.

[0013] The service model is as follows: Software as a Service (SaaS): The functionality offered to the consumer is the use of a provider's applications running on a cloud infrastructure. The applications can be accessed from a variety of client devices through a thin client interface such as a web browser (e.g., webmail). The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even individual application functions, except for limited user-specific application configuration settings. Platform as a Service (PaaS): The consumer is provided with the ability to deploy applications they create or acquire 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 configuration of their hosting environment. Infrastructure as a Service (IaaS): The functionality provided to consumers is the provisioning of processors, storage, networking, and other basic computing resources on which the consumer can deploy and run any software, including operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure, but has control over the operating system, storage, and deployed applications, and in some cases partial control over some network components (e.g., host firewalls).

[0014] The deployment model is as follows: Private Cloud: This cloud infrastructure is dedicated to a specific organization and can be managed by that organization or a third party, and can exist on-premise or off-premise. Community Cloud: This cloud infrastructure is shared by multiple organizations to support a specific community with common concerns (e.g., mission, security requirements, policy, and compliance). This cloud infrastructure can be managed by those organizations or a third party and can exist on-premises or off-premises. Public Cloud: This cloud infrastructure is available to the general public or large industry organizations and is owned by an organization that sells cloud services. Hybrid cloud: This cloud infrastructure combines two or more cloud models (private, community, or public), each of which retains its inherent identities but is bound by standards or specific technologies that enable data and application portability (e.g., cloud bursting for load balancing between clouds).

[0015] A cloud computing environment is a service-oriented environment that emphasizes statelessness, low coupling, modularity, and semantic interoperability. At the core of cloud computing is an infrastructure that includes a network of interconnected nodes.

[0016] 1 is a schematic diagram illustrating an example computer system / server. In some embodiments, the computer system / server may be a portable electronic device, such as a communications device, operable with numerous other general-purpose or special-purpose computing system environments or configurations. Examples of well-known computing systems, environments, or configurations, or combinations thereof, suitable for use with computer system / server 12 include personal computer systems, server computer systems, thin clients, thick clients, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing environments that include any of the above systems or devices.

[0017] Some embodiments of computer system / server 12 are described in the general context of computer system-executable instructions, such as program modules, executed by a computer system. Generally, program modules may include routines, programs, objects, components, logic, data structures, etc. that perform particular tasks or implement particular data types. Computer system / server 12 may be practiced in a distributed cloud computing environment where tasks are performed by remote processing devices that are linked through a communications network. In a distributed cloud computing environment, program modules may be stored in both local and remote computer system storage media, including memory storage devices.

[0018] 1, computer system / server 12 is depicted as a general-purpose computing device. Examples of components of computer system / server 12 include one or more processors or processing units 16, a system memory 28, and a bus 18 that connects various system components, including system memory 28, to processor 16.

[0019] Bus 18 may represent any one or more of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an Accelerated Graphics Port (AGP), and a processor or local bus using any of a variety of bus architectures. By way of example, 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.

[0020] Computer system / server 12 may include a variety of computer system-readable media, which may be any available media that is accessible by computer system / server 12 and may include both volatile and nonvolatile media, removable and non-removable media.

[0021] The system memory 28 may include a computer system-readable medium such as a volatile memory, such as RAM 30 or cache memory 32, or both. The computer system / server 12 may also include other removable / non-removable and volatile / non-volatile computer system-readable media. As an example, the storage system 34 may be provided for reading from and writing to a non-removable, non-volatile magnetic medium (not shown, commonly referred to as a "hard drive"). Also, although not shown, a magnetic disk drive for reading from and writing to a removable, non-volatile magnetic disk (e.g., a floppy disk) and an optical disk drive for reading from and writing to a removable, non-volatile optical disk (e.g., a CD-ROM, DVD-ROM, or other optical media) may be provided. In these examples, each may be connected to the bus 18 by one or more data medium interfaces. As further shown and described below, the memory 28 may include at least one program product having a set (e.g., at least one) of program modules configurable to perform the functions of embodiments of the present disclosure.

[0022] As an example, a program / utility 40 having a set (at least one) of program modules 42 may be stored in memory 28, as well as an operating system, 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 comprise an implementation of a network environment or components thereof. The program modules 42 generally perform the functions and / or methods of embodiments of the present disclosure.

[0023] The computer system / server 12 may also communicate with one or more external devices 14, such as a keyboard or pointing device, a display 24, one or more devices that enable a user to interact with the computer system / server 12, or one or more devices (e.g., a network card, a modem, etc.) that enable the computer system / server 12 to communicate with one or more other computer devices, or a combination thereof. Such communication may occur via an input / output (I / O) interface 22. The computer system / server 12 may also communicate with one or more networks, such as a local area network (LAN), a general wide area network (WAN), or a public network (e.g., the Internet), or a combination thereof, via a network adapter 20. As shown, the network adapter 20 may communicate with other components of the computer system / server 12 via a bus 18. Note that other hardware and / or software components (not shown) may be used with the computer system / server 12, such as microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, data archive storage systems, etc.

[0024] The computer system / server shown in Figure 1 may be a cloud computing node, such as cloud computing node 10 shown in Figure 2. The computer system / server shown in Figure 1 may also be a hardware component in example edge computing environments shown in Figures 4 and 5, according to some example embodiments of the present disclosure.

[0025] FIG. 2 illustrates an exemplary cloud computing environment 50 according to some embodiments of the present disclosure. As illustrated, the cloud computing environment 50 includes one or more cloud computing nodes 10, with which local computing devices used by cloud consumers (e.g., PDAs or mobile phones 54A, desktop computers 54B, laptop computers 54C, or automobile computer systems 54N, or combinations thereof) can communicate. The nodes 10 can communicate with each other. The nodes 10 can be physically or virtually grouped (not shown) in one or more networks, such as the private, community, public, or hybrid clouds described above, or combinations thereof. This enables the cloud computing environment 50 to provide infrastructure, platform, or software as a service, or combinations thereof, for which cloud consumers are not required to maintain resources on their local computing devices. It should be understood that the types of computing devices 54A-N illustrated in FIG. 2 are merely exemplary, and that the computing nodes 10 and the cloud computing environment 50 can communicate with any type of electronic device via any type of network or network-addressable connection (e.g., using a web browser), or both.

[0026] Next, a set of functional abstraction layers provided by the cloud computing environment 50 (FIG. 2) according to some embodiments of the present disclosure is shown in FIG. 3. It should be understood in advance that the components, layers, and functions shown in FIG. 3 are merely exemplary, and embodiments of the present invention are not limited thereto. As shown, the following layers and corresponding functions are provided:

[0027] Hardware and software layer 60 may include hardware and software components. Examples of hardware components include mainframe 61, reduced instruction set computer (RISC) architecture-based server 62, server 63, blade server 64, storage device 65, and network and network components 66. In some embodiments, software components may include network application server software 67 and database software 68.

[0028] The virtualization layer 70 provides an abstraction layer from which virtual entities such as virtual servers 71, virtual storage 72, virtual networks including virtual private networks 73, virtual applications and operating systems 74, and virtual clients 75 can be provided.

[0029] By way of example, the management layer 80 may provide the following functionality: Resource provisioning 81 enables dynamic procurement of computing and other resources utilized to execute tasks within the cloud computing environment. Metering and pricing 82 enables cost tracking as resources are utilized within the cloud computing environment and billing or invoicing for the consumption of these resources. By way of example, these resources may include application software licenses. Security enables identification and verification of cloud consumers and tasks, as well as protection for data and other resources. User portal 83 provides consumers and system administrators with access to the cloud computing environment. Service level management 84 enables allocation and management of cloud computing resources so that requested service levels are met. Service level agreement (SLA) planning and fulfillment 85 enables advance arrangement and procurement of anticipated future cloud computing resources required in accordance with SLAs.

[0030] The workload layer 90 provides examples of functionality that can be utilized in a cloud computing environment. Examples of workloads and functionality that can be provided from this layer include mapping and navigation 91, software development and lifecycle management 92, virtual classroom instruction delivery 93, data analytics processing 94, transaction processing 95, and edge controllers 96.

[0031] Note that the functional abstraction layers shown in Figure 3 are merely examples. If necessary, one or more layers may be added, or one or more layers shown in Figure 3 may be integrated or deleted. Furthermore, in each layer in Figure 3, some components may be integrated or deleted, or one or more components may be added.

[0032] (Example of a computing environment) As mentioned above, with the development of cloud computing and IoT technologies, edge computing is gaining attention as a new direction for achieving more powerful computing capabilities. Edge computing is rapidly gaining importance in the Industrial Internet of Things (IoT) and is contributing to the acceleration of digital transformation. Intelligent manufacturing is a prime example of this trend. In general, edge computing focuses on devices and technologies that can be physically attached to "things" such as industrial machinery that act as data sources. Edge computing makes it possible to analyze and collect data at the source of the data.

[0033] In some applications and embodiments, edge computing can function as an optimization technology for cloud computing systems and can work in conjunction with cloud computing. Scenarios where edge computing can be beneficial include situations requiring low latency or where bandwidth is limited. Edge computing can also be important when internet or cellular connections are spotty. Cloud computing, on the other hand, is often more advantageous when significant computing power is required to efficiently manage the vast amounts of data sent from machines. However, for many industrial operations, both cloud and edge computing are desirable to make the most of today's sophisticated, diverse, and massive amounts of data. By combining the two, industries and server providers can flexibly manage and process data from edge devices at the edge, in the cloud, or a combination of the two to achieve optimal operations.

[0034] 4 is a diagram illustrating an example of an edge computing environment according to some embodiments. The edge computing environment in this example may include components and / or modules operating at both the cloud layer and the edge system layer. In this example edge computing environment, a data center or cloud may be connected to edge systems and edge devices, rather than connected to computing nodes / servers as in a typical cloud computing environment.

[0035] As shown in FIG. 4, the edge computing environment of this example may include a data center in a cloud layer 410, an edge system layer 420, and an edge device layer 430. The hardware components of each layer in the edge computing environment of this example may be the computer system / server 12 shown in FIG. 1. The computer system / server 12 shown in FIG. 1 may be implemented as or perform any function in the edge computing environment of this example, or both. All components and / or modules in the edge computing environment of this example may be connected directly or indirectly via a communication network. The network in FIG. 4 may include various types of communication networks, such as a WAN, a LAN, a telecommunications network, a wireless network, a public switched network, or a satellite network, or a combination thereof. The communication network may also include connections such as wired, wireless communication links, or fiber optic cables.

[0036] The illustrated layers and modules of the overall edge computing environment and the number of edge devices are for illustrative purposes only. In some edge computing environment embodiments, one or more other layers and modules may be present, and the number and arrangement of edge devices may be different.

[0037] The data center of the cloud layer 410 may be part of the existing cloud computing environment 50 described above with reference to Figures 2 and 3. In practice, depending on the actual requirements and conditions in manufacturing or service, the cloud computing center may deploy part of the desired computing power (e.g., part of the model and application) to the edge system 420 to perform management of the edge device 430.

[0038] As shown in FIG. 4, modules in a data center of the cloud layer 410 may include, for example, a store system 411, an API server 412, and an edge controller 96. The store system 411 may store metadata required by the API server 412. For example, the store system 411 may be a consistent, distributed key-value store. Data stored in the store system 411 may be accessed by a distributed system or machine. The API server 412 may be used to process API operations and may be invoked by users. Components of the cloud layer 410 may rely on the API server 412 for message delivery. The edge controller 96 may be used for communication between the data centers of the cloud layer 410 and the edge system layer 420 to perform central management.

[0039] In the embodiment of FIG. 4 , the modules of the edge system layer 420 may include, for example, a store module 421, a synchronization service module 422, an edge agent module 423, and an event module 424. The store module 421 may store metadata for the edge system 420 and the edge device 430. The synchronization service module 422 may be a central data processing module of the edge system 420 and may be used to synchronize models and data between the cloud 410 and the edge system 420. The edge agent module 423 and the event module 424 may be management modules for tasks executed on the edge device 430. The edge agent 423 may define a process for requesting task execution. The defined process may indicate a mapping relationship between the task and each edge device adapted to execute the task. The defined process may also be used to schedule tasks to be executed on the corresponding edge device. The executed task may be to accomplish a manufacturing mission or to perform a service function. The event module 424 may further include a receiver module 4241 and a dispatcher module 4242. The receiver module 4241 may be used to receive task execution results from edge devices. The dispatcher module 4242 may call the edge agent 423 to assign the next task to the corresponding edge device according to a defined process. Note that the embodiment of the edge system 420 shown in FIG. 4 is merely an example of an implementation environment and may impose any limitations on environments in which different embodiments may be implemented. Many variations on the illustrated environment are possible.

[0040] An edge device can be an entry point into an enterprise or service provider's core network. An edge system can process data from the edge device and send the processed data, or data suitable for central processing, to a cloud data center over the network. This avoids sending large amounts of unprocessed data over the network and saves time for central processing. As shown in FIG. 4 , the edge device layer 430 can include multiple edge devices, such as devices A, B, C, D, and E. Meanwhile, the edge device in this embodiment can include, for example, a container and a proxy module. The container can be a service grid or a module that executes task requests. The proxy module can be used to manage and control tasks.

[0041] The example edge computing environment shown in FIG. 4 can be a serverless computing environment or platform, an example of which is Function as a Service (FaaS). The serverless computing environment can be event-triggered. In the edge computing environment, a manufacturing mission or service function can be executed or realized. To accomplish the manufacturing mission or perform the service function, edge devices can be requested to perform various tasks. Each edge device can then perform the corresponding task. In this way, the process of realizing the manufacturing mission or service function can be a process of executing a series of tasks on a corresponding edge device.

[0042] As described above, the edge agent can define a process for executing a task. When the edge agent receives a request to execute a task, the edge agent can dynamically determine which edge devices are suitable for executing the task. For example, suitable edge devices can be determined based on the attributes of each edge device and the requirements of the task. Each task can be assigned to a corresponding edge device. The edge agent can schedule the task to be executed on the corresponding edge device according to the defined process. Suitable edge devices may also be determined in other appropriate ways, such as based on historical data or practice. The determination method does not unduly limit the scope of the present disclosure.

[0043] Referring now to FIG. 4 , assume that there are four tasks (Task 1, Task 2, Task 3, and Task 4) adapted to be executed sequentially on edge devices A, B, C, and D, respectively, according to the processes defined herein. Note that these tasks are merely illustrative and are provided as specific examples for the purposes of explanation and simplification, and do not imply any limitations on the present disclosure. In actual manufacturing or service implementation, the number of tasks to be executed may be large and complex. Embodiments of the present disclosure may be applicable to any type of task.

[0044] When the edge agent 423 receives the task execution request in the above example and defines a process, it can send a task 1 execution request to edge device A, as shown by line 431. Then, the container of edge device A executes task 1, and the proxy of edge device A can send the task execution result to the receiver module 4241, as shown by line 432. In this specification, the task execution result may be referred to as the task result of the task. Each task may have a corresponding task result. Next, the dispatcher module 4242 invokes the edge agent 423 to send a next request to execute task 2 to edge device B, as shown by line 433, to continue the defined process. Edge device B can similarly execute task 2 and send the task result to the receiver module 4241, as shown by line 434. Next, the dispatcher module 4242 invokes the edge agent 423 to send another request to execute task 3 to edge device C, as shown by line 435, to continue the defined process. Edge device C can send the task result to receiver module 4241, as shown by line 436, and edge agent 423 can send the next request to perform task 4 to edge device D, as shown by line 437. When edge device D sends the task result of task 4 to receiver module 4241, as shown by line 438, the defined process can be completed. The defined process for executing tasks to accomplish a manufacturing mission or perform a service function in this example can be shown by lines 431-438.

[0045] In this example, during the execution of tasks on edge devices A, B, C, and D, an interruption of the defined process may occur if any of edge devices A, B, C, and D fails to execute or complete the target task. To continue the execution process, the edge agent 423 may reassign the incomplete task to another edge device to replace the failed device. For example, if device B fails due to an unstable connection or other malfunction and the edge agent 423 is unable to obtain status information from device B, as indicated by line 439, the edge agent 423 may determine another edge device, such as device E, to replace device B. Then, as indicated by dashed line 433′, the edge agent 423 may reassign task 2 to edge device E. If device B recovers while device E is executing task 2, the task result of device B may not be adopted by the receiver module 4241, even if device B sends its task result before device E. And, as indicated by dashed line 434', receiver module 4241 may still be waiting for task results for task 2 from device E, potentially resulting in wasted resources.

[0046] In this example, the availability of each edge device involved in the defined process is important to the overall execution efficiency. That is, a failure or malfunction of any one device can affect the execution of the entire process. In this embodiment of the existing edge computing environment, the edge devices may be distributed or spotted devices, or may be mobile, such as machines in an industrial park or mobile devices. Furthermore, the edge devices may have unstable or intermittent internet or cellular connections. Such situations may easily lead to edge device failures, which may result in task execution failures. These failures may last for a long time or only for a short time, allowing the device to quickly recover and continue the previous execution. Furthermore, alternative edge devices may also fail before completing the assigned task. Therefore, edge device failures in an edge environment may be frequent and complex, and it is desirable to manage failed tasks in the edge environment to ensure high availability and fault tolerance of edge devices. It is also desirable to automatically manage failed tasks in the existing edge computing environment to conserve resources and ensure high availability of edge services.

[0047] Thus, one feature and advantage of the present disclosure is that some embodiments may solve the above-mentioned problems as part of an approach to automatically manage failed tasks in an edge computing environment.

[0048] Hereinafter, embodiments of the present disclosure will be described in detail with reference to FIGS.

[0049] FIG. 5 illustrates an example of an edge computing environment according to an embodiment of the present disclosure. Modules and elements similar to and / or corresponding to modules and elements in FIG. 4 are designated by like reference numerals in FIG. 5 and will not be described further. Note that FIG. 5 is merely an example of an implementation environment and may not imply any limitations on environments in which different embodiments may be implemented. Many variations on the illustrated environment are possible.

[0050] As shown in FIG. 5, a task wrapper module 5231 may be configured in the edge agent 423. A task checker module 5243 and a task canceller module 5244 may be configured in the receiver module 4241. Compared to the existing computing environment shown in FIG. 4, these three modules may be configured to manage failed tasks and may be implemented in software, hardware, firmware, or any combination thereof, or both. The process of managing failed tasks is referred to herein as a failure management process. Note that these modules are merely examples. In an edge computing environment according to some embodiments of the present disclosure, a greater or lesser number of modules may be configured to achieve similar functions or intentions. Furthermore, the number of modules may be different, and the types and arrangements of the modules may be different.

[0051] According to an embodiment of the present disclosure, the task wrapper module 5231, the task checker module 5243, and the task canceller module 5244 can be configured to manage the task execution process when a failure occurs. If the edge agent 423 fails to obtain status information from any device during the defined process, it can suspend the defined process and call the task wrapper module 5231 to initiate the failure management process. Simultaneously, metadata information related to the failure can be obtained and stored in the store module 421. The task wrapper module 5231 can determine an edge device to substitute for the failed device and reassign the failed task to the substitute device. The task checker module 5243 can be configured to verify whether the received task result is acceptable as the task result for the task. The task canceller module 5244 can be configured to cancel the execution by the substitute device if the task is completed. When the task is completed, the failure management process ends, and the dispatcher module 4242 can call the edge agent to continue executing the remaining tasks according to the defined process.

[0052] In some embodiments and applications, if a failure occurs on the alternate device during task execution, the task wrapper module 5231 may transmit the failed task to yet another device. The task wrapper module 5231 may determine which device is appropriate for executing the task, but this will not be described in detail herein. Because actual manufacturing or service implementations can be complex and alternate devices may also fail, frequent replacement of failed devices may be necessary in edge computing environments. For simplicity, this disclosure will only describe a situation in which the alternate device does not experience further failures, but this is not intended to unduly limit the scope of this disclosure.

[0053] (Defined processes and incident management processes) According to an embodiment of the present disclosure, a defined process for executing a task may refer to a process in which the task is executed by a suitable edge device determined by the edge agent without considering the occurrence of a failure. The defined process for executing a task may be created by the edge agent 423 when a task execution request is received. In the illustrated example, the defined processes are Task 1, Task 2, Task 3, and Task 4, respectively, and are executed by edge devices A, B, C, and D, as indicated by lines 431 to 438 in FIG. 4. A fault management process may refer to a subprocess specialized in managing a failed task within the overall process for executing a task. If no failure occurs, the task can be executed according to the defined process. However, if a failure occurs, the edge agent can invoke the fault management process to replace the corresponding defined process. The fault management process may be executed by the task wrapper module 5231, task checker module 5243, and task canceller module 5244 shown in FIG. 5, which may be collectively referred to as a "failure management system."

[0054] An example embodiment of a fault management system suitable for performing the illustrated tasks is shown in Figure 6. According to some embodiments of the fault management process, task checker module 5243 can check task results from both device B and device E, rather than simply replacing device B with device E without considering the execution results of device B. According to embodiments of the present disclosure, the first received task result can be taken as the task result for the task. Specific implementations of the fault management process are described in detail below.

[0055] For the illustrated tasks, if the edge agent 423 finds during the execution of each task that device B is not available even though the task performed by device B has not been completed, the edge agent 423 can suspend the defined process and call the task wrapper module 5231 to start a fault management process. The task wrapper module 5231 can determine another device (e.g., device E) as a replacement for the previous device (i.e., device B) and reassign the execution request for task 2 to the other device (e.g., device E), as shown by line 533′ in FIG. 5 . After sending a task execution request, the edge agent may set a time to live (TTL). The proxy of the edge device is required to respond to the edge agent and send its status, such as “running” or “completed,” within the TTL. For example, if the edge agent 423 fails to receive a status report from device B within the TTL, it may determine that device B has a failure or is unavailable and start a fault management process. Note that obtaining status information can be done in any appropriate manner.

[0056] Edge device E can execute task 2 and send the task results to receiver module 4241, as shown by line 534'. In some edge computing environments, many device failures may occur due to unstable or intermittent connections. In such environments, device B may resume operation within a short time and send the task results to receiver module 4241, as shown by line 534. For the example task, there are three possible scenarios:

[0057] The first possible scenario is shown in Figure 7A. In this scenario, device B is always in a failed state, device E can send task results to receiver module 4241, and the edge system can use the task results from device E as the task results of task 2.

[0058] The second possible scenario is shown in Figure 7B. In this scenario, device B resumes operation in a short time and transmits the task result to the receiver module 4241. Device E is still executing task 2, and device B can transmit the task result of task 2 to the receiver module 4241 first. Then, the edge system can use the task result of device B as the task result of task 2. Device E, which is executing task 2, can be canceled. In this scenario, resources can be saved.

[0059] A third possible scenario is shown in Figure 7C. In this scenario, device B resumes operation and sends the task result to the receiver module 4241. However, task 2 has already been completed, i.e., device E has already sent the task result to the receiver module 4241 before device B. In this scenario, the edge system can ignore the task result from device B.

[0060] (Example of method) FIG. 8 is a flowchart illustrating an example method 800 for dynamically managing tasks in an edge computing environment, according to some embodiments of the present disclosure. Method 800 can be implemented in the environment illustrated in FIG. 5. Method 800 can include steps 802 to 818. Of these, steps 802 and 818 can be steps according to a defined process, and steps 804 to 816 can be steps of a fault management process corresponding to the three scenarios illustrated in FIGS. 7A to 7C. Steps 804 to 816 can be performed by the fault management system illustrated in FIG. 6.

[0061] 4 and 5, in step 802, when the edge agent 423 receives a task execution request, it can define the above-defined process to execute the task on the corresponding edge device, and then schedule each task to be executed on the corresponding device according to the defined process.

[0062] In step 804, if the edge agent 423 finds that task 2 performed by device B is not completed but device B is unavailable, the edge agent 423 can suspend the defined process and call the task wrapper module 5231 to initiate a fault management process. The task wrapper module 5231 can then send task 2 to another edge device, such as device E, as a replacement for device B.

[0063] In step 806, the receiver module 4241 can receive a task result. The task result may be the task result of task 2 from device E, or it may be the task result of task 2 from device B because device B may have recovered from the failure and continue executing task 2.

[0064] In step 808, the task checker module 5243 may check whether task 2 has been marked as completed.

[0065] If task 2 is not marked as completed, then task checker module 5243 may determine that the received task result is the first received task result in step 810. Task checker module 5243 may then mark the received task result as the task result for task 2 and mark task 2 as completed.

[0066] In step 812, the task checker module 5243 can further use the metadata information in the store module 421 to check whether the received task result is from device B. The metadata information can be as shown in Table 1. Note that the data structure shown in Table 1 is merely an example and is not intended to be limiting. Other data structures, such as an XML file or a text (.txt) file, can also be applied. [Table 1]

[0067] If the task result is not from device B, method 800 may proceed directly to step 818. This branch may correspond to the scenario shown in FIG. 7A. If the received task result is from device B, task checker module 5243 may set the variable "cancel_other_device" to true. In response to the variable "cancel_other_device" being set to true, task canceller module 5244 may send a cancel request to device E at step 814. Method 800 may then proceed to step 818. This branch corresponds to the scenario shown in FIG. 7B. Once task 2 is marked as completed, the fault management process ends and the dispatcher module 4242 can invoke the edge agent to continue the remainder of the defined process.

[0068] If task 2 is marked as completed, the received task results can be ignored in step 816. It can be determined that task 2 has been completed by device E and that device B sent the task results later than device E. This branch corresponds to the scenario shown in Figure 7C.

[0069] 9 is a flowchart illustrating another example method 900 for dynamically managing tasks in an edge computing environment, according to some embodiments of the present disclosure. For purposes of explanation, method 900 will be described with reference to FIG.

[0070] At step 910, the edge agent 423 may send a task execution request to a first edge device according to the defined process. Here, the defined process can be used to schedule tasks to be executed on the edge devices. If the first edge device fails to execute the task, at step 920, the edge agent 423 may suspend the defined process. At step 930, the task wrapper module 5231 may send a task execution request to a second edge device. At step 940, the task checker module 5243 may set the first received task result as the task result of the task. Here, the task result is from either the first edge device or the second edge device. At step 950, the dispatcher module 4242 invokes the edge agent 423 to continue the remaining part of the defined process.

[0071] In some embodiments, if a task result is received for a task in step 940, the task checker module 5243 may check whether the task is marked as completed. If the task is not marked as completed, the task checker module 5243 may determine that the received task result is the initially received task result and may mark the task as completed. If the task is marked as completed, the task checker module 5243 may determine that the received task result is not the initially received task result and may ignore the received task result.

[0072] In some embodiments, the task checker module 5243 may verify whether the received task result is from the first edge device in step 940. If the received task result is from the first edge device, the task checker module 5243 may send an instruction to the second edge device to stop executing the task.

[0073] In some embodiments, the store system 511 may obtain and store metadata information of the task and the edge device in the method 900. The metadata information may include at least one identifier of the task ID, the first edge device ID, and the second edge device ID.

[0074] A task management process according to an embodiment of the present disclosure may be implemented by computer system / server 12 of FIG.

[0075] Embodiments of the present disclosure may be an integrated system, method, or computer program product, or a combination thereof, at any possible level of technical detail. The computer program product may include a computer-readable storage medium having stored thereon computer-readable program instructions for causing a processor to carry out aspects of the present disclosure.

[0076] A computer-readable storage medium may be a tangible device capable of retaining and storing instructions for use by an instruction execution device. The computer-readable storage medium may be, by way of example, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or a suitable combination thereof. More specific examples of computer-readable storage media include portable computer diskettes, hard disks, RAM, ROM, EPROM (or flash memory), SRAM, CD-ROMs, DVDs, memory sticks, floppy disks, mechanically encoded devices having instructions recorded on punch cards or ridge-in-groove structures, or the like, and suitable combinations thereof. Computer-readable storage devices, as used herein, should not be construed as including ephemeral signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses passing through fiber optic cables), or electrical signals transmitted over wires.

[0077] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computer / processing device. Alternatively, they can be downloaded to an external computer or external storage device via a network (e.g., the Internet, a LAN, a WAN, or a wireless network, or a combination thereof). The network can 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 computer / processing device can receive the computer-readable program instructions from the network and transfer the computer-readable program instructions to a computer-readable storage medium in the respective computer / processing device for storage.

[0078] Computer-readable program instructions for carrying out operations in some embodiments may include either assembler instructions, instruction set architecture (ISA) instructions, machine 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 and C++, and procedural programming languages such as the "C" programming language and similar programming languages. The computer-readable program instructions may execute entirely on the user's computer as a standalone software package, partially on the user's computer, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer may be connected to the user's computer via any type of network, including a LAN or WAN, or may be connected to an external computer (e.g., via the Internet using an Internet Service Provider). In some embodiments, electronic circuitry, including, for example, programmable logic circuits, field programmable gate arrays (FPGAs), programmable logic arrays (PLAs), can execute computer-readable program instructions by utilizing state information of the computer-readable program instructions to customize the electronic circuitry for purposes of carrying out aspects of the present disclosure.

[0079] Aspects of the present disclosure are described herein with reference to flowcharts and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. Each block of the flowcharts and / or block diagrams, and combinations of blocks in the flowcharts and / or block diagrams, can be implemented by computer-readable program instructions.

[0080] The computer-readable program instructions may be provided to a processor of a computer or other programmable data processing apparatus to produce a machine, whereby the instructions, executable by the processor of such computer or other programmable data processing apparatus, perform the functions / acts identified in one or more blocks of the flowcharts and / or block diagrams. The computer-readable program instructions may also be stored on a computer-readable storage medium capable of instructing a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner. The computer-readable storage medium having instructions stored thereon thereby constitutes an article of manufacture containing instructions capable of performing aspects of the functions / acts identified in one or more blocks of the flowcharts and / or block diagrams.

[0081] Computer-readable program instructions may also be loaded into a computer, other programmable device, or other device and caused to execute a series of operations by the computer, other programmable device, or other device, thereby creating a computer-implemented process, whereby the instructions executing on the computer, other programmable device, or other device perform the functions / operations identified in one or more blocks in the flowcharts and / or block diagrams.

[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 a flowchart or block diagram may represent a module, segment, or portion of instructions, including one or more executable instructions for performing a specific logical function. In some implementations, the functions depicted in the blocks may be performed in an order different from that depicted in the figures. For example, two blocks shown in succession may actually be accomplished as a single step, executed simultaneously or substantially simultaneously, executed in a partially or fully overlapping manner, or executed in reverse order, depending on the functionality involved. Note that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented by a dedicated hardware-based system that performs a specific function or operation, or by a combination of dedicated hardware and computer instructions.

[0083] While various embodiments of the present disclosure have been described by way of example, they are not intended to be exhaustive or limited to these embodiments. It will be apparent to those skilled in the art that many modifications and variations are possible without departing from the scope and spirit of the described embodiments. The terms used herein are selected to explain the principles, practical applications, or technical improvements of the embodiments observed in the marketplace, or to enable those skilled in the art to understand the embodiments disclosed herein.

[0084] The presently described embodiments are therefore to be considered in all respects as illustrative and not limiting of the present disclosure, reference being made to the appended claims in determining the scope of the present disclosure.

Claims

1. 1. A computer-implemented method, comprising: sending a request to a first edge device to execute a task according to a defined process used to schedule tasks to be executed on the edge device; suspending the defined process if the first edge device fails to execute the task; Sending a request to execute the task to a second edge device; determining a task result from either the first edge device or the second edge device that is received first as the task result for the task; continuing with the remainder of the process as defined above; The first received task result is set as the task result of the task. When a task result of the task is received, checking whether the task is marked as completed; determining the received task result to be the initially received task result if the task is not marked as completed; marking the task as completed; and determining whether the received task result is from the first edge device; If the received task result is from the first edge device, sending an instruction to the second edge device to stop execution of the task; Obtaining task information from the received task result to confirm whether the received task result is from the first edge device; A method comprising:

2. determining that the received task result is not the initially received task result if the task is marked as completed; and ignoring the received task result. The method of claim 1.

3. The information includes information selected from the group consisting of an ID of the task and an ID of the edge device. The method of claim 1.

4. By edge agents, requesting status information regarding the first edge device; If the status information is not received, calling a task wrapper module to initiate a fault management process. The method of claim 1.

5. The task wrapper module: determining the second edge device as a replacement for the first edge device; reassigning the task to the second edge device. The method of claim 4.

6. one or more processors; a computer-readable memory coupled to the processor, the computer-readable memory containing instructions that, when executed by the processor, cause the computer system to: sending a request to a first edge device to execute a task according to a defined process used to schedule tasks to be executed on the edge device; suspending the defined process if the first edge device fails to execute the task; Sending a request to execute the task to a second edge device; determining a task result from either the first edge device or the second edge device that is received first as the task result for the task; continuing with the remainder of the process as defined above; The first received task result is set as the task result of the task. When a task result of the task is received, checking whether the task is marked as completed; determining the received task result to be the initially received task result if the task is not marked as completed; marking the task as completed; and determining whether the received task result is from the first edge device; If the received task result is from the first edge device, sending an instruction to the second edge device to stop execution of the task; obtaining information about the task from the received task result to determine whether the task result is from the first edge device; A computer system that executes

7. determining that the received task result is not the initially received task result if the task is marked as completed; and ignoring the received task result.

7. The computer system of claim 6.

8. The information includes information selected from the group consisting of an ID of the task and an ID of the edge device.

7. The computer system of claim 6.

9. A computer program comprising: sending a request to a first edge device to execute a task according to a defined process used to schedule tasks to be executed on the edge device; suspending the defined process if the first edge device fails to execute the task; a function of transmitting a request to execute the task to a second edge device; a function of determining a task result from either the first edge device or the second edge device that is first received as the task result of the task; continuing with the remainder of the defined process; The function of setting the first received task result as the task result of the task is When a task result of the task is received, a function of checking whether the task has been marked as completed; determining that the received task result is the initially received task result if the task is not marked as completed; The ability to mark the task as completed; a function of determining whether the received task result is from the first edge device; a function of sending a command to the second edge device to stop execution of the task when the received task result is from the first edge device; obtaining information about the task from the task result to confirm whether the received task result is from the first edge device; A computer program that executes

10. determining that the received task result is not the initially received task result if the task is marked as completed; and ignoring the received task result.

10. A computer program according to claim 9.

11. The information includes information selected from the group consisting of an ID of the task and an ID of the edge device.

10. A computer program according to claim 9.

Citation Information

Patent Citations

  • Link processor and program

    JP2004288023A

  • Redundant control system and control device thereof

    JP2016095784A

  • Distributed system, backend service, edge server and method therefor

    JP2019045970A

  • System and method for proactive task scheduling

    US20120167101A1

  • Information processing device, repeating device, information processing system and method, and program

    WO2016152610A1