FR3139687A1 - METHOD FOR ORCHESTRATING SOFTWARE APPLICATIONS IN A TELECOMMUNICATION SYSTEM, COMPUTER PROGRAM AND ASSOCIATED ORCHESTRATION DEVICE - Google Patents

METHOD FOR ORCHESTRATING SOFTWARE APPLICATIONS IN A TELECOMMUNICATION SYSTEM, COMPUTER PROGRAM AND ASSOCIATED ORCHESTRATION DEVICE Download PDF

Info

Publication number
FR3139687A1
FR3139687A1 FR2208991A FR2208991A FR3139687A1 FR 3139687 A1 FR3139687 A1 FR 3139687A1 FR 2208991 A FR2208991 A FR 2208991A FR 2208991 A FR2208991 A FR 2208991A FR 3139687 A1 FR3139687 A1 FR 3139687A1
Authority
FR
France
Prior art keywords
transport
software application
execution
platform
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR2208991A
Other languages
French (fr)
Inventor
Didier Thebault
Béatrice Pesquet-Popescu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Thales SA
Original Assignee
Thales SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Thales SA filed Critical Thales SA
Priority to FR2208991A priority Critical patent/FR3139687A1/en
Priority to PCT/EP2023/074619 priority patent/WO2024052475A1/en
Publication of FR3139687A1 publication Critical patent/FR3139687A1/en
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/781Centralised allocation of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/74Admission control; Resource allocation measures in reaction to resource unavailability
    • H04L47/748Negotiation of resources, e.g. modification of a request
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/782Hierarchical allocation of resources, e.g. involving a hierarchy of local and centralised entities

Abstract

L’invention concerne un procédé d’orchestration d’applications logicielles, des plateformes de télécommunication réparties (20), connectées à des liaisons (40, 41) d’un réseau de télécommunication sans fil comprenant des ressources de traitement (6), ledit procédé comprenant la sélection d’au moins une plateforme pour l’exécution de ladite application logicielle via une ressource de traitement de la plateforme sélectionnée, ladite sélection étant effectuée  en fonction des états de disponibilité collectés des ressources de traitement, des caractéristiques de mémoire et de calcul requises pour l’exécution de ladite application, des conditions de transport courantes sur ledit réseau de télécommunication sans fil et d’un gabarit de transport relatif à ladite application logicielle indiquant des conditions de transport minimales requises pour la mise en œuvre de télécommunications avec ladite application logicielle pendant son exécution  lesdites conditions de transport indiquant au moins une information associée aux liaisons parmi les bandes passantes disponibles, les gigues, les latences, les taux d’erreur, les bandes passantes nominales et les taux d’occupation. Figure pour l’abrégé : Fig. 1The invention relates to a method for orchestrating software applications, distributed telecommunications platforms (20), connected to links (40, 41) of a wireless telecommunications network comprising processing resources (6), said method comprising selecting at least one platform for execution of said software application via a processing resource of the selected platform, said selection being made based on the collected availability states of the processing resources, memory characteristics and calculation required for the execution of said application, current transport conditions on said wireless telecommunications network and a transport template relating to said software application indicating minimum transport conditions required for the implementation of telecommunications with said software application during its execution, said transport conditions indicating at least one piece of information associated with the links among available bandwidths, jitters, latencies, error rates, nominal bandwidths and occupancy rates. Figure for abstract: Fig. 1

Description

PROCEDE D’ORCHESTRATION D’APPLICATIONS LOGICIELLES DANS UN SYSTEME DE TELECOMMUNICATION, PROGRAMME D’ORDINATEUR ET DISPOSITIF D’ORCHESTRATION ASSOCIESMETHOD FOR ORCHESTRATING SOFTWARE APPLICATIONS IN A TELECOMMUNICATION SYSTEM, COMPUTER PROGRAM AND ASSOCIATED ORCHESTRATION DEVICE

L’invention se situe dans le domaine de l’orchestration d’applications logicielles, dans laquelle des ressources matérielles, comprenant CPUs et mémoires, dans des serveurs délocalisés et répartis sont sélectionnées pour héberger l’exécution d’une application logicielle.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.

Actuellement, les solutions d’orchestration des clouds civils évaluent l’adéquation d’un serveur pour héberger un logiciel en fonction de la ressource CPU disponible ou de la quantité de mémoire disponible sur ce serveur versus les besoins du logiciel en CPU et mémoire.Currently, civil cloud orchestration solutions evaluate the suitability of a server for hosting software based on the available CPU resource or the amount of memory available on that server versus the software's CPU and memory requirements.

Si ces solutions sont tout à fait efficaces sur des réseaux de télécommunication gigabit à base de fibres optiques, elles se révèlent insuffisantes sur des réseaux de télécommunication contraints et peuvent même contribuer à un engorgement de ces réseaux.If these solutions are entirely effective on gigabit telecommunications networks based on optical fibers, they prove insufficient on constrained telecommunications networks and can even contribute to congestion in these networks.

On entend par « réseau de télécommunication contraint » un réseau de télécommunication dans lequel la capacité de télécommunication est limitée (comparée aux réseaux gigabits) et peu stable comme, par exemple, les réseaux de télécommunication tactiques déployés localement et ponctuellement sur un terrain d’intervention sanitaire ou militaire (une zone de catastrophe, géologique ou autre, une zone de conflit etc.). Les liaisons de transmission y sont fréquemment rompues sans préavis (par exemple par brouillage intentionnel ou non), certaines sont très limitées en termes de bande passante ou connaissent des occurrences, bien plus fréquentes que dans les réseaux grands publics classiques, de variations de bande passante ou de latence. Or il est besoin dans ces interventions de pouvoir faire exécuter des applications logicielles de façon fiable, notamment dans des serveurs embarqués dans des engins porteurs se déplaçant dans, sur ou à proximité de la zone d’interventionThe term “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 occasionally in an area of intervention. health or military (a disaster zone, geological or other, a conflict zone, etc.). Transmission links are frequently broken without notice (for example by intentional or unintentional jamming), some are very limited in terms of bandwidth or experience occurrences, much more frequent than in traditional consumer networks, of variations in bandwidth. or latency. However, it is necessary in these interventions to be able to run software applications reliably, particularly in servers embedded in carrier vehicles moving in, on or near the intervention zone.

Il existe donc un besoin de disposer d’une solution d’orchestration d’applications logicielles qui puisse être mise en œuvre de façon satisfaisante sur tout type de réseau de télécommunication, y compris contraint.There is therefore a need to have a software application orchestration solution that can be implemented satisfactorily on any type of telecommunications network, including constrained ones.

A cet effet, suivant un premier aspect, la présente invention décrit un procédé d’orchestration d’applications logicielles dans un système de télécommunication comprenant un dispositif électronique d’orchestration, des plateformes de télécommunication réparties (20), connectées à des liaisons d’un réseau de télécommunication sans fil et comprenant chacune des ressources de traitement parmi des ressources de mémoire et des ressources de calcul, ledit procédé comprenant les étapes suivantes mises en œuvre par le dispositif d’orchestration :

  • collecte d’états des ressources de traitement, lesdits états indiquant la disponibilité courante desdites ressources ;
  • réception de requêtes indiquant des applications logicielles à exécuter et, pour chaque application logicielle indiquée dans une requête reçue, obtention des caractéristiques de mémoire et de calcul requises pour l’exécution de ladite application ;
  • pour chaque application logicielle : sélection, parmi les plateformes, d’au moins une plateforme pour l’exécution de ladite application logicielle via une ressource de traitement de la plateforme sélectionnée, ladite sélection étant effectuée en fonction d’au moins:
les états de disponibilité collectés des ressources de traitement ; et
les caractéristiques obtenues de mémoire et de calcul requises pour l’exécution de ladite application; et
  • affectation d’au moins ladite plateforme sélectionnée pour l’exécution de ladite application logicielle ;
ledit procédé étant caractérisé en ce qu’il comprend en outre les étapes suivantes mises en œuvre par le dispositif d’orchestration :
  • collecte de conditions courantes de transport sur ledit réseau de télécommunication sans fil, lesdites conditions de transport indiquant au moins une information associée aux liaisons parmi leur bande passante disponible, leur gigue, leur latence, leur taux d’erreur, leur bande passante nominale et leur taux d’occupation ;
  • pour chaque application logicielle indiquée dans une requête reçue, obtention en outre de gabarit(s) de transport indiquant des conditions de transport minimales requises pour la mise en œuvre de télécommunications avec ladite application logicielle pendant son exécution ;
  • ladite sélection de la plateforme est effectuée en outre en fonction des conditions de transport collectées et desdits gabarit(s) de transport obtenus.
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 communication links. a wireless telecommunications network and each comprising processing resources among memory resources and calculation resources, said method comprising the following steps implemented by the orchestration device:
  • collection of states of 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 execution of said application;
  • for each software application: selection, among the platforms, of 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:
collected availability states of processing resources; And
the obtained memory and calculation characteristics required for the execution of said application; And
  • allocation of 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:
  • 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 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 based on the transport conditions collected and said transport template(s) obtained.

Dans des modes de réalisation, un tel procédé comprendra en outre l’une au moins des caractéristiques suivantes :In embodiments, such a method will also include at least one of the following characteristics:

- ladite requête reçue relative à ladite application logicielle indique en outre des exigences de déploiement pour l’installation de ladite application logicielle ; et ladite sélection de ressource de traitement est effectuée en outre en fonction desdites exigences de déploiement pour l’installation de ladite application logicielle ;- 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;

- dans une structure arborescente, deux applications logicielles sont reliées par une branche de ladite structure si elles ont été définies pour mettre en œuvre entre elles des télécommunications lors de leur exécution et à chaque branche sont associées des gabarits de transport requis spécifiquement pour lesdites télécommunications et selon lequel :
la sélection d’au moins une plateforme pour l’exécution d’une application logicielle, quand elle fait partie de ladite structure arborescente comprend en outre au moins la sélection d’une plateforme pour l’exécution d’une autre application de ladite structure arborescente, lesdites plateformes devant être une seule et même plateforme, en fonction d’une règle relative aux gabarits de transport sur les branches les reliant, si cela diminue le besoin d’échanges de la plateforme sélectionnée avec les autres plateformes ;
- 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;

