Method for orchestrating software applications in a communication system, related computer program, and orchestration device

The method optimizes resource allocation and transport conditions to ensure reliable execution of software applications in constrained networks, addressing the limitations of existing orchestration solutions in tactical environments.

JP2025530224APending Publication Date: 2025-09-11THALES SA
View PDF 0 Cites 0 Cited by

Patent Information

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

AI Technical Summary

Technical Problem

Existing cloud orchestration solutions are inadequate for constrained communication networks, leading to network congestion and unreliable execution of software applications in environments with limited and unstable communication capacity, such as tactical networks in disaster or battlefield scenarios.

Method used

A method and device for orchestrating software applications that collect resource availability and network conditions, select platforms based on computational and memory needs, and reserve transport resources to ensure reliable execution, even in constrained networks.

Benefits of technology

Enables reliable execution of software applications in constrained networks by optimizing resource allocation and transport conditions, ensuring performance even in environments with limited bandwidth and frequent interference.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025530224000001_ABST
    Figure 2025530224000001_ABST
Patent Text Reader

Abstract

The present invention relates to a method for orchestrating software applications in a distributed communications platform (20) connected to links (40, 41) of a wireless communications network including processing resources (6), the method comprising the selection of at least one platform for the execution of the software application via the processing resources of the selected platform, the selection being made according to a transport template associated with the software application indicating collected availability status of the processing resources, memory and computational characteristics required for the execution of the application, current conditions of transport over the wireless communications network, and minimum transport conditions required for communication with the software application during its execution, the transport conditions indicating at least one piece of link-related information among available bandwidth, jitter, latency, error rate, nominal bandwidth, and occupancy.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to the field of software application orchestration, where hardware resources, including CPU and memory, are selected to host the execution of software applications on remote and distributed servers. [Background technology]

[0002] Currently, commercial cloud orchestration solutions evaluate the suitability of a server for hosting software by comparing the amount of CPU resources or memory available on this server with the software's needs for CPU and memory.

[0003] Although these solutions are quite effective on optical fiber-based gigabit communication networks, they are insufficient on constrained communication networks and may even lead to network congestion.

[0004] The expression "constrained communications networks" is understood to mean communications networks with limited (compared to gigabit networks) and unstable communications capacity, for example tactical communications networks deployed locally and occasionally in the field in the context of medical or military interventions (disaster areas, battlefields, whether the disaster is of a geological or not disaster, etc.). In such networks, transmission links are frequently cut off without notice (for example as a result of intentional or unintentional jamming), some of which have very limited bandwidth or frequency of occurrence, and bandwidth or latency fluctuations occur much more frequently than in traditional consumer networks. However, it is necessary to be able to reliably execute software applications during such interference events, especially on servers embedded in carriers moving within or near the interference zone.

[0005] Therefore, there is a need to provide a solution that allows for the orchestration of software applications that can be satisfactorily implemented over any type of communication network, including constrained communication networks. Summary of the Invention [Means for solving the problem]

[0006] To this end, according to a first aspect, the invention describes a method for orchestrating software applications in a communication system comprising an electronic orchestration device and a distributed communication platform (20) connected to a link of a wireless communication network and each including processing resources among memory resources and computational resources, the method comprising the following steps implemented by the orchestration device: - collection of the status of processing resources, whose status indicates the current availability of the resource; receiving requests indicating software applications to be executed, and for each software application indicated in the received request, obtaining memory and computational characteristics required to execute the application; - for each software application, selection from the platforms of at least one platform for execution of the software application, the selection being made depending at least on the collected availability status of processing resources and the obtained memory and computation characteristics necessary for the execution of the application; and - allocation of at least one platform selected for the execution of the software application; The method includes the following steps performed by an orchestration device: - collection of current conditions of transport over a wireless communication network, the transport conditions indicating at least one piece of link-related information among their available bandwidth, their jitter, their latency, their error rate, their nominal bandwidth, and their occupancy; - additionally, for each software application indicated in the received request, obtaining one or more transport templates indicating minimum transport conditions necessary to effect communication with the software application during execution of the software application; The platform selection is further performed depending on the collected transport conditions and the one or more obtained transport templates.

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

[0008] the received request related to the software application further indicates a deployment requirement for the installation of the software application, and a selection of a processing resource is further performed in response to the deployment requirement for the installation of the software application;

[0009] In a tree structure, two software applications are linked by a branch of the structure if the two software applications are defined to communicate with each other during their execution, and each branch is associated with a transport template specifically required for that communication; The selection of at least one platform for the execution of the software application, if it constitutes part of a tree structure, further includes the selection of a platform for the execution of at least another application of the tree structure, which platform must be one and the same platform, if this reduces the need for exchanges between the selected platform and other platforms, according to rules regarding transport templates on the branches connecting them;

