Generative Adversarial Network (GAN)-Based Identification of Edge Servers

The GAN-based identification of edge servers addresses imbalanced data issues by forming groups based on data similarity, reducing errors and improving load balancing in edge computing environments.

JP7795279B2Active Publication Date: 2026-01-07INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2024503703
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-09-27
Filing Date
2022-08-31
Publication Date
2026-01-07
Estimated Expiration
2042-08-31

AI Technical Summary

Technical Problem

Edge servers in edge computing environments face issues with application errors due to imbalanced data, which existing technologies struggle to address effectively, leading to inefficiencies and potential security risks.

Method used

A GAN-based approach is employed to identify edge servers with imbalanced data by training a global classifier using common data, generating local classifiers, and forming edge server groups based on data similarity, allowing for load balancing and application model updates.

Benefits of technology

This method enables efficient grouping of edge servers with similar data, reduces application errors, and facilitates load balancing by sharing application models and configurations, thereby enhancing the performance and reliability of edge computing systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007795279000001
    Figure 0007795279000001
  • Figure 0007795279000002
    Figure 0007795279000002
  • Figure 0007795279000003
    Figure 0007795279000003
Patent Text Reader

Abstract

Generative Adversarial Network (GAN)-Based Identification of Edge Servers A technique is provided for generative adversarial network (GAN) based identification of edge servers. At a first edge server, a global classifier trained with common data is received. Using the global classifier, area data is determined to be imbalanced. A local classifier is trained with the area data to generate a first result. An exchanged local classifier from a second edge server is trained with the area data to generate a second result. The first result and the second result indicate that the first edge server and the second edge server are in close proximity. The first edge server and the second edge server are added to an edge server group list. At least one of an application model and a configuration of an application from one of the first edge server and the second edge server is updated, and the application is executed.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] FIELD OF THE INVENTION Embodiments of the present invention relate to Generative Adversarial Network (GAN)-based identification of edge servers. In particular, embodiments of the present invention relate to GAN-based imbalanced data area identification of edge servers. [Background technology]

[0002] An edge computing environment can be described as a distributed computing concept that centralizes intelligence in edge devices, allowing data to be processed and analyzed in real time at edge devices that are typically located near the source of data collection.

[0003] In some cases, data-driven applications are running in edge computing environments, and if these data-driven applications consist of common data, they may result in application errors when used with other data. Summary of the Invention

[0004] According to certain embodiments, a computer-implemented method for GAN-based identification of edge servers is provided. The computer-implemented method comprises operations: receiving, at a first edge server, a global classifier trained using common data; determining, using the global classifier, that area data is imbalanced; training a local classifier using the area data to generate a first result; receiving an exchanged local classifier from a second edge server; training the exchanged local classifier using the area data to generate a second result; determining that the first result and the second result indicate that the first edge server and the second edge server are close; adding the first edge server and the second edge server to an edge server group list; updating at least one of an application model and a configuration of an application from one of the first edge server and the second edge server on the edge server group list; and executing the application.

[0005] According to certain embodiments, a computer program product for GAN-based identification of edge servers is provided. The computer program product comprises a computer-readable storage medium having program code embodied thereon, the program code being executable by at least one processor to perform operations. At a first edge server, a global classifier trained using common data is received. Using the global classifier, area data is determined to be imbalanced. A local classifier is trained using the area data to generate a first result. An exchanged local classifier is received from a second edge server. The exchanged local classifier is trained using the area data to generate a second result. The first result and the second result are determined to indicate that the first edge server and the second edge server are close to each other. The first edge server and the second edge server are added to an edge server group list. At least one of an application model and a configuration of an application from one of the first edge server and the second edge server on the edge server group list is updated, and the application is executed.

[0006] According to certain embodiments, a computer system for GAN-based identification of edge servers is provided. The computer system includes one or more processors, one or more computer-readable memories, and one or more computer-readable tangible storage devices; and program instructions stored in at least one of the one or more computer-readable tangible storage devices for execution by at least one of the one or more processors via at least one of the one or more memories to perform operations. At a first edge server, a global classifier trained using common data is received. Using the global classifier, it is determined that area data is imbalanced. A local classifier is trained using the area data to generate a first result. An exchanged local classifier is received from a second edge server. The exchanged local classifier is trained using the area data to generate a second result. It is determined that the first result and the second result indicate that the first edge server and the second edge server are close to each other. The first edge server and the second edge server are added to an edge server group list. At least one of an application model and a configuration of the application from one of the first edge server and the second edge server on the edge server group list is updated, and the application is executed.

[0007] Thus, embodiments advantageously enable grouping of nearby edge servers using a GAN and selection of an application model and / or configuration for an application from one of the edge servers in the group.

[0008] According to a further embodiment, under the control of a first edge server, a request to run an application from an edge device is received, which is determined to be heavily loaded, and the request is forwarded to another edge server on the edge server group list, which advantageously allows for load balancing.

[0009] According to yet an additional embodiment, under the control of an edge device, it is determined that the edge device is approaching the coverage area of ​​a first edge server, and an edge server group list is requested from the first edge server. In response to determining that at least one of an application model and a configuration of another application is not from any edge server on the edge server group list, at least one of a new application model and a new configuration is requested from the first edge server. The other application is executed using the at least one of the new application model and the new configuration. This advantageously allows the edge device to obtain updates to the application model and / or configuration from one of the edge servers in the edge server group list.

[0010] According to a further embodiment, the edge device maintains a visited edge server list while traversing a path passing by at least one of the first edge server and the second edge server, which advantageously allows edge servers visited by the edge device to be stored.

[0011] According to yet a further embodiment, a replaced local identifier is received from a third edge server, and the replaced local identifier from the third edge server is trained using area data to generate a third result. It is determined that the first result and the third result indicate that the first edge server and the third edge server are not adjacent. This advantageously enables the determination of non-adjacent edge servers so that they are not added to the edge server group list.

[0012] According to still further embodiments, the global classifier outputs a negative result to indicate that the area data is imbalanced and a positive result to indicate that the area data is not imbalanced, which advantageously allows the output of the global classifier to be used to easily determine whether the area data is imbalanced.

[0013] In more embodiments, the global classifier is trained at the cloud node and deployed to the first edge server, which advantageously allows the cloud node and the first edge server to cooperate to move the generation of the global classifier to the cloud node, which may deploy the global classifier to multiple edge servers.

[0014] In even more embodiments, Software as a Service (SaaS) is configured to perform the operations to update and run the application, which advantageously allows a service to be provided to perform the operations. [Brief explanation of the drawings]

[0015] Reference is now made to the drawings wherein like reference numerals represent corresponding parts throughout.

[0016] [Figure 1] 1 illustrates a block diagram of a computing environment in accordance with certain embodiments.

[0017] [Figure 2] 1 illustrates an example of an edge device that is a car, according to certain embodiments.

[0018] [Figure 3] 10 is a flowchart illustrating operations for training a global classifier and distributing the global classifier to edge servers, according to certain embodiments.

