Method for orchestrating software applications in a telecommunication system, associated computer program and orchestration device

EP4584683A1Pending Publication Date: 2025-07-16THALES SA
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
EP2023764335
Authority / Receiving Office
EP · EP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-09-08
Filing Date
2023-09-07
Publication Date
2025-07-16

AI Technical Summary

Technical Problem

Current software application orchestration solutions are inadequate for constrained telecommunications networks, such as those in tactical or disaster zones, where bandwidth and stability are limited, leading to potential congestion and unreliable application execution.

Method used

A method for orchestrating software applications that collects resource availability and transport conditions in distributed telecommunications platforms, selecting platforms based on both processing and memory requirements, as well as transport conditions like bandwidth, latency, and error rate, to ensure reliable execution, and optionally includes deployment requirements and transport templates for nominal and degraded modes.

Benefits of technology

This approach enables reliable execution of software applications in constrained networks by optimizing resource allocation and transport conditions, ensuring efficient use of resources and minimizing network congestion.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 1.1
    Figure 1.1
Patent Text Reader

Abstract

The invention relates to a method for orchestrating software applications, of distributed telecommunication platforms (20), connected to links (40, 41) of a wireless telecommunication network comprising processing resources (6), the method comprising the selection of at least one platform for executing the software application via a processing resource of the selected platform, the selection being carried out according to the collected availability states of the processing resources, the memory and computing characteristics required for the execution of the application, current transport conditions on the wireless telecommunication network, and a transport template relating to the software application that indicates minimum transport conditions required for implementing telecommunications with the software application during its execution, the transport conditions indicating at least one item of information associated with the links, among the available bandwidths, jitter, latencies, error rates, nominal bandwidths and occupancy rates.
Need to check novelty before this filing date? Find Prior Art

Description

DESCRIPTION Title: METHOD FOR ORCHESTRATING SOFTWARE APPLICATIONS IN A TELECOMMUNICATION SYSTEM, ASSOCIATED COMPUTER PROGRAM AND ORCHESTRATION DEVICE Technical field:

[0001] The invention lies in the field of software application orchestration, in which hardware resources, including CPUs and memories, in delocalized and distributed servers are selected to host the execution of a software application. Previous technique:

[0002] Currently, civil cloud orchestration solutions assess the suitability of a server to host software based on the available CPU resource or the amount of memory available on that server versus the software's CPU and memory requirements.

[0003] While these solutions are entirely effective on fiber optic gigabit telecommunications networks, they prove insufficient on constrained telecommunications networks and can even contribute to congestion of these networks.

[0004] A "constrained telecommunications network" means a telecommunications network in which the telecommunications capacity is limited (compared to gigabit networks) and not very stable, such as, for example, tactical telecommunications networks deployed locally and punctually in a medical or military intervention area (a disaster zone, geological or other, a conflict zone, etc.). Transmission links are frequently broken without warning (for example, by intentional or unintentional jamming), some are very limited in terms of bandwidth or experience occurrences, much more frequent than in conventional public networks, of variations in bandwidth or latency. However, in these interventions, it is necessary to be able to run software applications reliably, including on servers embedded in carrier vehicles moving in, on, or near the intervention zone

[0005] There is therefore a need for a software application orchestration solution that can be implemented satisfactorily on any type of telecommunications network, including constrained ones. Summary of the invention:

[0006] To this end, according to a first aspect, the present invention describes a method for orchestrating software applications in a telecommunications system comprising an electronic orchestration device, distributed telecommunications platforms (20), connected to links of a wireless telecommunications network and each comprising processing resources among memory resources and computing resources, said method comprising the following steps implemented by the orchestration device: collecting states of the processing resources, said states indicating the current availability of said resources; receiving requests indicating software applications to be executed and, for each software application indicated in a received request, obtaining the memory and computing characteristics required for the execution of said application;for each software application: selecting, from among the platforms, at least one platform for the execution of said software application via a processing resource of the selected platform, said selection being made based on at least: the collected availability states of the processing resources; and the obtained memory and computing characteristics required for the execution of said application; and assigning at least said selected platform for the execution of said software application; said method being characterized in that it further comprises the following steps implemented by the orchestration device: collecting current transport conditions on said wireless telecommunications network, said transport conditions indicating at least one piece of information associated with the links among their available bandwidth, their jitter, their latency, their error rate, their nominal bandwidth and their occupancy rate; for each software application indicated in a received request, further obtaining transport template(s) indicating minimum transport conditions required for implementing telecommunications with said software application during its execution; said selection of the platform is further carried out as a function of the transport conditions collected and said transport template(s) obtained.

[0007] In embodiments, such a method will further comprise at least one of the following features:

[0008] - said received request relating to said software application further indicates deployment requirements for the installation of said software application; and said processing resource selection is further performed based on said deployment requirements for the installation of said software application;

