Edge application deployment and processing

By deploying pseudo-application instances and real application instances of edge applications in multiple edge sites, and using the interaction between user devices and edge applications, the current problem of inefficient deployment and processing methods of edge applications is solved, efficient edge computing processing is achieved, reducing latency and bandwidth costs, and improving service quality.

CN119522421APending Publication Date: 2025-02-25INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380052660.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-07-18
Filing Date
2023-07-04
Publication Date
2025-02-25

AI Technical Summary

Technical Problem

Current edge application deployment and processing methods have inefficiency problems in cellular networks, resulting in increased latency, reduced service quality and high bandwidth costs.

Method used

Efficient processing of edge computing is achieved by deploying pseudo-application instances (pApps) and real-application instances (rApps) of edge applications in multiple edge sites, and using the interaction between user devices and edge applications to reach the second group of rApps through selected pApps.

Benefits of technology

This method can improve the processing efficiency of edge computing, reduce latency, reduce bandwidth costs, and improve service quality. It is suitable for high-latency sensitive applications such as artificial intelligence, IoT, virtual reality, etc.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119522421A_ABST
    Figure CN119522421A_ABST
Patent Text Reader

Abstract

Edge application deployment in a network is provided. The network includes a plurality of edge sites having an edge computing infrastructure. Edge application deployment is performed, including deploying a pseudo application instance (pApp) of the edge application at each edge site of a first set of edge sites of the plurality of edge sites, and deploying a real application instance (rApp) of the edge application at each edge site of a second set of one or more edge sites of the plurality of edge sites. The pApp is a lightweight, application-specific instance of the rApp, which has less application functionality than the rApp. Further, the first set of edge sites is larger than the second set, and the user equipment interacts with the edge application through the selected pApp in the first set of edge sites to the rApp of the second set.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] One or more aspects relate generally to edge computing, and more particularly, to improving edge computing in networks such as cellular networks through enhanced edge application deployment and processing.

[0002] In a cloud environment, edge computing (i.e., computing at or near an edge) enables processing and / or storage of data to be provided closer to the device(s) on which the operations are being performed. Thus, edge computing can eliminate the need for data to be processed or stored to be sent to a central location (e.g., a central cloud server), which can be physically located at a considerable distance from the device(s). Although from the perspective of an individual device, such a configuration may not provide a substantial change to the services provided, the massive growth of the Internet of Things (IoT) and other electronic devices, including mobile devices, has exponentially increased network demands when utilizing cloud services, which can result in increased latency, potentially leading to lower quality of service, higher bandwidth costs, etc. Advantageously, edge computing can help alleviate these problems.

[0003] Multi-access edge computing (MEC) provides a computing method in which cloud computing capabilities in an information technology (IT) service environment are provided at the edge of the network. MEC provides an ecosystem in which applications and services can be flexibly and quickly deployed.

[0004] In cellular communications, 5G is the next generation of broadband cellular networks that allow for significantly increased communication rates. MEC has implementations for a variety of networks, and 5G implementations have expanded as service providers adopt this most current and technologically advanced system for their customers. When combined, MEC and 5G can be a powerful force in the computing world. The advent of 5G network capabilities continues to increase with the number of devices connected on the network, which has stimulated the need for edge computing to help distribute networking needs. Applications that rely heavily on consistent network connectivity, rapid deployment, and low latency include emerging technologies such as artificial intelligence (AI), IoT, virtual reality (VR), augmented reality (AR), etc. MEC and 5G networking together allow a large number of connected technologies to be used simultaneously without network interruptions due to business bottlenecks. However, current edge application deployment and processing methods can be further improved, including for cellular networks. Summary of the invention

[0005] A computer program product for facilitating processing within a computing environment is provided. The computer program product includes one or more computer-readable storage media and program instructions contained therein. The program instructions can be read by a processing circuit to cause the processing circuit to execute a method including performing edge application deployment in a network. The network includes multiple edge sites with edge computing infrastructure. The execution includes: deploying a pseudo application instance (pApp) of the edge application at each edge site of a first group of edge sites in the multiple edge sites; and deploying a real application instance (rApp) of the edge application at each edge site of a second group of one or more edge sites in the multiple edge sites. A pApp is a lightweight, application-specific instance of an rApp that has less application functionality than an rApp, and the first group of edge sites is larger than the second group. In addition, the interaction of a user device with an edge application is through the selected pApp of the first group of edge sites to the rApp of the second group.

[0006] Computer-implemented methods and computer systems related to one or more aspects are also described and claimed herein. Additionally, services related to one or more aspects are also described and claimed herein.

[0007] Additional features and advantages are realized through the techniques described herein.Other embodiments and aspects are described in detail herein and are considered a part of the claimed aspects. BRIEF DESCRIPTION OF THE DRAWINGS

[0008] Preferred embodiments of the present invention will now be described, by way of example only, with reference to the following drawings:

[0009] Figure 1A An example of a cellular network with edge-based computing that will enable edge application deployment and processing is depicted in accordance with one or more embodiments of the present invention;

[0010] Figure 1B Describes an embodiment of the present invention according to one or more embodiments of the present invention in a Figure 1A An example of edge computing at an edge site of a cellular network depicted in FIG, which will enable edge application deployment and processing;

[0011] Figure 2A An example of a cellular network deployed with edge applications according to one or more embodiments of the present invention is shown;

[0012] Figure 2B An example of a pseudo application instance (pApp) of an edge application obtained from a real application instance (rApp) of an edge application according to one or more embodiments of the present invention (in one embodiment) is shown;

[0013] Figure 3A An example of pseudo application instance (pApp) switching within a network utilizing the mobility of user equipment interacting with an application according to one or more embodiments of the present invention is shown;

[0014] Figure 3B Depicted is another example of a cellular network utilizing edge application deployment and processing in accordance with one or more embodiments of the present invention;

[0015] Figure 4A An example of a set of pseudo application instances (pApps) and one or more real application instances (rApps) for deploying an application according to one or more embodiments of the present invention is shown;

[0016] Figure 4B An example of an edge application deployment workflow according to one or more embodiments of the present invention is depicted;

[0017] Figure 5A An example of an interactive switching workflow from one pseudo application instance (pApp) of an edge application deployed within a network to another pseudo application instance (pApp) according to one or more embodiments of the present invention is shown;

[0018] Figure 5B An example of a user device interacting with an edge application according to one or more embodiments of the present invention is shown, the edge application being deployed in a layer including pseudo application instances (pApp) at multiple edge sites of a network and real application instances (rApp) at one or more edge sites of the network;

[0019] Figure 5C Depicted Figure 5B An example of, and illustrates the switching of user device interaction from one pseudo application instance (pApp) at one edge site to another pseudo application instance (pApp) at another edge site according to one or more embodiments of the present invention;

[0020] Figure 6 An example of a routing connection workflow from a pseudo application instance (pApp) of an edge application to a real application instance (rApp) of the edge application according to one or more embodiments of the present invention is shown;

[0021] Figure 7 An example of an application instance upgrade / downgrade workflow according to one or more embodiments of the present invention is described;

[0022] Figure 8 An example of a computing environment for incorporating and using one or more embodiments of the present invention is depicted;

[0023] Fig. 9AAnother example of a computing environment in which one or more embodiments of the present invention may be incorporated and / or used is depicted;

[0024] Fig. 9B Describes the invention according to one or more embodiments Fig. 9A Further details of the memory;

[0025] Fig.10 An example of a cloud computing environment according to one or more embodiments of the present invention is depicted; and

[0026] Fig.11 An example of an abstract model layer according to one or more embodiments of the invention is shown. DETAILED DESCRIPTION

[0027] The accompanying drawings are incorporated into and form a part of this specification, which further illustrate the present invention and are used to explain embodiments of the present invention together with the specific embodiments of the present invention. Note that at this point, descriptions of known systems, devices, processing techniques, etc. are omitted so as not to unnecessarily obscure the present invention in detail. However, it should be understood that the specific embodiments and this (these) specific examples, although indicating embodiments of the present invention, are given only by way of illustration, not limitation. Various substitutions, modifications, additions and / or other arrangements within the spirit or scope of the basic concepts of the present invention will be apparent to those skilled in the art from this disclosure. It should also be noted that many inventive aspects or features are disclosed herein, and unless inconsistent, each aspect or feature disclosed may be combined with any other disclosed aspect or feature as needed for a specific application of the disclosed concepts.

[0028] Note also that the illustrative embodiments are described below using specific code, design, architecture, protocol, layout, schematic diagram, or tool, which are examples only and not limitations. In addition, for clarity of description, in some cases, specific software, tools, or data processing environments are used to describe the illustrative embodiments, which are examples only. The illustrative embodiments can be used in conjunction with other comparable or similar purpose structures, systems, applications, or architectures. One or more aspects of the illustrative embodiments can be implemented in hardware, software, or a combination thereof.

