Edge application deployment and processing

A two-tiered edge application deployment with pseudo and real instances addresses QoS and resource optimization challenges in cellular networks, enhancing latency reduction and resource management through dynamic routing and mobility support.

JP2025526278APending Publication Date: 2025-08-13INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025500315
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-07-18
Filing Date
2023-07-04
Publication Date
2025-08-13

AI Technical Summary

Technical Problem

Current edge application deployment and processing approaches in cellular networks face challenges in balancing quality of service (QoS) with resource optimization due to dynamic network loads and user mobility, leading to increased latency and resource constraints.

Method used

Implementing a two-tiered edge application deployment strategy with pseudo application instances (pApps) and real application instances (rApps), where pApps are lightweight and deployed across multiple edge sites, routing user interactions to rApps as needed, and enabling seamless mobility and resource management.

Benefits of technology

This approach enhances QoS by minimizing latency and resource overhead, optimizing network traffic, and ensuring seamless user experience despite dynamic network conditions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025526278000001_ABST
    Figure 2025526278000001_ABST
Patent Text Reader

Abstract

An edge application deployment method is provided within a network. The network includes a plurality of edge sites having an edge computing infrastructure. The edge application deployment includes deploying a pseudo application instance (pApp) of the edge application at each edge site of a first group 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 one or more edge sites of a second group of edge sites. The pApp is a lightweight, application-specific instance of the rApp and has fewer application functions than the rApp. Furthermore, the edge sites of the first group are larger than the edge sites of the second group, and user device interactions with the edge application are routed through selected pApps of the edge sites of the first group to the rApps of the second group.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[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. [Background technology]

[0002] In cloud environments, edge computing (i.e., computing at or near the edge) allows data processing and / or storage to be provided closer to the device on which the operation is being performed. Thus, edge computing may eliminate the need for data to be processed or stored to be transmitted to a central location (e.g., a central cloud server) that may be physically located significantly away from the device. While this configuration may not result in a substantial change to the services provided from the perspective of the individual device, the Internet of Things (IoT) and the massive proliferation of other electronic devices, including mobile devices, exponentially increase network requirements when using cloud services, which can cause increased latency, potentially resulting in reduced quality of service, increased bandwidth costs, etc. Advantageously, edge computing can help alleviate these issues.

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

[0004] In cellular communications, 5G is the next generation of high-bandwidth cellular networks, enabling significantly improved communication speeds. MEC has been implemented in a variety of networks, and 5G implementations have expanded as service providers deploy this cutting-edge, advanced technology system for their customers. When combined, MEC and 5G can be a powerful force in the computing world. The emergence of 5G network capabilities continues to grow, along with the number of devices connected on the network, spurring the need for edge computing to help distribute networking demands. Applications that rely heavily on consistent network connectivity, rapid deployment, and low latency include burgeoning technologies such as artificial intelligence (AI), IoT, virtual reality (VR), augmented reality (AR), and more. Both MEC and 5G networking enable the simultaneous use of vast numbers of connected technologies without network outages due to traffic bottlenecks. However, current edge application deployment and processing approaches, including those for cellular networks, can be further improved. Summary of the Invention

[0005] A computer program product for facilitating processing in a computing environment is provided. The computer program product comprises one or more computer-readable storage media and program instructions embodied therein. The program instructions are readable by a processing circuit and cause the processing circuit to execute a method comprising steps for performing edge application deployment in a network. The network includes a plurality of edge sites having an edge computing infrastructure. The steps include deploying a pseudo application instance (pApp) of the edge application at each edge site of a first group 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 one or more edge sites of a second group of edge sites of the plurality of edge sites. The pApp is a lightweight, application-specific instance of the rApp and has fewer application functions than the rApp, and the edge sites of the first group are larger than the edge sites of the second group. Furthermore, user device interactions with the edge application are routed through a selected pApp at an edge site of the first group to an rApp at the second group.

[0006] Computer-implemented methods and computer systems relating to one or more aspects are also described and claimed herein. Additionally, services relating to one or more aspects may also be 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 explanation 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] FIG. 1 is a diagram of an example cellular network with edge-based computing for implementing edge application deployment and processing in accordance with one or more embodiments of the present invention.

[0010] [Figure 1B] FIG. 1B is a diagram of one example of edge computing at an edge site of a cellular network, such as the one depicted in FIG. 1A, to implement edge application deployment and processing in accordance with one or more embodiments of the present invention.

[0011] [Figure 2A] FIG. 1 is a diagram of an example of a cellular network with edge application deployment, in accordance with one or more embodiments of the present invention.

[0012] [Figure 2B] FIG. 1 is a diagram of an example of a pseudo application instance (pApp) of an edge application, which is derived (in one embodiment) from a real application instance (rApp) of the edge application, in accordance with one or more embodiments of the present invention.

[0013] [Figure 3A] FIG. 1 is a diagram of an example of a pseudo application instance (pApp) handover within a network with mobility of user device interactions with the application, in accordance with one or more embodiments of the present invention.

[0014] [Figure 3B] FIG. 10 is a diagram of a further example of a cellular network with edge application deployment and processing, in accordance with one or more embodiments of the present invention.

[0015] [Figure 4A]FIG. 1 is a diagram of an example for deploying a collection of a pseudo application instance (pApp) and one or more real application instances (rApps) of an application, according to one or more embodiments of the present invention.

[0016] [Figure 4B] FIG. 1 is a diagram of an example edge application deployment workflow in accordance with one or more embodiments of the present invention.

[0017] [Figure 5A] FIG. 1 illustrates an example workflow of an interaction handover from one pseudo application instance (pApp) to another pseudo application instance (pApp) of an edge application deployed in a network, in accordance with one or more embodiments of the present invention.

[0018] [Figure 5B] FIG. 1 is a diagram of one example of user device interaction with an edge application deployed in layers including pseudo application instances (pApps) at multiple edge sites of a network and real application instances (rApps) at one or more edge sites of the network, in accordance with one or more embodiments of the present invention.

[0019] [Figure 5C] FIG. 5B is an example diagram of a handover of user device interactions from one pseudo application instance (pApp) at one edge site to another pseudo application instance (pApp) at another edge site in accordance with one or more embodiments of the present invention.

[0020] [Figure 6]FIG. 1 is a diagram of an example workflow of a route connection from a pseudo application instance (pApp) of an edge application to a real application instance (rApp) of an edge application, in accordance with one or more embodiments of the present invention.

[0021] [Figure 7] FIG. 1 is a diagram of an example application instance upgrade / downgrade workflow in accordance with one or more embodiments of the present invention.

[0022] [Figure 8] FIG. 1 illustrates an example computing environment that may incorporate and use one or more embodiments of the present invention.

[0023] [Figure 9A] FIG. 1 illustrates another example of a computing environment that may incorporate and / or use one or more embodiments of the present invention.

[0024] [Figure 9B] FIG. 9B is a diagram of further details of the memory of FIG. 9A in accordance with one or more embodiments of the present invention.

[0025] [Figure 10] FIG. 1 is a diagram of an example cloud computing environment in accordance with one or more embodiments of the present invention.

[0026] [Figure 11] FIG. 2 is a diagram of an example of abstraction model layers, in accordance with one or more embodiments of the present invention. DETAILED DESCRIPTION OF THE INVENTION