[0009] - in a tree structure, two software applications are connected by a branch of said structure if they have been defined to implement telecommunications between them during their execution and each branch is associated with transport templates required specifically for said telecommunications and according to which: the selection of at least one platform for the execution of a software application, when it is part of said tree structure, further comprises at least the selection of a platform for the execution of another application of said tree structure, said platforms having to be a single platform, according to a rule relating to the transport templates on the branches connecting them, if this reduces the need for exchanges of the selected platform with the other platforms;

[0010] - following said selection, a reservation of transport resources is triggered on at least one link of the wireless telecommunications network based on said transport template(s) and current transport conditions, for the implementation of telecommunications with said software application during its execution;

[0011] - said transport templates for implementing telecommunications with said software application during its execution comprise a first transport template corresponding to a nominal operating mode of the software application and a second transport template, less demanding than the first transport template, corresponding to a degraded operating mode of the software application; said selection of processing resource being carried out as a function of said first and second transport templates as obtained.

[0012] According to another aspect, the invention describes a computer program intended to be stored in the memory of an electronic orchestration device further comprising a microcomputer, said computer program comprising instructions which, when executed on the microcomputer, implement the steps of a method according to the first aspect of the invention.

[0013] According to another aspect, the invention describes an electronic device for orchestrating software applications for a telecommunications system comprising distributed telecommunications platforms, connected to links of a wireless telecommunications network and each comprising processing resources among memory resources and computing resources, said orchestration device being adapted to collect states of the processing resources, said states indicating the current availability of said resources, to receive requests indicating software applications to be executed and, for each software application indicated in a received request, to obtain memory and computing characteristics required for the execution of said application;for each software application, said orchestration device being adapted to: - select from among the platforms, at least one platform for the execution of said software application via a processing resource of the selected platform, said selection being carried out according to at least: the collected availability states of the processing resources; and; the obtained memory and computing characteristics required for the execution of said application; and - to assign at least said selected platform for the execution of said software application; said orchestration device being characterized in that it is adapted for: - collecting current transport conditions on said wireless telecommunications network, said transport conditions indicating at least one information associated with the links among their available bandwidth, their jitter, their latency, their error rate, their nominal bandwidth and their occupancy rate; - for each software application indicated in a received request, further obtaining transport template(s) indicating minimum transport conditions required for implementing telecommunications with said software application during its execution; said platform selection being further carried out based on the transport conditions collected and said transport template(s) obtained.

[0014] In embodiments, such a device will further comprise at least one of the following features:

[0015] - said received request relating to said software application further indicates deployment requirements for the installation of said software application; and said processing resource selection is further performed based on said deployment requirements for the installation of said software application;

[0016] - in a tree structure, two software applications are connected by a branch of said structure if they have been defined to implement telecommunications between them during their execution and each branch is associated with transport templates required specifically for said telecommunications and according to which: the selection of at least one platform for the execution of a software application, when it is part of said tree structure, further comprises at least the selection of a platform for the execution of another application of said tree structure, said platforms having to be a single platform, according to a rule relating to the transport templates on the branches connecting them, if this reduces the need for exchanges of the selected platform with other platforms;

[0017] - the device is adapted to, following said selection, trigger a reservation of transport resources on at least one link of the wireless telecommunications network according to said transport template(s) and current transport conditions, for the implementation of telecommunications with said software application during its execution. Brief description of the figures:

[0018] The invention will be better understood and other characteristics, details and advantages will appear more clearly on reading the following description, given without limitation, and thanks to the appended figures, given by way of example.

[0019] [Fig. 1] Figure 1 is an illustration of a telecommunications system 1 in one embodiment of the invention;

[0020] [Fig. 2] Figure 2 represents steps of a resource allocation method in one embodiment of the invention;

[0021] [Fig. 3] Figure 3 shows steps of a resource allocation method in another embodiment of the invention.

[0022] Identical references may be used in different figures when they designate the same or comparable elements. Detailed description:

[0023] Figure 1 shows a telecommunications system 1 in one embodiment of the invention.

[0024] The system 1 comprises an orchestration device 10, a plurality of processing platforms 20. In an embodiment shown here, the system 1 further comprises a database 50.

[0025] Each processing platform 20 is a hardware platform which comprises one or more servers 6, a local telecommunications network 7, a local electronic controller 8 and a data storage base 9. The network of local telecommunication, for example a wired network, interconnects the servers 6 and the local controller, within their platform 20.

[0026] In the case shown in Figure 1, the system 1 comprises three processing platforms 20: the platforms 20_1, 20_2 and 20_3, for example each embedded in a respective mobile machine (airplane, drone, rolling machine)...: the platform 20_1 is located here in an airplane, the platform 20_2 in another airplane and the platform 20_3 in a land vehicle, which circulate at the level of a geographical intervention zone.

[0027] In the embodiment considered: - platform 20_1 has two servers 6: servers SERV11 and SERVI 2; - platform 20_2 has three servers 6: servers SERV21, SERV22 and SERV23; - and platform 20_3 includes a server 6: the SER31 server.

[0028] The storage database 9 stores, in association with the identifier of each software application to be hosted considered in the present invention, the (binary) code of the application and a set of metadata relating to the software application.