[0029] As will be appreciated by those skilled in the art, program code referenced in this application may include both software and hardware. For example, program code in certain embodiments of the present invention may utilize software-based implementations of the functions described, while other embodiments may include fixed-function hardware. Some embodiments combine both types of program code. Examples of program code (also referred to as one or more programs) are provided in Figure 8Depicted in FIG. 8 are application programs 816, computer readable program instructions 820, controller / coordinator 822, and services 821, which are stored in memory 806 as examples only.

[0030] As an example, containerization is the packaging of software code (e.g., for implementing a service or microservice) and its dependencies (such as operating system libraries and / or other dependencies) for running the software code to create a single lightweight executable file called a container. The container is portable because it runs consistently and reliably on any information technology infrastructure. In one or more embodiments, the software code may be an application, such as an edge application in the case of edge-based computing. A container is created from a container image, which is a static file including executable program code that can run as an isolated process on a computing or information technology (IT) infrastructure. An image can be used to run one or more containers, which are runtime instances of a container image. Containers are lightweight (e.g., they share the machine's operating system), efficient, easy to manage, secure, and portable.

[0031] An example of a product for provisioning and managing containers is It is an open source system for automating the deployment, scaling, and management of containerized applications. (Note that at this point, is a registered trademark of the Linux Foundation in at least one jurisdiction) Kubernetes groups the containers that make up an application into logical units for ease of management and discovery. In operation, Kubernetes organizes containerized applications to run on a cluster of hosts (or nodes) and automates the deployment and management of cloud-native applications using either internal facility infrastructure or public cloud platforms. The Kubernetes system is designed to run containerized applications across a cluster of nodes (or servers), which can be distributed at a single geographic location or across multiple geographic locations. In one or more implementations, a cluster is a group of nodes (whether physical or virtual computing resources) running a Kubernetes agent, managed by a Kubernetes control plane.

[0032] Container orchestration is the automation of much of the operational work required to run containerized workloads and services. Orchestration includes a wide variety of processes required to maintain the lifecycle of a container, including provisioning, deployment, scaling (scaling up and down), networking, load balancing, and the like. Note that Kubernetes is only one example of an orchestration platform that can be used to manage, for example, application deployments such as those disclosed herein. Other platforms such as Function as a Service (FaaS) can be used to manage application deployments in accordance with one or more embodiments disclosed herein.

[0033] The use of edge-based computing, including edge application services, advantageously reduces the amount of data to be transmitted and the distance that subsequent traffic and data must travel. This results in lower latency and reduces transmission costs. Computation offloading to the edge (e.g., to one or more edge sites of a network such as a cellular network) can advantageously benefit the response time of real-time applications. In one or more implementations, edge-based containers are decentralized computing resources (e.g., devices or systems) located close to end-user devices in order to reduce latency, save bandwidth, and enhance the overall digital experience.

[0034] Just as an example, Figure 1A One embodiment of a next generation cellular network is depicted, generally designated 100. The cellular network 100 includes a plurality of edge sites 110, each having a corresponding cell tower 111 for wirelessly interfacing with various types of user equipment 101, UE1, UE2, UE3 within range of the cell tower. In the depicted embodiment, each edge site 110 includes a radio access network 112 that interfaces with an edge site computing infrastructure 113 and (e.g.) a next generation (5G) core network 120. As shown, the core network 120 may (in one embodiment) facilitate communications with one or more cloud-based computing resources 130, such as one or more cloud-based computing enterprise applications 131, audio-visual streaming applications 132, gaming applications 133, augmented reality (AR) and / or virtual reality (VR) applications 134, and / or database applications 135, such as an information management system (IMS), etc. In one embodiment, the next generation core network 120 may include, for example, a user plane function (UPF) 122 that connects the wireless access network 112 and the data network 105, such as a local area network (LAN), a wide area network (WAN) (e.g., the Internet), or a combination thereof, which may include wired, wireless, fiber optic connections, etc. The network 105 may include one or more wired and / or wireless networks that are capable of receiving and sending data, such as data associated with one or more applications referenced herein. As further shown, in one embodiment, the access mobility function (AMF) 121 interfaces with the radio access network (RAN) 112 and session management function (SMF) 123 facilities of the edge site 110 and the unified data management (UDM) 124 facilities. In one embodiment, the session management function (SMF) 123 also interfaces with the policy control function (PCF) 125.

[0035] In operation, in one or more embodiments, user equipment 101, UE1, UE2, and UE3 represent one or more wireless user devices, such as smart phones, mobile phones, gaming devices, wireless vehicle devices / systems, wireless computers, etc., which can change their attachment points in the cellular network 100 by moving or migrating from a cell tower in one cell area to a cell tower in another cell area of ​​the network. In this case, a wireless session can begin to be served by a new network application-aware server or "edge application" server, where the state of the edge application server associated with the user device is migrated from the previous edge server at the source node to the new edge server at the destination node or site. As described, the cellular network includes corresponding cell towers 111 and associated network edge components and infrastructure 113, such as one or more computing resources (such as one or more servers), which act as a cell or as part of the cell with which the mobile user device communicates.

[0036] When the mobile device moves out of communication range with the first edge site, the cellular network automatically enables an edge site in another geographic area to maintain a communication session with the user device over a new communication path. This functionality is inherent in the cellular network 100 to maintain a current communication session between a user device and the cell towers of one or more cells as the user device moves from one area to another.

[0037] To enable seamless transition, the cellular network infrastructure includes a radio access network (RAN) 112, such as a 5G New Radio (NR) (gNB) that interfaces wirelessly with a logical 5G radio node over the air. The radio access network 112 provides control and management of the wireless transceivers of the cell node (base transceiver station) equipment, and performs management tasks such as handover of cell communication sessions. Typically, the cellular network interfaces through, for example, the Internet, and facilitates control of the elements necessary to provide application services to end users, including, for example, radio spectrum allocation, wireless network infrastructure, backhaul infrastructure, provisioning computer systems, etc.

[0038] As mentioned above, with the advent of 5G networks, latency-sensitive applications such as enterprise applications, manufacturing applications, healthcare applications, IoT applications, etc. are moving closer to the edge of cellular networks and are increasingly running as services or microservices. Figure 1B An example of this situation is described, where edge site 2 (at Figure 1AIn one or more implementations, the edge site computing infrastructure 113 performs edge site processing in conjunction with the cell tower 111 and the radio access network 112; wherein one or more edge sites run (in one embodiment) a container orchestrator 150, such as Kubernetes, which coordinates containerized applications to run on a cluster of host nodes. In operation, a user device UE2 (e.g., a user mobile device) automatically selects the cell tower with the strongest signal and processes audio, video and / or Internet from that cell tower. As the user device UE2 moves, the appropriate cell tower is automatically reselected. Utilizing a method such as Figure 1B In edge application deployment on a cluster as depicted in , load balancing is typically unaware of client location or client replica latency and / or network conditions, and traditionally will not handle client mobility. This article discloses an enhanced system and method for edge application deployment and related edge application processing that is as seamless as cell tower selection and switching within a cellular network.

[0039] Application orchestration for edge site deployments, such as disclosed herein, balances two often conflicting requirements. The first requirement is to maximize quality of service (QoS) by, for example, minimizing the response time for each end user. This means, for example, that by moving applications closer to the edge, more application replication is required. The second requirement is to minimize the cluster resources required due to resource constraints at the edge, and thereby reduce overhead, by, for example, optimizing application placement to, for example, have fewer application replicas. In the context of certain networks, such as cellular networks, balancing these two requirements is challenging. For example, the mobility of user devices (e.g., devices) makes it difficult to maximize quality of service (QoS), and the overall network traffic pattern at the edge of a cellular network keeps changing, which means that minimizing cluster resources can be difficult.

[0040] Embodiments of the present invention include computer program products, computer-implemented methods, and computer systems, wherein program code executed on one or more processors performs a method comprising (in one embodiment) performing edge application deployment in a network. The network includes multiple edge sites with edge computing infrastructure. The execution includes deploying a pseudo application instance (pApp) of the edge application at each site in a first group of edge sites of the multiple edge sites. In addition, the method includes deploying a real application instance (rApp) of the edge application at each edge site of a second group of one or more edge sites in the multiple edge sites. A pApp is a lightweight, application-specific instance of an rApp with less application functionality than an rApp. In addition, the first group of edge sites is larger than the second group, and the interaction of a user device with an edge application is through a selected pApp in the first group of edge sites to an rApp in the second group.

[0041] According to one or more embodiments disclosed herein, edge applications are divided into two layers, namely, pseudo application instances (pApps) and real application instances (rApps), where the pseudo application instances (pApps) are lightweight instances of edge applications that can be modified for migration, and the real application instances (rApps) are complete instances of edge applications. Pseudo application instances (pApps) are low-cost and act as contact points for end users of edge applications, and provide routing to actual real application instances (rApps), while also allowing transparent mobility. In one or more implementations, a computer program product, a computer-implemented method, and a computer system are provided, wherein program code executed on one or more processors runs a pseudo application instance (pAPP) such as disclosed herein for cluster orchestration at the edge of the network. Pseudo application instances (pApps) are new abstractions for managing applications on edge cluster orchestrators. By splitting applications into layers, edge applications can be deployed with higher quality of service (QoS), while also saving computing resources such as container orchestrators.

[0042] Multiple inventive embodiments associated with the proposed concepts are disclosed herein. For example, program products, systems, and methods are proposed for deploying services as a collection of pseudo application instances (pAPPs) or replicas running on any desired number of multiple edge sites of a network (such as all edge sites of the network). The pAPP has the ability to connect routes to real application instances (rAPPs) and switch user connections to other pseudo application instances (pAPPs) to facilitate management of cluster orchestrator tradeoffs while supporting seamless cell-tower mobility for end users of edge applications. In one or more implementations, edge applications or services can be deployed as a collection of pseudo application instances (pApps) running on a first set of edge sites (such as most or all edge sites of the network) and real application instances (rApps) running on selected edge sites of the network. In addition, in one or more embodiments, a method is provided for switching one or more edge user interactions (services) from one pseudo application instance (pApp) to another pseudo application instance (pApp) when the user device moves, and a method for routing end-user interconnections (i.e., services) from a pseudo application instance (pApp) to a selected real application instance (rApp), wherein the real application instance (rApp) can be selected based on link performance measurements obtained from a telecommunications network. In addition, in one or more implementations, a method is provided for upgrading a pseudo application instance (pApp) at an edge site to a real application instance (rApp), for example to meet end-user quality of service (QoS) requirements, and a method is provided for selecting a specific pseudo application instance (pApp) to upgrade to optimize the overall network flow. These and other embodiments and features of the present invention are disclosed herein to facilitate edge application deployment and processing within a network such as a cellular network.

[0043] Figure 2A An example of an edge application deployed according to one or more embodiments of the present invention is depicted. As an example, similar to the above combination Figure 1A and 1BThe described network 100, network 100 'includes multiple edge sites, each edge site having a corresponding edge computing infrastructure. In the depicted embodiment, the edge computing infrastructure 200 supports multiple edge applications, wherein the real application instances (rApp1, rApp2, rApp3) are each shown only in this example on one of the edge sites, and the pseudo application instances (pApp1, pApp2, pApp3) reside on other edge sites, so that each edge site either has a pseudo application instance (pApp) of the application (App1, App2, App3) or has a real application instance (rApp) of the edge application. Note that this is only one embodiment, and in other embodiments, each edge site of the network may include a pseudo application instance (pApp) of the edge application, even at the edge site where the real application instance (rApp) of the edge application resides. For example, in one or more embodiments, for a specific edge application, there is a corresponding pseudo application instance (pApp) of the application running at each edge site of the network. In implementation, one or more real application instances (rApp) of the application may be deployed. In one or more further implementations, only certain edge sites of a plurality of edge sites in a network need contain pseudo application instances (pApps) or real application instances (rApps) of edge applications. However, typically, the pApps are included in a first set of edge sites in the network that is larger than a second set of one or more edge sites running real application instances (rApps).

[0044] like Figure 2BAs shown, in one or more embodiments, a pseudo application instance (pApp) of an application can be obtained from a real application instance (rApp). In one or more implementations, the pseudo application instance (pApp) has fewer application functions than a real application instance (rApp), and may include, for example, a pseudo application framework / library (pApp Lib) 222, which (in one embodiment) facilitates providing functions such as routing, load balancing, proxy, caching, and control management. In addition, the pApp instance may include one or more rApp code paths 224 (i.e., one or more application-specific code paths), and operational state information 226 for interacting with one or more user devices or sessions of edge applications processed via pApp. In one or more deployment processes, k real application instances (rApps) of edge applications are provided in the network, as well as n pseudo application instances (pApps) of edge applications, where k << n, and in one or more embodiments, n is close to or equal to the number of edge sites. The pseudo application instances (pApps) obtained from the actual application are lightweight by definition, requiring less application functions and less processing overhead than real application instances. In addition, in one or more implementations, all pseudo application instances (regardless of the real application instance) may have certain common functions implemented as libraries, such as cache, routing, control logic, etc. In addition, each pseudo application instance is obtained or built for a specific real application instance (rApp), and may have some real application-specific code paths. In one embodiment, code annotations can be used to capture the real application code paths to be implemented in the pseudo application instance (pApp). In addition, in one or more embodiments, the pseudo application instance can be a parallel implementation. For example, in one or more embodiments, a development operator can submit code to run on a pseudo application instance (pApp). For a specific function in a real application instance (rApp), the function can be implemented in a pseudo application instance (pApp). In one or more embodiments, the function can, for example, perform a check, and based on the result, for example, return a check-based result from a cache, or route the result to a real application instance (rApp).

[0045] Advantageously, in one or more embodiments, deploying pseudo application instances (pApps) of edge applications to multiple edge sites of a network helps balance maximizing quality of service (QoS) while minimizing conflicting requirements of cluster resources needed to implement edge applications, for example, within a network with dynamically changing loads. Provided herein are computer program products, computer-implemented methods, and computer systems having program code for deploying services (or microservices) as a collection of pseudo application instances (pAPPs) running, for example, on many or all edge sites, with the ability to route connections to real application instances (rAPPs) and switch to other pAPPs when appropriate to assist in cluster coordination tradeoffs while supporting seamless cell tower-like mobility for users of edge applications. Figure 3A One embodiment of the ability to leverage user mobility to switch a user device interface (eg, user session) from one pApp to another is depicted.

[0046] exist Figure 3A In the figure, the above combination is shown Figure 2A and 2B A network 100' is described, which includes a pseudo application instance (pApp) 300 of an edge application having a previous connection to a user device 101, such as a mobile user device. As shown, the pApp 300 has a routed connection to a real application instance (rApp) 301 of the edge application to facilitate user request processing related to user device interaction. Utilizing the mobility of the user device 101, the pApp 300 automatically switches the user device interaction or session to another closer pseudo application instance (pApp) 302 in the network to allow the user device 101 uninterrupted access to the edge application.

[0047] In one or more implementations, edge application deployment processing such as described herein includes routing traffic from a pApp to an rApp, wherein the rApp is selected based on, for example, a link performance measurement obtained by the network. In one or more embodiments, pApp 302 may continue to route user device interactions with the edge application to real application instance (rApp) 301, or to another, for example, real application instance (rApp) that is closer to pApp 302.

[0048] Further, the provision of pseudo application instances (pApps) such as those disclosed herein allows the pseudo application instances to be upgraded to real application instances when necessary to, for example, meet client quality of service (QoS) requirements, and allows the selection of one or more pseudo application instances to be upgraded to real application instances to optimize the overall network flow. In addition, in one or more embodiments, when it is desired to, for example, optimize resource usage within the network, real application instances (rApps) can be downgraded to pseudo application instances (pApps). The upgrade of pseudo application instances (pApps) and / or the downgrade of real application instances (rApps) can occur via various methods. In one embodiment, the running instance can be stopped, and another desired instance can be started instead of the stopped instance. In other embodiments, in the case where the pApp specification includes, for example, a virtual machine (VM) / container image required to run the rApp, the upgrade process can be faster than normal rApp deployment because the rApp specification does not need to be downloaded. In another embodiment, at each pApp, the rApp instance can be prepared and stored in a suspended state. In this method, some memory can be consumed at the edge site, but not as much as the rApp usually requires, and computing / network bandwidth is not required when the rApp is stored in a suspended state. In this approach, the upgrade process is simply activating the prepared rApp instance, which can happen quickly. Downgrading a real application instance (rApp) to a pseudo application instance (pApp) can occur via a variety of similar methods.

[0049] As described above, in one or more embodiments, enhanced edge application deployment and processing within a network is provided. In one or more implementations, program code is provided for deploying edge applications as a collection of pseudo application instances (pApps) and one or more real application instances (rApps). For example, in one embodiment, a pseudo application instance of an edge application is deployed at each edge site of a first group of edge sites in a plurality of edge sites in a network, and a real application instance (rApp) of the application is deployed at each edge site of a second group of one or more edge sites in a plurality of edge sites, wherein the first group of edge sites is larger than the second group of edge sites. In one example, a pseudo application instance can be deployed at each edge site in a network, wherein real application instances are deployed only at selected edge sites.

[0050] Figure 3B Depicted Figure 2A-3A , where the network 100' includes multiple edge sites with associated cell towers 111 and edge site computing infrastructure 113. In the illustrated embodiment, each edge site has a pseudo application instance (pApp) or real application instance (rApp) for each of three different edge applications (App1, App2, App3). Figure 3B In the embodiment, pseudo application instances (pApps) are deployed at edge sites without corresponding real application instances (rApps). In one embodiment, each pseudo application instance (pApp) and real application instance (rApp) interfaces with appropriate core network components, a radio access network (RAN), and a database such as (IMS) as an example. As an example, a controller or orchestrator 310 at a higher-level control plane monitors the deployment of applications via deployment program code 311 so that the edge site has a pseudo application instance (pApp) or a real application instance (rApp) of the edge application.

[0051] In one or more embodiments, link performance measurements 320 are obtained (e.g., retrieved, received, obtained, etc.) and used by one or more aspects of the workflow disclosed herein. Link performance measurements (or measurements obtained by the telecommunications network) may include or use detailed information that has been collected by the network. For example, in one or more embodiments, TRAN metrics from an SDN controller may be referenced, for example, Quality of Service (QoS) management performed by a 5G core network (UE→AN→UPF) may be referenced, as well as existing end-to-end protocol measurements of QoS, such as RTP (voice calls), etc. Link QoS may be derived from network data, such as bandwidth usage, latency, jitter, and other time-varying parameters for each link.

[0052] As part of the deployment, a pseudo application instance (pApp) controller 330 is provided, for example, at one or more edge sites within the network 100' or remotely from the edge site (such as at one or more cloud-based computing facilities). More specifically, in one or more embodiments, the pApp controller 330 can be an extension of core and RAN components such as UPF. In one or more other embodiments, a single monolithic controller per monitoring area can be provided, etc. In another embodiment, the pApp controller can be implemented as a distributed microservice running on an edge cluster. In another embodiment, the controller can be an extension of Kubernetes, using, for example, an operator framework, a service mesh, and / or a multi-cluster manager, or other tools that allow multiple Kubernetes clusters to be managed from a single control plane.

[0053] In one embodiment, pApp controller 330 includes program code for facilitating switching of interactions between pseudo application instances 331, routing of connections of pseudo application instances (pApp) to appropriate real application instances (rApp) 332, and upgrading and / or downgrading of pseudo application instances (pApp) and / or real application instances (rApp) 333. In the depicted embodiment, orchestrator 310 may also include program code to facilitate upgrading and / or downgrading of pseudo application instances (pApp) and / or real application instances (rApp) 312 according to a desired implementation. As explained herein, a pseudo application instance such as pApp1 321 may include program code for facilitating selection of a routing connection to an appropriate real application instance (rApp) 322 and / or retrieving saved routing connection information based on, for example, previously determined routing connections for the pseudo application instance.

[0054] Figure 4A An embodiment of program code for deploying an edge application as a collection of pseudo application instances (pApps) and one or more real application instances (rApps) is depicted. As shown, an application deployment descriptor 400 is obtained (e.g., received). In one embodiment, the deployment descriptor 400 may include input from a development operator for the edge application being deployed. For example, the input obtained may include basic application data / information as well as desired quality of service (QoS) parameters, any application deployment constraints, and any pseudo application instance (pApp) thresholds. In one or more implementations, such as described herein, the information provided may affect, for example, how many real application instances (rApps) will run within a network, and / or when to switch between pApp resources and rApp resources. Figure 4A As shown, in one embodiment, an application deployment descriptor is used (or referenced) when generating a pseudo application instance or pApp resource 401 and a real application instance or rApp resource 402 for deployment within a network. In one embodiment, the pseudo application instance (pApp resource 401) is a lightweight application instance customized and configured for a specific application. Embodiments of the pseudo application instance (pApp) can be deployed using, for example, container technology, function as a service (FaaS) computing services, etc., and the real application instance (rApp) can be implemented using typical Kubernetes resources (such as services, deployments, pods, etc.).

[0055] Figure 4B Describes further details of an example of an edge application deployment workflow according to one or more embodiments of the present invention. As shown in the figure, in one embodiment, a development operator submits, for example, a real application instance (rApp) specification and configuration parameters 410, such as the above combined Figure 4AThe program code uses the received rApp specification and configuration parameters to derive a pseudo application instance (pApp) specification 412 and create a real application instance (rApp) deployment 414. In one or more embodiments, the derived pseudo application instance (pApp) specification is a lightweight application-specific instance for an rApp that has less application functionality than an rApp. The derived pseudo application instance (pApp) specification may be submitted 416 to the pseudo application controller 330 (see Figure 3B ). In one or more implementations, the pseudo-application controller 330 includes program code for creating a pseudo-application instance (pApp) deployment 418 and providing it to a desired edge site for a particular application. As discussed, in one or more embodiments, pseudo-application instances (pApp) are deployed to more network edge sites than real application instances (rApp). For example, applications with more usage can cause pApps to be deployed at, for example, each edge site of the network, while for applications with less usage, fewer pseudo-application instances (pApps) can be deployed across the network. Note that in one or more implementations, the pseudo-application controller can access data about the global state of the network, including, for example, the number and location of pseudo-application instances (pApps), the number and location of real application instances (rApps), and the degree of communication between pseudo-application instances (pApps) and real application instances (rApps).

[0056] like Figure 4B As shown, in one embodiment, the pseudo application instance controller 330 also includes a program code for establishing application routing information, for example, so as to facilitate the interaction or session of the user device with the application from the pseudo application instance (pApp) to the specified or selected real application instance (rApp). In one implementation, the routing can be from the pseudo application instance (pApp) to the real application instance (rApp) at the edge site closest to the edge site containing the pseudo application instance (pApp). In the embodiment shown, the pseudo application controller 330 also includes a program code for monitoring the pApp state 422 during operation, i.e., in the final use. For example, in one or more embodiments, the pseudo application controller can monitor various types of pseudo application instance (pApp) information, such as the number of connections, the data traffic flowing through the pApp, etc. The monitored pseudo application state data, such as described herein, can be used to facilitate, for example, the routing of connections, the switching of terminal user interactions or sessions from one pseudo application instance (pApp) to another, and the upgrading of pseudo application instances (pApp) and / or the degradation of real application instances (rApp).

[0057] As described above, the monitoring of pseudo-application states may be further facilitated using various types of information already collected by networks such as existing cellular networks. For example, quality of service (QoS) data may be monitored via insights gained from data collected from the network such as bandwidth data, latency data, jitter data, and other time-varying parameters. Example embodiments may include TRAN metrics from an SDN controller, QoS management by the 5G core, and other end-to-end protocol measurements such as RTP (voice calls).

[0058] Figure 5A An example of an interactive handover workflow from one pseudo application instance (pApp) of a network to another pseudo application instance (pApp) according to one or more embodiments of the present invention is shown. In one embodiment, the network detects that the end user is moving from the cell tower of the current edge site to the cell tower at the new edge site 500. Based on the detection that the end user (or more specifically, the end user device that enables the user device to interact or converse with the application) is moving away from the current cell tower, in one embodiment, (one or more) radio access networks begin to switch information 502 sent to the current (or local) pseudo application instance (pApp). For example, information about the exit of the end user from the current edge site can include the end of a stateful connection, an indication to ignore new incoming connections from the end user, an optional shutdown of the pseudo application instance (pApp) at the current location (e.g., based on a predefined policy for the application), etc. In addition, the process can optionally wait for a new pseudo application handover state 504 to occur. Once the radio access network (RAN) handover is completed, the user equipment (or user device) is connected to the user plane function (UPF) at the new edge site 506.

[0059] At the new edge site, the program code determines whether a pseudo application instance (pApp) already exists at that site 508, and if not, if not already exists, a new pseudo application instance (pApp) is created or generated for the edge site 510. Once a local pApp is identified or created for the new edge site, the user plane function (UPF) is configured to redirect end-user interactions with the application to the local pseudo application instance (pApp) at the new edge site 512. UPF rules may be updated to successfully route user device interactions with the application, and optionally, the pseudo application instance (pApp) may be reconfigured for additional load based on defined policies, and / or the real application instance (rApp) connected to the new pseudo application instance (pApp) may be updated.

[0060] Figure 5B An embodiment of the interaction between a user device and edge applications deployed at multiple edge sites of a network 100' as described herein is depicted. Figure 5BIn the embodiment shown, multiple edge sites are described by way of example, each edge site having a corresponding cell tower 111 and edge site infrastructure 113 as described herein. In the illustrated embodiment, the edge site infrastructure 113 includes or runs a pseudo application instance (pApp) of an edge application, as described herein, wherein one of the edge sites also includes a real application instance (rApp) of the application. A user equipment (UE) 101, such as a wireless user equipment, is a mobile device 520, wherein the user equipment is connected 521 to the network via the nearest cell tower 111. The cell tower 111 and the radio access network (RAN) negotiate the parameters of the connection 522. In one embodiment, the user connects to a gNb (next generation node b) in a 5G cellular network. The RAN also has edge resources (e.g., a Kubernetes cluster) capable of hosting services. The control unit of the RAN has information detailing the connected user equipment (user mobile device) and the application being accessed. The control unit of the RAN passes this to the core network, where the SMF maintains the session with the help of the policies defined in the PFC and triggers a control request to deploy the pseudo application instance (pApp) to the edge site if the pApp does not already exist on site. More specifically, in one embodiment, a core network, such as a 5G core network, establishes a session 523 for a user equipment (UE) based on user parameters. Further, in one embodiment, a data path 524 is established for the user equipment (UE) via a user plane function (UPF) instance, and the user equipment (UE) receives an IP address. In one or more implementations, the UPF forwards 525 a connection for a desired edge application (e.g., App1) to a local pseudo application instance (pApp). As shown, the local pseudo application instance (pApp) then forwards 526 the user device interaction or session to a configured real application instance (rApp), where Figure 5B In an example of , the real application instance (rApp) runs on another edge site infrastructure (as an example). In one embodiment, the pseudo application instance (pApp) and real application instance (rApp) discovery process can be facilitated by the core (UDR), which maintains a list of rApps and pApps at different gNbs and / or at cloud-based computing locations. This information can be passed to the gNb / RAN and can be maintained by the control unit of the RAN. Through the RAN to RAN connection, or via the core (UPF), the end-user request can be routed (routed and forwarded) to the appropriate real application instance (rApp) that can serve the request.

[0061] Figure 5C Further description is given according to one or more embodiments of the present invention. Figure 5B, and illustrates the switching of user device interactions from one pseudo application instance (pApp) at one edge site to another pseudo application instance (pApp) at another edge site. As shown, the user equipment (UE) 101 or the end user's device moves 520 according to the end user's mobility. As a result of the movement, the user equipment (UE) automatically reconnects 531 to the nearest network cell tower with the strongest signal. The radio access network (RAN) negotiates 532 the switching of the user-device connection between the two cell towers, and the network core readjusts the user device session 533. For example, a new user plane function (UPF) can be selected for routing the connection. For any existing connection, a switch 534 from the pseudo application instance (pApp) to the pseudo application instance (pApp) is triggered, and any state information required for the end user's access is transmitted to the edge application. As described above, a new pseudo application instance (pApp) may need to be created for the new edge site infrastructure to accommodate the transmission. The new connection 535 from the end user is then routed from the local user plane function (UPF) to the local pseudo application instance (pApp), and the previous connection 525 is also Figure 5B As previously described, the new pseudo application instance (pApp) at the current edge site infrastructure routes the connection 536 to the real application instance (rApp). Note that in Figure 5C In the example of , the user device interaction is routed to the same real application instance (rApp) as in the previous flow just as an example. It is not necessary that the pseudo application instance (pApp) on this new edge site infrastructure routes to the same real application instance (rApp). The real application instance (rApp) routed to can depend on the network conditions and status, the distances involved, etc.

[0062] In one or more embodiments, a pseudo application instance (pApp) controller maintains a database with data tracking, which edge sites or edge site infrastructures are currently running real application instances (rApps) and which are running pseudo application instances (pApps) for each application in one or more edge applications deployed in the network. Based on latency, performance, and load, each pseudo application instance (pApp) can forward end-user requests to one or more real application instances (rApps). Various routing strategies can be used. For example, in one embodiment, each pseudo application instance (pApp) can be statically linked to one or more real application instances (rApps), where each request received by the pseudo application instance (pApp) is forwarded to one of the real application instances (rApp) in the link set. This can be used in scenarios where edge sites form islands, in which case it is best to connect or route end-user requests to nearby real application instances (rApp). In another embodiment, the system can be configured so that the pseudo application instance (pApp) determines the real application instance (rApp) to route user requests at runtime using, for example, load, performance, and latency metrics available to the pseudo application instance (pApp) and / or pApp controller. The best real application instance (rApp) based on performance can be selected to forward the end-user request. This approach can be advantageous in situations where there is a dense mesh formed by edge sites, and current telemetry gives the best results about overall request latency, performance, etc. Note that in the case of 5G cellular networks, in the case of 5G slicing, the routing of requests can be per-slice.

[0063] Figure 6An example of routing an application request from a pseudo application instance (pApp) to a real application instance (rApp) according to one or more embodiments of the present invention is shown. The depicted routing workflow depends on whether the pseudo application instance (pApp) is a newly created pApp or a pApp with an existing end-user connection. Assuming that the pseudo application instance (pApp) is newly created for a new end-user connection 600, a new end-user request for the application is received 602, and a process determines whether it has been routed to one or more real application instances (rApps) that have been loaded 604. If not, the pseudo application instance (pApp) is connected to the pApp controller for the latest state and real application instance (rApp) information 606, which allows the pseudo application instance (pApp) to select the appropriate upstream real application instance (rApp) of the edge application and forward the end-user connection to the rApp 608. The selected rApp routing connection is then saved as local routing information 610 for the pseudo application instance (pApp). Assuming there is an existing end-user connection 612, the stored local routing information is accessed to allow the end-user request for the edge application to be forwarded to the real application instance (rApp).

[0064] As described above, in a further example, according to one or more embodiments of the present invention, edge application deployment and processing may include the upgrade of pseudo application instances (pApp) and / or the downgrade of real application instances (rApp). Pseudo application instances (pApp) may be deployed based on one or more policies. For example, as a policy, the first deployment of an edge application may always be a pseudo application instance (pApp). In addition, whenever the potential use of an application at an edge site is predicted, a pseudo application instance (pApp) may be generated at the edge site infrastructure. In another strategy, public or heavily used pseudo application instances (pAPP) may be initially or preemptively deployed on all edge sites of the network, even before receiving an end-user request.

[0065] In one or more embodiments, policies may be defined to determine when to upgrade a pseudo application instance (pApp) to a real application instance (rApp) at one or more edge sites of a network. For example, based on the number of end-user requests, user workload, and / or resources available at an edge site or a nearby edge site (based on a measurable policy base metric), a pseudo application instance (pApp) may be upgraded to a real application instance (rApp). Once upgraded, the pseudo application instance (pApp) controller database may be updated accordingly for the availability of the new real application instance (rApp), so that the edge site may process end-user requests to the edge site, as well as end-user requests received from other edge sites when needed. Another policy option is to specify a global view, where, for example, linear programming / constraint satisfaction / machine learning is used to maximize user quality of service (QoS) based on current business while satisfying resource constraints on the cluster.

[0066] By further example, in one or more embodiments, a pseudo application instance (pApp) can be upgraded to a real application instance (rApp) via a control unit having an implemented module that accesses and classifies the load of different types of services. Using the function f (configuration parameters + threshold + resource availability) at the radio access network (RAN) / edge, a request for pApp to rApp upgrade can be generated. In one embodiment, the PFC determines whether the request can be served based on the implemented policy. If so, a signal is sent to the radio access network (RAN) control unit to orchestrate the rApp on the edge (the RAN / edge has a device for orchestrating services, including the required repository / image / data, or this can be passed to the RAN by the core). Once the rApp is deployed, the pApp can be deactivated and other adjacent gNbs and the core can be notified of the new real application instance (rApp). The core and other gNbs update their lists and connection information for any subsequent switching requests.

[0067] Similarly, downgrading a real application instance (rApp) to a pseudo application instance (pApp) can be based on one or more specified policies. For example, the downgrade can be based on measured telemetry. For example, if the number of requests received by an edge site drops below a certain threshold, the real application instance (rApp) on the site can be downgraded to a pseudo application instance (pApp) in order to save resources. In another approach, a weighted combination of parameters can be used to determine a formula that controls when a real application instance (rApp) is downgraded to a pseudo application instance (pApp). As described above, downgrading a real application instance (rApp) to a pseudo application instance (pApp) advantageously saves resources because a pApp is a lightweight, application-specific instance of an rApp that has fewer application functions than an rApp and therefore requires fewer resources to execute.

[0068] More specifically, in one or more implementations, a real application instance (rApp) can be downgraded to a pseudo application instance (pApp) via a control unit having a program code module that accesses and classifies the load of different types of services employed. Using a function f (configuration parameters + resource availability) at the radio access network (RAN) / edge, a request for rApp to pApp downgrade can be generated. Based on generating the request, the PCF can determine whether the request can be served based on the implemented policy. If so, a signal is sent to the RAN control unit to remove the rApp on the edge site and coordinate the pApp instantiation. Once the pApp is running, other neighboring gNbs and the core can be notified of the new pApp deployment. The core and other gNbs update their lists and connection information for any subsequent switching requests.

[0069] Figure 7 An example of an application instance upgrade / downgrade workflow according to one or more embodiments of the present invention is described. With the system running 700, pseudo application instances (pApps) and pAppp controllers deployed on edge sites monitor the state of the system 702 to control the upgrade or downgrade of application instances based on system performance. For example, in the event that the monitored end-user request business at a particular pseudo application instance (pApp) exceeds a specified threshold 704, the pseudo application instance (pApp) may be upgraded to a real application instance (rApp) 706. In one embodiment, this may include adding a new real application instance (rApp) at an edge site, leaving the pseudo application instance (pApp) in the workflow so that the edge site has a pseudo application instance (pApp) and a real application instance (rApp) of the edge application.

[0070] Furthermore, in one or more embodiments, the total traffic of real application instances (rApps) may be monitored, and when it is determined that the traffic exceeds a specified threshold 708, a collection of one or more pseudo application instances (pApps) may be upgraded to real application instances (rApps) based on the monitored traffic and the location of the selected pseudo application instances (pApps) within the system.

[0071] Furthermore, in one or more embodiments, traffic at real application instances (rApps) may be monitored, and if traffic at a particular real application instance (rApp) drops below a specified threshold 712, the real application instance (rApp) may be downgraded to a pseudo application instance (pApp) of an edge application to run on a particular edge site.

[0072] Other variations and embodiments are possible.

[0073] Input counterfactual data (associated with machine learning model training) according to one or more embodiments of the present invention can be incorporated into and used in many computing environments. Figure 8 An example computing environment is described. As an example, the computing environment is based on the IBM 3000 provided by International Business Machines Corporation in Armonk, New York. Hardware architecture. However, the z / Architecture hardware architecture is only an example architecture. The computing environment can also be based on other architectures, including but not limited to the Intel X86 architecture, other architectures of International Business Machines Corporation, and / or architectures of other companies.

[0074] like Figure 8 As shown, computing environment 800 includes, for example, a computer system 802, which is shown in the form of a general-purpose computing device. Computer system 802 may include, but is not limited to, one or more processors or processing units 804 (e.g., central processing units (CPUs)) coupled to each other via one or more buses and / or other connections, memory 806 (also referred to as system memory, main memory, main storage, central storage, or storage, as examples), and one or more input / output (I / O) interfaces 808. For example, processor 804 and memory 806 are coupled to I / O interface 808 via one or more buses 810, and processors 804 are coupled to each other via one or more buses 811.

[0075] Bus 811 is, for example, a memory or cache coherent bus, and bus 810 represents, for example, one or more of any 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, these architectures include Industry Standard Architecture (ISA), Micro Channel Architecture (MCA), Enhanced ISA (EISA), Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI).

[0076] As an example, one or more special purpose processors (eg, adjunct processors) may be separate from but coupled to and / or embedded within one or more general purpose processors. Variations are possible.

[0077] The memory 806 may include, for example, a cache 812, such as a shared cache, which may be coupled to a local cache 814 of the processor 804 via, for example, one or more buses 810. In addition, the memory 806 may include one or more programs or applications 816, at least one operating system 818, one or more computer-readable program instructions 820, and one or more controllers / coordinators 822 that deploy one or more services 821. The computer-readable program instructions 820 and / or the controller / coordinator 822 may be configured to perform or facilitate the functions of embodiments of the present invention.

[0078] The computer system 802 may communicate with one or more external devices 830, such as a user terminal, a tape drive, a pointing device, a display, and one or more data storage devices 834, etc., via, for example, an I / O interface 808. The data storage device 834 may store one or more programs 836, one or more computer-readable program instructions 838, and / or data, etc. The computer-readable program instructions may be configured to perform the functions of embodiments of aspects of the present invention.

[0079] The computer system 802 may also communicate via, for example, the I / O interface 808 with a network interface 832, which enables the computer system 802 to 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), thereby providing communications with other computing devices or systems.