[0010] - following said selection, triggering a reservation of transport resources on at least one link of the wireless communication network during execution of the software application for conducting communications with the software application in accordance with one or more transport templates and current transport conditions;

[0011] -Transport templates for implementing communication with a software application during execution of the software application include a first transport template corresponding to a nominal operating mode of the software application and a second transport template corresponding to a degraded operating mode of the software application and less demanding than the first transport template, and selection of processing resources is made according to the first and second transport templates obtained, etc.

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

[0013] According to another aspect, the invention describes an electronic device for orchestrating software applications of a communication system comprising a distributed communication platform connected to links of a wireless communication network and each including processing resources among memory resources and computational resources, the orchestration device being configured to receive requests indicating software applications to be executed, to collect a status of the processing resources indicating the current availability of said resources, and to obtain, for each software application indicated in the received requests, the memory and computational characteristics required for the execution of the application; For each software application, an orchestration device - selecting from the platforms at least one platform for execution of the software application via processing resources of the selected platform, the selection being made depending on at least one of the collected availability status of the processing resources and the obtained memory and computation characteristics required for the execution of the application; - Allocating at least the selected platform for the execution of the software application; In the electronic device configured as above, the orchestration device collecting current conditions of transport over the wireless communication network, the transport conditions indicating at least one piece of link-related information among their available bandwidth, their jitter, their latency, their error rate, their nominal bandwidth, and their occupancy; and - for each software application indicated in the received request, obtaining one or more transport templates indicating minimum transport conditions necessary to effect communication with the software application during execution of the software application; The platform selection is further performed according to the collected transport conditions and the obtained one or more transport templates.

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

[0015] the received request related to the software application further indicates a deployment requirement for the installation of the software application, and a selection of a processing resource is further performed in response to the deployment requirement for the installation of the software application;

[0016] In a tree structure, two software applications are linked by a branch of the structure if the two software applications are defined to communicate with each other during their execution, and each branch is associated with a transport template specifically required for that communication; The selection of at least one platform for the execution of the software application, if it constitutes part of a tree structure, further includes the selection of a platform for the execution of at least another application of the tree structure, which platform must be one and the same platform, if this reduces the need for exchanges between the selected platform and other platforms, according to rules regarding transport templates on the branches connecting them;

[0017] - Following the selection, the device is configured to trigger a reservation of transport resources on at least one link of the wireless communication network in response to one or more transport templates and current transport conditions for the implementation of communication with the software application during execution of the software application.

[0018] The invention will be better understood and other features, details and advantages will become more apparent on reading the following non-limiting description and by reference to the accompanying drawings, given by way of example. [Brief explanation of the drawings]

[0019] [Figure 1] 1 is a diagram illustrating a communication system 1 according to an embodiment of the present invention. [Figure 2] 2 illustrates steps of a resource allocation method in one embodiment of the present invention; [Figure 3] FIG. 4 illustrates steps of a resource allocation method in another embodiment of the present invention.

[0020] The same reference numbers may be used in different figures to designate the same or equivalent elements. DETAILED DESCRIPTION OF THE INVENTION

[0021] FIG. 1 shows a communication system 1 according to an embodiment of the present invention.

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

[0023] Each processing platform 20 is a hardware platform that includes one or more servers 6, a local communication network 7, a local electronic controller 8, and a storage database 9. The local communication network (e.g., a wired network) interconnects the servers 6 and the local controllers within the platform 20 with each other.

[0024] In the case shown in Figure 1, the system 1 comprises three processing platforms 20, namely platforms 20_1, 20_2 and 20_3, which are, for example, each integrated into a respective mobile machine (aircraft, drone, wheeled vehicle, etc.), where platform 20_1 is mounted on an aircraft, platform 20_2 on another aircraft and platform 20_3 on a land vehicle, which move through the geographical zone of interference.

[0025] In a subject embodiment, the platform 20_1 comprises two servers 6, namely servers SERV11 and SERV12, the platform 20_2 comprises three servers 6, namely servers SERV21, SERV22 and SERV23; The platform 20_3 comprises one server 6, namely the server SER31.

[0026] The storage database 9 stores, in association with an identifier for each software application to be hosted under the present invention, the (binary) code of the application and a set of metadata related to the software application.

[0027] The database 50 is located, for example, in a building remote from the interference zone.

[0028] An orchestration device 10, hereafter referred to as orchestrator 10, is connected to processing platforms 20_1, 20_2 and 20_3 by wireless communication links 61, 62 and 63, respectively.

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

[0030] These links 40, 41, 51, 52, 53 are the transmission resources of the constrained communication network of the system 1.

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