[0027] The accompanying figures, which are incorporated in and form a part of this specification, further illustrate the present invention and, together with this detailed description of the invention, serve to explain embodiments of the invention. It should be noted in this regard that descriptions of well-known systems, devices, processing techniques, and the like are omitted so as not to unnecessarily obscure the invention in detail. However, it should be understood that the detailed description and specific examples, while indicating embodiments of the present invention, are given by way of illustration only and not limitation. Various substitutions, modifications, additions, and / or other arrangements within the spirit or scope of the underlying inventive concept will be apparent to those skilled in the art from this disclosure. It should be further noted that numerous inventive aspects or features are disclosed herein and, unless inconsistent, each disclosed aspect or feature can be combined with any other disclosed aspect or feature as desired for a particular application of the disclosed concept.

[0028] It should also be noted that the exemplary embodiments are described below using specific code, designs, architectures, protocols, layouts, diagrams, or tools, by way of example only and not by way of limitation. Furthermore, the exemplary embodiments are described in particular instances using specific software, tools, or data processing environments, by way of example only and for clarity of description. The exemplary embodiments may be used in conjunction with other equivalent or similar purpose structures, systems, applications, or architectures. One or more aspects of the exemplary embodiments may be implemented in hardware, software, or a combination thereof.

[0029] As will be understood by those skilled in the art, program code, when referred to herein, can include both software and hardware. For example, the program code in certain embodiments of the present invention may utilize a software-based implementation of the described functionality, while other embodiments may include fixed-function hardware. Certain embodiments combine both types of program code. Examples of program code, also referred to as one or more programs, are depicted in FIG. 8 as, by way of example only, application program 816, computer-readable program instructions 820, controller / orchestrator 822, and services 821 stored in memory 806.