[0080] The computer system 802 may include and / or be coupled to removable / non-removable, volatile / non-volatile computer system storage media. For example, it may include and / or be coupled to a non-removable, non-volatile magnetic medium (commonly referred to as a "hard drive"), a disk drive for reading from and writing to a removable, non-volatile disk (e.g., a "floppy disk"), and / or an optical drive for reading from or writing to a removable, non-volatile optical disk (such as a CD-ROM, DVD-ROM, or other optical media). It should be understood that other hardware and / or software components may be used in conjunction with the computer system 802. Examples include, but are not limited to, microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archival storage systems, etc.

[0081] The computer system 802 may be operated with many other general or special purpose computing system environments or configurations. Examples of well-known computing systems, environments, and / or configurations suitable for use with the computer system 802 include, but are not limited to, personal computer (PC) systems, server computer systems, thin clients, fat clients, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing environments including any of the above systems or devices, etc.

[0082] refer to Fig. 9A Another embodiment of a computing environment in which one or more aspects of the present invention may be incorporated and used is described. In this example, the computing environment 900 includes, for example, a local central processing unit (CPU) 912, a memory 914, and one or more input / output devices and / or interfaces 916 coupled to each other via, for example, one or more buses 918 and / or other connections. As an example, the computing environment 910 may include a processor provided by International Business Machines Corporation of Armonk, New York. processors; HP Superdome with Intel Itanium II processors from Hewlett Packard Company of Palo Alto, California; and / or other machines based on architectures provided by International Business Machines Corporation, Hewlett Packard, Intel Corporation, Oracle, or others. PowerPC is a trademark or registered trademark of International Business Machines Corporation in at least one jurisdiction. Intel and Itanium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the U.S. and other countries.

