Brevet FR3134938A1 — publié le 20231027

Système comprenant un terminal (1) et un serveur (2) configurés pour, à l’ouverture d’une session de communication : transmettre, du terminal au serveur, un jeu d’identifiants ; le comparer au contenu d’une base de données, et - en cas de correspondance exacte, poursuivre la session de communication sans mise à jour de la configuration du terminal ; - en cas de correspondance partielle, transmettre en retour un fichier de configuration associé ; - en cas d’absence de correspondance, identifier une paire d’identifiants proches et transmettre un fichier de configuration associé avec un indicateur temporaire ; alimenter la base avec le jeu reçus et l’éventuelle association découlant de l’identification à réception du fichier, l’implémenter dans une application frontale du terminal, et si et seulement si ledit fichier de configuration est porteur d’un indicateur qualifiant le fichier de temporaire, basculer l’application frontale dans un mode test. Figure de l’abrégé : Figure 1 Mise à jour de configurations La présente divulgation relève du domaine des techniques de configurations et mises à jour de logiciels et applications installés sur des dispositifs communicants avec un ou plusieurs serveurs. Elle vise plus particulièrement les situations dans lesquels le parc de dispositifs inclut des appareils dont les logiciels internes (« firmwares ») sont variés et initialement inconnus du point de vue de tels serveurs. Dans le domaine de la maintenance de logiciels applicatifs (« software »), la responsabilité des mises à jour repose presque exclusivement sur le fournisseur dudit logiciel, typiquement les « applications » installées sur les ordiphones (ou « smartphones »). Or, les logiciels internes (« firmware ») de tels dispositifs peuvent présenter une grande variété qui découle de la grande variété de constructeurs, de modèles d’appareils et même de versions de firmwares pour un même modèle d’appareil. Du point de vue d’un fournisseur d’application tel que la demanderesse, de nouveaux firmwares apparaissent donc très souvent. Lorsqu’une nouvelle version d’un firmware apparait, typiquement avec un nouveau modèle de terminal, le fonctionnement de l’application peut être dégradé, voire être totalement incompatible avec le nouveau modèle de terminal. Pour maintenir au cours du temps une compatibilité de l’application avec un maximum d’appareils, les fournisseurs d’application déploient régulièrement des mises à jour des applications à destination de l’ensemble du parc de dispositifs alors même qu’une faible fraction d’entre eux (les plus récents) ont besoin d’une telle mise à jour. Une telle maintenance est complexe, couteuse et peu efficiente. Résumé La présente divulgation vient améliorer la situation. Il est proposé un système comprenant au moins un terminal et un serveur aptes à communiquer l’un avec l’autre, une application dorsale et une application frontale correspondante étant installées respectivement sur le serveur et le terminal, le serveur ayant accès à au moins une base de données. La base de données comprend : - une liste de jeux d’identifiants, chaque jeu d’identifiants comprenant * un identifiant de terminal, * un identifiant d’une couche matérielle, et * un identifiant de système d’exploitation ; - une table de correspondance entre * chaque paire d’identifiant d’une couche matérielle et d’identifiant de système d’exploitation existante dans ladite liste, et * un fichier de configuration, stocké lui-même dans l’au moins une base de données. Le terminal et le serveur sont configurés en coordination l’un avec l’autre pour, à l’ouverture d’une session de communication entre le terminal et le serveur : a. transmettre, depuis le terminal à destination du serveur, un jeu d’identifiants comprenant un identifiant du terminal, un identifiant d’une couche matérielle du terminal et un identifiant de système d’exploitation mis en œuvre sur le terminal ; b. à réception sur le serveur depuis le terminal du jeu d’identifiants, comparer au contenu de la base de données, et - en cas de correspondance entre le jeu d’identifiants transmis et un jeu d’identifiants de ladite liste, poursuivre la session de communication sans mise à jour de la configuration du terminal ; - en cas d’absence de correspondance entre le jeu d’identifiants transmis et les jeux d’identifiants de ladite liste, et en cas de correspondance avec une paire d’identifiants d’une couche matérielle et de système d’exploitation de la table de correspondance, transmettre en retour, depuis le serveur à destination du terminal, le fichier de configuration associé à ladite paire selon la table de correspondance ; - en cas d’absence de correspondance avec une paire d’identifiants d’une couche matérielle et de système d’exploitation de la table de correspondance, identifier, dans la table de correspondance et par application de règles préétablies, une paire d’identifiants d’une couche matérielle et de système d’exploitation la plus proche de celle du jeu d’identifiants transmis depuis le terminal, puis transmettre en retour, depuis le serveur à destination du terminal, le fichier de configuration associé à la combinaison identifiée selon la table de correspondance, ledit fichier étant transmis avec un indicateur qualifiant le fichier de configuration de temporaire ; c. alimenter la base de données avec le jeu d’identifiants reçus et l’éventuelle association découlant de l’identification d. à réception d’un fichier de configuration sur le terminal depuis le serveur, implémenter ledit fichier de configuration dans l’application frontale, et si et seulement si ledit fichier de configuration est porteur d’un indicateur qualifiant le fichier de temporaire, basculer l’application frontale dans un mode test. Le terminal et le serveur peuvent en outre être configurés pour : e. en réponse à une action prédéterminé de validation par l’utilisateur via le terminal, supprimer un indicateur qualifiant le fichier de temporaire sur le terminal, basculer l’application frontale dans un mode normal, transmettre, depuis le terminal à destination du serveur, une commande de validation dudit fichier de configuration temporaire f. à réception sur le serveur depuis le terminal de la commande de validation du fichier de configuration temporaire, supprimer un indicateur qualifiant le fichier de temporaire dans l’association correspondante de la base de données. Selon un autre aspect, il est proposé un procédé de configuration mis en œuvre par un terminal comprenant les opérations a et d, et optionnellement e, ci-avant. Selon un autre aspect, il est proposé un procédé de configuration mis en œuvre par un serveur comprenant les opérations b et c, et optionnellement f, ci-avant. Selon un autre aspect, il est proposé un terminal configuré pour la mise en œuvre d’un procédé tel que défini ci-avant. Selon un autre aspect, il est proposé un serveur configuré pour la mise en œuvre d’un procédé tel que défini ci-avant. Selon un autre aspect, il est proposé un programme informatique comportant des instructions pour la mise en œuvre de tout ou partie d’un procédé tel que défini dans les présentes lorsque ce programme est exécuté par un processeur. Selon un autre aspect, il est proposé un support d’enregistrement non transitoire, lisible par un ordinateur, sur lequel est enregistré un tel programme. En mettant à disposition des fichiers de configurations adaptés à chaque nouveau terminal se connectant au serveur (ou terminal présentant une nouvelle configuration), il est possible de réduire le nombre et la fréquence des mises à jour complètes de l’application à déployer sur l’ensemble des terminaux. La création d’un fichier de configuration est bien plus aisée que le déploiement d’une mise à jour complète, notamment parce que la compatibilité doit être vérifiée avec le terminal ou la configuration visée plutôt qu’avec l’ensemble du parc de terminaux. La taille d’un fichier de configuration est très inférieure à ceux d’une mise à jour complète d’une application, ce qui permet donc de réduire le temps et les ressources matérielles et logicielles nécessaires pour transmettre de tels fichiers via les réseaux de télécommunication, puis les installer. Du point de vue des utilisateurs des terminaux, il devient inutile de mettre à jour l’application tant que le terminal utilisé n’est pas modifié. D’un point de vue global, la mise à disposition d’un nouveau fichier de configuration bénéficie à chacun des utilisateurs d’un terminal présentant une configuration correspondante, tout en impactant pas les autres utilisateurs du service. En amont, un utilisateur mettant en œuvre un fichier de configuration en mode « test » valide ou non son bon fonctionnement, de sorte que l’intervention d’un opérateur du fournisseur de l’application est nécessaire seulement en cas de dysfonctionnement. D’autres caractéristiques, détails et avantages apparaîtront à la lecture de la description détaillée ci-après, et à l’analyse des dessins annexés, sur lesquels : Fig. 1 représente des éléments du système selon un mode de réalisation. Fig. 2 est un diagramme de mise en œuvre selon un mode de réalisation. Fig. 3 représente des échanges de données entre des éléments d’un système selon un mode de réalisation. Contexte Dans la suite, les termes francophones « application frontale » et « application dorsale » sont utilisés pour distinguer ce qu’un technicien, même non anglophone, appelle respectivement le « frontend » et le « backend ». De même, les termes francophones « logiciel interne » et « application/logiciel applicatif » sont utilisés pour distinguer ce qu’un technicien appelle respectivement « firmware » et « software ». Ce qui est décrit ci-après a été mis en œuvre par la demanderesse dans le contexte des communications à l’alternat (« half-duplex ») via les réseaux de téléphonie mobile, plus connues sous l’acronyme « PTT » pour « Push-to-Talk », et notamment de ses services connus sous les noms commerciaux « Team on the run » et « Team on mission ». En substance, il s’agit de proposer des solutions de communication qui, du point de vue des utilisateurs, semblent se comporter comme les émetteurs-récepteurs radio « walkie-talkie » (maintien d’un bouton pour parler sur un canal, relâchement du bouton pour libérer la parole sur le canal et passer en mode écoute), tout en présentant des propriétés permises par les réseaux et protocoles de communication récents (combinaison audio/vidéo ; compatibilité et interopérabilité avec un grand nombre de terminaux mobiles ou fixes ; chiffrement des communications ; géolocalisation ; changement à la volée de réseau ; etc.). En pratique, la mise en œuvre de ce qui suit est donc particulièrement bénéfique dans le contexte de communications PTT, sans pour autant s’y limiter. La mise en œuvre de ce qui suit est en outre particulièrement avantageuse dans les situations pour lesquelles l’accès physique aux terminaux et à certaines informations relatives à leur configuration est difficile, voire impossible, pour le gestionnaire du logiciel applicatif. Cela est typiquement le cas pour des raisons de confidentialité et de sécurité lorsque les terminaux sont utilisés par des personnes aux activités dites sensibles (police, maintien de l’ordre, sécurité civile, services d’urgence en cas de catastrophe, opérations dans des zones où la couverture réseau n’est pas fiable, etc.). Les procédés de mise à jour ont été présentés comme mis en œuvre par le terminal 1 et le serveur 2. On comprendra que les procédés peuvent prendre la forme de programmes informatiques comportant des instructions pour la mise en œuvre des procédés lorsque ces programmes sont exécutés par un processeur, respectivement du terminal 1 ou du serveur 2. On visera aussi les supports d’enregistrement non transitoires lisibles par un ordinateur sur lesquels sont enregistrés des programmes pour la mise en œuvre des procédés décrits ici lorsque ces programmes sont exécutés par un processeur. Les présentes solutions techniques peuvent trouver à s’appliquer notamment dans le contexte de la maintenance de programmes applicatifs d’un dispositif informatique, communément appelés « application ». Elles sont particulièrement avantageuses appliquées aux applications de communication à l’alternat par l’intermédiaire des réseaux de téléphonie mobile, notamment à cause de la grande variété des firmwares des terminaux mobiles en circulation, et aussi parce que les interactions entre l’utilisateur et son terminal dans ce domaine sont particulières (par exemple l’appui long puis le relâchement d’un bouton pour prendre puis libérer la parole sur un canal de communication). La présente divulgation ne se limite pas aux exemples de systèmes, terminaux, serveurs, procédés, programmes et supports de programmes décrits ci-avant, seulement à titre d’exemples, mais elle englobe toutes les variantes que pourra envisager l’homme de l’art dans le cadre de la protection recherchée. Système comprenant au moins un terminal (1) et un serveur (2) aptes à communiquer l’un avec l’autre, une application dorsale et une application frontale correspondante étant installées respectivement sur le serveur et le terminal, le serveur ayant accès à au moins une base de données (3) comprenant : - une liste (I) de jeux d’identifiants, chaque jeu d’identifiants comprenant * un identifiant de terminal (A), * un identifiant d’une couche matérielle (B), et * un identifiant de système d’exploitation (C) ; - une table de correspondance (II) entre * chaque paire (B x ; C y ) d’identifiant d’une couche matérielle et d’identifiant de système d’exploitation existante dans ladite liste (I), et * un fichier de configuration (D x,y ), stocké lui-même dans l’au moins une base de données le terminal et le serveur étant configurés en coordination l’un avec l’autre pour, à l’ouverture d’une session de communication entre le terminal et le serveur : a. transmettre (101), depuis le terminal à destination du serveur, un jeu d’identifiants comprenant un identifiant (A 1 ) du terminal, un identifiant (B 1 ) d’une couche matérielle du terminal et un identifiant (C 1 ) de système d’exploitation mis en œuvre sur le terminal ; b. à réception sur le serveur depuis le terminal du jeu d’identifiants (A 1 , B 1 , C 1 ), comparer (102) au contenu de la base de données, et - en cas de correspondance entre le jeu d’identifiants (A 1 , B 1 , C 1 ) transmis et un jeu d’identifiants de ladite liste (I), poursuivre la session de communication sans mise à jour de la configuration du terminal ; - en cas d’absence de correspondance entre le jeu d’identifiants (A 1 , B 1 , C 1 ) transmis et les jeux d’identifiants de ladite liste (I), et en cas de correspondance avec une paire (B 1 , C 1 ) d’identifiants d’une couche matérielle et de système d’exploitation de la table de correspondance (II), transmettre (103) en retour, depuis le serveur à destination du terminal, le fichier de configuration (D 1,1 ) associé à ladite paire (B 1 , C 1 ) selon la table de correspondance ; - en cas d’absence de correspondance avec une paire (B x , C y ) d’identifiants d’une couche matérielle et de système d’exploitation de la table de correspondance (II), identifier (104), dans la table de correspondance (II) et par application de règles préétablies, une paire (B x , C y ) d’identifiants d’une couche matérielle et de système d’exploitation la plus proche de celle du jeu d’identifiants (B 1 , C 1 ) transmis depuis le terminal, puis transmettre (105) en retour, depuis le serveur à destination du terminal, le fichier de configuration (D x,y ) associé à la combinaison identifiée (B x , C y ) selon la table de correspondance (II), ledit fichier étant transmis avec un indicateur (Z) qualifiant le fichier de configuration (D x,y , Z) de temporaire ; c. alimenter (106) la base de données avec le jeu d’identifiants reçus (A 1 , B 1 , C 1 ) et l’éventuelle association découlant de l’identification (B 1 , C 1 , D x,y , Z) d. à réception d’un fichier de configuration (D 1,1 ; D x,y , Z) sur le terminal depuis le serveur, implémenter (107) ledit fichier de configuration dans l’application frontale, et si et seulement si ledit fichier de configuration est porteur d’un indicateur (Z) qualifiant le fichier de temporaire, basculer (108) l’application frontale dans un mode test. Système selon la revendication 1 dans lequel le terminal et le serveur sont en outre configurés pour : e. en réponse à une action prédéterminé de validation par l’utilisateur via le terminal, supprimer (109) un indicateur (Z) qualifiant le fichier de temporaire sur le terminal, basculer (110) l’application frontale dans un mode normal, transmettre (111), depuis le terminal à destination du serveur, une commande de validation dudit fichier de configuration temporaire f. à réception sur le serveur depuis le terminal de la commande de validation du fichier de configuration temporaire, supprimer (112) un indicateur (Z) qualifiant le fichier de temporaire dans l’association correspondante (B 1 , C 1 , D x,y , Z) de la base de données. Procédé de configuration mis en œuvre par un terminal (1) apte à communiquer avec un serveur (2), une application dorsale et une application frontale correspondante étant installées respectivement sur le serveur et le terminal, le serveur ayant accès à au moins une base de données (3) comprenant : - une liste (I) de jeux d’identifiants, chaque jeu d’identifiants comprenant * un identifiant de terminal (A), * un identifiant d’une couche matérielle (B), et * un identifiant de système d’exploitation (C) ; - une table de correspondance (II) entre * chaque paire (B x ; C y ) d’identifiant d’une couche matérielle et d’identifiant de système d’exploitation existante dans ladite liste (I), et * un fichier de configuration (D x,y ), stocké lui-même dans l’au moins une base de données le procédé comprenant, à l’ouverture d’une session de communication entre le terminal et le serveur : a. transmettre (101), depuis le terminal à destination du serveur, un jeu d’identifiants comprenant un identifiant (A 1 ) du terminal, un identifiant (B 1 ) d’une couche matérielle du terminal et un identifiant (C 1 ) de système d’exploitation mis en œuvre sur le terminal ; d. à réception d’un fichier de configuration (D 1,1 ; D x,y , Z) sur le terminal depuis le serveur, implémenter (107) ledit fichier de configuration dans l’application frontale, et si et seulement si ledit fichier de configuration est porteur d’un indicateur (Z) qualifiant le fichier de temporaire, basculer (108) l’application frontale dans un mode test. Procédé selon la revendication 3, comprenant en outre : e. en réponse à une action prédéterminé de validation par l’utilisateur via le terminal, supprimer (109) un indicateur (Z) qualifiant le fichier de temporaire sur le terminal, basculer (110) l’application frontale dans un mode normal, transmettre (111), depuis le terminal à destination du serveur, une commande de validation dudit fichier de configuration temporaire. Procédé de configuration mis en œuvre par un serveur (2) apte à communiquer avec au moins un terminal (1), une application dorsale et une application frontale correspondante étant installées respectivement sur le serveur et le terminal, le serveur ayant accès à au moins une base de données (3) comprenant : - une liste (I) de jeux d’identifiants, chaque jeu d’identifiants comprenant * un identifiant de terminal (A), * un identifiant d’une couche matérielle (B), et * un identifiant de système d’exploitation (C) ; - une table de correspondance (II) entre * chaque paire (B x ; C y ) d’identifiant d’une couche matérielle et d’identifiant de système d’exploitation existante dans ladite liste (I), et * un fichier de configuration (D x,y ), stocké lui-même dans l’au moins une base de données le procédé comprenant, à l’ouverture d’une session de communication entre le terminal et le serveur : b. à réception sur le serveur depuis le terminal d’un jeu d’identifiants (A 1 , B 1 , C 1 ), comparer (102) au contenu de la base de données, et - en cas de correspondance entre le jeu d’identifiants (A 1 , B 1 , C 1 ) transmis et un jeu d’identifiants de ladite liste (I), poursuivre la session de communication sans mise à jour de la configuration du terminal ; - en cas d’absence de correspondance entre le jeu d’identifiants (A 1 , B 1 , C 1 ) transmis et les jeux d’identifiants de ladite liste (I), et en cas de correspondance avec une paire (B 1 , C 1 ) d’identifiants d’une couche matérielle et de système d’exploitation de la table de correspondance (II), transmettre (103) en retour, depuis le serveur à destination du terminal, le fichier de configuration (D 1,1 ) associé à ladite paire (B 1 , C 1 ) selon la table de correspondance ; - en cas d’absence de correspondance avec une paire (B x , C y ) d’identifiants d’une couche matérielle et de système d’exploitation de la table de correspondance (II), identifier (104), dans la table de correspondance (II) et par application de règles préétablies, une paire (B x , C y ) d’identifiants d’une couche matérielle et de système d’exploitation la plus proche de celle du jeu d’identifiants (B 1 , C 1 ) transmis depuis le terminal, puis transmettre (105) en retour, depuis le serveur à destination du terminal, le fichier de configuration (D x,y ) associé à la combinaison identifiée (B x , C y ) selon la table de correspondance (II), ledit fichier étant transmis avec un indicateur (Z) qualifiant le fichier de configuration (D x,y , Z) de temporaire ; c. alimenter (106) la base de données avec le jeu d’identifiants reçus (A 1 , B 1 , C 1 ) et l’éventuelle association découlant de l’identification (B 1 , C 1 , D x,y , Z). Procédé selon la revendication 5, comprenant en outre : f. à réception sur le serveur depuis le terminal d’une commande de validation du fichier de configuration temporaire, supprimer (112) un indicateur (Z) qualifiant le fichier de temporaire dans l’association correspondante (B 1 , C 1 , D x,y , Z) de la base de données. Terminal (1) configuré pour la mise en œuvre d’un procédé selon l’une des revendications 3 à 4. Serveur (2) configuré pour la mise en œuvre d’un procédé selon l’une des revendications 5 à 6. Programme informatique comportant des instructions pour la mise en œuvre du procédé selon l’une des revendications 3 à 6 lorsque ce programme est exécuté par un processeur. Support d’enregistrement non transitoire lisible par un ordinateur sur lequel est enregistré un programme pour la mise en œuvre du procédé selon l’une des revendications 3 à 6 lorsque ce programme est exécuté par un processeur.