[0032] The orchestrator 10 may, for example, t The links 40, 41, 51, 52 and 53 are configured to periodically receive, once per second, data indicating the current conditions of the transport over the links 40, 41, 51, 52 and 53, in particular the available bandwidth and / or occupancy of the links, and / or the delay and / or jitter.

[0033] T t Regarding the value of T, if responsiveness is desired, a low value is required, e.g., T t The value of is set at most equal to 1 second, which requires a large amount of bandwidth; the more this value is increased (for example, to 60 seconds), the less bandwidth is consumed but the less responsiveness there will be, so a compromise should be made between consumption and responsiveness.

[0034] In another embodiment, at least some of this data is communicated upon the occurrence of an event (e.g., bandwidth falling below (or above) a defined threshold) rather than periodically, thereby making it possible to minimize the impact of these exchanges on the overall bandwidth of the network.

[0035] These data indicating the current transport conditions are determined by the local controller 8 of the platform 20, for example, taking into account exchanges carried out via the communication links, and then transmitted by the platform 20_1 on the links 6i (i = 1 to 3) to the orchestration device 10.

[0036] Typically, UHF, VHF links 40, 41 have limited bandwidths that vary, for example, are frequently (or even always) less than 100 kbit / s or even tens of kbit / s, while satellite links 51, 52, and 53 have bandwidths that are frequently (or even always) a few Mbit / s (e.g., less than 10 Mbit / s) or even hundreds of kbit / s (e.g., less than 10 kbit / s).

[0037] Geostationary satellites have latency of around 600 milliseconds (for a double hop when you need to go through a terrestrial hub and back), while UHF networks have latency in the order of 100 milliseconds, or even tens of milliseconds (or even less than 10 milliseconds). For low-earth orbit satellites, the latency is somewhere in between.

[0038] Jitter will be found especially on TDMA wireless networks because the access time to a transmission slot is variable, and depending on the length of the slot, the jitter can be tens (less than 100) of milliseconds or even more.

[0039] Each server 6 comprises processing resources, including computational resources (CPU) and memory resources, e.g., RAM resources or NAS resources (NAS stands for Network-Attached Storage). Each server 6 is configured to host one or more software applications for a period of time, after which the processing resources of the server 6 are allocated to each of these software applications, and the hosted applications then execute using the allocated memory and processing resources.

[0040] Within each platform 20_i (i=1 to 3), the local controller 8 is configured to determine, for each server 6 of this platform 20_i, in real time, the current availability status of the server's processing resources, e.g., the amount of available memory resources expressed in bytes, and the amount of available computational resources expressed in, e.g., virtual CPUs (vCPUs) or threads or Mips (millions of instructions per second), other resources being used for the execution of software applications assigned to the server. The expression "amount of available resources" is understood to mean the amount that can be allocated for the execution of additional software applications. The local controller 8 is configured to determine, for each server 6 of this platform 20_i, in real time, the status of the applications running on the server 6 (e.g., execution progress OK or NOK, progress status, performance, etc.).

[0041] The local controller 8 may, for example, include at least T r Once per second, e.g., T r T t , and is configured to periodically send the status of processing resources and the status of applications to the orchestrator 10.

[0042] In another embodiment, this status transmission is not periodic, but rather occurs upon the occurrence of an event, for example related to the exceeding of one or more thresholds characterizing the status of the resource and / or the status of the application.

[0043] The orchestrator 10 is an electronic device comprising an electronic scheduling unit 11, an electronic selection unit 12 and a database 13. It is configured to receive requests, denoted REQ, from communication devices connected to the orchestrator 10 by communication links. Some of these communication devices are, for example, integrated into the mobile machines transporting the platform 20 or integrated into the same mobile or fixed machine on which the orchestrator 10 is located.

[0044] The selection unit 12 of the orchestrator 10 is configured, following receipt of a request, denoted REQ, indicating a software application to be executed, to select from the set of processing resources of the servers of the platforms 20_1, 20_2, 20_3 one or more processing resources to be allocated to the execution of the software application indicated in the request REQ, in a manner that will be described in more detail with reference to Figures 2 and 3.

[0045] Each request REQ received by the orchestrator 10 for a software application to be hosted is denoted APP, conforms to a predefined syntax and includes at least an identifier of the communication device from which the request originates, as well as an identifier of the software application APP and, optionally, an indication of the time at which (e.g., at the latest) the application APP is desired to be executed.