[0083] The local central processing unit 912 includes one or more local registers 920, such as one or more general purpose registers and / or one or more special purpose registers used during processing within the environment. These registers include information representative of the state of the environment at any particular point in time.

[0084] In addition, the local central processing unit 912 executes instructions and codes stored in the memory 914. In a specific example, the central processing unit executes emulator code 922 stored in the memory 914. The code enables a computing environment configured in one architecture to emulate another architecture. For example, the emulator code 922 allows a machine based on an architecture other than the z / Architecture hardware architecture, such as a PowerPC processor, an HP Superdome server, or others, to emulate the z / Architecture hardware architecture and execute software and instructions developed based on the z / Architecture hardware architecture.

[0085] refer to Fig. 9B Describe the further details related to the emulator code 922. The client instructions 930 stored in the memory 914 include software instructions (e.g., related to machine instructions) developed to be executed in the architecture other than the architecture of the native CPU 912. For example, the client instructions 930 can be designed to be executed on a processor based on the z / architecture hardware architecture, but alternatively, be simulated on the native CPU 912, which can be, for example, an Intel Itanium II processor. In one example, the emulator code 922 includes an instruction fetch routine 932 to obtain one or more client instructions 930 from the memory 914, and optionally provide local buffering for the obtained instructions. It also includes an instruction conversion routine 934 to determine the type of the client instructions obtained, and the client instructions are converted into one or more corresponding native instructions 936. This conversion includes, for example, identifying the function to be executed by the client instruction and selecting (one or more) native instructions to perform the function.