- suite à ladite sélection, il est déclenché une réservation de ressources de transport sur au moins une liaison du réseau de télécommunication sans fil en fonction desdits gabarit(s) de transport et des conditions courantes de transport, pour la mise en œuvre de télécommunications avec ladite application logicielle pendant son exécution ;- following said selection, a reservation of transport resources is triggered 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;

- lesdits gabarits de transport pour la mise en œuvre de télécommunications avec ladite application logicielle pendant son exécution comprennent un premier gabarit de transport correspondant à un mode de fonctionnement nominal de l’application logicielle et un deuxième gabarit de transport, moins exigeant que le premier gabarit de transport , correspondant à un mode de fonctionnement dégradé de l’application logicielle ; ladite sélection de ressource de traitement étant effectuée en fonction desdits premier et deuxième gabarits de transport tels qu’obtenus.- 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 template transport, 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.

Suivant un autre aspect, l’invention décrit un programme d’ordinateur destiné à être stocké dans la mémoire d’un dispositif électronique d’orchestration comprenant en outre un microcalculateur, ledit programme d’ordinateur comprenant des instructions qui, lorsqu’elles sont exécutées sur le microcalculateur, mettent en œuvre les étapes d’un procédé suivant le premier aspect de l’invention.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.

Suivant un autre aspect, l’invention décrit un dispositif électronique d’orchestration d’applications logicielles pour un système de télécommunication comprenant des plateformes de télécommunication réparties, connectées à des liaisons d’un réseau de télécommunication sans fil et comprenant chacune des ressources de traitement parmi des ressources de mémoire et des ressources de calcul, ledit dispositif d’orchestration étant adapté pour collecter des états des ressources de traitement, lesdits états indiquant la disponibilité courante desdites ressources, pour recevoir des requêtes indiquant des applications logicielles à exécuter et, pour chaque application logicielle indiquée dans une requête reçue, pour obtenir des caractéristiques de mémoire et de calcul requises pour l’exécution de ladite application ;
pour chaque application logicielle, ledit dispositif d’orchestration étant adapté pour :
- sélectionner parmi les plateformes, au moins une plateforme pour l’exécution de ladite application logicielle via une ressource de traitement de la plateforme sélectionnée, ladite sélection étant effectuée en fonction d’au moins :
les états de disponibilité collectés des ressources de traitement ; et
les caractéristiques obtenues de mémoire et de calcul requises pour l’exécution de ladite application ; et
- pour affecter au moins ladite plateforme sélectionnée pour l’exécution de ladite application logicielle ;
ledit dispositif d’orchestration étant caractérisé en ce qu’il est adapté pour :
- collecter des conditions courantes de transport sur ledit réseau de télécommunication sans fil, lesdites conditions de transport indiquant au moins une information associée aux liaisons parmi leur bande passante disponible, leur gigue, leur latence, leur taux d’erreur, leur bande passante nominale et leur taux d’occupation ;
- pour chaque application logicielle indiquée dans une requête reçue, obtenir en outre des gabarit(s) de transport indiquant des conditions de transport minimales requises pour la mise en œuvre de télécommunications avec ladite application logicielle pendant son exécution ;
ladite sélection de la plateforme étant effectuée en outre en fonction des conditions de transport collectées et desdits gabarit(s) de transport obtenus.
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 calculation 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 calculation characteristics required for the execution of said application;
for each software application, said orchestration device being adapted for:
- 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 made according to at least:
collected availability states of processing resources; And
the obtained memory and calculation characteristics required for the execution of said application; And
- to affect at least said selected platform for the execution of said software application;
said orchestration device being characterized in that it is adapted for:
- 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 indicated in a received request, 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 according to the transport conditions collected and said transport template(s) obtained.

Dans des modes de réalisation, un tel dispositif comprendra en outre l’une au moins des caractéristiques suivantes :In embodiments, such a device will also include at least one of the following characteristics:

- ladite requête reçue relative à ladite application logicielle indique en outre des exigences de déploiement pour l’installation de ladite application logicielle ; et ladite sélection de ressource de traitement est effectuée en outre en fonction desdites exigences de déploiement pour l’installation de ladite application logicielle ;- 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;

- dans une structure arborescente, deux applications logicielles sont reliées par une branche de ladite structure si elles ont été définies pour mettre en œuvre entre elles des télécommunications lors de leur exécution et à chaque branche sont associées des gabarits de transport requis spécifiquement pour lesdites télécommunications et selon lequel :
la sélection d’au moins une plateforme pour l’exécution d’une application logicielle, quand elle fait partie de ladite structure arborescente comprend en outre au moins la sélection d’une plateforme pour l’exécution d’une autre application de ladite structure arborescente, lesdites plateformes devant être une seule et même plateforme, en fonction d’une règle relative aux gabarits de transport sur les branches les reliant, si cela diminue le besoin d’échanges de la plateforme sélectionnée avec les autres plateformes ;
- 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;

- le dispositif est adapté pour, suite à ladite sélection, déclencher une réservation de ressources de transport sur au moins une liaison du réseau de télécommunication sans fil en fonction desdits gabarit(s) de transport et des conditions courantes de transport, pour la mise en œuvre de télécommunications avec ladite application logicielle pendant son exécution.- 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 the current transport conditions, for the implementation telecommunications work with said software application during its execution.

L’invention sera mieux comprise et d’autres caractéristiques, détails et avantages apparaîtront mieux à la lecture de la description qui suit, donnée à titre non limitatif, et grâce aux figures annexées, données à titre d’exemple.The invention will be better understood and other characteristics, details and advantages will appear better on reading the description which follows, given on a non-limiting basis, and thanks to the appended figures, given by way of example.

La est une illustration d’un système de télécommunication 1 dans un mode de réalisation de l’invention ; There is an illustration of a telecommunications system 1 in one embodiment of the invention;

La représente des étapes d’un procédé d’allocation de ressources dans un mode de réalisation de l’invention ; There represents steps of a resource allocation method in one embodiment of the invention;

La représente des étapes d’un procédé d’allocation de ressources dans un autre mode de réalisation de l’invention. There represents steps of a resource allocation method in another embodiment of the invention.

Des références identiques peuvent être utilisées dans des figures différentes lorsqu’elles désignent des éléments identiques ou comparables.Identical references may be used in different figures when they designate identical or comparable elements.

La représente un système de télécommunication 1 dans un mode de réalisation de l’invention.There represents a telecommunications system 1 in one embodiment of the invention.

Le système 1 comprend un dispositif d’orchestration 10, une pluralité de plateformes de traitement 20. Dans un mode de réalisation ici représenté, le système 1 comprend en outre une base de données 50.System 1 comprises an orchestration device 10, a plurality of processing platforms 20. In one embodiment shown here, system 1 further comprises a database 50.

Chaque plateforme de traitement 20 est une plateforme matérielle qui comporte un ou des serveurs 6, un réseau de télécommunication local 7, un contrôleur électronique local 8 et une base de stockage de données 9. Le réseau de télécommunication local, par exemple un réseau filaire, interconnecte entre eux les serveurs 6 et le contrôleur local, au sein de leur plateforme 20.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 local telecommunications network, for example a wired network, interconnects the servers 6 and the local controller, within their platform 20.

Dans le cas représenté sur la , le système 1 comprend trois plateformes de traitement 20 : les plateformes 20_1, 20_2 et 20_3, par exemple embarquées chacune dans un engin mobile respectif (avion, drone, engin roulant)… : la plateforme 20_1 se trouve ici dans un avion, la plateforme 20_2 dans un autre avion et la plateforme 20_3 dans un véhicule terrestre, qui circulent au niveau d’une zone géographique d’intervention.In the case shown on the , system 1 includes three processing platforms 20: platforms 20_1, 20_2 and 20_3, for example each embedded in a respective mobile vehicle (airplane, drone, rolling machine)…: platform 20_1 is located here in an airplane, the platform 20_2 in another aircraft and the platform 20_3 in a land vehicle, which circulate in a geographical area of intervention.

Dans le mode de réalisation considéré :
- la plateforme 20_1 comporte deux serveurs 6 : les serveurs SERV11 et SERV12 ;
- la plateforme 20_2 comporte trois serveurs 6 : les serveurs SERV21, SERV22 et SERV23 ;
- et la plateforme 20_3 comporte un serveur 6 : le serveur SER31.
In the embodiment considered:
- platform 20_1 includes two servers 6: servers SERV11 and SERV12;
- platform 20_2 includes three servers 6: servers SERV21, SERV22 and SERV23;
- and platform 20_3 includes a server 6: server SER31.

La base de données de stockage 9 stocke, en association avec l’identifiant de chaque application logicielle à héberger considérée dans la présente invention, le code (binaire) de l’application et un ensemble de méta-données relatives à l’application logicielle.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 meta-data relating to the software application.

La base de données 50 est par exemple dans un bâtiment distant de la zone d’intervention.The database 50 is for example in a building distant from the intervention zone.

Le dispositif d’orchestration 10, appelé ci-après orchestrateur 10, est connecté par une liaison de télécommunication sans fil 61, respectivement 62, respectivement 63, à la plateforme de traitement 20_1, respectivement 20_2, respectivement 20_3.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.

Par ailleurs, les plateformes de traitement 20, ou au moins certaines d’entre elles, sont par exemple interconnectées entre elle et/ou avec d’autres entités de télécommunication sans fil (par exemple dans le cas présent la base de données 50) par un réseau de télécommunication sans fil contraint. Par exemple, dans le cas représenté en , chaque plateforme 20_i, i = 1 à 3, est reliée par une liaison satellite 5i à la base de données 50 ; la plateforme 20_1 est connectée à la plateforme 20_2 par une liaison 40, par exemple VHF ou UHF et la plateforme 20_2 est connectée à la plateforme 20_3 par une liaison 41 par exemple VHF et UHF.Furthermore, the processing platforms 20, or at least some of them, are for example interconnected with each other and/or with other wireless telecommunications entities (for example in the present case the database 50) by a constrained wireless telecommunications network. For example, in the case shown in , each platform 20_i, 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.

Ces liaisons 40, 41, 51, 52, 53 constituent des ressources de transmission du réseau de télécommunication contraint du système 1.These links 40, 41, 51, 52, 53 constitute transmission resources of the constrained telecommunications network of system 1.

