Edge Resource Processing
The Edge Resource Manager optimizes edge computing by identifying and prioritizing data sources and edge devices, deploying computational plans for efficient data processing, which addresses the inefficiencies in existing edge computing systems and enhances processing speed and bandwidth efficiency.
Patent Information
- Application Number
- JP2024541197
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-03-15
- Filing Date
- 2023-03-13
- Publication Date
- 2025-04-11
AI Technical Summary
Existing edge computing systems struggle to efficiently manage multiple data sources and edge devices in a single location, leading to suboptimal data processing and increased bandwidth usage.
The proposed solution involves an Edge Resource Manager that identifies multiple data sources and edge devices, determines context priorities based on sample data feeds, and deploys computational plans for edge devices to perform parallel, serial, or varying degrees of parallel processing.
This approach accelerates data processing by optimizing the distribution of data processing tasks among edge devices based on context priorities and historical contexts, thereby reducing bandwidth usage and improving response times.
Smart Images

Figure 2025509034000001_ABST
Abstract
Description
[Technical field]
[0001] The present disclosure relates generally to edge computing, and more particularly to managing edge resource processing in an edge computing environment. [Background technology]
[0002] Edge computing is a distributed computing framework that brings computation and data storage to a local level, closer to the source of the data. The source of the data can include Internet of Things (IoT) devices or local edge servers. Leveraging these sources of data can improve response times and reduce the bandwidth involved with edge computing, as computation and storage occurs at a local level rather than on a remote server. The ongoing deployment of 5G networks is increasing the number of connected devices for which edge computing is available, increasing the amount of computation and data storage that occurs at a local level. Summary of the Invention
[0003] An embodiment according to the invention discloses a method, computer program product, and computer system for managing edge resource processing, the method, computer program product, and computer system being capable of identifying a plurality of data sources at a location, where each sensor of a plurality of sensors associated with the plurality of data sources produces data for processing by a plurality of edge devices. The method, computer program product, and computer system are capable of determining a context priority for each data source of the plurality of data sources in response to sampling a data feed from each data source of the plurality of data sources to establish a context. The method, computer program product, and computer system are capable of identifying a plurality of edge devices at a location for performing a computation on data produced by the plurality of data sources. The method, computer program product, and computer system are capable of determining a computation plan for the edge devices based on a context priority for each data source of the plurality of data sources in response to identifying a type of computation for the plurality of edge devices. The method, computer program product, and computer system are capable of deploying the computation plan for the plurality of edge devices.
[0004] Preferred embodiments of the present invention will now be described, by way of example only, and with reference to the following drawings, in which: [Brief description of the drawings]
[0005] [Figure 1] 1 is a functional block diagram illustrating a distributed data processing environment in accordance with an embodiment of the present invention. [Diagram 2] 4 is a flowchart of an edge resource manager program for managing edge device data processing according to an embodiment of the present invention. [Diagram 3] 1 is a process flow of an edge resource manager program for deploying edge devices based on historical context according to an embodiment of the present invention. [Figure 4] 2 is a block diagram of components of a computer system, such as the server computer of FIG. 1, in accordance with an embodiment of the present invention. [Diagram 5] FIG. 1 is a diagram of a cloud computing environment in accordance with an embodiment of the present invention. [Figure 6] FIG. 2 is a diagram of abstraction model layers, according to an embodiment of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0006] An embodiment of the present invention manages edge resource processing for various data sources at a location, such as a manufacturing facility or infrastructure site, by identifying various data sources at a location and identifying distances between each of the various data sources. An embodiment of the present invention samples data feeds from each data source to establish a context and determine a context priority for each data source for data processing by an edge device (i.e., an edge resource). An embodiment of the present invention identifies available edge devices at a location and identifies a type of computation for the edge devices based on the context and context priority for each of the various data sources. An embodiment of the present invention determines a computation plan for the available edge devices based on the context priority and historical context from previously deployed edge devices. The computation plan affects where each edge device should relocate and the type of data processing for each of the data sources. An embodiment of the present invention deploys each of the edge devices at a location to each of the various data sources for data processing. Improvements to the technology include accelerating data processing through edge computing by integrating contextual priorities and historical context to perform computations on data in serial, parallel, or varying degrees of serial and parallel based on the priority for the data values being produced by each data source.
[0007] FIG. 1 is a functional block diagram illustrating a distributed data processing environment, generally designated 100, in accordance with one embodiment of the present invention. As used herein, the term "distributed" refers to a computer system that includes multiple physically disparate devices that operate together as a single computer system. FIG. 1 illustrates only one implementation and is not intended to suggest any limitations with respect to the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be made by one skilled in the art without departing from the scope of the present invention as recited by the claims.
[0008] The distributed data processing environment includes a server computer 102, an edge device 104A, an edge device 104B, and an Internet of Things (IoT) device 106, all interconnected via a network 108. The server computer 102 can be a standalone computing device, an administrative server, a web server, a mobile computing device, or any other electronic device or computing system capable of receiving, sending, and processing data. In other embodiments, the server computer 102 can represent a server computing system that utilizes multiple computers as a server system, such as in a cloud computing environment. In another embodiment, the server computer 102 can be a laptop computer, a tablet computer, a netbook computer, a personal computer (PC), a desktop computer, or any programmable electronic device capable of communicating with the edge device 104A, the edge device 104B, the IoT device 106, and other computing devices (not shown) in the distributed data processing environment via the network 108. In another embodiment, the server computer 102 represents a computing system utilizing clustered computers and components (e.g., database server computers, application server computers, etc.) that function as a single pool of seamless resources when accessed within a distributed data processing environment. The server computer 102 includes an edge resource manager 110 and a database 112. The server computer 102 may include internal and external hardware components, as depicted and described in further detail with respect to FIG.
[0009] Edge devices 104A and 104B represent electronic devices capable of performing local computations in parallel, serial, or varying degrees of parallel and serial, based on data received from sensors 114 of IoT device 106. Edge devices 104A and 104B allow computations to be performed locally, rather than being sent to a remote server (e.g., server computer 102), resulting in faster processing by relying on edge node 107 rather than network 108. Edge devices 104A and 104B can send data (e.g., computation results) to server computer 102 through edge node 107 over network 108. Examples of edge nodes 107 can include routers, routing switches, integrated access devices (IADs), multiplexers, and various metropolitan area network (MAN) and wide area network (WAN) access devices. The IoT devices 106 represent electronic devices connected to the network 108 that are capable of exchanging data with other devices (e.g., the server computer 102) via the network 108 and with other devices (e.g., the edge devices 104A and 104B) through the edge nodes 107. The IoT devices 106 include various sensors 114 for collecting data and sending it to the edge devices 104A and 104B via the edge nodes 107 for computation. The IoT devices 106 can include, but are not limited to, appliances, home security systems, health monitoring devices, factory equipment, wireless inventory trackers, biometric security scanners, and any other electronic devices embedded with sensors and software for connecting to and exchanging data with other devices and systems via the network (i.e., the network 108 and the edge nodes 107).
[0010] The network 108 may be, for example, a telecommunications network, a local area network (LAN), a wide area network (WAN) such as the Internet, or a combination of the three, and may include wired, wireless, or fiber optic connections. The network 108 may include one or more wired and / or wireless networks capable of transmitting and receiving data signals, voice signals, or video signals, including multimedia signals including voice information, data information, and video information, or a combination thereof. In general, the network 108 may be any combination of connections and protocols that will support communication between the server computer 102, the edge devices 104A and 104B, the IoT device 106, and other computing devices (not shown) in the distributed data processing environment.
[0011] The edge resource manager 110 manages data processing for edge devices 104A and 104B by identifying data sources (i.e., IoT devices 106) at a location, such as a power plant, a water treatment plant, or a manufacturing facility. The edge resource manager 110 identifies distances between the data sources at a location and samples IoT data feeds from each data source to establish a context for the data being collected. The edge resource manager 110 determines a context priority for the data sources based on the established context for the data being collected and identifies edge devices (e.g., edge devices 104A and 104B) for performing computations. The edge resource manager 110 identifies a type of computation for edge devices 104A and 104B, which may include parallel, serial, or varying degrees of parallel processing. Based on the identified types of computations for edge devices 104A and 104B, edge resource manager 110 determines a computation plan and deploys the computation plan for edge devices 104A and 104B. Deploying the computation plan can include instructing edge devices 104A through 104B to relocate to a specified area in one location and perform computations for the data sources in parallel, serial, or varying degrees of parallelism.
[0012] The database 112 is a repository that stores various data, including operational data for the edge devices 104A and 104B, operational data from the sensors 114 of the IoT devices 106, and any other data relevant to the edge resource manager 110 for managing edge resource processing. In the depicted embodiment, the database 112 resides on the server computer 102. In alternative embodiments, the database 112 may be located elsewhere in the distributed data processing environment, provided that the edge resource manager 110 has access to the database 112. A database is an organized collection of data, and the database 112 may be implemented in any type of storage device capable of storing data and configuration files that can be accessed and utilized by the edge resource manager 110, such as a database server, hard disk drive, or flash memory.
[0013] FIG. 2 illustrates a flowchart of an edge resource manager program for managing edge device data processing according to an embodiment of the present invention.
[0014] The edge resource manager 110 identifies (202) data sources at a location. The data sources represent IoT devices with various sensors configured to generate operational data at a location. In one embodiment, the edge resource manager 110 identifies data sources at a power plant including various monitoring systems for pressure, temperature, capacity, energy output, and resource input. Each of the various monitoring systems comprises sensors configured to generate operational data for pressure, temperature, capacity (e.g., water flow, gas flow), energy output, and resource input. In another embodiment, the edge resource manager 110 identifies data sources in a server room with multiple operational server racks including various monitoring systems for fire, pressure, temperature, motion, seismic motion, and moisture. Each of the various monitoring systems comprises sensors configured to generate operational data for fire (e.g., smoke detectors), pressure, temperature, motion (e.g., movement of individuals in the server room), seismic motion (e.g., movement of server racks on the floor of the server room), and moisture (humidity levels).
[0015] The edge resource manager 110 identifies (204) distances between the data sources at a location. The edge resource manager 110 identifies the distances between each of the monitoring systems with sensors from various monitoring systems, ranging from a Global Positioning System (GPS), a wireless positioning system, or an indoor positioning system (IPS), or a combination thereof. In the case of a GPS, the edge resource manager 110 determines the GPS coordinates of each of the data sources and computes the distances between each of the data sources. In the case of a wireless positioning system, the edge resource manager 110 uses the angle of arrival of the signal from each of the data sources, or a time-of-flight (ToF) localization of each of the data sources, or both, to identify the location and the distances between each of the data sources. In the case of an indoor positioning system, the edge resource manager 110 uses a network of devices to locate the data sources at a location and determine the distances between each of the data sources. The edge resource manager 110 utilizes the distance between data sources in one location to deploy and position edge devices when performing computations on the IoT data feeds produced by the data sources.
[0016] The edge resource manager 110 samples the IoT data feed from each data source to establish a context (206). In one embodiment, the edge resource manager 110 samples the IoT data feed from each data source at a particular point in time to provide a snippet of each data source at one location. With the snippet of the IoT data feed from each data source, the edge resource manager 110 identifies what data is being monitored and collected along with any existing thresholds of data that would result in possible actions (e.g., emergency shutdown). In other embodiments, the edge resource manager 110 samples the IoT data feed from each data source at a predetermined time, or continuously over time, or both, since a particular point in time may not provide an accurate representation of the data source and the IoT data feed being produced by the data source. For example, if a data source is partially operational from 10:00 PM to 5:00 AM and fully operational from 5:00 AM to 10:00 PM, the edge resource manager 110 may not sample the IoT data feed from each data source at a particular time (e.g., 12:30 PM) compared to sampling the IoT data feed for a given time period, such as 24 hours. It is noted that the edge resource manager 110 may utilize a combination of embodiments for sampling the IoT data feeds. For example, prior to deployment of edge devices, the edge resource manager 110 may sample the IoT data feed from each data source to establish a context using the snippets, and after deployment of the edge devices, continuously sample the IoT data feeds over time and adjust the edge device deployment accordingly.
[0017] In one example, the edge resource manager 110 previously identified data sources in a power plant, including various monitoring systems for pressure, temperature, capacity, energy output, and resource input. The edge resource manager 110 samples IoT data feeds from each data source over a 24-hour period to establish a context, the data sources including various monitoring systems. The edge resource manager 110 samples the IoT data feeds by receiving various data values of sensors located in each monitoring system for pressure, temperature, capacity, energy output, and resource input. In another example, the edge resource manager 110 previously identified data sources in a server room with multiple operational server racks, including various monitoring systems for fire, pressure, temperature, motion, seismic motion, and moisture. The edge resource manager 110 samples IoT data feeds from each data source over a predetermined period to establish a context, the predetermined period being a time of peak power usage by equipment in the server room (i.e., multiple operational server racks). The edge resource manager 110 samples the IoT data feed by receiving various data values of sensors deployed in each monitoring system related to fire, pressure, temperature, motion, seismic motion, and moisture.
[0018] The edge resource manager 110 determines (208) a context priority for the data sources. The edge resource manager 110 determines a context priority for the various data sources based on the sample IoT data feed of each data source. The context priority ranks the various data sources based on a level of urgency for data processing by edge devices deployed at a location based on the determined computational plan. For a data source that has data values from various sensors that exceed thresholds or are outside of normal operating ranges, resulting in a potentially dangerous situation for an individual or the environment, the edge resource manager 110 can assign a high context priority to this data source. For a data source that has data values from various sensors that exceed thresholds or are outside of normal operating ranges, resulting in high energy consumption without inherent danger to an individual or the environment, the edge resource manager 110 can assign a low context priority to this data source compared to the data source that is in a potentially dangerous situation.
[0019] In one example, the edge resource manager 110 previously identified data sources at a power plant, including various monitoring systems for pressure, temperature, capacity, energy output, and resource input. The edge resource manager 110 has sampled IoT data feeds from each data source over a 24-hour period to establish a context, where the data sources include the various monitoring systems. The edge resource manager 110 sampled the IoT data feeds by receiving various data values of sensors located at each monitoring system for pressure, temperature, capacity, energy output, and resource input. The edge resource manager 110 determines a context priority for the various monitoring systems for pressure, temperature, capacity, energy output, and resource input. In the case of the monitoring system for pressure, the edge resource manager 110 determines a high context priority for the data source because a data value above a threshold or outside an operating range is dangerous to the equipment and any individuals (e.g., plant workers) in the vicinity of the equipment. For the temperature monitoring system, the edge resource manager 110 determines a high context priority for the data source due to a potentially dangerous situation, but a lower priority compared to the pressure monitoring system. For the capacity and energy output monitoring system, the edge resource manager 110 determines a low context priority for the data source due to the lack of immediate danger for data values exceeding thresholds or outside of operating ranges. Thus, data processing time is greater and the edge resource manager 110 does not need to immediately deploy an edge device to resolve the capacity and energy output monitoring system issue. For the resource input monitoring system, if the pressure monitoring system data values are similarly above thresholds or outside of operating ranges, the edge resource manager 110 determines a medium context priority since data values exceeding thresholds or outside of operating ranges could potentially create a dangerous situation.
[0020] In another example, the edge resource manager 110 previously identified data sources in a server room with multiple operational server racks, including various monitoring systems for fire, pressure, temperature, motion, seismic motion, and moisture. The edge resource manager 110 established a context by sampling IoT data feeds from each data source during a predefined time period, the predefined time period being a time of peak power usage by the equipment in the server room (i.e., the multiple operational server racks). The edge resource manager 110 sampled the IoT data feeds by receiving various data values of sensors located in each of the fire, pressure, temperature, motion, seismic motion, and moisture monitoring systems. In the case of the fire and seismic motion monitoring systems, the edge resource manager 110 determines a high context priority because data values exceeding thresholds or outside of operational ranges could potentially create a dangerous situation for individuals in the server room, the equipment in the server room (i.e., the multiple operational server racks), and the data stored on the equipment in the server room. For pressure, temperature, and motion monitoring systems, the edge resource manager 110 determines a low context priority because data values above thresholds or outside operating ranges require attention and correction but do not pose an immediate dangerous situation to individuals or equipment in the server room. For motion monitoring systems, the edge resource manager 110 determines a medium context priority because data values above thresholds or outside operating ranges could potentially create a dangerous situation if an intruder is present in the server room or if data values for seismic motion monitoring systems are similarly above thresholds or outside operating ranges.
[0021] The edge resource manager 110 identifies (210) edge devices for performing computation. The edge resource manager 110 monitors edge devices for processing data at a location and identifies available edge devices for deployment to various data sources for performing computation, the edge devices being placed in proximity to the data sources. The edge devices utilize edge nodes for communication and data processing to reduce the time to perform computation compared to sending data for processing over a network to a remote server. As previously mentioned, the edge devices represent electronic devices capable of performing local computation in parallel, serial, or varying degrees of parallelism based on data received from sensors of each data source at a location. The edge devices can be fixed or mobile, and the edge resource manager 110 deploying the computation plan for the edge devices can include instructing a particular edge device to relocate to a location closer to the data source. The edge resource manager 110 can also identify edge devices based on storage availability, processing specifications, processing availability, connection specifications, and connection availability.
[0022] The edge resource manager 110 identifies (212) the type of computation for the edge device. The edge resource manager 110 identifies the type of computation for the edge device from the list of entries including serial, parallel, and various degrees of parallel processing. In one example, the edge resource manager 110 previously identified data sources at a power plant including various monitoring systems for pressure, temperature, capacity, energy output, and resource input. The edge resource manager 110 also determined a high context priority for the monitoring systems for pressure and temperature, a medium context priority for the monitoring systems for resource input, and a low context priority for the monitoring systems for capacity and energy output. The edge resource manager 110 previously identified three edge devices for performing computations, and based on the number of available edge devices and the number of data sources having a high context priority, the edge resource manager 110 identifies that parallel processing is required for two of the three edge devices for performing computations for the data sources having a high context priority. The edge resource manager 110 identifies that serial processing is required from a third edge device to perform computations on data sources having a medium context priority and a low context priority.
[0023] In another example, the edge resource manager 110 previously identified data sources in a server room with multiple operational server racks, including various monitoring systems for fire, pressure, temperature, motion, seismic motion, and moisture. The edge resource manager 110 also determined a high context priority for the monitoring systems for fire and seismic motion, a medium context priority for the monitoring systems for motion, and a low context priority for the monitoring systems for pressure, temperature, and moisture. The edge resource manager 110 previously identified five edge devices for performing computational calculations, and based on the number of available edge devices and the number of data sources having a high context priority, the edge resource manager 110 identifies that parallel processing is required for three of the five edge devices for performing computational calculations for the data sources having a high context priority. The edge resource manager 110 identifies that when computational computations for data sources having an intermediate context priority and, occasionally, additional data processing is required by three edge devices, a varying degree of parallel processing is required for a fourth edge device to perform computational computations for data sources having a high context priority, and a serial processing is required for a fifth edge device to perform computational computations for data sources having a low context priority.
[0024] The edge resource manager 110 determines (214) a computational plan for the edge devices. The computational plan affects how each of the available edge devices should process data from the various data sources. In one example, the edge resource manager 110 determines that one aspect of the computational plan for the edge devices at one location includes instructing two of the three available edge devices to transfer data to a previously identified data source having a high context priority for data processing, and instructing a third edge device to transfer data between the previously identified data sources having a medium context priority and a low context priority for data processing. The edge resource manager 110 determines that another aspect of the computational plan for the edge devices at one location includes instructing each of the three edge devices to perform previously identified serial, parallel, or varying degrees of parallel data processing for the various data sources. In another example, the edge resource manager 110 determines that one aspect of the computational plan of the edge devices at a location includes instructing three of five available edge devices to transfer for data processing to a previously identified data source having a high context priority, the edge resource manager 110 also determines that a second aspect of the computational plan of the edge devices at a location includes instructing a fourth available edge device to transfer for data processing between the previously identified data sources having a high context priority and a medium context priority, and the edge resource manager 110 also determines that a third aspect of the computational plan of the edge devices at a location includes instructing a fifth edge device to transfer for data processing between the previously identified data sources having a medium context priority and a low context priority.The edge resource manager 110 determines that a fourth aspect of the computational planning of the edge devices at one location includes instructing each of the five edge devices to perform the previously identified serial, parallel, or varying degrees of parallel data processing for the various data sources.
[0025] The edge resource manager 110 deploys (216) the computational plan for the edge devices. The edge resource manager 110 deploys the computational plan for the edge devices by instructing each edge device to implement each aspect of the computational plan. In one embodiment, the edge resource manager 110 instructs the edge device to relocate to a location between two data sources, the first data source including a high context priority data value and the second data source including an intermediate context priority data value. After receiving confirmation from the edge device regarding the relocation between the first data source and the second data source, the edge resource manager 110 instructs the edge device to process the data from the first data source with varying degrees of parallelism with the data from the second data source. If the data value from the second data source exceeds a threshold or is outside an operational range, the edge resource manager 110 instructs the edge device to process the data from the first data source and the second data source in parallel. However, if the data value from the second data source is below the threshold or within the operating range, the edge resource manager 110 instructs the edge device to process the data from the first data source and the second data source in series, with the high context priority data value being prioritized over the intermediate context priority data value. In another embodiment, the edge resource manager 110 instructs the edge device to relocate to a location of the first data source, the data source including a high context priority data value. After receiving confirmation from the edge device regarding the relocation between the data sources, the edge resource manager 110 instructs the edge device to process the data from the data sources in series. In yet another embodiment, the edge resource manager 110 instructs the edge device to relocate to a location between the two data sources, the first data source and the second data source each including a high context priority data value.After receiving confirmation that the edge device has transferred between the first data source and the second data source, the edge resource manager 110 instructs the edge device to process the data from the first data source and the second data source in parallel.
[0026] An embodiment of the present invention analyzes the contextual priorities of edge computing needs and determines the edge computing types that can be performed by the various devices based on the contextual priorities. The computing types include sequential (i.e., serial), parallel, or various degrees of parallel processing. An embodiment of the present invention can relocate edge devices to surrounding locations such that edge computing can be performed according to the identified edge computing process (e.g., sequential, parallel, various degrees of parallel processing). An embodiment of the present invention analyzes the contextual priorities of edge computing and identifies how the data sets should be distributed among the edge devices such that appropriate parallel processing can be performed by the edge devices (e.g., the same data set can be divided into multiple segments vs. multiple data sets can be processed in parallel). An embodiment of the present invention identifies the physical location of the data source and thus how the edge devices should be physically located at one location based on the edge processing needs. According to the edge processing needs, the same data set (e.g., lookup) may be required for multiple data sets in the edge computing, and thus the distant edge device can perform the appropriate movement such that the requested edge computing can be performed. Based on the dynamic change of the mode of edge computing process (e.g., sequential, parallel, different degrees of parallelism), the proposed edge computing ecosystem can adjust the physical location or allocation of edge devices in said edge computing ecosystem.
[0027] FIG. 3 depicts a process flow of an edge resource manager program for deploying edge devices based on historical context, according to an embodiment of the present invention. In some embodiments, the edge resource manager 110 utilizes the historical context and templates to determine a computational plan for edge devices performing data processing for various data sources. In this illustrative flow example, the edge resource manager 110 receives IoT data feeds from various data sources, including an infrastructure monitoring system 302A, an industrial monitoring system 302B, and an agricultural monitoring system 302C, each of which represents a different type of context situation in which sensors and edge devices exist in an edge computing ecosystem. In process 304, the edge resource manager 110 determines the historical context to be implemented by identifying how sensors and edge devices are deployed at a location for data processing, the type of context situation (i.e., 302A, 302B, and 302C), the movement of edge devices while performing computational calculations, and different levels of effectiveness of edge computing. In the cloud server 306, the edge resource manager 110 creates a historical context aware edge computing template for use in determining a computational plan for the edge device. In process 308, the edge resource manager 110 identifies any edge computing needs for various data sources, and in process 310, the edge resource manager 110 identifies an appropriate template for edge computing based on the historical context aware edge computing template.In process 312, the edge resource manager 110 identifies available edge devices, and in process 314, the edge resource manager 110 identifies appropriate locations and orientations for each edge device and sensor based on the selected historical context-aware edge computing template for the edge device's computational planning.
[0028] Based on the historically captured relative positions, orientations of different sensors, and edge devices for different contextual situations of edge computing, embodiments of the present invention can create templates that capture the relative positions, orientations of sensors, and edge devices for different types of edge computing needs. While templates are created with different relative positions and orientations of IoT sensors and edge devices, embodiments of the present invention can capture the context of edge computing (e.g., the effects and correction of a gas leak, versus the amount of water leakage in any industrial floor). As a result, when a similar context of edge computing is identified, embodiments of the present invention can identify how the sensors and edge devices should be positioned. Based on the historically identified effectiveness of different edge computing for different contexts of edge computing, embodiments of the present invention can identify which template is appropriate for the identified contextual needs of edge computing and can select the appropriate template. When the need for any context of edge computing is identified, embodiments of the present invention can identify an appropriate template and the edge devices and IoT sensors should be involved in the edge computing while relocating based on the identified template for the placement of the edge and IoT devices. For similar types of edge computing, the context situation can change from time to time, and therefore, based on the change in the context situation, embodiments of the present invention can enforce the appropriate template and the sensors can be relocated / re-adjusted within the surrounding situation. Based on the historical analysis, performance of different edge computing decisions, embodiments of the present invention can calculate the effectiveness of edge computing and therefore identify the template that can provide better performance of edge computing.
[0029] 4 depicts a computer system 400, where the server computer 102 is an example of a computer system 400 including an edge resource manager 110. The computer system includes a processor 404, a cache 416, a memory 406, a persistent storage 408, a communication unit 410, an input / output (I / O) interface 412, and a communication fabric 402. The communication fabric 402 provides communication between the cache 416, the memory 406, the persistent storage 408, the communication unit 410, and the input / output (I / O) interface 412. The communication fabric 402 can be implemented with any architecture designed to pass data and / or control information between a processor (such as a microprocessor, communication and network processor, etc.), system memory, peripheral devices, and any other hardware components in the system. For example, the communication fabric 402 can be implemented with one or more buses or crossbar switches.
[0030] Memory 406 and persistent storage 408 are computer-readable storage media. In this embodiment, memory 406 includes random access memory (RAM). In general, memory 406 may include any suitable volatile or non-volatile computer-readable storage medium. Cache 416 is a high-speed memory that enhances the performance of processor 404 by holding recently accessed and near recently accessed data from memory 406.
[0031] Program instructions and data used to practice embodiments of the present invention may be stored in persistent storage 408 and in memory 406 for execution by one or more of the respective processors 404 via cache 416. In one embodiment, persistent storage 408 includes a magnetic hard disk drive. Alternatively, or in addition to a magnetic hard disk drive, persistent storage 408 may include a solid state hard drive, a semiconductor storage device, a read only memory (ROM), an erasable programmable read only memory (EPROM), a flash memory, or any other computer-readable storage medium capable of storing program instructions or digital information.
[0032] The media used by persistent storage 408 may also be removable. For example, a removable hard drive may be used for persistent storage 408. Other examples include optical and magnetic disks, thumb drives, and smart cards that are inserted into a drive for transfer to another computer-readable storage medium that is also part of persistent storage 408.
[0033] Communications unit 410, in these examples, provides for communication with other data processing systems or devices. In these examples, communications unit 410 includes one or more network interface cards. Communications unit 410 may provide communications through the use of either or both physical and wireless communications links. Program instructions and data used to practice embodiments of the present invention may be downloaded to persistent storage 408 via communications unit 410.
[0034] The I / O interface 412 allows for the input and output of data with other devices that may be connected to each computer system. For example, the I / O interface 412 may provide a connection to external devices 418, such as a keyboard, a keypad, a touch screen, or some other suitable input device, or a combination thereof. The external devices 418 may also include portable computer-readable storage media, such as, for example, thumb drives, portable optical or magnetic disks, and memory cards. Software and data used to practice embodiments of the present invention may be stored on such portable computer-readable storage media and loaded into the persistent storage 408 via the I / O interface 412. The I / O interface 412 also connects to a display 420.
[0035] Display 420 provides a mechanism for displaying data to a user and may be, for example, a computer monitor.
[0036] The programs described herein are identified based on the applications in which they are implemented in specific embodiments of the invention. Nevertheless, it should be understood that any particular program terminology herein is used merely for convenience, and thus the invention should not be limited to use merely in any specific application identified and / or suggested by such terminology.
[0037] The present invention may be a system, method, or computer program product, or combination thereof, at any possible level of technical detail of integration. The computer program product may include a computer-readable storage medium (or media) having computer-readable program instructions for causing a processor to carry out aspects of the present invention.
[0038] A computer readable storage medium can be a tangible device that can hold and store instructions for use by an instruction execution device. A computer readable storage medium can be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer readable storage media includes portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory sticks, floppy disks, mechanically encoded devices such as punch cards or ridge-in-groove structures having instructions recorded thereon, and any suitable combination of the foregoing. Computer-readable storage media as used herein should not be interpreted as signals that are transitory in nature, such as electric waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., light pulses passing through a fiber optic cable), or electrical signals transmitted through wires.
[0039] The computer readable program instructions described herein can be downloaded from the computer readable storage medium to each computing / processing device or to an external computer or external storage device over a network, such as the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. The network may comprise copper transmission cables, optical transmission fiber, wireless transmission, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. A network adapter card or network interface of each computing / processing device receives the computer readable program instructions from the network and forwards the computer readable program instructions for storage on the computer readable storage medium within the respective computing / processing device.
[0040] The computer readable program instructions for carrying out the operations of the present invention may be assembler instructions, instruction set architecture (ISA) instructions, machine language instructions, machine dependent instructions, microcode, firmware instructions, state setting data, configuration data for integrated circuit devices, or source 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, and procedural programming languages such as the “C” programming language or similar programming languages. The computer readable program instructions may run entirely on the user's computer, or partially on the user's computer, as a stand-alone software package, or partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (e.g., through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, a programmable logic circuit device, a field programmable gate array (FPGA), or a programmable logic array (PLA) may execute computer readable program instructions by utilizing state information of the computer readable program instructions to individualize the electronic circuitry to perform aspects of the present invention.
[0041] Aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer readable program instructions.
[0042] These computer readable program instructions may be provided to a processor of a computer or other programmable data processing apparatus to produce a machine, the instructions executing on the processor of the computer or other programmable data processing apparatus to produce means for performing the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams. These computer readable program instructions may also be stored on a computer readable storage medium such that the computer readable storage medium having stored thereon an article of manufacture including instructions for performing aspects of the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams, and may direct a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner.
[0043] The computer readable program instructions may also be loaded into a computer, other programmable data processing apparatus, or other device to perform a series of operational steps on the computer, other programmable apparatus, or other device to produce a computer-executed process, such that the instructions execute on the computer, other programmable apparatus, or other device to perform the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.
[0044] 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 invention. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of instructions, including one or more executable instructions for performing a specified logical function. In some alternative implementations, the functions noted in the blocks may be performed out of the order noted in the figures. For example, two blocks shown in succession may in fact be performed as one step performed simultaneously, substantially simultaneously, in a partially or fully time-overlapping manner, or the blocks may sometimes be performed in reverse order depending on the functionality involved. It is also noted that each block of the block diagrams and / or flowchart illustrations, and combinations of blocks in the block diagrams and / or flowchart illustrations, may be executed by a dedicated hardware-based system that performs the specified functions or acts or executes a combination of dedicated hardware and computer instructions.
[0045] Although this disclosure includes a detailed description of cloud computing, it should be understood that implementations of the teachings recited herein are not limited to a cloud computing environment. Rather, embodiments of the invention are capable of being implemented in conjunction with any other type of computing environment now known or later developed.
[0046] Cloud computing is a model of service delivery 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 a service provider. The cloud model may include at least five characteristics, at least three service models, and at least four deployment models.
[0047] The characteristics are as follows:
[0048] On-Demand Self-Service: Cloud customers can unilaterally provision computing power, such as server time and network storage, automatically as needed, without the need for human interaction with the service provider.
[0049] Broad Network Access: Capabilities are available over the network and accessed through standard mechanisms that facilitate use by heterogeneous thin or thick client platforms (e.g., cell phones, laptops, and PDAs).
[0050] Resource Pooling: A provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, with dynamic allocation and reallocation of various physical and virtual resources according to demand. Location independence is meant in that consumers generally have no control or knowledge of the exact location of the resources provided, but the location may be specified at a higher level of abstraction (e.g., country, state, or data center).
[0051] Rapid Elasticity: Capacity can be rapidly and elastically provisioned, sometimes automatically, to quickly scale out, and rapidly released to quickly scale in. To the consumer, the capacity available for provisioning often appears unlimited, and can be purchased at any time in any amount.
[0052] Measured Services: Cloud systems automatically control and optimize resource utilization by leveraging metering capabilities at several levels of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource utilization can be monitored, controlled, and reported, providing transparency to both providers and consumers of the services used.
[0053] The service model is as follows:
[0054] Software as a Service (SaaS): The consumer is provided with the ability to use the provider's applications running on a cloud infrastructure. The applications are accessible from a variety of client devices through thin-client interfaces such as web browsers (e.g., web-based email). The consumer has no management or control over the underlying cloud infrastructure, including networks, servers, operating systems, storage, or possibly individual application capabilities, with the possible exception of limited user-specific application configuration settings.
[0055] Platform as a Service (PaaS): The capability provided to a consumer is to deploy consumer-created or acquired applications, created using provider-supported programming languages and tools, onto a cloud infrastructure. The consumer does not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but does have control over the deployed applications and, in some cases, the configuration of the environment that hosts the applications.
[0056] Infrastructure as a Service (IaaS): The capability provided to a customer is to provide processing, storage, networking, and other basic computing resources on which the customer can deploy and run any software, which may include operating systems and applications. The customer does not manage or control the underlying cloud infrastructure, but does have control over the operating systems, storage, deployed applications, and in some cases limited control over the selection of networking components (e.g., host firewalls).
[0057] The deployment model is as follows:
[0058] Private Cloud: The cloud infrastructure is operated solely for the organization. The cloud infrastructure may be managed by the organization or a third party and may be on-site or off-site.
[0059] Community Cloud: The cloud infrastructure is shared by several organizations to support a unique community that has shared concerns (e.g., mission, security requirements, policies, and compliance considerations). The cloud infrastructure may be managed by the organization or a third party and may be on-site or off-site.
[0060] Public Cloud: Cloud infrastructure is available to the general public or large industry entities and is owned by organizations that sell cloud services.
[0061] Hybrid Cloud: A cloud infrastructure is a composition of two or more clouds (private, community, or public) that remain unique entities but are tied together by standard or proprietary technologies that enable data and application portability (e.g., cloud bursting for load balancing between clouds).
[0062] A cloud computing environment is service-oriented with a focus on statelessness, loose coupling, modularity, and semantic interoperability. At the heart of cloud computing is an infrastructure that includes a network of interconnected nodes.
[0063] Referring now to FIG. 5, an illustrative cloud computing environment 50 is depicted. As shown, the cloud computing environment 50 includes one or more cloud computing nodes 10 with which a local computing device used by a cloud user may communicate, such as, for example, a personal digital assistant (PDA) or cellular phone 54A, a desktop computer 54B, a laptop computer 54C, or an automobile computer system 54N, or combinations thereof. The nodes 10 may communicate with each other. The nodes 10 may be physically or virtually grouped in one or more networks, such as a private, community, public, or hybrid cloud, or combinations thereof, as described below (not shown). This enables the cloud computing environment 50 to provide infrastructure, platform, and / or software as a service without the cloud user having to maintain resources on a local computing device. The types of computing devices 54A-N illustrated in FIG. 5 are intended to be illustrative only, and it is understood that the computing node 10 and cloud computing environment 50 can communicate with any type of computerized device via any type of network and / or network addressable connections (e.g., using a web browser).
[0064] Referring now to Figure 6, a set of functional abstraction layers provided by cloud computing environment 50 (Figure 5) is shown. It should be understood in advance that the components, layers, and functions shown in Figure 6 are intended to be illustrative only, and embodiments of the present invention are not limited thereto. As depicted, the following layers and corresponding functions are provided:
[0065] Hardware and software layer 60 includes hardware and software components. Examples of hardware components include mainframes 61, RISC (reduced instruction set computing) architecture based servers 62, servers 63, blade servers 64, storage devices 65, and networks and networking components 66. In some embodiments, software components include network application server software 67 and database software 68.
[0066] The virtualization layer 70 provides an abstraction layer within which examples of virtual entities may be provided: virtual servers 71, virtual storage 72, virtual networks including virtual private networks 73, virtual applications and operating systems 74, and virtual clients 75.
[0067] In one example, management layer 80 may provide the functions described below. Resource provisioning 81 provides dynamic procurement of computing and other resources utilized to perform tasks within the cloud computing environment. Metering and pricing 82 provides cost tracking as resources are utilized within the cloud computing environment and billing or invoicing for the usage of these resources. In one example, these resources may include application software licenses. Security provides identity verification of cloud consumers and tasks, and protection of data and other resources. User portal 83 provides consumers and system administrators with access to the cloud computing environment. Service level management 84 provides allocation and management of cloud computing resources to meet required service levels. Service level agreement (SLA) planning and fulfillment 85 provides pre-location and procurement of cloud computing resources in anticipation of future requirements according to SLAs.
[0068] The workload tier 90 provides examples of functions for which a cloud computing environment may be utilized. Examples of workloads and functions that may be provided from this tier include mapping and navigation 91, software development and lifecycle management 92, virtual classroom instructional delivery 93, data analytics processing 94, transaction processing 95, and edge resource manager 110.
[0069] The programs described herein are identified based on the applications in which they are implemented in specific embodiments of the invention. Nevertheless, it should be understood that any particular program terminology herein is used merely for convenience, and thus the invention should not be limited to use merely in any specific application identified and / or suggested by such terminology.
[0070] The present invention may be a system, method, or computer program product, or combination thereof, at any possible level of technical detail of integration. The computer program product may include a computer-readable storage medium (or media) having computer-readable program instructions for causing a processor to carry out aspects of the present invention.
[0071] A computer readable storage medium can be a tangible device that can hold and store instructions for use by an instruction execution device. A computer readable storage medium can be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer readable storage media includes portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory sticks, floppy disks, mechanically encoded devices such as punch cards or ridge-in-groove structures having instructions recorded thereon, and any suitable combination of the foregoing. Computer-readable storage media as used herein should not be interpreted as signals that are transitory in nature, such as electric waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., light pulses passing through a fiber optic cable), or electrical signals transmitted through wires.
[0072] The computer readable program instructions described herein can be downloaded from the computer readable storage medium to each computing / processing device or to an external computer or external storage device over a network, such as the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. The network may comprise copper transmission cables, optical transmission fiber, wireless transmission, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. A network adapter card or network interface of each computing / processing device receives the computer readable program instructions from the network and forwards the computer readable program instructions for storage on the computer readable storage medium within the respective computing / processing device.
[0073] The computer readable program instructions for carrying out the operations of the present invention may be assembler instructions, instruction set architecture (ISA) instructions, machine language instructions, machine dependent instructions, microcode, firmware instructions, state setting data, configuration data for integrated circuit devices, or source 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, and procedural programming languages such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, or partially on the user's computer, as a stand-alone software package, or partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (e.g., through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, a programmable logic circuit device, a field programmable gate array (FPGA), or a programmable logic array (PLA) may execute computer readable program instructions by utilizing state information of the computer readable program instructions to individualize the electronic circuitry to implement aspects of the present invention.
[0074] Aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer readable program instructions.
[0075] These computer readable program instructions may be provided to a processor of a computer or other programmable data processing apparatus to produce a machine, the instructions executing on the processor of the computer or other programmable data processing apparatus to produce means for performing the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams. These computer readable program instructions may also be stored on a computer readable storage medium such that the computer readable storage medium having stored thereon an article of manufacture including instructions for performing aspects of the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams, and may direct a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner.
[0076] The computer readable program instructions may also be loaded into a computer, other programmable data processing apparatus, or other device to perform a series of operational steps on the computer, other programmable apparatus, or other device to produce a computer-executed process, such that the instructions execute on the computer, other programmable apparatus, or other device to perform the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.
[0077] 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 invention. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of instructions, including one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions noted in the blocks may be performed out of the order noted in the figures. For example, two blocks shown in succession may in fact be performed as one step performed simultaneously, substantially simultaneously, in a partially or fully time-overlapping manner, or the blocks may sometimes be performed in reverse order depending on the functionality involved. It is also noted that each block of the block diagrams and / or flowchart illustrations, and combinations of blocks in the block diagrams and / or flowchart illustrations, may be executed by a dedicated hardware-based system that performs the specified functions or acts or executes a combination of dedicated hardware and computer instructions.
Claims
1. 1. A computer-implemented method comprising: Identifying a plurality of data sources at a location, each sensor among a plurality of sensors associated with the plurality of data sources producing data for processing by a plurality of edge devices; determining a context priority for each data source of the plurality of data sources in response to sampling a data feed from each data source of the plurality of data sources to establish a context; identifying a plurality of edge devices at the one location for performing computations on the data produced by the plurality of data sources; responsive to identifying a type of computing for the plurality of edge devices, determining a computing plan for the edge devices based on the context priority for each data source of the plurality of data sources; deploying the computing plan on the plurality of edge devices; 4. A computer-implemented method comprising:
2. 2. The computer-implemented method of claim 1 , wherein the computing plan specifies a computing type for each edge device of the plurality of edge devices, the computing type selected from a group including serial processing, parallel processing, and varying degrees of parallel and serial processing.
3. identifying a distance between each data source of the plurality of data sources at the one location, the distance between each data source affecting a deployment location for each edge device of the plurality of edge devices; The computer-implemented method of claim 2 , further comprising:
4. Deploying the computing plan of the plurality of edge devices includes: instructing each edge device of the plurality of edge devices to relocate to a location based on the distance between each data source of the plurality of data sources at the one location and based on the context priority for each data source of the plurality of data sources. The computer-implemented method of claim 3 , further comprising:
5. instructing a first edge device of the plurality of edge devices to relocate to a location based on a first distance between a first data source of the plurality of data sources and a second data source of the plurality of data sources, wherein a first context priority of the first data source is higher than a second context priority of the second data source; instructing the first edge device to perform parallel processing on the first data source and the second data source; The computer-implemented method of claim 3 , further comprising:
6. 6. The computer-implemented method of claim 5, wherein a first set of data values of the first data source exceed a first threshold and a second set of data values of the second data source exceed a second threshold.
7. instructing a first edge device of the plurality of edge devices to relocate to a location based on a first distance between a first data source of the plurality of data sources and a second data source of the plurality of data sources, wherein a first context priority of the first data source is higher than a second context priority of the second data source; instructing the first edge device to perform varying degrees of parallel and serial processing on the first data source and the second data source, where a first set of data values of the first data source exceed a first threshold and a second set of data values of the first data source do not exceed a second threshold; The computer-implemented method of claim 3 , further comprising:
8. 1. A computer program product comprising: one or more computer readable storage media; and program instructions collectively stored on the one or more computer readable storage media, the stored program instructions being executable by one or more computer processors, the stored program instructions comprising: Identifying a plurality of data sources at a location, each sensor among a plurality of sensors associated with the plurality of data sources producing data for processing by a plurality of edge devices; determining a context priority for each data source of the plurality of data sources in response to sampling a data feed from each data source of the plurality of data sources to establish a context; identifying a plurality of edge devices at the one location for performing computations on the data produced by the plurality of data sources; responsive to identifying a type of computing for the plurality of edge devices, determining a computing plan for the edge devices based on the context priority for each data source among the plurality of data sources; deploying the computing plan on the plurality of edge devices; 2. A computer program product comprising:
9. 9. The computer program product of claim 8, wherein the computing plan specifies a computing type for each edge device of the plurality of edge devices, the computing type being selected from a group including serial processing, parallel processing, and varying degrees of parallel and serial processing.
10. The stored program instructions include: identifying a distance between each data source of the plurality of data sources at the one location, the distance between each data source affecting a deployment location for each edge device of the plurality of edge devices; 10. The computer program product of claim 9, further comprising:
11. The stored program instructions include: instructing each edge device of the plurality of edge devices to relocate to a location based on the distance between each data source of the plurality of data sources at the one location and based on the context priority for each data source of the plurality of data sources.
11. The computer program product of claim 10, further comprising:
12. The stored program instructions include: instructing a first edge device of the plurality of edge devices to relocate to a location based on a first distance between a first data source of the plurality of data sources and a second data source of the plurality of data sources, wherein a first context priority of the first data source is higher than a second context priority of the second data source; instructing the first edge device to perform parallel processing on the first data source and the second data source; 11. The computer program product of claim 10, further comprising:
13. 13. The computer program product of claim 12, wherein a first set of data values of the first data source exceed a first threshold and a second set of data values of the second data source exceed a second threshold.
14. The stored program instructions include: instructing a first edge device of the plurality of edge devices to relocate to a location based on a first distance between a first data source of the plurality of data sources and a second data source of the plurality of data sources, wherein a first context priority of the first data source is higher than a second context priority of the second data source; instructing the first edge device to perform varying degrees of parallel and serial processing on the first data source and the second data source, where a first set of data values of the first data source exceed a first threshold and a second set of data values of the first data source do not exceed a second threshold; 11. The computer program product of claim 10, further comprising:
15. 1. A computer system comprising: one or more computer processors; one or more computer readable storage media; program instructions stored on the computer-readable storage medium for execution by at least one of the one or more computer processors, Identifying a plurality of data sources at a location, each sensor among a plurality of sensors associated with the plurality of data sources producing data for processing by a plurality of edge devices; determining a context priority for each data source of the plurality of data sources in response to sampling a data feed from each data source of the plurality of data sources to establish a context; identifying the edge devices at the one location for performing computations on the data produced by the data sources; responsive to identifying a type of computing for the plurality of edge devices, determining a computing plan for the edge devices based on the context priority for each data source of the plurality of data sources; and Deploying the computing plan on the plurality of edge devices. and A computer system comprising:
16. 16. The computer system of claim 15, wherein the computing plan specifies a computing type for each edge device of the plurality of edge devices, the computing type being selected from a group including serial processing, parallel processing, and varying degrees of parallel and serial processing.
17. The stored program instructions include: identifying a distance between each data source of the plurality of data sources at the one location, the distance between each data source affecting a deployment location for each edge device of the plurality of edge devices; 20. The computer system of claim 16, further comprising:
18. The stored program instructions include: instructing each edge device of the plurality of edge devices to relocate to a location based on the distance between each data source of the plurality of data sources at the one location and based on the context priority for each data source of the plurality of data sources.
20. The computer system of claim 17, further comprising:
19. The stored program instructions include: instructing a first edge device of the plurality of edge devices to relocate to a location based on a first distance between a first data source of the plurality of data sources and a second data source of the plurality of data sources, wherein a first context priority of the first data source is higher than a second context priority of the second data source; instructing the first edge device to perform parallel processing on the first data source and the second data source; 20. The computer system of claim 17, further comprising:
20. 20. The computer system of claim 19, wherein a first set of data values of the first data source exceed a first threshold and a second set of data values of the second data source exceed a second threshold.
21. A computer program comprising program code means adapted to perform the method according to any of claims 1 to 7, when said program is run on a computer.
Citation Information
Patent Citations
Edge computing-based application relocation method and device
EP3869835A1
Multisensor processor
JP2002157233A
System, system control method, computer program used to system control, and recording medium thereof
JP2021009604A
Edge computing relocation
US20200366732A1