[0086] In addition, the emulator code 922 includes an emulation control routine 940 to enable execution of native instructions. The emulation control routine 940 can cause the native CPU 912 to execute a routine of native instructions that emulates one or more previously acquired guest instructions, and at the end of such execution, returns control to the instruction acquisition routine to emulate the acquisition of the next guest instruction or a group of guest instructions. Executing the native instruction 936 may include loading data from the memory 914 into a register; storing data from a register back to the memory; or performing some type of arithmetic or logical operation determined by the conversion routine.

[0087] For example, each routine is implemented in software, which is stored in memory and executed by the local central processing unit 912. In other examples, one or more of the routines or operations are implemented in firmware, hardware, software, or some combination thereof. Registers of the simulated processor can be simulated using registers 920 of the native CPU or by using locations in memory 914. In an embodiment, client instructions 930, native instructions 936, and emulator code 922 can reside in the same memory or can be distributed between different memory devices.

[0088] In addition, in one embodiment, the computing environment 910 includes one or more reasoning accelerators 915 coupled to the memory 914. The one or more accelerators are defined in one architecture and configured to emulate another architecture. For example, the accelerator obtains a guest command of the emulated architecture, converts the guest command into a native command of an architecture, and executes the native command.

[0089] The above computing environments are merely examples of computing environments that may be used. Other environments may be used, including, but not limited to, non-partitioned environments, partitioned environments, virtual environments, cloud environments, and / or simulated environments; embodiments are not limited to any one environment. Although various examples of computing environments are described herein, one or more aspects of the present invention may be used with many types of environments. The computing environments provided herein are merely examples.

