Mobile KUBE-EDGE Auto-configuration
The method dynamically determines kube-edge pod configurations by analyzing polling data from mobile devices, enabling high coverage and availability with minimal incentives in mobile environments.
Patent Information
- Application Number
- JP2023530211
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-11-23
- Filing Date
- 2021-10-21
- Publication Date
- 2025-04-08
- Estimated Expiration
- 2041-10-21
AI Technical Summary
Current kube-edge deployments are static and do not dynamically address the delivery of edge services in various coverage areas, especially in mobile environments where devices have varying resources and costs.
The method involves determining a kube-edge pod configuration by receiving polling data from mobile devices, analyzing bid data for costs and resource availability, determining binding information for combining devices, calculating a utility score for coverage areas, and selecting a data storage deployment scheme based on the utility score.
This approach allows for high coverage and availability with minimal incentives by dynamically determining the optimal kube-edge pod configuration, taking into account the mobile nature of devices and their spatio-temporal social network relationships.
Smart Images

Figure 0007658693000001 
Figure 0007658693000002 
Figure 0007658693000003
Abstract
Description
[Technical field]
[0001] Example embodiments relate generally to kube-edge computing, and more specifically to determining kube-edge pod configurations to enable high coverage and availability with minimal incentives. [Background technology]
[0002] In a cloud environment, edge computing allows for data processing and / or storage to be provided closer to the device on which such action is being taken. Edge computing thus eliminates the need to transmit data to be processed and / or stored to a central location (e.g., a central cloud server) that may be located a significant physical distance away from the device. While this configuration may not provide a substantial change in the services offered from the perspective of the individual device, the Internet of Things (IoT) and the proliferation of such devices are exponentially increasing the requirements for the use of cloud services (e.g., increased latency resulting in reduced quality, bandwidth costs, etc.). Edge computing may therefore be provided to mitigate such issues.
[0003] Multi-access edge computing (MEC) offers an approach that provides cloud computing capabilities and IT service environment at the edge of the network. In the ecosystem that MEC provides, applications and services may be deployed elastically and quickly to devices. 5G is the next generation of broadband cellular network that is expected to increase communication speeds. MEC has implementations for various networks, and 5G has expanded as service providers adopt the latest advanced technology systems for their customers. However, while MEC and 5G are considered disruptive technologies alone, when combined they will become a major force in the computing world. The advent of 5G network formation capabilities will increase the number of devices connected on the network, thus increasing the need for edge computing to help distribute the network formation demands. Applications that heavily rely on consistent network connectivity, rapid deployment, and low latency include fast-growing technologies such as artificial intelligence (AI), IoT, virtual reality (VR), and augmented reality (AR). MEC and 5G network formation together will enable multiple connected technologies to be used simultaneously without suffering network outages due to traffic bottlenecks, but current edge deployments may not be properly configured to dynamically address the delivery of edge services in different coverage areas. Summary of the Invention
[0004] Exemplary embodiments disclose a method, computer program product, and computer system for determining a kube-edge pod configuration. The method includes determining mobile devices within a coverage area of a mobile environment, the mobile devices using a cloud service. The method includes receiving polling data from the mobile devices. The polling data includes bid data indicating a respective cost and a respective resource availability for each mobile device operating as an edge device for the cloud service. The method includes determining binding information for the mobile devices. The binding information indicates whether at least two of the mobile devices are considered to be bound such that the bound mobile devices have a bound cost and a bound resource availability. The method includes determining a utility score for the coverage area based on the bid data and the binding information. The method includes selecting a data storage deployment scheme for the pods of the cloud service based on the utility score.
[0005] The following detailed description is provided by way of example and is not intended to limit the illustrative embodiments thereto, and will best be understood in conjunction with the accompanying drawings, in which: [Brief description of the drawings]
[0006] [Figure 1] FIG. 1 is an exemplary schematic diagram illustrating a kube-edge configuration system 100 according to an example embodiment. [Diagram 2] FIG. 2 illustrates an example flowchart of a method 200 illustrating operation of a configuration server 130 of a kube-edge configuration system 100 in determining a kube-edge pod configuration, according to an example embodiment. [Diagram 3] FIG. 2 is an exemplary block diagram illustrating hardware components of the kube-edge configuration system 100 of FIG. 1 in accordance with an exemplary embodiment. [Figure 4]FIG. 1 illustrates a cloud computing environment in accordance with an exemplary embodiment. [Diagram 5] FIG. 1 illustrates an abstraction model layer in accordance with an exemplary embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0007] The drawings are not necessarily to scale. The drawings are merely schematic representations and are not intended to depict specific parameters of example embodiments. The drawings are intended to depict only typical example embodiments. In the drawings, like numbers represent like elements.
[0008] Detailed embodiments of the claimed structures and methods are disclosed herein. However, it can be understood that the disclosed embodiments are merely examples of the claimed structures and methods that can be embodied in various forms. The exemplary embodiments are merely examples, but may be embodied in many different forms, and should not be construed as being limited to the exemplary embodiments shown herein. Rather, these exemplary embodiments are provided so that the disclosure will be thorough and complete, and will fully convey the scope to be encompassed by the exemplary embodiments to those skilled in the art. In the description, details of well-known features and techniques may be omitted to avoid unnecessarily obscuring the provided embodiments.
[0009] References in the specification to "one embodiment," "embodiment," "exemplary embodiment," and the like indicate that the described embodiment may include a particular feature, structure, or characteristic, but all embodiments may not necessarily include that particular feature, structure, or characteristic. Moreover, such phrases do not necessarily refer to the same embodiment. Furthermore, when a particular feature, structure, or characteristic is described in connection with one embodiment, it is believed to be within the knowledge of one of ordinary skill in the art to implement such feature, structure, or characteristic in connection with other embodiments, whether or not explicitly described.
[0010] In order not to obscure the presentation of the exemplary embodiments, in the following detailed description, some process steps or operations known in the art may be combined together for purposes of presentation and illustration, and in some cases may not be described in detail. In other cases, some process steps or operations known in the art may not be described at all. It should be understood that the following description focuses on unique features or components according to various exemplary embodiments.
[0011] Exemplary embodiments are directed to methods, computer program products, and systems for determining a kube-edge configuration. As will be described in more detail below, exemplary embodiments may provide a mechanism for automatically configuring a kube-edge pod configuration in a coverage area of a mobile environment where mobile devices may reside. Exemplary embodiments may determine a kube-edge pod configuration dynamically according to a storage deployment scheme, such as during stateful or stateless deployment, by considering the changing dynamic state due to the mobile nature of devices in the coverage area. A key benefit of the exemplary embodiments may include dynamically determining the configuration and moving away from a static form of kube-edge deployment, which may operate seamlessly in a mobile environment. A detailed implementation of the exemplary embodiments follows below.
[0012] Kube-edge deployments in cloud environments are generally static in nature. Specifically, with respect to pod configuration, a kube-edge deployment may have a configuration that is fixed and used for Kubernetes pods. For example, storage may be selected to be shared across pods. In another example, storage across pods may be selected to be individual for pods. A kube-edge deployment in a traditional system effectively fixes one of these configurations to be used by Kubernetes. However, developments such as the Internet of Things (IoT) have created a need for mobile-based deployments that enable kube-edge-based application program interfaces (APIs) in mobile vehicles that bring faster 5G networks in vehicular networks or allow better coverage to remote areas through vehicular networks. Thus, a fixed or static approach to kube-edge deployment has drawbacks and does not provide seamless operation in a mobile environment.
[0013] Conventional approaches to deploying kube-edge systems are concerned with various mechanisms that are supposed to improve the way kube-edge operates. For example, conventional approaches describe how mobile edge computing (MEC) can be integrated with 5G technology. In another example, conventional approaches describe edge cloud convergence management, where the kube-edge program meets the need for resource-limited edge nodes to be managed within a central Kubernetes system. In a further example, conventional approaches describe Kubernetes native infrastructure and operator frameworks for 5G edge cloud computing. In yet another example, conventional approaches describe extending the cloud or Kubernetes ecosystem from the cloud to the edge. However, these conventional approaches do not provide any mechanism to utilize the mobility patterns of mobile edge nodes and their communication interactions with peer edge nodes to generate kube-edge pod configurations that comply with service level objectives that span the spectrum of stateless to stateful options. Furthermore, these conventional approaches do not consider standard parameters regarding resources and costs. Therefore, traditional approaches do not understand the coupling between edge devices from spatio-temporal social network analysis and leverage this information to provide better tradeoffs between stateful vs. stateless deployments in the kube-edge, which results in better tradeoff decisions.
[0014] The exemplary embodiments are configured to address mobile environments and coverage areas with mobile environments, having resources that vary based on the availability and respective configuration of mobile edge devices. Thus, the exemplary embodiments are directed to providing an approach where the same kube-edge pod configuration is not generally applied to add mobile environments. In a mobile environment, for a given location or coverage area, different mobile devices may be available. Different devices may be associated with different costs and resources. Furthermore, the availability time for these devices may constantly change, as mobile devices present in a coverage area at one time may be absent at another time. Thus, a simple static selection of devices does not always provide an optimal solution. The exemplary embodiments use a dynamic approach with more advanced analytics. Thus, the exemplary embodiments provide a selection between stateful and stateless deployment, which typically involves complex decisions due to the mobile nature of mobile devices. In this manner, the exemplary embodiments are configured to discover an optimal kube-edge pod configuration for a given mobile environment to enable high coverage and availability with minimal incentives. Additionally, example embodiments are configured to discover optimal kube-edge pod configurations when multiple devices poll simultaneously.
[0015] The exemplary embodiments are described with particular reference to kube-edge and pod configurations related to Kubernetes in a cloud environment. However, it is for illustrative purposes only that the exemplary embodiments are directed to such deployments. The exemplary embodiments may be used and / or modified for use in any networked environment in which edge systems may be used, and the features of the exemplary embodiments may be appropriately applied to determine an optimal configuration that fits the coverage area being processed. In addition, the exemplary embodiments are described with respect to stateful and stateless deployments related to storage functions for pods. However, the stateful and stateless deployments and use of storage functions are merely illustrative. The exemplary embodiments may be used and / or modified for other configurations that may be directed to other functions.
[0016] FIG. 1 illustrates a kube-edge configuration system 100 according to an exemplary embodiment. According to an exemplary embodiment, the kube-edge configuration system 100 may include one or more smart devices 110, a cloud service 120, and a configuration server 130, all of which may be interconnected via a network 108. The programming and data of the exemplary embodiments may be stored and accessed remotely across several servers via the network 108, although alternatively or additionally, the programming and data of the exemplary embodiments may be stored locally on just one physical computing device or among other than the computing devices shown. The kube-edge configuration system 100 represents a communications arrangement that includes components configured to exchange data with each other in a direct or indirect manner.
[0017] In an exemplary embodiment, the network 108 may be a communication channel over which data can be transferred between connected devices. Thus, the components of the kube-edge configuration system 100 may represent network components or network devices interconnected via the network 108. In an exemplary embodiment, the network 108 may be the Internet and may represent a worldwide collection of networks and gateways for supporting communication between Internet-connected devices. Additionally, the network 108 may use various types of connections, e.g., wired, wireless, fiber optic, etc., and may be implemented as an intranet network, a local area network (LAN), a wide area network (WAN), or a combination thereof. In a further embodiment, the network 108 may be a Bluetooth network, a WiFi network, or a combination thereof. In yet a further embodiment, the network 108 may be a telecommunications network, including a wired network, a wireless network, a closed network, a satellite network, or a combination thereof, used to facilitate calls between two or more parties. In general, the network 108 may represent any combination of connections and protocols that support communication between connected devices. For example, the network 108 may also represent direct or indirect wired or wireless connections between components of the kube-edge configured system 100 without using the network 108.
[0018] In an exemplary embodiment, one or more smart devices 110 may include an edge processing client 112, which may be an enterprise server, a laptop computer, a notebook computer, a tablet computer, a netbook computer, a personal computer (PC), a desktop computer, a server, a personal digital assistant (PDA), a rotary dial phone, a touch phone, a smart phone, a mobile phone, a virtual device, a thin client, an Internet of Things (IoT) device, or any other electronic device or computer system capable of receiving and transmitting data from and to other computer devices. Although smart device 110 is shown as a single device, in other embodiments, smart device 110 may include a cluster of computer devices or multiple computer devices, e.g., modular, working together or independently. Smart device 110 is described in more detail as a hardware implementation with reference to FIG. 3, as part of a cloud implementation with reference to FIG. 4, or using functional abstraction layers for processing with reference to FIG. 5, or a combination thereof.
[0019] The smart device 110 may represent any mobile device that may be part of a mobile environment that may reside in a predefined coverage area. The coverage area may be predefined in various manners based on various factors (e.g., physical area boundaries, load factors, etc.). With respect to the kube-edge aspect of the cloud-facing mobile environment, the smart device 110 may also represent an edge device configured to provide edge processing. In this manner, the smart device 110 may also include an edge gateway in an edge computing infrastructure.
[0020] In an exemplary embodiment, the edge processing client 112 may act as a client in a client-server relationship and may be an application based on software, hardware, or firmware, or a combination thereof, that may exchange data used to determine kube-edge pod configurations, particularly for coverage areas within the mobile environment in which the smart device 110 is located, and that data is exchanged over the network 108. In an embodiment, the edge processing client 112 may exchange polling data and other related information and may use a variety of wired and / or wireless connectivity protocols for data transmission and exchange related to data used to modify application versions, including Bluetooth, 2.4 GHz and 5 GHz Internet, Near Field Communication, Z-Wave, Zigbee, etc.
[0021] The edge processing client 112 may be configured to communicate polling data. In an exemplary embodiment, upon entering a coverage area, the edge processing client 112 may generate polling data that is sent to, for example, the configuration server 130. In this exemplary embodiment, the smart device 110 may include in its network operations communications with network components (e.g., association processes, handshakes, roaming, etc.) that may include information regarding whether the smart device 110 has entered a new coverage area and the identity of the coverage area. In another exemplary embodiment, the edge processing client 112 may receive a request for polling data, generate polling data, and send a response including the polling data to, for example, the configuration server 130. In this exemplary embodiment, the smart device 110 may be identified as being within a coverage area in which features of the exemplary embodiment are provided.
[0022] The edge processing client 112 may generate the polling data to include various types of information. For example, the polling data may include technical parameters or information of the smart device 110 generating the polling data, in addition to availability information of the smart device 110 as an edge device, location information of the smart device 110, movement information of the smart device 110, etc. The technical information may include available mobile resources (e.g., CPU, disk space, etc.), costs associated with using it as an edge device, etc. The polling data may also be used to ascertain other information about the smart device 110. For example, the location information and movement information may be used to determine a mobile availability time during which the smart device 110 will remain in the coverage area being processed. The edge processing client 112 may provide any information to be included in the polling data so that optimal decisions of kube-edge pod configuration can be made.
[0023] Cloud services 120 may represent any cloud service provider and services provided to a user associated with smart device 110. One of ordinary skill in the art will appreciate the various components, devices, connections, etc. that may be involved in providing cloud services 120. For example, cloud services 120 may use cloud computing, in which a network of remote servers and other network devices hosted across a network (e.g., the Internet) may provide data storage, management, processing, etc., as opposed to a local server or network maintained by an entity. Exemplary embodiments may be used with or modified to be used with cloud services 120, or both, and may encompass any cloud services available to a user of smart device 110.
[0024] Cloud service 120 may have various cloud-related characteristics. For example, in providing cloud service 120, the cloud may include Kubernetes, which defines building blocks that provide mechanisms configured to deploy, maintain, scale, etc., multiple applications based on various metrics. Those skilled in the art will appreciate the various technical aspects associated with Kubernetes and their function in a cloud. In another example, a cloud may include pods that group containerized components, each container functionally isolating an application from underlying host infrastructure components. A pod may include one or more containers that may be co-located on a host machine with the ability to share resources. For example, with respect to a kube-edge system, such as one to which the exemplary embodiments may be applied, pods may be configured in a stateful or stateless deployment, where storage of data may be for each individual pod or shared among multiple pods.
[0025] In an exemplary embodiment, the configuration server 130 may include an identification program 132, a bid program 134, a binding program 136, and a selection program 138, and may operate as a server in a client-server relationship with the edge processing client 112. The configuration server 130 may be an enterprise server, a laptop computer, a notebook computer, a tablet computer, a netbook computer, a PC, a desktop computer, a server, a PDA, a rotary dial phone, a touch phone, a smart phone, a mobile phone, a virtual device, a thin client, an IoT device, or any other electronic device or computer system capable of receiving and transmitting data from and to other computer devices. Although the configuration server 130 is shown as a single device, in other embodiments, the configuration server 130 may include a cluster of computer devices or multiple computer devices working together or independently. The configuration server 130 is described in more detail as a hardware implementation with reference to FIG. 3, as part of a cloud implementation with reference to FIG. 4, or using functional abstraction layers for processing with reference to FIG. 5, or a combination thereof.
[0026] According to an example embodiment, configuration server 130 may discover and enable kube-edge pod configurations with a focus on stateful vs. stateless deployment for a given mobile environment, thereby enabling high coverage and availability with minimal incentives in the context of multi-device availability and social network considerations in mobile environments.
[0027] In an exemplary embodiment, the identification program 132 may be a software, hardware, or firmware application, or combination thereof, configured to select a coverage area in a mobile environment and determine which smart devices 110 are located within the selected coverage area. As described above with respect to the edge processing client 112, the identification program 132 may poll the smart devices 110 located within the selected coverage area in an active or passive manner to receive polling data. For example, in an active manner, the identification program 132 may poll a coverage area when the coverage area is selected and request that the devices provide polling data. The identification program 132 may generate a polling signal that may be broadcast to the selected coverage area so that each smart device 110 within the selected coverage area receives the polling signal. Alternatively, the identification program 132 may receive information from a network component providing the identification of the smart devices 110, in response to which the identification program 132 may selectively transmit polling signals to these smart devices 110. In another example, the identification program 132 may be assigned one or more coverage areas within the mobile environment in a passive manner. The identification program 132 may receive polling data from the smart devices 110 each time the smart devices 110 enter a coverage area assigned to the identification program 132. In such a scenario, the identification program 132 may passively broadcast polling signals (e.g., continuously, at intermittent intervals, etc.).
[0028] In an exemplary embodiment, the bid program 134 may be a software, hardware, or firmware application, or combination thereof, configured to process polling data including bid information from smart devices 110 within a coverage area in a mobile environment. As described above, the polling data may include bid information including various types of inputs. For example, the polling data may include information including availability information, location information, movement information, technical parameters, etc. regarding the smart device 110. The availability information may indicate whether the smart device 110 is available for use as an edge device for a kube-edge pod configuration. The location information may indicate a physical location within the coverage area. The technical parameters may provide various technical characteristics of the smart device 110 (e.g., model, processor type, graphics card, etc.). The bid information included in the polling data (e.g., when the smart device 110 is available as an edge device) may include information regarding available resources and expected costs in providing a service (e.g., of the edge device). For example, the bid information may include mobile resources (e.g., CPU, disk space, etc.), costs (e.g., processing costs, financial costs, etc.), minimum and maximum resources required for a service (e.g., one of the cloud services 120), mobile availability time (e.g., the duration the smart device 110 will remain in a coverage area, the duration the smart device 110 will be available as an edge device for any other reason, etc.).
[0029] The bidding program 134 may use the polling information and bid data to generate a utility score based on the cost and resources of each of the smart devices 110 in the coverage area. The utility score may be directed to the coverage area and may incorporate various information of the smart devices in the coverage area. The utility score may indicate whether to use a stateless deployment for the kube-edge pod configuration (e.g., storage is shared between pods) or a stateful deployment for the kube-edge pod configuration (e.g., storage is individual for each pod). The bidding program 134 may generate a utility score along a range of values and may use a utility threshold, where a utility score on one side of the utility threshold indicates a stateless deployment and a utility score on the other side of the utility threshold indicates a stateful deployment.
[0030] In an exemplary implementation, the smart devices 110 may be substantially static within a coverage area, such that the resources of each smart device 110 are relatively abundant, costs are relatively minimal, the required resources of the cloud service are manageable, and the smart devices 110 may be available for at least the duration that the cloud service is used. In this exemplary implementation, the bidding program 134 may process the bid information to determine a utility score toward one extreme of a utility score range. For example, the utility score may range from 0 to 1, where 1 indicates the use of a stateful deployment and 0 indicates the use of a stateless deployment. The utility score may also include a utility threshold setting at the midpoint of the range (e.g., 0.5), although the threshold may be located anywhere along the range for various reasons (e.g., to bias the deployment toward one configuration over another, taking into account the type of bid information, etc.). Thus, in this exemplary implementation, the bidding program 134 may determine a utility score to be higher than 0.5 and closer to 1. Thus, a stateful deployment may be determined for this scenario based solely on the utility score using the cost and resources of the smart devices 110 within the coverage area. In another example implementation, the smart devices 110 may be substantially mobile and transient within the coverage area, and thus the resources of each smart device 110 may be relatively unstable, the cost may vary, the required resources of the cloud services may or may not be manageable, and the smart devices 110 may be available for an indeterminate amount of time that may or may not cover the duration that the cloud services are used. In this example implementation, the bidding program 134 may process the bid information to determine a utility score toward the other extreme of the utility score range. For example, the bidding program 134 may determine a utility score that is less than 0.5 and closer to 0.Thus, a stateless deployment may be decided for this scenario based solely on the cost and resource-utilization utility scores of the smart devices 110 within the coverage area.
[0031] Additionally, the bidding program 134 may determine how to sort the smart devices 110 within the coverage area based on the utility score and the bid information. For example, when the utility score indicates a stateful deployment, the bidding program 134 may identify which smart devices 110 should be associated with pods where individual storage operations are used. In another example, when the utility score indicates a stateless deployment, the bidding program 134 may identify which smart devices 110 should be associated with various pods where storage is shared.
[0032] In an exemplary embodiment, the binding program 136 may be a software, hardware, or firmware application, or combination thereof, configured to determine whether two or more smart devices 110 may be considered part of a set (e.g., bound). The binding program 136 may use polling data or other available information (e.g., publicly available information such as information on social media sites) or both. The binding program 136 may analyze spatio-temporal social network relationships between two or more users associated with the smart devices 110, or between two or more smart devices 110 themselves, or both, to determine whether a given pair may be bound or whether multiple smart devices 110 may be considered a set. For example, the binding program 136 may receive information that a married couple is traveling together in the same vehicle and passing through a coverage area. The binding program 136 may therefore determine that the smart devices 110 associated with the married couple may be bound for purposes of the exemplary embodiment. In another example, the bonding program 136 may determine that because a group of smart devices 110 travel together on a common means of transportation (e.g., a sports team on a bus), the smart devices 110 may be bonded or grouped as a set for purposes of the exemplary embodiment.
[0033] The combining program 136 may use the combining information determined through various analyses of the polling data to revise the utility scores determined by the bidding program 134. For example, the combining program 136 may determine that a pair of smart devices 110 may be combined. The combining program 136 may then determine that certain resources may be aggregated or otherwise considered as grouped based on the combination. In this manner, for the combined or grouped smart devices 110, the combined or grouped smart devices 110 may have a combined cost or a combined resource availability or both. In a particular example, the combining program 136 may determine the possibility of saving resources by using a shared disk of the kube-edge by the combined smart devices 110. In this manner, the combining program 136 or the bidding program 134 or both may use this updated cost or resource information or both of the smart devices 110 in the coverage area to re-evaluate the utility scores as a revised utility score based on the combining information. The modified utility score may be evaluated against a utility threshold to determine a corresponding deployment type.
[0034] In an exemplary embodiment, the selection program 138 may be a software, hardware, or firmware application, or combination thereof, configured to implement the determination of the deployment to be used in the kube-edge pod configuration. The selection program 138 may determine which deployment to use for a coverage area, taking into account the current state of the smart devices 110 present in the coverage area, using the revised utility score (e.g., when binding information is available to update the utility score). As described above, the bid program 134 and / or binding program 136 may also determine a scheme for sorting and / or allocating the smart devices 110 to perform operations on the cloud service 120. For example, for storage purposes, when a stateful deployment is used for the kube-edge pod configuration, one or more smart devices 110 may be selected for storage of data for a given pod (e.g., based on cost and / or resource information of all smart devices 110 present in the coverage area). In another example, when a stateless deployment is used for a kube-edge pod configuration, one or more smart devices 110 may be selected for storage of data for multiple pods when storage is shared among the pods (e.g., based on cost and / or resource information of all smart devices 110 present within a coverage area).
[0035] 2 illustrates an example flowchart of a method 200 illustrating operation of a configuration server 130 of the kube-edge configuration system 100 in determining a kube-edge pod configuration, according to an example embodiment. The method 200 may relate to operations performed by the identification program 132, the bid program 134, the combining program 136, and the selection program 138 of the configuration server 130. Thus, the method 200 will be described from the perspective of the configuration server 130.
[0036] The configuration server 130 polls devices within its coverage area (step 202). The configuration server 130 may poll the smart devices 110 within its coverage area in various manners. In an exemplary implementation, the configuration server 130 may use an active approach, where the configuration server 130 selects a coverage area and broadcasts or transmits a polling signal for the selected coverage area. The smart devices 110 currently located within the coverage area and capable of receiving the polling signal may respond accordingly. In another exemplary implementation, the configuration server 130 may use a passive approach, where the configuration server 130 is responsible for a coverage area and may continuously broadcast a polling signal and wait for responses from the smart devices 110 within the coverage area. In further exemplary implementations, the configuration server 130 may be configured by active and passive approaches.
[0037] The configuration server 130 determines whether any devices are present within the coverage area for which a kube-edge pod configuration should be determined (decision 204). Based on the polling signal and the response to the polling signal, the configuration server 130 may determine the presence of any smart device 110 within the coverage area. As a result of the absence of a smart device 110 within the coverage area (decision 204, “NO” branch), the configuration server 130 may use a default deployment. The default deployment may be a preselected deployment, selected, for example, by an administrator. In addition, the default deployment may be dynamically selected by selecting a more frequently used deployment based on the deployment history.
[0038] As a result of the presence of at least one smart device 110 within the coverage area (decision 204, “YES” branch), the configuration server 130 requests bid data from each device within the coverage area (step 206). In response to the polling signal, the configuration server 130 may receive polling data from the smart devices 110 within the coverage area. The polling data may include information about the smart devices 110 (e.g., availability information, location information, movement information, etc.) and bid information (e.g., information about the costs and / or resources of the smart devices 110).
[0039] The configuration server 130 determines whether it has received bid data or whether a smart device 110 is available for kube-edge pod configuration (decision 208). As a result of the configuration server 130 not receiving bid data or determining that no smart devices 110 are available (decision 208, “NO” branch), the configuration server 130 may again follow the default deployment.
[0040] As a result of the configuration server 130 receiving the bid data and determining that at least one smart device 110 is available (decision 208, “YES” branch), the configuration server 130 determines a utility score for the coverage area based on the bid information (step 210). With the bid information indicative of costs and resources of the smart device 110 and the cloud service 120, the configuration server 130 may determine the utility score as an optimization analysis.
[0041] The configuration server 130 determines whether any spatio-temporal social network relationship data exists between the smart devices 110 (step 212). Specifically, the configuration server 130 determines binding information regarding whether a pair of smart devices 110 may be bound or whether multiple smart devices 110 may be considered as a set. In binding or grouping the smart devices 110, the cost or resources or both may be re-evaluated so that the cost may be reduced or the resource may be saved. For example, when the smart devices 110 may be bound, the storage operation may be shared by the disks of the bound smart devices 110. In this manner, the cost or resources or both of the smart devices 110 in the coverage area may be re-evaluated. Thus, the configuration server 130 may determine a revised utility score based on the utility score and the binding information.
[0042] Using the modified utility scores (e.g., when binding information is available) or the utility scores (e.g., when binding information is not available), the configuration server 130 determines the configuration to use for the coverage area (step 214). Specifically, the configuration server 130 may determine whether the kube-edge pod configuration should be stateful, where storage is individual for each pod, or stateless, where storage is shared among pods, in either deployment, storage through one or more smart devices 110. Additionally, the configuration server 130 may determine how to provision the selected kube-edge pod configuration deployment by determining which smart devices 110 to use for storage functions.
[0043] Exemplary embodiments are configured to determine a kube-edge pod configuration for a coverage area of a mobile environment in which one or more mobile devices may reside. Because a mobile environment involves dynamic state with mobile devices moving in and out of coverage areas, plus each mobile device has dynamic costs and resources associated with it in being an edge device, exemplary embodiments dynamically determine the kube-edge pod configuration by selecting a stateful or stateless deployment based on the existing state of the coverage area.
[0044] According to various features, the exemplary embodiments enable high coverage and availability with minimal incentives by utilizing spatio-temporal social network analysis in the context of multi-device availability to discover and enable the best kube-edge pod configuration for a given mobile environment. Additionally, the exemplary embodiments utilize the mobility patterns of mobile nodes and their communication interactions with peer nodes to generate kube-edge pod configurations that comply with service level objectives that span a spectrum of stateless to stateful options. The exemplary embodiments further consider standard parameters regarding resources and costs, as well as understand the possibility of combining or grouping devices based on spatio-temporal social network analysis and utilize this to better tradeoff between stateful vs. stateless in the kube-edge, resulting in better tradeoff decisions.
[0045] 3 illustrates a block diagram of devices in the kube-edge configuration system 100 of FIG. 1 according to an example embodiment. It should be understood that FIG. 3 is merely provided as an example of one implementation and does not imply any limitations on the environments in which different embodiments may be implemented. Many modifications may be made to the illustrated environment.
[0046] As used herein, a device may include one or more processors 02, one or more computer readable RAMs 04, one or more computer readable ROMs 06, one or more computer readable storage media 08, device drivers 12, read / write drives or interfaces 14, network adapters or interfaces 16, all interconnected through a communications fabric 18. The communications fabric 18 may be implemented by any architecture designed to route data and / or control information between processors (e.g., microprocessors, communications and network processors, etc.), system memory, peripheral devices, and any other hardware components in the system.
[0047] One or more operating systems 10 and one or more application programs 11 are stored in one or more computer-readable storage media 08 for execution by one or more processors 02 via one or more of the respective RAMs 04 (which typically include cache memory). In the illustrated embodiment, each computer-readable storage medium 08 may be an internal hard drive magnetic disk storage device, a CD-ROM, a DVD, a memory stick, a magnetic tape, a magnetic disk, an optical disk, a semiconductor storage device such as RAM, ROM, EPROM, flash memory, etc., or any other computer-readable tangible storage device capable of storing computer programs and digital information.
[0048] As used herein, a device may also include a R / W drive or interface 14 for reading from and writing to one or more portable computer readable storage media 26. Application programs 11 in the device may be stored on one or more of the portable computer readable storage media 26 and read via the respective R / W drive or interface 14 and loaded into the respective computer readable storage media 08.
[0049] The device as used herein may also include a network adapter or interface 16, such as a TCP / IP adapter card or a wireless communication adapter (such as a 4G wireless communication adapter using OFDMA technology). The application program 11 in the computer device may be downloaded to the computer device from an external computer or external storage device via a network (such as the Internet, a local area network, or other wide area or wireless network) and the network adapter or interface 16. The program may be loaded from the network adapter or interface 16 into the computer readable storage medium 08. The network may include copper wire, optical fiber, wireless transmission, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof.
[0050] A device as used herein may also include a display screen 20, a keyboard or keypad 22, and a computer mouse or touchpad 24. The device driver 12 interfaces with the display screen 20 for imaging, the keyboard or keypad 22, the computer mouse or touchpad 24, or the display screen 20 for alphanumeric entry and pressure sensing of user selection, or a combination thereof. The device driver 12, the R / W drive or interface 14, and the network adapter or interface 16 may include hardware and software (stored in the computer readable storage medium 08 or ROM 06, or both).
[0051] The programs described herein are identified based on the application for which they are implemented in a particular one of the exemplary embodiments. However, it should be understood that any particular program organization herein is used merely for convenience, and thus the exemplary embodiments should not be limited to use in any particular application identified and / or implied by such organization.
[0052] Based on the foregoing, a computer system, method, and computer program product have been disclosed. However, numerous modifications and substitutions may be made without departing from the scope of the exemplary embodiments. Thus, the exemplary embodiments are disclosed by way of example and not limitation.
[0053] Although this disclosure includes a detailed description of cloud computing, it should be understood that implementation of the teachings described herein is not limited to a cloud computing environment. Rather, example embodiments may be implemented in conjunction with any other type of computing environment now known or later developed.
[0054] 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. This cloud model may include at least five characteristics, at least three service models, and at least four deployment models.
[0055] The characteristics are as follows:
[0056] On-demand self-service. Cloud consumers can unilaterally provision computing capacity, such as server time and network storage, as needed, automatically and without the need for human interaction with the provider of the service.
[0057] Extensive network access. Functionality is available across the network and accessed through standard mechanisms that facilitate use by a variety of thin and thick client platforms (e.g., cell phones, laptops, and PDAs).
[0058] Resource Pooling. To serve multiple consumers using a multi-tenant model, the provider's computing resources are pooled, with different physical and virtual resources dynamically allocated and reallocated according to demand. The consumer generally has no control or knowledge over the exact location of the resources provided, but there is a sense of location independence in that they may be able to specify a location at a higher level of abstraction (e.g., country, state, or data center).
[0059] Rapid Elasticity. Capabilities can be rapidly and elastically provisioned, possibly automatically, to quickly scale out, and rapidly released to quickly scale in. To the consumer, the capabilities available for provisioning often appear unlimited, and any amount can be purchased at any time.
[0060] Metered services. Cloud systems automatically control and optimize resource usage by utilizing metering at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported to provide transparency to both providers and consumers of the services used.
[0061] The service model is as follows:
[0062] Software as a Service (SaaS). The functionality provided to the consumer is the use of the provider's applications running on a cloud infrastructure. The applications are accessible from a variety of client devices through thin-client interfaces, such as web browsers (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, storage, or even individual application functionality, with the possible exception of limited user-specific application configuration settings.
[0063] Platform as a Service (PaaS). The functionality offered to the consumer is the deployment onto a cloud infrastructure of applications created or acquired by the consumer, written using programming languages and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, or storage, but does have control over the deployed applications and possibly the application hosting environment configuration.
[0064] Infrastructure as a Service (IaaS). The functionality provided to the consumer is the provisioning of processing, storage, network, and other basic computing resources on 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 has control over the operating systems, storage, deployed applications, and perhaps limited control over the choice of network forming components (e.g., host firewalls).
[0065] The deployment models are as follows:
[0066] Private Cloud: This cloud infrastructure is operated solely for an organization. It may be managed by that organization or a third party and may exist on-premise or off-premise.
[0067] Community Cloud. This cloud infrastructure is shared by multiple organizations to support a specific community with common concerns (e.g., mission, security requirements, policy, and compliance considerations). It may be managed by those organizations or a third party and may reside on-premise or off-premise.
[0068] Public cloud. This cloud infrastructure is made available to the general public or large industry groups and is owned by organizations that sell cloud services.
[0069] Hybrid cloud: This cloud infrastructure is a composite of two or more clouds (private, community, or public) that remain their own entities but are bound together by standard or proprietary technologies that enable data and application portability (e.g. cloud bursting for load balancing between clouds).
[0070] Cloud computing environments are service-oriented and focus on statelessness, low coupling, modularity, and semantic interoperability. At the heart of cloud computing is an infrastructure that includes a network of interconnected nodes.
[0071] 4, an exemplary cloud computing environment 50 is shown. As shown, the cloud computing environment 50 includes one or more cloud computing nodes 40 with which local computing devices used by cloud consumers, such as, for example, a personal digital assistant (PDA) or cell phone 54A, a desktop computer 54B, a laptop computer 54C, or an automobile computer system 54N, or combinations thereof, may communicate. The nodes 40 may communicate with each other. These nodes may be physically or virtually grouped (not shown) in one or more networks, such as, for example, a private, community, public, or hybrid cloud, or combinations thereof, as described above. This allows the cloud computing environment 50 to provide infrastructure, platform, or software, or combinations thereof, as a service for which the cloud consumer does not need to maintain resources at the local computing device. It will be understood that the types of computing devices 54A-N shown in FIG. 4 are intended to be exemplary only, and that computing node 40 and cloud computing environment 50 can communicate with any type of computing device through any type of network or network-addressable connection (e.g., using a web browser) or both.
[0072] Referring now to Figure 5, a set of functional abstraction layers provided by cloud computing environment 50 (Figure 4) is shown. It should be understood in advance that the components, layers, and functions shown in Figure 5 are intended to be merely illustrative, and example embodiments are not limited thereto. As shown, the following layers and corresponding functions are provided:
[0073] The hardware and software layer 60 includes hardware and software components. Examples of hardware components include mainframes 61, RISC (Reduced Instruction Set Computer) architecture based servers 62, servers 63, blade servers 64, storage devices 65, and networks and network forming components 66. In some embodiments, the software components include network application server software 67 and database software 68.
[0074] The virtualization layer 70 provides an abstraction layer from which the following 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.
[0075] In one example, the management layer 80 may provide the functions described below: Resource provisioning 81 provides dynamic procurement of computing and other resources used to perform tasks within the cloud computing environment. Metering and pricing 82 provides cost tracking as resources are used within the cloud computing environment and billing or invoicing 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 83 provides access to the cloud computing environment for consumers and system administrators. Service level management 84 provides allocation and management of cloud computing resources such that required service levels are met. Service level agreement (SLA) planning and fulfillment 85 provides advance arrangement and procurement of cloud computing resources where future demand is forecasted by SLAs.
[0076] The workload layer 90 provides examples of functions for which a cloud computing environment may be used. Examples of workloads and functions that may be provided from this layer include mapping and navigation 91, software development and lifecycle management 92, virtual classroom instructional delivery 93, data analytics processing 94, transaction processing 95, and kube-edge configuration processing 96.
[0077] The invention may be a system, method, or computer program product, or combination thereof, at any possible level of technical detail integration. The computer program product may include a computer-readable storage medium (or media) having computer-readable program instructions for causing a processor to perform aspects of the invention.
[0078] A computer-readable storage medium may be a tangible device that can hold and store instructions for use by an instruction execution device. A computer-readable storage medium may be, for example, but 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 disk (DVD), memory sticks, floppy disks, mechanically encoded devices such as punch cards or raised structures in grooves having recorded instructions, and the like, and any suitable combination of the foregoing. Computer-readable storage media as used herein should not be construed as being a transitory signal in itself, such as, for example, electric waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a wave guide or other transmission medium (e.g., light pulses passing through a fiber optic cable), or electrical signals transmitted through wires.
[0079] The computer readable program instructions described herein may be downloaded from a computer readable storage medium into each computing / processing device or may be downloaded 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 include 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 in each computing / processing device receives the computer readable program instructions from the network and forwards the computer readable program instructions to a computer readable storage medium in the respective computing / processing device for storage.
[0080] The computer readable program instructions for carrying out the operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, configuration data for an integrated circuit, or source or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, or C++, and procedural programming languages such as the "C" programming language or similar programming languages. The computer readable program instructions may be executed entirely on the user's computer, partially on the user's computer as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or wide area network (WAN), or the connection to the external computer may be made (e.g., through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), may execute computer-readable program instructions by using state information of the computer-readable program instructions to personalize the electronic circuitry to perform aspects of the invention.
[0081] 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.
[0082] These computer readable program instructions may be provided to a processor of a computer or other programmable data processing apparatus to produce a machine, such that the instructions executed by the processor of the computer or other programmable data processing apparatus cause means for implementing the functions / operations 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 capable of instructing a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner, such that the computer readable storage medium on which the instructions are stored includes an article of manufacture including instructions that implement aspects of the functions / operations specified in one or more blocks of the flowcharts and / or block diagrams.
[0083] The computer readable program instructions may also be loaded into a computer, other programmable data processing apparatus, or other device to cause the computer, other programmable apparatus, or other device to perform a series of operational steps to generate a computer-implemented process, such that the instructions executed on the computer, other programmable apparatus, or other device implement the functions / operations specified in one or more blocks of the flowcharts and / or block diagrams.
[0084] The flowcharts and block diagrams in the drawings 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, which includes one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions shown in the blocks may occur in a different order than that shown in the drawings. For example, two blocks shown in succession may actually be accomplished as one step, may be executed simultaneously, may be executed substantially simultaneously in a partially or fully overlapping manner in time, or the blocks may sometimes be executed in the reverse order, depending on the functionality involved. In addition, it will be 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 implemented by a special-purpose hardware-based system that performs the specified functions or operations or executes a combination of special-purpose hardware and computer instructions.
Claims
1. A computer-implemented method for determining a kube-edge pod configuration by computer information processing, the computer-implemented method comprising: determining a mobile device within a coverage area of a mobile environment, the mobile device using a cloud service; receiving polling data from the mobile devices, the polling data including bid data indicating a respective cost and a respective resource availability for each of the mobile devices acting as an edge device for the cloud service; determining coupling information for the mobile devices, the coupling information indicating whether at least two of the mobile devices are considered to be coupled such that the coupled mobile devices have a combined cost and a combined resource availability; determining a utility score for the coverage area based on the bid data and the combined information; selecting a data storage deployment scheme for the pods of the cloud service based on the utility score; 4. A computer-implemented method comprising:
2. 2. The computer-implemented method of claim 1, wherein the polling data further comprises characteristic information of the mobile devices, the characteristic information comprising at least one of availability information, location information, movement information, and technical parameters for each of the mobile devices.
3. 2. The computer-implemented method of claim 1, wherein the bid data includes information directed to at least one of mobile resource availability, cost of being the edge device, resources required for the cloud service, and mobile availability time.
4. The computer-implemented method of claim 1 , wherein the binding information is based on spatio-temporal social network relationship data of at least one of the mobile device and a user associated with the mobile device.
5. Determining the mobile devices within the coverage area includes: broadcasting a polling signal in the coverage area; 2. The computer-implemented method of claim 1, wherein receiving the polling data from the mobile device is the result of the mobile device transmitting the polling data receiving the polling signal.
6. Determining the mobile devices within the coverage area includes: selecting said coverage area; transmitting a polling signal to the mobile devices within the coverage area; The computer-implemented method of claim 1 , wherein the polling data is from the mobile device that received the polling signal.
7. 2. The computer-implemented method of claim 1 , wherein the data storage deployment scheme is one of a stateful deployment or a stateless deployment, the stateful deployment being configured for storage that is individual for each of the pods, and the stateless deployment being configured for storage that is shared between the pods.
8. A computer program for causing a computer to execute the method described in any one of claims 1 to 7.
9. A computer-readable recording medium having the computer program according to claim 8 recorded thereon.
10. A computer system for determining a kube-edge pod configuration, comprising: determining a mobile device within a coverage area of a mobile environment, the mobile device using a cloud service; receiving polling data from the mobile devices, the polling data including bid data indicating a respective cost and a respective resource availability for each of the mobile devices acting as an edge device for the cloud service; determining coupling information for the mobile devices, the coupling information indicating whether at least two of the mobile devices are considered to be coupled such that the coupled mobile devices have a combined cost and a combined resource availability; determining a utility score for the coverage area based on the bid data and the combined information; selecting a data storage deployment scheme for the pods of the cloud service based on the utility score; A computer system that executes the above.
11. 11. The computer system of claim 10, wherein the polling data further comprises characteristic information of the mobile devices, the characteristic information comprising at least one of availability information, location information, movement information, and technical parameters for each of the mobile devices.
12. 12. The computer system of claim 10 or 11, wherein the bid data includes information directed to at least one of mobile resource availability, cost of being the edge device, resources required for the cloud service, and mobile availability time.
13. 13. The computer system of claim 10, wherein the binding information is based on spatio-temporal social network relationship data of at least one of the mobile device and a user associated with the mobile device.
14. Determining the mobile devices within the coverage area includes: broadcasting a polling signal in the coverage area; The computer system according to any one of claims 10 to 13, wherein receiving the polling data from the mobile device is a result of the mobile device transmitting the polling data receiving the polling signal.
15. Determining the mobile devices within the coverage area includes: selecting said coverage area; transmitting a polling signal to the mobile devices within the coverage area; The computer system of any one of claims 10 to 14, wherein the polling data is from the mobile device that received the polling signal.
Citation Information
Patent Citations
Management apparatus, mobile communication system, program, and management method
JP2019213161A
Multi-Access Edge Computing (MEC) Service Provision Based On Local Cost Measurements
US20190245789A1