FR3076000A1 - Procede d'identification d'une unite de travail en cours d'execution, procede de controle d'execution d'une unite de travail, dispositifs, equipement serveur et programmes d'ordinateurs associes - Google Patents

Procede d'identification d'une unite de travail en cours d'execution, procede de controle d'execution d'une unite de travail, dispositifs, equipement serveur et programmes d'ordinateurs associes Download PDF

Info

Publication number
FR3076000A1
FR3076000A1 FR1763181A FR1763181A FR3076000A1 FR 3076000 A1 FR3076000 A1 FR 3076000A1 FR 1763181 A FR1763181 A FR 1763181A FR 1763181 A FR1763181 A FR 1763181A FR 3076000 A1 FR3076000 A1 FR 3076000A1
Authority
FR
France
Prior art keywords
work unit
execution
class
measurements
work
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.)
Withdrawn
Application number
FR1763181A
Other languages
English (en)
Inventor
Jean-Emile Dartois
Olivier BARAIS
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.)
B Com SAS
Original Assignee
Universite de Rennes 1
B Com SAS
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 Universite de Rennes 1, B Com SAS filed Critical Universite de Rennes 1
Priority to FR1763181A priority Critical patent/FR3076000A1/fr
Publication of FR3076000A1 publication Critical patent/FR3076000A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling

Abstract

L'invention concerne un procédé d'identification d'une unité de travail au cours de son exécution, caractérisé en ce qu'il comprend les étapes suivantes : Obtention (E1) au cours de l'exécution de l'unité de travail d'une pluralité de mesures représentatives d'une empreinte de l'unité de travail sur les ressources informatiques de l'équipement client pendant au moins une période temporelle prédéterminée ; Prédiction (E2) par un système de prédiction automatique préalablement entraîné en mode supervisé et à partir de la pluralité de mesures collectées, d'une probabilité d'appartenance de ladite unité de travail à au moins une classe d'unité de travail d'une pluralité de classes; Décision (E3) d'affecter à l'unité de travail la classe associée à la probabilité la plus élevée, lorsqu'elle est supérieure ou égale à un seuil de confiance prédéterminé.

Description