[0090] Each computing environment can be configured to include one or more aspects of the present invention. For example, each can be configured to optimize container deployment for a given deployment environment and / or perform one or more other aspects of the present invention.

[0091] Although various embodiments are described herein, many variations and other embodiments are possible without departing from the spirit of the various aspects of the invention. It should be noted that each aspect or feature and variations thereof described herein may be combined with any other aspect or feature unless otherwise stated.

[0092] One or more aspects may relate to cloud computing.

[0093] It should be understood that although the present disclosure includes detailed descriptions about cloud computing, the implementation of the teachings set forth herein is not limited to cloud computing environments. Instead, embodiments of the present invention can be implemented in conjunction with any other type of computing environment now known or later developed.

[0094] 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 quickly provisioned and released with minimal management effort or interaction with the provider of the service. The cloud model may include at least five characteristics, at least three service models, and at least four deployment models.

[0095] Features are as follows:

[0096] On-demand self-service: Cloud consumers can unilaterally and automatically provision computing capabilities, such as server time and network storage, as needed without requiring manual interaction with the service provider.

[0097] Broad Network Access: Capabilities are available over the network and accessed through standard mechanisms that facilitate use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).

[0098] Resource pooling: A provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, where different physical and virtual resources are dynamically allocated and reallocated based on demand. There is location independence in the sense that consumers typically do not control or know the exact location of the provided resources, but are able to specify the location at a higher level of abstraction (e.g., country, state, or data center).