Dans un mode de réalisation, certaines ou toutes les liaisons parmi les liaisons 40, 41, 61, 62 et 63 sont des liaisons logiques portées par une seule liaison physique.In one embodiment, some or all of the links among the links 40, 41, 61, 62 and 63 are logical links carried by a single physical link.

L’orchestrateur 10 est adapté pour recevoir régulièrement, par exemple au moins une fois toutes les Ttsecondes, des données indiquant les conditions courantes de transport sur les liaisons 40, 41, 51, 52 et 53, notamment la bande passante disponible et/ou le taux d’occupation des liaisons et/ou la latence et/ou la gigue.The orchestrator 10 is adapted to regularly receive, for example at least once every T t seconds, data indicating the current transport conditions on the links 40, 41, 51, 52 and 53, in particular the available bandwidth and/or or link occupancy rate and/or latency and/or jitter.

Concernant la valeur de Tt: si l’on veut être réactif, il faut une valeur faible, par exemple, la valeur de Ttsera fixée égale au maximum à 1 seconde, mais cela va nécessiter une grande bande passante ; plus on augmentera cette valeur (jusqu’à par exemple 60 secondes), moins on consommera de bande passante, mais moins on sera réactif ; il y a donc un compromis à faire entre la consommation et la réactivité.Concerning 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 reactivity.

Dans un autre mode de réalisation, certaines au moins de ces données ne sont pas communiquées de façon périodique mais sur occurrence d’un événement (par exemple passage de la bande passante sous (ou au-dessus) de seuils définis etc., ce qui permet de minimiser l’empreinte de ces remontées sur la bande passante globale du réseau.In another embodiment, at least some of this data is not communicated periodically but on the occurrence of an event (for example passage of the bandwidth below (or above) defined thresholds etc., which makes it possible to minimize the footprint of these reports on the overall bandwidth of the network.

Ces données indiquant les conditions courantes de transport sont par exemple déterminées par les contrôleurs locaux 8 des plateformes 20 en fonction des échanges mis en œuvre sur les liaisons de télécommunication, puis transmises au dispositif d’orchestration 10 par la plateforme 20_1 sur la liaison 6i, i = 1 à 3.These data indicating the current transport conditions are 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.

Typiquement, les liaisons UHF, VHF 40, 41 ont des bandes passantes fluctuantes et limitées, par exemple, fréquemment -voire toujours- inférieures à une centaine de kbits/s ou même à quelques dizaines de kbits/s ; les liaisons satellite 51, 52 et 53 ont une bande passante fréquemment -voire toujours- inférieure à quelques Mbits/s (par exemple moins de 10) ou même quelques centaines de kbit/s (moins de 10).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. ; the satellite links 51, 52 and 53 have a bandwidth frequently - or even always - lower than a few Mbits/s (for example less than 10) or even a few hundred kbit/s (less than 10).

La latence pour les satellites géostationnaires est d’environ 600ms (cas du double bond quand il faut repasser par un hub au sol) ; la latence pour les réseaux UHF est plutôt de l’ordre de la centaine de ms, peut-être quelques dizaines (moins de 10) de ms. Pour les satellites en orbite basse, la latence se situe entre les deux.The latency for geostationary satellites is around 600ms (case of double hop when you have to go back through a hub on the ground); the latency for UHF networks is more of the order of a hundred ms, perhaps a few tens (less than 10) ms. For low-orbit satellites, the latency is somewhere between the two.

La gigue va surtout se retrouver sur les réseaux radio TDMA car le temps d’accès au slot d’émission est variable. Elle dépend de la longueur du slot, mais elle peut être de plusieurs dizaines (moins de 10 dizaines) de ms, voire plus.Jitter will especially be found on TDMA radio networks because the access time to the transmission slot is variable. It depends on the length of the slot, but it can be several tens (less than 10 tens) of ms, or even more.

Chaque serveur 6 comprend des ressources de traitement, qui comportent des ressources de calcul (CPU) et des ressources de mémoire par exemple de type RAM, ou NAS (Network-Attached Storage). Chaque serveur 6 est adapté pour héberger, pour un temps déterminé, une ou des applications logicielles suite à l’affectation de ressources de traitement du serveur 6 à chacune de ces applications logicielles, les applications hébergées s’exécutant alors en utilisant les ressources de mémoire et calcul qui lui ont été affectées.Each server 6 includes processing resources, which include calculation resources (CPU) and memory resources, for example 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 resources and calculation assigned to it.

Au sein de chaque plateforme 20_i, i = 1 à 3, le contrôleur local 8 est adapté pour déterminer en temps réel pour chaque serveur 6 de cette plateforme 20_i, l’état courant de disponibilité des ressources de traitement du serveur : quantité de ressources de mémoire disponible, par exemple exprimée en octets, et quantité de ressources de calcul disponible, par exemple exprimée en virtual CPU (vCPU) ou en threads ou en Mips (Million d’instructions par seconde), les autres ressources étant utilisées pour l’exécution d’applications logicielles affectées au serveur. On entend par « quantité de ressource disponible » la quantité qui pourrait être attribuée à l’exécution d’une application logicielle supplémentaire. Le contrôleur local 8 est adapté pour déterminer en temps réel pour chaque serveur 6 de cette plateforme 20_i, l’état des applications s’exécutant sur le serveur 6 (par exemple déroulement de l’exécution OK ou NOK, état d’avancement, performances …).Within each platform 20_i, i = 1 to 3, the local controller 8 is adapted to determine in real time for each server 6 of this platform 20_i, the current state of availability of the processing resources of the server: quantity of resources of available memory, for example expressed in bytes, and quantity of available computing resources, for example expressed in virtual CPU (vCPU) or in threads or in Mips (Million instructions per second), the other resources being used for execution of software applications assigned to the server. By “amount of available resource” we mean 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 20_i, the state of the applications running on the server 6 (for example progress of execution OK or NOK, progress status, performance …).

Le contrôleur local 8 est adapté pour transmettre régulièrement, par exemple au moins une fois toutes les Trsecondes, avec Trpar exemple choisi égal à Tt, l’état des ressources de traitement à l’orchestrateur 10 ainsi que l’état des applications.The local controller 8 is adapted to transmit regularly, for example at least once every Trseconds, with Trfor example chosen equal to Tt, the state of the processing resources at the orchestrator 10 as well as the state of the applications.

Dans un autre mode de réalisation, la transmission de cet état n’est pas périodique mais a lieu sur occurrence d’un événement par exemple lié à un dépassement de seuil(s) caractérisant l’état des ressources et/ou l’état des applications.In another embodiment, the transmission of this state is not periodic but takes place on 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.

L’orchestrateur 10 est un dispositif électronique comprenant un bloc électronique d’ordonnancement 11, un bloc électronique de sélection 12 et une base de données 13. Il est adapté pour recevoir des requêtes, nommées REQ, depuis des dispositifs de télécommunication connectés à l’orchestrateur 10 par des liaisons de télécommunication. Certains de ces dispositifs de communication sont par exemple embarqués dans les engins mobiles transportant les plateformes 20 ou embarqués dans le même engin, mobile ou fixe, dans lequel est situé l’orchestrateur 10.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 REQs, from telecommunications devices connected to the orchestrator 10 via telecommunications links. Some of these communication devices are for example embedded in the mobile vehicles transporting the platforms 20 or embedded in the same vehicle, mobile or fixed, in which the orchestrator 10 is located.

Le bloc de sélection 12 de l’orchestrateur 10 est adapté pour, suite à la réception d’une requête, nommée REQ, indiquant une application logicielle à exécuter, sélectionner parmi l’ensemble des ressources de traitement des serveurs des plateformes 20_1, 20_2, 20_3, celle(s) des ressource(s) de traitement qui sera(seront) affectée(s) à l’exécution d’une application logicielle indiquée dans la requête REQ, de la manière décrite plus en détail en référence aux figures 2 et 3.The selection block 12 of the orchestrator 10 is adapted to, following receipt of a request, named REQ, indicating a software application to be executed, select from all the processing resources of the servers of the platforms 20_1, 20_2, 20_3, that of the processing resource(s) which will be allocated to the execution of a software application indicated in the REQ request, in the manner described in more detail with reference to Figures 2 and 3.

Chaque requête REQ reçue par l’orchestrateur 10 et concernant une application logicielle à héberger, nommée APP, est conforme à une syntaxe prédéfinie et comporte au moins, outre l’identifiant du dispositif de télécommunication à l’origine de la requête, l’identifiant de l’application logicielle APP et optionnellement indication temporelle de quand l’exécution de l’application APP est souhaitée (par exemple au plus tard).Each REQ request received by the orchestrator 10 and concerning a software application to be hosted, named APP, conforms to a predefined syntax and includes at least, in addition to the identifier of the telecommunications device at the origin of the request, the identifier of the APP software application and optionally time indication of when the execution of the APP application is desired (for example at the latest).

A partir de cet identifiant d’application logicielle APP, l’orchestrateur 10 est adapté pour obtenir les informations suivantes (ou certaines au moins des informations suivantes), stockées préalablement, dans sa base de données 14, en correspondance avec l’identifiant de l’application logicielle APP (par exemple ces informations font partie des méta-données de l’application APP) :

  • a/ code (binaire) de l’application logicielle APP les valeurs de paramètres etc. (ou dans un mode de réalisation, l’adresse URL à partir de laquelle l’application logicielle peut être téléchargée) ;
  • b/ les caractéristiques de mémoire et de calcul requises, nécessaires à la bonne exécution de l’application logicielle APP obtenues par l’évaluation des quantités de ressources de calcul et de mémoire par exemple au moment de la conception de l’application APP)
  • c/ indication des conditions de transport minimales requises pour la mise en œuvre de télécommunications avec ladite application logicielle APP pendant son exécution ; cette indication est fournie dans un mode de réalisation pour un mode nominal de fonctionnement de l’application et optionnellement en outre pour un ou plusieurs modes dégradés de fonctionnement de l’application logicielle ; ces conditions sont exprimées par exemple sous forme de bande passante minimale requise, de latence maximale requise, de gigue maximale requise, de taux d’erreur maximal requis, de coût d’usage maximal permis, de paramètres qualitatifs (type de liaison par exemple), etc.
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 metadata of the APP application):
  • a/ code (binary) of the software application APP parameter values etc. (or in one embodiment, the URL from which the software application can be downloaded);
  • b/ the required memory and calculation characteristics, necessary for the proper execution of the APP software application obtained by evaluating the quantities of calculation 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 APP software application during its execution; this indication is provided in one embodiment for a nominal mode of operation of the application and optionally further for one or more degraded modes of operation of the software application; these conditions are expressed for example in the form of minimum required bandwidth, maximum required latency, maximum required jitter, maximum required error rate, maximum allowed usage cost, qualitative parameters (type of link for example) , etc.