[0019] [Figure 4] 10 is a flowchart illustrating operations for creating an edge server group list at an edge server in accordance with certain embodiments.

[0020] [Figure 5] 10 is a flowchart illustrating operations for executing an application on an edge device, according to certain embodiments.

[0021] [Figure 6] 10 is a flowchart illustrating operations for executing an application on an edge server in accordance with certain embodiments.

[0022] [Figure 7A] 1 is a flowchart illustrating operations for updating an application model and its configuration and running an application according to certain embodiments. [Figure 7B] 1 is a flowchart illustrating operations for updating an application model and its configuration and running an application according to certain embodiments.

[0023] [Figure 8] 1 illustrates a computing node according to certain embodiments.

[0024] [Figure 9] 1 illustrates a cloud computing environment in accordance with certain embodiments.

[0025] [Figure 10] 1 illustrates abstraction model layers in accordance with certain embodiments. DETAILED DESCRIPTION OF THE INVENTION

[0026] The description of various embodiments of the present invention is presented 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 of the described embodiments. The terms used herein have been selected to best explain the principles of the embodiments, practical applications, or technical improvements over technologies found in the market, or to enable others skilled in the art to understand the embodiments disclosed herein.

[0027] FIG. 1 illustrates a block diagram of a computing environment according to certain embodiments. A cloud node 100 is coupled to a cloud data center 110 and edge servers 120a...120n. In certain embodiments, the edge servers 120a...120n are multi-access edge computing (MEC) servers. The MEC environment may be described as providing cloud computing capabilities and an information technology (IT) service environment at the edge of a network. The cloud node 100 includes a global GAN ​​training system 102, and the cloud data center 110 includes common data 112 and a global generator and global discriminator 114 of the GAN. The common data may be described as global. The common data 112 may be collected from a wide range of situations. For example, the common data 112 may include training data of driving footage / images captured by an on-board camera and used by an autonomous vehicle. The common data 112 may cover weather (e.g., sunny, rainy, snowy, etc.). In particular embodiments, the common data 112 is common to a particular area covered by the edge servers 120a...120n.

[0028] Each edge server 120a...120n is connected to a data store 130a...130n. Each edge server 120a...120n includes an edge server identification system 122a...122n, a local GAN ​​training system 124a...124n, and at least one application 126a...126n with an application model 128a...128n. Each data store 130a...130n stores area data 132a...132n, an edge server group list 134a...134n, and generators and classifiers 136a...136n. The generators and classifiers 136a...136n include the local generators and classifiers of that edge server's 120a...120n GAN, the global classifier of the cloud node 100's GAN, and local classifiers from other edge servers. Example applications include image recognition for object detection, good driving scoring, obstacle identification, etc.

[0029] In particular embodiments, edge servers 120a...120n are connected to edge devices 150c...150r via one or more networks, such as a Radio Access Network (RAN). Edge devices 150c...150r may be described as endpoint devices. Each of edge servers 120a...120n may cover a geographic area and may perform operations (such as object detection) in conjunction with other edge servers 120a...120n.

[0030] Each of the edge devices 150c...150r includes an edge server identification system 152c...152r, a visited edge server list 154c...154r, and at least one application 156c...156r having an application model 158c...158r. Each of the edge devices 150c...150r can receive data from one or more data sources 170d...170t. The edge devices 150c...150r can be vehicles (e.g., cars, boats, bicycles, buses, etc.) with computers, smartphones, edge servers, mobile devices, etc. In certain embodiments, the data sources 170d...170t are sensors (e.g., in automobiles, on clothing, in buildings, on roads, etc.), Internet of Things (IoT) devices, Internet of Everything (IoE) devices, data stores, databases, etc. A set of data from data sources 170d...170t may be described as including one or more data elements.

[0031] In particular embodiments, each of the edge servers 120a...120n provides a set of middleware services, such as communication services and a service registry, to applications 156c...156r. An endpoint edge device 150c...150r may access an edge server 120a...120n when the edge device 150c...150r enters the physical area covered by that edge server 120a...120n. The edge servers 120a...120n store geospatial and area data 132a...132n to provide services specific to the characteristics of that area.

[0032] In particular embodiments, imbalanced data refers to statistically biased data. Examples of area data 132a...132n that are imbalanced data in the autonomous vehicle domain appear as time-series sensor data such as average vehicle speed, driving behavior patterns, traffic regulation-based patterns, etc. Such area data 132a...132n are specific to area features and affect predictions (e.g., predicting risky driving such as hard braking and sudden acceleration). Another type of area data 132a...132n that are imbalanced in the autonomous vehicle domain appears as image data, such as image data that indicates fog, snow, twilight, light pollution, etc. in a particular area. This image data affects object detection based on the image data by applications 126a...126n, 156c...156r using application models 128a...128n, 158c...158r. In particular embodiments, the edge services and applications 126a...126n, 156c...156r are data-driven applications with application models 128a...128n, 158c...158r constructed from and / or trained using common data, and the applications 126a...126n, 156c...156r may have application errors when these application models 128a...128n, 158c...158r are used with area data. Accordingly, embodiments identify each edge server 120a...120n with imbalanced area data by training a classifier (referred to as a global classifier) ​​using the common data on the cloud node 100 and deploying the global classifier to each edge server 120a...120n. Then, a local GAN ​​training system 124a...124n on each edge server 120a...120n trains a GAN using the imbalanced area data to generate a local classifier. The edge servers 120a...120n exchange their local identifiers. In certain embodiments, neighboring edge servers 120a...120n exchange their local identifiers.

[0033] Additionally, the edge server identification system 122a...122n groups the edge servers 120a...120n into edge server groups with proximate data (e.g., similar data for the coverage areas of the edge servers 120a...120n) based on the results of the local identifiers. Proximate data can be described as data for the same or adjacent areas covered by the edge servers 120a...120n.

[0034] Embodiments also configure application models 128a...128n, 158c...158r of applications 126a...126n, 156c...156r executing on either edge server 120a...120n or endpoint device 150c...150r based on edge server group list 134a...134n while communicating between edge server 120a...120n and endpoint device 150c...150r using edge server group list information when any endpoint device 150c...150r approaches (or enters) the coverage area of ​​edge server 120a...120n. For example, in the case of an application for image recognition using a machine learning model, configuring the application model may include setting an identifier for the machine learning model (e.g., the name and version of the machine learning model). As another example, in the case of an application for scoring driving behavior executed by compiled code, configuring the application model may include setting configuration parameters such as a hard braking limit.