[0030] As an example, containerization is the packaging of software code (e.g., for implementing a service or microservice) along with its dependencies, such as operating system libraries and / or other dependencies, used to run the software code to create a single, lightweight executable file called a container. A container is portable in that 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 containing executable program code that can be run as an isolated process on computing or information technology (IT) infrastructure. A single image can be used to run one or more containers, which are runtime instances of the container image. Containers are lightweight (e.g., they share the machine's operating system), efficient, easy to manage, secure, and portable.

[0031] One example of a product used to deliver and manage containers is Kubernetes®, an open-source system for automating the deployment, scaling, and management of containerized applications. (In this regard, it should be noted that Kubernetes® 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 easy management and discovery. In operation, Kubernetes orchestrates containerized applications to run on a cluster of hosts (or nodes), automating the deployment and management of cloud-native applications using on-premises infrastructure or public cloud platforms. Kubernetes systems are designed to run containerized applications across a cluster of nodes (or servers), which can be in a single geographic location or distributed across multiple geographic locations. In one or more implementations, a cluster is a set of nodes (whether physical or virtual computing resources) that run a Kubernetes agent and are managed by the Kubernetes control plane.

[0032] Container orchestration is the automation of much of the operational effort required to run containerized workloads and services. Orchestration encompasses a wide range of processes required to maintain the lifecycle of containers, including provisioning, deployment, scaling (up and down), networking, load balancing, and more. Note that Kubernetes is just one example of an orchestration platform that may be used to manage application deployments such as those disclosed herein. Other platforms, such as Function as a Service (FaaS), may be used to manage application deployments according to one or more embodiments disclosed herein.

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

[0034] 1A depicts one embodiment of a next-generation cellular network, generally designated 100. The cellular network 100 includes multiple edge sites 110, each having a respective 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 an edge site computing infrastructure 113 and a radio access network 112 that interfaces with (e.g.,) a next-generation (5G) core network 120. As shown, the core network 120 may facilitate communication with one or more cloud-based computing resources 130, such as (in one embodiment) one or more cloud-based computing enterprise applications 131, audiovisual 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). In one embodiment, the next-generation core network 120 may include, for example, a user plane function (UPF) 122, which interfaces with the radio access network 112 and a data network 105, which may include wired, wireless, fiber optic connections, etc., such as a local-area network (LAN), a wide-area network (WAN), such as the Internet, or a combination thereof. The network 105 may include one or more wired and / or wireless networks capable of receiving and transmitting data, such as data related to one or more of the applications mentioned herein.As further shown, an access mobility function (AMF) 121, in one embodiment, interfaces with a radio access network (RAN) 112 at the edge site 110 and session management function (SMF) 123 and unified data management (UDM) 124 facilities. The session management function (SMF) 123, in one embodiment, also interfaces with a policy control function (PCF) 125. IMS is a trademark of International Business Machines Corporation.

[0035] In operation, user equipment 101, UE1, UE2, and UE3, in one or more embodiments, represent one or more wireless user devices, such as smartphones, mobile phones, gaming devices, wireless vehicle devices / systems, wireless computers, etc., which may change their point of attachment within cellular network 100 by moving or migrating away from a cell tower in one cellular region to a cell tower in another cellular region of the network. In such an event, the wireless session may begin to be served by a new network application-aware server or “edge app” server, and the edge app server state associated with the user device is transitioned 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 each cell tower 111 and associated edge-of-network components and infrastructure 113, e.g., one or more computing resources (e.g., one or more servers) that function as or are part of a cell with which the mobile user equipment is in communication.

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

[0037] To provide a seamless transition, the cellular network infrastructure includes a Radio Access Network (RAN) 112, such as a 5G new radio (NR) wireless air interface with logical 5G radio nodes (gNBs). The Radio Access Network 112 provides control and management of the radio transceivers of the cell node (base transceiver station) equipment and also performs management tasks such as handoff of cellular communication sessions. Typically, for example, cellular networks interface via the Internet to facilitate control of elements necessary to deliver application services to end users, including, for example, radio spectrum allocations, wireless network infrastructure, backhaul infrastructure, provisioning computer systems, etc.

[0038] As described, with the evolution of 5G networks, latency-sensitive applications such as enterprise applications, manufacturing applications, medical applications, IoT applications, etc. are moving closer to the edge of the cellular network and are increasingly being run as services or microservices. Figure 1B depicts an example of this, where edge site 2 (in the example of Figure 1A) includes a container orchestrator 150 with a cluster control 151, such as a Kubernetes control, that interfaces with multiple nodes 152 (e.g., servers), each of which supports one or more higher-level software constructs or pods 153, i.e., Pod 1, Pod 2, etc., each of which includes one or more service applications 155 (or edge applications, such as App1, App2, App3). In one or more implementations, edge site computing infrastructure 113, together with towers 111 and radio access network 112, performs edge site processing; one or more of the edge sites run (in one embodiment) a container orchestrator 150, such as Kubernetes, that orchestrates containerized applications and runs them on a cluster of host nodes. During operation, user equipment UE2 (e.g., a user mobile device) automatically selects the tower with the strongest signal from which audio, video, and / or Internet traffic is processed. As user equipment UE2 moves, an appropriate tower is automatically reselected. With edge app deployments on clusters such as those depicted in FIG. 1B, load balancing is typically unaware of the client's location or the latency and / or network conditions of client replicas and traditionally does not handle client movement. Disclosed herein are enhanced systems and methods for edge application (edge app) deployment and associated edge application processing, in which cell tower selection and handover are as seamless as within a cellular network.

[0039] Orchestration of applications deployed at edge sites, such as those disclosed herein, balances two often-conflicting requirements. The first requirement is to maximize quality of service (QoS), for example, by minimizing response time for every end user. This implies, for example, that more replication of the application is required, for example, by moving the application closer to the edge. The second requirement is to minimize the required cluster resources due to resource constraints at the edge, for example, by optimizing application placement to have fewer application replicas, thereby reducing overhead. Balancing the two requirements is challenging in the context of certain networks, such as cellular networks. For example, the mobility of user equipment (e.g., devices) makes it difficult to maximize quality of service (QoS), and overall network traffic patterns at the cellular network edge are constantly changing, meaning that minimizing cluster resources can be challenging.

[0040] Embodiments of the invention include computer program products, computer-implemented methods, and computer systems, where program code executing on one or more processors performs a method that (in one embodiment) includes performing edge application deployment in a network. The network includes a plurality of edge sites having an edge computing infrastructure. The performing includes deploying a pseudo application instance (pApp) of the edge application at each of a first group of edge sites of the plurality of edge sites. Further, the method includes deploying a real application instance (rApp) of the edge application at each of one or more edge sites of a second group of edge sites of the plurality of edge sites. The pApp is a lightweight, application-specific instance of the rApp that has fewer application functions than the rApp. Furthermore, the first group of edge sites is larger than the second group, and user device interactions with the edge application are routed through selected pApps of the first group of edge sites to the second group of rApps.

[0041] According to one or more embodiments disclosed herein, edge applications are split into two tiers: pseudo application instances (pApps), which are lightweight instances of edge applications that are amenable to migration, and real application instances (rApps), which are full instances of edge applications. The pseudo application instances (pApps) are low-cost and serve as a point of contact for end users for edge applications, providing routing to actual real application instances (rApps) while also enabling transparent mobility. In one or more implementations, computer program products, computer-implemented methods, and computer systems are provided in which program code running on one or more processors executes pseudo application instances (pApps) such as those disclosed herein for cluster orchestration at the edge of a network. The pseudo application instance (pApp) is a new abstraction for managing applications on an edge cluster orchestrator. By splitting applications into tiers, edge applications can be deployed with higher quality of service (QoS), for example, while also conserving computing resources for the container orchestrator.

[0042] Numerous inventive embodiments are disclosed herein in connection with the presented concepts. For example, program products, systems, and methods are presented for deploying a service as a collection of pseudo application instances (pApps) or replicas running on any desired number of edge sites of a network, e.g., all edge sites of the network. The pApps have the ability to route connections to real application instances (rApps) and handover user connections to other pseudo application instances (pApps), facilitating cluster orchestration tradeoff management while supporting seamless cell tower-like mobility for end users of edge applications. In one or more implementations, an edge application or service can be deployed as a collection of pseudo application instances (pApps) running on a first group of edge sites (e.g., most or all of the edge sites of the network) and real application instances (rApps) running on selected edge sites of the network. Furthermore, in one or more embodiments, a method is provided for handing over one or more edge user interactions (traffic) from one pseudo application instance (pApp) to another pseudo application instance (pApp) over user device mobility, as well as a method for routing end user interconnections (i.e., traffic) from one pseudo application instance (pApp) to a selected real application instance (rApp), where the real application instance (rApp) may be selected based on link performance measurements obtained by the telecommunications network.Additionally, in one or more implementations, methods for upgrading pseudo application instances (pApps) at edge sites to real application instances (rApps) are provided, for example, to meet end-user Quality of Service (QoS) requirements, as well as methods for selecting specific pseudo application instance (pApp) upgrades to optimize overall network flows. These and other embodiments and features of the present invention are disclosed herein to facilitate edge application deployment and processing in networks, such as cellular networks.

[0043] FIG. 2A depicts one example of an edge application deployment according to one or more embodiments of the present invention. By way of example, network 100′, similar to network 100 described above in connection with FIGS. 1A and 1B, includes multiple edge sites, each of which has its own edge computing infrastructure. In the depicted embodiment, edge computing infrastructure 200 supports multiple edge applications, with real application instances (rApp1, rApp2, rApp3) each shown on only one of the edge sites in this example, and pseudo application instances (pApp1, pApp2, pApp3) residing at the other edge sites, such that each edge site has either a pseudo application instance (pApp) of an application (App1, App2, App3) or a real application instance (rApp) for that edge application. Note that this is just one embodiment; in other embodiments, each edge site of the network may include a pseudo application instance (pApp) of an 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 particular edge application, a corresponding pseudo application instance (pApp) of that application is running at every edge site in the network. In an implementation, one or more real application instances (rApps) of the application may be deployed. In one or more further implementations, only certain edge sites of a plurality of edge sites in the network need include either a pseudo application instance (pApp) or a real application instance (rApp) of the edge application. However, typically, the pApp is included within a first group of edge sites in the network that is larger than a second group of one or more edge sites running the real application instance (rApp).

[0044] As shown in FIG. 2B, 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 the real-application instance (rApp), and can include, for example, a pseudo-application framework / library (pApp Lib) 222 that facilitates (in one embodiment) the provision of functions such as routing, load balancing, proxy, caching, and control management. Further, the pApp instance can include one or more rApp code paths 224 (i.e., one or more application-specific code paths), and operational state information 226 regarding one or more user device interactions or sessions with edge applications handled via the pApp. In one or more deployment processes, k real-application instances (rApp) of an edge application are provided within the network, and n pseudo-application instances (pApp) of the edge application, where k << n, and in one or more embodiments, n is comparable to or equal to the number of edge sites. The pseudo-application instances (pApp) obtained from the real application are lightweight by definition and require fewer application functions and less processing overhead compared to the real-application instances. Further, in one or more implementations, all pseudo-application instances (irrespective of the real-application instances) can have some common functions implemented as a library, such as caching, routing, control logic, etc. Further, each pseudo-application instance can be obtained from or constructed with respect to a particular real-application instance (rApp) and can have some real-application-specific code paths. In one embodiment, code annotations can be used to capture the real-application code paths implemented within the pseudo-application instance (pApp).Additionally, the pseudo application instance may, in one or more embodiments, be a parallel implementation. For example, in one or more embodiments, a development operator may submit code for execution on a pseudo application instance (pApp). For a particular function within a real application instance (rApp), the function may be implemented within the pseudo application instance (pApp). In one or more embodiments, the function may, for example, perform a check and, depending on the result, return a result based on the check, e.g., from a cache, or route the result to the real application instance (rApp).

[0045] Advantageously, in one or more embodiments, deploying pseudo application instances (pApps) of an edge application to multiple edge sites of a network facilitates balancing the conflicting requirements of maximizing quality of service (QoS) while minimizing cluster resources needed to implement the edge application, for example, in a network with dynamically changing loads. Provided herein are computer program products, computer-implemented methods, and computer systems having program code for deploying a service (or microservice) as a collection of pseudo application instances (pApps) running on, for example, many or all edge sites, with the ability to route connections to real application instances (rApps) and handover them to other pApps when appropriate, aiding in cluster orchestration tradeoffs while supporting seamless cell tower-like mobility for users of the edge application. Figure 3A depicts one embodiment of the ability to handover a user device interface (e.g., a user session) from one pApp to another with user mobility.

[0046] 3A, the network 100′ described above in connection with FIGS. 2A and 2B is shown including a pseudo application instance (pApp) 300 of an edge application having a previous connection to a user equipment 101, such as a mobile user device. As shown, the pApp 300 has a routing connection to a real application instance (rApp) 301 of the edge application to facilitate user request processing related to user device interactions. With the mobility of the user equipment 101, the pApp 300 automatically hands over the user device interaction or session to another, closer pseudo application instance (pApp) 302 within the network, enabling uninterrupted access to the edge application by the user equipment 101 despite the user equipment's movement.

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

[0048] Furthermore, provisioning of pseudo application instances (pApps) such as those disclosed herein allows for the upgrading of pseudo application instances to real application instances when necessary, for example, to meet client quality of service (QoS) requirements, and allows for the selection of one or more pseudo application instances to be upgraded to real application instances to optimize overall network flows. Furthermore, in one or more embodiments, a real application instance (rApp) may be downgraded to a pseudo application instance (pApp) when desirable, for example, to optimize resource usage within the network. Pseudo application instance (pApp) upgrades and / or real application instance (rApp) downgrades may be performed via various techniques. In one embodiment, a running instance may be stopped, and another desired instance may be started in place of the stopped instance. In other embodiments, where the pApp specification includes a virtual machine (VM) / container image, etc., required to run the rApp, the upgrade process may be faster than a typical rApp deployment because the rApp specification does not need to be downloaded. In another embodiment, an rApp instance may be prepared and stored in a suspended state for every pApp. In this approach, some memory may be consumed at the edge site, but not as much as an rApp would normally require, and no compute / network bandwidth is required while the rApp is stored in a suspended state. In such an approach, the upgrade process simply activates the prepared rApp instance, which can be done quickly. Downgrading a real application instance (rApp) to a pseudo application instance (pApp) can be done via various similar approaches.

[0049] As described, 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 an edge application as a collection of a pseudo application instance (pApp) and one or more real application instances (rApps). For example, in one embodiment, a pseudo application instance of the edge application is deployed at each edge site of a first group of edge sites in a plurality of edge sites in the network, and a real application instance (rApp) of the application is deployed at each edge site of one or more edge sites of a second group of edge sites in the plurality of edge sites, where the first group of edge sites is larger than the second group. In one example, a pseudo application instance may be deployed at each edge site in the network, and real application instances are deployed only at selected edge sites.

[0050] FIG. 3B depicts a more detailed example of the network embodiment of FIGS. 2A-3A, where 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 either a pseudo application instance (pApp) or a real application instance (rApp) for each of three different edge applications (App1, App2, and App3). By way of example only, in FIG. 3B, a pseudo application instance (pApp) is deployed at the edge site without a corresponding real application instance (rApp). 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, by way of example, an IMS. As one example, a controller or orchestrator 310 at a higher level control plane oversees the deployment of applications via deployment program code 311 so that edge sites have either pseudo application instances (pApps) or real application instances (rApps) of edge applications.

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

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

[0053] In one embodiment, the pApp controller 330 includes program code that facilitates handing over interactions between pseudo application instances 331, routing pseudo application instance (pApp) connections to appropriate real application instances (rApp) 332, and upgrading and / or downgrading pseudo application instances (pApp) and / or real application instances (rApp) 333. In the depicted embodiment, the orchestrator 310 may further include program code that facilitates upgrading and / or downgrading pseudo application instances (pApp) and / or real application instances (rApp) 312, depending on the desired implementation. As described herein, a pseudo application instance such as pApp1 321 may include program code that facilitates route connection selection to an appropriate real application instance (rApp) 322 and / or retrieval of stored route connection information based, for example, on a previous determination of a route connection for that pseudo application instance.

[0054] FIG. 4A depicts one 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). As shown, an application deployment descriptor 400 is obtained (e.g., received). In one embodiment, the deployment descriptor 400 may include a development operator's input regarding the edge application being deployed. For example, the obtained input 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, the provided information may affect, for example, how many real application instances (rApps) are executed within the network and / or when to transition between pApp resources and rApp resources, such as those described herein. As shown in FIG. 4A, in one embodiment, the application deployment descriptor is used (or referenced) in generating pseudo application instances, or pApp resources 401, and real application instances, or rApp resources 402, for deployment within the network. In one embodiment, a pseudo application instance (pApp resource 401) is a lightweight application instance customized and configured for a particular application. Pseudo application instance (pApp) embodiments may be deployed using, for example, container technology, Function as a Service (FaaS) computing services, etc., while real application instances (rApps) may be implemented using regular Kubernetes resources such as service deployments, pods, etc.

