Selecting a device suitable for hosting at least one process of an application among a plurality of devices of a communication infrastructure, the application being instantiated from the at least one process
Patent Information
- Application Number
- EP2023768917
- Authority / Receiving Office
- EP · EP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-09-28
- Filing Date
- 2023-09-19
- Publication Date
- 2025-08-06
AI Technical Summary
Current communication infrastructure architectures, particularly in edge computing and Content Delivery Networks, are inefficient due to the need for replicating applications and content across multiple Points of Presence (PoPs) to ensure quality of service, leading to resource wastage and high costs, especially when deploying or updating applications that require low latency and mobility support.
A method for dynamically selecting devices within a communication infrastructure to host application processes based on client location and resource parameters, allowing for on-demand instantiation and optimal resource allocation, ensuring low latency and quality of service by choosing devices that are closest to the client while meeting specific resource requirements.
This approach enables efficient use of infrastructure resources, reduces costs, and provides a better user experience by ensuring applications are deployed closer to clients, supporting low-latency services and mobility, while optimizing resource utilization and deployment complexity.
Smart Images

Figure 1.1
Abstract
Description
[0001] DESCRIPTION
[0002] SELECTION OF A DEVICE SUITABLE FOR HOSTING AT LEAST ONE PROCESS OF AN APPLICATION FROM A PLURALITY OF DEVICES OF A COMMUNICATION INFRASTRUCTURE, THE APPLICATION BEING INSTANCED FROM THE AT LEAST ONE PROCESS
[0003] 1. Technical field
[0004] The invention is implemented in a communication network, such as a telecommunications network capable of routing communication data from and to fixed or mobile terminals. The invention aims more specifically to dynamically select one or more devices capable of hosting an application intended to be used by a client entity.
[0005] 2. State of the art
[0006] According to known techniques, applications are installed in a durable and fixed manner on devices of a communication network and naming information of the DNS (Domain Name System) or URI (Uniform Resource Identifier) type makes it possible to identify and join a device as well as an application installed on a device. The devices can be physical equipment or virtualized instances such as virtual machines. The development of network virtualization and the implementation of distributed architectures, notably based on MEC (Mobile Edge Computing) type solutions, aimed at deploying storage and computing infrastructures as close as possible to users is increasingly common.These storage and computing infrastructures are also limited in resources and users are themselves connected in different locations requiring the deployment of applications in a multitude of computing and storage infrastructures. This development of access resources, also called Edge Computing in English, is most often adapted, according to prior art techniques, to the deployment of CDN (Content Delivery Network) type resources which allow content to be hosted statically (such as caches), on geo-distributed PoPs (Point of Presence).These architectures are not optimal because, on the one hand, it is necessary to replicate content and applications across a plurality or even all of the PoPs to satisfy, while guaranteeing a good quality of experience, the different clients wishing to access the application and content. This method is therefore costly in terms of resources and poorly suited to the growing evolution of applications and content that clients want to access regardless of their location or even during their mobility.On-demand instantiation services that avoid the configuration and static installation of applications are gradually appearing, particularly among entities hosting content, but these offers, although more dynamic, are linked to content and do not allow for responding to on-demand needs on a geo-distributed infrastructure and do not allow for responding in particular to new types of application, such as for example gaming applications in a moving situation, for example within a vehicle. Existing solutions therefore do not allow for economical management, in particular, of access resources of a communication network including the devices hosting the applications, these resources being limited since they are deployed at the edge of a network infrastructure, while guaranteeing the user of an application an optimal quality of service independent of their location.Furthermore, state-of-the-art solutions are quite costly when an application needs to be deployed or updated, due to the multitude of PoPs to be updated, generally simultaneously to ensure satisfactory access for a plurality of users.
[0007] The present invention aims to provide improvements over the state of the art.
[0008] 3. Statement of the invention
[0009] The invention improves the situation using a method for selecting a device suitable for hosting at least one process of an application from among a plurality of devices of a communication infrastructure, the application being instantiated from the at least one process, the method being implemented by an entity for managing the topology of the infrastructure, suitable for managing resources of the devices of the plurality, and comprising:
[0010] - a receipt from a client entity of a request to use the application,
[0011] - obtaining a parameter associated with at least one process and location data of the client entity,
[0012] - a selection of the device from among the plurality, whose position in the infrastructure is at a required distance relative to the location data of the client entity obtained, the selected device further comprising a resource making it possible to satisfy the parameter obtained.
[0013] The selection method is novel and inventive since it allows an application, comprising at least one process or executed from the at least one process, to be dynamically used on one or more selected devices identified as a hosting device. This allows a client to use the application, such as a data service (audio, video, text, etc.), ensuring compliance with constraints associated with this application. In particular, by ensuring that the selected device(s) comply with at least one parameter and, on the other hand, that the device is located within a required maximum distance from the client entity, the selection of an appropriate device makes it possible to guarantee a satisfactory customer experience for the client having requested the use of the application and, on the other hand, a saving in the use of infrastructure resources.The method is particularly relevant for applications or services requiring low latency where the position of the device, close to the client entity, and the characteristic or parameter of the service, for example QoS, make it possible to satisfy a latency requirement specific to the required service. The method is particularly relevant because it makes it possible to deploy an application by selecting a device for each of the processes required to instantiate the application, each process being able to have distinct parameters and being able to be hosted more or less far away from a client entity. Thus, certain processes of an application may be installed close to a client entity (for example in an MEC architecture (in English Mobile Edge Computing) while other processes of the application may be installed in the core network of the infrastructure.An infrastructure device can independently correspond to a physical device (server, network equipment) or a virtual machine. The client entity has a fairly broad meaning since it can be a client terminal (PC, smartphone, box, etc.) but the usage request can also be obtained from an infrastructure administration entity, for example to instantiate a network application also called a network service, in the infrastructure. For example, this could involve instantiating a new routing protocol in a network infrastructure or a web access service optimization function.
[0014] According to one aspect of the invention, the method further comprises instantiating the at least one process on the selected device.
[0015] In the case where, for example, a process of the application (or all of the processes of the application) is not deployed on a device that can satisfy the parameters obtained and / or the device hosting the application is not sufficiently close to the client entity, or the process is not yet deployed in the infrastructure, the management entity can advantageously instantiate, directly or via another entity of the infrastructure, the process on a device so as to meet the required requirements (parameters, location). The method also makes it possible to best adjust the use of the infrastructure resources by deploying applications on demand and thus limiting the use of the resources of the infrastructure devices.
[0016] According to a particular characteristic of this embodiment, the selection method further comprises a transmission to the client entity of an instruction to put the client entity on hold corresponding to the instantiation time of the at least one process on the selected device.
[0017] When an instantiation of a process or application on a selected device is required, the terminal or client entity that requested use of the application or process is put on hold so that the client entity does not attempt to use the updated application with the process or application to be instantiated while it is not yet available, and the client entity fails. This putting on hold thus improves the quality of experience for the client entity. At least one entity or device of the infrastructure thus comprises a hardware or software component making it possible to put a client entity on hold before the actual instantiation of the application or process on a hosting device.
[0018] According to another aspect of the invention, in the selection method, the parameter associated with the at least one process belongs to the group comprising:
[0019] - data relating to a resource required for the storage of at least one process in the device,
[0020] - data relating to a processing capacity required for the operation of at least one process,
[0021] - data representative of the maximum latency allowed between the device to be selected and the client entity,
[0022] - quality of service data relating to at least one process.
[0023] The selection method can advantageously be implemented by taking into account one or more parameters. In particular, device capacity parameters, in terms of CPU (Central Processing Unit) and / or GPU (Graphics Processing Unit) can be taken into account to quantify the resources required for the device or devices to be selected. Process-related parameters, in particular those relating to latency and quality of service (transit time, bandwidth, compliance with protocol data) can be taken into consideration for the selection of the device.
[0024] According to another aspect of the invention, the selection method further comprises a transmission to the client entity of identification data for the selected device.
[0025] Once the device is selected, and possibly a process has been instantiated on the selected device, the management entity transmits to the client entity that issued the usage request identification data for the selected device, such as DNS (Domain Name System) information, or URI (Uniform Resource Identifier) type information, allowing the client entity, for example, to be able to directly contact this device and therefore the process or even the application.
[0026] According to another aspect of the invention, in the selection method, the infrastructure topology management entity uses a weighted directed graph comprising the plurality of infrastructure devices to select the device from the plurality.
[0027] The management entity can advantageously use a weighted directed graph to have improved knowledge of the distance of a device from the client entity and thus consider a distance, not only in relation to a geographical and / or topological distance, but also in relation to link capacities between devices and / or device processing capacities.
[0028] According to a particular characteristic of this embodiment, in the selection method, the selection of the device from among the plurality comprises:
[0029] - a determination of a set of devices among the plurality comprising devices whose distance from the client entity is less than a reference value calculated from the location data, and
[0030] - a selection of the device from the determined set of devices, said device comprising resources capable of satisfying the parameter.
[0031] The method may comprise a step of selecting a set of devices from the plurality, this set being at a maximum required distance from the client entity, this maximum distance being determined in relation to a reference value determined for example by the infrastructure operator and making it possible to guarantee a level of quality of service and / or a maximum number of hops for the device to be selected for the process(es) of the application. This selection of a device in two stages makes it possible, firstly, to consider only the eligible devices and then to analyze the hardware and software resources (memory, CPU, processing capacity, etc.) of these eligible devices only, knowing that the ineligible devices, even if they had sufficient resources, could not be selected due to their distance from the client entity.According to a particular characteristic of this embodiment, in the selection method, the reference value corresponds to a number of hops between a device to be selected and the client entity, and / or to a geographical distance between the device to be selected and the client entity, and / or to a distance between the device to be selected and the client entity taking into account a weighting of at least one link and / or of at least one function of the infrastructure positioned between the client entity and the device to be selected in the weighted graph.
[0032] A reference value representing the distance between the client entity and the device to be selected can be represented by a variety of parameters used individually or in combination. Thus, a number of hops between the client entity and the device to be selected, corresponding for example to a number of functions, illustrates the topology of the infrastructure. A geographical distance can be relevant if, for example, the infrastructure is centralized and the number of hops provides little information on the distance. Taking into account the weighting allows for improved information on the "distance" since a link or a function of the infrastructure (possibly virtualized routing equipment, router, switch, etc.)) with better capacities may be more suitable than a device that is closer from a topological point of view but whose lower capacities prove less advantageous for guaranteeing a level of quality of service for the process and therefore for the client entity for example.
[0033] According to a particular characteristic of this embodiment, in the selection method, the method comprises at least one increment of the reference value up to a maximum reference value in the case where no device is selected and for each increment, a determination step and a selection step, according to the embodiment described above.
[0034] In the case where no device is sufficiently close to the client entity, considering the different types of possible reference values, the reference value may be increased incrementally up to a maximum value, no longer allowing to guarantee a sufficiently satisfactory quality of experience for the process and the client entity or exceeding an authorized limit of deployment of the application in the infrastructure. If the maximum value is reached, the process will not be able to be used and / or instantiated on any device of the infrastructure.
[0035] According to one aspect of the invention, according to the selection method, a single device is selected for a set of processes required for the instantiation of the application, the parameter obtained being relative to the set of processes.
[0036] In the case where several processes of an application, or even all of the processes of an application, must be deployed on a single device, for example to ensure better interaction between the processes, or to ensure ease of application management, or even to limit the complexities of identifying or even resolving problems in implementing an application, a single device of the infrastructure can be advantageously selected. The selection can then be based on obtaining a parameter relating to the application or to all of the processes concerned to determine the appropriate device.
[0037] The various aspects of the selection method that have just been described can be implemented independently of one another or in combination with one another. The invention also relates to a device for selecting a device suitable for hosting at least one process of an application from among a plurality of devices of a communication infrastructure, the application being instantiated from the at least one process, characterized in that the device is configured to implement:
[0038] - a receipt from a client entity of a request to use the application,
[0039] - obtaining a parameter associated with at least one process and location data of the client entity,
[0040] - a selection of the device from among the plurality, whose position in the infrastructure is at a required distance relative to the location data of the client entity obtained, the selected device further comprising a resource making it possible to satisfy the parameter obtained.
[0041] This selection device is capable of implementing in all its embodiments the selection method which has just been described.
[0042] The invention also relates to a system for selecting at least one device suitable for hosting at least one process of an application from among a plurality of devices of a communication infrastructure, the application being instantiated from the at least one process, characterized in that the system comprises a selection device, as described above, and a client entity suitable for sending the request to use the application to the selection device.
[0043] The invention also relates to a computer program comprising instructions for implementing the steps of the selection method which has just been described, when this program is executed by a processor and a recording medium readable by a selection device on which the computer program is recorded.
[0044] The above-mentioned program may use any programming language, and may be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in any other desirable form.
[0045] The above-mentioned information carriers may be any entity or device capable of storing the program. For example, a carrier may include a storage medium, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or a magnetic recording medium.
[0046] Such a storage medium may, for example, be a hard disk, a flash memory, etc. On the other hand, an information carrier may be a transmissible medium such as an electrical or optical signal, which may be conveyed via an electrical or optical cable, by radio or by other means. A program according to the invention may in particular be downloaded from a network such as the Internet.
[0047] Alternatively, an information carrier may be an integrated circuit in which a program is incorporated, the circuit being adapted to carry out or to be used in carrying out the method in question.
[0048] 4. Brief description of the drawings
[0049] Other characteristics and advantages of the invention will appear more clearly on reading the following description of particular embodiments, given as simple illustrative and non-limiting examples, and the appended drawings, among which:
[0050] [Fig 1] shows a network infrastructure in which the selection method is implemented according to one aspect of the invention,
[0051] [Fig 2] describes an implementation of the selection method, according to one embodiment of the invention,
[0052] [Fig 3] describes an implementation of the selection method, according to another embodiment of the invention,
[0053] [Fig 4] describes a selection device, according to one embodiment of the invention.
[0054] 5. Description of embodiments
[0055] In the remainder of the description, embodiments of the invention are presented in a communication infrastructure. The terms "communication infrastructure" or "communication network" may be used interchangeably in the embodiments of the invention. This communication infrastructure may be implemented to route communication data to fixed or mobile terminals and the infrastructure may be implemented from physical equipment and / or virtualized functions. This infrastructure may be used for routing and / or processing data of residential or business customers, fixed and mobile users, and may be operated by a telecommunications operator.
[0056] Reference is first made to [Fig 1] which presents a communication infrastructure in which the selection method is implemented according to one aspect of the invention.
[0057] In a communication infrastructure 200, an entity 110 for managing the topology of the infrastructure 200 manages the various resources 102, 103, 104, VM1, VM2, VM3, VM4, VM5 of the infrastructure 200. This management entity 110, also called Topology Server, thus maintains a database comprising information on the various devices or resources 102, 103, 104, VM1, VM2, VM3, VM4, VM5 and on the applications and processes Proc1, Proc2, Proc3 and Proc4 instantiated and instantiable on these devices. A device, according to the invention, may be a physical device 102, 103, 104 or a virtual instance such as a virtual machine VM1, VM2, VM3, VM4 and VM5 or even a container, according to another example. The virtual machine VM1 thus corresponds to the virtual machine VM1 on the physical device 102.A process is considered instantiable on a device if its dependencies are installed, if the container images of the components comprising one or more processes are available on the device, if the device is authorized, for example by the infrastructure manager or the resource manager, to host this process. The management entity 110 comprises a selection device 100 (Sel) executing the selection operations in order to identify a device of the infrastructure 200 already hosting a required process or to identify a device on which a process required by a client entity 10 (Clt) will be instantiated. This selection can be carried out using a weighted directed graph comprising all the devices 102, 103, 104, VM1, VM2, VM3, VM4, VM5 of the infrastructure 200 to select the device capable of hosting the process in accordance with the usage request received from the client entity 10.The client entity 10 may be a user terminal such as a smartphone, a PC, a residential gateway or any other device that a user can use to run or use an application. The client entity Clt may also be an administration entity of the communication infrastructure, responsible for example for deploying network services on demand, therefore dynamically. The application may be a value-added application, such as a voice, video and / or data service for example with a server or a terminal not shown in [Fig 1]. An application may be instantiated from one or more processes, a process being characterized by an ordered sequence of operations leading to a result.Thus, according to [Fig 1], the application required by the client entity 10 from the management entity 110 comprises four processes Procl, Proc2, Proc3 and Proc4, these processes possibly being processes relating to network operations and / or application-type operations. According to an example, it may be an operation of discovering a server, connecting to a server, receiving an application flow, or processing an application flow. Each process Procl, Proc2, Proc3 and Proc4 of the application is characterized by a set of parameters. According to a non-exhaustive list of these parameters, a parameter may be.
[0058] - data relating to the resources required for storing the at least one process in the device 102, 103, 104, VM1, VM2, VM3, VM4, VM5, this data being able to correspond for example to a number of bytes in the resource,
[0059] - data relating to the processing capacities required for the operation of at least one process Procl, Proc2, Proc3 and Proc4, this data being able to be illustrated by a CPU (Central Processing Unit) or GPU capacity of the resource
[0060] - data representing the maximum latency allowed between the device to be determined and the client entity, this data being able to be represented for example by a number of milliseconds for a packet routed between the client entity and the device, this data being able to correspond to the result of a network tool of the Ping or Traceroute type,
[0061] - quality of service data relating to the process Procl, Proc2, Proc3 and Proc4 for which a device 102, 103, 104, VM1, VM2, VM3, VM4, VM5 is selected, this data being able to be represented by a quality of service level (standard, silver, gold) or by guarantees of routing of a data flow of a typical application. Each application therefore comprises one or more processes, such as the processes Procl, Proc2, Proc3 and Proc4, each process being characterized by a certain number of constraints or parameters, such as minimum quantity of CPU / memory resources, use of a GPU (Graphics Processing Unit), maximum latency allowed between the instantiated application and the user in order in particular to guarantee an optimal quality of experience to the user of the client entity 10.The management entity 110 uses these parameters or constraints as well as the location of the client entity to determine the most suitable device for the use of the application by the client entity. Thus, in the case where a process is already instantiated in the infrastructure 200, the management entity 110 must determine whether the location of this device is suitable for the execution of the application by the client entity having transmitted the request and whether, on the other hand, the method is implemented in accordance with the identified parameters. According to an alternative, the parameters can in fact be linked to the different processes Proc1, Proc2, Proc3 and Proc4 of the application but also to the type of client entity 10, knowing for example that the parameters in terms of quality of service differ depending, for example, on whether the client entity is a terminal suitable for very high speed quality or not, for example.According to one example, the client entity 10 may be an administration station of the communication infrastructure 200 and the selection method is implemented to select and possibly instantiate a network service of the access, routing, address translation, protocol conversion type in the communication infrastructure 200.
[0062] We then refer to [Fig 2] which describes an implementation of the selection method, according to an embodiment of the invention.
[0063] The entities represented in this [Fig 2] have the same characteristics as the entities with the same name in [Fig 1].
[0064] During a step El, the client entity Clt sends to the topology management entity of a communication infrastructure comprising a Sel selection device a request Req for use of an application. The request may for example comprise an FQDN (Fully Qualified Domain Name) request to obtain use of an application. The client entity Clt will have been previously authenticated, in particular to verify that it can actually use the requested application and it will also have obtained the address of the management entity, for example when connecting to a communication infrastructure or by static configuration, for example in the case where the client entity is an infrastructure administration platform.The usage request may be transmitted directly or indirectly, for example via an application management platform, to the management entity and therefore to the selection device included in the management entity. The Sel selection device having received this request, determines and selects the device(s) hosting or capable of hosting the application or a process of the application.
[0065] In an optional step, the Sel selection device identifies the processes related to the application. This step can be performed from a database owned or not by the Sel selection device or it can be performed by the service platform in the case where the customer entity's usage request is routed via this platform. In this case, the platform will forward the request and the associated processes to the required application. In another example, the customer entity forwards the usage request including process identifiers associated with the required application. In another example, the application comprises a single process and this identification is not necessary. The process is represented by the application required by the customer entity. In this example, it is considered that the application whose use is required comprises four processes Procl, Proc2, Proc3 and Proc4.
[0066] During a step E2, the selection device Sel obtains one or more parameters associated with each process identified during the previous step or with the application, for example in the case where the application is single-process. This obtaining can be carried out by means of a database internal to the topology management entity making it possible to characterize a process by one or more parameters such as those described in [Fig 1]. This obtaining can also be carried out by means of another entity capable of identifying the parameters associated with a process. According to this example, the selection device will send a request comprising an identifier of the process to an entity managing the processes and will receive in return the parameters which are associated with the process. According to an example, the service platform indicated in the description of step El above can also transmit the parameters associated with the processes.According to the embodiment of [Fig 2], in connection with [Fig 1], the parameters Pari and Par2 are obtained for the process Procl, the parameter Par3 for the process Proc2, the parameters Par3 and Par4 for the process Proc3 and the parameters Pari and Par4 for the process Proc4.
[0067] In a step E3, the selection device Sel selects one or more devices from the communication infrastructure, this or these devices having to be positioned according to a required distance between the selected device and the client entity Clt. The selected device(s) must further comprise resources making it possible to satisfy the parameters obtained previously and corresponding to each process. The selection device must select a device for each process Procl, Proc2, Proc3 and Proc4, the devices selected for each process being able to be distinct or not.The device selected for the Procl process must include resources capable of satisfying the parameters Pari and Par2, the device selected for the Proc2 process must include resources capable of satisfying the parameter Par3, the device selected for the Proc3 process must include resources capable of satisfying the parameters Par3 and Par4, the device selected for the Proc4 process must include resources capable of satisfying the parameters Pari and Par4. To perform this selection of hosting devices, the Sel selection device uses the location of the client entity, this location being able to be topological and / or geographical.The information on the location of the client entity, which may be an IP address and / or a GPS coordinate or any other data informing about the location of the client entity is for example transmitted when sending the usage request transmitted by the client entity Clt or it can be obtained by the selection device in a connection parameter of the client entity to the communication infrastructure. This location data of the client entity is taken into account by the selection device to deploy for example applications in MEC (Mobile Edge Computing) type architectures and / or to ensure a balanced distribution of the processes used by the client entities in the different devices of the infrastructure.The selection device, using for example its database on the processes deployed in the different devices and / or on the resources available on the devices which can accommodate one or more processes, selects one or more devices VM1, VM2 and VM5 associated with each process and whose distance from the client entity Clt is for example less than a reference value, for example specific to a process and / or to the infrastructure, determined by the selection device.
[0068] According to an example, this selection step E3 comprises several sub-steps. The following steps are carried out for the selection of a device for the process Procl but these steps are identical for the selection of a device for the other processes Proc2, Proc3 and Proc4, knowing that the different selections for the different processes can be carried out iteratively or in parallel.
[0069] During a step E31, the selection device Sel determines a set of devices from among the plurality, this set comprising devices positioned at a distance less than a reference value as a function of location data of the client entity Clt. This reference value represents for example a number of hops in the infrastructure between a potentially selected infrastructure hosting device and the client entity, and / or a geographical distance between the potentially selected device and the client entity, and / or a distance between the potentially selected device and the client entity taking into account a weighting of at least one link and / or at least one function (equipment, router, switch, etc.) positioned between the client entity and the device to be selected, for example from a weighted directed graph as described above.The number of hops corresponds, for example, to a number of functions ensuring the routing of a packet from a process between the client entity Clt and a potentially selected device.
[0070] According to an example, the set of devices determined as valid with respect to the reference value includes the devices VM1, VM2, VM3, VM4 as presented in [Fig 1]. Knowing that only the location data of the client entity Clt is taken into account for the definition of this set, these devices of the set are a priori selectable for the different processes Procl, Proc2, Proc3 and Proc4.
[0071] The selection device Sel then selects, during a step E32, from among these preselected devices VM1, VM2, VM3, VM4, the device comprising resources capable of satisfying the parameters Pari and Par2 of the Process Procl. The selection device Sel determines whether one or more devices from among the devices VM1, VM2, VM3, VM4 already hosts the process in accordance with the parameters Pari and Par2. If this is the case, the selection device Sel selects it. If more than one device hosts the process, the selection device Sel chooses one from among these devices either according to the distance of the device to be selected from the client entity Clt or, for example, according to the storage or computing capacities of the device. The selection device Sel, according to this example, selects, during step E32, the device or the virtual machine VM1.
[0072] In a step E4, according to one alternative, the selection device Sel informs the client entity Clt about the device VM1 selected for the process Procl. This step can be performed immediately after step E32 or after the complete end of step E3. According to another option, the selection device transmits a message comprising the different devices instantiating the different processes Procl, Proc2, Proc3 and Proc4 once a device has actually been selected for each process of the application, thus avoiding informing the client entity Clt by a message associated with each process, and only informing the client entity when the application, and therefore all the processes required for the instantiation of the application, can actually be instantiated in the communication infrastructure.
[0073] This selection step E32 is repeated for the other processes Proc2, Proc3 and Proc4. If, during step E32, no device hosts a required process, then the selection device Sel instantiates the process on a device having the resources required to satisfy the parameters associated with the process. For example, the selection device Sel does not identify any device among the devices VM1, VM2, VM3, VM4 instantiating the process Proc2 and determines during step E'32 that the device VM2 has the resources for the instantiation of the process Proc2. During a step E5, the selection device instantiates the process Proc2 on the device or virtual machine VM2. This instantiation can be carried out directly by the selection device Sel or through another entity of the infrastructure, such as a device configuration entity.According to an alternative, during a step E6, the selection device Sel transmits to the client entity Clt a waiting message, to indicate to it that the process is being instantiated. According to another alternative, the waiting message relates to the requested application and the message is sent to the client entity Clt when one or more of the processes Procl, Proc2, Proc3, Proc4 of the application must be instantiated on a hosting device. Thus, according to this alternative, the client entity Clt receives a waiting message directly linked to the initially transmitted usage request.The waiting corresponds for example to the transmission of information on "a waiting room", corresponding to a component installed on a hosting device VM1, VM2, VM3, VM4 or on the management entity 110 or even on a specific device not shown, which redirects the client entity to the installed process once it has actually been installed. In the case where the process was already hosted on a device, the sending of the waiting instruction and the use of the waiting room on the device is not required unless the process is in standby mode or inoperative for a period. In the case where the waiting message relates to the required application, the waiting room is advantageously implemented in one of the devices hosting one of the processes, for example in a device comprising a process for managing resources relating to the application.This device, whether it is a hosting device VM1, VM2, VM3, VM4, the management entity 110 or a specific device assigned to this role, must thus be informed of the effective instantiation of all the processes required for the instantiation of the application, in order to redirect the client entity Clt, for example by implementing an http redirection or by using an FQDN associated with the application.
[0074] Steps E5 and E6 can be performed directly after step E'32 or after the completion of step E3 for all processes Procl, Proc2, Proc3 and Proc4 as shown in [Fig 2].
[0075] During a step E”32 of step E3, aimed at determining a device instantiating or, failing that, capable of instantiating, the process Proc3 in accordance with the parameters Par3 and Par4, the selection device does not identify such a device among the devices VM1, VM2, VM3, VM4. In this case, the reference value used to define a set of devices capable of hosting a process of the application is incremented during a step E”31. The incrementation may consist of adding one or more hops and / or widening the geographical distance with respect to the client entity Clt. According to this example, the set of eligible hosting devices also includes the device VM5 now eligible to host one of the processes. The selection device Sel determines during a step E” '32 that the device VM5 is capable of instantiating the process Proc3 in accordance with the parameters Par4 and Par5.The selection device Sel instantiates the process Proc3 on the virtual machine VM5 during a step E7 and, alternatively, transmits a waiting instruction to the client entity Clt during a step E8. In the case where no device instantiates or can instantiate the process Proc3 after the incrementation, step E”31 is repeated until the reference value reaches a maximum. In this case, the process could not be instantiated on a device of the infrastructure and the application, in the case where this process is absolutely necessary for the operation of the application, cannot be installed in the infrastructure in accordance with the required requirements. In this case, the selection device informs the client entity Clt that the application cannot be used by the client and that its request cannot therefore be satisfied.
[0076] During a step E””32, the selection device determines among the eligible devices, before or after the incrementation of the reference value, that the device VM1 instantiates the process Proc4 and selects it. The selection device has the possibility of considering only the devices VM1, VM2, VM3 and VM4 to determine the device capable of hosting the process Proc4 or it can also consider the device VM5, depending on whether it performs step E””32 after step E””31 as in [Fig 2] or before this step E””31 according to an alternative not shown. The selection device can in fact select all the possible processes in the set of devices defined by the reference value, or consider the largest possible set relative to the reference value to select a device.
[0077] Alternatively, step E3 comprises only one iteration and the selection device selects the devices for the different processes from a set of devices defined with respect to the location of the client entity without the possibility of modifying this set.
[0078] In the case where all the processes Proc1, Proc2, Proc3 and Proc4 have actually been instantiated by the selection device Sel or prior to the implementation of the selection method, the selection device Sel can advantageously inform the client entity Clt during a step E9 about the availability of the application in its completeness and possibly inform the client entity about the devices VM1, VM2 and VM5 used for the instantiation of the processes of the application. This information is particularly relevant in the case where the client entity Clt is an infrastructure administration entity where the information on the hosting of the processes of an application is very relevant, in particular to ensure the missions of management and identification of incidents or degradation of quality of service.
[0079] We then refer to [Fig 3] which describes an implementation of the selection method, according to another embodiment of the invention.
[0080] In this embodiment, a device is selected to host an application, in accordance with a request to use this application from a client entity. In this embodiment, the application is single-component and the process or processes of the application are hosted on a single device of a communication infrastructure. [Fig 3] presents the steps implemented by a selection device of a management entity of the communication infrastructure.
[0081] In steps E1 and E2, the device receives a request to use an application from a client entity and obtains a set of parameters relating to this application, in accordance with steps E1 and E2 described in [Fig 2].
[0082] The selection device, for example from a weighted directed graph or from a database comprising the different devices, determines during a step E3 a set of devices whose distance from the client entity is less than a distance N.
[0083] During a step E32a, the selection device evaluates whether a device among the devices determined during step E31a has sufficient resources and has already instantiated the application required by the client entity, in accordance with the parameters obtained during step E2.
[0084] In the case where this is the case, that is to say that a device has been identified during step E32a, the device informs the client entity during a step E9. If no device has instantiated it, the selection device evaluates during a step E32b whether a device selected during step E31a has the necessary resources for the process or processes of the required application, and subsequently the application itself. If a device is actually suitable for this hosting, it is selected, and an identifier (IP address, URI, FQDN identifier) is transmitted to the client entity during a step E9. Furthermore, the application is actually instantiated on the device selected during a step E5.
[0085] In the case where no device is selected during step E32b, the device determines during a step E31b whether the value N is equal to or greater than a reference value NMax, representative of a maximum acceptable distance for a device to host the required application. If the value is equal to or greater than this value N, an error message is returned to the client entity during a step E10 indicating that the client entity cannot use the application or cannot install the application, depending on the client entity considered.
[0086] In the case where the value N is less than the value NMax, the value N is incremented during a step E3 le, this incrementation possibly corresponding to an increase in the number of hops and / or to a larger radius of the domain in which a device is selected. Once the value N has been incremented, step E3 la is carried out again. Steps E31a, E31b and E31 c are sub-steps of step E31 described in [Fig 2] and steps E32a and E32b are sub-steps of step E32 described in [Fig 2].
[0087] We then refer to [Fig 4] which presents a selection device 100 according to one embodiment of the invention.
[0088] Such a selection device can be implemented in a management entity, such as the administration entity of a telecommunications network, for example instantiated from virtualized functions.
[0089] For example, the selection device 100 comprises a processing unit 130, equipped for example with a microprocessor pP, and controlled by a computer program 110, stored in a memory 120 and implementing the selection method, in the different embodiments, according to the invention. At initialization, the code instructions of the computer program 190 are for example loaded into a RAM memory, before being executed by the processor of the processing unit 130.Such a selection device 100 comprises a receiving module 101, configured to receive from a client entity a request Req for use of the application, a obtaining module 102, configured to obtain a parameter associated with the at least one process and a location data item of the client entity, a module 103 for selecting the device from among the plurality, the position of which in the infrastructure is at a required distance relative to the location data item of the client entity obtained, the selected device further comprising a resource making it possible to satisfy the parameter obtained. Advantageously, the selection device 100 further comprises a transmitter, adapted to transmit to the client entity an instruction to put the client entity on hold corresponding to the instantiation time of the at least one process on the selected device.Advantageously, the transmitter is configured to transmit to the client entity identification data for the selected device.
[0090] Advantageously, the selection device 100 comprises a determination module, adapted to determine a set of devices from among the plurality comprising devices whose distance from the client entity is less than a reference value calculated from the location data, and a selection module, adapted to select the device from among the set of devices determined, said device comprising resources capable of satisfying the parameter.
[0091] The term "module" can correspond to a software component as well as to a hardware component or a set of hardware and software components, a software component itself corresponding to one or more computer programs or sub-programs or more generally to any element of a program capable of implementing a function or a set of functions.
Claims
CLAIMS Method for selecting a device suitable for hosting at least one process (Procl, Proc2, Proc3, Proc4) of an application from among a plurality of devices (102, 103, 104, VM1, VM2, VM3, VM4, VM5) of a communication infrastructure (200), the application being instantiated from the at least one process, the method being implemented by a management entity (110) of the topology of the infrastructure, suitable for managing resources of the devices of the plurality, and comprising: - a reception (El) from a client entity (Clt) of a request to use the application, - obtaining (E2) a parameter associated with at least one process (Procl, Proc2, Proc3, Proc4) and a location data of the client entity, - a selection (E3) of the device (VM1, VM2, VM5) from among the plurality, whose position in the infrastructure is at a required distance from the location data of the client entity obtained, the selected device further comprising a resource making it possible to satisfy the parameter obtained. Selection method, according to claim 1, further comprising an instantiation (E4, E7) of the at least one process on the selected device. Selection method, according to claim 2, further comprising a transmission (E6, E8) to the client entity of an instruction to put the client entity on hold corresponding to the instantiation time of the at least one process on the selected device. Selection method, according to one of claims 1 to 3, where the parameter associated with the at least one process belongs to the group comprising: - data relating to a resource required for the storage of at least one process in the device, - data relating to a processing capacity required for the operation of at least one process, - data representative of the maximum latency allowed between the device to be selected and the client entity, - quality of service data relating to the at least one process. Selection method, according to one of claims 1 to 4, further comprising a transmission to the client entity of identification data of the selected device. Selection method, according to one of claims 1 to 5, wherein the infrastructure topology management entity uses a weighted directed graph comprising the plurality of infrastructure devices to select the device from the plurality. Selection method, according to claim 6, wherein the selection of the device from the plurality comprises: - a determination of a set of devices among the plurality comprising devices whose distance from the client entity is less than a reference value calculated from the location data, and - a selection of the device from the determined set of devices, said device comprising resources capable of satisfying the parameter. Selection method, according to claim 7, in which the reference value corresponds to a number of hops between a device to be selected and the client entity, and / or to a geographical distance between the device to be selected and the client entity, and / or to a distance between the device to be selected and the client entity taking into account a weighting of at least one link and / or of at least one function of the infrastructure positioned between the client entity and the device to be selected in the weighted graph.Selection method, according to claim 7 or claim 8, comprising at least one increment of the reference value up to a maximum reference value in the case where no device is selected and for each increment, a determination step and a selection step, according to claim 7. Selection method, according to one of claims 1 to 9, in which a single device is selected for a set of processes required for the instantiation of the application, the parameter obtained being relative to the set of processes. Device (100, Sel) for selecting a device suitable for hosting at least one process (Procl, Proc2, Proc3, Proc4) of an application from among a plurality of devices (102, 103, 104, VM1, VM2, VM3, VM4, VM5) of a communication infrastructure (200), the application being instantiated from the at least one process, characterized in that the device is configured to implement:. - a reception from a client entity of a Req request to use the application, - obtaining a parameter associated with at least one process and location data of the client entity, - a selection of the device from among the plurality, whose position in the infrastructure is at a required distance from the location data of the client entity obtained, the selected device further comprising a resource making it possible to satisfy the parameter obtained. System for selecting at least one device adapted to host at least one process of an application from among a plurality of devices of a communication infrastructure, the application being instantiated from the at least one process, characterized in that the system comprises a selection device according to claim 11 and a client entity adapted to send to the selection device the request to use the application. Computer program product comprising program code instructions for implementing a selection method according to any one of claims 1 to 10, when executed by a processor.Non-transitory recording medium readable by a computer on which is recorded a program for implementing the method according to one of claims 1 to 10 when this program is executed by a processor.