[0035] GAN is a type of machine learning that uses two neural networks: a generative network (generator) that generates artificial data with a distribution similar to the data used for training, and a discriminative network (discriminator) that evaluates whether the data is likely to be training data. The common data (which may be described as the training data set or initial data set) is fed to the global generator Gc and the global discriminator D c This serves as the initial training data for the global classifier D c may be used at an edge server to determine whether the area data is imbalanced. If the area data is imbalanced, the edge server uses the area data to train a local GAN ​​(which is a local generator G and a local classifier D). The local classifier D may be sent to other edge servers, which may return a result of whether the distribution is likely to be the trained data. The local classifiers may be used at each edge server to determine whether the area data is imbalanced relative to the local classifier of another edge server. If two edge servers each determine that the area data is not imbalanced based on the exchanged local classifiers, the two edge servers may be included in an edge server group.

[0036] Figure 2 illustrates an example of an edge device that is an automobile, according to certain embodiments. In Figure 2, cloud node 200 is connected to edge servers 210, 220, 230, 240, and 250. Edge device 260, which is a vehicle in this example, is traveling along route 262. Route 262 passes through the different coverage areas of edge servers 210, 220, 230, 240, and 250.

[0037] First, the global GAN ​​training system in the cloud node 200 trains a global generator G using common data 202 from the cloud data center. c and the global discriminator D c Next, the global GAN ​​training system in the cloud node 200 trains a global classifier D c is deployed to the edge servers 210, 220, and 230. Although not shown in this example, the global classifier D c may also be deployed on edge servers 240, 250. Each of the edge servers 210, 220, 230 may have a global classifier D c, and determines whether the area data at the edge servers 210, 220, 230 is imbalanced. In particular, the area data is compared with the global classifier D c Inputting D into the global classifier D will result in either a negative result (indicating that the area data is imbalanced) or a positive result (indicating that the area data is not imbalanced). c compares the area data with the common data to generate a result.

[0038] In the example of FIG. 2, each edge server 210 and 230 uses a global classifier D c Entering area data into D suggests that the area data is imbalanced. c The local GAN ​​training system at each edge server that produced negative results (in this example, 210 and 230, indicating that the area data is imbalanced) trains the GAN using the area data to generate a local generator G mi and the local classifier D mi and generate a local classifier D mi D c The local GAN ​​then exchanges the results of the area data with other edge servers (210 and 230) that have negative results. c is detected.

[0039] For example, in FIG. 2, at edge server 210, the local GAN ​​training system receives local classifier D m3 The area data of the edge server 210 is received and is input to the discriminator D m3 and the classifier D m3 Upon receiving a positive result from the edge server 210, the edge server 230 is added to the edge server group list 270 for the edge server 210. Similarly, at the edge server 230, the local GAN ​​training system receives the local classifier D m1 The area data of the edge server 230 is received and the area data is input to the discriminator D m1 and the classifier Dm1 receives a positive result from and adds edge server 210 to edge server group list 272 for edge server 230. The process continues so that edge server 210 has an edge server group list 270 with edge servers 230, 240, and 250, while edge server 230 has an edge server group list 272 with edge server 210.

[0040] Once the edge server group list is created, an application can be configured using the edge server group list. For example, in FIG. 2 , edge device 260 requests and receives edge server group list 272 when it approaches edge server 230. In this example, an application model and / or configuration for the application model do not exist for the application on edge device 260, or an application model and / or configuration exist but were provided by an edge server that is not on the received edge server group list 272, so edge device 260 requests and loads the application model and / or configuration from edge server 230. Continuing with this example, device 260 requests and receives edge server group list 270 when it approaches edge server 210. However, edge device 260 has the application model and / or configuration provided by the edge server on edge server group list 270, so edge device 260 does not need to request and load a new application model and / or configuration.

[0041] Additionally, an existing application model and / or application model configuration may be updated based on the application model and / or configuration from another edge server on the edge server group list. For example, referring to edge server group lists 270 and 272 in FIG. 2, edge server 210 may obtain an application model and / or configuration, while edge server 230 may obtain an application model and / or configuration from edge server 210.

[0042] 3 illustrates, in a flowchart, operations for training a global classifier and distributing the global classifier to edge servers, according to certain embodiments. Control begins at block 300, where the global GAN ​​training system 102 determines whether the common data has been updated. If so, processing continues at block 302; otherwise, processing continues at block 306. In block 302, the global GAN ​​training system 102 trains a global GAN ​​using the common data on the cloud data store to generate a global classifier G. c and the global discriminator D c In block 304, the global GAN ​​training system 102 generates a global classifier D c In a particular embodiment, the global discriminator D c Each of the edge servers that receives the request is selected based on one or more characteristics, such as whether the edge server covers a particular area, whether it performs a particular operation, and so on.

[0043] In block 306, the global GAN ​​training system 102 waits until a periodic check of the common data is invoked or a data update to the common data is recognized. In particular embodiments, the periodic check is scheduled at a predetermined interval (e.g., every hour).

[0044] 4 illustrates, in a flowchart, operations for creating an edge server group list at an edge server, according to certain embodiments. Control begins at block 400, where the edge server identification system 122a...122n determines whether area data has been updated. If so, processing continues at block 402; otherwise, processing continues at block 416.

[0045] In block 402, the edge server identification system 122a...122n applies the area data to a global identifier D c to obtain a first result. In block 404, the edge server identification system 122a...122n determines whether the first result is negative (indicating that the area data is imbalanced data). If so, processing continues at block 406; otherwise, processing continues at block 416.

[0046] In block 406, the edge server identification system 122a...122n uses the area data to generate a local GAN ​​(G mi , D mi ) to train (or call the local GAN ​​training system 124a...124n to train) the local generator G mi , local classifier D mi , and generates a first result. In block 408, the edge server identification system 122a...122n creates an edge server group list that is empty.

[0047] In block 410, the edge server identification system 122a...122n generates a local classifier D mi with one or more edge servers whose area data input into the global classifier Dc produces a negative result. In certain embodiments, the one or more edge servers are neighboring edge servers.

[0048] In block 412, the edge server identification system 122a...122n invokes evaluation (or invokes the local GAN ​​training system 124a...124n to invoke evaluation) using one or more replaced local classifiers and obtains one or more corresponding second results.

[0049] In block 414, the edge server identification system 122a...122n adds one or more edge servers for which the first result and the second result are mutually positive to the edge server group list. mi and the first result from D (received from the edge server 230). m3 The second results from are compared.

[0050] In block 416, the edge server identification system 122a...122n waits until a periodic check of the area data is invoked or a data update of the area data is recognized. In certain embodiments, the periodic check is scheduled at a predetermined interval (e.g., every hour).

[0051] 5 illustrates, in a flowchart, operations for executing an application on an edge device, according to certain embodiments. In embodiments, an application model for an application may be configured on an edge device while reducing transactions for loading the application model and / or configuration. For example, when an edge device checks whether an edge server that previously provided an existing application model and / or configuration belongs to an edge server group list, the edge device may check whether the existing application model can be used from a cache when the edge device is entering a new area of ​​an edge server.