[0055] FIG. 4B depicts further details of one example of an edge application deployment workflow in accordance with one or more embodiments of the present invention. As shown, in one embodiment, a development operator submits (410), for example, a real application instance (rApp) specification and configuration parameters, such as those described above in connection with FIG. 4A. Program code uses the received rApp specification and configuration parameters to obtain (412) a pseudo application instance (pApp) specification and create (414) a real application instance (rApp) deployment. In one or more embodiments, the obtained pseudo application instance (pApp) specification is for a lightweight, application-specific instance of an rApp, having fewer application features than the rApp. The obtained pseudo application instance (pApp) specification may be submitted (416) to the pseudo application controller 330 (see FIG. 3B). In one or more implementations, the pseudo application controller 330 includes program code that creates and provides (418) a pseudo application instance (pApp) deployment to a desired edge site for a particular application. As discussed, in one or more embodiments, pseudo application instances (pApps) are deployed to more edge sites of the network than real application instances (rApps). By way of example, a more commonly used application may result in a pApp being deployed at every edge site of the network, while for less commonly used applications, fewer pseudo application instances (pApps) may be deployed across the network. Note that in one or more implementations, the pseudo application controller has access to data regarding the global state of the network, including, for example, the number and locations of pseudo application instances (pApps), the number and locations of real application instances (rApps), and the degree of communication between pseudo application instances (pApps) and real application instances (rApps).

[0056] As shown in FIG. 4B , in one embodiment, the pseudo application instance controller 330 further includes program code for setting up application routing information to facilitate routing user device interactions or sessions with an application, for example, from a pseudo application instance (pApp) to a specified or selected real application instance (rApp). In one implementation, the routing may be from the pseudo application instance (pApp) to a real application instance (rApp) at an edge site closest to the edge site containing the pseudo application instance (pApp). In the illustrated embodiment, the pseudo application controller 330 further includes program code for monitoring 422 pApp status during operation, i.e., end use. For example, in one or more embodiments, the pseudo application controller may monitor various types of pseudo application instance (pApp) information, such as the number of connections, the amount of data flowing through the pApp, etc. The monitored pseudo application state data can be used, for example, to facilitate connection routing, handoff of end-user interactions or sessions from one pseudo application instance (pApp) to another, and pseudo application instance (pApp) upgrades and / or real application instance (rApp) downgrades, such as those described herein.