[0046] Based on this identifier of the software application APP, the orchestrator 10 is configured to retrieve, in its database 14, the following information (or at least part of the following information) pre-stored corresponding to the identifier of the software application APP (for example, this information forms part of the metadata of the application APP): -a / the (binary) code, parameter values ​​etc. of the software application APP (or in one embodiment the URL from which the software application can be downloaded), b / the memory and computational characteristics necessary for the correct execution of the software application APP, which are obtained, for example, by assessing the amount of computational and memory resources when designing the application APP, -c / Indication of the minimum transport conditions required for communication with the software application APP during its execution; this indication is provided in one embodiment for the nominal operating mode of the application and, optionally, additionally for one or more degraded operating modes of the software application, these conditions being expressed, for example, in the form of a required minimum bandwidth, a required maximum latency, a required maximum jitter, a required maximum error rate, a maximum acceptable cost of use, qualitative parameters (e.g., type of link), etc.

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

[0048] Therefore, for each software application intended to be processed by the orchestrator 10, a step of characterizing the exchanges performed by the software application, in particular in transmission, must be carried out in advance, for example during the design of each software application APP. This step is carried out, for example, by a characterization software unit which performs the following steps:

[0049] In characterizing this exchange, first, the type of information exchanged is identified. For each type of information, the lifetime of the generated information is then characterized. This gives a latency constraint that should not be exceeded in the transport of this information. Next, the volume of information generated by these exchanges is calculated, evaluated, or measured. In conjunction with the maximum latency constraint, this leads to a constraint on the minimum bandwidth required to convey the generated information. The periodicity of the exchange is another property of the information that allows resources to be maintained over time. In the case of aperiodic information, the transmission resources can be released once the information is sent. In the case of 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 the average information bit rate, which leads to a minimum bandwidth constraint on the transmission resources.

[0050] During this characterization, in one embodiment, the following data is collected: jitter constraints, i.e. constraints on the maximum variation in latency, - a constraint on the maximum information loss rate, corresponding to the maximum error rate of the transmission network; The transport qualities, ie whether a secure link is required, whether a legacy link is required, etc., or at least some of them, are further determined.

[0051] Thus, from this characterization of the exchanges associated with the software application, it becomes easier to derive a definition of the threshold transport conditions necessary for the correct execution of the software application, in terms of at least minimum bandwidth and / or maximum latency and / or jitter and / or error rate.

[0052] As described above, this exchange characterization (and required threshold transport conditions) is performed for at least the application's nominal operating mode, and optionally, for one or more degraded operating modes of the software application that can be implemented when network transmission resources are scarce or degraded.

[0053] For example, a video capture application would be associated with a nominal operating mode providing images at maximum resolution, corresponding to a bit rate of 2 Mbit / s, a first degraded operating mode providing images at medium resolution, corresponding to a bit rate of 1 Mbit / s, and a second degraded operating mode providing images at low resolution, corresponding to a bit rate of 500 kbit / s, thus allowing the application to switch to a suitable operating mode if transmission resources that allow the nominal operating mode cannot be found.

[0054] Thus, the information corresponding to point c above can take several forms, either provided in the form of an evaluation of the exchange (in this case it is the orchestrator that performs the transformation, from which it derives the required threshold transport conditions (= transport templates to be respected)) or provided in the form of transport templates to be respected (different operating modes corresponding to different transport templates).

[0055] A software application is an autonomously executable software unit (and thus includes code), e.g., a container type such as a Kubernetes® pod, each of which is deployed and configured to run on a server selected by the orchestrator 10.

[0056] In the system 1 according to the present invention, the current transport conditions are therefore monitored and provided to the orchestrator 10 in a similar manner as the computational and memory resources, and the selection of the hardware resources to use to host the application takes into account not only the computational power and memory required to run the application, but also the capabilities of the underlying constrained network to ensure application exchanges for application remoteness.

[0057] FIG. 2 illustrates steps in a method for orchestrating a software application in one embodiment of the present invention.

[0058] In the subject embodiment, the orchestrator 10, in particular the scheduling unit 11 and the selection unit 12, take the form of software units and include software instructions stored in the memory of the orchestrator 10, which, when executed on a processor of the orchestrator 10, perform the required steps.

[0059] Referring to FIG. 2, the controller 8 of each platform 20, in step 101a, responds to control data transmitted by the processing (memory and computation) hardware resources of each server 6 of the platform to provide an updated availability status of the platform's processing resources, e.g., at a frequency T r (some of the resources are, for example, unavailable and are being used to run applications APP_A, APP_B, etc. that were previously assigned to the resources of this platform 20).

[0060] For example, in parallel, the controllers 8 in each platform 20 determine the update status of the software applications that they are running locally in response to the control data being sent by these software applications, the execution of which has been assigned by the orchestrator 10 to the servers 6 of the platform in step 101b (at this stage, application APP_N is not yet hosted on the platform, so no status is relevant to it, and APP_N is enclosed in dashed lines in Figure 2 to indicate its subsequent insertion in the method).