[0052] Control begins in block 500, where an edge server identification system 152c...152r requests an edge server group list from an edge server when approaching a new area of ​​that edge server. For example, as an edge device moves along a route, the edge device requests an edge server group list when it detects a new edge server. Because an edge device may pass through multiple edge servers along a route, the edge device may perform the process of FIG. 5 with each of the edge servers or with a subset of the edge servers based on certain factors (such as time since last configuration). In block 540, the edge server identification system 122a...122n of the edge server receives the request for the edge server group list and returns the edge server group list to the edge device. In block 502, the edge server identification system 152c...152r receives the edge server group list.

[0053] In block 504, the edge server identification system 152c...152r determines whether the application model and / or configuration exists on the edge device. If so, processing continues at block 506; otherwise, processing continues at block 510.

[0054] In block 506, the edge server identification system 152c...152r determines whether the edge server that previously provided the existing application model and / or configuration belongs to the edge server group list. If so, processing continues at block 508; otherwise, processing continues at block 510.

[0055] At block 508, the application is executed using the existing application model and / or configuration.

[0056] At block 510, the edge server identification system 152c...152r sends a request for an application model and / or configuration to the edge server (identified at block 500). At block 542, the edge server identification system 122a...122n of the edge server receives the request for the application model and / or configuration and returns the application model and / or configuration. At block 512, the edge server identification system 152c...152r receives and loads the application model and / or configuration. At block 512, the application is executed using the newly loaded application model and / or configuration.

[0057] 6 is a flowchart illustrating operations for executing an application on an edge server, according to certain embodiments. In these embodiments, an edge device forwards a request to execute an application to an edge server within its coverage area. The edge server either executes the request or forwards the request to another edge server on an edge server group list.

[0058] Control begins in block 600, where the edge server identification system 152c...152r recognizes that an edge device is approaching (or entering) a new area covered by an edge server, i.e., as the edge device traverses a path, the edge device enters a new area covered by the edge server.

[0059] In block 602, the edge server identification system 152c...152r creates and initializes a visited edge server list. In block 604, the edge server identification system 152c...152r sends a request to an edge server to run an application using the visited edge server list.

[0060] In block 606, the edge server identification systems 152c...152r receive the results. For example, in an application having an image recognition model for the control of an autonomous vehicle, the request may include images captured by an on-board camera, and the result may be a list of identified objects (e.g., humans, dogs, red lights, etc.).

[0061] In block 640, the edge server's edge server identification system 122a...122n receives the request and checks the visited edge server list. In block 642, the edge server identification system 152c...152r determines whether the edge server (that received the request) is on the visited edge server list. If the edge server is on the visited edge server list, it means that the request was sent within a closed loop of edge servers, and therefore the edge server identification system 152c...152r avoids the loop. If the edge server is on the visited edge server list, processing continues at block 644; otherwise, processing continues at block 650.

[0062] In block 644, the edge server identification systems 152c...152r recognize that the request was sent in a loop. In block 646, the edge server identification systems 152c...152r process the request and generate a result, which may include running an application. In block 648, the edge server identification systems 152c...152r send the result back to the edge device.

[0063] In block 650, the edge server identification system 152c...152r determines whether this edge server is heavily loaded. If so, processing continues at block 652; if not, processing continues at block 646. A heavy load indicates that the edge server is performing many operations and is very busy.

[0064] In block 652, the edge server identification system 152c...152r determines whether there is another edge server in the same edge server group list. If so, processing continues at block 654; otherwise, processing continues at block 646.

[0065] In block 654, the edge server identification system 152c...152r adds this edge server (that received the request) to the visited edge server list.

[0066] In block 656, the edge server identification system 152c...152r forwards the request and visited edge server list to the other edge servers.

[0067] The other edge server then processes the request without checking whether it is under high load, which involves recognizing that the other edge server is on the visited edge server list and is supposed to process the request.

[0068] 7A and 7B illustrate, in a flowchart, operations for updating an application model and its configuration and running an application, according to certain embodiments. Control begins at block 700, where a first edge server receives a global classifier trained using common data. At block 702, the first edge server determines that the area data is imbalanced by inputting the area data into the global classifier. That is, the first edge server determines that the area data is imbalanced using the global classifier.

[0069] At block 704, the first edge server trains a local classifier using the area data to generate a first result. At block 706, the first edge server sends the local classifier to the second edge server. At block 708, the first edge server receives the exchanged local classifier from the second edge server. From block 708 (of FIG. 7A), processing continues to block 710 (of FIG. 7B).

[0070] At block 710, the first edge server uses the area data to train the exchanged local classifier to generate a second result. At block 712, in response to determining that the first result and the second result indicate that the first edge server and the second edge server are proximate, the first edge server adds the first edge server and the second edge server to an edge server group list. At block 714, the first edge server updates the application model and configuration of the application from one of the first edge server and the second edge server on the edge server group list. At block 716, the first edge server runs the application using the updated application model and configuration.

[0071] In particular embodiments, the first edge server transmits the local identifier to the plurality of edge servers. In particular embodiments, the first edge server receives the exchanged local identifier from each of the plurality of edge servers. The processing of blocks 710 and 712 is then performed using each exchanged local identifier. Additionally, at block 714, the application model and / or configuration may be obtained from any of the edge servers on the edge server group list.

[0072] A data-driven edge service or application that uses an application model with imbalanced area data may cause application errors. However, embodiments provide a technique for detecting whether the data of an edge server in a particular area is imbalanced. The embodiments can determine whether the area data is imbalanced without collecting data on the edge server and analyzing the data.

[0073] Determining whether the area data on the edge server is imbalanced can be done by comparing the area data with common data, but this involves transferring the area data from the edge server to a cloud node, which is not cost-effective and involves security risks. Embodiments provide a technique for determining whether the area data is imbalanced without transferring the area data to a cloud node.

[0074] Additionally, whether the area data on the edge server is imbalanced can be detected by performing a statistical analysis of the data on the edge server and comparing the result with one of the common data. However, the statistical analysis is usually performed by a data scientist who has detailed domain knowledge and analysis knowledge of the area data. Embodiments provide a technique for determining whether the area data is imbalanced without such detailed domain knowledge and analysis knowledge.

[0075] The embodiment uses federated learning with GAN, which has the ability to detect whether area data is imbalanced data without data transfer and without detailed knowledge of the domain and analysis.

[0076] Embodiments avoid the risk of application errors by identifying imbalanced data areas, for example, imbalanced data area data may indicate areas where fog frequently occurs, even though adjacent areas do not experience fog.

[0077] When an application is running on an endpoint, embodiments reduce the number of interactions between the endpoint device and the edge server because the application model or configuration of the application model may be shared among edge servers on the edge server group list.

[0078] When an application is running on an edge server, embodiments perform load balancing by forwarding requests from endpoint devices to other edge servers on the edge server group list.