[0029] Database 50 is, for example, in a building far from the intervention zone.

[0030] The orchestration device 10, hereinafter called orchestrator 10, is connected by a wireless telecommunications link 61, respectively 62, respectively 63, to the processing platform 20_1, respectively 20_2, respectively 20_3.

[0031] Furthermore, the processing platforms 20, or at least some of them, are for example interconnected with each other and / or with other wireless telecommunication entities (for example in the present case the database 50) by a constrained wireless telecommunication network. For example, in the case shown in FIG. 1, each platform 20J, i = 1 to 3, is connected by a satellite link 5i to the database 50; the platform 20_1 is connected to the platform 20_2 by a link 40, for example VHF or UHF and the platform 20_2 is connected to the platform 20_3 by a link 41 for example VHF and UHF.

[0032] These links 40, 41, 51, 52, 53 constitute transmission resources of the constrained telecommunications network of system 1.

[0033] In one embodiment, some or all of the links 40, 41, 61, 62, and 63 are logical links carried by a single physical link.

[0034] The orchestrator 10 is adapted to receive regularly, for example at least once every T t seconds, data indicating current transport conditions on links 40, 41, 51, 52 and 53, including available bandwidth and / or link occupancy rate and / or latency and / or jitter.

[0035] Regarding the value of T t : if we want to be reactive, we need a low value, for example, the value of T t will be set equal to a maximum of 1 second, but this will require a large bandwidth; the more we increase this value (up to, for example, 60 seconds), the less bandwidth we will consume, but the less responsive we will be; there is therefore a compromise to be made between consumption and responsiveness.

[0036] In another embodiment, at least some of this data is not communicated periodically but upon the occurrence of an event (for example, the bandwidth falling below (or above) defined thresholds, etc.), which makes it possible to minimize the footprint of these reports on the overall bandwidth of the network.

[0037] This data indicating the current transport conditions is for example determined by the local controllers 8 of the platforms 20 according to the exchanges implemented on the telecommunications links, then transmitted to the orchestration device 10 by the platform 20_1 on the link 6i, i = 1 to 3.

[0038] Typically, UHF, VHF links 40, 41 have fluctuating and limited bandwidths, for example, frequently - or even always - less than a hundred kbits / s or even a few tens of kbits / s; satellite links 51, 52 and 53 have a bandwidth frequently - or even always - less than a few Mbits / s (for example less than 10) or even a few hundred kbits / s (less than 10).

[0039] The latency for geostationary satellites is around 600ms (case of double hop when it is necessary to go back through a hub on the ground); the latency for networks UHF is more in the order of hundreds of ms, maybe a few tens (less than 10) of ms. For low-Earth orbit satellites, the latency is somewhere in between.

[0040] Jitter is most common in TDMA radio networks because the access time to the transmission slot is variable. It depends on the slot length, but it can be several tens (less than 10 tens) of ms, or even more.

[0041] Each server 6 comprises processing resources, which include computing resources (CPU) and memory resources, for example of the RAM type, or NAS (Network-Attached Storage). Each server 6 is adapted to host, for a determined time, one or more software applications following the allocation of processing resources of the server 6 to each of these software applications, the hosted applications then executing using the memory and computing resources which have been allocated to it.

[0042] Within each platform 20J, i = 1 to 3, the local controller 8 is adapted to determine in real time for each server 6 of this platform 20J, the current state of availability of the processing resources of the server: quantity of memory resources available, for example expressed in bytes, and quantity of computing resources available, for example expressed in virtual CPU (vCPU) or in threads or in Mips (Million instructions per second), the other resources being used for the execution of software applications assigned to the server. The term "quantity of available resource" means the quantity that could be allocated to the execution of an additional software application. The local controller 8 is adapted to determine in real time for each server 6 of this platform 20J, the state of the applications executing on the server 6 (for example execution progress OK or NOK, progress status, performance, etc.).

[0043] The local controller 8 is adapted to transmit regularly, for example at least once every T r seconds, with T r for example chosen equal to T t , the state of the processing resources at the orchestrator 10 as well as the state of the applications.

[0044] In another embodiment, the transmission of this state is not periodic but takes place upon the occurrence of an event, for example linked to an exceeding of threshold(s) characterizing the state of the resources and / or the state of the applications.

[0045] The orchestrator 10 is an electronic device comprising an electronic scheduling block 11, an electronic selection block 12 and a database 13. It is adapted to receive requests, called REQ, from telecommunication devices connected to the orchestrator 10 by telecommunication links. Some of these communication devices are for example embedded in the mobile machines transporting the platforms 20 or embedded in the same machine, mobile or fixed, in which the orchestrator 10 is located.

[0046] The selection block 12 of the orchestrator 10 is adapted to, following the reception of a request, named REQ, indicating a software application to be executed, select from among all the processing resources of the servers of the platforms 20_1, 20_2, 20_3, that one or more of the processing resources which will be assigned to the execution of a software application indicated in the request REQ, in the manner described in more detail with reference to figures 2 and 3.