Dans un autre mode de réalisation, les informations indiquées ci-dessus comme extraites d’une base de données 13 sont alternativement indiquées dans la requête REQ et l’orchestrateur les obtient directement dans la requête REQ.In another embodiment, the information indicated above as extracted from a database 13 is alternatively indicated in the REQ request and the orchestrator obtains it directly in the REQ request.

Ainsi, pour chaque application logicielle destinée à être traitée par l’orchestrateur 10, il devra préalablement, par exemple lors de la conception de chaque application logicielle APP, être effectuée une étape de caractérisation des échanges mis en œuvre par l’application logicielle, notamment en émission. Cette étape est par exemple mise en œuvre par un bloc logiciel de caractérisation mettant en œuvre les étapes ci-dessous.Thus, for each software application intended to be processed by the orchestrator 10, a step of characterizing the exchanges implemented by the software application must first be carried out, for example during the design of each software application APP, in particular in broadcast. This step is for example implemented by a characterization software block implementing the steps below.

Dans cette caractérisation des échanges, les types d’information échangées sont tout d’abord identifiés. Pour chaque type d’information, la durée de vie de l’information produite est alors caractérisée. Cela donne une contrainte de latence à ne pas dépasser sur le transport de cette information. Ensuite, la volumétrie de l’information produite par ces échanges est calculée ou évalué ou mesurée. Associée à la contrainte de latence maximum, cela conduit à une contrainte de bande passante minimum nécessaire pour véhiculer l’information produite. La périodicité des échanges est une autre propriété de l’information qui permet de maintenir les ressources dans le temps. Pour une information non périodique, une fois l’information envoyée, les ressources de transmission peuvent être libérées. Pour une information périodique, les ressources doivent être maintenues tant que l’application est active. Par ailleurs, la volumétrie associée à la période permet de définir un débit moyen d’information, ce qui conduit à une contrainte de bande passante minimum sur les ressources de transmission.In this characterization of exchanges, the types of information exchanged are first identified. For each type of information, the lifespan of the information produced is then characterized. This gives a latency constraint that must not be exceeded on the transport of this information. Then, the volume of information produced by these exchanges is calculated or 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 which allows resources to be maintained over time. For non-periodic information, once the information has been sent, the transmission resources can be freed. For periodic information, 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 rate, which leads to a minimum bandwidth constraint on the transmission resources.

Lors de cette caractérisation, dans un mode de réalisation, les données ci-dessous, ou au moins de certaines d’entre elles sont en outre déterminées :

  • contrainte de gigue, c’est-à-dire une contrainte sur la variation maximum de latence ;
  • contrainte sur le taux de perte maximum d’information, ce qui se traduit en un taux d’erreur maximum du réseau de transmission ;
  • éléments qualitatifs du transport : liaison sécurisée nécessaire ou pas, liaison patrimoniale nécessaire ou pas, ….
During this characterization, in one embodiment, the data below, or at least some of them, are additionally determined:
  • jitter constraint, that is to say a constraint on the maximum latency variation;
  • constraint on the maximum information loss rate, which translates into a maximum error rate of the transmission network;
  • qualitative elements of transport: secure connection necessary or not, heritage connection necessary or not, etc.

De cette caractérisation des échanges associés à l’application logicielle, il est ainsi aisément déduit une définition des conditions de transport seuil requises pour la bonne exécution de l’application logicielle, en termes d’au moins de valeur minimale de bande passante et/ou valeur maximale de latence et/ou gigue et/ou taux d’erreur.From this characterization of the exchanges associated with the software application, 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 value of latency and/or jitter and/or error rate.

Comme précisé plus haut, cette caractérisation des échanges (et des conditions de transport seuil requises) est réalisée au moins pour un mode nominal de fonctionnement de l’application et en outre, optionnellement, pour un ou plusieurs modes dégradés de fonctionnement de l’application logicielle qui pourront être mis en œuvre en cas de raréfaction ou dégradation des ressources de transmission du réseau.As specified above, this characterization of the exchanges (and the required threshold transport conditions) is carried out at least for a nominal mode of operation of the application and in addition, optionally, for one or more degraded modes of operation of the application. software that can be implemented in the event of shortage or degradation of network transmission resources.

Par exemple, une application de capture vidéo sera associée à un mode de fonctionnement nominal, dans lequel elle fournit des images avec une résolution maximale, correspondant à un débit de 2 Mbit/s, un premier mode de fonctionnement dégradé dans lequel elle fournit des images avec une résolution intermédiaire, correspondant à un débit de 1 Mbit/s et un deuxième mode de fonctionnement dégradé dans lequel elle fournit des images avec une résolution basse, correspondant à un débit de 500 kbit/s. Cela permet ainsi à l’application de basculer dans un mode de fonctionnement adapté si une ressource de transmission permettant le mode de fonctionnement nominal ne peut être trouvée.For example, a video capture application will be associated with a nominal operating mode, in which it provides images with 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 allows the application to switch to a suitable operating mode if a transmission resource allowing the nominal operating mode cannot be found.

Les informations correspondant à l’item c ci-dessus peuvent ainsi prendre plusieurs formes : soit elles sont fournies sous la forme de l’évaluation des échanges (et dans ce cas, c’est l’orchestrateur qui effectue la traduction, en en déduisant les conditions de transport seuil requises (= gabarits de transport à respecter), soit sous la forme de ces gabarits de transport à respecter (différents modes de fonctionnement correspondant à différents gabarits de transport).The information corresponding to item c above can thus take several forms: either it is 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 threshold transport conditions required (= transport templates to be respected), or in the form of these transport templates to be respected (different operating modes corresponding to different transport templates).

Les applications logicielles sont des unités logicielles d’exécutable autonome (comprenant donc le code), par exemple de type containers, tels que les pods Kuberbetes®. Chacune est adaptée pour être déployée sur un serveur choisi par l’orchestrateur 10, et pour y être exécutée.Software applications are software units of autonomous executable (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.

Dans un système 1 selon l’invention, les conditions courantes de transport sont donc supervisées et fournies à l’orchestrateur 10 au même titre que les ressources de calcul et de mémoire, et la sélection de la ressource matérielle d’hébergement des applications prend en compte non seulement la capacité de calcul et la mémoire nécessaire à l’exécution des applications, mais également la capacité du réseau contraint sous-jacent à assurer les échanges réalisés par les applications du fait de leur délocalisation.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 calculation and memory resources, and the selection of the hardware resource for hosting the applications takes into account takes into account not only the calculation 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.

La représente les étapes d’un procédé d’orchestration d’applications logicielles dans un mode de réalisation de l’invention.There represents the steps of a method for orchestrating software applications in one embodiment of the invention.

Dans le mode de réalisation considéré, l’orchestrateur 10, et notamment le bloc d’ordonnancement 11 et le bloc de sélection 12, sont réalisés sous la forme de blocs logiciels, comportant des instructions logicielles stockées dans une mémoire de l’orchestrateur 10 et qui, lorsqu’elles sont exécutées sur un processeur de l’orchestrateur 10, mettent en œuvre les étapes leur incombant.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.

En référence à la , le contrôleur 8 dans chaque plate-forme 20 détermine dans une étape 101a, en fonction de données de contrôle transmises par les ressources matérielles de traitement (mémoire et calcul) de chaque serveur 6 de la plateforme, l’état actualisé de disponibilité des ressources de traitement de la plateforme, par exemple à une fréquence Tr(certaines des ressources ne sont par exemple pas disponibles, utilisées pour l’exécution des applications APP_A, APP_B, … précédemment affectées aux ressources de cette plateforme 20 ).In reference to the , the controller 8 in each platform 20 determines in a step 101a, based on control data transmitted by the hardware processing resources (memory and calculation) of each server 6 of the platform, the updated state of resource availability processing 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, etc. previously allocated to the resources of this platform 20).

En parallèle par exemple, le contrôleur 8 dans chaque plate-forme 20, détermine, dans une étape 101b, l’état actualisé des applications logicielles s’exécutant localement, en fonction de données de contrôle qui lui sont transmises par ces applications logicielles dont l’exécution a été affectée aux serveurs 6 de la plateforme par l’orchestrateur 10 (à ce stade l’application APP_N n’est pas encore hébergée sur la plateforme, l’état ne la concerne donc pas ; elle a été encadrée en pointillés sur la pour signaler son insertion ultérieure au cours du procédé).In parallel for example, the controller 8 in each platform 20, determines, in a step 101b, the updated state of the software applications running locally, based on control data transmitted to it by these software applications including The execution has been assigned to the servers 6 of the platform by the orchestrator 10 (at this stage the APP_N application is not yet hosted on the platform, the state therefore does not concern it; it has been framed in dotted lines on there to signal its subsequent insertion during the process).

Dans une étape 102a, le contrôleur 8 transmet l’état actualisé de disponibilité, également à la fréquence Tr(sur la liaison 6i depuis la plateforme 20_i, i= 1 à 3) à l’orchestrateur 10, qui le reçoit. Dans un mode de réalisation, il transmet aussi à l’orchestrateur l’état des applications logicielles (optionnellement cet état est transmis seulement quand l’état indique un dysfonctionnement).In a step 102a, the controller 8 transmits the updated availability state, also at the frequency T r (on the link 6i from the platform 20_i, i=1 to 3) to the 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).

En parallèle par exemple, dans une étape 102b, l’orchestrateur 10 reçoit, par exemple (cf plus haut) à la fréquence Tt, les conditions courantes de transport sur les liaisons 40, 41, 51, 52 et 53.In parallel for example, in a step 102b, the orchestrator 10 receives, for example (see above) at the frequency T t , the current transport conditions on the links 40, 41, 51, 52 and 53.