[0079] Therefore, an embodiment trains a global classifier using common data on a cloud node and deploys the trained global classifier to edge servers. The embodiment inputs area data to the global classifier, receives an output from the global classifier, and determines whether each edge server has imbalanced data based on the output. In particular, if the output of the global classifier is negative, the area data at that edge server is determined to be imbalanced. Additionally, in each edge server with imbalanced area data, a local classifier is trained using the imbalanced area data. Next, local classifiers are exchanged between neighboring edge servers with imbalanced area data (as determined by the global classifier). In each edge server with imbalanced area data, an edge server group list is created based on the output of the exchanged local classifier. Edge servers on a particular edge server group list have neighboring data. In particular, the area data of the first edge server is input to the exchanged local classifier (i.e., the local classifier from the second edge server), and the area data of the second edge server is input to the exchanged local classifier (i.e., the local classifier from the first edge server), and if the outputs of both classifiers are similar, the first edge server and the second edge server are similar (neighboring) and are added to the edge server group list.

[0080] In certain embodiments, an edge server sends an edge server group list to an edge device entering an area covered by the edge server, and if the edge device does not have an application model and configuration corresponding to an edge server on the edge server group list, the edge server sends the application model and configuration corresponding to the edge server group list to the edge device.

[0081] In certain embodiments, an edge server receives a request from an edge device to run an application, and if the edge server is heavily loaded, the edge server performs load balancing by forwarding the request to another edge server on its edge server group list.

[0082] 8 illustrates a computing environment 810 according to certain embodiments. In certain embodiments, the computing environment is a cloud computing environment. With reference to FIG. 8, computer node 812 is merely an example of a suitable computing node and is not intended to suggest any limitation as to the scope of use or functionality of the embodiments of the invention described herein. Nevertheless, computer node 812 may implement and / or perform any of the functionality described herein above.

[0083] Computer node 812 may be a computer system capable of operating in numerous other general-purpose or special-purpose computing system environments or configurations. Examples of well-known computing systems, environments, and / or configurations that may be suitable for use with computer node 812 include, but are not limited to, 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 devices, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing environments that include any of the above systems or devices.

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

[0085] 8, computer node 812 is shown in the form of a general-purpose computing device. Components of computer node 812 may include, but are not limited to, one or more processors or processing units 816, a system memory 828, and a bus 818 that couples various system components including the system memory 828 to the one or more processors or processing units 816.

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

[0087] Computer node 812 typically includes a variety of computer system readable media. Such media can be any available media that is accessible by computer node 812 and includes both volatile and nonvolatile media, removable and non-removable media.

[0088] The system memory 828 may include computer system-readable media in the form of volatile memory, such as random access memory (RAM) 830 and / or cache memory 832. The computer node 812 may further include other removable / non-removable, volatile / non-volatile computer system storage media. By way of example only, a storage system 834 may be provided for reading from and writing to a non-removable, non-volatile magnetic medium (not shown, commonly referred to as a "hard drive"). Although not shown, a magnetic disk drive may be provided for reading from and writing to a removable, non-volatile magnetic disk (e.g., a "floppy disk"), and an optical disk drive may be provided for reading from or writing to a removable, non-volatile optical disk, such as a compact disc read-only memory (CD-ROM), a digital versatile disc read-only memory (DVD-ROM), or other optical media. In such an example, each may be connected to the bus 818 by one or more data media interfaces. As further illustrated and described below, the system memory 828 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 invention.

[0089] Programs / utilities 840 having a set of program modules 842 (at least one of which) may be stored in system memory 828, by way of example and not limitation, as well as an operating system, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data, or any combination thereof, may comprise an implementation of a networking environment. The program modules 842 generally perform the functions and / or methods of embodiments of the present invention described herein.

[0090] Computer node 812 may also communicate with one or more external devices 814, such as a keyboard, pointing device, display 824, etc.; one or more devices that allow a user to interact with computer node 812; and / or any device (e.g., a network card, modem, etc.) that allows computer node 812 to communicate with one or more other computing devices. Such communication may occur via input / output (I / O) interface 822. Furthermore, computer node 812 may communicate with one or more networks, such as a local area network (LAN), a general wide area network (WAN), and / or a public network (e.g., the Internet), via network adapter 820. As shown, network adapter 820 communicates with other components of computer node 812 via bus 818. It should be understood that other hardware and / or software components, not shown, may be used in conjunction with computer node 812. Examples include, but are not limited to, microcode, device drivers, redundant processing units, external disk drive arrays, Redundant Array of Inexpensive Disks (RAID) systems, tape drives, and data archive storage systems.

[0091] In particular embodiments, computing device 100 has the architecture of a computer node 812. In particular embodiments, computing device 100 is part of a cloud infrastructure. In certain alternative embodiments, computing device 100 is not part of a cloud infrastructure. [Cloud implementation]

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

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

[0094] Characteristics include: On-Demand Self-Service: Cloud consumers can unilaterally provision computing capacity, such as server time and network storage, as needed automatically, without requiring human interaction with the service provider. Wide Network Access: Capacity is available over the network and accessed through standard mechanisms that facilitate use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs). Resource Pooling: Provider computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically allocated and reallocated according to demand. Consumers generally have no control or knowledge over the exact location of the resources provided, although there is some location independence in that it may be possible to specify location at a higher level of abstraction (e.g., country, state, or data center). Rapid Elasticity: Capacity can be rapidly and elastically provisioned to rapidly scale out and rapidly released to rapidly scale in, in some cases automatically. To the consumer, the capacity available for provisioning often appears unlimited and can be purchased in any quantity at any time. Measured Services: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at a level 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 being used.

[0095] The service model is as follows: Software as a Service (SaaS): The consumer is offered the ability to use a provider's applications running on a cloud infrastructure. The applications are accessible from a variety of client devices through a thin-client interface such as a web browser (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings. Platform as a Service (PaaS): The ability offered to consumers is to deploy applications they create or acquire, written using programming languages ​​and tools supported by the provider, onto a cloud infrastructure. The consumer does not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but controls the deployed applications and, in some cases, the configuration of the application hosting environment. Infrastructure as a Service (IaaS): The ability offered to consumers is to provision processing, storage, network, and other basic computing resources, upon which the consumer can deploy and run any software, which may include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure, but controls the operating systems, storage, deployed applications, and, in some cases, limited control over selected networking components (e.g., host firewalls).

[0096] The deployment models are as follows: Private Cloud: The cloud infrastructure operates solely for an organization. It may be managed by the organization or a third party and may reside on-premises or off-premises. Community Cloud: The cloud infrastructure is shared by multiple organizations and supports a specific community with common concerns (e.g., mission, security requirements, policies, and compliance considerations). It may be managed by the organization or a third party and may reside on-premises or off-premises. Public Cloud: The cloud infrastructure is made available to the general public or large industry associations and is owned by organizations that sell cloud services. Hybrid Cloud: The cloud infrastructure remains a unique entity but is a combination of two or more clouds (private, community, or public) joined by standardized or proprietary technologies that allow for data and application portability (e.g., cloud bursting for load balancing between clouds).