[0047] Each request REQ received by the orchestrator 10 and relating to a software application to be hosted, named APP, conforms to a predefined syntax and comprises at least, in addition to the identifier of the telecommunications device at the origin of the request, the identifier of the software application APP and optionally a time indication of when the execution of the application APP is desired (for example at the latest).

[0048] From this APP software application identifier, the orchestrator 10 is adapted to obtain the following information (or at least some of the following information), stored previously, in its database 14, in correspondence with the identifier of the APP software application (for example this information is part of the meta-data of the APP application): a / (binary) code of the APP software application the parameter values ​​etc. (or in one embodiment, the URL address from which the software application can be downloaded); b / the required memory and computing characteristics, necessary for the proper execution of the APP software application obtained by evaluating the quantities of computing and memory resources for example at the time of designing the APP application) c / indication of the minimum transport conditions required for the implementation of telecommunications with said software application APP during its execution; this indication is provided in an embodiment for a nominal operating mode of the application and optionally in addition for one or more degraded operating modes of the software application; these conditions are expressed for example in the form of minimum bandwidth required, maximum latency required, maximum jitter required, maximum error rate required, maximum permitted usage cost, qualitative parameters (type of link for example), etc.

[0049] In another embodiment, the information indicated above as extracted from a database 13 is alternatively indicated in the request REQ and the orchestrator obtains it directly in the request REQ.

[0050] Thus, for each software application intended to be processed by the orchestrator 10, a step of characterization of the exchanges implemented by the software application, in particular in transmission, must first be carried out, for example during the design of each software application APP. This step is for example implemented by a characterization software block implementing the steps below.

[0051] In this characterization of exchanges, the types of information exchanged are first identified. For each type of information, the lifetime of the information produced is then characterized. This provides a latency constraint that must not be exceeded for the transport of this information. Then, the volume of information produced by these exchanges is calculated, evaluated, or measured. Associated with the maximum latency constraint, this leads to a minimum bandwidth constraint necessary to convey the information produced. The periodicity of exchanges is another property of information that allows resources to be maintained over time. For non-periodic information, once the information is sent, the transmission resources can be released. For periodic information, the resources must be maintained as long as the application is active.Furthermore, the volume associated with the period makes it possible to define an average information flow rate, which leads to a minimum bandwidth constraint on transmission resources.

[0052] During this characterization, in one embodiment, the data below, or at least some of them, are further determined: jitter constraint, i.e. a constraint on the maximum variation in latency; constraint on the maximum information loss rate, which translates into a maximum error rate of the transmission network; qualitative elements of the transport: secure link necessary or not, legacy link necessary or not, etc.

[0053] From this characterization of the exchanges associated with the software application, it is thus easily deduced a definition of the threshold transport conditions required for the proper execution of the software application, in terms of at least a minimum bandwidth value and / or maximum latency value and / or jitter and / or error rate.

[0054] As specified above, this characterization of the exchanges (and the required threshold transport conditions) is carried out at least for a nominal operating mode of the application and in addition, optionally, for one or more degraded operating modes of the software application which may be implemented in the event of scarcity or degradation of the network transmission resources.

[0055] For example, a video capture application will be associated with a nominal operating mode, in which it provides images with a maximum resolution, corresponding to a bit rate of 2 Mbit / s, a first degraded operating mode in which it provides images with an intermediate resolution, corresponding to a bit rate of 1 Mbit / s and a second degraded operating mode in which it provides images with a low resolution, corresponding to a bit rate of 500 kbit / s. This thus allows the application to switch to a suitable operating mode if a transmission resource allowing the nominal operating mode cannot be found.