Dans une étape 103, l’orchestrateur 10 reçoit une requête REQ, relative à une application logicielle, nommée ici APP_N, pour le déploiement de cette dernière sur un serveur à identifier par l’orchestrateur 10. Le bloc d’ordonnancement 11 de l’orchestrateur 10, dans une étape 104, extrait de la base de données 13 les informations indiquées (ou certaines d’entre elles) aux items a, b, c plus haut (quand elles ne figurent pas dans la requête REQ),puis il les fournit, ainsi que la requête REQ au bloc de sélection 12 de l’orchestrateur 10.In a step 103, the orchestrator 10 receives a REQ request, 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 they do not appear in the REQ request) , then it provides, as well as the REQ request to the selection block 12 of the orchestrator 10.

Le bloc de sélection 12, dans une étape 105, sélectionne celle des plateformes 20_1, 20_2, 20_3 parmi l’ensemble des plateformes 20_1, 20_2, 20_3 dont les ressource(s) de traitement pourront être affectées à l’exécution de l’application logicielle APP_N, cette sélection étant effectuée en fonction d’au moins :

  • les états de disponibilité des ressources de traitement reçues à l’étape 102a ;
  • les caractéristiques de mémoire et de calcul requises pour l’exécution de l’application APP_N, telles que fournies à l’étape 104 au bloc de sélection 12 ;
  • les conditions de transport reçues à l’étape 102b ;
  • les conditions de transport seuil telles que fournies à l’étape 104 au bloc de sélection 12.
The selection block 12, in a step 105, selects that of the platforms 20_1, 20_2, 20_3 among all the platforms 20_1, 20_2, 20_3 whose processing resource(s) can be allocated to the execution of the application software APP_N, this selection being made according to at least:
  • the availability states of the processing resources received in step 102a;
  • the memory and calculation characteristics required for the execution of the APP_N application, as provided in step 104 to selection block 12;
  • the transport conditions received in step 102b;
  • the threshold transport conditions as provided in step 104 in selection block 12.

Une fois la plateforme sélectionnée, si elle comporte plusieurs serveurs présentant les ressources requises, un serveur parmi ces serveurs est à son tour sélectionné, dont les ressources de traitement seront affectées à l’exécution de l’application logicielle APP_N, Cette dernière sélection est effectuée suivant les modes de réalisation, soit par le bloc de sélection 12 également, soit par le contrôleur local 8 de la plateforme sélectionnée.Once the platform is selected, if it includes 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 software application APP_N. This last selection is made depending on the embodiments, either by the selection block 12 also, or by the local controller 8 of the selected platform.

Typiquement, les règles de sélection sont telles que : les ressources de traitement (calcul, mémoire au sens RAM) sélectionnées pour l’application APP_N seront choisies au sein d’un même serveur 6; les ressources sélectionnées sont des ressources, dans un état alors « disponible », et sont sélectionnées en quantité égale ou supérieure auxdites caractéristiques de mémoire et de calcul requises pour APP_N ; en outre la plateforme sélectionnée est telle que la ou les liaisons en sortie de cette plateforme (permettant l’émission de données depuis cette plateforme) présentent des conditions de transport (d’après celles reçues à l’étape 102b) vérifiant les conditions de transport seuil associées à l’application APP_N et fournies à l’étape 104Typically, the selection rules are such that: the processing resources (calculation, memory in the RAM sense) selected for the APP_N application will be chosen within the same server 6; the selected resources are resources, in a then “available” state, and are selected in quantity equal to or greater than said memory and calculation 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) present transport conditions (according to those received in step 102b) verifying the transport conditions threshold associated with the APP_N application and provided in step 104

Des règles de sélection sont par exemple :

  • identifier les plateformes en capacité d’héberger l’application APP_N selon remontée des états 102a ; sélectionner parmi elles la plateforme offrant les meilleures conditions de transport selon remontée 102b ; ou
  • identifier les plateformes en capacité d’assurer les échanges de l’application APP_N selon remontée 102b ; sélectionner parmi elles la plateforme capable d’héberger l’application APP_N selon remontée des états 102a et qui conserve un maximum de ressources disponibles.
Selection rules are for example:
  • identify the platforms capable of hosting the APP_N application according to reporting of states 102a; select among them the platform offering the best transport conditions according to lift 102b; Or
  • identify the platforms capable of ensuring exchanges of the APP_N application according to feedback 102b; select among them the platform capable of hosting the APP_N application according to reporting of states 102a and which retains a maximum of available resources.

Considérons à titre d’exemple une application vidéo avec un mode de fonctionnement nominal (MdF0) à 2Mbit/s, un mode de fonctionnement dégradé MdF1 à 1Mbit/s et un mode de fonctionnement dégradé MdF2 à 500kbit/s. Les conditions de transport (étape 102b) sont : liaison 51 = 2,4 Mbit/s ; liaison 52 = 750 kbit/s ; liaison 53 = 1,3 Mbit/s. Supposons que la plateforme 20_1 n’ait pas les ressources de calcul ou de mémoire suffisantes pour héberger APP_N et que les deux plateformes 20_2 et 20_3 puissent le faire, alors la sélection se portera sur la plateforme 20_3 qui offre les meilleures conditions de transport et l’application APP_N sera alors déployée en mode MdF1. Si, en revanche, l’application 20_1 avait pu héberger l’application APP_N, alors c’est elle qui aurait été sélectionnée et l’application APP_N aurait été déployée en mode MdF0.As an example, consider a video application with a nominal operating mode (MdF0) at 2Mbit/s, a degraded operating mode MdF1 at 1Mbit/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 made on platform 20_3 which offers the best transport conditions and the The APP_N application will then be deployed in MdF1 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 MdF0 mode.

Une mesure supplémentaire permettant de limiter l’usage des ressources de transmission consiste à modifier l’algorithme de scheduling de l’orchestrateur pour associer au déploiement tout ou partie des services support nécessaires au bon fonctionnement des services déployés et ainsi maintenir le maximum d’interactions colocalisées : ainsi si l’application APP_N doit échanger d’une part avec la base de données 50 et d’autre part avec une application qui est alors hébergée sur la plateforme 20_3, les volumes échangées avec cette dernière étant élevés et avec une durée de vie faible, le bloc de sélection 12 sélectionnera en priorité des ressources pour APP_N sur la plateforme 20_3An additional measure making it possible to limit 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 interactions. co-located: thus if the APP_N application 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 duration of low life, selection block 12 will prioritize resources for APP_N on platform 20_3

Puis le bloc de sélection 12 indique la plateforme sélectionnée (voire les ressources de calcul et mémoire sélectionnées) au bloc d’ordonnancement 11.Then selection block 12 indicates the selected platform (or even the selected calculation and memory resources) to scheduling block 11.

Dans une étape 106, le bloc d’ordonnancement 11 transmet une demande d’hébergement de l’application APP_N au contrôleur local 8 de la plateforme 20 sélectionnée et fournit les informations de contexte (ou les informations permettant le téléchargement du contexte).In a step 106, the scheduling block 11 transmits a request for hosting the APP_N application to the local controller 8 of the selected platform 20 and provides the context information (or the information allowing the download of the context).

Dans une étape 107, le contrôleur 8 reçoit la demande d’hébergement de l’application APP_N ; il extrait de la base de données de stockage 9 notamment le code de l’application APP_N qui y est stocké en association avec l’identifiant de APP_N indiqué dans la demande d’hébergement. Le cas échéant, le contrôleur 8 sélectionne les ressources de calcul et mémoire locales (si elles n’ont pas été sélectionnées par le bloc de sélection 12 et indiquées dans la demande d’hébergement) en fonction des métadonnées de l’application APP_N dans la base 9. Le contrôleur 8 installe l’application dans la ressource mémoire (DRAM) sélectionnée, démarre cette application sur la ressource de calcul sélectionnée et vérifie l’exécution (utilisant les ressources de mémoire et de calcul sélectionnées). Il ajoute l’application APP_N à la liste des applications dont l’état de fonctionnement est remonté à l’orchestrateur (voir plus haut). L’application APP_N (encadrée en pointillés sur la pour signaler son insertion au cours du procédé) est alors hébergée sur la plateforme.In a step 107, the controller 8 receives the request for hosting the application APP_N; it extracts from the storage database 9 in particular the code of the APP_N application which is stored there in association with the identifier of APP_N indicated in the hosting request. If applicable, the controller 8 selects the local calculation and memory resources (if they have not been selected by the selection block 12 and indicated in the hosting request) based on the metadata of the APP_N application in the base 9. Controller 8 installs the application in the selected memory resource (DRAM), starts this application on the selected calculation resource and verifies the execution (using the selected memory and calculation resources). It adds the APP_N application to the list of applications whose operating status is reported to the orchestrator (see above). The APP_N application (boxed in dotted lines on the to signal its insertion during the process) is then hosted on the platform.

L’application APP_N lors de son exécution met en œuvre des échanges sur une ou des liaisons, parmi les liaisons 40, 41, 51, 52, 53, entre la plateforme 20 hébergeant APP_N et l’interlocuteur ou les interlocuteurs impliqués dans ces échanges.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.

Dans un mode de réalisation, le bloc d’ordonnancement 11 du dispositif d’orchestration déclenche, préalablement (par exemple, lors d’une étape 108), une action pour garantir la disponibilité de ressources de transport (estimées en fonction desdites conditions de transport seuil requises pour APP_N) nécessaires à ces échanges sur cette ou ces liaisons et permettant de satisfaire le mode de fonctionnement retenu : par exemple une réservation de ces ressources ou tout autre mécanisme permettant de gérer la qualité de service dans un réseau sans fil. Par la suite, si les conditions de transport évoluent, cela peut amener l’application APP_N à basculer sur un autre mode de fonctionnement. Il se peut aussi qu’aucun mode de fonctionnement ne peut être satisfait, auquel cas, l’application APP_N ne peut plus s’exécuter correctement. Une erreur d’exécution est alors remontée à l’ordonnanceur pour trouver un hébergement alternatifIn 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 according to said transport conditions threshold 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 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 run correctly. An execution error is then reported to the scheduler to find alternative accommodation