[0097] Cloud computing environments are service-oriented with an emphasis on statelessness, low coupling, modularity, and semantic interoperability. At the core of cloud computing is an infrastructure that includes a network of interconnected nodes.

[0098] 9, an exemplary cloud computing environment 950 is shown. As shown, the cloud computing environment 950 includes one or more cloud computing nodes 910 with which local computing devices used by cloud consumers, such as a personal digital assistant (PDA) or cellular phone 954A, a desktop computer 954B, a laptop computer 954C, and / or an automobile computer system 954N, may communicate. The nodes 910 may communicate with each other. They may be physically or virtually grouped (not shown) into one or more networks, such as a private cloud, community cloud, public cloud, or hybrid cloud, or combinations thereof, as described hereinabove. This enables the cloud computing environment 950 to provide infrastructure-as-a-service, platform-as-a-service, and / or software-as-a-service services without the cloud consumer having to maintain resources on their local computing devices. It should be understood that the types of computing devices 954A-N illustrated in FIG. 9 are intended to be illustrative only, and that computing node 910 and cloud computing environment 950 can communicate with any type of computerized device through any type of network and / or network-addressable connection (e.g., using a web browser).

[0099] 10, a set of functional abstraction layers provided by cloud computing environment 950 (FIG. 9) is shown. It should be understood in advance that the components, layers, and functions shown in FIG. 10 are intended to be exemplary only, and embodiments of the present invention are not limited thereto. As shown, the following layers and corresponding functions are provided:

[0100] Hardware and software layer 1060 includes hardware and software components. Examples of hardware components include mainframe 1061; RISC (reduced instruction set computer) architecture-based servers 1062; servers 1063; blade servers 1064, storage devices 1065, and networks and networking components 1066. In some embodiments, software components include network application server software 1067 and database software 1068.

[0101] The virtualization layer 1070 provides an abstraction layer from which the following examples of virtual entities can be provided: virtual servers 1071; virtual storage 1072; virtual networks including virtual private networks 1073; virtual applications and operating systems 1074; and virtual clients 1075.

[0102] In one example, management layer 1080 may provide the functions described below. Resource provisioning 1081 provides dynamic procurement of computing resources and other resources utilized to execute tasks within the cloud computing environment. Metering and pricing 1082 provides cost tracking as resources are utilized within the cloud computing environment and charging or billing for the consumption of these resources. In one example, these resources may include application software licenses. Security provides identity verification for cloud consumers and tasks, as well as protection of data and other resources. User portal 1083 provides access to the cloud computing environment for consumers and system administrators. Service level management 1084 provides cloud computing resource allocation and management to ensure required service levels are met. Service level agreement (SLA) planning and fulfillment 1085 provides advance arrangements and procurement for cloud computing resources that anticipate future requirements according to SLAs.

[0103] The workload layer 1090 provides examples of functions for which a cloud computing environment can be utilized. Examples of workloads and functions that can be provided from this layer include mapping and navigation 1091; software development and lifecycle management 1092; virtual classroom instruction delivery 1093; data analytics processing 1094; transaction processing 1095; and GAN-based identification of edge servers 1096.

[0104] Thus, in certain embodiments, software or programs implementing GAN-based identification of edge servers according to embodiments described herein are provided as a service in a cloud environment. Additional Implementation Details

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

[0106] A computer-readable storage medium may be a tangible device that can hold and store instructions for use by an instruction execution device. The computer-readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: 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 disc read-only memory (CD-ROM), digital versatile disc (DVD), memory stick, floppy disk, mechanically encoded devices such as punch cards or ridge structures in grooves on which instructions are recorded, and any suitable combination of the foregoing. As used herein, the computer-readable storage medium itself is not to be construed as a transitory signal itself, such as an electric wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., an optical pulse passing through a fiber optic cable), or an electrical signal transmitted over a wire.

[0107] The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to each computing / processing device or to an external computer or external storage device 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, optical fiber transmissions, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium in the respective computing / processing device.

[0108] Computer-readable program instructions for carrying out operations of the present invention may be either source code or object code written in any combination of one or more programming languages, including assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, configuration data for integrated circuits, or object-oriented programming languages ​​such as Smalltalk®, C++, etc., 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, as a standalone software package, partially on the user's computer, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be to an external computer (e.g., via the Internet using an Internet Service Provider). In some embodiments, to carry out aspects of the present invention, electronic circuitry including, for example, programmable logic circuits, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), may execute computer-readable program instructions to personalize the electronic circuitry by utilizing state information of the computer-readable program instructions.

[0109] 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.

[0110] These computer-readable program instructions may be provided to a processor of a computer or other programmable data processing apparatus to produce a machine, whereby the instructions, executed by the processor of the computer or other programmable data processing apparatus, create means for implementing 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 that can instruct a computer, programmable data processing apparatus and / or other device to function in a particular manner, whereby the computer-readable storage medium having instructions stored therein has an article of manufacture including instructions that implement aspects of the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.

[0111] The computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be executed on the computer, other programmable apparatus, or other device to generate a computer-implemented process, whereby the instructions executing on the computer, other programmable apparatus, or other device implement the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.

[0112] 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 a flowchart or block diagram 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 occur out of the order noted in the figures. For example, two blocks shown in succession may actually be realized as a single step, executed concurrently, substantially concurrently, partially, or fully in an overlapping manner, or the blocks may possibly be executed in reverse order, depending on the functionality involved. It should also be noted that each block of the block diagrams and / or flowchart diagrams, and combinations of blocks in the block diagrams and / or flowchart diagrams, may be implemented by a dedicated hardware-based system that performs the specified functions or operations, or executes a combination of dedicated hardware and computer instructions.

[0113] The terms "an embodiment," "embodiment," "embodiments," "the embodiment," "the embodiment," "the embodiments," "one or more embodiments," "some embodiments," and "one embodiment" mean "one or more (but not all) embodiments of the present invention," unless expressly specified otherwise.

[0114] The terms "including," "comprising," "having," and variations thereof mean "including, but not limited to," unless expressly specified otherwise.

[0115] An enumerated list of items does not imply that any or all of the items are mutually exclusive, unless expressly specified otherwise.

[0116] The terms "a," "an," and "the" mean "one or more" unless expressly specified otherwise.

[0117] In the described embodiment, the variables a, b, c, i, n, m, p, r, etc., when used with different elements, may refer to the same or different instances of that element.

[0118] Devices that are in communication with each other need not be in continuous communication with each other unless expressly specified otherwise. In addition, devices that are in communication with each other may communicate directly or indirectly through one or more intermediaries.

[0119] A description of an embodiment having multiple components in communication with each other does not imply that all such components are required. To the contrary, a variety of optional components are described to illustrate the wide range of possible embodiments of the present invention.