[0056] The information corresponding to item c above can thus take several forms: either they are provided in the form of the evaluation of the exchanges (and in this case, it is the orchestrator who carries out the translation, deducing the required threshold transport conditions (= transport gauges to be respected), or in the shape of these transport templates to be respected (different operating modes corresponding to different transport templates).

[0057] Software applications are self-contained executable software units (thus including the code), for example containers, such as Kuberbetes® pods. Each is adapted to be deployed on a server chosen by the orchestrator 10, and to be executed there.

[0058] In a system 1 according to the invention, the current transport conditions are therefore supervised and provided to the orchestrator 10 in the same way as the computing and memory resources, and the selection of the hardware resource for hosting the applications takes into account not only the computing capacity and the memory necessary for the execution of the applications, but also the capacity of the underlying constrained network to ensure the exchanges carried out by the applications due to their relocation.

[0059] Figure 2 represents the steps of a method for orchestrating software applications in one embodiment of the invention.

[0060] In the embodiment considered, the orchestrator 10, and in particular the scheduling block 11 and the selection block 12, are produced in the form of software blocks, comprising software instructions stored in a memory of the orchestrator 10 and which, when executed on a processor of the orchestrator 10, implement the steps incumbent upon them.

[0061] With reference to Figure 2, the controller 8 in each platform 20 determines in a step 101a, as a function of control data transmitted by the processing hardware resources (memory and calculation) of each server 6 of the platform, the updated state of availability of the processing resources of the platform, for example at a frequency T r (some of the resources are for example not available, used for the execution of the applications APP_A, APP_B, ... previously allocated to the resources of this platform 20).

[0062] In parallel, for example, the controller 8 in each platform 20, determines, in a step 101 b, the updated state of the software applications executing locally, as a function of control data transmitted to it by these software applications whose execution has been assigned to the servers 6 of the platform by the orchestrator 10 (at this stage the application APP_N is not yet hosted on the platform, the status therefore does not concern it; it has been outlined in dotted lines in Figure 2 to indicate its subsequent insertion during the process).

[0063] In a step 102a, the controller 8 transmits the updated availability status, also at the frequency T r(on link 6i from platform 20J, i= 1 to 3) to orchestrator 10, which receives it. In one embodiment, it also transmits to the orchestrator the status of the software applications (optionally this status is transmitted only when the status indicates a malfunction).

[0064] In parallel, for example, in a step 102b, the orchestrator 10 receives, for example (see above) at the frequency T t , current transport conditions on routes 40, 41, 51, 52 and 53.

[0065] In a step 103, the orchestrator 10 receives a request REQ, relating to a software application, here named APP_N, for the deployment of the latter on a server to be identified by the orchestrator 10. The scheduling block 11 of the orchestrator 10, in a step 104, extracts from the database 13 the information indicated (or some of it) in items a, b, c above (when it does not appear in the request REQ), then it provides it, as well as the request REQ to the selection block 12 of the orchestrator 10.

[0066] The selection block 12, in a step 105, selects that of the platforms 20_1, 20_2, 20_3 from among the set of platforms 20_1, 20_2, 20_3 whose processing resource(s) can be allocated to the execution of the software application APP_N, this selection being carried out as a function of at least: the availability states of the processing resources received in step 102a; the memory and calculation characteristics required for the execution of the application APP_N, as provided in step 104 to the selection block 12; the transport conditions received in step 102b; the threshold transport conditions as provided in step 104 to the selection block 12.

[0067] Once the platform has been selected, if it has several servers with the required resources, a server among these servers is in turn selected, whose processing resources will be allocated to the execution of the APP_N software application. This last selection is carried out according to the embodiments, either by the selection block 12 also, or by the local controller 8 of the selected platform.

[0068] Typically, the selection rules are such that: the processing resources (computation, memory in the RAM sense) selected for the application APP_N will be chosen within the same server 6; the selected resources are resources, in a then “available” state, and are selected in a quantity equal to or greater than said memory and computation characteristics required for APP_N; furthermore, the selected platform is such that the output link(s) of this platform (allowing the transmission of data from this platform) have transport conditions (according to those received in step 102b) verifying the threshold transport conditions associated with the application APP_N and provided in step 104

[0069] Selection rules are for example: identifying the platforms capable of hosting the APP_N application according to the feedback from states 102a; selecting from among them the platform offering the best transport conditions according to feedback from state 102b; or identifying the platforms capable of ensuring the exchanges of the APP_N application according to feedback from state 102b; selecting from among them the platform capable of hosting the APP_N application according to feedback from state 102a and which retains a maximum of available resources.

[0070] Consider as an example a video application with a nominal operating mode (MOF) at 2Mbit / s, a degraded operating mode MdF1 at 1 Mbit / s and a degraded operating mode MdF2 at 500kbit / s. The transport conditions (step 102b) are: link 51 = 2.4 Mbit / s; link 52 = 750 kbit / s; link 53 = 1.3 Mbit / s. Suppose that platform 20_1 does not have sufficient computing or memory resources to host APP_N and that both platforms 20_2 and 20_3 can do so, then the selection will be on platform 20_3 which offers the best transport conditions and the APP_N application will then be deployed in MOF1 mode. If, on the other hand, application 20_1 had been able to host application APP_N, then it would have been selected and application APP_N would have been deployed in MdFO mode.

[0071] An additional measure for limiting the use of transmission resources consists of modifying the scheduling algorithm of the orchestrator to associate with the deployment all or part of the support services necessary for the proper functioning of the deployed services and thus maintain the maximum number of co-located interactions: thus if the application APP_N must exchange on the one hand with the database 50 and on the other hand with an application which is then hosted on the platform 20_3, the volumes exchanged with the latter being high and with a short lifespan, the selection block 12 will select resources for APP_N on the platform 20_3 as a priority.

[0072] Then the selection block 12 indicates the selected platform (or even the selected computing and memory resources) to the scheduling block 11.

[0073] In a step 106, the scheduling block 11 transmits a request for hosting the application APP_N to the local controller 8 of the selected platform 20 and provides the context information (or the information enabling the context to be downloaded).

[0074] In a step 107, the controller 8 receives the request to host the application APP_N; it extracts from the storage database 9 in particular the code of the application APP_N which is stored there in association with the identifier of APP_N indicated in the hosting request. If necessary, the controller 8 selects the local computing and memory resources (if they have not been selected by the selection block 12 and indicated in the hosting request) according to the metadata of the application APP_N in the database 9. The controller 8 installs the application in the selected memory resource (DRAM), starts this application on the selected computing resource and checks the execution (using the selected memory and computing resources). It adds the application APP_N to the list of applications whose operating status is reported to the orchestrator (see above).The APP_N application (framed in dotted lines in Figure 2 to indicate its insertion during the process) is then hosted on the platform.

[0075] The APP_N application, during its execution, implements exchanges on one or more links, among the links 40, 41, 51, 52, 53, between the platform 20 hosting APP_N and the interlocutor or interlocutors involved in these exchanges.

[0076] In one embodiment, the scheduling block 11 of the orchestration device triggers, beforehand (for example, during a step 108), an action to guarantee the availability of transport resources (estimated as a function of said threshold transport conditions required for APP_N) necessary for these exchanges on this or these links and making it possible to satisfy the selected operating mode: for example a reservation of these resources or any other mechanism making it possible to manage the quality of service in a wireless network. Subsequently, if the transport conditions change, this may cause the APP_N application to switch to another operating mode. It may also be that no operating mode can be satisfied, in which case, the APP_N application can no longer execute correctly. An execution error is then reported to the scheduler to find alternative hosting.

[0077] The selection of the processing hardware resource depends, in one embodiment, on the deployment time of the software application on the hardware resource (including in particular the instantiation of the application, its startup, and the transmission of the operating context in the event of redeployment), which depend on the current transport conditions. The deployment time may in fact prove to be incompatible with the time requirement, expressed in the request, to benefit from the service and must therefore be considered in the algorithm for selecting the available processing resources.

[0078] For example, in one embodiment, said received REQ request relating to the software application to be hosted further indicates deployment requirements for the installation of the software application (for example, it must be launched in 2 s). And the orchestrator selects the server 6 further based on these deployment requirements for the installation of the software application.

[0079] Figure 3 represents the steps of a method for orchestrating applications in one embodiment of the invention, in the case of redeployment following the loss of a processing resource then used for the execution of a software application or following the impossibility of ensuring one of the operating modes authorized for the execution of an application.

[0080] The controller 8 in each platform 20 (in particular in the platforms 20_1, 20_2 represented in FIG. 3) determines in a step 201a, as a function of control data transmitted by the processing hardware resources of each server 6 of the platform, the updated state of availability of the processing resources of the platform, at a frequency T r (some of the resources are not available, used for running applications APP_A, ... APP_B, previously allocated to the resources of this platform 20).

[0081] In parallel, for example, in a step 201 b, the controller 8 in each platform 20 determines, as a function of control data transmitted by the software applications whose execution has been assigned to the servers 6 of the platform, the updated state of the software applications executing locally.

[0082] In the present case, depending for example on the state of the software applications determined in step 201 b and / or the state of the resources determined in step 201 a, the controller 8 of the platform 20_1 determines that the execution of the hosted application APPJ3 is malfunctioning. Typically, this follows the detection of a software crash, the disappearance of a resource or the temporary removal of the platform on which an application was running with which the application APP_B was exchanging data during its execution, etc.

[0083] In a step 202a, the controller 8 of each platform transmits the updated state of resource availability, also at the frequency Tr (on the link 6i from the platform 20J, i= 1 to 3) to the orchestrator 10, which receives it.

[0084] In parallel, in a step 202b, the orchestrator 10 receives, for example at the frequency Tt, the current transport conditions on the links 40, 41, 51, 52 and 53.

[0085] In parallel, in a step 202c, the controller 8 of the platform 20_1 transmits to the scheduling block 11 of the orchestrator 10 a status indicating that the hosting of the application APPJ3 is to be reassigned.

[0086] The scheduling block 11 of the orchestrator 10 extracts from the database 13 the information associated with the application APPJ3 and indicated (or some of it) in items a, b, c above, then it makes a request for re-selection of resources to host the application APPJ3 to the selection block 12 of the orchestrator 10, in a step 203.

[0087] The selection block 12, in a step 204, selects that of the platforms 20_1, 20_2, 20_3, whose processing resource(s) will be allocated to the execution of the software application APP_N, this selection being carried out according to at least the criteria indicated in relation to step 105 of FIG. 2; then the selection block 12 indicates the selected platform (or even in one embodiment the selected resources of this selected platform, when it is not the local controller 8 of the selected platform which selects the allocated resources) to the scheduling block 11, in this case the platform 20_2.

[0088] In a step 205, the scheduling block 11 transmits a request for hosting the application APPJ3 to the local controller 8 of the platform 20_2 and provides the context information (or the information allowing the context to be downloaded). In this case, the information is to be downloaded from the platform 20_1 previously hosting the application APP_B or from a NAS, for example the base 50.

[0089] In a step 206, in response to the reception of this redeployment request, the controller 8 of the platform 20_2 performs the deployment of the application, and then sends a status of good execution of the application APP_B after its deployment, confirming that it was carried out correctly, if applicable (status with content similar to that sent in step 102c or 202c).

[0090] The APPJ3 application in its execution, implements exchanges on one or more of the links, among the links 40, 41, 52 connecting the platform 20_2 hosting APPJ3 to its immediate environment.

[0091] As previously discussed, in one embodiment, transport resources are reserved for these exchanges.

[0092] In one embodiment, the selection block 11 in the context of the software redeployment to be hosted selects the platform in which to redeploy the application APP_B by further evaluating whether context data and / or the instantiation time are indeed compatible with a maximum duration allocated to the deployment of the software application (this duration being indicated in the initial request REQ associated with APPJ3) and / or are compatible with the deployment requirements as described with reference to FIG. 2.

[0093] It will be noted that the malfunction of an application in one embodiment is identified directly by the orchestrator 10 (and not following a message from the local controller), which then implements steps 203 and following.

[0094] In the embodiment considered, the codes of the applications to be hosted are already resident (inactively, i.e. without execution) on each platform. If this were not the case for some of the applications, an additional platform selection criterion could be considered: the presence of the application code on the platforms.

[0095] An additional measure that makes it possible to limit the use of wireless transmission resources consists of modifying the selection algorithm of the orchestrator 10 to associate with the deployment of a software application all or part of the “support” applications that are necessary for the proper functioning of the application to be deployed and thus maintain the maximum number of co-located interactions, thereby reducing the need for exchanges between the platform and the other platforms. To do this, an application interdependency tree is maintained in the form, for example, of a choreography definition with the applications to be deployed as a starting point. The selection algorithm can then traverse the choreography tree and consolidate the need for computing, memory, and transmission resources for each application encountered in the tree.It should be noted that unlike computing resources and memory resources which are additive (deploying a support service increases the need for computing and memory), transmission resources can vary upwards or downwards (co-located exchanges reduce the need for transmission resources). There is therefore a compromise to be made. The selection of the hardware resource to host the applications then becomes a classic search for an optimal solution within a field of constraints given on the one hand by the available resources and on the other hand by the resource requirements.

[0096] For example, in one embodiment, the applications are represented by a tree structure, in which two software applications are linked by a branch of the structure (representing their exchanges) if they implement telecommunications between them during their execution. The nodes of the tree represent the software applications and carry the metadata of said software applications (calculation, memory, transport templates). The branches of The tree contains the specific transport templates for inter-node exchanges. As we traverse the tree, we add the computing, memory and exchange requirements given by the nodes and subtract the exchange requirements given by the branches.

[0097] The two applications linked by a branch are for example an application for capturing images by a Radar responsible for tracking a target and an application for calculating the trajectory of the aircraft carrying the Radar (and therefore having to track the target).

[0098] It should be noted that at least the following two situations can occur:

[0099] - the software application is launched from a market place or equivalent; the initiator of the REQ request will then be the contact of the application to be hosted and is therefore defined by the source address of the REQ request; this is a push mode: the application knows who to send its data to;

[0100] - the software application is launched automatically for the benefit of a group of participants, not necessarily all connected to the network at that time; in this case, the choice of the hosting platform can be made by comparing the transmission resources of the platforms with the operating modes expressed for the application in the transport templates; this is then a pull mode: the application waits for an interlocutor to come forward to send its data and it is only at that moment that the end-to-end path is taken into account and the effective operating mode is chosen.

[0101] Thus, the invention proposes a cloud orchestrator which evaluates the suitability of a server for hosting an application based on the available CPU resource and / or the amount of available memory versus the application's CPU and / or memory requirements, and which further evaluates this suitability based on the characteristics of the end-to-end network versus the previously evaluated exchange requirements of the software applications (so that the characteristics of the transmission links implemented to ensure the exchanges during the execution of the software application on the selected server meet these exchange requirements). An orchestrator implementing the invention can be used in constrained networks with a satisfactory level of performance. The heterogeneity of the transmission capacities and the state of discretion contribute to the transport conditions. This information is taken into account by selecting a transport template compatible with the transport conditions observed.

[0102] The invention also makes it possible, in one embodiment, to take into account the deployment time of the software or components in the selection of hosting resources, to guarantee availability within the expected timeframes.

[0103] Thus the invention can be implemented in existing orchestrators by supplementing their scoring mechanism calculated for each available processing resource or conversely by only calculating this scoring for resources compatible (in terms of links involved) with the minimum transport conditions.

[0104] The method may be implemented by executing software instructions on a processor, as described above. Alternatively, it may be implemented by dedicated hardware, typically a digital integrated circuit, either specific (ASIC) or based on programmable logic (e.g. FPGA / Field Programmable Gate Array).

Claims

CLAIMS 1. Method for orchestrating software applications in a telecommunications system (1) comprising an electronic orchestration device (10), distributed telecommunications platforms (20), connected to links (40, 41) of a wireless telecommunications network and each comprising processing resources (6) among memory resources and computing resources, said method comprising the following steps implemented by the orchestration device (10): collecting states of the processing resources, said states indicating the current availability of said resources (6); receiving requests (REQ) indicating software applications (APP_N) to be executed and, for each software application indicated in a received request (REQ), obtaining the memory and computing characteristics required for the execution of said application;for each software application: selecting, from among the platforms, at least one platform for the execution of said software application via a processing resource of the selected platform, said selection being made based on at least: the collected availability states of the processing resources; and the obtained memory and computing characteristics required for the execution of said application; and assigning at least said selected platform for the execution of said software application;said method being characterized in that it further comprises the following steps implemented by the orchestration device (10): collection of current transport conditions on said wireless telecommunications network, said transport conditions indicating at least one piece of information associated with the links among their available bandwidth, their jitter, their latency, their error rate, their nominal bandwidth and their occupancy rate; for each software application (APP_N) indicated in a received request (REQ), further obtaining transport template(s) indicating minimum transport conditions required for implementing telecommunications with said software application during its execution; said platform selection is further performed based on the transport conditions collected and said transport template(s) obtained.

2. Orchestration method according to claim 1, according to which: - said request (REQ) received relating to said software application (APP_N) further indicates deployment requirements for the installation of said software application; and - said selection of processing resource (6) is further carried out according to said deployment requirements for the installation of said software application.

3. Orchestration method according to claim 1 or 2, according to which in a tree structure, two software applications are connected by a branch of said structure if they have been defined to implement telecommunications between them during their execution and each branch is associated with transport templates required specifically for said telecommunications and according to which: the selection of at least one platform for the execution of a software application, when it is part of said tree structure further comprises at least the selection of a platform for the execution of another application of said tree structure, said platforms having to be a single platform, according to a rule relating to the transport templates on the branches connecting them, if this reduces the need for exchanges of the selected platform with the other platforms.

4. Orchestration method according to any one of the preceding claims, according to which following said selection, a reservation of transport resources is triggered on at least one link of the telecommunications network. wireless depending on said transport templates and current transport conditions, for the implementation of telecommunications with said software application during its execution.

5. Orchestration method according to any one of the preceding claims, according to which: said transport templates for implementing telecommunications with said software application during its execution comprise a first transport template corresponding to a nominal operating mode of the software application and a second transport template, less demanding than the first transport template, corresponding to a degraded operating mode of the software application; said selection of processing resource being carried out according to said first and second transport templates as obtained.

6. Computer program, intended to be stored in the memory of an electronic orchestration device (10) further comprising a microcomputer, said computer program comprising instructions which, when executed on the microcomputer, implement the steps of a method according to one of the preceding claims.

7. Electronic device (10) for orchestrating software applications for a telecommunications system (1) comprising distributed telecommunications platforms (20), connected to links (40, 41) of a wireless telecommunications network and each comprising processing resources (6) among memory resources and computing resources, said orchestration device (10) being adapted to collect states of the processing resources, said states indicating the current availability of said resources (6), to receive requests (REQ) indicating software applications (APP_N) to be executed and, for each software application indicated in a request (REQ) received, to obtain memory and calculation characteristics required for the execution of said application; for each software application, said orchestration device (10) being adapted for: - selecting from among the platforms, at least one platform for the execution of said software application via a processing resource of the selected platform, said selection being made according to at least: the collected availability states of the processing resources; and the obtained memory and computing characteristics required for the execution of said application; and - to assign at least said selected platform for the execution of said software application; said orchestration device (10) being characterized in that it is adapted to: collect current transport conditions on said wireless telecommunications network, said transport conditions indicating at least one piece of information associated with the links among their available bandwidth, their jitter, their latency, their error rate, their nominal bandwidth and their occupancy rate; for each software application (APP_N) indicated in a received request (REQ), further obtain transport template(s) indicating minimum transport conditions required for the implementation of telecommunications with said software application during its execution; said selection of the platform being further carried out as a function of the collected transport conditions and said obtained transport template(s).

8. Orchestration device (10) according to claim 7, in which: - said request (REQ) received relating to said software application (APP_N) further indicates deployment requirements for the installation of said software application; and - said selection of processing resource (6) is further carried out according to said deployment requirements for the installation of said software application.

9. Orchestration device according to claim 7 or 8, wherein in a tree structure, two software applications are connected by a branch of said structure if they have been defined to implement telecommunications between them during their execution and each branch is associated with transport templates required specifically for said telecommunications and according to which: the selection of at least one platform for the execution of a software application, when it is part of said tree structure further comprises at least the selection of a platform for the execution of another application of said tree structure, said platforms having to be a single platform, according to a rule relating to the transport templates on the branches connecting them, if this reduces the need for exchanges of the selected platform with the other platforms.

10. Orchestration device (10) according to any one of the preceding claims, adapted to, following said selection, trigger a reservation of transport resources on at least one link of the wireless telecommunications network as a function of said transport template(s) and current transport conditions, for the implementation of telecommunications with said software application during its execution.