MANAGING FAILURES IN EDGE COMPUTING ENVIRONMENTS
The method addresses task allocation and failure management in edge computing by rerouting tasks to alternative devices and verifying results, ensuring high availability and efficient resource use in edge computing environments.
Patent Information
- Application Number
- DE102021124335
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-10-25
- Filing Date
- 2021-09-21
- Publication Date
- 2025-01-02
- Estimated Expiration
- 2041-09-21
AI Technical Summary
There is a need to improve task allocation and manage failures in extremely distributed edge computing environments, particularly when data processing occurs on distributed systems with edge devices that may experience unstable or unreliable connections.
A computer-implemented method and system for dynamically managing failures in edge computing environments by scheduling tasks across edge devices, including a task wrapper module to reroute tasks to alternative devices upon failure, a task checking module to verify task results, and a task cancellation module to manage resource allocation efficiently.
Ensures high availability and fault tolerance in edge computing environments by automatically managing failed tasks, optimizing resource usage, and maintaining continuous task execution despite device failures.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
BACKGROUND
[0001] The present disclosure relates generally to computing, and more particularly to a method, system, and computer program product for dynamically managing failures in an edge computing environment.
[0002] With the development of cloud computing and Internet of Things (IoT) technologies, edge computing is becoming an increasingly important trend for achieving greater computing capabilities. In the context of IoT, "edge" refers to computing infrastructure located near data sources, such as industrial machines, industrial controllers and sensors, mobile devices, and so on. The machines / devices that are data sources can be referred to as edge devices. Edge devices are typically located outside of the centralized computing resources available in the cloud. With edge computing, IT administrators can move some applications, data processing, and models away from centralized cloud data centers to the edge, i.e., closer to the edge devices, thereby reducing data traffic to the cloud data centers.
[0003] There are already a number of published documents in this area. Document GB 2 344 906 A, dating back to 1998, describes an object-oriented job scheduler for batch jobs. This allows the repetition frequencies of specific jobs as well as potential dependencies on other objects to be defined. Document US 2010 / 0 122 065 A1 describes an application-independent framework for large, distributed, and parallel data processing environments. The framework helps map different modules to one another, thus reducing the overall number. Particular emphasis is placed on parallelizing parallel executions across distributed and parallel data processing environments. Furthermore, document US 2012 / 0 167 101 A1 describes methods for proactively scheduling task processing in distributed computer systems. This allows outliers in multiple processing routines to be detected.Additionally, an evaluation module may be available to help determine the reasons for the outliers. Finally, document US 2020 / 0 167 196 A1 describes another method for executing workloads in edge computing environments. A workload scheduler receives tasks for execution from a node scheduler. Based on a description of the respective workload, the tasks are then distributed among assigned edge computing systems.
[0004] Despite these advances, there is still a need to improve task allocation in extremely distributed computing environments, especially when data to be processed is located on distributed systems. SUMMARY
[0005] This object is achieved by the subject matter of the independent patent claims. Further embodiments emerge from the respective dependent patent claims. According to one embodiment of the disclosure, a computer-implemented method for dynamically managing failures in an edge computing environment is provided. According to the computer-implemented method, a request to execute a task according to a defined method may be sent to a first edge device, wherein the defined method is used to schedule tasks to be executed on edge devices. In response to the first edge device not executing the task, the defined method is interrupted. Then, a request to execute the task is sent to a second edge device.A first received task result may be taken as the task result for the task, wherein the task result originates from either the first edge unit or the second edge unit. The method further comprises continuing the remainder of the defined method.
[0006] According to another embodiment of the disclosure, a computer system for dynamically managing failures in an edge computing environment is provided. The computer system includes one or more processors and a computer-readable memory coupled to the one or more processors. The computer-readable memory includes instructions that, when executed by the one or more processors, perform operations of the above method.
[0007] According to another embodiment of the disclosure, a computer program product for dynamically managing failures in an edge computing environment is provided. The computer program product comprises a computer-readable storage medium having program instructions embodied therein, the program instructions being executable by a processor to cause the processor to perform operations of the above method. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] The above and other objects, features, and advantages of the present disclosure will become more apparent by describing some embodiments of the present disclosure in more detail in the accompanying drawings, wherein the same reference numerals generally designate similar components in the embodiments of the present disclosure. Fig. 1 shows a diagram of an example computer system / server according to an embodiment of the disclosure. Fig. 2 shows a cloud computing environment according to an embodiment of the disclosure. Fig. 3 shows layers of an abstraction model according to an embodiment of the disclosure. Fig. 4 illustrates an exemplary edge computing environment in accordance with some embodiments of the present disclosure. Fig. 5 illustrates an exemplary edge computing environment in accordance with some embodiments of the present disclosure. Fig. 6 illustrates an exemplary failure management system according to some embodiments of the present disclosure. Fig. 7A illustrates an example scenario of the outage management method according to some embodiments of the present disclosure. Fig. 7B shows another example scenario of the outage management method according to some embodiments of the present disclosure. Fig. 7C illustrates yet another example scenario of the outage management method according to some embodiments of the present disclosure. Fig. 8 shows an example flowchart of a method for dynamically managing tasks in the edge computing environment according to some embodiments of the present disclosure. Fig. 9 shows another example flowchart of a method for dynamically managing tasks in the edge computing environment according to some embodiments of the present disclosure. DETAILED DESCRIPTION
[0009] Some embodiments will be described in more detail with reference to the accompanying drawings, in which embodiments of the present disclosure are shown. However, the present disclosure may be implemented in various ways and should therefore not be construed as limited to the embodiments disclosed herein.
[0010] It should be understood at the outset that, although this disclosure includes a detailed description of cloud computing, the implementation of the teachings herein is not limited to a cloud computing environment. Rather, embodiments of the present invention may be practiced in conjunction with any type of computing environment now known or later invented.
[0011] Cloud computing is a service delivery model for enabling seamless, 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 a service provider. This cloud model can include at least five characteristics, at least three service models, and at least four implementation models.
[0012] The properties are as follows: • On-Demand Self-Service: A cloud user can unilaterally and automatically provision data processing functions such as server time and network storage as needed, without the need for human interaction with the service provider. • Broad Network Access: Functions are available over a network and accessed through standard mechanisms that support use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs). • Resource pooling: The provider's computing resources are pooled to serve multiple users using a multi-tenant model, with various physical and virtual resources dynamically allocated and reassigned as needed. There is a perceived location independence, as the user generally has no control or knowledge over the exact location of the provided resources, but may be able to specify a location at a higher level of abstraction (e.g., country, state, or data center). • Rapid Elasticity: Features can be deployed quickly and elastically, in some cases automatically, for rapid horizontal scaling out, and quickly released for rapid scale-in. To the user, the features available for deployment often appear unlimited, and they can be purchased at any time in any quantity. • Measured Service: Cloud systems automatically control and optimize resource usage by leveraging a measurement function at a certain level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency for both the provider and the user of the service.
[0013] The service models are as follows: • Software as a Service (SaaS): The functionality provided to the user is to use the provider's applications running on a cloud infrastructure. The applications are accessible from various client devices via a thin client interface such as a web browser (e.g., web-based email). The user does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even individual application features, with the possible exception of limited user-specific application configuration settings. • Platform as a Service (PaaS): The functionality provided to the user is to deploy applications created or obtained by the user, using programming languages and tools supported by the provider, on the cloud infrastructure. The user does not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but has control over the deployed applications and possibly over configurations of the application hosting environment. • Infrastructure as a Service (LaaS): The functionality provided to the user consists of providing processing, storage, networking, and other basic computing resources, allowing the user to deploy and run any software, including operating systems and applications. The user does not manage or control the underlying cloud infrastructure, but has control over operating systems, storage, deployed applications, and possibly limited control over selected network components (e.g., host firewalls).
[0014] The deployment models are as follows: • Private Cloud: The cloud infrastructure is operated solely for an organization. It can be managed by the organization or a third party and can be located on its own premises or on a third-party premises. • Community Cloud: The cloud infrastructure is shared by multiple organizations and supports a specific user community with common concerns (e.g., mission, security requirements, policies, and compliance considerations). It can be managed by the organizations or a third party and can be located on their own premises or on someone else's premises. • Public Cloud: The cloud infrastructure is made available to the general public or a large industry group and is owned by an organization that sells cloud services. • Hybrid Cloud: The cloud infrastructure is a composition of two or more clouds (private, community, or public) that remain separate entities but are interconnected by a standardized or proprietary technology that enables data and application portability (e.g., cloud targeting for load balancing between clouds).
[0015] A cloud computing environment is service-oriented with a focus on state independence, low coupling, modularity, and semantic interoperability. At the heart of cloud computing lies an infrastructure consisting of a network of interconnected nodes.
[0016] With reference to Fig. 1 shows a diagram of an example of a computer system / server, which in some embodiments may be a portable electronic device, such as a data transmission device, operable with numerous other general-purpose or special-purpose computer system environments or configurations. Examples of known computer systems, environments, and / or configurations that may be suitable for use with the computer system / server 12 include, without limitation, 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 computers, minicomputer systems, mainframe computer systems, distributed cloud computing environments, including any of the above-mentioned systems or devices, and the like.
[0017] Some embodiments of the computer system / server 12 are described in the general context of computer system-executable instructions, such as program modules executed by a computer system. In general, the program modules may include routines, programs, objects, components, logic, data structures, etc., that perform particular tasks or implement particular data types. The computer system / server 12 may operate in distributed cloud computing environments where tasks are executed by remote processing devices connected via a communications network. In a distributed cloud computing environment, program modules may be located on both local and remote computer system storage media, such as memory devices.
[0018] As in Fig. 1, the computer system / server 12 is shown in the form of a general-purpose data processing unit. The components of the computer system / server 12 may include, but are not limited to, one or more processors or processing units 16, system memory 28, and a bus 18 that connects various system components, such as the system memory 28, to the processor 16.
[0019] Bus 102 may represent one or more of several types of bus structures, such as a memory bus or memory controller, a peripheral bus, an AGP ("Accelerated Graphics Port"), and a processor or local bus, using a variety of bus architectures. By way of example and not limitation, such architectures may include: an ISA ("Industry Standard Architecture") bus, a MCA ("Micro Channel Architecture") bus, an EISA ("Enhanced ISA") bus, a VESA ("Video Electronics Standards Association") local bus, and a PCI ("Peripheral Component Interconnects") bus.
[0020] The computer system / server 12 may include a variety of media readable by the computer system. Such media may be any available media accessible by the computer system / server 12 and may include both volatile and non-volatile media, removable and non-removable media.
[0021] The system memory 28 may include computer system-readable media in the form of volatile memory, such as random access memory (RAM) 30 and / or cache memory 32. The computer system / server 12 may further include other removable / non-removable, volatile / non-volatile storage media of the computer system. For example only, a storage system 34 may be provided for reading and writing to a non-removable, non-volatile magnetic medium (not shown and commonly referred to as a "hard drive"). Although not shown, a magnetic disk drive may be provided for reading and writing to a removable, non-volatile magnetic disk (e.g., a "floppy disk"), and an optical disk drive may be provided for reading or writing to a removable, non-volatile optical disk such as a CD-ROM, DVD-ROM, or other optical medium.In such cases, they may each be connected to bus 18 via one or more data media interfaces. As further shown and described below, memory 28 may include at least one program product having a set (e.g., at least one) of program modules configured to perform the functions of embodiments of the present disclosure.
[0022] By way of example and not limitation, a program / service 40 having a set (at least one) of program modules 42, as well as an operating system, one or more application programs, other program modules, and program data, may be stored in memory 28. The operating system, the one or more application programs, the other program modules, and the program data, and / or a combination thereof, may include an implementation of a network environment. The program modules 42 generally perform the functions and / or methods of embodiments of the present disclosure as described herein.
[0023] The computer system / server 12 may also communicate with one or more external devices 14, such as a keyboard, a pointing device, etc.; a display 24; one or more devices that allow a user to interact with the computer system / server 12; and / or one or more devices (e.g., a network card, a modem, etc.) that allow the computer system / server 12 to communicate with one or more other computing devices. Such communication may occur via input / output (I / O) interfaces 22. Still further, the computer system / server 12 may communicate with one or more networks, such as a local area network (LAN), a wide area network (WAN), and / or a public network (e.g., the Internet), via a network adapter 20. As shown, the network adapter 20 may communicate with the other components of the computer system / server 12 via the bus 18.It should be understood that other hardware and / or software components, although not shown, may be used in connection with the computer system / server 12. Examples include, but are not limited to: microcode, device drivers, redundant processing units, external disk drive stacks, RAID systems, tape drives, data archiving storage systems, etc.
[0024] The computer system / server used in Fig. 1 may be a cloud computing node, for example the one shown in Fig. 2 cloud computing nodes shown 10. The computer system / server used in Fig. 1 may, according to some exemplary embodiments of the present disclosure, also consist of hardware components in the exemplary edge computing environment shown in the Fig. 4 and Fig. 5 is shown.
[0025] With reference to Fig. 2, an exemplary cloud computing environment 50 is shown in accordance with some embodiments of the disclosure. As shown, the cloud computing environment 50 includes one or more cloud computing nodes 10 with which local computing devices used by cloud users, such as the personal digital assistant (PDA) or cellular phone 54A, the desktop computer 54B, the laptop computer 54C, and / or the automotive computer system 54N, can communicate. The nodes 10 can communicate with each other. They can be physically or virtually grouped into one or more networks, such as private, community, public, or hybrid clouds (not shown), as described above, or a combination thereof.This enables the cloud computing environment 50 to offer infrastructure, platforms, and / or software as a service, for which a cloud user does not need to maintain resources on a local computing device. It should be noted that the types of services described in . Fig. 2 are intended to be exemplary only, and that the computing nodes 10 and the cloud computing environment 50 may communicate with any type of computer-based device via any type of network and / or via any type of network-accessible connection (e.g., using a web browser).
[0026] With reference to Fig. 3, a set of functional abstraction layers is shown in accordance with some embodiments of the disclosure that are implemented by the cloud computing environment 50 ( Fig. 2) are provided. It should be clear from the outset that the Fig. The components, layers, and functions shown in Figure 3 are intended to be exemplary only, and embodiments of the invention are not limited thereto. As shown, the following layers and corresponding functions are provided:
[0027] A hardware and software layer 60 may include hardware and software components. Examples of hardware components include: mainframe computers 61; Reduced Instruction Set Computer (RISC) architecture-based servers 62; servers 63; blade servers 64; storage devices 65; and networks and network components 66. In some embodiments, the software components may include network application server software 67 and database software 68.
[0028] The virtualization layer 70 provides an abstraction layer from which the following examples of virtual entities can be deployed: virtual servers 71, virtual storage 72, virtual networks 73, including virtual private networks, virtual applications and operating systems 74; and virtual clients 75.
[0029] In one example, the management layer 80 may provide the functions described below. Resource provisioning 81 provides for the dynamic procurement of computing resources and other resources used to perform tasks within the cloud computing environment. Metering and pricing 82 provides cost tracking when using resources within the cloud computing environment, as well as billing or invoicing for the consumption of those resources. In one example, these resources may include application software licenses. Security provides identity verification for cloud users and tasks, as well as protection for data and other resources. A user portal 83 provides users and system administrators with access to the cloud computing environment.Service level management 84 provides the allocation and management of cloud computing resources so that the required service objectives are met. Service level agreement (SLA) planning and fulfillment 85 provides the advance ordering and procurement of cloud computing resources for which future requirements are anticipated, in accordance with an SLA.
[0030] A workload layer 90 provides examples of the functionality for which the cloud computing environment can be used. Examples of workloads and functions that can be provided by this layer include: mapping and navigation 91; software development and lifecycle management 92; virtual classroom education delivery 93; data analytics processing 94; transaction processing 95; and edge control 96.
[0031] The functional abstraction layers in Fig. 3 are only examples. If necessary, one or more layers can be added, and one or more layers in Fig. 3 can be merged or omitted. In addition, in each layer of Fig. 3 some components are omitted or merged and one or more components are added. EXAMPLE DATA PROCESSING ENVIRONMENT
[0032] As mentioned above, with the development of cloud computing and IoT technologies, edge computing is becoming an emerging trend for achieving ever-greater computing capacity. Edge computing is rapidly becoming an important component of the Industrial Internet of Things (IIoT) and is contributing to accelerating digital transformation. Smart manufacturing is a typical example of this trend. In general, edge computing can focus on the units and technologies that are actually connected to the "things," such as industrial machines that act as data sources. Edge computing can enable data analysis and acquisition on the data sources.
[0033] In some applications and embodiments, edge computing can serve as an optimization of cloud computing systems and can interoperate with cloud computing. Scenarios where edge computing can be beneficial include environments that require low latency or where bandwidth constraints exist. Edge computing can also be important when internet or cellular connections are inadequate. In contrast, cloud computing typically takes a more dominant position when operations require significant computing power to effectively manage massive amounts of data from machines. However, both cloud computing and edge computing may be desirable for many industrial operations to maximize the benefits of today's sophisticated, diverse, and large amounts of data.The combination can provide industries or service providers with flexibility to manage and process data from edge units at the edge, in the cloud, or a combination of both to achieve optimal operations.
[0034] Fig. Figure 4 illustrates an example edge computing environment according to some embodiments. This example edge computing environment may include components and / or modules executing on both a cloud layer and an edge system layer. In this example edge computing environment, a data center or cloud may be connected to an edge system and edge devices, rather than to compute nodes / servers as in the typical cloud computing environment.
[0035] As in Fig. 4, the exemplary edge computing environment may include a cloud data center layer 410, an edge system layer 420, and an edge device layer 430. The hardware components in each layer in the exemplary edge computing environment may be the computer system / server 12 located in Fig. 1. The computer system / server used in Fig. 1, may implement and / or execute any of the functions in the exemplary edge computing environment. All components and / or modules in the exemplary edge computing environment may be connected directly or indirectly via a data transmission network. The network in Fig. 4 may include various types of data transmission networks, such as a wide area network (WAN), a local area network (LAN), a telecommunications network, a wireless network, a public switched network, and / or a satellite network. The data transmission network may include connections such as wired, wireless data transmission links, or fiber optic cables, etc.
[0036] The layers and modules in the edge computing environment and the number of edge units shown in the figures are provided only as examples. Some embodiments of the edge computing environment may include one or more additional layers and modules, and the number of edge units may vary and be arranged differently.
[0037] The data center of the cloud layer 410 may be part of the existing cloud computing environment 50, which may be defined with reference to the Fig. 2 to 3 above. In practice, according to the actual requirements and conditions of the production or service, the cloud data center may transfer part of the desired computing power (e.g., part of the models and applications) to the edge system 420 to perform the management of the edge units 430.
[0038] As in Fig. 4, the example modules in the cloud layer data center 410 may include a storage system 411, an API server 412, and an edge controller 96. The storage system 411 may store metadata required by the API server 412. For example, the storage system 411 may be a consistent, distributed key-value store. The data stored in the storage system 411 may be accessed by a distributed system or distributed machines. The API server 412 may be used to process API operations and may be invoked by users. The components in the cloud layer 410 may rely on the API server 412 for message passing. The edge controller 96 may be used to exchange data between a cloud layer data center 410 and an edge system layer 420 to perform centralized management.
[0039] In the embodiment in Fig. 4, the example modules in the edge system layer 420 may include a storage module 421, a synchronization service module 422, an edge agent module 423, and an event module 424. The storage module 421 may store metadata for the edge system 420 and the edge devices 430. The synchronization service module 422 may represent the 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 of tasks to be executed on edge devices 430. The edge agent 423 may define a method for a request to execute the tasks. The defined method may indicate a mapping relationship between the tasks and respective edge devices suitable for executing the tasks.The defined method can be used to schedule tasks to be executed on corresponding edge units. The tasks to be executed can fulfill a production target or implement a service function. The event module 424 can further comprise a receiver module 4241 and a dispatcher module 4242. The receiver module 4241 can be used to receive a current result of a task from an edge unit. The dispatcher module 4242 can call the edge agent 423 to assign a next task to a respective edge unit according to the defined method. The embodiment of the edge system 420 in FIG. Fig. Figure 4 provides only one example of the implementation environment and does not imply any limitations on the environments in which various embodiments may be implemented. Many modifications may be made to the example environment.
[0040] An edge unit can be an entry point into the core networks of companies or service providers. The edge system can process data from the edge units and send the processed data, or data suitable for central processing, over the network to the cloud data center. This avoids mass data transmission of unprocessed data over the network and saves time for central processing. As described in Fig. As shown in Figure 4, the exemplary edge device layer 430 may include multiple edge devices, such as devices A, B, C, D, and E, etc. The edge devices in this embodiment may, in turn, include, for example, a container and a proxy module. The container may be a service grid or a module for executing requests for tasks. The proxy modules may be used to manage and control the tasks.
[0041] The exemplary edge computing environment that Fig. 4 may be a serverless computing environment or platform, of which Functions-as-a-Service (FaaS) is an example. The serverless computing environment may be triggered by events. In the edge computing environment, a production goal or service function may be executed or achieved. The edge devices may be requested to perform various tasks to fulfill a production goal or implement a service function. Each edge device may perform a corresponding task. In this way, a method for achieving a production goal or service function may consist of a method for executing a series of tasks on corresponding edge devices.
[0042] As described above, the edge agent may define a method for executing the tasks. After the edge agent receives a request to execute the tasks, the edge agent may dynamically determine which edge units are suitable for executing the tasks. For example, the suitable edge units may be determined based on properties of edge units and task requirements. Each task may be assigned to a corresponding edge unit. The edge agent may schedule the task to be executed on the corresponding edge unit according to the defined method. The suitable edge units may also be determined using other suitable approaches, for example, based on historical data, customs, etc. The manner of determination should not adversely limit the scope of this disclosure.
[0043] With reference to Fig. 4, for example, assumes that there are four tasks (such as Task_1, Task_2, Task_3, and Task_4) and that these tasks are suitable for sequential execution on edge devices A, B, C, and D, respectively, according to the method defined herein. These tasks are merely examples and are provided as a specific example for illustration and simplicity, which does not imply any limitation on the present disclosure. In actual production or service practice, the tasks to be executed may be both extensive and complex. Embodiments of the present disclosure may be applied to any type of task.
[0044] After edge agent 423 receives the request to execute the above example tasks and defines the method, it may send a request to execute Task_1 to edge unit A, as shown by line 431. A container of edge unit A may then execute Task_1, and a proxy of edge unit A may send a running result to receiver module 4241, as shown by line 432. A running result of a task may be referred to herein as a task result of the task. Each task may have a corresponding task result. Then, dispatcher module 4242 may call edge agent 423 to send another request to execute Task_2 to edge unit B to continue the defined method, as shown by line 433. Similarly, edge unit B may execute Task_2 and send a task result to receiver module 4241, as shown by line 434.Then, the dispatcher module 4242 may call the edge agent 423 to send another request to execute Task_3 to the edge unit C to continue the execution of the defined method, as shown by line 435. The edge unit C may send a task result to the receiver module 4241, as shown by line 436, and the edge agent 423 may send another request to execute Task_4 to the edge unit D, as shown by line 437. After the edge unit D sends a task result of Task_4 to the receiver module 4241, as shown by line 438, the defined method may be completed. Lines 431 to 438 may show the defined method for executing the example tasks to meet a production goal or implement a service function.
[0045] In this illustrative example, if during the execution of tasks on edge units A, B, C, and D, one of edge units A, B, C, or D cannot execute or complete an incoming task, an interruption of the defined procedure may occur. To continue the execution procedure, edge agent 423 may reassign the unfinished task to another edge unit to replace the failed unit. For example, if unit B has failed due to an unstable connection or other failure and edge agent 423 cannot receive status information from unit B, as shown by line 439, edge agent 423 may designate another edge unit, for example, unit E, to replace unit B. Task_2 may be reassigned to edge unit E, as shown by dashed line 433'.Even if unit B returns while unit E is executing Task_2, and unit B delivers a task result before unit E, the task result from unit B does not need to be accepted by the receiver module 4241. The receiver module 4241 may still wait for the task result of Task_2 from unit E, as shown by the dashed line 434', which may result in a waste of resources.
[0046] In this illustrative example, the availability of each edge unit involved in the defined process is critical to the economics of the execution as a whole, meaning that the failure or error of a single unit can affect the execution of the entire process. In this embodiment of an existing edge computing environment, the edge units can be distributed or isolated units, or even in motion, such as machines in an industrial area or mobile units. Furthermore, the internet or cellular connections for the edge unit can be unstable or unreliable. This condition can easily lead to edge unit failures, and as a result, the tasks could fail to execute. These failures can last for a long time or be short-term and resolved, allowing the previous execution to resume quickly.Furthermore, the backup edge unit may fail before the assigned task has been completed. Thus, edge unit failures can be frequent and complex in the edge environment, and it is desirable to manage tasks that could not be executed in the edge environment to ensure high availability and fault tolerance of the edge units. It is also desirable to automatically manage the failed tasks to conserve resources and ensure high availability of edge services in the existing edge computing environment.
[0047] Accordingly, a feature and advantage of the present disclosure is that some embodiments may solve the problems described above as part of a solution for automatically managing failed tasks in the edge computing environment.
[0048] In the following, embodiments of the present disclosure will be described in detail with reference to the Fig. 5 to 8 described.
[0049] Fig. 5 shows an exemplary edge computing environment according to embodiments of the present disclosure. Similar and / or corresponding modules or elements in Fig. 4 are denoted by the same reference numerals in Fig. 5 and are not described here. Fig. Figure 5 shows only one example of an implementation environment and does not imply any limitations on the environment in which various embodiments may be implemented. Many modifications may be made to the example environment.
[0050] With reference to Fig. 5, a task wrapper module 5231 may be configured in the edge agent 423. The task check module 5243 and the task termination module 5244 may be configured in the receiver 4241. Compared to the Fig. In the existing computing environment shown in Figure 4, these three modules may be configured to manage tasks that failed to execute and may be implemented in software, hardware, firmware, and / or any combination thereof. The method of managing the tasks that failed to execute is referred to herein as a failure management method. These modules are provided only as an example. The edge computing environment according to some embodiments of the present disclosure may have more or fewer modules to achieve a similar function or goal. The modules, as well as their number, may vary and be arranged in different ways.
[0051] According to embodiments of the present disclosure, the task wrapper module 5231, the task check module 5243, and the task abort module 5244 may be configured to manage the task execution process when a failure occurs. If the edge agent 423 failed to obtain status information from a device during the defined process, the edge agent 423 may interrupt the defined process and call the task wrapper module 5231 to begin the failure management process. At the same time, the metadata information related to the failure may be retrieved and stored in the storage module 421. The task wrapper module 5231 may designate an edge device to replace the failed device and reassign the task that could not be executed to the replacement device.The task check module 5243 may be configured to check whether the received task result can be used as the task result for the task. The task cancellation module 5244 may be configured to cancel the execution of the backup unit when the task has been completed. After the task has been completed, the outage management procedure may be terminated, and the dispatcher module 4242 may call the edge agent to continue executing the remaining tasks according to the defined procedure.
[0052] If the backup unit also fails during task execution, in some embodiments and applications, the task wrapper module 5231 may send the failed task to yet another unit, and so on. The task wrapper module 5231 may determine which unit is suitable for executing the task, which is not described in detail here. Actual production or service practices may be complex, and it is possible that the backup unit also fails, which is why it may be necessary to replace the failed unit frequently in the edge computing environment. For simplicity, the present disclosure only describes the case where the backup unit has not failed, which should not adversely limit the scope of the disclosure. DEFINED PROCEDURE AND FAILURE MANAGEMENT PROCEDURE
[0053] According to embodiments of the present disclosure, a defined method for executing the tasks may refer to a method for executing the tasks by the appropriate edge devices, which is determined by the edge agent without regard to failures. The defined method for executing the tasks may be created by the edge agent 423 once a request to execute the tasks is received. For the tasks in the illustrative example, the defined method consists, in order, of Task_1, Task_2, Task_3, and Task_4, which are executed by the edge devices A, B, C, and D, respectively, as indicated by lines 431 to 438 in Fig. 4. A failure management method may refer to a sub-method of an overall task execution method, which may focus on managing tasks whose execution has failed. If no failure occurs, the tasks may be executed according to the defined method. However, after a failure has occurred, the edge agent may invoke the failure management method so that it replaces the corresponding defined method. The failure management method may be implemented by a task wrapper module 5231, a task check module 5243, and a task termination module 5244, as shown in Fig. 5, which together can be referred to as a "failure management system".
[0054] An exemplary embodiment of a failure management system suitable for performing the illustrative exemplary tasks is described in Fig. 6. According to some embodiments of the outage management method, the task checking module 5243 may check the task result from both units B and E, rather than simply replacing unit B with unit E without considering the current result of unit B. According to embodiments of the present disclosure, the task result received first may be used as the task result for the task. The detailed implementation of the outage management method is described below.
[0055] For the example tasks, if the edge agent 423 detects during the execution of the tasks that unit B is unavailable while the task executed by unit B has not yet been completed, the edge agent 423 may interrupt the defined procedure and call the task wrapper module 5231 to begin the failure management procedure. The task wrapper module 5231 may specify another unit, for example, unit E, to replace the previous unit, i.e., unit B, and reassign the request to execute Task_2 to this another unit, for example, unit E, as indicated by line 533' in Fig. 5. The edge agent may set a time-to-live (TTL) duration after sending the request to execute the task. The edge entity's proxy should return its status, such as "running" or "finished," to the edge agent during the TTL. For example, if the edge agent 423 failed to receive a status report from entity B during the TTL, the edge agent 423 may conclude that entity B is down or unavailable, and the edge agent 423 may initiate a failure management procedure. Obtaining the status information may use any suitable approach.
[0056] Edge unit E can execute Task_2 and can send the task result to the receiver module 4241, as shown by line 534'. In some edge computing environments, an unstable or patchy connection can cause multiple unit failures. In these environments, unit B is likely to resume operation after a short period of time and send a task result to the receiver module 4241, as shown by line 534. There are three possible scenarios for the example tasks.
[0057] A scenario can be like Fig. 7A. In this scenario, Unit B is always in a failed state, Unit E can send the task result to the receiver module 4241, and the Edge system can use a task result from Unit E as the task result for Task_2.
[0058] Another scenario can be as in Fig. 7B. In this scenario, Unit B resumes operation after a short period of time and sends a task result to the receiver module 4241. Unit E is still executing Task_2, and Unit B can be the first to send a task result from Task_2 to the receiver module 4241. The edge system can then use the task result from Unit B as the task result for Task_2. The execution of Unit E, which is still executing Task_2, can be aborted. In this scenario, resources can be saved.
[0059] Yet another scenario can occur as in Fig. 7C. In this scenario, Unit B resumes operation and sends a task result to the receiver module 4241. However, Task_2 is finished, meaning Unit E sent a task result to the receiver module 4241 before Unit B. In this scenario, the Edge system can ignore the task result of Unit B. EXAMPLE PROCEDURE
[0060] Fig. 8 shows an exemplary flowchart of a method 800 for dynamically managing tasks in the edge computing environment according to some embodiments of the present disclosure. The method 800 may be implemented in the Fig. 5. The method 800 may comprise operations 802 to 818, wherein operations 802 and 818 may be operations according to the defined method, and operations 804 to 816 may be operations for the failure management method corresponding to the three mentioned in the Fig. 7A to 7C. Operations 804 to 816 can be performed by the Fig. 6 shown failure management system can be implemented.
[0061] After the edge agent 423 has received a request to perform tasks, at operation 802, the edge agent 423 may, as described with reference to the Fig. 4 and Fig. 5, define the aforementioned defined procedure for executing the tasks on corresponding edge units. The edge agent 423 can then schedule all tasks to be executed on a corresponding unit according to the defined procedure.
[0062] In response to edge agent 423 determining that unit B is unavailable while task 2 executed by unit B has not yet completed, edge agent 423 may interrupt the defined procedure at operation 804 and call task wrapper module 5231 to initiate a failure management procedure. Task wrapper module 5231 may send task 2 to another edge unit, such as unit E, to replace unit B.
[0063] At operation 806, a task result may be received by the receiver module 4241. The task result may be a task result of Task_2 from unit E. It may also be a task result of Task_2 from unit B, since unit B's failure has been resolved and it continued executing Task_2.
[0064] At operation 808, the task check module 5243 may check whether Task_2 is marked as finished.
[0065] If Task_2 has not been marked as completed, the task checking module 5243 may determine at operation 810 that the received task result is the first received task result. The task checking module 5243 may use the received task result as the task result for Task_2 and mark Task_2 as completed.
[0066] At operation 812, the task checker 5243 may further check whether the received task result originates from entity B using the metadata information in the storage module 421. The metadata information may be as shown in Table 1. It should be understood that the data structure shown in Table 1 is provided for illustrative purposes without implying any limitation, and other data structures such as XML files, text files (.txt), etc., may also be used. Table 1 Einheiten-ID Aufgaben-ID B Task_2 E Task_2
[0067] If the task result does not originate from unit B, method 800 may continue directly to operation 818. This branch may be Fig. 7A. If the received task result is from device B, the task checker 5243 may set a variable "cancel_other_device" to "true." In response to the variable "cancel_other_device" being set to "true," the task cancellation module 5242 may send a cancellation request to device E at operation 814. Then, the method 800 may continue with operation 818. This branch corresponds to the Fig. 7B. After Task_2 is marked as finished, the outage management procedure may be terminated, and the dispatcher module 4242 may invoke the edge agent to continue the remaining defined procedure.
[0068] If Task_2 is marked as finished, the received task result can be ignored at process 816. It can be determined that Task_2 was finished by unit E and unit B sent the task result to unit E. This branch corresponds to the Fig. scenario shown in Figure 7C.
[0069] Fig. 9 shows another exemplary flowchart of a method 900 for dynamically managing tasks in the edge computing environment according to some embodiments of the present disclosure. For description purposes, the method 900 will be described with reference to Fig. 5 described.
[0070] At operation 910, the edge agent 423 may send a request to a first edge device to execute a task according to a defined method, where the defined method may be used to schedule tasks to execute on the edge devices. In response to the first edge device not executing the task, the edge agent 423 may interrupt the defined method at operation 920. At operation 930, the task wrapper module 5231 may send a request to a second edge device to execute the task. At operation 940, the task checker module 5243 may use a task result that is first received as the task result for the task, where the task result originates from either the first edge device or the second edge device. At operation 950, the dispatcher 4242 may invoke the edge agent 423 to continue the remainder of the defined method.
[0071] In some embodiments, at operation 940, in response to receiving a task result of the task, the task checking module 5243 may check whether the task is marked as completed. In response to the task not being marked as completed, the task checking module 5243 may determine that the received task result is a first-received task result and may mark the task as completed. In response to the task being marked as completed, the task checking module 5243 may determine that the received task result is not a first-received task result and may ignore the received task result.
[0072] At operation 940, in some embodiments, the task checking module 5243 may check whether or not the received task result originated from the first edge device. In response to the received task result originating from the first edge device, the task checking module 5243 may send an instruction to the second edge device to stop executing the task.
[0073] In some embodiments, in method 900, the storage system 511 may obtain and store metadata information of the task and the edge unit. The metadata information may include at least one of the following identifiers: task ID, first edge unit ID, and second edge unit ID.
[0074] The processing for managing the tasks according to embodiments of this disclosure may be performed by the computer system / server 12 of Fig. 1 be implemented.
[0075] Embodiments of the disclosure may include a system, a method, and / or a computer program product at any possible level of technical details of integration. The computer program product may include a computer-readable storage medium (or media) having computer-readable program instructions thereon for causing a processor to perform aspects of the disclosure.
[0076] The computer-readable storage medium may be any physical device capable of retaining and storing instructions for use by an instruction-executing system. The 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 thereof. A non-exhaustive list of more specific examples of the computer-readable storage medium includes the following: a portable computer diskette, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM).Flash memory), a static random access memory (SRAM), a portable compact disk read-only memory (CD-ROM), a DVD (digital versatile disc), a memory stick, a floppy disk, a mechanically encoded device such as punched cards or raised structures in a groove on which instructions are stored, and any suitable combination thereof. A computer-readable storage medium, as used herein, shall not be construed as containing transient signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., pulses of light traveling through fiber optic cables), or electrical signals transmitted through a wire.
[0077] Computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to respective computing / processing units or to an external computer or storage unit via a network such as the Internet, a local area network, a wide area network, and / or a wireless network. The network may include copper transmission cables, fiber optic transmission lines, wireless transmission, routers, firewalls, switching units, gateway computers, and / or edge servers.A network adapter card or network interface in each computing / processing unit can receive computer-readable program instructions from the network and can forward the computer-readable program instructions for storage in a computer-readable storage medium within the corresponding computing / processing unit.
[0078] Computer-readable program instructions for performing operations of some embodiments may include assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++, or the like, as well as 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 standalone software package, partially on the user's computer and partially on a remote computer, or entirely on the remote computer or server.In the latter case, 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 made to an external computer (e.g., over the Internet using an Internet service provider). In some embodiments, electronic circuits, including, for example, programmable logic circuits, field programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), may execute the computer-readable program instructions by utilizing state information of the computer-readable program instructions to personalize the electronic circuits to perform aspects of the disclosure.
[0079] Aspects of the 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. It should be understood that each block of the flowcharts and / or block diagrams, as well as combinations of blocks in the flowcharts and / or block diagrams, may 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 device to produce a machine such that the instructions executable by the processor of the computer or other programmable data processing device can implement the functions / steps defined in the block(s) of flowcharts and / or block diagrams.These computer-readable program instructions may also be stored on a computer-readable storage medium that can direct a computer, a programmable data processing apparatus, and / or other devices to function in a particular manner, such that the computer-readable storage medium having instructions stored thereon comprises an article of manufacture, including instructions that can implement aspects of the function / step specified in the flowchart block(s) 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 to cause the computer, other programmable apparatus, or other device to perform a series of operations to produce a computer-executable process such that the instructions executing on the computer, other programmable apparatus, or other device implement the functions / steps defined in the block(s) of flowchart 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 disclosure. In this regard, each block in the flowcharts or block diagrams may depict a module, segment, or portion of instructions comprising one or more executable instructions for performing the particular logical function(s). In some alternative implementations, the functions specified in the blocks may occur in a different order than shown in the figures.For example, two blocks shown in sequence may actually execute substantially simultaneously, substantially concurrently, or in a partially or completely temporally overlapping manner, or the blocks may sometimes execute in reverse order depending on the respective functionality. It should also be noted that each block of the block diagrams and / or flowcharts, as well as combinations of blocks in the block diagrams and / or flowcharts, may be implemented by special-purpose hardware-based systems that perform the specified functions or steps, or by special-purpose hardware and computer instructions.
[0083] The description of the various embodiments of the present disclosure has been provided for illustrative purposes, but is not intended to be exhaustive or 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 terminology used herein has been chosen to best describe the principles of the embodiments, practical application, or technical improvements over existing technology in the marketplace, or to enable others skilled in the art to understand the embodiments disclosed herein.
[0084] Therefore, it is desirable that the embodiments described herein be considered in all respects as exemplary and not restrictive, and that reference be made to the appended claims for determining the scope of the disclosure.
Claims
[1] A method (900) implemented by one or more processors on a computer, comprising: Sending (920) a request to execute a task to a first edge device according to a defined method, wherein the defined method is used to schedule tasks to be executed on edge devices; Requesting status information about the first Edge unit by an Edge agent, in response to a failed receipt of the status information, calling a task wrapper module (5231) to interrupt the defined procedure (920), Sending (930) a request to perform the task to a second edge unit; Using (940) a task result that is first received as the task result for the task, wherein the task result originates from either the first edge unit or the second edge unit; and Continue (950) the rest of the defined procedure. [2] The method (900) of claim 1, wherein using (940) the first received task result as the task result for the task comprises: in response to receiving the task result of the task, checking whether the task is marked as completed; in response to the task not being marked as completed, determining that the received task result is the first received task result; and Mark the task as completed. [3] The method (900) of claim 2, further comprising: in response to the task being marked as finished, determining that the received task result is not the first received task result, and Ignore (816) the received task result. [4] The method (900) of claim 2, further comprising: Checking (812) whether the received task result of the task originates from the first edge unit; and in response to the received task result originating from the first edge unit, sending (814) an instruction to the second edge unit to terminate the execution of the task. [5] The method (900) of claim 4, further comprising obtaining information about the task from the task result of the task to check whether the received task result originates from the first edge unit. [6] The method (900) of claim 5, wherein the information comprises information selected from the group consisting of: an ID of the task and an ID of the edge device. [7] The method (900) of claim 7, further comprising, by the task wrapper module (5231): Selecting the second Edge unit to replace the first Edge unit; and Reassign the task to the second edge unit. [8] Computer system (12), comprising: one or more processors (16); a computer-readable memory (28) connected to the processors (16), the computer-readable memory comprising instructions that, when executed by the processors, enable the processor (16) to perform the method (900) of any one of claims 1 to 7. [9] A computer program product comprising a computer-readable storage medium having program instructions embodied therein, the program instructions being executable by a processor (16) to cause the processor (16) to perform the method (900) of any one of claims 1 to 7.
Citation Information
Patent Citations
Object-oriented job scheduler
GB2344906A
System and Method for Large-Scale Data Processing Using an Application-Independent Framework
US20100122065A1
System and method for proactive task scheduling
US20120167101A1
Methods and apparatus to execute a workload in an edge environment
US20200167196A1