[0061] In step 102a, the controller 8 also r (via link 6i from platform 20_i (i=1 to 3)) to the orchestrator 10, which receives the updated availability status. In one embodiment, the controller 8 also sends the software application status to the orchestrator (optionally, this status is sent only when the status indicates a malfunction).

[0062] For example, in parallel, in step 102b, the orchestrator 10 may, for example, (see above) determine the frequency T t , receives the current conditions of transport over links 40, 41, 51, 52 and 53.

[0063] In step 103, the orchestrator 10 receives a request REQ related to a software application (here denoted APP_N) for deployment of the latter on a server identified by the orchestrator 10. The scheduling unit 11 of the orchestrator 10 extracts, in step 104, from the database 13 the pieces (or parts of the pieces) of information indicated in items a, b, c above (if not included in the request REQ) and then provides them to the selection unit 12 of the orchestrator 10 and provides the request REQ.

[0064] In step 105, the selection unit 12 selects from the set of platforms 20_1, 20_2, 20_3 a platform 20_1, 20_2, 20_3 having one or more processing resources that can be allocated to the execution of the software application APP_N, the selection being based on at least the availability status of the processing resource received in step 102a, the memory and computational characteristics required for the execution of the application APP_N, provided to the selection unit 12 in step 104, the transport conditions received in step 102b, - in response to a threshold transport condition provided to the selection unit 12 in step 104.

[0065] Once the platform has been selected, if it comprises several servers with the necessary resources, one of these servers will be selected in turn and its processing resources will be allocated to the execution of the software application APP_N, the latter selection being made either by the selection unit 12 or by the local controller 8 of the selected platform, depending on the embodiment.

[0066] Typically, the selection rules are such that the processing resources (computational resources, memory in the sense of RAM) selected for application APP_N will be located within the same server 6, the selected resources are resources with the status "available" and are selected in an amount equal to or greater than the memory and computational characteristics required for APP_N, and further, the selected platform is such that it is associated with application APP_N and satisfies the threshold transport conditions provided in step 104, and one or more links emanating from this platform (allowing data to be sent from this platform) satisfy the transport conditions (received in step 102b).

[0067] An example of a selection rule is: - identifying platforms capable of hosting the application APP_N according to the status report 102a and selecting from these platforms the platform that offers the best transport conditions according to the report 102b, or - Identifying the platforms that can ensure the exchange of the application APP_N according to the report 102b and selecting from these platforms the platform that can host the application APP_N according to the status report 102a and that has the maximum available resources.

[0068] For example, consider a video application with a nominal operating mode (MdF0) of 2 Mbit / s, a degraded operating mode MdF1 of 1 Mbit / s, and a degraded operating mode MdF2 of 500 kbit / s. The transport conditions (step 102b) are: link 51 = 2.4 Mbit / s, link 52 = 750 kbit / s, and link 53 = 1.3 Mbit / s. Assuming that platform 20_1 does not have sufficient computing power or memory resources to host APP_N and both platforms 20_2 and 20_3 are capable of hosting, platform 20_3, which offers the best transport conditions, will be selected, and application APP_N will be deployed in mode MdF1. In contrast, if application 20_1 can host application APP_N, application 20_1 will be selected, and application APP_N will be deployed in mode MdF0.

[0069] Additional measures to enable the use of limited transmission resources include modifying the orchestrator's scheduling algorithm to associate with the deployment all or part of the support services necessary for the correct operation of the deployed service, thereby maintaining maximum co-located interaction; thus, if application APP_N has to exchange, on the one hand, the database 50 and, on the other hand, an application that is then hosted on platform 20_3, the high volume and short lifetime exchanged with the latter will cause the selection unit 12 to prioritize the selection of resources for APP_N on platform 20_3.

[0070] The selection unit 12 then informs the scheduling unit 11 of the selected platform (or selected computational and memory resources).

[0071] In step 106, the scheduling unit 11 sends a request to the local controller 8 of the selected platform 20 to host the application APP_N, providing the context information (or information allowing the context information to be downloaded).

[0072] In step 107, the controller 8 receives a host request from the application APP_N and extracts from the storage database 9, in particular, the code of the application APP_N stored therein and associated with the identifier of the application APP_N indicated in the host request. If necessary, the controller 8 selects local computational and memory resources (if not selected by the selection unit 12 and not indicated in the host request) according to the metadata of the application APP_N in the database 9. The controller 8 installs the application in the selected memory resources (DRAM), starts this application on the selected computational resources, and confirms its execution (using the selected memory and computational resources). The controller 8 adds the APP_N application to the list of applications whose operational status is reported to the orchestrator (see above). The application APP_N (enclosed in FIG. 2 by a dashed line, indicating its insertion in the method) is then hosted on the platform.