[0099] Rapid elasticity: Capabilities can be provisioned quickly and elastically, in some cases automatically, to scale up quickly and release quickly to scale down quickly. To the consumer, the capabilities available for provisioning often appear to be unlimited and can be purchased in any quantity at any time.

[0100] Measurable services: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities 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, providing transparency to both the provider and the consumer utilizing the service.

[0101] The service model is as follows:

[0102] Software as a Service (SaaS): The capability provided to the consumer is to use the provider's applications running on the 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.

[0103] Platform as a Service (PaaS): The capability provided to consumers is to deploy consumer-created or acquired applications onto cloud infrastructure, where the applications are created using programming languages ​​and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure including networks, servers, operating systems, or storage, but has control over the deployed applications and possible configuration of the application hosting environment.

[0104] Infrastructure as a Service (IaaS): The capabilities provided to consumers are processing, storage, networking, and other basic computing resources on which consumers can deploy and run arbitrary software, which may include operating systems and applications. Consumers do not manage or control the underlying cloud infrastructure, but have control over the operating system, storage, deployed applications, and possibly limited control over selected networking components (e.g., host firewalls).

[0105] The deployment model is as follows:

[0106] Private Cloud: The cloud infrastructure is operated only for the organization. It can be managed by the organization or a third party and can exist on-premises or off-premises.

[0107] Community cloud: The cloud infrastructure is shared by several organizations and supports a specific community with shared concerns (e.g., mission, security requirements, policies, and compliance considerations). It can be managed by the organization or a third party and can exist on-premises or off-premises.

[0108] Public cloud: Cloud infrastructure is available to the general public or large industrial groups and is owned by an organization that sells cloud services.

[0109] Hybrid cloud: A cloud infrastructure is a combination of two or more clouds (private, community, or public) that remain unique entities but are bound together by standardized or proprietary technologies that enable data and application portability (e.g., cloud bursting for load balancing between clouds).

[0110] The cloud computing environment is service-oriented, with a focus on statelessness, low coupling, modularity, and semantic interoperability. At the core of cloud computing is an infrastructure consisting of a network of interconnected nodes.

[0111] Reference now Fig.10, depicts an illustrative cloud computing environment 50. As shown, the cloud computing environment 50 includes one or more cloud computing nodes 52 with which a local computing device used by a cloud consumer can communicate, such as a personal digital assistant (PDA) or cellular phone 54A, a desktop computer 54B, a laptop computer 54C, and / or an automobile computer system 54N. The nodes 52 can communicate with each other. They can be grouped physically or virtually in one or more networks, such as a private cloud, community cloud, public cloud, or hybrid cloud, or a combination thereof, as described above (not shown). This allows the cloud computing environment 50 to provide infrastructure, platform, and / or software as a service for which the cloud consumer does not need to maintain resources on a local computing device. It should be understood that Fig.10 The types of computing devices 54A-N shown in are intended to be illustrative only, and computing nodes 52 and cloud computing environment 50 may communicate with any type of computerized device over any type of network and / or network addressable connection (eg, using a web browser).

[0112] Reference now Fig.11 , showing the cloud computing environment 50 ( Fig.10 ) provides a set of functional abstraction layers. It should be understood in advance that Fig.11 The components, layers, and functions shown in are intended to be illustrative only, and embodiments of the present invention are not limited thereto. As depicted, the following layers and corresponding functions are provided:

[0113] The hardware and software layer 60 includes hardware and software components. Examples of hardware components include: host 61; server 62 based on RISC (Reduced Instruction Set Computer) architecture; server 63; blade server 64; storage device 65; and network and network components 66. In some embodiments, software components include network application server software 67 and database software 68.

[0114] Virtualization layer 70 provides an abstraction layer from which the following examples of virtual entities can be provided: virtual servers 71; virtual storage 72; virtual networks 73, including virtual private networks; virtual applications and operating systems 74; and virtual clients 75.

[0115] In one example, the management layer 80 may provide the functionality described below. Resource provisioning 81 provides dynamic procurement of computing resources and other resources for performing tasks within a cloud computing environment. Metering and pricing 82 provides cost tracking when resources are utilized in a cloud computing environment, as well as invoicing or invoicing for consumption of these resources. In one example, these resources may include application software licenses. Security provides authentication for cloud consumers and tasks, as well as protection for data and other resources. User portal 83 provides access to the cloud computing environment for consumers and system administrators. Service level management 84 provides cloud computing resource allocation and management so that the required service levels are met. Service level agreement (SLA) planning and fulfillment 85 provides pre-scheduling and procurement of cloud computing resources, where future demand is anticipated based on the SLA.

[0116] The workload layer 90 provides examples of functions that can take advantage of a cloud computing environment. Examples of workloads and functions that can be provided from this layer include: mapping and navigation 91; software development and lifecycle management 92; virtual classroom education delivery 93; data analysis processing 94; transaction processing 95; and edge application deployment processing 96.

[0117] Aspects of the present invention may be systems, methods and / or computer program products at any possible level of technical detail integration. A computer program product may include a computer-readable storage medium (or multiple media) having computer-readable program instructions thereon, the computer-readable program instructions being used to cause a processor to perform aspects of the present invention.

[0118] A computer-readable storage medium may be a tangible device capable of retaining and storing instructions used by an instruction execution device. A computer-readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanical encoding device such as a punch card or a raised structure in a groove on which instructions are recorded, and any suitable combination of the foregoing. As used herein, a computer-readable storage medium should not be interpreted as a temporary signal itself, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagated by a waveguide or other transmission medium (e.g., a light pulse by an optical fiber cable), or an electrical signal transmitted by a wire.

[0119] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a corresponding computing / processing device, or downloaded 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 can include copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The 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 be stored in a computer-readable storage medium within the corresponding computing / processing device.