[0057] As described, monitoring of pseudo-application states can be further facilitated using various types of information already collected by networks, such as existing cellular networks. For example, quality of service (QoS) data can be monitored through insights gained from data collected by the network, such as bandwidth data, latency data, jitter data, and other time-varying parameters. Exemplary embodiments can include TRAN metrics from SDN controllers, QoS management by 5G cores, and other end-to-end protocols that measure QoS, such as RTP (voice calls).

[0058] 5A illustrates an example workflow for interaction handover from one pseudo application instance (pApp) to another pseudo application instance (pApp) in a network, in accordance with one or more embodiments of the present invention. In one embodiment, the network detects that an end user is moving away from a cell tower at a current edge site to a cell tower at a new edge site (500). Based on detecting that an end user, or more specifically, an end user device, having a user device interaction or session with an application is moving away from the current cell tower, then, in one embodiment, the wireless access network initiates a handover of information sent to the current (or local) pseudo application instance (pApp) (502). For example, the information about the end user's exit from the current edge site may include wind-up of stateful connections, instructions to ignore new incoming connections from the end user, optional shutdown of the pseudo application instance (pApp) in its current location (e.g., based on predetermined policies for the application), etc. Additionally, the process may optionally wait for a new pseudo application handover state to occur 504. Once the Radio Access Network (RAN) handover is complete, the user equipment (or user device) connects 506 to a User Plane Function (UPF) at the new edge site.

[0059] At the new edge site, program code determines 508 whether a pseudo application instance (pApp) already exists at the site; if not, a new pseudo application instance (pApp) is created or spawned for the edge site if one does not already exist 510. Once a local pApp is identified or created for the new edge site, a user plane function (UPF) is configured 512 to redirect end-user interactions with the application to the local pseudo application instance (pApp) at the new edge site. 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 real application instances (rApps) connected to the new pseudo application instance (pApp) may be updated.

[0060] FIG. 5B depicts one embodiment of user device interaction with an edge application deployed at multiple edge sites of network 100′, such as those described herein. In FIG. 5B, multiple edge sites are depicted, by way of example, each having a respective cell tower 111 and edge site infrastructure 113, such as those described herein. In the illustrated embodiment, the edge site infrastructure 113 includes or executes a pseudo application instance (pApp) of the edge application, and one of the edge sites also includes a real application instance (rApp) of the application, such as those described herein. User equipment (UE) 101, such as a wireless user device, is mobile (520), and the user device is connected (521) to the network via the nearest cell tower 111. The cell tower 111 and radio access network (RAN) negotiate parameters of the connection (522). In one embodiment, the user is connected to a Next Gen Node b (gNB) in a 5G cellular network. The RAN also has edge resources capable of hosting services (e.g., a KUBERNETES cluster). The control unit of the RAN has information detailing connected user equipment (user mobile devices) and the applications being accessed. The control unit of the RAN passes this to the core network, where the SMF utilizes policies defined in the PFC to maintain the session and triggers a control request to deploy a pseudo application instance (pApp) to the edge site if it is not already present onsite. More specifically, in one embodiment, a core network, such as a 5G core network, sets up a session for the user equipment (UE) based on user parameters (523). Additionally, a data path 524 is set up for the user equipment (UE) via a user plane function (UPF) instance, and the user equipment (UE) receives an IP address in one embodiment.In one or more implementations, the UPF forwards the connection for the desired edge application, e.g., App1, to a local pseudo application instance (pApp) (525). As shown, the local pseudo application instance (pApp) then forwards the user device interaction or session to a configured real application instance (rApp) (526), which in the example of FIG. 5B is running (by way of example) on another edge site infrastructure. In one embodiment, the pseudo application instance (pApp) and real application instance (rApp) discovery process can be facilitated using a core (UDR) that maintains a list of rApps and pApps at various gNBs and / or cloud-based computing locations. This information can be passed to the gNB / RAN and maintained by a control unit of the RAN. Either via a RAN-to-RAN connection or through the core (UPF), end-user requests can be routed (routed and forwarded) to the appropriate real application instance (rApp) that can service the request.

[0061] FIG. 5C further depicts the network and edge application processing of FIG. 5B and illustrates a handover of a user device interaction from one pseudo application instance (pApp) at one edge site to another pseudo application instance (pApp) at another edge site in accordance with one or more embodiments of the present invention. As shown, user equipment (UE) 101, or an end user's device, moves (520) in accordance with 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 handover of the user device connection between the two cell towers, and the network core realigns (533) the user device session. For example, a new user plane function (UPF) may be selected for routing the connection. A pseudo application instance (pApp)-to-pseudo application instance (pApp) handoff 534 is triggered for any existing connection, conveying any state information necessary for the end user's access to the edge application. As described, a new pseudo application instance (pApp) may need to be created for the new edge site infrastructure to accommodate this transfer. A new connection 535 from the end user is then routed from the local user plane function (UPF) to the local pseudo application instance (pApp), with the previous connection 525 also shown from the previous flow in FIG. 5B. The new pseudo application instance (pApp) in the current edge site infrastructure routes a connection 536 to the real application instance (rApp) as previously described. Note that in the example of FIG. 5C, the user device interaction is routed to the same real application instance (rApp) as in the previous flow, as an example only.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 actual real application instance (rApp) to which it routes may depend on network conditions and status, distance 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 infrastructure are currently running real application instances (rApps) and which are running pseudo application instances (pApps) for each application of 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 (rApps) in the link set. This can be used in scenarios where edge sites form islands, in which case it is better to connect or route end-user requests to nearby real application instances (rApps). In another embodiment, the system may be configured such that a pseudo application instance (pApp) determines a real application instance (rApp) and routes user requests to the pseudo application instance (pApp) and / or pApp controller at runtime, e.g., using available load, performance, and latency metrics. The best real application instance (rApp) based on performance may be selected to forward the end-user request. This approach may be advantageous where there is a dense mesh formed by edge sites and current telemetry provides the best results in terms of overall request latency, performance, etc. Note that in the case of 5G cellular networks, routing of requests may be per slice in the case of 5G slicing.

[0063] 6 depicts an example of routing application requests from a pseudo application instance (pApp) to a real application instance (rApp) in accordance with one or more embodiments of the present invention. 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. Assume that a pseudo application instance (pApp) is newly created for a new end-user connection (600). In that case, a new end-user request for an application is received (602). The process determines (604) whether routes to one or more real application instances (rApps) have been loaded. If not, the pseudo application instance (pApp) connects to the pApp controller for updated state and real application instance (rApp) information (606), which allows the pseudo application instance (pApp) to select an appropriate upstream real application instance (rApp) for the edge application and forward the end-user connection to that rApp (608). The selected rApp route connection is then saved as local routing information for the pseudo application instance (pApp) 610. Assuming there is an existing end user connection 612, then the saved local routing information is accessed to enable the end user request for the edge application to be forwarded to the real application instance (rApp).

[0064] As described, in a further example, edge application deployment and processing may include upgrading pseudo application instances (pApps) and / or downgrading real application instances (rApps) according to one or more embodiments of the present invention. The deployment of pseudo application instances (pApps) may be based on one or more policies. For example, as a strategy, the first deployment of an edge application may always be a pseudo application instance (pApp). Furthermore, whenever potential use of an application at an edge site is predicted, a pseudo application instance (pApp) may be spawned in the edge site infrastructure. In another policy, common or frequently used pseudo application instances (pApps) may be deployed initially or preemptively on all edge sites in the network, even before an end-user request is received.