[0073] During its execution, the application APP_N carries out exchanges on one or more of the links 40, 41, 51, 52, 53 between the platform 20 that hosts it and the interlocutors involved in these exchanges.

[0074] In one embodiment, the scheduling unit 11 of the orchestration device triggers actions in advance (e.g., in step 108) that guarantee the availability of transport resources required for these exchanges on this or these links (estimated depending on the threshold transport conditions required for APP_N) and allow the maintained operation mode to be satisfied, such as reservation of these resources or other mechanisms that allow managing the quality of service of the wireless network. If the transport conditions subsequently change, this may cause application APP_N to switch to another operation mode. It may also be that no operation mode can be satisfied, in which case application APP_N cannot be executed correctly. An execution error is then reported to the scheduler, so that an alternative host can be found.

[0075] The selection of a processing hardware resource, in one embodiment, depends on the time required to deploy the software application on the hardware resource (including, inter alia, instantiating the application, starting it, and transmitting the operational context upon redeployment), which in turn depends on the current transport conditions. In particular, the deployment time may prove to be incompatible with the time at which the service is requested to be running (as expressed in the request), and must therefore be taken into account in the algorithm for selecting an available processing resource.

[0076] For example, in one embodiment, the received request REQ related to the software application to be hosted further indicates deployment requirements for the installation of the software application (e.g., it must be launched within 2 seconds). The orchestrator then selects a server 6 also according to these deployment requirements for the installation of the software application.

[0077] FIG. 3 illustrates the steps of a method for orchestrating an application in one embodiment of the present invention in the case of redeployment following the loss of processing resources used to execute the software application or following the inability to ensure one of the operating modes allowed for the execution of the application.

[0078] In step 201a, the controller 8 in each platform 20 (particularly the platforms 20_1, 20_2 shown in FIG. 3) transmits updated availability statuses of the platform's processing resources at a frequency T r (Some resources are unavailable and are being used to run applications APP_A, APP_B that were previously assigned to the resources of this platform 20).

[0079] For example, in parallel, in step 201b, the controller 8 of each platform 20 determines the updated status of the software applications running locally in response to control data sent by the software applications whose execution is assigned to the server 6 of the platform.

[0080] In this embodiment, depending on, for example, the status of the software application determined in step 201b and / or the status of the resource determined in step 201a, the controller 8 of the platform 20_1 determines that the execution of the hosted application APP_B is malfunctioning. Typically, this follows the detection of a software crash, a loss of a resource, or a temporary increase in the distance to the platform on which an application with which application APP_B exchanged data during its execution was running, etc.

[0081] In step 202a, the controller 8 of each platform notifies the orchestrator 10 of the updated availability status of the resources, also with a frequency T r(via link 6i from platform 20_i (i=1 to 3)), and the orchestrator 10 receives it.

[0082] In parallel, in step 202b, the orchestrator 10 also t , receives the current conditions of transport over links 40, 41, 51, 52 and 53.

[0083] In parallel, in step 202c, the controller 8 of the platform 20_1 sends to the scheduling unit 11 of the orchestrator 10 a status indicating that the application APP_B should be rehosted.

[0084] The scheduling unit 11 of the orchestrator 10 extracts from the database 13 the pieces of information (or parts of the pieces) associated with the application APP_B and indicated in items a, b and c above, and then in step 203 makes a request to the selection unit 12 of the orchestrator 10 to reselect resources for hosting the application APP_B.

[0085] The selection unit 12 selects in step 204 the platforms 20_1, 20_2, 20_3 whose one or more processing resources will be allocated to the execution of the software application APP_N, this selection being made according to at least the criteria indicated in relation to step 105 of FIG. 2, and then the selection unit 12 indicates to the scheduling unit 11, in this case platform 20_2, the selected platform (or further, in one embodiment, the selected resource of this selected platform when not the local controller 8 of the selected platform, which selects the allocated resource).

[0086] In step 205, the scheduling unit 11 sends a request to the local controller 8 of the platform 20_2 to host the application APP_B and provides the context information (or information that allows downloading the context information). In this case, the information is downloaded from the platform 20_1 that previously hosted the application APP_B, or from a NAS, e.g., a database 50.

[0087] In step 206, in response to receiving this redeployment request, the controller 8 of platform 20_2 deploys the application and then, if necessary, sends a status (with content similar to that reported in step 102c or 202c) indicating the correct execution of application APP_B after its deployment, confirming that the deployment was successful.

[0088] During its execution, the application APP_B carries out exchanges via one or more of the links 40, 41, 52 connecting the platform 20_2 that hosts APP_B with its immediate environment.

