Brevet FR3069669A1 (20190201)

REVENDICATIONS1. Système (1) de communication comprenant un ou plusieurs noeuds (2) d'exécution apte à exécuter un ou plusieurs microservices (5), un dispositif informatique, dit « serveur hôte » (3), comportant plusieurs routeurs (30) constituant une interface intermédiaire de communication entre chaque noeud (2) d'exécution et l'extérieur du système (1) de communication, une plateforme (4) informatique hétérogène, constituée d'un ensemble (40) de matériel et logiciel ou code exécutable pour l'accès et le déploiement des microservices (5) sur le système dans un environnement (J) d'exécution Java (runtime java) sur le serveur hôte (3) et les noeuds (2) d'exécution permettant l'exécution des programmes informatiques basés sur le langage Java, le système (1) de communication étant caractérisé en ce qu'il permet la création de microservices (5) éphémères par l'utilisation d'un système (6) clef/valeur mémorisé dans un cache (8) mémoire distribué à chaque création en référenciant chaque microservices (5) par des noms de fichier déposés dans le système par un développeur (10) et utilisant un protocole (T) d'échange TCP asynchrone échangeant des notifications contenant des métadatas (M) entre le serveur hôte (3) et chaque noeud (2) d'exécution ; et en ce que chaque noeud (2) mémorise des fichiers (50) d'exécution du ou des microservices (5) comportant l'accès au système (1) par au moins un des deux point d'entrée soit au serveur hôte (3) soit au noeud (2) d'exécution et au moins un chargeur de classe (7) assurant le déploiement des services associés aux microservices (5) qui sont intégrés dans le noeud (2) d'exécution.\n<CLM>\1\tSystème selon la revendication 1, caractérisé en ce que le serveur hôte (3) et les noeuds (2) d'exécution du système, échangent des données de type métadatas (M) comprenant un ou plusieurs des éléments suivants : un alias du microservice (appelé clé), un chemin de localisation d'une méthode particulière dans le microservice, une action associée au chemin de 22 localisation, un code retour d'exécution du microservice et un type de contenu d'exécution du microservice.\n<CLM>\1\tSystème selon la revendication 1 ou 2, caractérisé en ce qu'un outil de développement de microservices constitue une interface développeur et 5 un outil d'envoi dans le protocole utilisé entre le microservice (5) et le serveur hôte (3).\n<CLM>\1\tSystème selon une des revendications 1 à 3, caractérisé en ce que chaque noeud (2) d'exécution comprend en outre des moyens informatiques (21) de gestion des microservices, des moyens informatiques de lecture et 10 d'écriture des fichiers d'exécution disposés dans une unité (9) distribuée de stockage du système (1), et un système (22) de publication et souscription de message lorsqu'un microservice (5) est déposé ou un alias est modifié par le développeur (10) sur le système (1).\n<CLM>\1\tSystème selon une des revendications 1 à 4, caractérisé en ce que 15 chaque noeud (2) d'exécution est apte à exécuter un algorithme prédéterminé dédié à la sélection d'un ou plusieurs noeuds (2) d'exécution du microservice (5) en déterminant un score (valeur) puis en mémorisant l'adresse ou l'alias du microservice (5) et ce score (système clé/valeur) dans le cache (8) mémoire distribué si le score est plus pertinent que le précédent. 20\n<CLM>\1\tSystème selon la revendication 5, caractérisé en ce que l'algorithme prédéterminé exécuté par le noeud (2) d'exécution lance un timeout d'inactivité à chaque détermination de score pour que le serveur hôte (3) réutilise le même noeud (2) d'exécution tant que le microservice (5) est inexploité ou qu'un timeout d'inactivité est levé. 25\n<CLM>\1\tSystème selon une des revendications 1 à 6, caractérisé en ce que le noeud (2) d'exécution choisit par le serveur hôte (3) appelé par le système (1), charge le microservice (5) dans un nouveau chargeur de classe (7) référencé au sein du système (1), dans une HashMap du cache (8) mémoire distribué en fonction de l'alias utilisé dans le message d'échange standardisé. 23\n<CLM>\1\tSystème selon une des revendications 5 à 7, caractérisé en ce que chaque noeud (2) d'exécution sélectionné est apte à remonter des données sous forme de score et d'attribution d'adresse dans le cache (8) mémoire distribué du système (1) de communication attribué à chaque microservices 5 (5) pour que le serveur hôte (3) puisse lire et exploiter ces données.\n<CLM>\1\tSystème selon une des revendications 1 à 8, caractérisé en ce que les routeurs (30) du serveur hôte (3) intègrent des applications basées sur Java et Netty pour assurer des communications multiprotocoles vers l'extérieur du système (1) et des échanges asynchrones en protocole (T) TCP 10 vers les noeuds (2) d'exécution du système (1).\n<CLM>\1\tSystème selon une des revendications 1 à 9, caractérisé en ce que les microservices (5) sont mémorisés au format Jar ou Javascript par le système (1) dans le cache (8) mémoire distribué ; tandis que les fichiers au format Jar sont désarchivés en classes d'utilisation ou d'exécution par le 15 système (1) pour les rendre accessible au chargeur de classe (7) de l'environnement (J) d'exécution Java du noeud (2) d'exécution ; de sorte que ces microservices (5) soit chargés depuis l'unité (9) de stockage distribué en fonction de la demande du serveur hôte (définie par l'alias de service qui permet d'identifier le microservice à charger et le chemin de la requête 20 entrante permettant d'identifier la méthode (java ou javascript) à appeler dans le microservice chargé) ; et les autres formats de fichier sont mémorisés unitairement sur le système clef/valeur (6) pour que l'environnement (J) d'exécution Java puisse lire ou exploiter selon le besoin.\n<CLM>\1\tSystème selon une des revendications 4 à 10, caractérisé en ce que 25 le système (1) est apte à sélectionner un noeud (2) d'exécution pour qu'il charge un microservice (5) dans un chargeur de classe (6) qui est référencié dans l'unité (9) distribuée de stockage en fonction de l'allas utilisé dans le métadatas (M) d'échange. 12.Système selon une des revendications 1 à 11, caractérisé en ce 30 qu'il comporte au moins un code d'accès pour une activation d'appel d'un 24 microservice (5) pour son déploiement sur la plateforme (4), ledit code d'accès est disposé soit au niveau du service permettant l'accès à toutes les ressources du service, soit au niveau d'une ressource du service permettant l'accès à cette unique ressource, ou par au moins une méthode d'accès 5 prédéfinie par un gestionnaire de sécurité du système (1) de communication.\n<CLM>\1\tSystème selon une des revendications 5 à 12, caractérisé en ce que le serveur hôte (3) est configuré à utiliser et réutiliser le même noeud (2) d'exécution, au moyen de l'algorithme spécifique du noeud (2), tant que le microservice (5) est inexploité ou qu'un délai d'inactivité de charge du 10 microservice (5) est levé.\n<CLM>\1\tSystème selon une des revendications 1 à 13, caractérisé en ce que le système clef/valeur (6) et le système de notification sont des systèmes externes au système de communication qui sont intégrés dans un code exécutable du système de communication, ou injectés au moment de 15 l'exécution du système (1).\n<CLM>\1\tProcédé d'accès et de déploiement de microservices (5) éphémères sur une plateforme (4) informatique hétérogène, par un système (1) de communication selon une des revendications 1 à 14, caractérisé en ce que le procédé comprend les étapes suivantes : 20 dépôt d'un ou plusieurs microservices (5) par le développeur (10) sur un ou plusieurs noeuds (2) d'exécution ; référencement des microservices (5) par le nom de fichier déposé sans son extension dans le système clef/valeur (6) ; - mémorisation des microservices (5), sous forme de fichier (50) 25 d'exécution de type Jar ou Javascript, par le système clef/valeur (6) dans l'unité (9) distribuée de stockage ; - désarchivage en classes d'utilisation ou d'exécution des fichiers d'exécution au format Jar par le système clef/valeur (6) pour les rendre accessibles au chargeur de classe (7) de l'environnement (J) 30 d'exécution Java du noeud d'exécution, et le format JavaScript des 25 fichiers d'exécution sont mémorisés unitairement sur le système clef/valeur (6) pour que l'environnement (J) d'exécution Java puisse lire ou exploiter selon le besoin ; chargement des classes associées aux microservices (5) par les 5 chargeurs de classe (7) des noeuds (2) d'exécution à charger ; déchargement des microservices (5) par les noeuds (2) d'exécution lorsque les microservices (5) sont inexploités ou que le délai d'inactivité de charge du ou des microservices (5) est levé.\n<CLM>\1\tProcédé selon la revendication 15, caractérisé en ce que l'étape de 10 déchargement des microservices (5) comprend une sélection par le serveur hôte (3) des noeuds (2) d'exécution du microservice (5) à charger et chaque noeud (2) d'exécution remonte des données sous forme de score et d'adresse d'attribution du microservice (5) dans le cache (8) mémoire distribué du système (1) de communication pour que le serveur hôte (3) puisse lire et 15 exploiter ces données.\n<CLM>\1\tProcédé selon la revendication 15 ou 16, caractérisé en ce qu'il comprend en outre une étape de création des alias aux microservices (5) par le développeur (10) pour que le système (1) puisse localiser le ou les microservices (5) à déployer. 20 18.Procédé selon une des revendications 15 à 17, caractérisé en ce que lorsque le microservice (5) n'est pas chargé, le système (1) de communication choisit le noeud (2) d'exécution qui charge le microservice (5) dans un nouveau chargeur de classe (7) et le référencie dans l'unité (9) distribuée de stockage du système (1). 25\n<CLM>\1\tProcédé selon la revendication 17 ou 18, caractérisé en ce que le rechargement de microservice (5) se fait soit par le dépôt d'un nouveau microservice (5) avec le même nom de fichier d'exécution, soit par changement d'alias.\n<CLM>\1\tProcédé selon une des revendications 15 à 19, caractérisé en ce 30 que le rechargement de microservice (5) entraîne un envoi de message par le 26 système (22) de publication et souscription pour actualiser l'ensemble des actions des noeuds (2) d'exécution du système (1) de communication.