La sélection de la ressource matérielle de traitement est fonction, dans un mode de réalisation, du délai de déploiement de l’application logicielle sur la ressource matérielle (incluant notamment l’instanciation de l’application, son démarrage, et la transmission du contexte de fonctionnement en cas de redéploiement), qui dépendent des conditions courantes de transport. Le délai de déploiement peut en effet se révéler incompatible du besoin temporel, exprimé dans la requête, pour bénéficier du service et doit donc être considéré dans l’algorithme de sélection des ressources de traitement disponibles.The selection of the hardware processing resource is a function, in one embodiment, of 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 context of operation in the event of redeployment), which depend on current transport conditions. The deployment time may in fact prove to be incompatible with the temporal need, expressed in the request, to benefit from the service and must therefore be considered in the algorithm for selecting the available processing resources.

Par exemple, dans un mode de réalisation, ladite requête REQ reçue relative à l’application logicielle à héberger indique en outre des exigences de déploiement pour l’installation de l’application logicielle (par exemple, il faut qu’elle soit lancée en 2 s). Et l’orchestrateur sélectionne le serveur 6 en fonction en outre de ces exigences de déploiement pour l’installation de l‘application logicielle.For example, in one embodiment, said REQ request received 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 server 6 further based on these deployment requirements for installing the software application.

La représente les étapes d’un procédé d’orchestration des applications dans un mode de réalisation de l’invention, dans le cas d’un redéploiement suite à la perte d’une ressource de traitement alors utilisée pour l’exécution d’une application logicielle ou suite à l’impossibilité à assurer l’un des modes de fonctionnement autorisés pour l’exécution d’une application.There represents the steps of an application orchestration method 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 inability to ensure one of the operating modes authorized for the execution of an application.

Le contrôleur 8 dans chaque plate-forme 20 (notamment dans les plateformes 20_1, 20_2 représentées en ) détermine dans une étape 201a, en fonction de données de contrôle transmises par les ressources matérielles de traitement de chaque serveur 6 de la plateforme, l’état actualisé de disponibilité des ressources de traitement de la plateforme, à une fréquence Tr(certaines des ressources ne sont pas disponibles, utilisées pour l’exécution des applications APP_A, … APP_B, précédemment affectés aux ressources de cette plateforme 20).The controller 8 in each platform 20 (in particular in the platforms 20_1, 20_2 represented in ) determines in a step 201a, based on control data transmitted by the hardware processing 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 the execution of applications APP_A, … APP_B, previously allocated to the resources of this platform 20).

En parallèle par exemple, dans une étape 201b, le contrôleur 8 dans chaque plate-forme 20 détermine en fonction de données de contrôle transmises par les applications logicielles dont l’exécution a été affectée aux serveurs 6 de la plateforme, l’état actualisé des applications logicielles s’exécutant localement.In parallel for example, in a step 201b, the controller 8 in each platform 20 determines, based on 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 running locally.

Dans le cas présent, en fonction par exemple de l’état des applications logicielles déterminés à l’étape 201b et/ou de l’état des ressources déterminé à étape 201a, le contrôleur 8 de la plateforme 20_1 détermine que l’exécution de l’application hébergée APP_B présente un dysfonctionnement. Typiquement, cela fait suite à la détection d’un crash logiciel, de la disparition d’une ressource ou de l’éloignement temporaire de la plateforme sur laquelle s’exécutait une application avec laquelle l’application APP_B échangeait des données lors de son exécution etc.In the present case, depending for example on the state of the software applications determined in step 201b and/or the state of the resources determined in step 201a, the controller 8 of the platform 20_1 determines that the execution of the The hosted application APP_B presents a malfunction. 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 APP_B application exchanged data during its execution etc.

Dans une étape 202a, le contrôleur 8 de chaque plateforme transmet l’état actualisé de disponibilité des ressources, également à la fréquence Tr (sur la liaison 6i depuis la plateforme 20_i, i= 1 à 3) à l’orchestrateur 10, qui le reçoit.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 20_i, i=1 to 3) to the orchestrator 10, which receives.

En parallèle, dans une étape 202b, l’orchestrateur 10 reçoit, par exemple à la fréquence Tt, les conditions courantes de transport sur les liaisons 40, 41, 51, 52 et 53.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.

En parallèle, dans une étape 202c, le contrôleur 8 de la plateforme 20_1 transmet au bloc d’ordonnancement 11 de l’orchestrateur 10 un état indiquant que l’hébergement de l’application APP_B est à réaffecter.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 state indicating that the hosting of the application APP_B is to be reassigned.

Le bloc d’ordonnancement 11 de l’orchestrateur 10, extrait de la base de données 13 les informations associées à l’application APP_B et indiquées (ou certaines d’entre elles) aux items a, b, c plus haut, puis il effectue une demande de re-sélection de ressources pour héberger l’application APP_B au bloc de sélection 12 de l’orchestrateur 10, dans une étape 203.The scheduling block 11 of the orchestrator 10 extracts from the database 13 the information associated with the APP_B application and indicated (or some of them) in items a, b, c above, then it performs a request for re-selection of resources to host the application APP_B in the selection block 12 of the orchestrator 10, in a step 203.

Le bloc de sélection 12, dans une étape 204, sélectionne celle des plateformes 20_1, 20_2, 20_3, dont les ressource(s) de traitement seront affectées à l’exécution de l’ application logicielle APP_N, cette sélection étant effectuée en fonction d’au moins les critères indiqués relativement à l’étape 105 de la ; puis le bloc de sélection 12 indique la plateforme sélectionnée (voire dans un mode de réalisation les ressources sélectionnées de cette plateforme sélectionnée, quand ce n’est pas le contrôleur local 8 de la plateforme sélectionnée qui sélectionne les ressources affectées) au bloc d’ordonnancement 11, dans le cas présent la plateforme 20_2.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 made according to at least the criteria indicated in relation to step 105 of the ; 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 platform 20_2.

Dans une étape 205, le bloc d’ordonnancement 11 transmet une demande d’hébergement de l’application APP_B au contrôleur local 8 de la plateforme 20_2 et fournit les informations de contexte (ou les informations permettant le téléchargement du contexte). Dans le cas présent, les informations sont à téléchargées depuis la plateforme 20_1 d’hébergement antérieur de l’application APP_B ou depuis un NAS, par exemple la base 50.In a step 205, the scheduling block 11 transmits a request for hosting the application APP_B to the local controller 8 of the platform 20_2 and provides the context information (or the information allowing the download of the context). In the present case, the information is downloaded from the platform 20_1 of previous hosting of the APP_B application or from a NAS, for example base 50.

Dans une étape 206, en réponse à la réception de cette demande de redéploiement, le contrôleur 8 de la plateforme 20_2 effectue le déploiement de l’application, et envoie ensuite un état de bonne exécution de l’application APP_B après son déploiement, confirmant qu’il s’est effectué correctement, le cas échéant (état au contenu similaire à celui envoyé à l’étape 102c ou 202c).In a step 206, in response to receipt of this redeployment request, the controller 8 of the platform 20_2 carries out the deployment of the application, and then sends a status of successful execution of the application APP_B after its deployment, confirming that it was carried out correctly, if necessary (state with content similar to that sent in step 102c or 202c).

L’application APP_B dans son exécution, met en œuvre des échanges sur une ou plusieurs des liaisons, parmi les liaisons 40, 41, 52 connectant la plateforme 20_2 hébergeant APP_B à son environnement immédiat.The APP_B 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 APP_B to its immediate environment.

Comme évoqué précédemment, dans un mode de réalisation, des ressources de transport sont réservées pour ces échanges.As mentioned previously, in one embodiment, transport resources are reserved for these exchanges.

Dans un mode de réalisation, le bloc de sélection 11 dans le cadre du redéploiement logicielle à héberger sélectionne la plateforme dans laquelle re-déployer l’application APP_B en évaluant en outre si des données de contexte et/ou le temps d’instanciation sont bien compatibles d’une durée maximum allouée au déploiement de l’application logicielle (cette durée étant indiquée dans la requête initiale REQ associée à APP_B) et/ou sont compatibles des exigences de déploiement comme décrit en référence à la .In one embodiment, the selection block 11 in the context of the software redeployment to be hosted selects the platform in which to re-deploy the APP_B application 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 REQ request associated with APP_B) and/or are compatible with the deployment requirements as described with reference to the .

On notera que le dysfonctionnement d’une application dans un mode de réalisation est identifié directement par l’orchestrateur 10 (et non suite à un message du contrôleur local), qui met alors en œuvre les étapes 203 et suivantes.Note 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 et seq.

Dans le mode de réalisation considéré, les codes des applications à héberger sont déjà résidents (de façon non active, i.e. sans exécution) sur chaque plateforme. Si ce n’était pas le cas pour certaines des applications, un critère supplémentaire de sélection de plateforme pourra être considéré : la présence du code de l’application sur les plateformes.In the embodiment considered, the codes of the applications to be hosted are already resident (in a non-active manner, i.e. without execution) on each platform. If this was 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.

Une mesure supplémentaire qui permet de limiter l’usage des ressources de transmission sans fil consiste à modifier l’algorithme de sélection de l’orchestrateur 10 pour associer au déploiement d’une application logicielle tout ou partie des applications « support » qui sont nécessaires au bon fonctionnement de l’application à déployer et ainsi maintenir le maximum d’interactions colocalisées, réduisant ainsi le besoin d’échanges de la plateforme avec les autres plateformes. Pour ce faire, un arbre d’inter-dépendances des applications est maintenu sous la forme par exemple d’une définition de chorégraphie avec comme point de départ les applications à déployer. L’algorithme de sélection peut alors parcourir l’arbre de chorégraphie et consolider le besoin en ressources de calcul et mémoire et transmission pour chaque application rencontrée dans l’arbre. On notera que contrairement aux ressources de calcul et ressources mémoire qui sont additives (déployer un service support augmente le besoin de calcul et de mémoire), les ressources de transmission peuvent varier à la hausse ou à la baisse (les échanges colocalisés viennent réduire le besoin en ressources de transmission). Il y a donc un compromis à faire. La sélection de la ressource matérielle pour héberger les applications devient alors une recherche classique de solution optimale dans un champ de contraintes données d’une part par les ressources disponibles et d’autre part par les besoins en ressources.An additional measure which 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 which are necessary for the proper functioning of the application to be deployed and thus maintain the maximum number of co-located interactions, thus reducing the need for exchanges of the platform with other platforms. To do this, a tree of application interdependencies is maintained in the form of, for example, 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 and memory and transmission resources for each application encountered in the tree. Note that unlike calculation resources and memory resources which are additive (deploying a support service increases the need for calculation and memory), transmission resources can vary upwards or downwards (co-located exchanges reduce the need in transmission resources). So there is a compromise to be made. The selection of the hardware resource to host the applications then becomes a classic search for an optimal solution in a field of constraints given on the one hand by the available resources and on the other hand by the resource requirements.