[0065] In one or more embodiments, a policy 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, a pseudo application instance (pApp) may be upgraded to a real application instance (rApp) based on the number of end-user requests, available user workload (based on measurable policy-based metrics), and / or resources at the edge site or nearby edge sites. Upon upgrade, the pseudo application instance (pApp) controller database may be updated accordingly for the availability of a new real application instance (rApp) so that this edge site can process end-user requests for that edge site and, if necessary, end-user requests received from other edge sites. Another policy option is to specify a global perspective, for example, where linear programming / constraint satisfaction / machine learning is used to maximize user quality of service (QoS) based on current traffic while satisfying resource constraints on the cluster.

[0066] As a 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 with implemented modules that access and classify the load of various types of services. Using a function f (configured parameters + threshold + resources + availability) at the radio access network (RAN) / edge, a request can be generated for upgrading from a pApp to an rApp. In one implementation, the PFC determines whether the request can be serviced based on implemented policies. 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 the means to orchestrate the service, including any repositories / images / data that may be needed, or this can be passed to the RAN by the core). Once the rApp is deployed, the pApp can be disabled, and other nearby gNBs and the core can be notified about the new real application instance (rApp). The core and other gNBs update their lists with connection information for any subsequent handover requests.

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

[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 various types of services employed. Using a function f (configured parameters + resource availability) at the radio access network (RAN) / edge, a request can be generated for downgrading from an rApp to a pApp. Based on the generation of the request, the PCF can determine whether the request can be serviced based on implemented policies. If so, a signal is sent to the RAN control unit to remove the rApp on the edge site and orchestrate pApp instantiation. Once the pApp is executed, other nearby gNBs and cores can be notified of the new pApp deployment. The core and other gNBs update their lists with connection information for any subsequent handover requests.

[0069] FIG. 7 depicts one example of an application instance upgrade / downgrade workflow in accordance with one or more embodiments of the present invention. In conjunction with system execution 700, a pseudo application instance (pApp) and pApp controller deployed on an edge site monitors the state of the system (702) and controls the upgrade or downgrade of the application instance based on system performance. For example, if end-user request traffic monitored at a particular pseudo application instance (pApp) exceeds a specified threshold (704), the pseudo application instance (pApp) can be upgraded to a real application instance (rApp) (706). In one embodiment, this may involve adding a new real application instance (rApp) at the edge site and leaving the pseudo application instance (pApp) in the workflow so that the edge site has both a pseudo application instance (pApp) and a real application instance (rApp) of the edge application.

[0070] Additionally, in one or more embodiments, total traffic for a real application instance (rApp) may be monitored, and if it is determined that the traffic exceeds a specified threshold (708), a set of one or more pseudo application instances (pApps) may be upgraded to a real application instance (rApp) based on the monitored traffic and the location of the selected pseudo application instance (pApp) within the system.

[0071] Additionally, in one or more embodiments, traffic in real application instances (rApps) may be monitored, and if traffic in a particular real application instance (rApp) drops 712 below a specified threshold, 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] In accordance with one or more embodiments of the present invention, counterfactual data imputation (in connection with machine learning model training) can be incorporated into and used in many computing environments. One exemplary computing environment is described with reference to FIG. 8. As an example, the computing environment is based on the z / Architecture® hardware architecture offered by International Business Machines Corporation of Armonk, New York. However, the z / Architecture hardware architecture is just one example architecture. The computing environment may also be based on other architectures, including, but not limited to, the Intel x86 architecture, other architectures from International Business Machines Corporation, and / or architectures from other companies. z / Architecture is a trademark of International Business Machines Corporation.

[0074] 8, for example, computing environment 800 includes a computer system 802, shown for example 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 unit (CPU)), memory 806 (also known as, for example, system memory, main memory, main storage, central storage, or storage), and one or more input / output (I / O) interfaces 808, coupled together via one or more buses and / or other connections. 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 may be, for example, a memory or cache coherence bus, and bus 810 may represent one or more of any of several types of bus structures, including, for example, a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example and not limitation, such architectures include Industry Standard Architecture (ISA), MicroChannel Architecture (MCA), Enhanced ISA (EISA), Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI).

[0076] For example, one or more special-purpose processors (e.g., auxiliary processors) may be separate from but coupled to one or more general-purpose processors and / or may be incorporated within one or more general-purpose processors. Many variations are possible.

[0077] The memory 806 may include a cache 812, such as, for example, a shared cache, which may be coupled to a local cache 814 of the processor 804, for example, via one or more buses 810. Additionally, 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 / orchestrators 822 deploying one or more services 821. The computer-readable program instructions 820 and / or the controllers / orchestrators 822 may be configured to perform or facilitate functionality of embodiments of the present invention.

[0078] The computer system 802 may communicate with one or more external devices 830, such as, for example, a user terminal, a tape drive, a pointing device, a display, and one or more data storage devices 834, via the I / O interface 808. The data storage devices 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 communicate, for example, via an 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), to provide communication with other computing devices or systems.

[0080] 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 non-removable, non-volatile magnetic media (commonly referred to as a "hard drive"), a magnetic disk drive for reading from or writing to a removable, non-volatile magnetic disk (e.g., a "floppy disk"), and / or an optical disk 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 computer system 802. Examples include, but are not limited to, microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, data archive storage systems, etc.

[0081] Computer system 802 may be operational with numerous other general-purpose or special-purpose computing system environments or configurations. Examples of well-known computing systems, environments, and / or configurations that may be suitable for use with computer system 802 include, but are not limited to, personal computer (PC) systems, server computer systems, thin clients, thick 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 and the like that include any of the above systems or devices.

[0082] Another embodiment of a computing environment that may incorporate and use one or more aspects of the present invention is described with reference to FIG. 9A. In this example, computing environment 900 includes a native central processing unit (CPU) 912, memory 914, and one or more input / output devices and / or interfaces 916, coupled together, for example, via one or more buses 918 and / or other types of connections. By way of example, computing environment 910 may include a PowerPC® processor offered by International Business Machines Corporation of Armonk, New York; an HP Superdome with an Intel Itanium II processor offered by Hewlett Packard Co. of Palo Alto, California; and / or other machines based on architectures offered 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 United States and / or other countries.

[0083] The native central processing unit 912 includes one or more native registers 920, such as one or more general purpose registers and / or one or more special purpose registers, that are used during processing within the environment. These registers contain information that represents the state of the environment at any particular time.

[0084] Additionally, native central processing unit 912 executes instructions and code stored in memory 914. In one particular example, the central processing unit executes emulator code 922 stored in memory 914. This code allows a computing environment configured in one architecture to emulate another architecture. For example, emulator code 922 allows a machine based on an architecture other than the z / Architecture hardware architecture, such as a PowerPC processor, 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] Further details related to emulator code 922 are described with reference to FIG. 9B . Guest instructions 930 stored in memory 914 comprise software instructions (e.g., correlated to machine instructions) developed to execute on an architecture other than that of native CPU 912. For example, guest instructions 930 may be designed to execute on a processor based on the z / Architecture hardware architecture, but may instead be emulated on native CPU 912, which may be, for example, an Intel Itanium II processor. In one example, emulator code 922 includes an instruction fetching routine 932 for retrieving one or more guest instructions 930 from memory 914 and optionally providing local buffering for the retrieved instructions. It also includes an instruction conversion routine 934 for determining the type of the retrieved guest instruction and converting the guest instruction into one or more corresponding native instructions 936. This conversion includes, for example, identifying a function performed by the guest instruction and selecting a native instruction to perform the function.