[0089] As mentioned above, in one embodiment, transport resources are reserved for these exchanges.

[0090] In one embodiment, the selection unit 11 selects the platform on which the application APP_B should be redeployed by further evaluating whether, in the context of redeployment of the software to be hosted, the context data and / or the instantiation time are compatible with the maximum time allocated for the deployment of the software application (this time is indicated in the initial request REQ associated with APP_B) and / or are compatible with the deployment requirements described with reference to FIG. 2 .

[0091] It should be noted that in one embodiment, application malfunctions are identified directly by the orchestrator 10 (rather than following a message from the local controller), and steps 203 onwards are then performed.

[0092] In the subject embodiment, the code of the application to be hosted is already present on each platform (in an inactive manner, i.e., without execution). If this is not the case for a particular application, an additional platform selection criterion may be considered: the presence of the application's code on the platform.

[0093] Additional measures to enable the use of limited radio transmission resources include modifying the orchestrator 10 selection algorithm to associate the deployment of a software application with all or part of the "support" applications required for the correct operation of the application to be deployed, thereby preserving maximum co-located interaction and reducing the need for exchanges between platforms and other platforms. To do this, a tree of application interdependencies is maintained, for example, in the form of a choreography definition, starting from the application to be deployed. The selection algorithm can then traverse the choreography tree, aggregating the computational and memory requirements, and transmitting resources for each application encountered in the tree. It should be noted that computational and memory resources are additive (deployment of support services increases the computational and memory requirements), while transmission resources can vary both upwards and downwards (co-located exchanges reduce the transmission resource requirements). Therefore, a compromise must be made. The selection of hardware resources to host the applications then becomes a general search for an optimal solution within the constraints given by available resources on the one hand and resource needs on the other.

[0094] For example, in one embodiment, applications are represented by a tree structure, and two software applications are connected by branches of the structure (representing their exchanges) if they communicate with each other during their execution. Nodes of the tree represent software applications and contain metadata (computational power, memory, transport templates) for those software applications. Branches of the tree contain specific transport templates for exchanges between nodes. As the tree is traced, the computational power, memory, and exchange needs imparted by the nodes are added and the exchange needs imparted by the branches are subtracted.

[0095] Two applications linked by a branch might be, for example, an application that captures images using radar, which has the task of tracking a target, and an application that calculates the path of a radar-equipped aircraft (and is therefore requested to track a target).

[0096] It should be noted that at least two situations may occur:

[0097] - the software application is launched from a marketplace or equivalent, the initiator of the request REQ is the interlocutor of the application to be hosted and is therefore defined by the source address of the request REQ, this is in push mode and the application knows where to send the data,

[0098] -A software application is launched automatically for the benefit of a group of participants, who are not necessarily all connected to the network at launch; in this case, the selection of the host platform may be made by comparing the platform's transmission resources with the operating mode expressed for the application in the transport template; this is a pull mode issue, where the application waits for an interlocutor to send its data, and only at that point is the end-to-end path considered and the actual operating mode selected.

[0099] Therefore, the present invention proposes a cloud orchestrator that evaluates the suitability of a server for hosting an application by comparing the amount of available CPU resources and / or available memory with the application's needs, in terms of CPU and / or memory, and further evaluates this suitability by comparing the end-to-end characteristics of the network with the previously assessed exchange needs of the software application (so that, during the execution of the software application on the selected server, the characteristics of the transmission links used for the exchange meet these exchange needs). Orchestrators implementing the present invention can be used with a satisfactory level of performance even in constrained networks. Heterogeneity in transmission capacity and discretionary availability contribute to transport conditions. This information is taken into account by selecting a transport template compatible with the observed transport conditions.

[0100] The present invention also, in one embodiment, allows for the deployment time of software or components to be taken into account in the selection of host resources, ensuring availability within the expected time frame.

[0101] Therefore, the present invention can be implemented in existing orchestrators by adding a mechanism to calculate the score for each available processing resource, or conversely, a mechanism that allows to calculate the score only for resources that are compatible (in terms of the links involved) with the minimum transport conditions.

[0102] The method may be implemented by executing software instructions on a processor, as described above, or may be implemented by dedicated hardware, typically an application specific integrated circuit (ASIC) or a digital integrated circuit based on programmable logic (e.g., FPGA).

Claims