[0120] The computer-readable program instructions for performing the operation of the present invention may be assembly instructions, instruction set architecture (ISA) instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, configuration data of an integrated circuit, or source code or object code written in any combination of one or more programming languages ​​(including object-oriented programming languages, such as Smalltalk, C++, etc.) and procedural programming languages ​​(such as "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, executed as an independent software package, partially on the user's computer and partially on a remote computer, or completely on a remote computer or server. In the latter case, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., using an Internet service provider via the Internet). In some embodiments, in order to perform various aspects of the present invention, an electronic circuit including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA) may execute a computer-readable program instruction by utilizing the state information of the computer-readable program instructions to personalize the electronic circuit.

[0121] Various aspects of the present invention are described herein with reference to the flowchart and / or block diagram of the method, device (system) and computer program product according to embodiments of the present invention. It will be understood that each frame of the flowchart and / or block diagram and the combination of frames in the flowchart and / or block diagram can be implemented by computer-readable program instructions.

[0122] These computer-readable program instructions can be provided to a processor of a computer or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device create a device for implementing the functions / actions specified in one or more boxes of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium, which can guide the computer, programmable data processing device and / or other equipment to work in a specific manner, so that the computer-readable storage medium having the instructions stored therein includes an article of manufacture, which includes instructions for implementing various aspects of the functions / actions specified in one or more boxes of the flowchart and / or block diagram.

[0123] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device, so that a series of operational steps are performed on the computer, other programmable apparatus, or other device to produce a computer-implemented process, so that the instructions executed on the computer, other programmable apparatus, or other device implement the functions / actions specified in one or more boxes of the flowchart and / or block diagram.

[0124] Flowcharts and block diagrams in the accompanying drawings show the possible architecture, function and operation of the system, method and computer program product according to various embodiments of the present invention.In this regard, each frame in the flow chart or block diagram can represent a module, segment or part of an instruction, which includes one or more executable instructions for realizing the specified logical function.In some alternative embodiments, the function noted in the frame may not occur in the order noted in the figure.For example, two frames shown continuously can actually be implemented as a step, and are performed simultaneously, substantially simultaneously, in a partially or entirely time-overlapping manner, or these frames can sometimes be performed in reverse order, depending on the function involved.It will also be noted that the combination of the frames in each frame of the block diagram and / or flow chart illustration and the block diagram and / or flow chart illustration can be implemented by a dedicated hardware-based system that performs a specified function or action or performs a combination of special-purpose hardware and computer instructions.

[0125] In addition to the above, one or more aspects may be provided, issued, deployed, managed, serviced, etc. by a service provider that provides management of the customer environment. For example, a service provider may create, maintain, support, etc. computer code and / or computer infrastructure that performs one or more aspects for one or more customers. In return, the service provider may receive payment from the customer, for example, under a subscription and / or fee agreement. Additionally or alternatively, the service provider may receive payment from the sale of advertising content to one or more third parties.

[0126] In one aspect, an application may be deployed to perform one or more embodiments. As an example, deployment of an application includes providing a computer infrastructure operable to perform one or more embodiments.

[0127] As another aspect, a computing infrastructure may be deployed including integrating computer readable code into a computing system, wherein the code in combination with the computing system is capable of performing one or more embodiments.

[0128] As another aspect, a process for integrating computing infrastructure can be provided, comprising integrating computer readable code into a computer system. The computer system includes a computer readable medium, wherein the computer medium includes one or more embodiments. The code combined with the computer system can execute one or more embodiments.

[0129] Although various embodiments are described above, these are merely examples. For example, additional, fewer, and / or other deployment features, as well as various changes in processing logic, may be considered. Many changes are possible.

[0130] Various aspects are described herein. In addition, many variations are possible without departing from the spirit of various aspects of the present invention. It should be noted that, unless otherwise inconsistent, each aspect or feature and variations thereof described and / or claimed herein may be combined with any other aspect or feature.

[0131] In addition, other types of computing environments can also benefit and be used.As an example, a data processing system suitable for storing and / or executing program code is available, which comprises at least two processors directly or indirectly coupled to a memory element by a system bus.The memory element comprises a local memory, a large-capacity storage device and a cache memory, for example, adopted during the actual execution of the program code, and the cache memory provides the temporary storage of at least some program codes so as to reduce the number of times during execution that must retrieve code from the large-capacity storage device.

[0132] Input / output or I / O devices (including but not limited to keyboards, displays, pointing devices, DASD, tapes, CDs, DVDs, thumb drives and other storage media, etc.) can be coupled to the system either directly or through intervening I / O controllers. Network adapters may also be coupled to the system to enable the data processing system to be coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the available types of network adapters.

[0133] The terms used herein are for the purpose of describing specific embodiments only and are not intended to be limiting. As used herein, the singular forms "a", "an", and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the terms "comprises" and / or "comprising", when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.

[0134] If present, the corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements specifically claimed. The description of one or more embodiments has been presented for the purposes of illustration and description, but the description is not intended to be exhaustive or limited to the disclosed forms. Many modifications and variations will be apparent to those of ordinary skill in the art. The embodiments are selected and described in order to best explain the various aspects and practical applications, and to enable others of ordinary skill in the art to understand the various embodiments with various modifications suitable for the particular use contemplated.

Claims

1. A computer program product for facilitating processing within a computing environment, the computer program product comprising: One or more computer-readable storage media and program instructions contained therein, the program instructions being readable by a processing circuit to cause the processing circuit to perform a method comprising: Performing edge application deployment in a network including a plurality of edge sites having edge computing infrastructure, the performing comprising: Deploy a pseudo application instance pApp of the edge application at each edge site of a first group of edge sites among the plurality of edge sites; and A real application instance rApp of the edge application is deployed at each edge site of a second group of one or more edge sites among the multiple edge sites, wherein the pApp is a lightweight application-specific instance of the rApp having less application functionality than the rApp, the first group of edge sites is larger than the second group, and user device interaction with the edge application is through the selected pApp in the first group of edge sites to the rApp in the second group.

2. The computer program product according to claim 1, wherein: The first group of edge sites includes the plurality of edge sites.

3. The computer program product according to claim 1 or 2, wherein: The network is a cellular network, and the method further includes switching the user device interaction with the application from the selected pApp of the first set of edge sites to another pApp of the first set of edge sites based on user device movement.

4. The computer program product according to any one of the preceding claims, further comprising: The rApps of the second set are selected by the selected pApp for servicing the user device interaction at runtime using the one or more determined performance metrics.

5. The computer program product according to any one of the preceding claims, further comprising: Based on the one or more monitored policy-based metrics, the pApps of edge sites in the first set of edge sites are upgraded to rApps at runtime.

6. The computer program product according to any one of the preceding claims, further comprising: Based on the one or more monitored policy-based metrics, rApps of edge sites in the second group are downgraded to pApps at runtime.

7. A computer program product according to any one of the preceding claims, wherein: Edge application deployment is performed via one or more container orchestrators.

8. A computer-implemented method comprising: Performing edge application deployment in a network including a plurality of edge sites having edge computing infrastructure, the performing comprising: Deploy a pseudo application instance pApp of the edge application at each edge site of a first group of edge sites among the plurality of edge sites; and A real application instance rApp of the edge application is deployed at each edge site of a second group of one or more edge sites among the multiple edge sites, wherein the pApp is a lightweight application-specific instance of the rApp having less application functionality than the rApp, the first group of edge sites is larger than the second group, and user device interaction with the edge application is through the selected pApp in the first group of edge sites to the rApp in the second group.

9. The computer-implemented method of claim 8, wherein: The first group of edge sites includes the plurality of edge sites.

10. The computer-implemented method of claim 8 or 9, wherein: The network is a cellular network, and the method further includes switching the user device interaction with the application from the selected pApp of the first set of edge sites to another pApp of the first set of edge sites based on user device movement.

11. The computer-implemented method according to any one of claims 8 to 10, further comprising: The rApps of the second set are selected by the selected pApp for servicing the user device interaction at runtime using the one or more determined performance metrics.

12. The computer-implemented method of any one of claims 8 to 11, further comprising: Based on the one or more monitored policy-based metrics, the pApps of edge sites in the first set of edge sites are upgraded to rApps at runtime.

13. The computer-implemented method of any one of claims 8 to 12, further comprising: Based on the one or more monitored policy-based metrics, rApps of edge sites in the second group are downgraded to pApps at runtime.

14. A computer-implemented method according to any one of claims 8 to 13, wherein: The execution edge application deployment is via one or more container orchestrators.

15. A computer system for facilitating processing within a computing environment, the computer system comprising: Memory; as well as at least one processor in communication with the memory, wherein the computer system is configured to perform a method comprising: Performing edge application deployment in a network including a plurality of edge sites having edge computing infrastructure, the performing comprising: Deploy a pseudo application instance pApp of the edge application at each edge site of a first group of edge sites among the plurality of edge sites; and A real application instance rApp of the edge application is deployed at each edge site of a second group of one or more edge sites among the multiple edge sites, wherein the pApp is a lightweight application-specific instance of the rApp having less application functionality than the rApp, the first group of edge sites is larger than the second group, and user device interaction with the edge application is through the selected pApp in the first group of edge sites to the rApp in the second group.

16. The computer system of claim 15, wherein: The first group of edge sites includes the plurality of edge sites.

17. The computer system according to claim 15 or 16, wherein: The network is a cellular network, and the method further includes switching the user device interaction with the application from the selected pApp of the first set of edge sites to another pApp of the first set of edge sites based on user device movement.

18. The computer system according to any one of claims 15 to 17, further comprising: The rApps of the second set are selected by the selected pApp for servicing the user device interaction at runtime using the one or more determined performance metrics.

19. The computer system according to any one of claims 15 to 18, further comprising: Based on the one or more monitored policy-based metrics, pApps of edge sites in the first set of edge sites are upgraded to rApps at runtime.

20. The computer system according to any one of claims 15 to 19, further comprising: Based on the one or more monitored policy-based metrics, rApps of edge sites in the second group are downgraded to pApps at runtime.

21. A computer program comprising program code means adapted to perform the method according to any one of claims 8 to 14 when said program is run on a computer.