[0086] Additionally, emulator code 922 includes an emulation control routine 940 for causing the execution of native instructions. Emulation control routine 940 may cause native CPU 912 to execute a routine of native instructions that emulates one or more previously fetched guest instructions, and at the completion of such execution, return control to an instruction fetch routine for emulating the fetch of the next guest instruction or group of guest instructions. Execution of native instructions 936 may include loading data from memory 914 into registers; storing data from registers back to memory; or performing some type of arithmetic or logical operation as determined by a translation routine.

[0087] Each routine may be implemented, for example, in software stored in memory and executed by native central processing unit 912. In other examples, one or more of the routines or operations may be implemented in firmware, hardware, software, or some combination thereof. The emulated processor's registers may be emulated using the native CPU's registers 920 or using locations in memory 914. In an embodiment, guest instructions 930, native instructions 936, and emulator code 922 may reside in the same memory or may be distributed among different memory devices.

[0088] Additionally, in one embodiment, computing environment 910 includes one or more inference accelerators 915 coupled to memory 914. One or more accelerators are defined in one architecture and configured to emulate another architecture. For example, the accelerators may take guest commands of the emulated architecture, translate the guest commands into native commands of one architecture, and execute the native commands.

[0089] The computing environments described above are merely examples of computing environments that may be used. Other environments may be used, including, but not limited to, non-partitioned, partitioned, virtual, cloud, and / or emulated environments; embodiments are not limited to any one environment. While 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 may be configured to optimize container deployment for a given deployment environment and / or to perform one or more other aspects of the present invention.

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

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

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

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

[0095] The characteristics are as follows:

[0096] On-Demand Self-Service: Cloud consumers can unilaterally provision computing capacity, such as server time and network storage, automatically as needed, without requiring human interaction with the service provider.

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

[0098] Resource Pooling: Provider computing resources are pooled to serve multiple consumers using a multi-tenant model, with various physical and virtual resources dynamically allocated and reallocated according to demand. There is location independence in that consumers generally have no control or knowledge over the exact location of the provided resources, but may be able to specify location at a higher level of abstraction (e.g., country, state, or data center).

[0099] Rapid Elasticity: Capacity is provisioned quickly and elastically, sometimes automatically, and can be quickly scaled out or quickly released and quickly scaled in. To the consumer, the capacity available for provisioning often appears unlimited and can be purchased in any amount at any point in time.

[0100] Metering Services: Cloud systems automatically control and optimize resource usage by utilizing metering capabilities appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts) at a certain level of abstraction. Resource usage can be monitored, controlled, and reported, providing transparency to both providers and consumers of the services used.

[0101] The service model is as follows:

[0102] Software as a Service (SaaS): The consumer is offered the ability to use a provider's applications running on a cloud infrastructure. The applications are accessible from a variety of client devices through a thin-client interface such as a web browser (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.

[0103] Platform as a Service (PaaS): The ability offered to consumers is to deploy applications they create or acquire, written using programming languages and tools supported by the provider, onto a cloud infrastructure. The consumer does not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but does have control over the deployed applications and, in some cases, the application hosting environment configuration.

[0104] Infrastructure as a Service (IaaS): The ability provided to consumers is to provision processing, storage, network, and other basic computing resources onto which they can deploy and run any software, which may include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure, but does 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: Cloud infrastructure is operated exclusively for an organization. It may be managed by the organization or a third party and may exist on-premise or off-premise.

[0107] Community Cloud: Cloud infrastructure is shared by multiple organizations to support a specific community with shared concerns (e.g., mission, security requirements, policies, and regulatory compliance considerations). Community clouds may be managed by those organizations or by a third party and may exist on-premises or off-premises.

[0108] Public Cloud: Cloud infrastructure is made available to the general public or large industry organizations and is owned by organizations that sell cloud services.

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

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

[0111] 10 , an exemplary cloud computing environment 50 is depicted. As shown, the cloud computing environment 50 includes one or more cloud computing nodes 52 with which local computing devices used by cloud consumers, 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, may communicate. The nodes 52 may communicate with each other. They may be physically or virtually grouped in one or more networks (not shown), such as a private, community, public, or hybrid cloud, or combinations thereof, as described hereinabove. This enables 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 their local computing device. It will be understood that the types of computing devices 54A-N shown in FIG. 10 are for illustrative purposes only, and that computing node 52 and cloud computing environment 50 may communicate with any type of computerized device via any type of network and / or network-addressable connection (e.g., using a web browser).

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

[0113] Hardware and software layer 60 comprises hardware and software components. Examples of hardware components include mainframe 61, RISC (reduced instruction set computer) architecture-based servers 62, servers 63, blade servers 64, storage devices 65, and networks and networking components 66. In some embodiments, software components include network application server software 67 and database software 68.

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

[0115] In one example, management layer 80 may provide the functions described below. Resource provisioning 81 provides dynamic procurement of computing and other resources utilized to execute tasks within the cloud computing environment. Metering and pricing 82 provides cost tracking as resources are utilized within the cloud computing environment and billing or invoicing for the consumption of these resources. In one example, these resources may include application software licenses. Security provides identity verification of cloud consumers and tasks and protection of data and other resources. User portal 83 provides access to the cloud computing environment for consumers and system administrators. Service level management 84 provides cloud computing resource allocation and management so that required service levels are met. Service level agreement (SLA) planning and fulfillment 85 provides advance arrangements and procurement of cloud computing resources where future requirements are anticipated according to SLAs.

[0116] The workload layer 90 provides examples of functions for which a cloud computing environment may be utilized. Non-limiting examples of workloads and functions that may be provided from this layer include: mapping and navigation 91; software development and lifecycle management 92; virtual classroom instruction delivery 93; data analytics processing 94; transaction processing 95; and edge application deployment processing 96.

[0117] Aspects of the 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 media) having computer-readable program instructions that cause a processor to perform aspects of the invention.

[0118] A computer-readable storage medium may be a tangible device that can hold and store instructions for use by an instruction execution device. The computer-readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disc read-only memory (CD-ROM), digital versatile disk (DVD), memory sticks, floppy disks, mechanically encoded devices such as punch cards or ridge structures in grooves on which instructions are recorded, and any suitable combination of the foregoing. As used herein, a computer-readable storage medium should not be construed as a transitory signal itself, such as an electric wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., a light pulse passing through a fiber optic cable), or an electrical signal transmitted over a wire.

[0119] The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to each computing / processing device or to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network may comprise copper transmission cables, optical transmission fiber, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and transfers the computer-readable program instructions to a computer-readable storage medium in the respective computing / processing device for storage.