Par exemple, dans un mode de réalisation, on représente les applications par une structure arborescente, dans laquelle deux applications logicielles sont reliées par une branche de la structure (représentant leurs échanges) si elles mettent en œuvre entre elles des télécommunications lors de leur exécution. Les nœuds de l’arbre représentent les applications logicielles et portent les méta-données desdites applications logicielles (calcul, mémoire, gabarits de transport). Les branches de l’arbre portent les gabarits de transport spécifiques des échanges inter-nœuds. Au fur et à mesure qu’on parcourt l’arbre, on additionne les besoins de calcul, de mémoire et d’échanges donnés par les nœuds et on soustrait les besoins d’échanges donnés par les branches.For example, in one embodiment, the applications are represented by a tree structure, in which two software applications are connected 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 carry the specific transport templates for inter-node exchanges. As we go through the tree, we add the calculation, memory and exchange requirements given by the nodes and subtract the exchange requirements given by the branches.

Les deux applications liées par une branche sont par exemple une application de capture d’images par un Radar chargé de poursuivre une cible et une application de calcul de trajectoire de l’avion transportant le Radar (et devant donc poursuivre la cible).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 transporting the Radar (and therefore having to track the target).

On notera qu’au moins les deux situations suivantes peuvent se produire :Note that at least the following two situations can occur:

- l’application logicielle est lancé depuis une market place ou équivalent ; l’initiateur de la requête REQ sera alors l’interlocuteur de l’application à héberger et est donc défini par l’adresse source de la requête REQ ; il s’agit d’un mode push : l’application sait à qui envoyer ses données ;- the software application is launched from a market place or equivalent; the initiator of the REQ request will then be the interlocutor 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;

– l’application logicielle est lancée automatiquement au profit d’un groupe de participants, pas forcément tous connectés au réseau à ce moment-là ; dans ce cas, le choix de la plateforme d’hébergement pourra se faire en comparant les ressources de transmission des plateformes avec les modes de fonctionnement exprimés pour l’application dans les gabarits de transport ; il s’agit alors d’un mode pull : l’application attend qu’un interlocuteur se manifeste pour lui envoyer ses données et ce n’est qu’à ce moment-là que le chemin bout-en-bout est pris en compte et que le mode de fonctionnement effectif est choisi.– 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; it is then a pull mode: the application waits for a contact to come forward to send it their data and it is only at that moment that the end-to-end path is taken into account and the actual operating mode is chosen.

Ainsi l’invention propose un orchestrateur de cloud qui, évalue l’adéquation d’un serveur pour héberger une application en fonction de la ressource CPU disponible et/ou de la quantité de mémoire disponible versus les besoins de l’application en CPU et/ou mémoire, et qui évalue en outre cette adéquation en fonction des caractéristiques du réseau de bout en bout versus les besoins d’échange préalablement évalués des applications logicielles (de manière que les caractéristiques des liaisons de transmission mises en œuvre pour assurer les échanges lors de l’exécution de l’application logicielle sur le serveur sélectionné remplissent ces besoins d’échanges). Un orchestrateur implémentant l’invention peut être utilisé dans des réseaux contraints avec un niveau de performance satisfaisant. L’hétérogénéité des capacités de transmission et l’état de discrétion contribuent aux conditions de transport. La prise en compte de ces informations est réalisée par la sélection d’un gabarit de transport compatible des conditions de transport constatées.Thus the invention proposes a cloud orchestrator which evaluates the suitability of a server to host an application according to the available CPU resource and/or the quantity of available memory versus the application's needs in CPU and/or or memory, and which further evaluates this adequacy according to the characteristics of the end-to-end network versus the previously evaluated exchange needs of the software applications (so that the characteristics of the transmission links implemented to ensure exchanges during execution of the software application on the selected server fulfills these exchange needs). An orchestrator implementing the invention can be used in constrained networks with a satisfactory level of performance. The heterogeneity of transmission capacities and the state of discretion contribute to transport conditions. This information is taken into account by selecting a transport template compatible with the transport conditions observed.

L’invention permet aussi dans un mode de réalisation de prendre en compte le temps de déploiement des logiciels ou composants dans la sélection des ressources d’hébergement, pour garantir une mise à disposition dans les délais attendus.The invention also makes it possible, in one embodiment, to take into account the deployment time of software or components in the selection of hosting resources, to guarantee availability within the expected deadlines.

Ainsi l’invention peut être mise en œuvre dans les orchestrateurs existants en complétant leur mécanisme de scoring calculé pour chaque ressource de traitement disponible ou inversement en ne calculant ce scoring que pour les ressources compatibles (en termes de liaisons impliquées) des conditions de transport minimales.Thus the invention can be implemented in existing orchestrators by completing their scoring mechanism calculated for each available processing resource or vice versa by only calculating this scoring for compatible resources (in terms of links involved) with minimum transport conditions. .

Le procédé peut être mis en œuvre par l’exécution d’instructions logicielles sur un processeur, comme décrit ci-dessus. Alternativement, il peut être mis en œuvre par un hardware dédié, typiquement un circuit intégré numérique, soit spécifique (ASIC) ou basé sur une logique programmable (par exemple FPGA/Field Programmable Gate Array).The method may be implemented by executing software instructions on a processor, as described above. Alternatively, it can be implemented by dedicated hardware, typically a digital integrated circuit, either specific (ASIC) or based on programmable logic (for example FPGA/Field Programmable Gate Array).

Claims (10)

Procédé d’orchestration d’applications logicielles dans un système (1) de télécommunication comprenant un dispositif électronique d’orchestration (10), des plateformes de télécommunication réparties (20), connectées à des liaisons (40, 41) d’un réseau de télécommunication sans fil et comprenant chacune des ressources de traitement (6) parmi des ressources de mémoire et des ressources de calcul, ledit procédé comprenant les étapes suivantes mises en œuvre par le dispositif d’orchestration (10) :
  • collecte d’états des ressources de traitement, lesdits états indiquant la disponibilité courante desdites ressources (6) ;
  • réception de requêtes (REQ) indiquant des applications logicielles (APP_N) à exécuter et, pour chaque application logicielle indiquée dans une requête (REQ) reçue, obtention des caractéristiques de mémoire et de calcul requises pour l’exécution de ladite application ;
  • pour chaque application logicielle : sélection, parmi les plateformes, d’au moins une plateforme pour l’exécution de ladite application logicielle via une ressource de traitement de la plateforme sélectionnée, ladite sélection étant effectuée en fonction d’au moins:
les états de disponibilité collectés des ressources de traitement ; et
les caractéristiques obtenues de mémoire et de calcul requises pour l’exécution de ladite application; et
  • affectation d’au moins ladite plateforme sélectionnée pour l’exécution de ladite application logicielle ;
ledit procédé étant caractérisé en ce qu’il comprend en outre les étapes suivantes mises en œuvre par le dispositif d’orchestration (10) :
  • collecte de conditions courantes de transport sur ledit réseau de télécommunication sans fil, lesdites conditions de transport indiquant au moins une information associée aux liaisons parmi leur bande passante disponible, leur gigue, leur latence, leur taux d’erreur, leur bande passante nominale et leur taux d’occupation ;
  • pour chaque application logicielle (APP_N) indiquée dans une requête (REQ) reçue, obtention en outre de gabarit(s) de transport indiquant des conditions de transport minimales requises pour la mise en œuvre de télécommunications avec ladite application logicielle pendant son exécution ;
  • ladite sélection de la plateforme est effectuée en outre en fonction des conditions de transport collectées et desdits gabarit(s) de transport obtenus.
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 network of wireless telecommunications and comprising each of the processing resources (6) among memory resources and calculation resources, said method comprising the following steps implemented by the orchestration device (10):
  • collection of states of 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 calculation characteristics required for the execution of said application;
  • for each software application: selection, among the platforms, of 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:
collected availability states of processing resources; And
the obtained memory and calculation characteristics required for the execution of said application; And
  • allocation of 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 request (REQ) received, further obtaining 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 is further carried out based on the transport conditions collected and said transport template(s) obtained.
Procédé d’orchestration selon la revendication 1, selon lequel :
- ladite requête (REQ) reçue relative à ladite application logicielle (APP_N) indique en outre des exigences de déploiement pour l’installation de ladite application logicielle ; et
- ladite sélection de ressource de traitement (6) est effectuée en outre en fonction desdites exigences de déploiement pour l’installation de ladite application logicielle.
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.
Procédé d’orchestration selon la revendication 1 ou 2, selon lequel dans une structure arborescente, deux applications logicielles sont reliées par une branche de ladite structure si elles ont été définies pour mettre en œuvre entre elles des télécommunications lors de leur exécution et à chaque branche sont associées des gabarits de transport requis spécifiquement pour lesdites télécommunications et selon lequel :
la sélection d’au moins une plateforme pour l’exécution d’une application logicielle, quand elle fait partie de ladite structure arborescente comprend en outre au moins la sélection d’une plateforme pour l’exécution d’une autre application de ladite structure arborescente, lesdites plateformes devant être une seule et même plateforme, en fonction d’une règle relative aux gabarits de transport sur les branches les reliant, si cela diminue le besoin d’échanges de la plateforme sélectionnée avec les autres plateformes.
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 at each branch are 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.
Procédé d’orchestration selon l’une quelconque des revendications précédentes, selon lequel suite à ladite sélection, il est déclenché une réservation de ressources de transport sur au moins une liaison du réseau de télécommunication sans fil en fonction desdits gabarits de transport et des conditions courantes de transport, pour la mise en œuvre de télécommunications avec ladite application logicielle pendant son exécution.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 wireless telecommunications network according to said transport templates and current conditions transport, for the implementation of telecommunications with said software application during its execution. Procédé d’orchestration selon l’une quelconque des revendications précédentes, selon lequel :
  • lesdits gabarits de transport pour la mise en œuvre de télécommunications avec ladite application logicielle pendant son exécution comprennent un premier gabarit de transport correspondant à un mode de fonctionnement nominal de l’application logicielle et un deuxième gabarit de transport, moins exigeant que le premier gabarit de transport , correspondant à un mode de fonctionnement dégradé de l’application logicielle ;
  • ladite sélection de ressource de traitement étant effectuée en fonction desdits premier et deuxième gabarits de transport tels qu’obtenus.
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 transport, corresponding to a degraded operating mode of the software application;
  • said processing resource selection being carried out according to said first and second transport templates as obtained.