[0120] When a single device or article is described herein, it will be readily apparent that more than one device / article (whether they cooperate or not) may be substituted for the single device / article. Similarly, when more than one device or article (whether they cooperate or not) is described herein, it will be readily apparent that a single device / article may be substituted for more than one device or article, or that a different number of devices / articles may be substituted for the number of devices or programs shown. The functionality and / or features of a device may alternatively be embodied by one or more other devices not explicitly described as having such functionality / features. Thus, other embodiments of the present invention need not include the device itself.

[0121] The foregoing description of various embodiments of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teachings. It is intended that the scope of the invention be limited not by this detailed description, but rather by the claims appended hereto. The above specification, examples, and data provide a complete description of the manufacture and use of the composition of the invention. Since many embodiments of the invention can be made without departing from the scope of the invention, embodiments of the invention reside in the claims appended hereto below. The foregoing description provides examples of embodiments of the invention, and variations and substitutions may be made in other embodiments. (Other possible items) [Item 1] 1. A computer-implemented method at a first edge server, comprising: receiving a global classifier trained using common data; determining that the area data is imbalanced using the global classifier; training a local classifier using the area data to generate a first result; receiving an exchanged local identifier from the second edge server; training the replaced local classifier with the area data to generate a second result; determining that the first result and the second result indicate that the first edge server and the second edge server are in proximity; adding the first edge server and the second edge server to an edge server group list; updating at least one of an application model and a configuration of an application from one of the first edge server and the second edge server on the edge server group list; and running the application 11. A computer-implemented method comprising the steps of: [Item 2] Under the control of the first edge server, receiving a request to run the application from an edge device; determining that the load is high; and forwarding the request to another edge server on the edge server group list. Item 1. The computer-implemented method of item 1, further comprising: [Item 3] Under the control of the edge device, determining that the edge device is approaching a coverage area of ​​the first edge server; requesting the edge server group list from the first edge server; requesting at least one of a new application model and a new configuration from the first edge server in response to determining that at least one of an application model and a configuration of another application is not from any edge server on the edge server group list; and executing the other application using the at least one of the new application model and the new configuration; Item 1. The computer-implemented method of item 1, further comprising: [Item 4] Item 10. The computer-implemented method of item 1, wherein an edge device maintains a visited edge server list while traversing a path that passes by at least one of the first edge server and the second edge server. [Item 5] receiving the exchanged local identifier from the third edge server; training the replaced local classifier from the third edge server with the area data to generate a third result; determining that the first result and the third result indicate that the first edge server and the third edge server are not adjacent; Item 1. The computer-implemented method of item 1, further comprising: [Item 6] Item 10. The computer-implemented method of item 1, wherein the global classifier outputs a negative result to indicate that the area data is imbalanced and a positive result to indicate that the area data is not imbalanced. [Item 7] Item 10. The computer-implemented method of item 1, wherein the global classifier is trained on a cloud node and deployed to the first edge server. [Item 8] Item 10. The computer-implemented method of item 1, wherein a Software as a Service (SaaS) is configured to perform the operations of the computer-implemented method. [Item 9] A computer program product for a first edge server, comprising: a computer-readable storage medium having program code embodied therein, the program code comprising: receiving a global classifier trained using common data; determining that the area data is imbalanced using the global classifier; training a local classifier using the area data to generate a first result; receiving an exchanged local discriminator from the second edge server; training the replaced local classifier using the area data to generate a second result; determining that the first result and the second result indicate that the first edge server and the second edge server are in proximity; adding the first edge server and the second edge server to an edge server group list; updating at least one of an application model and a configuration of an application from one of the first edge server and the second edge server on the edge server group list; and Steps for running the application 20. A computer program product executable by at least one processor to perform operations for: [Item 10] The program code receiving a request to run the application from an edge device; Procedures for determining whether a load is high; and forwarding the request to another edge server on the edge server group list; 10. The computer program product of item 9, executable by the at least one processor to perform operations for: [Item 11] The program code Under the control of the edge device, determining that the edge device is approaching a coverage area of ​​the first edge server; requesting the edge server group list from the first edge server; requesting at least one of a new application model and a new configuration from the first edge server in response to determining that at least one of an application model and a configuration of another application is not from any edge server on the edge server group list; and executing the other application using the at least one of the new application model and the new configuration; 10. The computer program product of item 9, executable by the at least one processor to perform operations for: [Item 12] Item 10. The computer program product of item 9, wherein an edge device maintains a visited edge server list while traversing a path that passes by at least one of the first edge server and the second edge server. [Item 13] The program code receiving the exchanged local discriminator from the third edge server; training the replaced local classifier from the third edge server with the area data to generate a third result; determining that the first result and the third result indicate that the first edge server and the third edge server are not adjacent; 10. The computer program product of item 9, executable by the at least one processor to perform operations for: [Item 14] Item 10. The computer program product of item 9, wherein the global classifier outputs a negative result to indicate that the area data is imbalanced and a positive result to indicate that the area data is not imbalanced. [Item 15] Item 10. The computer program product of item 9, wherein the global classifier is trained on a cloud node and deployed to the first edge server. [Item 16] Item 10. The computer program product of item 9, wherein a software as a service (SaaS) is configured to perform the operations of the computer program product. [Item 17] a first edge server, one or more processors, one or more computer-readable memories, and one or more computer-readable tangible storage devices; and program instructions stored in at least one of the one or more computer-readable tangible storage devices for execution by at least one of the one or more processors via at least one of the one or more computer-readable memories, receiving a global classifier trained using common data; determining that the area data is imbalanced using the global classifier; training a local classifier using the area data to generate a first result; receiving an exchanged local discriminator from the second edge server; training the replaced local classifier using the area data to generate a second result; determining that the first result and the second result indicate that the first edge server and the second edge server are in proximity; adding the first edge server and the second edge server to an edge server group list; updating at least one of an application model and a configuration of an application from one of the first edge server and the second edge server on the edge server group list; and Steps for running the application program instructions for performing operations having a first edge server comprising: [Item 18] The actions are: receiving a request to run the application from an edge device; Procedures for determining whether a load is high; and forwarding the request to another edge server on the edge server group list; Item 18. The first edge server of item 17, further comprising: [Item 19] The actions are: Under the control of an edge device connected to the first edge server, determining that the edge device is approaching a coverage area of ​​the first edge server; requesting the edge server group list from the first edge server; requesting at least one of a new application model and a new configuration from the first edge server in response to determining that at least one of an application model and a configuration of another application is not from any edge server on the edge server group list; and executing the other application using the at least one of the new application model and the new configuration; Item 18. The first edge server of item 17, further comprising: [Item 20] Item 18. The first edge server of item 17, wherein the edge device maintains a visited edge server list while traversing a path that passes by at least one of the first edge server and the second edge server. [Item 21] The actions are: receiving the exchanged local discriminator from the third edge server; training the replaced local classifier from the third edge server with the area data to generate a third result; determining that the first result and the third result indicate that the first edge server and the third edge server are not adjacent; Item 18. The first edge server of item 17, further comprising: [Item 22] Item 18. The first edge server of item 17, wherein the global classifier outputs a negative result to indicate that the area data is imbalanced and outputs a positive result to indicate that the area data is not imbalanced. [Item 23] Item 18. The first edge server of item 17, wherein the global classifier is trained on a cloud node and deployed to the first edge server. [Item 24] Item 18. The first edge server of item 17, wherein software as a service (SaaS) is configured to perform the operations of the first edge server.