[0120] The computer-readable program instructions for carrying out the operations of the present invention may be either assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, configuration data for configuring an integrated circuit, or source or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk®, C++, or the like, and procedural programming languages such as the “C” programming language or similar programming languages. The computer-readable program instructions may run entirely on the user's computer, as a standalone software package, partially on the user's computer, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be to an external computer (e.g., via the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA) may execute computer readable program instructions to personalize the electronic circuitry by utilizing state information of the computer readable program instructions to perform aspects of the present invention.

[0121] Aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.

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

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

[0124] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of instructions, including one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions described in the blocks may occur out of the order described in the figures. For example, two blocks shown in succession may actually be realized as a single step, executed concurrently, substantially concurrently, partially, or fully in an overlapping manner, or the blocks may possibly be executed in the reverse order, depending on the functionality involved. It should also be noted that each block of the block diagrams and / or flowchart diagrams, and combinations of blocks in the block diagrams and / or flowchart diagrams, may be implemented by a dedicated hardware-based system that performs the specified functions or operations, or executes a combination of dedicated hardware and computer instructions.

[0125] Further to the above, one or more aspects may be provided, offered, deployed, managed, serviced, etc. by a service provider that offers to manage a customer environment. For example, a service provider may create, maintain, support, etc. computer code and / or computer infrastructure that implements one or more aspects for one or more customers. In return, the service provider may receive payments from customers under, by way of example, subscription and / or commission agreements. Additionally or alternatively, the service provider may receive payments from sales 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 one example, deploying an application includes providing a computer infrastructure operable to perform one or more embodiments.

[0127] As a further aspect, a computing infrastructure may be deployed that includes computer-readable code integrated into a computing system, where the code combined with the computing system is capable of performing one or more embodiments.

[0128] As another further aspect, there may be provided a process for integrating a computing infrastructure comprising integrating computer-readable code into a computer system including a computer-readable medium, wherein the computer medium includes one or more embodiments, and the code combined with the computer system is capable of executing one or more embodiments.

[0129] Although various embodiments have been described above, these are merely examples. For example, additional, fewer, and / or other deployment characteristics may be contemplated, as well as various modifications to the processing logic. Many modifications are possible.

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

[0131] Additionally, other types of computing environments may be used to advantage. As an example, a data processing system suitable for storing and / or executing program code may be used, including at least two processors coupled directly or indirectly to memory elements through a system bus. The memory elements may include, for example, local memory employed during the actual execution of the program code, bulk storage, and cache memory that provides temporary storage of at least some program code to reduce the number of times the code must be retrieved from bulk storage during execution.

[0132] Input / output or I / O devices (including but not limited to keyboards, displays, pointing devices, DASDs, tapes, CDs, DVDs, thumb drives, and other memory media, etc.) may 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 become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modems, and Ethernet cards are just a few examples of available types of network adapters.

[0133] The terminology used herein is for the purpose of describing particular embodiments only and is 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 dictates otherwise. It will be further understood that the terms "comprise" and / or "comprising," as used herein, 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] The corresponding structure, material, acts, and equivalents of all means or step-plus-function elements in the following claims are intended to include, when present, any structure, material, or acts for performing a function in combination with other claimed elements as specifically claimed. The description of one or more embodiments has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the disclosed form. Many modifications and variations will be apparent to those skilled in the art. The embodiments were chosen and described to best explain various aspects and practical applications and to enable others skilled in the art to appreciate various embodiments with various modifications as suited to the particular use contemplated.

Claims

1. 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 embodied therein, the program instructions readable by a processing circuit, the processing circuit causing:

1. A method for performing edge application deployment in a network, the network having a plurality of edge sites having an edge computing infrastructure, the method comprising: deploying a pseudo application instance (pApp) of the edge application at each edge site of a first group 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 one or more edge sites of a second group of the plurality of edge sites, wherein the pApp is a lightweight, application-specific instance of the rApp and has less application functionality than the rApp, the edge sites of the first group are larger than the edge sites of the second group, and user device interactions with the edge application are routed through selected pApps of edge sites of the first group to the rApps of the second group. A computer program product for causing a computer to perform a method comprising:

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

3. 3. The computer program product of claim 1, wherein the network is a cellular network, and the method further comprises handing off the user device interaction with the application from the selected pApp of the first group of edge sites to another pApp of the first group of edge sites based on user device movement.

4. 10. The computer program product of claim 1, further comprising: selecting the rApp of the second group for servicing the user device interaction using one or more determined performance metrics at runtime by the selected pApp.

5. 10. The computer program product of claim 1, further comprising: upgrading pApps of edge sites of the first group of edge sites to rApps at runtime based on one or more monitored policy-based metrics.

6. 10. The computer program product of claim 1, further comprising: downgrading the rApp of the second group of edge sites to a pApp at runtime based on one or more monitored policy-based metrics.

7. 10. The computer program product of claim 1, wherein the step of performing edge application deployment is via one or more container orchestrators.

8. 2. Performing an edge application deployment in a network, the network having a plurality of edge sites with edge computing infrastructure, the performing comprising: deploying a pseudo application instance (pApp) of the edge application at each edge site of a first group 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 one or more edge sites of a second group of the plurality of edge sites, wherein the pApp is a lightweight, application-specific instance of the rApp and has less application functionality than the rApp, the edge sites of the first group are larger than the edge sites of the second group, and user device interactions with the edge application are routed through selected pApps of edge sites of the first group to the rApps of the second group. A computer-implemented method comprising:

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

10. 10. The computer-implemented method of claim 8, wherein the network is a cellular network, and the method further comprises handing off the user device interaction with the application from the selected pApp of the first group of edge sites to another pApp of the first group of edge sites based on user device movement.

11. 11. The computer-implemented method of claim 8, further comprising using one or more determined performance metrics at runtime by the selected pApp to select the rApp of the second group to service the user device interaction.

12. 12. The computer-implemented method of claim 8, further comprising: upgrading pApps of edge sites of the first group of edge sites to rApps at runtime based on one or more monitored policy-based metrics.

13. 13. The computer-implemented method of claim 8, further comprising downgrading the rApp of the second group edge site to a pApp at runtime based on one or more monitored policy-based metrics.

14. 14. The computer-implemented method of claim 8, wherein performing edge application deployment is via one or more container orchestrators.

15. 1. A computer system for facilitating processing in a computing environment, the computer system comprising: memory; and The computer system includes at least one processor in communication with the memory, the computer system being configured to execute a method, the method comprising:

2. Performing an edge application deployment in a network, the network having a plurality of edge sites with edge computing infrastructure, the performing comprising: deploying a pseudo application instance (pApp) of the edge application at each edge site of a first group 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 one or more edge sites of a second group of the plurality of edge sites, wherein the pApp is a lightweight, application-specific instance of the rApp and has less application functionality than the rApp, the edge sites of the first group are larger than the edge sites of the second group, and user device interactions with the edge application are routed through selected pApps of edge sites of the first group to the rApps of the second group. A computer system comprising:

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

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

18. 18. The computer system of claim 15, further comprising: selecting the rApp of the second group to service the user device interaction using one or more performance metrics determined at runtime by the selected pApp.

19. 19. The computer system of claim 15, further comprising: upgrading pApps of edge sites of the first group of edge sites to rApps at runtime based on one or more monitored policy-based metrics.

20. 20. The computer system of claim 15, further comprising downgrading the rApp of the second group of edge sites to a pApp at runtime based on one or more monitored policy-based metrics.

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