Programme d’ordinateur, destiné à être stocké dans la mémoire d’un dispositif électronique d’orchestration (10) comprenant en outre un microcalculateur, ledit programme d’ordinateur comprenant des instructions qui, lorsqu’elles sont exécutées sur le microcalculateur, mettent en œuvre les étapes d’un procédé selon l’une des revendications précédentes.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 implements the steps of a method according to one of the preceding claims. Dispositif électronique (10) d’orchestration d’applications logicielles pour un système (1) de télécommunication comprenant des plateformes de télécommunication réparties (20), connectées à des liaisons (40, 41) d’un réseau de télécommunication sans fil et comprenant chacune des ressources de traitement (6) parmi des ressources de mémoire et des ressources de calcul, ledit dispositif d’orchestration (10) étant adapté pour collecter des états des ressources de traitement, lesdits états indiquant la disponibilité courante desdites ressources (6), pour recevoir des requêtes (REQ) indiquant des applications logicielles (APP_N) à exécuter et, pour chaque application logicielle indiquée dans une requête (REQ) reçue, pour obtenir des caractéristiques de mémoire et de calcul requises pour l’exécution de ladite application ;
pour chaque application logicielle, ledit dispositif d’orchestration (10) étant adapté pour :
- sélectionner parmi les plateformes, au moins une plateforme pour l’exécution de ladite application logicielle via une ressource de traitement de la plateforme sélectionnée, ladite sélection étant effectuée en fonction d’au moins :
les états de disponibilité collectés des ressources de traitement ; et
les caractéristiques obtenues de mémoire et de calcul requises pour l’exécution de ladite application ; et
- pour affecter au moins ladite plateforme sélectionnée pour l’exécution de ladite application logicielle ;
ledit dispositif d’orchestration (10) étant caractérisé en ce qu’il est adapté pour :
- collecter des conditions courantes de transport sur ledit réseau de télécommunication sans fil, lesdites conditions de transport indiquant au moins une information associée aux liaisons parmi leur bande passante disponible, leur gigue, leur latence, leur taux d’erreur, leur bande passante nominale et leur taux d’occupation ;
- pour chaque application logicielle (APP_N) indiquée dans une requête (REQ) reçue, obtenir en outre des gabarit(s) de transport indiquant des conditions de transport minimales requises pour la mise en œuvre de télécommunications avec ladite application logicielle pendant son exécution ;
ladite sélection de la plateforme étant effectuée en outre en fonction des conditions de transport collectées et desdits gabarit(s) de transport obtenus.
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 calculation resources, said orchestration device (10) being adapted to collect states of the processing resources, said states indicating the current availability of said resources (6), for receive requests (REQ) indicating software applications (APP_N) to be executed and, for each software application indicated in a received request (REQ), to obtain memory and calculation characteristics required for the execution of said application;
for each software application, said orchestration device (10) being adapted for:
- 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 made according to at least:
collected availability states of processing resources; And
the obtained memory and calculation characteristics required for the execution of said application; And
- to affect at least said selected platform for the execution of said software application;
said orchestration device (10) being characterized in that it is adapted for:
- 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 request (REQ) received, 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 according to the transport conditions collected and said transport template(s) obtained.
Dispositif d’orchestration (10) selon la revendication 7, dans lequel :
- ladite requête (REQ) reçue relative à ladite application logicielle (APP_N) indique en outre des exigences de déploiement pour l’installation de ladite application logicielle ; et
- ladite sélection de ressource de traitement (6) est effectuée en outre en fonction desdites exigences de déploiement pour l’installation de ladite application logicielle.
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.
Dispositif d’orchestration selon la revendication 7 ou 8, dans lequel dans une structure arborescente, deux applications logicielles sont reliées par une branche de ladite structure si elles ont été définies pour mettre en œuvre entre elles des télécommunications lors de leur exécution et à chaque branche sont associées des gabarits de transport requis spécifiquement pour lesdites télécommunications et selon lequel :
la sélection d’au moins une plateforme pour l’exécution d’une application logicielle, quand elle fait partie de ladite structure arborescente comprend en outre au moins la sélection d’une plateforme pour l’exécution d’une autre application de ladite structure arborescente, lesdites plateformes devant être une seule et même plateforme, en fonction d’une règle relative aux gabarits de transport sur les branches les reliant, si cela diminue le besoin d’échanges de la plateforme sélectionnée avec les autres plateformes.
Orchestration device according to claim 7 or 8, in 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 at each branch are 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.
Dispositif d’orchestration (10) selon l’une quelconque des revendications précédentes, adapté pour, suite à ladite sélection, déclencher une réservation de ressources de transport sur au moins une liaison du réseau de télécommunication sans fil en fonction desdits gabarit(s) de transport et des conditions courantes de transport, pour la mise en œuvre de télécommunications avec ladite application logicielle pendant son exécution.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 according to said template(s) transport and current transport conditions, for the implementation of telecommunications with said software application during its execution.
FR2208991A 2022-09-08 2022-09-08 METHOD FOR ORCHESTRATING SOFTWARE APPLICATIONS IN A TELECOMMUNICATION SYSTEM, COMPUTER PROGRAM AND ASSOCIATED ORCHESTRATION DEVICE Pending FR3139687A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR2208991A FR3139687A1 (en) 2022-09-08 2022-09-08 METHOD FOR ORCHESTRATING SOFTWARE APPLICATIONS IN A TELECOMMUNICATION SYSTEM, COMPUTER PROGRAM AND ASSOCIATED ORCHESTRATION DEVICE
PCT/EP2023/074619 WO2024052475A1 (en) 2022-09-08 2023-09-07 Method for orchestrating software applications in a telecommunication system, associated computer program and orchestration device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2208991A FR3139687A1 (en) 2022-09-08 2022-09-08 METHOD FOR ORCHESTRATING SOFTWARE APPLICATIONS IN A TELECOMMUNICATION SYSTEM, COMPUTER PROGRAM AND ASSOCIATED ORCHESTRATION DEVICE
FR2208991 2022-09-08

Publications (1)

Publication Number Publication Date
FR3139687A1 true FR3139687A1 (en) 2024-03-15

Family

ID=85175691

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2208991A Pending FR3139687A1 (en) 2022-09-08 2022-09-08 METHOD FOR ORCHESTRATING SOFTWARE APPLICATIONS IN A TELECOMMUNICATION SYSTEM, COMPUTER PROGRAM AND ASSOCIATED ORCHESTRATION DEVICE

Country Status (2)

Country Link
FR (1) FR3139687A1 (en)
WO (1) WO2024052475A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200136906A1 (en) * 2019-04-30 2020-04-30 Francesc Guim Bernat Modular i/o configurations for edge computing using disaggregated chiplets
US20220086846A1 (en) * 2020-09-11 2022-03-17 Motojeannie, Inc. Latency-as-a-service (laas) platform

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200136906A1 (en) * 2019-04-30 2020-04-30 Francesc Guim Bernat Modular i/o configurations for edge computing using disaggregated chiplets
US20220086846A1 (en) * 2020-09-11 2022-03-17 Motojeannie, Inc. Latency-as-a-service (laas) platform

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GSMA: "Operator Platform Telco Edge Proposal Version 1.0 22 October 2020", no. Telco, 17 February 2021 (2021-02-17), XP052173201, Retrieved from the Internet <URL:https://ftp.3gpp.org/tsg_sa/WG5_TM/TSGS5_136e/Docs/S5-212015.zip OPG.01 v1.0.pdf> [retrieved on 20210217] *

Also Published As

Publication number Publication date
WO2024052475A1 (en) 2024-03-14

Similar Documents

Publication Publication Date Title
CN109688222A (en) The dispatching method of shared computing resource, shared computing system, server and storage medium
EP1817880A1 (en) Method and system for the dynamic adaptation of service quality metrics in an ad hoc network
JP2011502412A (en) Resilient service quality within a managed multimedia distribution network
WO2010034920A1 (en) Determination and management of virtual networks
EP2502384B1 (en) Method and system for distributing content with guarantees of delivery timescales in hybrid radio networks
WO2020174156A1 (en) Method for evaluating the devices of a network infrastructure for deploying a virtualised function
WO2019185552A1 (en) Communication method
WO2009007658A2 (en) Method for determining a group of pairs located close to another pair and associated server and analysis device
TWI489889B (en) Method and system for controlling flow of content delivery network and peer to peer network
FR3139687A1 (en) METHOD FOR ORCHESTRATING SOFTWARE APPLICATIONS IN A TELECOMMUNICATION SYSTEM, COMPUTER PROGRAM AND ASSOCIATED ORCHESTRATION DEVICE
EP2656589B1 (en) Method and device for digital data communication
EP3777308B1 (en) Communication method
EP3797547A1 (en) Method for managing a connection in a distributed wireless network
EP2591588B1 (en) Access to a network of nodes distributed over a communication architecture, using a topology server with multi-criteria selection
EP3675435A1 (en) Method for dynamic routing in a network of connected objects
FR2933261A1 (en) METHOD OF PROCESSING A REQUEST, ACCESS GATEWAY AND SERVICE INTAKE CONTROL SYSTEM
EP3817294B1 (en) Method and module for a connectivity regulation of connected objects.
EP3631626B1 (en) Hierarchized updating of software of equipment of an electrical distribution network
WO2023281181A1 (en) Process and device for configuration of an access unit in a virtualised environment
FR3095914A1 (en) Method of dynamic routing in a network of connected objects
WO2023275491A1 (en) Method for checking shared content delivery
EP4064063A1 (en) Communication system comprising a plurality of processors and at least one switch, and associated communication method
FR3131155A1 (en) INCIDENT DETECTION METHOD AND SYSTEM IN AT LEAST ONE LOCAL COMMUNICATION NETWORK
FR3089087A1 (en) METHOD FOR PREEMPTING TRANSMISSION RESOURCES FOR REAL-TIME DATA ROUTING
FR3121566A1 (en) Method and device for providing a communication resource

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20240315