Claims

1. 1. A computer-implemented method at a first edge server, comprising: receiving a global classifier trained using common data; determining that the area data is imbalanced using the global classifier; training a local classifier using the area data to generate a first result; receiving an exchanged local identifier from the second edge server; training the replaced local classifier with the area data to generate a second result; determining that the first result and the second result indicate that the first edge server and the second edge server are in proximity; adding the first edge server and the second edge server to an edge server group list; updating at least one of an application model and a configuration of an application from one of the first edge server and the second edge server on the edge server group list; and running the application 11. A computer-implemented method comprising the steps of:

2. Under the control of the first edge server, receiving a request to run the application from an edge device; determining that the load is high; and forwarding the request to another edge server on the edge server group list. The computer-implemented method of claim 1 further comprising:

3. Under the control of the edge device, determining that the edge device is approaching a coverage area of ​​the first edge server; requesting the edge server group list from the first edge server; requesting at least one of a new application model and a new configuration from the first edge server in response to determining that at least one of an application model and a configuration of another application is not from any edge server on the edge server group list; and executing the other application using the at least one of the new application model and the new configuration; The computer-implemented method of claim 1 further comprising:

4. The computer-implemented method of claim 1 , wherein an edge device maintains a visited edge server list while traversing a path that passes by at least one of the first edge server and the second edge server.

5. receiving an exchanged local identifier from the third edge server; training the replaced local classifier from the third edge server with the area data to generate a third result; determining that the first result and the third result indicate that the first edge server and the third edge server are not adjacent; The computer-implemented method of claim 1 , further comprising:

6. 5. The computer-implemented method of claim 1, wherein the global classifier outputs a negative result to indicate that the area data is imbalanced and a positive result to indicate that the area data is not imbalanced.

7. The computer-implemented method of claim 1 , wherein the global classifier is trained on a cloud node and deployed to the first edge server.

8. The computer-implemented method of claim 1 , wherein a Software as a Service (SaaS) is configured to perform the operations of the computer-implemented method.

9. A computer program for a first edge server, the computer program comprising program code that, when executed by at least one processor, causes the at least one processor to: receiving a global classifier trained using common data; determining that the area data is imbalanced using the global classifier; training a local classifier using the area data to generate a first result; receiving an exchanged local identifier from the second edge server; training the replaced local classifier using the area data to generate a second result; determining that the first result and the second result indicate that the first edge server and the second edge server are in proximity; adding the first edge server and the second edge server to an edge server group list; updating at least one of an application model and a configuration of an application from one of the first edge server and the second edge server on the edge server group list; and Steps for running the application A computer program that causes a computer to perform operations including:

10. The program code, when executed by the at least one processor, causes the at least one processor to: receiving a request to run the application from an edge device; A procedure for determining that the load is high; and forwarding the request to another edge server on the edge server group list; 10. The computer program product of claim 9, which causes the computer to perform operations including:

11. The program code, when executed by the at least one processor, causes the at least one processor to: Under the control of the edge device, determining that the edge device is approaching a coverage area of ​​the first edge server; requesting the edge server group list from the first edge server; requesting at least one of a new application model and a new configuration from the first edge server in response to determining that at least one of an application model and a configuration of another application is not from any edge server on the edge server group list; and executing the other application using the at least one of the new application model and the new configuration; 10. The computer program product of claim 9, which causes the computer to perform operations including:

12. The computer program product of claim 9 , wherein an edge device maintains a visited edge server list while traversing a path that passes by at least one of the first edge server and the second edge server.

13. The program code, when executed by the at least one processor, causes the at least one processor to: receiving an exchanged local identifier from the third edge server; training the replaced local classifier from the third edge server with the area data to generate a third result; determining that the first result and the third result indicate that the first edge server and the third edge server are not adjacent; 13. A computer program product according to any one of claims 9 to 12, causing the computer to perform operations including:

14. 13. The computer program of claim 9, wherein the global classifier outputs a negative result to indicate that the area data is imbalanced and a positive result to indicate that the area data is not imbalanced.

15. The computer program product of claim 9 , wherein the global classifier is trained on a cloud node and deployed to the first edge server.

16. 13. The computer program of claim 9, wherein a Software as a Service (SaaS) is configured to perform the operations of the computer program.

17. a first edge server, one or more processors, one or more computer-readable memories, and one or more computer-readable tangible storage devices; and program instructions stored in at least one of the one or more computer-readable tangible storage devices for execution by at least one of the one or more processors via at least one of the one or more computer-readable memories, receiving a global classifier trained using common data; determining that the area data is imbalanced using the global classifier; training a local classifier using the area data to generate a first result; receiving an exchanged local identifier from the second edge server; training the replaced local classifier using the area data to generate a second result; determining that the first result and the second result indicate that the first edge server and the second edge server are in proximity; adding the first edge server and the second edge server to an edge server group list; updating at least one of an application model and a configuration of an application from one of the first edge server and the second edge server on the edge server group list; and Steps for running the application program instructions for performing operations having a first edge server comprising:

18. The operations are: receiving a request to run the application from an edge device; A procedure for determining that the load is high; and forwarding the request to another edge server on the edge server group list; The first edge server of claim 17 further comprising:

19. The operations are: Under the control of an edge device connected to the first edge server, determining that the edge device is approaching a coverage area of ​​the first edge server; requesting the edge server group list from the first edge server; requesting at least one of a new application model and a new configuration from the first edge server in response to determining that at least one of an application model and a configuration of another application is not from any edge server on the edge server group list; and executing the other application using the at least one of the new application model and the new configuration; The first edge server of claim 17 further comprising:

20. 20. The first edge server of claim 17, wherein an edge device maintains a visited edge server list while traversing a path that passes by at least one of the first edge server and the second edge server.

21. The operations are: receiving an exchanged local identifier from the third edge server; training the replaced local classifier from the third edge server with the area data to generate a third result; determining that the first result and the third result indicate that the first edge server and the third edge server are not adjacent; The first edge server of any one of claims 17 to 20, further comprising:

22. 21. The first edge server of claim 17, wherein the global classifier outputs a negative result to indicate that the area data is imbalanced and outputs a positive result to indicate that the area data is not imbalanced.

23. The first edge server of claim 17 , wherein the global classifier is trained on a cloud node and deployed to the first edge server.

24. 21. The first edge server of claim 17, wherein a Software as a Service (SaaS) is configured to perform the operations of the first edge server.

Citation Information

Patent Citations

  • Load balancing method, load balancing system, load balancing device and topology reduction method

    US20170279877A1

  • Method and computer system for selecting an edge server computer

    WO2002084976A1