Procédé d'identification d'une unité de travail en cours d'exécution, procédé de contrôle d'exécution d'une unité de travail, dispositifs, équipement serveur et programmes d'ordinateurs associés 1. Domaine de l'invention
Le domaine de l'invention est celui de l'informatique en nuage (pour « cloud computing », en anglais), plus précisément l'exploitation de la puissance de calcul ou de stockage de serveurs informatiques distants par l'intermédiaire d'un réseau, généralement Internet. L'invention concerne l'identification d'une unité de travail au cours de son exécution par un équipement client, à partir de mesures d'usages de ressources informatiques.
Elle peut notamment, mais non exclusivement, s'appliquer au contrôle par un équipement serveur de la bonne exécution d'une unité de travail par un équipement client distant. 2. Présentation de l'art antérieur
Les entreprises connaissent des besoins croissants en infrastructures IT pour transmettre leurs données numériques, les stocker ou disposer d'une puissance de calcul nécessaire à leurs traitements.
Cependant, ces infrastructures ont un coût important (achat et maintenance de matériel, achat et maintenance logicielle, expertise en sécurité/exploitation,...). Les entreprises sont donc à la recherche de solutions leur permettant de diminuer leur TCO (Total Cost of Ownership) sans pour autant négliger les exigences de sécurité et de disponibilité des applications.
Dans ce contexte, des initiatives ont montré qu'il était possible d'exploiter les ressources matérielles non utilisées (cycles CPU idle, mémoire, stockage, réseau, etc) que l'on peut trouver dans la majorité des entreprises.
En effet, la plupart des centres de données (pour « datacenters », en anglais) ont une utilisation moyenne comprise entre 10 % et 15%.
Cette utilisation des ressources non utilisées a été rendue possible grâce à l'émergence de plateformes Open source comme Parabon, BOINC, XtremWeb etc.
Par exemple, BOINC est une plateforme de calcul partagé à laquelle quiconque peut connecter son ordinateur pour apporter de la puissance de calcul à des projets scientifiques dans différents domaines tels que la médecine, l'astronomie, la physique ou les mathématiques.
Dans ces plateformes Open source, une unité de travail (pour « work unit », en anglais), c'est-à-dire une tâche informatique destinée à être réalisée par une application informatique, est envoyée à une machine distante, qu'on appelle fournisseur de ressources, accessible via Internet. Une unité de travail comprend par exemple une opération de transcodage vidéo, de rendu 3D ou un job d'intégration continue.
Une telle plateforme de calcul partagé intègre très souvent un ordonnanceur utilisé pour l'ordonnancement et le placement intelligent des unités de travail parmi les fournisseurs de ressources. Elle est gérée par un opérateur.
Lorsque la bonne exécution d'une unité de travail est validée par l'opérateur, le fournisseur de ressources peut être récompensé par des crédits dont la quantité accordée dépend par exemple du temps de calcul dépensé, de la performance, de l'emplacement géographique, etc.
Lorsqu'une organisation délègue l'exécution d'une unité de travail à une infrastructure tierce ayant des ressources non utilisées pour minimiser ses coûts, le contrôle de la bonne exécution de cette unité de travail est crucial.
Deux types d'erreurs peuvent survenir lors de l'exécution d'une unité de travail: • Les erreurs non-volontaires sont dues à un défaut de conception d'un logiciel ou à une erreur matérielle. Par exemple une mauvaise gestion de virgule flottante (pour « floating point», en anglais) qui en fonction du constructeur et de la puce peut amener des résultats différents de ceux attendus ; • Les actes malveillants de falsification du résultat attendu pour maximiser les profits d'un fournisseur de ressource qui vend des ressources qu'il ne possède pas. C'est pourquoi la majorité des plateformes de calcul partagé intègrent des outils de validation pouvant résister aux actes malveillants.
On connaît notamment une technique dite de « réplication » qui consiste à commander l'exécution d'une même unité de travail à plusieurs équipements clients ou machines hôtes. Le résultat est validé par un vote lorsqu'il y a au moins N (N souvent égal à 2) réplication qui ont été envoyées à deux machines distinctes et dont les résultats sont cohérents entre eux voire identiques. Si les résultats ne sont pas cohérents, des répliques supplémentaires sont envoyées à d'autres machines jusqu'au succès.
Un inconvénient de cette technique est qu'elle implique un gaspillage des ressources. En effet, la même unité de travail doit nécessairement être exécutée N fois. De plus, si un fournisseur malveillant possède un grand nombre d'équipements hôtes, il peut soumettre N résultats faux et ainsi tromper le système. Un autre inconvénient de cette technique est qu'elle nécessite de faire appel à plusieurs équipements hôtes avec des configurations matérielles et logicielles potentiellement distinctes ce qui peut causer des erreurs de calculs dues par exemple à une gestion différente de la virgule flottante.
On connaît aussi une technique dite de « l'échantillonnage » qui consiste à effectuer une vérification sur un échantillon de fournisseurs de ressources, en leur commandant l'exécution d'une unité de travail simple dont la vérification de la bonne exécution est rapide.
Pour éviter qu'un fournisseur malveillant ne la repère trop facilement, elle peut être insérée au milieu d'unités de travail réelles.
Selon une variante, on peut identifier les équipements de fournisseurs malveillants au cours du temps et les inscrire sur une liste interdite (pour « black list », en anglais).
Une autre technique consiste à obfusquer le code informatique de l'unité de travail à exécuter, de façon à rendre difficile voire impossible la génération de données de sortie au bon format sans exécution réelle.
On connaît par ailleurs du document publié sous le numéro US9,276,821 une méthode de classification de charges de travail (pour « workload », en anglais) en cours d'exécution simultanément dans un même environnement de travail, tel que par exemple un système de stockage distant. Selon cette méthode, un gestionnaire de charges de travail collecte des paramètres ou mesures représentatives d'une charge de travail, par exemple des paramètres relatifs à une lecture ou à une écriture dans une mémoire ou base de données du système de stockage distant.
Dans une phase d'apprentissage non supervisé, les données de mesure sont regroupées en régions (pour « cluster », en anglais) d'une grille bidimensionnelle, à l'aide d'une technique dite de carte auto adaptative organisée (pour « self organizing maps » ou SOM, en anglais). Chaque région constitue une classe représentative d'un type de charge de travail qui peut être annotée par un opérateur lors d'une étape supplémentaire, tels que « lecture intensive » ou « écriture intensive » sur la base de charges de travail connues.
Dans une phase de test, les mesures collectées pour des charges de travail en cours d'exécution sont mises en correspondance avec les régions de la grille, par exemple sur la base d'une technique du plus proche voisin. Les charges de travail se voient donc affecter les classes des régions auxquelles elles sont rattachées.
Un avantage de cette méthode est qu'elle permet à un gestionnaire de mieux connaître la répartition de l'usage des ressources de son système et ainsi d'adapter la configuration du système de stockage. 3. Inconvénients de l'art antérieur
Un inconvénient de cet art antérieur est qu'il n'est pas capable d'identifier précisément une application parmi plusieurs d'un même type. Il utilise en effet un apprentissage non supervisé qui regroupe les données de mesures d'usage en classes de type de charge de travail qui ne sont pas prédéterminées. 4. Objectifs de l'invention L'invention vient améliorer la situation. L'invention a notamment pour objectif de pallier ces inconvénients de l'art antérieur.
Plus précisément, un objectif de l'invention est de proposer une solution de classification d'une unité de travail en cours d'exécution capable d'identifier précisément l'unité de travail.
Un autre objectif de l'invention est de proposer une solution pour contrôler à distance la bonne exécution d'une unité de travail basée sur cette classification. 5. Exposé de l’invention
Ces objectifs, ainsi que d'autres qui apparaîtront par la suite, sont atteints à l'aide d'un procédé d'identification d'une unité de travail au cours de son exécution par un équipement client distant, comprenant les étapes suivantes :
Obtention au cours de l'exécution de l'unité de travail d'une pluralité de mesures représentatives d'une empreinte de l'unité de travail sur les ressources informatiques de l'équipement client pendant au moins une période temporelle prédéterminée ;
Prédiction par un système de prédiction automatique préalablement entraîné en mode supervisé et à partir de la pluralité de mesures collectées, d'une probabilité d'appartenance de ladite unité de travail à au moins une classe d'unité de travail d'une pluralité de classes; Décision d'affecter à l'unité de travail la classe associée à la probabilité la plus élevée, lorsqu'elle est supérieure ou égale à un seuil de confiance prédéterminé.
Avec l'invention, on réalise une empreinte de la tâche exécutée, à partir de laquelle on prédit sa classe parmi une pluralité de classes d'unités de travail prédéterminées. Le recours à un système de prédiction automatique préalablement entraîné en mode supervisé permet de prendre simultanément en compte un nombre important de mesures de types variés et ainsi d'obtenir une classification suffisamment fine pour identifier l'unité de travail. Le fait de conditionner la décision d'identification au passage d'un seuil de confiance permet de limiter le nombre de « faux positifs », c'est-à-dire de fausses identifications.
Selon un aspect de l'invention, aucune classe de la pluralité de classes n'est affectée à l'unité de travail, lorsque la probabilité la plus élevée est inférieure au seuil de confiance prédéterminé.
De la sorte, on ne prend pas de décision d'identification lorsque le niveau de confiance est insuffisant.
Selon un autre aspect de l'invention, l'étape de collecte est répétée sur une deuxième période temporelle, en ce qu'une deuxième pluralité de mesures est collectée et en ce que l'étape de prédiction est répétée à partir de la première et de la deuxième pluralité de mesures.
Un avantage est d'agréger les mesures collectées sur deux périodes temporelles successives est de permettre une amélioration des performances du système de prédiction et donc de passer au-delà du seuil de confiance.
Un avantage est de présenter des données de bonne qualité au système de prédiction automatique.
Selon encore un autre aspect de l'invention, le procédé d'identification d'une unité de travail comprend, dans une phase préalable d'apprentissage du système de prédiction :
Commande d'exécution d'une pluralité d'unités de travail, par au moins un équipement client digne de confiance ;
Collecte, pour une dite exécution, de la pluralité de mesures représentatives de l'empreinte sur les ressources informatiques de l'équipement client de ladite d'unité de travail pendant au moins une période temporelle prédéterminée; Génération d'un ensemble de données d'apprentissage, comprenant, pour la pluralité d'unités de travail, la pluralité de mesures collectées pour l'exécution d'une unité de travail associée à une étiquette représentative de sa classe réelle; et
Une étape d'entraînement du système à partir d'un premier sous-ensemble de l'ensemble de données d'apprentissage généré.
Ainsi, le système de prédiction est entraîné en mode supervisé.
Selon un autre aspect, le procédé comprend, préalable à l'étape de génération, une étape de prétraitement de la pluralité de mesures collectées, comprenant une sous-étape de réduction de bruit et une étape de lissage des données collectées sur la période temporelle prédéterminée.
Un avantage est de mettre en valeur les fortes tendances d'usage des ressources matérielles.
Selon encore un autre aspect le procédé comprend, dans la phase d'apprentissage, une étape de test du système de prédiction automatique à l'aide de pluralités de mesures d'un deuxième sous-ensemble de l'ensemble de données d'apprentissage, distinct du premier, destinée à produire pour une pluralité de mesures fournies en entrée, une probabilité d'appartenance de ladite unité de travail à au moins une classe d'unité de travail d'une pluralité de classes, une étape de détermination d'une mesure de précision de la prédiction par comparaison de la classe prédite à la classe réelle de l'unité de travail représentée par l'étiquette associée à la pluralité de mesures et une étape de calcul du seuil de confiance pour l'étape de décision, en fonction de la mesure de précision déterminée.
De la sorte, on évalue les performances du système de prédiction une fois entraîné à l'aide de mesures issues de l'ensemble de données d'apprentissage qui n'ont pas servi à l'entraîner. Les étiquettes représentatives des classes réelles des pluralités de mesures ne sont pas fournies en entrée du système, mais utilisées pour déterminer une mesure de précision de la prédiction obtenue en sortie. Le seuil de confiance est calculé de façon à garantir un niveau de précision minimal. De cette manière, on lie la valeur du seuil de décision à la précision de la prédiction, ce qui permet de minimiser le nombre de faux positifs, c'est-à-dire d'identification erronée de la tâche exécutée. L'invention concerne également un dispositif adapté pour mettre en œuvre le procédé d'identification d'une unité de travail selon l'un quelconque des modes particuliers de réalisation définis ci-dessus. Ce dispositif pourra bien sûr comporter les différentes caractéristiques relatives au procédé selon l'invention. Ainsi, les caractéristiques et avantages de ce dispositif sont les mêmes que ceux du procédé d'identification, et ne sont pas détaillés plus amplement.
Corrélativement, l'invention concerne aussi un procédé de contrôle d'exécution d'une unité de travail par un équipement client distant sur commande d'un équipement serveur, comprenant les étapes suivantes :
Collecte d'une pluralité de mesures représentatives d'une empreinte de l'unité de travail sur les ressources informatiques de l'équipement client pendant une période temporelle prédéterminée
Obtention d'une classe de l'unité de travail à partir de la pluralité de mesures collectée par le procédé d'identification selon l'invention; Décision de déclencher une action de contrôle lorsque la classe obtenue diffère d'une classe réelle associée à la tâche commandée.
Avec l'invention, on réalise une empreinte de la tâche exécutée, à partir de laquelle on prédit sa classe parmi une pluralité de classes prédéterminées. Si la classe prédite ne correspond pas à celle de la tâche commandée, l'équipement client est suspecté de malveillance et on déclenche une action de contrôle pour confirmer ou infirmer ce diagnostic.
Selon un aspect de l'invention, l'action de contrôle déclenchée appartient au groupe comprenant au moins : L'itération des étapes de collecte prédiction et décision sur au moins une autre période prédéterminée ;
La mise en œuvre d'une vérification supplémentaire ; inscription de l'équipement client sur une liste d'équipements clients indignes de confiance;
Commande d'exécution de la tâche à un autre équipement client.
Avantageusement, une première action possible est de répéter les opérations sur une autre période temporelle pour vérifier si la prédiction de classe donne le même résultat. Une autre option est de faire appel à d'autres techniques de vérification, telles que celles de l'art antérieur. On peut aussi étiqueter l'équipement client comme indigne de confiance et stopper toute commande auprès de lui. Une autre option est de décider de commander l'exécution de la tâche à un autre équipement client distant. L'invention concerne également un dispositif adapté pour mettre en œuvre le procédé de contrôle selon l'un quelconque des modes particuliers de réalisation définis ci-dessus. Ce dispositif pourra bien sûr comporter les différentes caractéristiques relatives au procédé selon l'invention. Ainsi, les caractéristiques et avantages de ce dispositif sont les mêmes que ceux du procédé d'identification, et ne sont pas détaillés plus amplement
Corrélativement, l'invention concerne aussi un équipement serveur apte à commander l'exécution d'une unité de travail à au moins un équipement client distant par l'intermédiaire d'un réseau de communication. Un tel équipement comprend un dispositif de contrôle d'exécution d'une unité de travail selon l'invention. L'invention concerne aussi un programme d'ordinateur comportant des instructions pour la mise en œuvre des étapes d'un procédé d'identification d'une unité de travail tel que décrit précédemment, lorsque ce programme est exécuté par un processeur.
Ce programme peut utiliser n'importe quel langage de programmation. Il peut être téléchargé depuis un réseau de communication et/ou enregistrés sur un support lisible par ordinateur. L'invention concerne aussi un programme d'ordinateur comportant des instructions pour la mise en œuvre des étapes d'un procédé de contrôle de l'exécution d'une unité de travail tel que décrit précédemment, lorsque ce programme est exécuté par un processeur.
Ces programmes peuvent utiliser n'importe quel langage de programmation. Ils peuvent être téléchargés depuis un réseau de communication et/ou enregistrés sur un support lisible par ordinateur. L'invention se rapporte enfin à des supports d'enregistrement, lisibles par un processeur, intégrés ou non au dispositif d'identification respectivement de contrôle selon l'invention, éventuellement amovible, mémorisant un programme d'ordinateur mettant en œuvre un procédé d'identification respectivement de contrôle, tel que décrit précédemment. 6. Liste des figures D'autres avantages et caractéristiques de l'invention apparaîtront plus clairement à la lecture de la description suivante d'un mode de réalisation particulier de l'invention, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels : les figures IA et IB présentent un relevé de valeurs de deux mesures représentatives d'un usage de ressource par une première et une deuxième unités de travail respectivement ; la figure 2 présente de façon schématique les étapes d'un procédé de classification d'une unité de travail selon un mode de réalisation de l'invention ; la figure 3 présente de façon plus détaillée l'étape de prétraitement d'une pluralité d'informations de mesures d'usage de ressources selon un mode de réalisation de l'invention ; les figures 4A à 4C illustrent l'effet des sous-étapes de prétraitement sur la pluralité d'informations collectées selon un mode de réalisation de l'invention ; la figure 5 illustre les variations de mesures entre deux exécutions distinctes d'une même unité de travail ; la figure 6 illustre une concaténation des mesures collectées sur plusieurs périodes temporelles successives selon un mode de réalisation de l'invention ; la figure 7 illustre un exemple de valeurs de probabilités d'appartenance aux classes d'unités de travail produites par le système de prédiction automatique selon l'invention ; la figure 8 illustre l'évolution d'un indicateur de précision de la classification selon l'invention en fonction de la valeur d'un seuil de confiance ; la figure 9 présente de façon schématique les étapes d'un procédé d'identification d'une unité de travail en cours d'exécution en phase de test selon un mode de réalisation de l'invention ; la figure 10 présente de façon schématique les étapes d'un procédé de contrôle d'exécution d'une unité de travail par un équipement client distant selon un mode de réalisation de l'invention ; la figure 11 présente de façon schématiques les flux échangés entre un équipement serveur mettant en œuvre le procédé de contrôle selon l'invention et un équipement client en charge d'exécuter une unité de travail commandée par l'équipement serveur ; et la figure 12 présente de façon schématique la structure matérielle d'un équipement serveur comprenant un dispositif de classification d'une unité de travail et un dispositif de contrôle de l'exécution d'une unité de travail selon l'invention. 7. Description d'un mode de réalisation particulier de l'invention
Le principe général de l'invention repose sur la collecte d'informations de mesures d'usage de ressources matérielles généré par l'exécution d'une unité de travail et sur la prédiction d'une classe d'unité de travail parmi une pluralité de classes d'unités de travail prédéterminées.
Dans la suite de la description, on désigne par unité de travail une tâche réalisée par une application informatique.
Bien sûr, l'invention n'est pas limitée à ce type d'unité de travail. Elle s'applique aussi à d'autres domaines que l'informatique et à des tâches qui utilisent d'autres types de ressources, par exemple énergétique, pourvu que leur usage puisse être mesuré.
On définit par information de mesure ou métrique d'usage de ressources matérielles une valeur représentative d'une quantité ou d'un degré d'utilisation d'une ressource de calcul, stockage ou transmission par une unité de travail.
Il existe des centaines de métriques qui mesurent la charge de travail induite par une unité de travail. Il s'agit par exemple de paramètres liés au nombre d'opérations de calcul ou CPU (pour « Central Processing Unit», en anglais) nécessaires à l'exécution des instructions d'un programme informatique, à l'utilisation de mémoire ou de caches, c'est-à-dire de mémoires spécifiques permettant de stocker temporairement les données des programmes pendant leurs exécutions), d'un débit en émission ou réception (le débit permet de mesurer l'intensité de l'utilisation par le programme d'un périphérique comme le réseau mais aussi le stockage. Par exemple, une unité de mesure pour le stockage est l'IOPS (pour « input/output operations per second », en anglais), etc.
En relation avec les Figures IA et IB, on présente un exemple concret de métriques qui varient pour deux configurations distinctes d'une même unité de travail, afin d'illustrer le concept d'empreinte d'une unité de travail sur les ressources matérielles d'une entité de ressources.
Dans cet exemple, nous avons choisi une unité de travail, qui réalise un transcodage d'une séquence vidéo d'un format d'entrée vers un format de sortie par exemple de MPEG-4 AVC vers HEVC H265, à l'aide d'un ensemble de logiciels, appelé FFMPEG, distribué sous licence Open Source et dédié au traitement audio et vidéo.
Avec ce logiciel, il est possible, pour transcoder une séquence vidéo au format d'entrée H264 de configurer un paramètre appelé « preset » à au moins deux valeurs :
Une première valeur, dite « slow » ; ou
Une deuxième valeur, dite « ultrafast ». A taille de fichier de sortie égale, la première valeur produit un transcodage de meilleure qualité que la deuxième, mais en contrepartie l'unité de travail met plus de temps à s'exécuter.
Les figures IA et IB mettent en évidence deux utilisations très différentes des ressources matérielles, la première valeur « slow » nécessitant une utilisation plus intensive des ressources de calcul ou CPU que la deuxième valeur « Ultrafast », mais une utilisation plus modérée des accès entrée/sortie ou I/O. On constate, que ces deux configurations différentes d'une même unité de travail possèdent des empreintes distinctes qui peuvent être identifiées/discriminées visuellement.
En outre, avec le choix d'un simple seuil sur le niveau d'utilisation du CPU il serait possible de déterminer automatiquement si la configuration est de type « slow » ou « fast ».
On décrit maintenant de façon détaillée un procédé d'identification d'une unité de travail au cours de son exécution par un équipement client distant selon un premier mode de réalisation de l'invention. On distingue deux phases :
Une première phase, dite d'apprentissage ou de création d'un modèle capable de classifier automatiquement une empreinte d'une unité de travail, illustrée par la figure 2 ;
Une deuxième phase, dite de test, illustrée par la figure 9, qui utilise le modèle créé pour identifier une unité de travail dans un environnement distant, dit « sans confiance » à partir d'une pluralité de mesures d'usages de ressources collectées.
En relation avec la figure 2, la phase d'apprentissage est réalisée dans un environnement de travail local ou distant, digne de confiance ou certifié, c'est-à-dire pour lequel on a l'assurance qu'une unité de travail est exécutée de façon conforme et que les informations de mesures d'usage sont collectées correctement. On entend par exécution conforme, une exécution de l'unité de travail commandée avec les données d'entrée associée à cette commande.
On notera que si on ne dispose pas d'environnement de confiance, on peut utiliser la technique de réplication pour collecter les informations de mesures d'usage auprès de plusieurs équipements clients. L'environnement de travail est par exemple un environnement virtuel, organisé en machines virtuelles ou conteneurs qui permettent d'émuler plusieurs environnements d'exécutions isolés sur une même machine physiques et d'isoler plusieurs unités de travail qui s'exécutent sur la même machine physique.
On considère une pluralité d'unités de travail distinctes et connues.
Au cours d'une première étape Al, on génère des données d'apprentissage pour cette pluralité d'unités de travail.
Pour ce faire, on commande en Ail l'exécution d'une unité de travail de la pluralité dans l'environnement de travail certifié ou digne de confiance, et, en A12, on collecte pendant cette exécution une pluralité d'informations ou de mesures d'usage de ressources matérielles généré par l'exécution de cette unité de travail. Les informations collectées sont stockées dans une mémoire, par exemple organisée en base de données.
Les sous-étapes Ail et A12 sont répétées pour la pluralité d'unités de travail.
Par exemple, on réalise cette étape Al à l'aide d'un module logiciel par exemple de type cAdvisor. qui permet de collecter et de sauvegarder l'historique d'utilisation des ressources matérielles par un conteneur.
Cette collecte est avantageusement réalisée à plusieurs instants successifs au cours de l'exécution et avec une fréquence élevée.
On notera en outre qu'une unité de travail peut être exécutée plusieurs fois sur différents composants matériels, par exemple CPU et GPU (pour « Graphics Processing Unit », en anglais) de façon à collecter des informations suffisamment représentatives de la charge de travail générée.
Dans un exemple de réalisation de l'invention, 4 unités de travail ont servi de base à la collecte de données. Elles sont décrites dans la table 1. Elles ont été choisies pour leurs utilisations différentes des ressources de l'environnement de travail.
Table 1
Web : Pour générer l'unité de travail web, ainsi nous avons utilisé une application de gestion de contenu open source en faisant varier le nombre de lecteurs/écrivains simultanés entre 1 et 50. La variation de ce nombre d'utilisateurs a en effet un impact direct sur le débit réseau, le système de stockage, et enfin l'utilisation mémoire.
File server : Nous avons utilisé une application qui réalise des opérations d'ouverture/lecture/écriture/suppression d'environ 10 000 fichiers dans une vingtaine de répertoires exécutés avec 50 processus dits légers (pour « threads », en anglais).
Video : Fmpeg est une boîte à outils logicielledédiée au traitement audio et vidéo. Il propose des options de ligne de commande qui permettent à l'utilisateur de choisir plusieurs paramètres. Nous avons utilisé deux séquences vidéos, une vidéo FullHD d'une taille égale à 6,3 Go) et une vidéo HD (d'une taille de 580 Mo). Pour le transcodage de la vidéo H. 264, nous avons modifié le paramètre PRESET entre slow et ultrafast. Le PRESET slow donnera des vidéos mieux compressées mais
sollicitera beaucoup le CPU et la mémoire tandis qu'un PRESET configuré à la valeur ultrafastva plus solliciter le disque.
Compilation : Le code source du noyau Linux utilise des milliers de petits fichiers sources. Sa compilation nécessite une utilisation intensive du CPU et de courtes opérations d'entrées/sorties aléatoires pour lire les fichiers sources et écrire les fichiers objet sur le disque.
Dans un mode de réalisation de l'invention, on considère les cinq métriques d'usage de ressources suivantes : CPU ou pourcentage du temps pendant lequel le CPU est contrôlé par un conteneur ; Mémoire ou pourcentage de l'espace mémoire utilisé par un conteneur ; RSS (pour « Résident Set Size », en anglais) ou taille de la mémoire non cache utilisé par un process ; READ I/O ou nombre d'octets lus par un conteneur ; et WRITE I/O ou nombre d'octets écrits par un conteneur.
Ce jeu de métriques est bien adapté à l'identification des unités de travail de la table 1.
Cependant, en fonction des unités de travail à identifier, il est probablement nécessaire d'affiner ce choix. Par exemple, une métrique d'utilisation du réseau peut être très pertinente pour différencier une tâche d'encodage vidéo et d'une tâche de rendu 3D.
Avantageusement, le choix des métriques peut se faire par exemple à l'aide d'une analyse en composantes principales, comme décrit dans le document de Lu et al., intitulé « Feature sélection using principal feature analysis", publié dans Proceedings of the 15th ACM international conférence on Multimedia, pages 301-304, par ACM, en 2007.
Au cours d'une étape A2 de prétraitement des informations collectées, on traite les mesures d'usage des ressources matérielles collectées et on forme un vecteur de caractéristiques permettant d'identifier une unité de travail. Ce vecteur constitue une empreinte ou signature de l'unité de travail.
Selon un mode de réalisation de l'invention illustré par les Figures 4A à 4C, cette étape de prétraitement des informations collectées comprend les sous-étapes suivantes :
Une sous-étape A21 de réduction de bruit, par exemple basée sur l'application d'une moyenne mobile sur une fenêtre de taille égale à 2 minutes. Le choix de cette taille de fenêtre permet un bon compromis entre la réduction du bruit et la perte d'informations pertinentes telles que les fortes tendances. En effet, plus la taille de la fenêtre est importante plus on fait disparaître une composante saisonnière. En pratique, on doit trouver le meilleur compromis entre le choix de la taille de fenêtre et un lissage optimal. Pour cela, on peut faire varier la taille de la fenêtre et mesurer son impact sur la précision du modèle.
La réduction de bruit permet donc de considérablement faciliter l'identification. De plus, cette technique n'affecte pas les fortes tendances qui sont utiles pour identifier de façon unique une unité de travail par notre algorithme d'apprentissage automatique. La Figure 4C montre le résultat de cette première sous-étape A21 sur l'information de CPU. La Figure 4B montre le résultat de la sous-étape A21. On voit que les petites fluctuations locales ont disparu ; Une sous-étape A22 de lissage, par exemple basée sur une décomposition en ondelettes de Meyer de niveau 2, telle que décrite dans le document Long et al., intitulé « Sélection of the best wavelet base for speech signal », publié dans International Symposium on Intelligent Multimedia, Video and Speech Processing, en 2004, pages 218-221, par IEEE. La Figure 5C illustre l'effet de cette décomposition sur l'information de CPU issue des deux sous-étapes précédentes. On voit que les fortes fluctuations sont accentuées.
On considère maintenant le cas de l'exécution d'une même unité de travail à deux instants différents. En relation avec la Figure 5, on constate que la consommation de la CPU induite par ces deux exécutions n'est pas identique. Certes les deux courbes présentent une forme similaire, mais la durée d'exécution diffère. On constate que la baisse d'utilisation du CPU ne s'exécute pas systématiquement au même instant pour les deux exécutions. Ceci s'explique par le séquencement (pour « scheduling », en anglais) du processeur qui peut varier d'une exécution à une autre en particulier du fait de la présence de certaines tâches systèmes.
Des contentions du système peuvent ralentir des opérations et expliquer une telle variation de durée d'exécution. On notera qu'elles pourraient aussi engendrer une consommation plus importante des ressources.
Il en résulte que les fortes tendances de ces deux courbes apparaissent à des instants différents avec des variations d'amplitudes différentes. Ces distorsions que l'on peut assimiler à une forme de bruit dans le signal posent un problème pour l'identification automatique de l'unité de travail sur la base de cette mesure.
Dans la suite de la description, on définit une série temporelle comme une suite d'observations répétées d'un même événement à des dates différentes. Comme illustré par la figure 6, dans une série temporelle, les points correspondent à des mesures successives d'usage de ressources matérielles et les pics à des périodes d'utilisation plus intense de ces ressources. Une série de points correspond à plusieurs points de mesure d'usage de ressources par l'exécution d'une même unité de travail.
Pour contrer ce problème de distorsion et d'échelle, l'invention propose de mesurer des séries de points plutôt que des points indépendants.
Cette approche permet d'éviter de devoir synchroniser entre eux des points ayant dérivé dans le temps et ainsi de faciliter l'identification. En effet, si nous entraînons notre système automatique de prédiction sur des points de mesure indépendants, la dimension temporelle est nécessaire pour capturer la dynamique. Or elle ne semble pas fiable comme le montre la figure 6.
Le choix d'une série de points permet d'encoder une séquence contiguë qui modélise intrinsèquement la dimension temporelle. La série de points permet de caractériser une forme de signal indépendamment de son origine temporelle. Cette représentation des données rend le système capable de capter les similitudes entre les séquences de mesures quel que soit le décalage temporel. Le système de prédiction automatique recherche ensuite dans son modèle la série de points la plus similaire à celle présentée en entrée. Enfin, la variation d'amplitude est gérée par l'algorithme d'apprentissage automatique.
Par exemple, comme illustré par la figure 6, nous agrégeons les mesures prises chacune sur une fenêtre temporelle de taille égale à trois secondes. La figure 6 montre un premier pic Pl correspondant à une première fenêtre de collecte et un deuxième pic P2 correspondant à une deuxième fenêtre. Bien sûr, cette durée peut être optimisée. On peut la faire varier et observer l'impact de cette variation sur la précision du prédicteur.
La table 2 présente des exemples de valeurs de données prétraitées et collectées sur trois instants successifs. En concaténant les données collectées toutes les secondes pendant 3 secondes, on obtient 5x3 = 15 valeurs de données.
Un vecteur de données est formé pour une fenêtre temporelle de 3 secondes des 15 valeurs de données prétraitées X = (xl, x2,..., xN) avec N = 15 et de la classe Y de l'unité de travail correspondante. Il est possible de concaténer plusieurs vecteurs pour améliorer la qualité de la prédiction. Bien sûr, le nombre de vecteurs est un paramètre pouvant être optimisé pour trouver un bon compromis entre le nombre de vecteurs et les faux positifs.
Table 2
En A3, on génère un ensemble d'apprentissage SE, par exemple de la façon suivante. On divise aléatoirement l'ensemble de données prétraitées en un premier et un deuxième sous-ensembles SE1 et SE2. Le premier sous-ensemble SE1 est destiné à l'apprentissage d'un système de prédiction automatique de la classe d'une unité de travail. Le deuxième sous-ensemble est destiné à tester le système entraîné et évaluer sa précision. Par exemple, on affecte aléatoirement 75 % des données au premier sous-ensemble et 25 % au deuxième. Cette opération est répétée 50 fois pour évaluer la robustesse de l'algorithme.
En A4, on entraîne un système de prédiction automatique du premier sous-ensemble de données, comprenant pour chaque unité de travail le vecteur de données X extrait et une étiquette ou label Y représentative de la classe de l'unité de travail. Dans un mode de réalisation de l'invention, une forêt d'arbres aléatoires (pour « Random Forest », en anglais), a été utilisée pour prédire automatiquement la classe d'une unité de travail à partir d'un vecteur de données d'entrée. Cette technique d'apprentissage automatique (pour « machine learning », en anglais) est par exemple décrite dans le document de Pal et al., intitulé « Random forest classifier for remote sensing classification », publié dans la revue « International Journal of Remote Sensing », vol. 25(1), pages 217-222, en 2005. Bien sûr, l'invention n'est pas limitée à cet exemple de technique et pourrait de façon alternative s'appuyer sur un réseau de neurones convolutif ou CNN (pour « Convolutive Neural Net », en anglais), tel que décrit dans le document de Schuster et al., intitulé « Beauty and the Burst: Remote Identification of Encrypted Video Streams », publié dans les proc. USENIX Security, en août 2017.
On notera que l'étape de prétraitement A2 est optionnelle. Elle n'est pas nécessaire avec certains systèmes de prédiction automatique, notamment avec un réseau CNN.
En ce qui concerne la variation d'amplitude entre deux séries de mesures d'usage précédemment évoquée, un tel système la gère par une condition associée (par exemple de type seuil) à des nœuds de décision qui testent des attributs pour descendre dans l'arbre en fonction des valeurs de ces attributs par rapport à la condition. La classe prédite est alors la classe associée à la feuille qui correspond à l'unité de travail. A l'issue de cette étape d'entraînement, le système de prédiction automatique d'une classe d'une unité de travail est prêt à être testé.
En A5, on teste le système de prédiction automatique à l'aide des données du deuxième sous-ensemble SE2. Cette fois-ci, on ne présente en entrée que les vecteurs de données X et pas l'étiquette de classe d'unité de travail associée Y. Le système de prédiction produit en sortie une classe prédite Ÿ. Pour évaluer la qualité de la prédiction, on compare en A6 la classe prédite à l'étiquette représentative de sa classe réelle Y. On évalue ensuite en A7 une précision de prédiction à partir du résultat de cette comparaison.
De façon plus précise, le système de prédiction automatique produit en sortie un vecteur de probabilité d'appartenance à une classe d'unité de travail comprenant autant de composantes que de classes possibles. Dans l'exemple considéré, le nombre de classes est de 4. La classe prédite est celle qui est associée à la probabilité d'appartenance la plus élevée.
Avantageusement, une matrice de confusion (pour « confusion matrix », en anglais), telle que décrite dans le document de Stehman, intitulé « Selecting and interpreting measures of thematic classification Accuracy », dans la revue « Remote sensing of Environment », vol. 62(1), pages 77-89, en 1997, est utilisée pour mesurer la qualité de la classification réalisée. En apprentissage supervisé la matrice de confusion permet de visualiser la précision des prédictions. Elle est obtenue en comparant les résultats fournis par le prédicteur (entraîné avec le jeu de données SE1) pour prédire la classe Y d'une unité de travail à partir d'un vecteur de données d'entrée X issue du deuxième sous-ensemble SE2. Puis, la précision est calculée en comparant le résultat obtenu Ÿ avec l'étiquette de la classe réelle associée au vecteur X.
En relation avec la Figure 7, on présente un exemple de matrice de confusion normalisée par classe obtenue avec les 4 unités de travail de la table 1.
Comme les unités de travail n'ont pas toutes la même durée d'exécution, les résultats ont été normalisés pour faciliter la comparaison de précision entre les unités de travail.
Une valeur 1 indique une précision de 100 % tandis qu'une valeur zéro indique une valeur de précision de 0 %.
Un intérêt d'une telle matrice de confusion est de montrer rapidement si le système parvient à classifier correctement. Plus les valeurs diagonales de la matrice de confusion sont élevées, plus les prédictions sont précises.
En relation avec la figure 7, on constate une précision de 84 % pour le pire cas qui concerne la classification de l'unité de travail « fileserver». Un objectif de l'invention est de prédire la classe d'unité de travail avec la plus grande précision et en minimisant les « faux positifs », c'est-à-dire en minimisant les cas d'identification d'une classe d'unité de travail erronée. Pour ce faire, un seuil de confiance est fixé en dessous duquel, la classe prédite n'est pas considérée comme fiable et donc non acceptée et l'unité de travail est considérée comme non reconnue.
En relation avec la Figure 8, on illustre les performances d'un prédicteur selon le mode de réalisation de l'invention qui vient d'être décrit, avec plusieurs valeurs de seuil de confiance choisies entre 0 et 100 %. Les données utilisées sont celles du deuxième sous-ensemble de données d'entrée SE2.
Un seuil à 100 % indique que la probabilité d'appartenance à la classe prédite doit être de 100 % pour que la classe prédite soit considérée comme fiable.
On définit une mesure de précision de la prédiction comme suit :
Où tp désigne le nombre de vrais positifs et fp le nombre de faux positifs, c'est-à-dire de prédictions d'une classe erronée.
La précision représente ainsi la part d'instances pertinentes sur l'ensemble des classes prédites.
On définit aussi une mesure de rappel (pour « recall », en anglais) comme suit :
Où fn désigne le nombre de faux négatifs, c'est-à-dire de prédictions correctes considérées comme non fiables
Le recall représente ainsi la part de prédictions correctes sur l'ensemble des classes à prédire.
On observe sur la figure 8 qu'avec un seuil de confiance à 50 % qui implique d'accepter environ 30 % de faux négatifs, nous obtenons une précision Pr de 90 % soit une augmentation de la précision de 5 % par rapport à une classification qui n'utiliserait pas de seuil de confiance.
On notera que dans le mode de réalisation qui vient d'être décrit, une classification de type « multi-classes » a été mise en œuvre. Avec de type de classification, une unité de travail de classe inconnue est affectée à une des classes prédéterminées. Si les probabilités d'appartenance obtenues sont inférieures au seuil de confiance, elle n'est affectée à aucune classe.
Bien sûr, l'invention n'est pas limitée à ce type de classification. De façon alternative, elle pourrait mettre en œuvre une méthode de classification dans un espace ouvert, de type « Open Set Récognition », par exemple décrite dans le document de Scheirer et al., intitulé « Towards Open Set Récognition », publié dans la revue Transactions on Pattern Analysis and Machine Intelligence, vol. 35, No 7, en juillet 2013, par IEEE, qui autorise une connaissance incomplète des classes possibles pendant la phase d'apprentissage du système de prédiction. Il en résulte que des classes inconnues peuvent être détectées pendant la phase de test.
Une fois la phase d'entraînement et d'évaluation terminée, le procédé d'identification d'une unité de travail selon l'invention qui vient d'être présenté en relation avec la figure 2 peut être utilisé en situation réelle (phase de test) pour identifier une unité de travail à partir d'une pluralité de mesures d'usage collectées pendant son exécution. En relation avec la Figure 9, il comprend une étape El d'obtention d'une pluralité de mesure d'usage collectées pendant une période temporelle Pt, une étape E2 de prédiction d'une probabilité d'appartenance à au moins une classe d'une pluralité de classes d'unités de travail et une étape E3 de classification, destinée à affecter une classe de la pluralité à l'unité de travail lorsque sa probabilité associée est supérieure à un seuil de confiance.
Le procédé d'identification d'une unité de travail selon l'invention peut être avantageusement appliqué à différents usages. Par exemple, il peut être utilisé à des fins de configuration ou de planification des ressources d'une plateforme de calcul partagé.
Un autre usage possible est la vérification à distance et en temps réel par un équipement ES de calcul partagé, qu'on désignera dans la suite par équipement serveur, de la bonne exécution d'une unité de travail qu'il a commandée à un équipement EC distant, fournisseur de ressources, qu'on désignera dans la suite par équipement client. L'environnement de cet équipement client est considéré comme non certifié ou sans confiance.
Pour ce faire, le serveur ES met en œuvre un procédé de contrôle de l'exécution d'une unité de travail selon l'invention, qui va maintenant être décrit en relation avec les figures 10 et 11 :
En Cl, l'équipement serveur ES de l'opérateur commande l'exécution d'une unité de travail UT1 à l'équipement client EC du fournisseur de services, par exemple en émettant un message de requête. En réponse, l'équipement client déclenche l'exécution de l'unité de travail UT1 commandée et transmet des mesures d'informations DTI représentatives d'un usage des ressources de l'équipement client par l'exécution de l'unité de travail. Ces informations sont par exemple du type de celles précédemment décrites. Elles sont collectées pendant une période temporelle prédéterminée PT, par exemple égale à 3 secondes, comme précédemment décrit.
Selon un mode de réalisation de l'invention, l'équipement serveur ES commande par requête en C21 la collecte de ces informations à l'équipement client EC, en précisant la fréquence et la durée de collecte.
Selon une variante, cette commande est intégrée à la commande d'exécution de l'unité de travail. Sur réception de ces informations en C22, l'équipement serveur cherche en C4 à identifier l'unité de travail en cours d'exécution en mettant en œuvre le procédé d'identification d'une unité de travail selon l'invention qui vient d'être décrit. Ce procédé obtient les informations collectées par l'équipement serveur ES en El, les prétraite comme précédemment décrit et forme un vecteur d'empreinte comprenant les informations prétraitées. Il présente ce vecteur en E2 en entrée d'un système de prédiction automatique entraîné en mode supervisé et évalué comme précédemment décrit en relation avec la Figure 2.
On notera que si les mesures d'usages requises ne sont pas reçues, le procédé de contrôle ne peut pas se poursuivre. Une option est de décider en C3 dès ce stade que l'exécution n'est pas conforme puisqu'elle n'a pas pu être contrôlée et d'aller directement à l'étape C8 pour décider d'une action de contrôle à déclencher.
Le système prédit une probabilité d'appartenance de l'unité de travail à au moins une classe d'unité de travail parmi un ensemble de classes. Selon un mode de réalisation particulier, il produit une probabilité d'appartenance de l'unité de travail à chacune des classes d'une pluralité de classes prédéterminées.
En E3, il décide que la classe prédite est celle qui est associée à la probabilité d'appartenance la plus élevée à condition qu'elle soit supérieure à un seuil de confiance prédéterminé.
Sinon, aucune classe n'est affectée à l'unité de travail. Dans ce cas, le procédé de contrôle peut décider en C5 une option est de relancer l'étape E2 de collecte d'informations de mesure d'usage des ressources de l'équipement client sur une autre période temporelle. Comme précédemment évoqué, les mesures collectées sur deux périodes ou plus peuvent être concaténées. Une nouvelle classification selon le procédé précédemment décrit peut être réalisée dans le but d'obtenir une décision de classification positive.
Si une classe est affectée à l'unité de travail en cours d'exécution, elle est comparée en C6 à la classe réelle de l'unité de travail, connue de l'équipement serveur ES. Si les deux classes correspondent, alors l'exécution est considérée comme conforme en C7. Sinon une action de contrôle est déclenchée en C8.
Cette action de contrôle est choisie parmi une pluralité d'actions prédéterminées.
Une première action de contrôle AC1 possible est de relancer les étapes Cl à C8, c'est-à-dire de réaliser un nouveau contrôle sur une nouvelle période temporelle. Si la deuxième itération conduit à l'identification d'une classe différente de celle de l'unité de travail commandée et confirme le diagnostic du premier contrôle, une deuxième action de contrôle peut être déclenchée AC2, telle que par exemple la commande d'exécution d'une unité de travail connue à cet équipement client afin de confirmer la suspicion de sabotage. On parle de procédure de « spot checking ».
Bien sûr, d'autres actions de contrôle peuvent être consécutivement déclenchées, selon la stratégie de l'opérateur. Ce sont par exemple des actions de sanction telles que le fait de retenir une caution versée par le fournisseur ou de l'enregistrer sur une liste noire de fournisseurs au moins pendant une période prédéterminée ou des actions de substitution, comme la commande de l'unité de travail UT à un autre équipement client d'un autre fournisseur.
Le procédé de contrôle qui vient d'être décrit présente l'avantage d'offrir un niveau de sécurité accru tout en évitant le gaspillage des ressources. Il est générique, car il est potentiellement capable d'identifier tout type d'unité de travail. Il peut être appliqué à plusieurs unités de travail s'exécutant en parallèle sur des équipements clients distincts et il n'est pas intrusif car il ne nécessite aucune modification du code informatique des unités de travail à exécuter.
Bien sûr, pour renforcer encore le niveau de sécurité, l'invention peut être avantageusement combinée à des techniques connues de l'art antérieur, telles que par exemple :
Le fait de ne pas envoyer une même unité de travail plusieurs fois consécutivement au même équipement client pour éviter qu'il ne renvoie à l'équipement serveur un jeu de métriques préenregistré. Pour cela, il est connu d'utiliser un ordonnanceur d'unités de travail doté d'un moteur de contraintes, comme décrit dans le document Baptiste et al., intitulé « Constraint-based scheduling: applying constraint programming to scheduling problems", volume 39, dans Springer Science & Business Media, en 2012 ; ou de façon alternative, le fait d'utiliser un identifiant unique (pour «watermark», en anglais) masqué dans la requête de collecte d'informations de mesures, de façon à pouvoir détecter le renvoi par l'équipement client de mesures préenregistrées. Une telle technique est par exemple décrite dans le document de Kirovski et al., intitulé « Spread-spectrum watermarking of audio signais», publié dans la revue IEEE transactions on signal Processing, vol. 51(4): pages 1020-1033, en 2003 ; le fait d'obfusquer le code binaire résultant des précédentes 'étapes est offusqué lui aussi afin de dissuader une potentielle ingénierie inverse via l'analyse du binaire. En effet, si l'attaquant cherche à décompiler et analyser le code source pour savoir s'il s'agit d'un test de spot checking ou de déterminer l'identifiant Water Mark, cela générera alors un vecteur d'empreintes différentes qui pourra alors être détecté par l'équipement serveur et interprété comme une tentative malicieuse; utiliser une technique dite de preuve de stockage (pour « proofof storage », en anglais), par exemple décrite dans le document de Halevi et al., intitulé « Proofs of ownership in remote storage Systems », publié dans Proceedings of the 18th ACM conférence on Computer and communications security, pages 491-500 par Acm, en 2011, pour garantir que l'équipement client exécute l'unité de travail commandée avec les bonnes données d'entrée. Par exemple, on vérifie ainsi que l'unité de travail « vidéo » encode bien la séquence vidéo demandée ou que l'unité « compile » compile le bon code source.
En relation avec la Figure 12, on présente maintenant un exemple de structure simplifiée d'un dispositif 100 de classification d'une unité de travail selon l'invention. Le dispositif 100 met en œuvre le procédé de classification d'une unité de travail selon l'invention qui vient d'être décrit en relation avec les figures 2 et 9. On présente également un exemple de structure simplifiée d'un dispositif 200 de contrôle d'exécution d'une unité de travail selon l'invention. Le dispositif 200 met en œuvre le procédé de contrôle d'exécution d'une unité de travail selon l'invention qui vient d'être décrit en relation avec la figure 10.
Cette figure 12 illustre seulement une manière particulière, parmi plusieurs possibles, de réaliser les procédés détaillés ci-dessus. En effet, la technique de l'invention se réalise indifféremment sur une machine de calcul reprogrammable (un ordinateur PC ou un microcontrôleur) configurée pour exécuter un programme comprenant une séquence d'instructions, ou sur une machine de calcul dédiée (par exemple un ensemble de portes logiques comme un FPGA, ou tout autre module matériel).
Dans le cas où l'invention est implantée sur une machine de calcul reprogrammable, le programme correspondant (c'est-à-dire la séquence d'instructions) pourra être stocké dans un médium de stockage amovible (tel que par exemple une disquette, un CD-ROM ou un DVD-ROM) ou non, ce médium de stockage étant lisible partiellement ou totalement par un ordinateur ou un processeur.
Par exemple, le dispositif 100 comprend une unité de traitement 110, équipée d'un processeur pl, et pilotée par un programme d'ordinateur Pgl 120, stocké dans une mémoire 130 et mettant en œuvre le procédé de selon l'invention. A l'initialisation, les instructions de code du programme d'ordinateur Pgi 120 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement 110. Le processeur de l'unité de traitement 110 met en œuvre les étapes du procédé décrit précédemment, selon les instructions du programme d'ordinateur 120.
Dans cet exemple de réalisation de l'invention, le dispositif 100 comprend une machine de calcul reprogrammable ou une machine de calcul dédiée, apte à et configurée pour :
Obtenir (OBT) au cours de l'exécution de l'unité de travail une pluralité de mesures représentatives d'une empreinte de l'unité de travail sur les ressources informatiques de l'équipement client pendant une période temporelle prédéterminée ;
Prédire (PRED) par un système de prédiction automatique préalablement entraîné et à partir de la pluralité de mesures collectées, une probabilité d'appartenance de ladite unité de travail aux classes d'unité de travail d'une pluralité de classes prédéterminées ; Décider (CLAS) de classifier l'unité de travail dans la classe associée à la probabilité la plus élevée, lorsqu'elle est supérieure ou égale à un seuil de confiance prédéterminé.
Avantageusement, la machine de calcul est configurée pour mettre en œuvre les modes de réalisation de l'invention qui viennent d'être décrits en relation avec la Figure 9.
En particulier, elle est en outre apte à mettre en œuvre la phase d'apprentissage et la phase de test du système de prédiction automatique selon l'invention telles que précédemment décrites en relation avec la Figure 2. Elle est alors configurée pour :
Commander l'exécution d'une pluralité d'unités de travail, par au moins un équipement client digne de confiance ;
Collecter, pour une dite exécution, de la pluralité de mesures représentatives de l'empreinte sur les ressources informatiques de l'équipement client de ladite d'unité de travail ; Générer un ensemble de données d'apprentissage, comprenant, pour la pluralité d'unités de travail, la pluralité de mesures collectées pour l'exécution d'unité de travail associée à une étiquette représentative de sa classe réelle; et
Entraîner un système à partir d'un premier sous-ensemble de l'ensemble de données d'apprentissage généré.
Le dispositif 100 comprend en outre une unité Mi 140 de stockage, telle qu'une mémoire, par exemple de type mémoire tampon (pour « buffer», en anglais), apte à stocker par exemple les informations de mesure d'usage, la pluralité de classes prédéterminées ou les paramètres de configuration du système de prédiction automatique.
Ces unités sont pilotées par le processeur μΐ de l'unité de traitement 110.
De façon avantageuse, un tel dispositif 100 de classification d'une unité de travail peut être intégré à un dispositif 200 de contrôle d'exécution d'une unité de travail par un équipement client distant selon l'invention.
Par exemple, le dispositif 200 comprend une unité de traitement 210, équipée d'un processeur p2, et pilotée par un programme d'ordinateur Pgl 220, stocké dans une mémoire 230 et mettant en œuvre le procédé de selon l'invention. A l'initialisation, les instructions de code du programme d'ordinateur Pg2 220 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement 210. Le processeur de l'unité de traitement 210 met en œuvre les étapes du procédé décrit précédemment, selon les instructions du programme d'ordinateur 220.
Dans cet exemple de réalisation de l'invention, le dispositif 200 comprend une machine de calcul reprogrammable ou une machine de calcul dédiée, apte à et configurée pour :
Commander (ORD) l'exécution d'une unité de travail à un équipement client ;
Collecter (COLL) au cours de l'exécution de l'unité de travail une pluralité de mesures représentatives d'une empreinte de l'unité de travail sur les ressources informatiques de l'équipement client pendant une période temporelle prédéterminée ;
Obtenir (OBT) une prédiction de classe de l'unité de travail par le dispositif de classification selon l'invention; Décider (DEC) de déclencher une action de contrôle lorsque la classe obtenue diffère d'une classe réelle associée à la tâche commandée.
Avantageusement, la machine de calcul est configurée pour mettre en œuvre les modes de réalisation de l'invention qui viennent d'être décrits en relation avec la Figure 10.
Le dispositif 200 comprend en outre une unité M2 240 de stockage, telle qu'une mémoire, par exemple de type mémoire tampon (pour « buffer», en anglais), apte à stocker par exemple les décisions prises et les actions de contrôle engagées.
Ces unités sont pilotées par le processeur μ2 de l'unité de traitement 210.
De façon avantageuse, un tel dispositif 200 de contrôle de l'exécution d'une unité de travail peut être intégré à un équipement serveur ES ou plateforme de calcul partagé.
Le dispositif 200 est alors agencé pour coopérer au moins avec les modules suivants de l'équipement serveur ES: un module E/R d'émission/réception de données, par l'intermédiaire il collecte les informations de mesure et il émet des commandes d'exécution d'unités de travail; et/ou un module de stockage MEM dans lequel il stocke des informations relatives aux équipements clients distants.
Selon une variante, les instructions de code du programme d'ordinateur Pgi 220 sont chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement 210. De cette manière les deux programmes Pgl et Pg2 s'exécutent sur la même unité de traitement 210.
Grâce à ses bonnes performances, l'application de l'invention n'est pas limitée à l'exemple décrit. Elle peut s'appliquer à d'autres domaines. En particulier, le domaine de l'IoT par exemple est un environnement ou la confiance est souvent réduite du fait que les capteurs et objets connectés sont répartis géographiquement.
Ces objets connectés collectent très souvent des informations de mesures d'usage de ressources à partir desquelles il est envisageable de former des empreintes. On peut ainsi imaginer récupérer la consommation énergétique d'une usine pour vérifier que l'usine a bien exécuté une unité de production.
Il va de soi que les modes de réalisation qui ont été décrits ci-dessus ont été donnés à titre purement indicatif et nullement limitatif, et que de nombreuses modifications peuvent être facilement apportées par l'homme de l'art sans pour autant sortir du cadre de l'invention.

Claims (13)

  1. REVENDICATIONS
    1. Procédé d'identification d'une unité de travail au cours de son exécution par un équipement client distant, caractérisé en ce qu'il comprend les étapes suivantes : Obtention (El) au cours de l'exécution de l'unité de travail d'une pluralité de mesures représentatives d'une empreinte de l'unité de travail sur les ressources de l'équipement client pendant au moins une période temporelle prédéterminée ; Prédiction (E2) par un système de prédiction automatique préalablement entraîné en mode supervisé et à partir de la pluralité de mesures collectées, d'une probabilité d'appartenance de ladite unité de travail à au moins une classe d'unité de travail d'une pluralité de classes; et Décision (E3) d'affecter à l'unité de travail la classe associée à la probabilité la plus élevée, lorsqu'elle est supérieure ou égale à un seuil de confiance prédéterminé.
  2. 2. Procédé d'identification d'une unité de travail, selon la revendication 1, caractérisé en ce qu'aucune classe de la pluralité de classes n'est affectée à l'unité de travail, lorsque la probabilité la plus élevée est inférieure au seuil de confiance prédéterminé.
  3. 3. Procédé d'identification d'une unité de travail, selon la revendication 2, caractérisé en ce que l'étape d'obtention (El) est répétée sur une deuxième période temporelle, en ce qu'une deuxième pluralité de mesures est collectée et en ce que l'étape de prédiction (E2) est répétée à partir de la première et de la deuxième pluralité de mesures.
  4. 4. Procédé d'identification d'une unité de travail, selon l'une des revendications 1 à 3, caractérisé en ce qu'il comprend, dans une phase préalable d'apprentissage du système de prédiction : Commande (Ail) d'exécution d'une pluralité d'unités de travail, par au moins un équipement client digne de confiance ; Collecte (A12), pour une dite exécution, de la pluralité de mesures représentatives de l'empreinte sur les ressources informatiques de l'équipement client de ladite d'unité de travail pendant au moins une période temporelle prédéterminée; Génération (A3) d'un ensemble de données d'apprentissage, comprenant, pour la pluralité d'unités de travail, la pluralité de mesures collectées pour l'exécution d'une unité de travail associée à une étiquette représentative de sa classe réelle; et Une étape d'entraînement (A4) du système à partir d'un premier sous-ensemble de l'ensemble de données d'apprentissage généré.
  5. 5. Procédé d'identification d'une unité de travail selon la revendication précédente, caractérisé en ce qu'il comprend une étape (A2) de prétraitement de la pluralité de mesures collectées comprenant une sous-étape de réduction de bruit et une étape de lissage des données collectées sur la période temporelle prédéterminée..
  6. 6. Procédé d'identification d'une unité de travail selon l'une des revendications 4 et 5, caractérisé en ce qu'il comprend, dans la phase d'apprentissage, une étape de test (A5) du système de prédiction automatique à l'aide de pluralités de mesures d'un deuxième sous-ensemble de l'ensemble de données d'apprentissage, distinct du premier, destinée à produire pour une pluralité de mesures fournies en entrée, une probabilité d'appartenance de ladite unité de travail à au moins une classe d'unité de travail d'une pluralité de classes, une étape de détermination (A6) d'une mesure de précision de la prédiction par comparaison de la classe prédite à la classe réelle de l'unité de travail représentée par l'étiquette associée à la pluralité de mesures et une étape (A7) de calcul du seuil de confiance pour l'étape de décision, en fonction de la mesure de précision déterminée.
  7. 7. Dispositif (100) d'identification d'une unité de travail au cours de son exécution par un équipement client distant, ledit dispositif comprenant une machine de calcul dédiée à ou configurée pour : Obtenir (OBT) au cours de l'exécution de l'unité de travail une pluralité de mesures représentatives d'une empreinte de l'unité de travail sur les ressources informatiques de l'équipement client pendant une période temporelle prédéterminée ; Prédire (PRED) par un système de prédiction automatique préalablement entraîné et à partir de la pluralité de mesures collectées, une probabilité d'appartenance de ladite unité de travail à au moins une classe d'unité de travail d'une pluralité de classes prédéterminées ; Décider (CLAS) d'affecter à l'unité de travail la classe associée à la probabilité la plus élevée, lorsqu'elle est supérieure ou égale à un seuil de confiance prédéterminé.
  8. 8. Procédé de contrôle d'exécution d'une unité de travail par un équipement client distant sur commande d'un équipement serveur, comprenant les étapes suivantes : Collecte (C2) d'une pluralité de mesures représentatives d'une empreinte de l'unité de travail sur les ressources informatiques de l'équipement client pendant une période temporelle prédéterminée Obtention (C4) d'une classe de l'unité de travail à partir de la pluralité de mesures collectée par le procédé d'identification selon l'une des revendications 1 à 6; Décision (C8) de déclencher une action de contrôle lorsque la classe obtenue diffère d'une classe réelle associée à la tâche commandée.
  9. 9. Procédé de contrôle d'exécution selon la revendication 8, caractérisé en ce que l'action de contrôle déclenchée appartient au groupe comprenant au moins : L'itération des étapes de collecte prédiction et décision sur au moins une autre période prédéterminée ; La mise en œuvre d'une vérification supplémentaire ; L'inscription de l'équipement client sur une liste d'équipements clients indignes de confiance; La commande d'exécution de l'unité de travail à un autre équipement client.
  10. 10. Dispositif (200) de contrôle d'exécution d'une unité de travail par un équipement client distant sur commande d'un équipement serveur, ledit dispositif comprenant une machine de calcul dédiée à ou configurée pour : Collecter (COLL) une pluralité de mesures représentatives d'une empreinte de l'unité de travail sur les ressources informatiques de l'équipement client pendant une période temporelle prédéterminée ; Obtenir (OBT) une prédiction de classe de l'unité de travail à partir de la pluralité de mesures collectée par le procédé d'identification selon l'une des revendications 1 à 6; Décider (DEC) de déclencher une action de contrôle lorsque la classe obtenue diffère d'une classe réelle associée à l'unité de travail commandée.
  11. 11. Equipement serveur (ES) apte à commander l'exécution d'une unité de travail à au moins un équipement client distant par l'intermédiaire d'un réseau de communication, caractérisé en ce qu'il comprend un dispositif (200) de contrôle d'exécution d'une unité de travail selon la revendication 10.
  12. 12. Programme d'ordinateur (Pgl, Pg2) comportant des instructions pour la mise en œuvre du procédé d'identification d'une unité de travail selon l'une des revendications 1 à 6 ou le procédé de contrôle de l'exécution d'une unité de travail selon l'une quelconque des revendications 8 à 9, lorsque ledit programme est exécuté par un processeur.
  13. 13. Support d'enregistrement lisible par un ordinateur, sur lequel est enregistré un programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes des procédés selon les revendications 1 à 6 et 8 à 9.
FR1763181A 2017-12-22 2017-12-22 Procede d'identification d'une unite de travail en cours d'execution, procede de controle d'execution d'une unite de travail, dispositifs, equipement serveur et programmes d'ordinateurs associes Withdrawn FR3076000A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1763181A FR3076000A1 (fr) 2017-12-22 2017-12-22 Procede d'identification d'une unite de travail en cours d'execution, procede de controle d'execution d'une unite de travail, dispositifs, equipement serveur et programmes d'ordinateurs associes

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1763181 2017-12-22
FR1763181A FR3076000A1 (fr) 2017-12-22 2017-12-22 Procede d'identification d'une unite de travail en cours d'execution, procede de controle d'execution d'une unite de travail, dispositifs, equipement serveur et programmes d'ordinateurs associes

Publications (1)

Publication Number Publication Date
FR3076000A1 true FR3076000A1 (fr) 2019-06-28

Family

ID=62167438

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1763181A Withdrawn FR3076000A1 (fr) 2017-12-22 2017-12-22 Procede d'identification d'une unite de travail en cours d'execution, procede de controle d'execution d'une unite de travail, dispositifs, equipement serveur et programmes d'ordinateurs associes

Country Status (1)

Country Link
FR (1) FR3076000A1 (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113033475A (zh) * 2021-04-19 2021-06-25 北京百度网讯科技有限公司 目标对象追踪方法、相关装置及计算机程序产品
CN113379388A (zh) * 2021-06-18 2021-09-10 北京天健智慧科技有限公司 远程体检预约平台根据配置参数切换子任务流程的方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130185729A1 (en) * 2012-01-13 2013-07-18 Rutgers, The State University Of New Jersey Accelerating resource allocation in virtualized environments using workload classes and/or workload signatures

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130185729A1 (en) * 2012-01-13 2013-07-18 Rutgers, The State University Of New Jersey Accelerating resource allocation in virtualized environments using workload classes and/or workload signatures

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SIMÃO JOSÉ ET AL: "SmartGC: Online Memory Management Prediction for PaaS Cloud Models", 20 October 2017, MEDICAL IMAGE COMPUTING AND COMPUTER-ASSISTED INTERVENTION - MICCAI 2015 : 18TH INTERNATIONAL CONFERENCE, MUNICH, GERMANY, OCTOBER 5-9, 2015; PROCEEDINGS; [LECTURE NOTES IN COMPUTER SCIENCE; LECT.NOTES COMPUTER], SPRINGER INTERNATIONAL PUBLISHING, CH, ISBN: 978-3-540-70543-7, ISSN: 0302-9743, XP047451281 *
YOO WUCHERL ET AL: "Machine learning based job status prediction in scientific clusters", 2016 SAI COMPUTING CONFERENCE (SAI), IEEE, 13 July 2016 (2016-07-13), pages 44 - 53, XP032955065, DOI: 10.1109/SAI.2016.7555961 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113033475A (zh) * 2021-04-19 2021-06-25 北京百度网讯科技有限公司 目标对象追踪方法、相关装置及计算机程序产品
CN113033475B (zh) * 2021-04-19 2024-01-12 北京百度网讯科技有限公司 目标对象追踪方法、相关装置及计算机程序产品
CN113379388A (zh) * 2021-06-18 2021-09-10 北京天健智慧科技有限公司 远程体检预约平台根据配置参数切换子任务流程的方法
CN113379388B (zh) * 2021-06-18 2024-04-09 北京天健智慧科技有限公司 远程体检预约平台根据配置参数切换子任务流程的方法

Similar Documents

Publication Publication Date Title
US11223642B2 (en) Assessing technical risk in information technology service management using visual pattern recognition
US11144289B1 (en) Dynamic automation of selection of pipeline artifacts
US7761398B2 (en) Apparatus and method for identifying process elements using request-response pairs, a process graph and noise reduction in the graph
US11423577B2 (en) Printed circuit board assembly defect detection
US11797416B2 (en) Detecting performance degradation in remotely deployed applications
EP3846046A1 (fr) Procede et systeme de traitement de donnees pour la preparation d'un jeu de donnees
US11514605B2 (en) Computer automated interactive activity recognition based on keypoint detection
US11972382B2 (en) Root cause identification and analysis
CN115427967A (zh) 确定多变量时间序列数据依赖性
US11715195B2 (en) Machine learning-based circuit board inspection
KR102359090B1 (ko) 실시간 기업정보시스템 이상행위 탐지 서비스를 제공하는 방법과 시스템
US11199505B2 (en) Machine learning enhanced optical-based screening for in-line wafer testing
EP3489831A1 (fr) Procédé et dispositif de surveillance d'un processus générateur de données d'une métrique pour la prédiction d'anomalies
FR3076000A1 (fr) Procede d'identification d'une unite de travail en cours d'execution, procede de controle d'execution d'une unite de travail, dispositifs, equipement serveur et programmes d'ordinateurs associes
EP4124942A1 (fr) Procédé et système de traitement de données personnelles utilisant un chiffrement homomorphique
FR3074322A1 (fr) Plate-forme de tracabilite securisee de donnees
EP3588301A1 (fr) Determination automatique et auto-optimisee des parametres d'execution d'une application logicielle sur une plateforme de traitement de l'information
US20220214948A1 (en) Unsupervised log data anomaly detection
EP3842962A1 (fr) Procede et systeme de gestion des flux de donnees pour la gouvernance unifiee d'une pluralite de solutions de calculs intensifs
CN115761614A (zh) 基于多视角深度学习算法的异常行为目标检测系统
US20220067450A1 (en) Determining system performance without ground truth
EP3846047A1 (fr) Procédé et système d'identification de variables pertinentes
CA3170297A1 (fr) Generation de predictions de performances avec des intervalles d'incertitude
Srivastava et al. Deployment of a cloud pipeline for real‐time visual inspection using fast streaming high‐definition images
EP3267319A1 (fr) Procédé de test d'une interface graphique et système de test associé

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20190628

PLFP Fee payment

Year of fee payment: 3

TP Transmission of property

Owner name: B COM, FR

Effective date: 20191126

PLFP Fee payment

Year of fee payment: 4

ST Notification of lapse

Effective date: 20220808