1. A method for orchestrating software applications in a communication system (1) comprising an electronic orchestration device (10) and a distributed communication platform (20) connected to links (40, 41) of a wireless communication network and each including processing resources (6) among memory resources and computational resources, the method comprising the following steps performed by the orchestration device (10): - a collection of the status of said processing resources, the status 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 the received requests (REQ), obtaining the memory and computational characteristics necessary for the execution of said application; - for each software application, a selection from said platforms of at least one platform for said execution of said software application via processing resources of the selected platform, said selection comprising at least: the collected availability status of the processing resources; and a selection made in response to the obtained memory and computation characteristics required for the execution of the application; and - allocation of at least said platform selected for said execution of said software application; The method comprises the following steps performed by the orchestration device (10): - collection of current conditions of transport over said wireless communication network, said transport conditions indicating at least one piece of link-related information: their available bandwidth, their jitter, their latency, their error rate, their nominal bandwidth, and their occupancy; Additionally, for each software application (APP_N) indicated in the received request (REQ), obtaining one or more transport templates indicating the minimum transport conditions necessary for said implementation of communication with said software application during its execution; Further comprising: the selection of the platform is further performed depending on the collected transport conditions and the obtained one or more transport templates; An orchestration method comprising:

2. the received request (REQ) related to the software application (APP_N) further indicates deployment requirements for the installation of the software application; - the selection of processing resources (6) is further made in response to the deployment requirements for the installation of the software application; The orchestration method of claim 1 .

3. In a tree structure, two software applications are linked by a branch of said structure if the two software applications are defined to communicate with each other during their execution, and each branch is associated with a transport template specifically required for said communication; When the selection of at least one platform for the execution of a software application forms part of the tree structure, it further comprises the selection of a platform for the execution of another application of the tree structure, where the platform must be one and the same platform, according to rules on the transport templates on the branches connecting them, reducing the need for exchanges between the selected platform and other platforms, The orchestration method according to claim 1 or 2.

4. 4. The orchestration method of claim 1, wherein following the selection, a reservation of transport resources is triggered on at least one link of the wireless communication network depending on the transport template and current transport conditions for the implementation of communication with the software application during execution of the software application.

5. the transport templates for implementing communication with the software application during execution of the software application include a first transport template corresponding to a nominal operating mode of the software application and a second transport template corresponding to a degraded operating mode of the software application, the second transport template being less demanding than the first transport template; the selection of processing resources is made in dependence on the first and second transport templates, such as obtained, The orchestration method according to any one of claims 1 to 4.

6. A computer program intended to be stored in a memory of an orchestration electronic device (10) further comprising a microcomputer, said computer program comprising instructions which, when executed on said microcomputer, perform the steps of the method of any one of claims 1 to 5.

7. An electronic device (10) for orchestrating software applications of a communication system (1) comprising a distributed communication platform (20) connected to links (40, 41) of a wireless communication network and each including processing resources (6) among memory resources and computational resources, the orchestration device (10) being configured to receive requests (REQ) indicating software applications (APP_N) to be executed, to collect statuses of the processing resources indicating the current availability of the resources (6), and to obtain, for each software application indicated in the received requests (REQ), the memory and computational characteristics required for the execution of the application; For each software application, the orchestration device (10) - selecting from said platforms at least one platform for said execution of said software application via processing resources of said selected platform, said selection comprising at least the collected availability status of the processing resources; and responsive to the obtained memory and computational characteristics required for the execution of the application; and - allocating at least said platform selected for said execution of said software application; In the electronic device configured as above, the orchestration device (10) - collecting current conditions of transport over said wireless communication network, said transport conditions indicating at least one piece of link-related information among their available bandwidth, their jitter, their latency, their error rate, their nominal bandwidth and their occupancy; Additionally, for each software application (APP_N) indicated in the received request (REQ), it is configured to obtain one or more transport templates indicating the minimum transport conditions necessary for said implementation of communication with said software application during the execution of said software application, the selection of the platform is further performed in response to the collected transport conditions and the obtained one or more transport templates. An electronic device (10).

8. the received request (REQ) related to the software application (APP_N) further indicates deployment requirements for the installation of the software application; - the selection of processing resources (6) is further made in response to the deployment requirements for the installation of the software application; The orchestration device (10) of claim 7.

9. In a tree structure, two software applications are linked by a branch of said structure if the two software applications are defined to communicate with each other during their execution, and each branch is associated with a transport template specifically required for said communication; When the selection of at least one platform for the execution of a software application forms part of the tree structure, it further comprises the selection of a platform for the execution of another application of the tree structure, where the platform must be one and the same platform, according to rules on the transport templates on the branches connecting them, reducing the need for exchanges between the selected platform and other platforms, An orchestration device according to claim 7 or 8.

10. The orchestration device (10) of any one of claims 7 to 9 is configured to, following the selection, trigger reservation of transport resources on at least one link of the wireless communication network depending on the one or more transport templates and current transport conditions for the implementation of communication with the software application during execution of the software application.